韋韜/WEI Tao,顧為群/GU Weiqun,劉宇江/LIU Yujiang
( 螞蟻集團,中國 杭州 310013 )
隨著“十四五”規(guī)劃的發(fā)布,中國正式提出“加快建設(shè)數(shù)字經(jīng)濟、數(shù)字社會、數(shù)字政府,以數(shù)字化轉(zhuǎn)型整體驅(qū)動生產(chǎn)方式、生活方式和治理方式變革”的發(fā)展目標。這標志著中國“加快數(shù)字化發(fā)展,建設(shè)數(shù)字中國”的目標正式啟航。習(xí)近平總書記指出,沒有網(wǎng)絡(luò)安全就沒有國家安全,就沒有經(jīng)濟社會穩(wěn)定運行,廣大人民群眾利益也難以得到保障。當今世界,以互聯(lián)網(wǎng)為代表的新興技術(shù)日新月異,對人類社會的發(fā)展進程產(chǎn)生深刻影響。同時,網(wǎng)絡(luò)安全問題也相伴而生。世界范圍內(nèi)的個人隱私侵犯、知識產(chǎn)權(quán)侵犯、網(wǎng)絡(luò)犯罪等時有發(fā)生,網(wǎng)絡(luò)監(jiān)聽、網(wǎng)絡(luò)攻擊、網(wǎng)絡(luò)恐怖主義活動等成為全球公害。網(wǎng)絡(luò)安全已經(jīng)成為中國面臨的最復(fù)雜、最現(xiàn)實、最嚴峻的非傳統(tǒng)安全問題之一。網(wǎng)絡(luò)安全是經(jīng)濟與社會發(fā)展的基礎(chǔ)保障。如何通過創(chuàng)新架構(gòu)、創(chuàng)新理念和創(chuàng)新技術(shù)等方式突破現(xiàn)有困境,成為當前網(wǎng)絡(luò)和信息安全建設(shè)的重要工作。
安全架構(gòu)是網(wǎng)絡(luò)和信息安全建設(shè)成果的重要體現(xiàn)。雖然近幾年零信任、縱深防御、網(wǎng)絡(luò)安全滑動標尺等安全架構(gòu)和理念相繼產(chǎn)生,但并沒有根本性地改變安全建設(shè)與業(yè)務(wù)發(fā)展之間的生產(chǎn)關(guān)系:長期以來,安全架構(gòu)建設(shè)由安全團隊獨立完成,被認為與企業(yè)架構(gòu)及企業(yè)經(jīng)營業(yè)務(wù)流程相對獨立;因為安全架構(gòu)需要建立在企業(yè)架構(gòu)相關(guān)可用信息之上,所以安全架構(gòu)建設(shè)常常滯后于企業(yè)架構(gòu)的動態(tài)演進。經(jīng)歷數(shù)字化轉(zhuǎn)型后的企業(yè)架構(gòu)就像復(fù)雜的企業(yè)數(shù)字生命體(以下簡稱數(shù)字生命體)一樣,會為了適應(yīng)競爭環(huán)境而不斷“進化”。每一次進化都可能會給安全架構(gòu)帶來巨大沖擊。靜態(tài)安全架構(gòu)無法適應(yīng)企業(yè)架構(gòu)的動態(tài)變化,最終導(dǎo)致傳統(tǒng)架構(gòu)下的安全能力無法動態(tài)貼近業(yè)務(wù),應(yīng)對更深層的復(fù)雜性安全風(fēng)險。面對數(shù)字生命體的不斷進化,本文嘗試將數(shù)字生命體與“人類復(fù)雜有機體”(以下簡稱有機體)進行比較,思考安全架構(gòu)建設(shè)的困境與愿景,探究數(shù)字生命體在進化過程中,如何通過創(chuàng)新技術(shù)來實現(xiàn)安全架構(gòu)與企業(yè)架構(gòu)的常態(tài)化融合,并保持安全架構(gòu)的一致性、連續(xù)性、低侵入性、有效性、穩(wěn)定性和友好性。
數(shù)字生命體中眾多面向公網(wǎng)開放的互聯(lián)網(wǎng)業(yè)務(wù)就像有機體的呼吸系統(tǒng)一樣。當前開源軟件的大規(guī)模引用和軟件供應(yīng)鏈安全威脅的加劇,使得類似新冠病毒這樣的未知0day攻擊日趨常態(tài)化,并通過“呼吸系統(tǒng)”感染數(shù)字生命體內(nèi)部。結(jié)合外部風(fēng)險態(tài)勢和螞蟻集團自身的安全需求,我們看到:隨著業(yè)務(wù)復(fù)雜度的提升,已有的安全架構(gòu)建設(shè)及單點安全能力顯得力不從心,在面對內(nèi)外部環(huán)境時不斷爆出漏洞,在對抗、溯源、治理方面仍面臨巨大挑戰(zhàn)。因此,螞蟻集團對安全理念和安全架構(gòu)進行了全面升級。其中,安全平行切面與平行艙是安全理念和架構(gòu)的具體體現(xiàn)。安全平行切面是中國在國際安全領(lǐng)域首創(chuàng)的創(chuàng)新安全理念及技術(shù)。
據(jù)統(tǒng)計,2022年網(wǎng)絡(luò)與信息安全產(chǎn)業(yè)共包含94個細分安全領(lǐng)域[1],比2021年增加7個。近幾年,安全產(chǎn)業(yè)細分領(lǐng)域的快速增加在某種程度上表明,企業(yè)架構(gòu)和業(yè)務(wù)邏輯復(fù)雜性的急劇增加也不斷催生新的安全需求。為滿足前期業(yè)務(wù)快速發(fā)展的需求,安全能力大多采用外掛式的架構(gòu)模型保障業(yè)務(wù)發(fā)展。這種外掛式安全架構(gòu)的部署成本和對業(yè)務(wù)的侵入性都較低,所以被各類企業(yè)所接受。但是在高強度對抗與復(fù)雜治理場景下,外掛式安全架構(gòu)的業(yè)務(wù)效果受限于可觀測能力,已經(jīng)無法滿足更深層次的對抗和治理需求。例如,在數(shù)據(jù)安全治理領(lǐng)域,過往對抗和治理的對象往往是內(nèi)部結(jié)構(gòu)化數(shù)據(jù)的非法泄漏風(fēng)險。但如今數(shù)據(jù)已成為生產(chǎn)要素,數(shù)據(jù)要素的流動會潛藏數(shù)據(jù)非授權(quán)共享、個人隱私泄漏、敏感數(shù)據(jù)違規(guī)擴散等重大經(jīng)營風(fēng)險。企業(yè)不僅僅要在邊界層查看數(shù)據(jù)流出的一跳鏈路,更需要將整條數(shù)據(jù)傳輸鏈路及傳輸內(nèi)容進行精細化審計和實質(zhì)性管控。外掛式安全架構(gòu)在高強度對抗與復(fù)雜治理場景下已顯得力不從心。
隨著網(wǎng)絡(luò)安全、數(shù)據(jù)安全、個人隱私保護等監(jiān)管要求的加強,安全能力與業(yè)務(wù)邏輯相融合所產(chǎn)生的價值愈發(fā)凸顯,但彼此融合后又面臨嚴峻挑戰(zhàn):融合升級后的安全防護效果優(yōu)于外掛式安全架構(gòu),但在對抗方面基本無法發(fā)揮作用。其中,融合的形式包括安全團隊為滿足防護需求而開發(fā)的各種軟件開發(fā)工具包(SDK),以及需要與中間件深度集成的安全組件。受限于業(yè)務(wù)方的研發(fā)集成、發(fā)布和升級等工作,安全與業(yè)務(wù)相互間制約著各自的發(fā)展。例如,安全團隊需要小時級甚至分鐘級的止血響應(yīng),而大型業(yè)務(wù)團隊經(jīng)常面臨著十幾個版本的碎片化測試和穩(wěn)定性灰度上線壓力,無法滿足安全應(yīng)急要求;更有甚者,安全團隊辛苦推動各基礎(chǔ)設(shè)施和應(yīng)用服務(wù)集成一個關(guān)鍵安全增強組件,但基礎(chǔ)設(shè)施的一個小缺陷或者業(yè)務(wù)的一個需求變更回滾,導(dǎo)致安全團隊前功盡棄。
當前企業(yè)架構(gòu)和業(yè)務(wù)邏輯呈現(xiàn)復(fù)雜性爆炸態(tài)勢。作為企業(yè)經(jīng)營戰(zhàn)略的組成部分,安全架構(gòu)應(yīng)以低侵入而非捆綁的方式集成到企業(yè)架構(gòu)中,以改變企業(yè)經(jīng)營發(fā)展受到安全架構(gòu)發(fā)展滯后影響的現(xiàn)狀,為業(yè)務(wù)提供體驗友好的原生化安全服務(wù)。這既是未來企業(yè)架構(gòu)與安全架構(gòu)共同的演進趨勢,也是安全架構(gòu)建設(shè)的愿景。
面對數(shù)字生命體的進化和安全建設(shè)愿景,如何在動態(tài)過程中實現(xiàn)安全架構(gòu)與業(yè)務(wù)架構(gòu)的無縫融合,是螞蟻集團在新形勢下面臨的挑戰(zhàn)。螞蟻集團逐漸形成了以數(shù)據(jù)要素為中心的網(wǎng)絡(luò)安全架構(gòu)。業(yè)務(wù)云化、數(shù)字化轉(zhuǎn)型等技術(shù)變革帶來了企業(yè)服務(wù)和數(shù)據(jù)要素的動態(tài)訪問需求,而動態(tài)訪問需求又產(chǎn)生了更為復(fù)雜的安全業(yè)務(wù)場景和需求,例如員工在任意空間對企業(yè)內(nèi)網(wǎng)的安全訪問、在線數(shù)據(jù)要素的實時共享和確權(quán)、個人隱私信息保護、生產(chǎn)網(wǎng)訪問流量鑒權(quán)、多類型移動應(yīng)用漏洞檢測等。面向復(fù)雜和動態(tài)的業(yè)務(wù)場景,靈活、快速地部署安全能力和響應(yīng)安全需求,既是對已有安全架構(gòu)和單點安全產(chǎn)品的挑戰(zhàn),也是螞蟻集團新安全架構(gòu)的建設(shè)訴求。螞蟻集團在2019年提出了安全平行切面的理念和技術(shù)體系[2],安全平行切面技術(shù)能夠在高強度對抗和復(fù)雜治理背景下,將安全能力深入到業(yè)務(wù)內(nèi)部,從根本上解決問題。該技術(shù)不僅可以確保安全邏輯和業(yè)務(wù)邏輯各自獨立、平穩(wěn)演進,避免出現(xiàn)綁腿走路的困境,還可以讓企業(yè)快速具備精準的感知和干預(yù)能力,同時實現(xiàn)安全能力和效率的跨越式提升。
我們通過類比的方式來描述什么是安全平行切面。在新冠病毒防控過程中,佩戴口罩和接種疫苗是非常重要的。(1)佩戴口罩的作用是防止空氣中的病毒通過呼吸系統(tǒng)進入體內(nèi)。理想情況下,如果每個人都佩戴了口罩就相當于達到了微隔離的效果。但口罩不是完全封閉的狀態(tài),病毒總會繞過口罩進入體內(nèi)。(2)經(jīng)過科學(xué)論證,接種疫苗是抗擊新冠病毒的最佳途徑。但在應(yīng)對新冠病毒全面爆發(fā)這樣的突發(fā)事件時,疫苗的有效性、疫苗自身的安全性、與體內(nèi)其他疫苗的兼容性、疫苗的規(guī)?;臃N等變得非常關(guān)鍵??梢韵胂螅瑢τ诓煌瑖襾碚f,為1 000萬人口、1億人口和14億人口大規(guī)模接種疫苗的難度是完全不同的。
上述兩個階段恰好與企業(yè)在高強度對抗與安全治理的過程十分相似。企業(yè)首先通過入侵防御系統(tǒng)(IPS)/Web應(yīng)用防火墻(WAF)/防火墻等對企業(yè)邊界進行防護。有效的邊界防護非常重要,它能夠防護大部分的外部攻擊。但防護能力始終存在被繞過的可能,所以企業(yè)開始考慮通過運行時插樁手段對正在運行的業(yè)務(wù)進行像疫苗一樣的保護。這種技術(shù)方式將安全邏輯注入到業(yè)務(wù)內(nèi)容,形成一種以上下文分析和異常行為檢查為基礎(chǔ)的“抗疫”能力。這種植入“安全疫苗”的方式在螞蟻集團內(nèi)部多個0day應(yīng)急場景中被證明是有效的。因此,螞蟻集團自研了諸如運行時應(yīng)用自我保護(RASP)、交互式應(yīng)用安全測試(IAST)等安全疫苗產(chǎn)品。但在應(yīng)急響應(yīng)過程中,這同時也帶來了諸多問題:
· “安全疫苗”本身也是由代碼構(gòu)成的,如何快速驗證疫苗能夠發(fā)揮預(yù)期的安全作用?
· 如何確保疫苗自身足夠安全,不會被攻擊繞過或被動失效?
· 如何確保疫苗自身足夠穩(wěn)定,不會在出現(xiàn)異常的情況下影響宿主正常運轉(zhuǎn)?
· 企業(yè)可能擁有幾萬甚至幾十萬臺機器,那么如何在短時間內(nèi)為每臺機器都注入疫苗?
· 每臺機器不會只注入一種疫苗,那么疫苗和疫苗之間如何進行有效的隔離,以確保不存在兼容性異常?
解決上述問題是螞蟻集團提出并打造安全平行切面架構(gòu)的初心。我們發(fā)現(xiàn):為安全疫苗在業(yè)務(wù)空間內(nèi)提供一個可持續(xù)進化的安全平行空間,是未來高強度對抗與安全治理背景下安全能力建設(shè)的普遍需求和唯一方向。這樣的平行空間需要完備的穩(wěn)定性、有效性、安全性、隔離性保障,不僅能夠幫助安全疫苗快速部署到離業(yè)務(wù)會話最近的地方,還能夠隨著業(yè)務(wù)的動態(tài)擴/縮容而動態(tài)部署,實現(xiàn)中心化安全能力向分布式安全資源的演進。
那么什么是安全平行切面?安全平行切面是一套由安全疫苗和疫苗運維基礎(chǔ)設(shè)施組成的安全架構(gòu)。它首先在移動應(yīng)用程序(APP)、云端應(yīng)用、操作系統(tǒng)等應(yīng)用與基礎(chǔ)設(shè)施中注入安全疫苗,形成端-管-云立體安全防護架構(gòu),通過安全邏輯與業(yè)務(wù)邏輯解耦實現(xiàn)網(wǎng)絡(luò)安全、數(shù)據(jù)安全的微觀和宏觀感知覆蓋,滿足應(yīng)急響應(yīng)、漏洞止血、數(shù)據(jù)安全、隱私保護等高強度對抗和安全治理需求。疫苗運維基礎(chǔ)設(shè)施則從研發(fā)、測試、驗證、監(jiān)測與控制、穩(wěn)定性保障等方面確保安全疫苗產(chǎn)品符合各類準入要求,并幫助各類安全疫苗實現(xiàn)全生命周期運維和大規(guī)模覆蓋。所以,安全疫苗(例如RASP、IAST或其他具備運行時安全特性的產(chǎn)品)與疫苗運維基礎(chǔ)設(shè)施共同構(gòu)成了安全平行切面,如圖1所示。
▲圖1 安全平行切面為數(shù)字生命體提供疫苗保障
1997年施樂帕洛阿爾托研究中心的Gregor等學(xué)者在著名的歐洲面向?qū)ο缶幊蹋‥COOP)會議上提出AOP的概念[3]。研究發(fā)現(xiàn),面向?qū)ο缶幊蹋∣OP)不能解決所有的問題,特別是涉及大量類的橫切系統(tǒng)性功能問題很難用OOP來解決。而AOP能夠很好地解決這一問題,它可通過預(yù)編譯、運行時動態(tài)代理、注入等方式,在不修改原碼的情況下,給程序的正常業(yè)務(wù)邏輯動態(tài)添加或修改功能,如圖2所示。AOP已在AspectJ和Spring等項目中得到應(yīng)用。
安全平行切面的核心思想是:將編程語言環(huán)境下的AOP推廣應(yīng)用到安全架構(gòu)建設(shè)中,構(gòu)建與業(yè)務(wù)正交融合的安全平行空間,在不修改業(yè)務(wù)正常邏輯的情況下,將安全能力系統(tǒng)化地融入到技術(shù)基礎(chǔ)設(shè)施和應(yīng)用服務(wù)的內(nèi)部,從而實現(xiàn)更高維度的安全防護,在保持安全響應(yīng)能力和復(fù)雜業(yè)務(wù)邏輯解耦的同時,通過標準化的接口為安全業(yè)務(wù)提供內(nèi)視和干預(yù)能力。安全平行切面是一種創(chuàng)新的安全架構(gòu),是低成本實現(xiàn)“原生安全”、快速增強應(yīng)用服務(wù)內(nèi)在“安全體質(zhì)”的一條可行路徑。
圖3是安全切面的基本結(jié)構(gòu),上方是業(yè)務(wù)空間,下方是平行空間。在平行空間里面,安全平行切面通過注入、代理等技術(shù),可以在不修改源代碼的情況下動態(tài)添加新的(或修改程序原有的)邏輯。這部分動態(tài)邏輯稱為切面應(yīng)用。切面應(yīng)用的作用位置(切點)是應(yīng)用原有運行邏輯中的某一代碼位置。一個切面應(yīng)用可以作用于一個或者一組切點。類似于AOP的機制,安全切面可以將切點位置的代碼執(zhí)行流程引至切面應(yīng)用中,并對其原有邏輯進行觀測或干預(yù)。安全團隊可以通過研發(fā)部署各種作用于不同切點的切面應(yīng)用,來為應(yīng)用服務(wù)動態(tài)擴展出各種豐富的安全增強能力。這就像如同通過應(yīng)用注射各種疫苗來提升應(yīng)用服務(wù)自身應(yīng)對安全風(fēng)險的“抵抗力”。
▲圖3 安全切面的基本結(jié)構(gòu)
切面應(yīng)用的動態(tài)擴展能力能夠很好地降低日常安全治理成本,實現(xiàn)高效的安全響應(yīng)能力。對切面應(yīng)用模塊化的管理方式,不僅能使各類安全能力實現(xiàn)獨立開發(fā),還可使不同的切面應(yīng)用研發(fā)人員之間相互解耦,互不影響。但是便捷是一把雙刃劍,其背后隱藏著巨大的隱患。例如,隨著各類切面應(yīng)用的不斷增多,切面應(yīng)用的質(zhì)量參差不齊導(dǎo)致各類系統(tǒng)故障,不同切面應(yīng)用之間的相互影響導(dǎo)致功能異常。如果被惡意人員所利用,切面應(yīng)用反而會成為應(yīng)用服務(wù)的安全短板。因此,如果不加以合理管控,安全切面會成為安全和穩(wěn)定性的短板,無法被大規(guī)模推廣使用。
為了保障平行空間內(nèi)各種切面應(yīng)用能夠平穩(wěn)、有序、可控、安全地運行,在系統(tǒng)運行時我們對切面應(yīng)用進行了一層封裝,即切面平行艙。這就像給疫苗加上一層“膠囊”一樣,能夠控制其在何時、何處、以何種規(guī)模生效。平行艙有三大特性:隔離性、可調(diào)度性和可管控性。借助平行艙可以對切面應(yīng)用的作用和影響范圍、組件依賴、可執(zhí)行動作等進行相應(yīng)的隔離與管控,如圖4所示。
▲圖4 平行艙與切面應(yīng)用
切面應(yīng)用通過切面核心的加載器加載到平行空間中,在屬于其自身的平行艙中運行,并通過各平行艙命名空間的隔離,來確保其依賴作用域只限于自身,不會污染業(yè)務(wù)空間。切面核心通過統(tǒng)一注入的代理邏輯接管切點的處理流程,并根據(jù)各種切面應(yīng)用的優(yōu)先級進行統(tǒng)一的調(diào)度管理。當最終各切面應(yīng)用的處置邏輯執(zhí)行完成之后,根據(jù)不同切面應(yīng)用的執(zhí)行結(jié)果,決策器會給出對業(yè)務(wù)邏輯所需要執(zhí)行的干預(yù)行為。當切面應(yīng)用出現(xiàn)異常時,切面核心可作為異常緩沖;而當切面核心出現(xiàn)異常時,統(tǒng)一的代理邏輯可提供異常兜底機制,避免對業(yè)務(wù)產(chǎn)生影響。這極大地提高了切面基礎(chǔ)設(shè)施對切面應(yīng)用和業(yè)務(wù)應(yīng)用的運行保障能力。
此外,由于切面應(yīng)用可以對業(yè)務(wù)執(zhí)行流的上下文等數(shù)據(jù)進行修改,并且能和應(yīng)用服務(wù)一樣訪問系統(tǒng)資源和服務(wù),如果不加以限制,一旦被惡意利用,切面應(yīng)用自身將成為安全短板。平行艙的訪問控制能力可以限制切面應(yīng)用對業(yè)務(wù)上下文的讀寫,默認其只有只讀權(quán)限。這對于大部分觀測類的切面應(yīng)用來說已經(jīng)足夠使用。此外,對系統(tǒng)資源和服務(wù)的訪問,也可以通過平行艙限定在有限的范圍內(nèi)。每個切面應(yīng)用默認只能訪問屬于自身的資源目錄和提供有限的系統(tǒng)服務(wù)。只有經(jīng)過許可的切面應(yīng)用,才能執(zhí)行額外的操作。
安全平行切面是一套安全基礎(chǔ)設(shè)施。通過提供統(tǒng)一的干預(yù)與內(nèi)視能力,安全平行切面可實現(xiàn)豐富的安全能力。同時平行艙可確保整個架構(gòu)平穩(wěn)、可靠地運行,進一步提升了整個架構(gòu)的安全性和穩(wěn)定性,為各類切面應(yīng)用與應(yīng)用服務(wù)之間和諧有序共存提供了必要的基礎(chǔ)保障,為安全平行切面的大規(guī)模應(yīng)用奠定了基礎(chǔ)。
在安全平行切面大規(guī)模落地的過程中,為了降低推進成本,減少不同語言、框架應(yīng)用帶來的差異性,我們將安全平行切面的部署結(jié)構(gòu)分為3個基本組成部分:切面安裝器、切面核心和切面應(yīng)用。切面安裝器在接收到安裝指令后,會將指定版本的切面核心包下載,并在應(yīng)用啟動階段,對應(yīng)用執(zhí)行注入動作,進而完成切面核心的部署。切面核心部署與切面應(yīng)用部署如圖5所示。不同領(lǐng)域的安全團隊,比如數(shù)據(jù)安全、系統(tǒng)安全、攻防對抗等,可以各自獨立地對平行空間內(nèi)的切面應(yīng)用進行維護,從切面應(yīng)用倉庫中,選擇并部署它們所需要的能力。整個過程不需要應(yīng)用做任何提前準備和代碼修改。在這種解耦的工作模式下,各個團隊的效率都可以得到跨越式的提升。
▲圖5 切面核心部署與切面應(yīng)用部署
安全平行切面是一個面向多語言、多框架異構(gòu)應(yīng)用的安全基礎(chǔ)設(shè)施。不同語言和框架的差異性使切面核心的注入方式、啟動方式等有所不同。為了盡可能降低由碎片化場景帶來的運維交付成本,滿足大規(guī)模部署要求,我們必須對適用于各類異構(gòu)應(yīng)用的切面進行運維操作統(tǒng)一化處理。因此,切面安裝器應(yīng)運而生。
切面安裝器是一個純系統(tǒng)軟件,可廣泛應(yīng)用于各類操作系統(tǒng)。在切面大規(guī)模部署之前,切面安裝器需要先安裝在所有目標應(yīng)用容器之內(nèi)。整個過程所需要的僅僅是系統(tǒng)軟件的批量安裝能力(在絕大多數(shù)云和企業(yè)中,這是一個比較常規(guī)的能力),并且這一過程通常是一次性的,成本相對可控。
在當下復(fù)雜的企業(yè)環(huán)境中,往往運行著各種基于不同語言和框架開發(fā)的應(yīng)用服務(wù)。由于需要針對不同的應(yīng)用服務(wù)決策下發(fā)不同的部署策略,因此切面管控管控端需要有足夠的信息依據(jù),以便判定一個應(yīng)用是什么語言類型、適合部署什么版本的切面。由此可見,在切面安裝器部署完成之后,首先要解決的是應(yīng)用資產(chǎn)信息的收集問題。通過切面安裝器自帶的進程和環(huán)境信息上報能力,云端可以快速獲取每個容器中運行服務(wù)的基本情況。結(jié)合配置管理數(shù)據(jù)庫(CMDB)、代碼倉庫、平臺即服務(wù)(PaaS)等,我們可以很方便地識別出容器內(nèi)運行應(yīng)用服務(wù)的基本信息,例如所屬應(yīng)用、開發(fā)語言、服務(wù)框架和負責(zé)人等,自動化地完成應(yīng)用服務(wù)摸底任務(wù)。當然,對于一些元數(shù)據(jù)缺失的應(yīng)用,我們也可以通過人工打標的方式完成資產(chǎn)判定。但是這對于存量應(yīng)用的覆蓋是有限的,無法實現(xiàn)增量應(yīng)用服務(wù)的自動識別與覆蓋,會產(chǎn)生一定的維護成本。
不同語言應(yīng)用在切面核心注入邏輯上的原理與實現(xiàn)方式是有差別的。為了消除不同語言(或框架)切面核心的差異性,切面安裝器定義了一套統(tǒng)一的安全平行切面部署執(zhí)行標準。無論哪種語言類型的切面核心,都使用同一個安裝包格式。安裝包內(nèi)除了有切面核心具體代碼之外,還包含相對應(yīng)的初始化腳本、注入腳本和啟動腳本等。針對不同語言類型的切面核心,切面安裝器只需要進行統(tǒng)一解壓、校驗,并按流程依次執(zhí)行相應(yīng)的腳本即可。標準化的運維操作可以讓我們很方便地實現(xiàn)面向任意語言切面的統(tǒng)一部署流水線,配合相應(yīng)的監(jiān)控、變更防御策略等,可以穩(wěn)定、高效、自動化地完成大規(guī)模切面部署。
經(jīng)過我們的實踐測算,在確保穩(wěn)定性的情況下,平均每1 000個應(yīng)用服務(wù)在完成日常安全能力升級時僅需要10人日(緊急情況下,甚至可以在小時級時間內(nèi)完成),而傳統(tǒng)的強耦內(nèi)嵌式的安全能力升級往往需要以月為單位計算。安全切面帶來的效能和安全敞口收斂效果的提升是跨越式的。在整個體系驗證完成后,螞蟻集團就很快完成了全站95%以上應(yīng)用的接入,并完成了核心業(yè)務(wù)全覆蓋。整個系統(tǒng)非常穩(wěn)定,至今未發(fā)生過故障,具有很好的推廣價值和借鑒意義。
安全平行切面給企業(yè)數(shù)字生命體帶來的最大收益是:能夠在企業(yè)動態(tài)進化的架構(gòu)中構(gòu)建與業(yè)務(wù)邏輯平行的原生安全空間,將“疫苗”快速、穩(wěn)定、高效地注入給受保護的目標。安全平行切面架構(gòu)能夠?qū)踩壿嬌钊氲綉?yīng)用服務(wù)內(nèi)部,天然具備更細粒度且更為精準的感知和干預(yù)能力。同時由于安全平行切面架構(gòu)具有與業(yè)務(wù)解耦的特性,因此在效率與成本方面,優(yōu)于很多傳統(tǒng)的內(nèi)嵌安全架構(gòu)。使用不斷擴展的切面應(yīng)用可以實現(xiàn)各種豐富的安全能力。經(jīng)過不斷探索,螞蟻集團目前已經(jīng)擁有40多種切面應(yīng)用,包括負責(zé)對抗和漏洞感知的切面應(yīng)用(RASP、IAST等),以及和數(shù)據(jù)與隱私保護相關(guān)的切面應(yīng)用(隱私數(shù)據(jù)的流轉(zhuǎn)和血緣分析、敏感接口的確權(quán)控制等)。
2021年底,Log4j被爆出存在命令執(zhí)行漏洞,影響范圍廣泛。因攻擊難度低、變種多、內(nèi)網(wǎng)穿透強性,log4j危險性極大。一方面,當時螞蟻集團正處于雙十二購物狂歡節(jié)(以下簡稱“雙十二”)大促業(yè)務(wù)穩(wěn)定性保障的關(guān)鍵時期。在大促封網(wǎng)的關(guān)鍵時期,啟動全局范圍的修復(fù)阻力非常大,會耽誤最佳的應(yīng)急時間。另一方面,由于log4j的攻擊變種比較多且具有相當強的內(nèi)網(wǎng)穿透性,所以邊界層Web應(yīng)用防護系統(tǒng)(WAF)的止血效果也十分有限。而基于安全平行切面實現(xiàn)的、大規(guī)模部署的RASP應(yīng)用,可以很好地防御此次漏洞攻擊:只需要在漏洞執(zhí)行鏈的關(guān)鍵切點進行阻斷即可,精準且高效。借助安全平行切面的快速部署能力,安全團隊在小時級的時間內(nèi)就完成了全站數(shù)千個應(yīng)用、幾十萬容器的防護升級,最終阻止了40多萬次真實外部攻擊,實現(xiàn)了0漏報和0誤報,使應(yīng)急人力投入從預(yù)期的6 000人日降到30人日,大大提升了安全防護效率,縮短了安全風(fēng)險的暴露時間,順利抗住了“雙十二”的流量洪峰。這個案例很好地體現(xiàn)了安全切面應(yīng)用的精準感知和管控能力,即安全切面應(yīng)用可以在非常細粒度的關(guān)鍵點上進行布防。不管外層如何變化和隱藏,都繞不過最終的執(zhí)行點。同時,整套架構(gòu)和業(yè)務(wù)自身是解耦的,不需要業(yè)務(wù)感知,極大提升了整體的應(yīng)急效率。
在業(yè)務(wù)運轉(zhuǎn)過程中,數(shù)據(jù)就像血液一樣流動。敏感數(shù)據(jù)伴隨著普通數(shù)據(jù)在應(yīng)用及數(shù)據(jù)存儲間快速流轉(zhuǎn)?;诿舾袛?shù)據(jù)傳輸?shù)纳舷挛淖罱K呈現(xiàn)數(shù)據(jù)血緣關(guān)系。基于切面體系實現(xiàn)的數(shù)據(jù)采集能力發(fā)揮其與業(yè)務(wù)融合又相對解耦的巨大優(yōu)勢,大大提升了數(shù)據(jù)安全治理的可觀測性??捎^測性是指對海量、異構(gòu)、復(fù)雜數(shù)據(jù)的采集、分析和展示能力,即不僅能夠在流轉(zhuǎn)的復(fù)雜結(jié)構(gòu)數(shù)據(jù)中識別敏感數(shù)據(jù),還能夠?qū)γ舾袛?shù)據(jù)進行準確分類和分級?;诎踩叫星忻娴臄?shù)據(jù)安全應(yīng)用能夠按照數(shù)據(jù)類型和采集需求動態(tài)下發(fā)采集規(guī)則,實現(xiàn)對指定接口讀寫數(shù)據(jù)的行為采集。后繼結(jié)合圖分析技術(shù),將信息進行融合分析,可以還原整個數(shù)據(jù)處理流程,構(gòu)建完善的數(shù)據(jù)鏈路血緣。通過安全平行切面架構(gòu)對數(shù)據(jù)要素共享治理體系進行升級后,數(shù)據(jù)要素的分類分級識別能力、數(shù)據(jù)采集的可達范圍均可產(chǎn)生顯著提升,并將風(fēng)險感知和處置的時效提升至分鐘級以內(nèi)。
移動應(yīng)用特別是平臺型APP存在大量第三方SDK、小程序、H5頁面等。由于缺少運行時的監(jiān)測和管控技術(shù),線上實際調(diào)用行為無法被觀測到。這導(dǎo)致APP的行為記錄、解釋和追溯變得極為困難。當出現(xiàn)問題之后,系統(tǒng)很難進行緊急阻斷。傳統(tǒng)方式下,應(yīng)用的安全風(fēng)險治理主要通過APP上架前的安全研發(fā)生命周期管理(SDL)和上架后的APP發(fā)版對漏洞進行修復(fù)。這種方式存在一些問題:
(1)難以枚舉應(yīng)用的輸入與輸出。靜態(tài)分析可以枚舉出一部分,但誤報率高,且無法檢測動態(tài)加載的行為;動態(tài)檢測可以模擬的環(huán)境有限,只能觸發(fā)有限的業(yè)務(wù)場景。
(2)難以復(fù)現(xiàn)。應(yīng)用的某些行為僅在特殊場景下才會觸發(fā)。而安全分析人員難以了解每個業(yè)務(wù)的細節(jié)。因此,這些僅在特殊場景下觸發(fā)的行為難以被發(fā)現(xiàn)和評估。
(3)難以修復(fù)。從發(fā)現(xiàn)問題到發(fā)布修復(fù)版本往往耗時數(shù)個月(3~4個版本),這給研發(fā)帶來巨大負擔(dān)。
利用代碼植入技術(shù)、運行時函數(shù)信息監(jiān)測技術(shù)、風(fēng)險行為檢測算法和運行時函數(shù)行為管控技術(shù),移動端安全平行切面架構(gòu)可以提供移動應(yīng)用數(shù)據(jù)內(nèi)視、行為刻畫和業(yè)務(wù)干預(yù)能力,實現(xiàn)針對運行時的威脅發(fā)現(xiàn)和惡意收集用戶隱私行為的監(jiān)測和防護。目前通過對安全平行切面獲取的數(shù)據(jù)進行收集和挖掘,我們已經(jīng)發(fā)現(xiàn)多個日活躍用戶數(shù)達到億級的移動應(yīng)用的數(shù)十項隱私合規(guī)風(fēng)險,包括隱私泄漏、后臺調(diào)用異常、超頻次使用、未授權(quán)調(diào)用等。這些風(fēng)險可通過動態(tài)下發(fā)切面管控配置進行修復(fù),不需要通過APP進行重新發(fā)版。
本文中我們將當前企業(yè)信息架構(gòu)類比為數(shù)字生命體,將數(shù)字生命體的網(wǎng)絡(luò)攻擊防護與新冠病毒的防護進行類比,闡述了安全平行切面的內(nèi)涵,并總結(jié)了網(wǎng)絡(luò)與信息安全形勢面臨的3個趨勢:企業(yè)數(shù)字生命體持續(xù)動態(tài)進化、業(yè)務(wù)規(guī)模及業(yè)務(wù)邏輯復(fù)雜性爆炸、高強度攻防對抗及安全治理日趨常態(tài)化。在這樣的背景與趨勢下,傳統(tǒng)靜態(tài)安全架構(gòu)已顯得力不從心,原生安全架構(gòu)比“口罩”的靜態(tài)安全架構(gòu)有更加理想的安全效果。安全邏輯與業(yè)務(wù)邏輯緊密結(jié)合所帶來的巨大收益逐漸被人們重視。我們認為安全架構(gòu)與企業(yè)架構(gòu)實質(zhì)性融合的時代即將到來。如何將安全邏輯像疫苗一樣安全、穩(wěn)定、可靠、大規(guī)模地注入到應(yīng)用內(nèi)部是安全平行切面需要應(yīng)對的挑戰(zhàn)。此外,本文還介紹了螞蟻集團安全平行切面架構(gòu)和平行艙技術(shù),闡述了如何通過疫苗運維基礎(chǔ)設(shè)施對安全疫苗實施全生命周期的運維保障。螞蟻集團應(yīng)用安全平行切面所取得的收益或許能夠為安全行業(yè)帶來新的建設(shè)思路。
致謝
在本文撰寫過程中,螞蟻集團鄭旻、王少宇、李婷婷給予了大力支持,特此感謝!