從RSAC看DevSecOps的進化與落地思考

0引言

2020年RSA Conference於2月24日至28日在美國舊金山如期召開,今年的會議主題為“Human Element”,人為因素被認為是影響未來網絡安全發展最深遠的主題。基於參會人員的關注熱度,RSAC發佈了2020年網絡安全行業十大趨勢,DevSecOps再次成為大家關注的焦點之一。其中,有著“全球網絡安全風向標”之稱的RSA創新沙盒,進入十強的安全廠商中近半數聚焦在應用安全領域,BluBracket和ForAllSecure就是今年DevSecOps領域的創新廠商代表。作為國內DevSecOps的主要推動力量之一,在這裡對近幾年DevSecOps戰略框架的發展做個系統梳理,並分享我們懸鏡安全這些年探索的落地實踐方案。

01何為DevSecOps?

1.1DevSecOps的定義

DevSecOps(Development Security Operations的縮寫),一套基於DevOps體系的全新IT安全實踐戰略框架,最早由Gartner諮詢公司研究員David Cearley在2012年首次提出,它是一種糅合了開發、安全及運營理念的全新安全管理模式。2016年9月,Gartner發佈報告《DevSecOps: How to Seamlessly Integrate Security into DevOps》,業內首次對該模型及配套解決方案進行詳細的分析,核心理念為:“安全是整個IT團隊(包括開發、測試、運維及安全團隊)所有成員的責任,需要貫穿整個業務生命週期的每一個環節。

1.2DevSecOps的意義隨著雲計算、微服務和容器技術的快速普及,不僅IT基礎架構發生了巨大的變化,政企組織的業務交付模式也迎來巨大變遷,傳統SDLC開發模式向DevOps敏捷開發和持續交付模式遷移,在業務應用交付規模不斷擴大、交付速度不斷提高、開發運營場景一體化的大環境下,如何保障業務安全成了安全部門最大的難題。DevSecOps為此應運而生,它通過一套全新的方法論及配套工具鏈將安全能力嵌入到整個DevOps體系中,在保證業務快速發展的情況下實現安全內生和自成長。DevSecOps的廣泛應用將標誌著軟件供應鏈的安全保障進入到一個全新的時代,將安全作為管理對象的一種屬性,從軟件供應鏈開發早期開始進行全生命週期的安全管理,將徹底改善企業和機構在軟件和IT基礎設施的安全現狀。

1.3DevSecOps實踐的關鍵角色

如上文所述,如何把安全無縫柔和地集成到敏捷和DevOps開發中,就是DevSecOps重點關注的方向。總的來說,文化、技術和流程的協同在DevSecOps的落地實踐中扮演著重要的角色。文化:協作共識傳統文化:業務發展優先,安全是“以後”才會發生的事情,會阻礙業務的發展。DevSecOps文化:安全是大家的事。DevSecOps每一個項目都不是純安全部門的事,是安全和產品、研發、測試、運維等部門一起參與的項目,每一個人皆為安全負責。技術:持續自動化DevSecOps背後的哲學就是安全前置,從開發源頭做威脅管控, 相關工具鏈技術不僅可以在需求設計階段實現威脅建模、開發測試階段威脅發現,還應支持Jenkins等CI/CD管道,支撐DevOps敏捷開發和快速部署。流程:柔和低侵入柔和低侵入性是指配套工具鏈技術的實施儘可能對原業務流程產生微小的影響。好的實踐方案儘可能去依附企業原有的開發測試平臺來做,比如安全工具接入代碼管理、項目管理及第三方單點登錄系統等平臺,儘可能做到對政企用戶的透明自動化。

02從RSAC看DevSecOps的進化

2.1RSAC 2017

明確DevSecOps實踐主體內容,提出左移安全前置的思想DevSecOps於2017年首次引入RSAC,大會甚至專門為它設置研討會。DecSecOps機構總監Shannon Lietz在本次研討會上做了《下一代安全需要你!》的專題分享,她認為DevSecOps是一套體系化的方法論,由戰略驅動,一種通過初始創建並依據真實有效反饋的持續改進實現產品價值、運維、安全等各方面需求的實踐,通過開發、運維和安全團隊共同努力將安全和合規作為屬性嵌入整個流程,並獲得配套工具鏈支撐。

從RSAC看DevSecOps的進化與落地思考

圖2.1 RSAC2017 DevSecOps機構總監Shannon Lietz對“DevSecOps”的定義

通過本次研討會,業內同行對DevSecOps實踐的主體內容有了基本共識,論證了DevSecOps的實踐會對政企組織現有IT開發與運營模式的顛覆性影響。

  • 安全工作前置(Shift Left)。通過在軟件開發早期融入安全環節來降低解決問題的成本,前期介入的內容主要包括對開發測試人員的安全意識培訓、編碼人員安全開發規範的培訓、前期安全需求(非功能需求)的導入、開發時源碼審計工作、上線前安全審查等內容。在運營階段增加的內容主要集中在對新安全需求實現情況的驗證以及軟件整體安全評估。雖然在DevSecOps模式中,安全工作環節增加了,但是從軟件整個生命週期的開發與維護成本來看,提前發現問題會使安全成本大幅降低。
  • 柔和嵌入現有開發流程體系。

為了避免安全工作成為應用開發交付的阻礙, DevSecOps採用快速迭代的開發方式,安全技術的實現與現有開發平臺實現無縫對接,並將安全工作導入現有的開發工作流程和工具中,包括將安全需求導入至統一需求管理流程與工具、安全測試工作與CI/CD(持續集成/部署)對接、安全測試結果導入至缺陷管理工具等諸多環節。通過RSAC2017的DevSecOps專題研討,我們不難發現此時在國際上DevSecOps仍然處於萌芽探索階段,DevSecOps暫時還沒有一個通用化的標準或實踐指南,但對於DevSecOps實踐的主體內容有了相對統一的行業共識。

2.2RSAC 2018

首提“Golden Pipeline”概念,強調自動化工具鏈支撐

RSAC2018出現了一個新概念“Golden Pipeline”,姑且翻譯為“黃金管道”,特指一套通過穩定的、可落地的、安全的方式自動化地進行應用CI/CD的軟件流水線體系,其中工具鏈的自動化支撐程度是縮短調度成本實現快速迭代的關鍵,它為DevSecOps提供了一種便於理解和落地的實現方式。其中,涉及DevSecOps開發安全的主要包括以下四大關鍵安全活動:“Golden-Gate”、AST應用安全測試、SCA第三方組件成分分析、RASP運行時應用自我保護。

綜上,要真正實現DevSecOps Golden Pipeline的有效落地,關鍵點在於如何縮短調度成本,提高自動化的效率,而這又取決於流水線中工具鏈的自動化支撐程度。

從RSAC看DevSecOps的進化與落地思考

圖片2圖2.2 DevSecOps Golden Pipeline開發流程體系

Golden-Gate安全門同行代碼評審,由2位以上經驗豐富的工程師進行代碼評審,反饋討論之後,如果結果為通過,代碼將通過“Golden-Gate”進入真正的Golden Pipeline,這道工序被形象地稱為Golden-Gate,象徵著通過這道橋樑正式進入高度自動化的Golden Pipeline。

AST應用安全測試

AST(Application Security Testing)包括傳統SAST白盒靜態應用安全測試、黑盒DAST動態應用安全測試以及新一代IAST交互式應用安全測試技術。SAST的優點是CI階段就引入的代碼安全評審輔助手段,並可以支持多語言,缺點是對於執行流不可見,誤報太高,傳統商業SAST工具誤報率甚至高達40%,對於甲方開發人員造成嚴重的修復排查負擔,實際落地效果一般。DAST主要依賴網頁爬蟲技術,可以做到應用平臺無關性,較好地支持手工測試調試,但是缺點也很明顯比如檢測覆蓋率較低、對SPA框架等現代複雜應用支持較差、執行效率較低等,更適合上線後資產安全掃描。相比傳統SAST和DAST,IAST技術是Gartner公司提出的新一代交互式應用程序安全測試技術,通過運行時插樁、流量代理/VPN或旁路流量鏡像等技術手段,收集、監控Web應用程序的使用流量,並與檢測分析引擎進行實時交互,高效、準確的識別安全缺陷及漏洞,同時可準確定位漏洞所在的代碼文件、行數、函數及參數。當前業內比較有爭議的是IAST技術到底是否侷限於運行時插樁?筆者認為我們應該站在更加廣義的角度看待這個問題,從發展的視角評估該項新技術的引入對政企開發用戶CI/CD環節業務安全測試能力提升所帶來的巨大價值。從IAST的原始定義及這項技術引入的初衷來說,代理/VPN、旁路流量鏡像、主機流量嗅探等技術也都屬於交互式測試的手段之一,他們的綜合引入,豐富了政企用戶複雜的應用開發場景,真正做到了IAST對CD流程的柔和低侵入,規避了單一應用插樁技術受限於特定開發語言平臺及對業務性能影響的缺點。

SCA第三方組件成分分析

SCA第三方組件成分分析(Software Composition Analysis)技術,主要就是針對開源軟件(OSS)以及第三方商業軟件涉及的各種源碼、模塊、框架和庫,以識別和清點開源軟件(OSS)的組件及其構成和依賴關係,並識別已知的安全漏洞或者潛在的許可證授權問題,把這些風險排查在應用系統投產之前,同時也適用於應用業務運行中的診斷分析。當CI階段結束,將進行常規的冒煙測試和單元測試。由於開源代碼庫已關聯完成,平臺可以在這個階段通過任務調度自動引入第三方組件成分分析及缺陷檢測(SCA),並自動與權威漏洞庫進行關聯(美國國家漏洞庫NVD和中國國家信息安全漏洞庫CNNVD)。多數情況下,企業會選擇在功能測試的同時開展上線前的IAST灰盒應用安全測試,以便充分發現應用及業務交互中存在的潛在威脅。RASP運行時應用自保護在2014年的時候,Gartner引入了“Runtime application self-protection”概念,簡稱為RASP。它是一種新型應用安全保護技術,它將保護程序像疫苗一樣注入到應用程序中(運行時插樁),與應用程序融為一體,能實時檢測和阻斷安全攻擊,使應用程序具備自我保護能力,當應用程序遭受到實際攻擊傷害,就可以自動對其進行防禦,而不需要進行人工干預。與傳統WAF不同的是,由於運行時插樁可以拿到應用上下文信息,RASP可以完全掌握應用程序的輸入輸出,因此它可以根據具體的數據流定製合適的保護機制,從而可以達到非常精確的實時攻擊識別和攔截。提到RASP,不得不提與之相關聯的主動性IAST技術,二者的技術原理非常相似,都是通過應用插樁獲取測試流及上下文信息,並動態分析應用的安全性。主要的區別是主動IAST重在測試,通過CI/CD集成,不阻止訪問;而RASP重在線上運營生產環節,可以進行阻斷操作,大多數場景可以用來替代WAF方案。

2.3RSAC 2019

聚焦文化融合與實踐效果度量作為第三次設立的”DevSecOps day”,RSAC2019的主題是“DevOps Connect”,強調了DevSecOps落地實踐過程中文化融合的意義,並期望通過CI/CD管道輔以有效度量機制來實現效率上的提升。文化衝突和融合成為了本屆會議聚焦的重點話題之一,比如紅隊文化和開發人員之間的衝突,技術人員和非技術人員的衝突、管理者和被管理者的衝突等。以紅隊與開發者的衝突場景來舉例:紅隊習慣製造“驚喜”(找出問題但不提供解決方案)、獲取“機密”(用紅隊做掩護而獲取隱私數據),而這些都很難被開發人員以及組織所接受。為了嘗試解決DevSecOps具體實施過程帶來的文化衝突,重要手段之一就是文化變革。為此,安全專家Larry Maccherone在會議中提出了DevSecOps宣言:建立安全而不僅僅是依賴安全;依賴賦能的工程團隊而不僅僅是安全專家;安全地實現功能而不僅僅是安全功能;持續學習而不是閉門造車;採用一些專用或常用的最佳實踐而不是“偽”全面的措施;以文化變革為基礎而不僅僅依賴規章制度;DevSecOps融合文化的建立和變革不僅要運用培訓宣傳、會議溝通這類手段,還需要對組織的重新設計,比如建立“擰麻花”式的開放式組織,將安全人員融入每一個開發團隊,而不是建立封閉的部門。這種方式,使得掌握安全能力的人員深入業務、開發、運維等各個領域,讓DevSecOps真正創造價值,避免成為效率瓶頸。作為減少組織間不信任或衝突的一種有效方式之一,評估(度量)機制在本屆會議上被廣泛傳播。它的好處就是量化效率提升的具體效果,用數字說話。為此,Larry Maccherone也提出了DevSecOps的 9個關鍵實踐點和文化融合的7個階段:

從RSAC看DevSecOps的進化與落地思考

圖2.3 DevSecOps實踐的9個關鍵

這九個關鍵實踐點中,安全意識、同行評審、評估以及團隊合作協議等都對應著企業組織對DevSecOps的理念修正以及文化融合。

從RSAC看DevSecOps的進化與落地思考

圖2.4 DevSecOps文化融入的7個階段

通過對9個關鍵實踐點進行對應7個階段的度量標註,運用不同顏色直觀展示DecSecOps在組織中的實踐和接受程度,使政企組織對其安全開發能力和發展狀態的全貌有了更加直接的認識,為打破DevSecOps理念與傳統文化的壁壘提供指南,也為後續持續和深度的改進夯實基礎。

2.4RSAC 2020

聚焦組織內部DevSecOps轉型,強調人的因素RSAC2020於 2 月 24 日至 28 日在舊金山如期召開。本屆RSAC組委會通過對收到的2400份世界網絡安全專家提交的演講主題彙總分析,發佈了2020年網絡安全行業10大趨勢,這是全球網絡安全專業人員對2020年乃至今後行業發展的判斷,其中,“Human Element”被認為是影響未來網絡安全發展最深遠的主題,涉及安全前置的開發安全主題被重點做了討論。人為因素:人的行為自始至終就與數據,威脅,風險,隱私及管理等因素交織在一起。今年的議題中,有大量內容從以人為本的角度出發,平衡IT框架、對風險管理策略進行彙總、降低新威脅帶來的隱患、以及建立一個安全為中心的新技術文化。

DevSecOps:今年的DevSecOps出現了一些有意思的新議題,如將風險管理、合規與治理融入DevSecOps的實踐探索等。此外,還重點探討了從業者如何在組織內部調整並向 DevSecOps 轉型,詳細解析了組織所面臨阻礙其進步的問題類型,以及如何從公司的各個層面上獲得支持幫助等內容展開討論。同時,如何招聘、培養DevSecOps的人才與團隊也成為焦點議題。產品研發與維護的安全性:由於大量的演講申請聚焦在產品安全開發,今年RSAC新增了“產品安全與開源工具”方面的論壇。議題包含了保護開發生命週期與框架、連接產品和設備的安全性、開源代碼安全等內容。安全意識與培訓:說到人對安全的影響,安全意識必然是被重點關注的領域之一。今年安全意識方面的議題從多個方面進行,其中“安全開發實訓”、“網絡安全靶場”、“道德安全意識普及”等議題被頻繁提及。從RSAC 2017年第一次設立DevSecOps day至今,DevSecOps體系日趨成熟,相關方法論、技術與實踐經驗都有了明顯的提升,配套工具鏈技術也日趨完善,這其中多少要感謝一些國際技術創新力量的貢獻。這裡對往屆RSAC大會出現的部分創新廠商做個簡單總結,他們的創新技術方案為DevSecOps年度行業探索做了一定的引領。

從RSAC看DevSecOps的進化與落地思考

圖2.5 往屆RSAC中涉及DevSecOps的創新力量

03懸鏡的思考與實踐

3.1開發安全的一些思考

安全是一門平衡藝術隨著數字化轉型浪潮的來襲,國內網絡安全的重要性被提到了更高的地位。業務的發展離不開安全體系的保駕護航,其中,安全是一個動態平衡藝術,有兩層含義:擁抱變化是安全建設的基石。不同階段的政企組織,面臨的安全需求及迫切度不一樣,並且是階段性動態變化的。小微企業大部分精力在為了生存奔波,業務安全的合規是他們當前能應付的主要需求;中大型企業組織更加側重階段性安全建設,基礎安全防禦及服務化安全能力(即插即用)是他們當前的主要需求,比如開發安全裡急需的灰盒安全測試工具、運營安全裡的攻防演練服務等;行業頭部客戶更加註重中長期安全體系建設,內生安全是他們的戰略目標,建立適配業務場景的高級威脅檢測防禦一體化能力是他們的長期需求,比如基於DevSecOps或SDL的開發安全體系建設。安全的本質是風險和信任的平衡。在數字化時代的業務安全目標,更加強調對風險和信任的評估分析,這個分析的過程就是一個動態平衡的過程,告別過去傳統安全門式允許/阻斷的處置方式,旨在通過情境分析來評估業務風險,放棄追求絕對的安全,不要求零風險,不要求100%信任,尋求一種0和1之間的風險與信任的平衡。比如CD/CD管道中的IAST灰盒安全測試,我們的目標是重點解決90%以上的中高危安全漏洞,在多數情況下是允許低危漏洞流轉到線上運營環節的。人是安全的基本尺度人及團隊文化在整個安全體系建設中有著巨大的影響力,我們的行為自始至終就與數據,威脅,風險,隱私及管理等因素交織在一起,也是整個DevSecOps實踐框架中最不穩定的因素,為此RSAC2020的主題專門設定為“Human Element”。一個完善的開發安全體系建設,不僅要全流程考慮人和技術的因素, 更要從源頭抓起,早期的安全意識培訓、需求階段的威脅建模等都是十分必要的安全活動。根據NIST(National Institute of Standards and Technology)調查,接近92%的已知安全漏洞都發生在應用程序中,且軟件應用中每1000行代碼至少出現一個業務邏輯缺陷。可見,程序員安全素養的高低對業務安全有著直接的影響,DevSecOps的左移安全前置實踐非常有必要,能更早地發現問題、解決問題。攻防對抗是安全的脈搏孫子兵法中曾言:“用兵之法,無恃其不來,恃吾有以待也;無恃其不攻,恃吾有所不可攻也。”攻防對抗是網絡安全建設過程中永恆的主題,是檢驗現有安全體系防禦應對未知威脅成效能力最為直接的方式,RSCA2018中黃金管道涉及的BUG懸賞,本質也是鼓勵主動建立攻防對抗體系,如持續的安全眾測、不定期進行攻防演練並輔以配套的檢測響應手段等。

3.2懸鏡的落地實踐

微軟2003年開始實施的SDL(Security Development Lifecycle)安全開發理論框架,距今已有十多年曆史,當年的直接落地成果Windows Vista也已經退出歷史舞臺,而國內的SDL建設主要還是停留在互聯網大甲方的定製化場景中,通用的SDL落地方案及做起來的乙方廠商幾乎沒有,為什麼?因為SDL體系本身的場景化屬性太重,大甲方的SDL建設經驗是不太可能直接拿出來做複製的,如果沒有適合落地的支撐技術,強行SDL會對政企組織現有的流程和文化產生比較大的挑戰。這也是為什麼RSAC自2017開始興起DevSecOps戰略框架,並於2018年首次提出DevSecOps黃金管道的理念,重點強調了其中CI/CD的自動化工具鏈技術。雖然國內的金融、能源、交通等產業頭部用戶沒有像美國Comcast那樣做DevSecOps的深度轉型,大部分還是現有的SDL體系,但這並不妨礙他們開始積極擁抱DevSecOps的理念及黃金管道涉及的五大關鍵活動。正是這些關鍵活動涉及的新興技術的逐漸成熟和DevSecOps新理念的普及,推動了國內SDL安全開發體系的逐漸落地,關鍵標誌之一就是像懸鏡這樣專注DevSecOps的創新安全廠商開始湧現,他們的通用技術方案開始被越來越多的行業頭部用戶採納,並分階段持續為甲方建立起逐漸完善的安全開發體系。結合多年的DevSecOps實踐經驗,懸鏡探索出了DevSecOps智適應威脅管理體系,它作為DevSecOps全流程安全賦能平臺,從構築之初就注重技術落地的柔和低侵入性,從驅動DevSecOps CI/CD管道持續運轉的幾大關鍵實踐點入手,通過對威脅建模、威脅發現、威脅模擬及檢測響應等關鍵技術創新賦能政企組織現有人員,幫助甲方建立起更加高效完善的安全開發和安全運營體系。

從RSAC看DevSecOps的進化與落地思考

圖3.1 懸鏡DevSecOps智適應威脅管理體系

小結:伴隨著DevSecOps戰略框架的日趨完善和近3年RSAC的熱捧,國內相關領域的建設也迅速開展起來,但並不是所有甲方都適合直接套用DevSecOps實踐經驗,還要根據自身的組織發展目標、文化特點及業務場景做進一步論證。傳統SDL理念也並未過時,可以進一步融入這些年DevSecOps實踐的一些發展成果,將一些好落地的新興工具鏈技術(如IAST、SCA、自動化滲透測試等)及配套效率度量機制逐步柔和地嵌入現有IT體系中,將安全長遠規劃與階段性實施相結合,逐步摸索出甲方自己的安全能力體系。

04參考文獻

[1] Ernest Mueller.What Is DevOps?[EB/OL].https://theagileadmin.com/what-is-devops/,2010-08-02.[2] Shannon Lietz.What is DevSecOps?[EB/OL].https://www.devsecops.org/blog/2015/2/15/what-is-devsecops,2015-06-01.[3] Ian Head, Neil MacDonald.DevSecOps: How to Seamlessly Integrate Security Into DevOps[EB/OL].https://www.gartner.com/en/documents/3463417/devsecops-how-to-seamlessly-integrate-security-into-devo,2016-09-30. [4] Sam Olyaei, Peter Firstbrook, Brian Reed,Prateek Bhajanka, Neil MacDonald, Top 10 Security Projects for 2019[R].Gartner,2019.[5] Kasey Panetta,Gartner Top 7 Security and Risk Trends for 2019 [R].Gartner, 2019[6] Neil MacDonald, Seven Imperatives to Adopt aCARTA Strategic Approach[R].Gartner, 2018.


分享到:


相關文章: