全面落地DevSecOps,工商銀行安全管控建設實踐
一、業界安全態勢
二、金融行業安全管控核心訴求與策略
三、安全管控調研與實踐思路
四、未來展望
一、業界安全態勢
首先從Log4j2的1個核彈級高危漏洞談起,去年11月下旬,阿里云向Apache官方報告了Apache Log4j2 RCE漏洞。該漏洞屬于0-day漏洞,用戶可以借機獲得無限的權利,如提取敏感數據、上傳文件到服務器、刪除數據、安裝勒索軟件,以及進一步散播到其它服務器。但是阿里云并未上報工信部,直至12月9日工信部才經由其他渠道得知該漏洞,發布緊急通告,為時已晚。當晚國外公布了攻擊POC,在國內針對POC配置WAF進行防御的同時,進一步發布了可以繞過WAF的強化版POC。
因為大量網站存在該問題,業界同仁采用Fofa等網站進行檢測,結果因檢測流量太大導致Fofa等網站一度崩潰。與此同時,黑產和灰產們、黑灰產們在挖礦勒索武器庫上增加了該漏洞的利用模塊。此事給程序員帶來極大痛苦,12月9日晚是一個不眠之夜,已經寫入歷史篇章,程序員被迫緊急升級log4j2 2.15.0并及時上線以規避風險。根據業界某一安全團隊統計,72小時全球至少收到了84萬次攻擊,影響范圍非常大。
從apache官方的歷史提交版本變化情況來看,從12月6日到12月27日,Apache官方20天內升級了5個版本,同時2.15版本包含了RC1跟RC2兩個候選版本,因當時驗證發現RC1依然存在漏洞繞過情況,所以Apache官方最后以RC2作為標準版本進行發布。因為此事工信部與阿里云暫停了半年合作官方關系。從去年年底至今,美國商務部要求未經其授權許可不允許將安全漏洞分享給中國的消息持續發酵,影響嚴重。由此可見,掌握0-day漏洞相當于掌握了互聯網的命脈。
1.網絡威脅日益嚴重
這里列舉3例網絡安全事件。
17年勒索病毒“WannaCry”迅速席卷150多個國家,波及超20萬臺機器,其前身為NSA旗下的網絡武器永恒之藍,當時隨之泄露的還有永恒浪漫等近10款可以攻破全球70%用戶的漏洞利用工具,網絡安全岌岌可危。今年3月黑客“RED-LILI”針對NPM存儲庫進行攻擊,發布了近800個惡意NPM包。5月俄最大銀行遭到最嚴重的DDos攻擊,峰值流量高達450GB/秒。雖然可以通過CDN預防DDos攻擊,但會產生極大成本,付出與收益極不匹配。
總之,網絡威脅日益嚴重。從業界黑客的攻擊手段來看,一般分為以下5個階段:
- 探測:包括一些資產探測,服務識別,開源情報和供應鏈條。
- 滲透:通過社會工程學還有漏洞掃描去獲取一些用戶權限,探索其是否存在一些服務漏洞的端口,通過服務漏洞,進行嗅探攻擊,隨之獲取一些相應的權限。
- 駐留:包含了很多層面,比如黑客可以上傳一個木馬去提權至root權限;可以新增文件或修改文件滿足自己的特定需求;或修改注冊表,類似于勒索病毒的操作。除此之外,他們還會設置一些惡意程序,例如通過勒索軟件要求大家進行比特幣的購買和贖回;或者通過代理隧道實現攻擊方與受害者的連通。
- 傳播:包括惡意郵件、擺渡攻擊、釋放蠕蟲病毒、感染共享資源等多種方式。
- 癱瘓:數據就是金錢,黑客一般采用的方式為奪取控制,進行機密竊取,持久潛伏,獲取數據。
在防護方面,業界主要采用以下方式:
- 使用防火墻以及WAF進行外圍網絡層面的管控。
- 在內部管控方面,進行入侵檢測,防病毒處理,確保訪問進程和程序的安全性。
- 定期進行漏洞掃描,提前完成漏洞修復。
- 最關鍵的是提升大家的安全意識。從現有情況可以看出,人為泄露是產生網絡安全問題的重要原因。
2.數據安全事件危害程度日益加劇
數據安全事件危害程度也是日益加劇。風險基礎安全(Risk Based Security)數據顯示,2020年全球數據泄露達到360億條。IBM《2021年數據泄露成本報告》顯示,數據泄露事件平均帶來424萬美元損失。同時《2021年數據泄露調查報告》指出,2021年數據泄露85%涉及人為因素,由此可見,人是安全事件中的關鍵因素。
數據安全事件實質上存在兩個方面的影響:
1)網絡黑產蓬勃發展
19年拼多多過期優惠券Bug,一晚損失200億;22年4月,北美洲國家哥斯達黎加財政 部大量敏感數據被盜,至少損失2億美元。
2)數據泄露危害躍居前三
歐洲GDPR自16年發布起已進行多次罰款,僅在21年,盧森堡對亞馬遜罰款7.46億歐,迄今為止單筆罰款最高;荷蘭對“抖音”國際版罰款75萬歐元,中國企業(包括其控制的海外平臺)第一次遭處罰,具有一定標志性意義。國內也存在信息泄露罰款案例,例如21年1月某大型銀行湛江市分行因員工出售31,465條客戶信息被罰款20萬。
3.數據安全已上升到國家戰略層面
1)國際層面
2016年歐盟頒布GDPR(《通用數據保護條例》),2018年5月份正式生效,構建“泛歐數據市場”。2018年美國通過CLOUD 法案(《澄清域外合法使用數據法案》),可合法訪問境外數據,搶奪他國的“治外法權”。
由此可以看出,國家層面的數據安全戰略包括以下三方面:
- 搶奪他國“治外法權”
- “長臂管轄”擴大跨境數據執法權
- “內松外緊”主導數據戰略
2)中國層面
我國自2016年起,開始發布相應的安全條例。2016年發布《網絡安全法》,鼓勵數據安全保護;2021年發布《數據安全法》,將數據安全納入保障體系;2022年中國人民銀行發布《金融科技發展規劃(2022-2025)》,強調做好數據安全保護。
與國際咄咄逼人的策略不同,我們國家的策略包含以下三點:
- 主管部門各司其職形成監管新模式。
- 數據安全和網絡安全防護謀求統一。
- 多法并軌、多標準并行,對于行業的話,一個落地執行,會是一個很難的選擇。
二、金融行業安全管控核心訴求與策略
個人而言,金融行業安全管控的核心訴求及策略可以分為四個方面。
1.提升人員安全意識(網絡安全的關鍵和核心)
1)提升人員安全意識,避免被釣魚、社會工程學等因素無意識地泄露一些關鍵數據。
2)做好最小權限管控,可以通過文檔加密或通過隱寫術加水印,一方面可以避免人員有意識地泄露數據,另一方面可以事后精準定位和追責。
2.實現安全左移,柔和嵌入現有開發體系
1)將安全工具嵌入DevOps流水線,建成高效安全門禁,自動化管控安全出口質量,避免粗暴安全管控對研發過程造成巨大影響。
2)快速完成漏洞修補工作,降低安全漏洞。
3.強化運行時動態入侵檢測
1)快速識別異常攻擊行為:識別行為數據的的常見攻擊路線,本質上要依賴于專家庫進行處理,因為安全專家可以識別數據的常見攻擊路線,可以探究哪些行為數據是異常數據。
2)持續風險評估能力,快速識別行為偏離。以前我帶的團隊試點過鄔院士的擬態防御,通過部署多個動態異構體去提前發現安全風險并進行防御。
4.快速響應
1)輿情影響范圍快速聚焦。
2)自動實現輿情分發和跟蹤處置,提升應急響應時效,以便最小化損失。
三、安全管控調研與實踐思路
1.DevOps研發模式下的軟件安全轉變
1)瀑布模式
2004年微軟提出SDL理念,在當時具有劃時代的意義,對華為和富國銀行等眾多企業起到積極作用。隨著DevOps的興起,它存在以下兩大問題:
過度依賴于專家的能力,不適應現在的網絡安全生態;
忽略項目組的安全意識培訓,淪為“救火隊”。
2)DevOps
近幾年DevOps在國內處于持續上升和成熟期,在17年時Gartner提出了DevSecOps的全流程工具鏈,如上圖所示,針對DevOps的每個階段,均給出相關安全工具鏈(后面會具體展開,此處暫且不表),從而安全管控策略應符合以下兩個原則:
- 安全活動對于開發過程的影響降到最低;
- 容器、云原生、微服務等新技術要求高度自動化。
中國信通院并未對DevOps做出明確定義,但在《研發運營一體化(DevOps)能力成熟度模型第6部分:安全及風險管理》提出了以下4種全新安全理念與實踐模式。
- 控制通用風險
- 控制開發過程風險
- 控制交付過程風險
- 控制運營過程風險
其原則與DevSecOps理念相似,強調安全是每個人的責任,指將安全內嵌到應用的全生命周期,在安全風險可控的前提下,幫助企業提升IT效能,更好地實現研發運營一體化,做到全流程地安全內建,形成安全閉環。
2.工行安全管控探索歷程
工行開發中心分列于7地,現有8000多名研發人員,維護400多個應用,需要滿足不斷變化和日益增長的市場需求,如果完全實施SDL,人員投入成本和產出會嚴重失衡。
我行開發中心的安全管控探索包含兩個階段,第一個階段是2018年9月前,主要由業務研發中心安全實驗室負責安全驗收,類似于SDL的安全測試階段。因為測試階段臨近上線投產,發現問題后完成漏洞修復成本極高,可能存在安全設計層面的調整,存在影響業務上線的風險。于是在2019年9月后,開發中心開始提前安排安全管控和測試,并構筑安全攻擊鏈,效果很明顯,降低了約90%的安全測試問題,有效減少了問題成本。
剛才提到我們業務研發中心安全測試一般在交付后進行,即在投產前兩周內才會提問題,在這個時間點提復雜的安全問題,可能存在兩周內無法完成安全設計,需求無法閉環的風險,所以說我們將安全測試提前,在初步的測試階段即可發現安全設計的一些問題,將修改代價降到最低。
回顧當時的歷程,2016年Gartner發布報告《DevSecOps》 對模型及配套方案進行分析,2017年RSAC首次引入DevSecOps,這一概念開始流行起來。2018年,工行開啟DevOps建設,在穩定成熟以后,2019年工行開始進行安全工具鏈建設與安全團隊測試,與此同時,業界輕量級安全工具鏈日益豐富,與DevOps持續成熟相得益彰。
3.工行DevSecOps能力建設目標:一個提升,兩個降低
基于業界最新理念,我們制定了與業界同軌,形成DevSecOps能力建設的目標,即實現一個提升,兩個降低。
1)提升應用安全開發技術水平及人員能力
- 搭建統一應用安全平臺;
- 打通研發過程各節點安全活動;
- 構建面向軟件開發生命周期的閉環安全管理能力;
- 沉淀安全專家能力為安全資產。
2)降低應用風險漏洞數
- 通過過程控制及安全技術降低應用漏洞數;
- 通過一些工具鏈提前規避以及事先發現一些漏洞;
- 實現安全左移,降低發布 前應用安全漏洞數。
3)降低應用監管合規風險
- 將合規性要求事先納入應用系統開發需求;
- 提升應用持續性合規符合能力;
- 降低合規風險。
- 我們想要通過以上三個目標構建開發運營一體化的安全管理及技術體系。
4.DevSecOps能力體系:工行建設路徑
我們的建設路徑實際上包含三個方面。
1)安全能力原生化
- 將應用安全技術及能力固化到企業共用的開發框架、制品庫及微服務中,比如我們將owasp的ESAPI抽取形成細粒度標準化的安全組件,通過切面進行統一處理。
- 將應用安全從一種后期構建能力變成原生能力。
2)安全能力技術化與服務化
- 構建DevSecOps安全流水線,即業界所說的DevSecOps黃金管道。
- 通過流水線控制降低團隊工作量,提升安全工作效率。
- 通過黃金管道降低對人員安全能力依賴,同時對人員安全能力的提升進行潛移默化的影響。當我們發現安全問題時,開發人員可以快速知道如何修改和驗證,不知道如何修改的情況下可以咨詢專家庫。
3)安全管理過程化、可視化
- 將安全控制及安全管理從事后延伸到整個軟件開發及運維過程;
- 建立面向軟件生命周期的安全能力;
- 實現安全左移及過程管理,將安全風險及軟件缺陷消滅在上線前;
- 通過量化數字指標,指導軟件安全體系的演化及優化。
5.DevSecOps能力體系
我們能力體系分為4個建設目標,并依托目標形成層級和相關體系。
1)頂層架構
頂層架構有管理、有流程、有規范,有考核,即必須要有方法論基石,出問題后有法可依,我們針對這一目標建立了安全管理及標準體系,包括兩個方面:一是建立安全開發規范(應用需求規范、安全設計規范、開發規范,還有測試規范以及安全合規性的技術規范)和安全管理規范;二是開展人員管理建設,涉及組織架構與崗位角色的調整以及安全人員培養等等。
2)平臺支持
平臺支持,即要求平臺化技術規范的策略化可以做到全流程的覆蓋,為此,我們搭建了一個安全管理及技術平臺,實際上涵蓋了研發的所有環節,簡單來說就是要求:
- 管理要求平臺化
- 技術規范策略化
- 全流程覆蓋
- 全應用覆蓋
3)安全知識庫
我們需要把一些東西進行沉淀,因為專家的能力始終是專家自身的一部分,而我們要做到人人都要為安全負責,一方面我們可以學習專家的相關經驗進行成長,也就是傳承;另一方面我們要對團隊安全意識進行提升,為此我們嘗試逐步完善相關知識庫:
- 安全基線庫,對底層操作系統、中間件等進行安全層面的總體要求。
- 安全開發知識庫
- 安全測試知識庫,即如何進行模糊測試、滲透測試等等。
- 軟件制品庫,本質上npm、pypi和maven等各種制品庫,都會存在漏洞組件或惡意組件,必須要提前進行發現和規避。
- 安全培訓庫,目標是提升人員的安全意識,包含2個層次,一是員工如何應對社工的套路,避免無意泄露重要信息;二是發現釣魚或莫名其妙的郵件,不允許直接點擊而應該主動上報。
4)工具及DevOps整合
我們通過將工具鏈進行整合,降低使用門檻,提升人工效率以及提供閉環安全能力。這包括引入業界安全工具鏈和研發DevSecOps相關安全工具兩種情況。
6.DevSecOps能力體系:全流程閉環安全管控能力
1)研發過程安全
從需求、設計、開發、測試、發布到運營,我們每一環節都會有一個安全門禁或DOD進行控制處理,以保證每一階段安全質量目標的達成,最終保證出口安全質量。
2)運維安全事件響應及溯源
當發現運維安全事件后,我們要對運維安全事件積極響應以及事后溯源,以便實現自治體系的持續演進和提升。如果出現安全需求缺失,則要在需求環節進一步強化,比如通過威脅建模的方式提升需求安全性;如果設計環節有問題,發現安全設計缺陷,則應強化安全設計閉環,或通過其他的一些手段進行強化處理;如果開發階段存在安全組件漏洞或代碼缺陷,比如開發人員故意構筑代碼缺陷,以便于其離職后的違規操作,則進一步強化開發環節的代碼復核能力;如果是測試環節,則需要進一步優化完善測試用例缺失和測試工具漏報等問題。如果發布環節發現發布標準存在缺陷,則在后續的發布過程中進行改進。
3)安全能力沉淀
我們最后將安全能力沉淀,逐步建立一個持續演進的安全體系,這部分包括三方面:
① 問題修復跟蹤
- 運營安全問題閉環追蹤
- 安全問題回溯開發者
- 安全問題回溯引入源頭
② 應用橫行排查
- 基于缺陷組件橫向排查
- 基于缺陷代碼橫行排查
- 基于安全配置橫向排查
③ 安全能力沉淀
- 安全設計沉淀為知識庫
- 安全開發沉淀為安全組件
- 安全測試沉淀為工具規則
基于上述理念,我們通過同步、異步相結合的模式,規劃雙鏈路檢查模式,形成并提升DevSecOps能力。
1)構建并行于DevOps流程的可自由插拔裝配的“黃金管道”安全流水線,將掃描準確高的輕量級安全掃描工具納入CI/CD流水線,適應快速構建及交付要求,實現代碼安全質量嚴控。
2)對于掃描效率不高的安全掃描工具,通過異步模式在全量流水線進行定期調度,開展例行掃描。如上圖所示,CI流水線我們額外多了三個組件,一個是敏感信息檢測,第二個是SAST掃描,第三個是SCA掃描。
在使用工具方面,進行敏感信息檢測時,我們使用detect-secrets、 git-secrets等工具。對于SAST掃描,我們使用了三類工具,首先是Sonar(內置并持續增加諸多安全規則),我們可以看到像騰訊、阿里、華為等多家頭部公司都在使用,同業中招行以及中行也在使用,然后我們使用了findsecbugs,除此之外,我們還采購了代碼衛士等。
在SCA(軟件成分分析)掃描方面,我們目前采購了開源衛士,之前我們用了兩個工具,一個是license- maven-plugin ,sofa的良心組件,可以避免GPL許可證的使用。另一個是dependency check,它可以檢查組件是否存在漏洞,方便我們進行提前修復。
在CD流水線,除了SAST掃描外,我們又多了IAST、DAST掃描以及容器安全掃描。在DAST掃描的使用工具方面,我們使用OWASP ZAP和Appscan,除此之外,我們還采購了綠盟的檢查工具。在滲透測試方面,我們主要是通過工具輔助人工的方式展開。
通過整個流程,我們建立了安全質量門禁,以確保我們的出口可以達到安全質量的原則。在強化全流程管控能力的時候,我們為排查方便,構建了一個漏洞知識圖譜,以便提升自動化的排查能力。我們有400個應用,如果讓我們每次發郵件對全部應用進行排查,這會給大家帶來很大負擔。通過構筑知識圖譜體系,我們可以較為容易地實現向下排查。
四、未來展望
我們可以看到,安全演進的速度在逐步加快,技術變革將驅動新一代軟件安全革命。關鍵技術的演化,對于軟件安全攻防雙方來說,都是一個新的空白窗口期,誰能優先利用新技術,誰將在安全對抗中獲得領先優勢。
1.網絡安全網格
通過分布式架構方法,實現在分布式策略執行架構中實行集中策略編排和決策,用于實現可擴展、靈活和可靠的網絡安全控制。個人認為網絡安全網格是一個必然的趨勢。
2.隱私增強計算
隨著全球數據保護法規的成熟,各地區的CTO必然面臨數據隱私,不同于常見的靜態數據安全控制,隱私增強計算可在確保保密性或隱私的同時,保護正在使用的數據。數據價值其實在黑灰產中發揮了極致的作用,我們正處于大數據時代,通過隱私增強計算,既規避了數據隱私,又對我們建立千人前面的客戶畫像起到積極作用。落實反欺詐、評估個人數據轉型等高度敏感數據的處理活動,一般可通過聯邦學習,或通過同態加密的方式實現,在不侵犯數據隱私的情況下達成數據加工的目的。
3.決策智能
決策智能可被視作用于挖洞的一種手段,業界看來利用大數據分析技術挖掘程序潛在缺陷在技術原理上已經被證明是可行的,也在領先機構的研發中取得了實際效果。但是,我們應清醒的看到新漏洞挖掘技術是一把雙刃劍,在提升企業安全測試水平的同時,也可被攻擊者利用優先發掘0-day,即達到攻防的博弈平衡很難。大家如果關注騰訊的玄武實驗室或阿里云實驗室的話,可以發現一個高級漏洞的獎勵極其豐厚。
目前,開源組件漏洞呈現出愈演愈烈的趨勢,大家可以去NVD或CNNVD官網查看漏洞趨勢變化情況,從16年開始每年的漏洞均呈指數級增長。雖然開源軟件是一個好東西,它可以提升你的構建效率,避免重復造輪子,但它同時也是一把雙刃劍,它會把一些安全漏洞隱藏在其中。如何在用好開源軟件的同時保護好自己,個人以為該點在軟件開發過程中十分關鍵。
講師介紹
魏亞東,工商銀行軟件開發中心三級經理,資深架構師,杭州研發部數據庫專家團隊牽頭人和開發中心安全團隊成員,負責技術管理、數據庫、安全相關工作。2009年加入中國工商銀行軟件開發中心,致力于推動管理創新、效能提升,提供全面技術管控,推動自動化實施,實現業務價值的高質量快速交付;同時作為技術專家,為生產安全提供技術支持。