韋韜/WEI Tao,顧為群/GU Weiqun,劉宇江/LIU Yujiang
( 螞蟻集團,中國 杭州 310013 )
隨著“十四五”規劃的發布,中國正式提出“加快建設數字經濟、數字社會、數字政府,以數字化轉型整體驅動生產方式、生活方式和治理方式變革”的發展目標。這標志著中國“加快數字化發展,建設數字中國”的目標正式啟航。習近平總書記指出,沒有網絡安全就沒有國家安全,就沒有經濟社會穩定運行,廣大人民群眾利益也難以得到保障。當今世界,以互聯網為代表的新興技術日新月異,對人類社會的發展進程產生深刻影響。同時,網絡安全問題也相伴而生。世界范圍內的個人隱私侵犯、知識產權侵犯、網絡犯罪等時有發生,網絡監聽、網絡攻擊、網絡恐怖主義活動等成為全球公害。網絡安全已經成為中國面臨的最復雜、最現實、最嚴峻的非傳統安全問題之一。網絡安全是經濟與社會發展的基礎保障。如何通過創新架構、創新理念和創新技術等方式突破現有困境,成為當前網絡和信息安全建設的重要工作。
安全架構是網絡和信息安全建設成果的重要體現。雖然近幾年零信任、縱深防御、網絡安全滑動標尺等安全架構和理念相繼產生,但并沒有根本性地改變安全建設與業務發展之間的生產關系:長期以來,安全架構建設由安全團隊獨立完成,被認為與企業架構及企業經營業務流程相對獨立;因為安全架構需要建立在企業架構相關可用信息之上,所以安全架構建設常常滯后于企業架構的動態演進。經歷數字化轉型后的企業架構就像復雜的企業數字生命體(以下簡稱數字生命體)一樣,會為了適應競爭環境而不斷“進化”。每一次進化都可能會給安全架構帶來巨大沖擊。靜態安全架構無法適應企業架構的動態變化,最終導致傳統架構下的安全能力無法動態貼近業務,應對更深層的復雜性安全風險。面對數字生命體的不斷進化,本文嘗試將數字生命體與“人類復雜有機體”(以下簡稱有機體)進行比較,思考安全架構建設的困境與愿景,探究數字生命體在進化過程中,如何通過創新技術來實現安全架構與企業架構的常態化融合,并保持安全架構的一致性、連續性、低侵入性、有效性、穩定性和友好性。
數字生命體中眾多面向公網開放的互聯網業務就像有機體的呼吸系統一樣。當前開源軟件的大規模引用和軟件供應鏈安全威脅的加劇,使得類似新冠病毒這樣的未知0day攻擊日趨常態化,并通過“呼吸系統”感染數字生命體內部。結合外部風險態勢和螞蟻集團自身的安全需求,我們看到:隨著業務復雜度的提升,已有的安全架構建設及單點安全能力顯得力不從心,在面對內外部環境時不斷爆出漏洞,在對抗、溯源、治理方面仍面臨巨大挑戰。因此,螞蟻集團對安全理念和安全架構進行了全面升級。其中,安全平行切面與平行艙是安全理念和架構的具體體現。安全平行切面是中國在國際安全領域首創的創新安全理念及技術。
據統計,2022年網絡與信息安全產業共包含94個細分安全領域[1],比2021年增加7個。近幾年,安全產業細分領域的快速增加在某種程度上表明,企業架構和業務邏輯復雜性的急劇增加也不斷催生新的安全需求。為滿足前期業務快速發展的需求,安全能力大多采用外掛式的架構模型保障業務發展。這種外掛式安全架構的部署成本和對業務的侵入性都較低,所以被各類企業所接受。但是在高強度對抗與復雜治理場景下,外掛式安全架構的業務效果受限于可觀測能力,已經無法滿足更深層次的對抗和治理需求。例如,在數據安全治理領域,過往對抗和治理的對象往往是內部結構化數據的非法泄漏風險。但如今數據已成為生產要素,數據要素的流動會潛藏數據非授權共享、個人隱私泄漏、敏感數據違規擴散等重大經營風險。企業不僅僅要在邊界層查看數據流出的一跳鏈路,更需要將整條數據傳輸鏈路及傳輸內容進行精細化審計和實質性管控。外掛式安全架構在高強度對抗與復雜治理場景下已顯得力不從心。
隨著網絡安全、數據安全、個人隱私保護等監管要求的加強,安全能力與業務邏輯相融合所產生的價值愈發凸顯,但彼此融合后又面臨嚴峻挑戰:融合升級后的安全防護效果優于外掛式安全架構,但在對抗方面基本無法發揮作用。其中,融合的形式包括安全團隊為滿足防護需求而開發的各種軟件開發工具包(SDK),以及需要與中間件深度集成的安全組件。受限于業務方的研發集成、發布和升級等工作,安全與業務相互間制約著各自的發展。例如,安全團隊需要小時級甚至分鐘級的止血響應,而大型業務團隊經常面臨著十幾個版本的碎片化測試和穩定性灰度上線壓力,無法滿足安全應急要求;更有甚者,安全團隊辛苦推動各基礎設施和應用服務集成一個關鍵安全增強組件,但基礎設施的一個小缺陷或者業務的一個需求變更回滾,導致安全團隊前功盡棄。
當前企業架構和業務邏輯呈現復雜性爆炸態勢。作為企業經營戰略的組成部分,安全架構應以低侵入而非捆綁的方式集成到企業架構中,以改變企業經營發展受到安全架構發展滯后影響的現狀,為業務提供體驗友好的原生化安全服務。這既是未來企業架構與安全架構共同的演進趨勢,也是安全架構建設的愿景。
面對數字生命體的進化和安全建設愿景,如何在動態過程中實現安全架構與業務架構的無縫融合,是螞蟻集團在新形勢下面臨的挑戰。螞蟻集團逐漸形成了以數據要素為中心的網絡安全架構。業務云化、數字化轉型等技術變革帶來了企業服務和數據要素的動態訪問需求,而動態訪問需求又產生了更為復雜的安全業務場景和需求,例如員工在任意空間對企業內網的安全訪問、在線數據要素的實時共享和確權、個人隱私信息保護、生產網訪問流量鑒權、多類型移動應用漏洞檢測等。面向復雜和動態的業務場景,靈活、快速地部署安全能力和響應安全需求,既是對已有安全架構和單點安全產品的挑戰,也是螞蟻集團新安全架構的建設訴求。螞蟻集團在2019年提出了安全平行切面的理念和技術體系[2],安全平行切面技術能夠在高強度對抗和復雜治理背景下,將安全能力深入到業務內部,從根本上解決問題。該技術不僅可以確保安全邏輯和業務邏輯各自獨立、平穩演進,避免出現綁腿走路的困境,還可以讓企業快速具備精準的感知和干預能力,同時實現安全能力和效率的跨越式提升。
我們通過類比的方式來描述什么是安全平行切面。在新冠病毒防控過程中,佩戴口罩和接種疫苗是非常重要的。(1)佩戴口罩的作用是防止空氣中的病毒通過呼吸系統進入體內。理想情況下,如果每個人都佩戴了口罩就相當于達到了微隔離的效果。但口罩不是完全封閉的狀態,病毒總會繞過口罩進入體內。(2)經過科學論證,接種疫苗是抗擊新冠病毒的最佳途徑。但在應對新冠病毒全面爆發這樣的突發事件時,疫苗的有效性、疫苗自身的安全性、與體內其他疫苗的兼容性、疫苗的規模化接種等變得非常關鍵。可以想象,對于不同國家來說,為1 000萬人口、1億人口和14億人口大規模接種疫苗的難度是完全不同的。
上述兩個階段恰好與企業在高強度對抗與安全治理的過程十分相似。企業首先通過入侵防御系統(IPS)/Web應用防火墻(WAF)/防火墻等對企業邊界進行防護。有效的邊界防護非常重要,它能夠防護大部分的外部攻擊。但防護能力始終存在被繞過的可能,所以企業開始考慮通過運行時插樁手段對正在運行的業務進行像疫苗一樣的保護。這種技術方式將安全邏輯注入到業務內容,形成一種以上下文分析和異常行為檢查為基礎的“抗疫”能力。這種植入“安全疫苗”的方式在螞蟻集團內部多個0day應急場景中被證明是有效的。因此,螞蟻集團自研了諸如運行時應用自我保護(RASP)、交互式應用安全測試(IAST)等安全疫苗產品。但在應急響應過程中,這同時也帶來了諸多問題:
· “安全疫苗”本身也是由代碼構成的,如何快速驗證疫苗能夠發揮預期的安全作用?
· 如何確保疫苗自身足夠安全,不會被攻擊繞過或被動失效?
· 如何確保疫苗自身足夠穩定,不會在出現異常的情況下影響宿主正常運轉?
· 企業可能擁有幾萬甚至幾十萬臺機器,那么如何在短時間內為每臺機器都注入疫苗?
· 每臺機器不會只注入一種疫苗,那么疫苗和疫苗之間如何進行有效的隔離,以確保不存在兼容性異常?
解決上述問題是螞蟻集團提出并打造安全平行切面架構的初心。我們發現:為安全疫苗在業務空間內提供一個可持續進化的安全平行空間,是未來高強度對抗與安全治理背景下安全能力建設的普遍需求和唯一方向。這樣的平行空間需要完備的穩定性、有效性、安全性、隔離性保障,不僅能夠幫助安全疫苗快速部署到離業務會話最近的地方,還能夠隨著業務的動態擴/縮容而動態部署,實現中心化安全能力向分布式安全資源的演進。
那么什么是安全平行切面?安全平行切面是一套由安全疫苗和疫苗運維基礎設施組成的安全架構。它首先在移動應用程序(APP)、云端應用、操作系統等應用與基礎設施中注入安全疫苗,形成端-管-云立體安全防護架構,通過安全邏輯與業務邏輯解耦實現網絡安全、數據安全的微觀和宏觀感知覆蓋,滿足應急響應、漏洞止血、數據安全、隱私保護等高強度對抗和安全治理需求。疫苗運維基礎設施則從研發、測試、驗證、監測與控制、穩定性保障等方面確保安全疫苗產品符合各類準入要求,并幫助各類安全疫苗實現全生命周期運維和大規模覆蓋。所以,安全疫苗(例如RASP、IAST或其他具備運行時安全特性的產品)與疫苗運維基礎設施共同構成了安全平行切面,如圖1所示。

▲圖1 安全平行切面為數字生命體提供疫苗保障
1997年施樂帕洛阿爾托研究中心的Gregor等學者在著名的歐洲面向對象編程(ECOOP)會議上提出AOP的概念[3]。研究發現,面向對象編程(OOP)不能解決所有的問題,特別是涉及大量類的橫切系統性功能問題很難用OOP來解決。而AOP能夠很好地解決這一問題,它可通過預編譯、運行時動態代理、注入等方式,在不修改原碼的情況下,給程序的正常業務邏輯動態添加或修改功能,如圖2所示。AOP已在AspectJ和Spring等項目中得到應用。
安全平行切面的核心思想是:將編程語言環境下的AOP推廣應用到安全架構建設中,構建與業務正交融合的安全平行空間,在不修改業務正常邏輯的情況下,將安全能力系統化地融入到技術基礎設施和應用服務的內部,從而實現更高維度的安全防護,在保持安全響應能力和復雜業務邏輯解耦的同時,通過標準化的接口為安全業務提供內視和干預能力。安全平行切面是一種創新的安全架構,是低成本實現“原生安全”、快速增強應用服務內在“安全體質”的一條可行路徑。
圖3是安全切面的基本結構,上方是業務空間,下方是平行空間。在平行空間里面,安全平行切面通過注入、代理等技術,可以在不修改源代碼的情況下動態添加新的(或修改程序原有的)邏輯。這部分動態邏輯稱為切面應用。切面應用的作用位置(切點)是應用原有運行邏輯中的某一代碼位置。一個切面應用可以作用于一個或者一組切點。類似于AOP的機制,安全切面可以將切點位置的代碼執行流程引至切面應用中,并對其原有邏輯進行觀測或干預。安全團隊可以通過研發部署各種作用于不同切點的切面應用,來為應用服務動態擴展出各種豐富的安全增強能力。這就像如同通過應用注射各種疫苗來提升應用服務自身應對安全風險的“抵抗力”。

▲圖3 安全切面的基本結構
切面應用的動態擴展能力能夠很好地降低日常安全治理成本,實現高效的安全響應能力。對切面應用模塊化的管理方式,不僅能使各類安全能力實現獨立開發,還可使不同的切面應用研發人員之間相互解耦,互不影響。但是便捷是一把雙刃劍,其背后隱藏著巨大的隱患。例如,隨著各類切面應用的不斷增多,切面應用的質量參差不齊導致各類系統故障,不同切面應用之間的相互影響導致功能異常。如果被惡意人員所利用,切面應用反而會成為應用服務的安全短板。因此,如果不加以合理管控,安全切面會成為安全和穩定性的短板,無法被大規模推廣使用。
為了保障平行空間內各種切面應用能夠平穩、有序、可控、安全地運行,在系統運行時我們對切面應用進行了一層封裝,即切面平行艙。這就像給疫苗加上一層“膠囊”一樣,能夠控制其在何時、何處、以何種規模生效。平行艙有三大特性:隔離性、可調度性和可管控性。借助平行艙可以對切面應用的作用和影響范圍、組件依賴、可執行動作等進行相應的隔離與管控,如圖4所示。

▲圖4 平行艙與切面應用
切面應用通過切面核心的加載器加載到平行空間中,在屬于其自身的平行艙中運行,并通過各平行艙命名空間的隔離,來確保其依賴作用域只限于自身,不會污染業務空間。切面核心通過統一注入的代理邏輯接管切點的處理流程,并根據各種切面應用的優先級進行統一的調度管理。當最終各切面應用的處置邏輯執行完成之后,根據不同切面應用的執行結果,決策器會給出對業務邏輯所需要執行的干預行為。當切面應用出現異常時,切面核心可作為異常緩沖;而當切面核心出現異常時,統一的代理邏輯可提供異常兜底機制,避免對業務產生影響。這極大地提高了切面基礎設施對切面應用和業務應用的運行保障能力。
此外,由于切面應用可以對業務執行流的上下文等數據進行修改,并且能和應用服務一樣訪問系統資源和服務,如果不加以限制,一旦被惡意利用,切面應用自身將成為安全短板。平行艙的訪問控制能力可以限制切面應用對業務上下文的讀寫,默認其只有只讀權限。這對于大部分觀測類的切面應用來說已經足夠使用。此外,對系統資源和服務的訪問,也可以通過平行艙限定在有限的范圍內。每個切面應用默認只能訪問屬于自身的資源目錄和提供有限的系統服務。只有經過許可的切面應用,才能執行額外的操作。
安全平行切面是一套安全基礎設施。通過提供統一的干預與內視能力,安全平行切面可實現豐富的安全能力。同時平行艙可確保整個架構平穩、可靠地運行,進一步提升了整個架構的安全性和穩定性,為各類切面應用與應用服務之間和諧有序共存提供了必要的基礎保障,為安全平行切面的大規模應用奠定了基礎。
在安全平行切面大規模落地的過程中,為了降低推進成本,減少不同語言、框架應用帶來的差異性,我們將安全平行切面的部署結構分為3個基本組成部分:切面安裝器、切面核心和切面應用。切面安裝器在接收到安裝指令后,會將指定版本的切面核心包下載,并在應用啟動階段,對應用執行注入動作,進而完成切面核心的部署。切面核心部署與切面應用部署如圖5所示。不同領域的安全團隊,比如數據安全、系統安全、攻防對抗等,可以各自獨立地對平行空間內的切面應用進行維護,從切面應用倉庫中,選擇并部署它們所需要的能力。整個過程不需要應用做任何提前準備和代碼修改。在這種解耦的工作模式下,各個團隊的效率都可以得到跨越式的提升。

▲圖5 切面核心部署與切面應用部署
安全平行切面是一個面向多語言、多框架異構應用的安全基礎設施。不同語言和框架的差異性使切面核心的注入方式、啟動方式等有所不同。為了盡可能降低由碎片化場景帶來的運維交付成本,滿足大規模部署要求,我們必須對適用于各類異構應用的切面進行運維操作統一化處理。因此,切面安裝器應運而生。
切面安裝器是一個純系統軟件,可廣泛應用于各類操作系統。在切面大規模部署之前,切面安裝器需要先安裝在所有目標應用容器之內。整個過程所需要的僅僅是系統軟件的批量安裝能力(在絕大多數云和企業中,這是一個比較常規的能力),并且這一過程通常是一次性的,成本相對可控。
在當下復雜的企業環境中,往往運行著各種基于不同語言和框架開發的應用服務。由于需要針對不同的應用服務決策下發不同的部署策略,因此切面管控管控端需要有足夠的信息依據,以便判定一個應用是什么語言類型、適合部署什么版本的切面。由此可見,在切面安裝器部署完成之后,首先要解決的是應用資產信息的收集問題。通過切面安裝器自帶的進程和環境信息上報能力,云端可以快速獲取每個容器中運行服務的基本情況。結合配置管理數據庫(CMDB)、代碼倉庫、平臺即服務(PaaS)等,我們可以很方便地識別出容器內運行應用服務的基本信息,例如所屬應用、開發語言、服務框架和負責人等,自動化地完成應用服務摸底任務。當然,對于一些元數據缺失的應用,我們也可以通過人工打標的方式完成資產判定。但是這對于存量應用的覆蓋是有限的,無法實現增量應用服務的自動識別與覆蓋,會產生一定的維護成本。
不同語言應用在切面核心注入邏輯上的原理與實現方式是有差別的。為了消除不同語言(或框架)切面核心的差異性,切面安裝器定義了一套統一的安全平行切面部署執行標準。無論哪種語言類型的切面核心,都使用同一個安裝包格式。安裝包內除了有切面核心具體代碼之外,還包含相對應的初始化腳本、注入腳本和啟動腳本等。針對不同語言類型的切面核心,切面安裝器只需要進行統一解壓、校驗,并按流程依次執行相應的腳本即可。標準化的運維操作可以讓我們很方便地實現面向任意語言切面的統一部署流水線,配合相應的監控、變更防御策略等,可以穩定、高效、自動化地完成大規模切面部署。
經過我們的實踐測算,在確保穩定性的情況下,平均每1 000個應用服務在完成日常安全能力升級時僅需要10人日(緊急情況下,甚至可以在小時級時間內完成),而傳統的強耦內嵌式的安全能力升級往往需要以月為單位計算。安全切面帶來的效能和安全敞口收斂效果的提升是跨越式的。在整個體系驗證完成后,螞蟻集團就很快完成了全站95%以上應用的接入,并完成了核心業務全覆蓋。整個系統非常穩定,至今未發生過故障,具有很好的推廣價值和借鑒意義。
安全平行切面給企業數字生命體帶來的最大收益是:能夠在企業動態進化的架構中構建與業務邏輯平行的原生安全空間,將“疫苗”快速、穩定、高效地注入給受保護的目標。安全平行切面架構能夠將安全邏輯深入到應用服務內部,天然具備更細粒度且更為精準的感知和干預能力。同時由于安全平行切面架構具有與業務解耦的特性,因此在效率與成本方面,優于很多傳統的內嵌安全架構。使用不斷擴展的切面應用可以實現各種豐富的安全能力。經過不斷探索,螞蟻集團目前已經擁有40多種切面應用,包括負責對抗和漏洞感知的切面應用(RASP、IAST等),以及和數據與隱私保護相關的切面應用(隱私數據的流轉和血緣分析、敏感接口的確權控制等)。
2021年底,Log4j被爆出存在命令執行漏洞,影響范圍廣泛。因攻擊難度低、變種多、內網穿透強性,log4j危險性極大。一方面,當時螞蟻集團正處于雙十二購物狂歡節(以下簡稱“雙十二”)大促業務穩定性保障的關鍵時期。在大促封網的關鍵時期,啟動全局范圍的修復阻力非常大,會耽誤最佳的應急時間。另一方面,由于log4j的攻擊變種比較多且具有相當強的內網穿透性,所以邊界層Web應用防護系統(WAF)的止血效果也十分有限。而基于安全平行切面實現的、大規模部署的RASP應用,可以很好地防御此次漏洞攻擊:只需要在漏洞執行鏈的關鍵切點進行阻斷即可,精準且高效。借助安全平行切面的快速部署能力,安全團隊在小時級的時間內就完成了全站數千個應用、幾十萬容器的防護升級,最終阻止了40多萬次真實外部攻擊,實現了0漏報和0誤報,使應急人力投入從預期的6 000人日降到30人日,大大提升了安全防護效率,縮短了安全風險的暴露時間,順利抗住了“雙十二”的流量洪峰。這個案例很好地體現了安全切面應用的精準感知和管控能力,即安全切面應用可以在非常細粒度的關鍵點上進行布防。不管外層如何變化和隱藏,都繞不過最終的執行點。同時,整套架構和業務自身是解耦的,不需要業務感知,極大提升了整體的應急效率。
在業務運轉過程中,數據就像血液一樣流動。敏感數據伴隨著普通數據在應用及數據存儲間快速流轉。基于敏感數據傳輸的上下文最終呈現數據血緣關系。基于切面體系實現的數據采集能力發揮其與業務融合又相對解耦的巨大優勢,大大提升了數據安全治理的可觀測性。可觀測性是指對海量、異構、復雜數據的采集、分析和展示能力,即不僅能夠在流轉的復雜結構數據中識別敏感數據,還能夠對敏感數據進行準確分類和分級。基于安全平行切面的數據安全應用能夠按照數據類型和采集需求動態下發采集規則,實現對指定接口讀寫數據的行為采集。后繼結合圖分析技術,將信息進行融合分析,可以還原整個數據處理流程,構建完善的數據鏈路血緣。通過安全平行切面架構對數據要素共享治理體系進行升級后,數據要素的分類分級識別能力、數據采集的可達范圍均可產生顯著提升,并將風險感知和處置的時效提升至分鐘級以內。
移動應用特別是平臺型APP存在大量第三方SDK、小程序、H5頁面等。由于缺少運行時的監測和管控技術,線上實際調用行為無法被觀測到。這導致APP的行為記錄、解釋和追溯變得極為困難。當出現問題之后,系統很難進行緊急阻斷。傳統方式下,應用的安全風險治理主要通過APP上架前的安全研發生命周期管理(SDL)和上架后的APP發版對漏洞進行修復。這種方式存在一些問題:
(1)難以枚舉應用的輸入與輸出。靜態分析可以枚舉出一部分,但誤報率高,且無法檢測動態加載的行為;動態檢測可以模擬的環境有限,只能觸發有限的業務場景。
(2)難以復現。應用的某些行為僅在特殊場景下才會觸發。而安全分析人員難以了解每個業務的細節。因此,這些僅在特殊場景下觸發的行為難以被發現和評估。
(3)難以修復。從發現問題到發布修復版本往往耗時數個月(3~4個版本),這給研發帶來巨大負擔。
利用代碼植入技術、運行時函數信息監測技術、風險行為檢測算法和運行時函數行為管控技術,移動端安全平行切面架構可以提供移動應用數據內視、行為刻畫和業務干預能力,實現針對運行時的威脅發現和惡意收集用戶隱私行為的監測和防護。目前通過對安全平行切面獲取的數據進行收集和挖掘,我們已經發現多個日活躍用戶數達到億級的移動應用的數十項隱私合規風險,包括隱私泄漏、后臺調用異常、超頻次使用、未授權調用等。這些風險可通過動態下發切面管控配置進行修復,不需要通過APP進行重新發版。
本文中我們將當前企業信息架構類比為數字生命體,將數字生命體的網絡攻擊防護與新冠病毒的防護進行類比,闡述了安全平行切面的內涵,并總結了網絡與信息安全形勢面臨的3個趨勢:企業數字生命體持續動態進化、業務規模及業務邏輯復雜性爆炸、高強度攻防對抗及安全治理日趨常態化。在這樣的背景與趨勢下,傳統靜態安全架構已顯得力不從心,原生安全架構比“口罩”的靜態安全架構有更加理想的安全效果。安全邏輯與業務邏輯緊密結合所帶來的巨大收益逐漸被人們重視。我們認為安全架構與企業架構實質性融合的時代即將到來。如何將安全邏輯像疫苗一樣安全、穩定、可靠、大規模地注入到應用內部是安全平行切面需要應對的挑戰。此外,本文還介紹了螞蟻集團安全平行切面架構和平行艙技術,闡述了如何通過疫苗運維基礎設施對安全疫苗實施全生命周期的運維保障。螞蟻集團應用安全平行切面所取得的收益或許能夠為安全行業帶來新的建設思路。
致謝
在本文撰寫過程中,螞蟻集團鄭旻、王少宇、李婷婷給予了大力支持,特此感謝!