懸鏡安全直播回顧 | 子芽&CCF TF:云原生場景下軟件供應(yīng)鏈風險治理技術(shù)淺談
摘要: 于近日舉辦的CCF TF第61期交流活動,特別邀請懸鏡安全創(chuàng)始人&CEO子芽發(fā)表演講。
CCF TF(技術(shù)前線委員會,Tech Frontier Committee)是中國計算機學(xué)會(CCF)為企業(yè)界計算機專業(yè)人士創(chuàng)建的企業(yè)間常態(tài)化合作交流平臺,創(chuàng)始委員由Intel、LinkedIn、Microsoft、愛奇藝、百度、滴滴、方正、瓜子、華為、京東、鏈家網(wǎng)、聯(lián)想、螞蟻金服、美團點評、摩拜、奇虎360、搜狗、曙光、騰訊、網(wǎng)易、微博、小米、攜程、新浪、中興等25家知名企業(yè)的技術(shù)團隊負責人(CTO、技術(shù)副總或研究院院長)擔任。CCF TF會定期以SIG(Special Interest Group)為主體舉行豐富的交流活動。
于近日舉辦的CCF TF第61期交流活動,主題為開發(fā)安全與軟件供應(yīng)鏈安全,特別邀請懸鏡安全創(chuàng)始人&CEO子芽發(fā)表演講。子芽憑借自身對行業(yè)的敏銳洞察以及懸鏡在相關(guān)領(lǐng)域的技術(shù)創(chuàng)新和實踐經(jīng)驗,與CCF TF安全SIG主席&北京賽博英杰科技有限公司董事長譚曉生及其他嘉賓對軟件供應(yīng)鏈風險治理進行了深度探討。
基于這樣的大背景,子芽以“云原生場景下軟件供應(yīng)鏈風險治理技術(shù)淺談”為主題,詳細闡明了軟件供應(yīng)鏈風險治理流程以及自動化智能化工具鏈——懸鏡安全原創(chuàng)專利級代碼疫苗和積極防御技術(shù)。
數(shù)字化時代,對于軟件應(yīng)用有三個安全共識:
1. 數(shù)字化應(yīng)用正成為社會運轉(zhuǎn)的基本組件。數(shù)字化時代,一切皆可編程,軟件定義萬物。軟件已然成為新一代信息技術(shù)的靈魂。
2. 現(xiàn)代軟件都是組裝的而非純自研。近5年,開源代碼在現(xiàn)代應(yīng)用中所占比例由40%增至78%-90%?;煸撮_發(fā)成為主要模式,軟件供應(yīng)鏈安全威脅日趨嚴峻。
3. 代碼一定有未被發(fā)現(xiàn)的安全漏洞。平均每千行代碼就會出現(xiàn)2-40個邏輯性缺陷。缺陷是天生的,漏洞是必然的。
軟件供應(yīng)鏈泛指一家企業(yè)和組織開展數(shù)字化業(yè)務(wù)所依賴的軟件,包括研發(fā)、運營、供應(yīng)等各項活動所依賴的軟件以及與軟件評估、生產(chǎn)、分發(fā)等相關(guān)的任何活動,主要包括三個方面:軟件開發(fā)方(供應(yīng)商/上游)、軟件供應(yīng)方(供應(yīng)商及運營服務(wù)商/中間)、軟件使用方(消費者/下游)。
在云原生時代,軟件供應(yīng)鏈技術(shù)發(fā)生了躍遷式的演進,相較以往,有4處不同。
第一個是新制品,即軟件成分從傳統(tǒng)的閉源到混源再到以開源為主導(dǎo);
第二個是新發(fā)布,即開發(fā)過程不斷升級,從傳統(tǒng)的瀑布式到敏捷再到當下DevOps研運一體化;
第三個是新技術(shù),即數(shù)字化應(yīng)用架構(gòu)從早期的單體應(yīng)用到SOA(Service-Oriented Architecture,面向服務(wù)的架構(gòu))再到微服務(wù);
第四個是新環(huán)境,即數(shù)字化基礎(chǔ)設(shè)施從IDC物理機到虛擬化再到容器化。
伴隨這些演進而來的是新的安全風險。在敏捷業(yè)務(wù)交付的背景下,由于開源軟件的廣泛使用,微服務(wù)應(yīng)用本身安全漏洞逐漸積累。新的基礎(chǔ)設(shè)施引入新的防護對象,比如云原生場景下的鏡像風險、微服務(wù)運行風險、基礎(chǔ)設(shè)施風險、網(wǎng)絡(luò)安全風險,其中微服務(wù)風險主要與數(shù)字化應(yīng)用息息相關(guān),包括通用漏洞、業(yè)務(wù)邏輯漏洞、異常行為代碼、微服務(wù)框架漏洞、微服務(wù)開源組件漏洞等。
近年來,軟件供應(yīng)鏈攻擊事件頻發(fā),風險涉及開源軟件漏洞、開源工具被污染、廠商預(yù)留后門、升級劫持、惡意軟件、源代碼污染、開發(fā)環(huán)境漏洞等。尤其是去年爆發(fā)的Log4j2.x核彈級漏洞,至今回想起來仍令人記憶猶新。
通過對這些事件進行梳理總結(jié),可將整個軟件供應(yīng)鏈的主要安全風險分為三個階段:軟件開發(fā)環(huán)節(jié)、軟件供應(yīng)環(huán)節(jié)和軟件使用環(huán)節(jié)。每個環(huán)節(jié)都有相對應(yīng)的安全痛點。
在開發(fā)環(huán)節(jié),存在引用的組件攜帶漏洞、異常行為代碼或者后門,引入的開發(fā)工具、DevOps平臺和環(huán)境缺少管控以及開發(fā)人員安全意識薄弱等情況。值得一提的是,去年RSAC創(chuàng)新沙盒大賽的全球總冠軍Apiiro公司主要解決的就是開發(fā)環(huán)境中的供應(yīng)鏈安全問題,這些風險不但來自應(yīng)用本身,而且還源于環(huán)境和人員。
在供應(yīng)環(huán)節(jié),外包開發(fā)/外采過程中,沒有對交付的軟件進行安全規(guī)范,沒有提供安全保障措施,就會產(chǎn)生軟件供應(yīng)鏈安全風險。在使用環(huán)節(jié)即常態(tài)化運營環(huán)節(jié)中也存在第三方組件漏洞等安全問題。
因而需要將軟件供應(yīng)鏈看作一個整體,進行綜合的風險治理。
前面提到軟件開發(fā)方式從閉源到混源再到開源驅(qū)動,隨著開發(fā)方式的演進,數(shù)字化應(yīng)用安全風險面除了傳統(tǒng)的Web通用漏洞、業(yè)務(wù)邏輯漏洞以外,還增加了開源成分的缺陷及后門、后門惡意代碼。
整個供應(yīng)鏈上下游的軟件分為商采、開源和免費三種,因而開源風險治理自然成了整個軟件供應(yīng)鏈安全保障的關(guān)鍵點之一。
開源風險治理存在四大痛點:
1. 看不清:無法清楚得知在數(shù)字化業(yè)務(wù)運行過程中動態(tài)加載被使用的組件數(shù)量和種類。
2. 摸不透:無法清楚得知開源軟件中真實可被利用的中高危漏洞的數(shù)量。
3.跟不上:受限于漏洞情報,無法準確確定開源軟件漏洞真實影響的范圍。
4. 防不?。?/strong>無法對未知漏洞進行提前的積極防御。
建立規(guī)范的開源治理體系能有效解決以上痛點。第一步,統(tǒng)一開源組件的引入入口及流程規(guī)范,把控源頭;第二步,檢測和梳理資產(chǎn),生成詳細的SBOM(軟件物料清單);第三步,分批整改,引入代碼疫苗技術(shù),幫助應(yīng)用本身獲得威脅免疫能力,實現(xiàn)對外部威脅的積極防御;第四步也是核心,要以人為本,對整個IT過程中相關(guān)人員的安全素養(yǎng)進行賦能。
從SDLC軟件開發(fā)全生命周期的角度看,從編碼、構(gòu)建、測試一直到運營階段的安全管理,開源風險治理乃至整個軟件供應(yīng)鏈風險治理的核心是既要實現(xiàn)“安全左移”,從源頭做治理,又要在云原生場景下實現(xiàn)“敏捷右移”,要求安全措施、安全技術(shù)覆蓋云原生場景下的典型基礎(chǔ)設(shè)施和應(yīng)用。
眾所周知,于去年年底爆發(fā)的Log4j2.x遠程代碼執(zhí)行漏洞堪稱核彈級漏洞。由于它屬于Javay語言生態(tài)基礎(chǔ)庫的高危漏洞,而基礎(chǔ)庫的相互引用影響是指數(shù)級的,粗略統(tǒng)計,70%左右的Java應(yīng)用受到影響。而且該漏洞觸發(fā)無前置條件,攻擊者可以通過它輕松實現(xiàn)遠程代碼執(zhí)行。
這類漏洞的爆發(fā)引發(fā)了業(yè)內(nèi)對軟件供應(yīng)鏈風險治理的深度思考。首先需要加強對源頭的檢測,在編碼、構(gòu)建、測試等環(huán)節(jié),通過自動化的安全能力比如IAST和SCA,對數(shù)字化應(yīng)用進行持續(xù)檢測;其次,不同于早期的原生應(yīng)用,需要通過代碼疫苗技術(shù)使應(yīng)用自我防御一些未知漏洞,實現(xiàn)應(yīng)用的出廠自免疫;第三,在常態(tài)化運營階段,需要結(jié)合漏洞情報能力和配套的管理措施,確保軟件物料清單的動態(tài)更新,實時掌握制品庫的詳細情況和安全體系的構(gòu)筑能力。
介紹懸鏡原創(chuàng)專利級的代碼疫苗技術(shù)之前,不得不先提及網(wǎng)絡(luò)安全的三次關(guān)鍵演進。
第一次演進是指網(wǎng)絡(luò)邊界過濾分析技術(shù),比如傳統(tǒng)的防火墻、WAF等,作用在網(wǎng)絡(luò)層,優(yōu)勢在于部署交付過程相對便捷,但是對外部威脅的洞察是粗粒度的。
第二次演進是指主機環(huán)境環(huán)境檢測響應(yīng)技術(shù),比如EDR等,能夠?qū)?yīng)用或者外部異常行為進行細粒度的捕捉、分析和溯源,但是無法在云原生場景下,在容器化環(huán)境與基于微服務(wù)的應(yīng)用架構(gòu)下,對加密流量或者微服務(wù)中的應(yīng)用流量進行實時的洞察和分析,所以催生了第三次演進,即應(yīng)用運行時情境感知技術(shù),也就是代碼疫苗技術(shù)。
代碼疫苗技術(shù)不僅善于解決對外部入侵威脅“看不見、看不清”的問題,實現(xiàn)內(nèi)生積極防御,而且能實時捕捉應(yīng)用運行時情境感知的上下文,并且不會對整個策略產(chǎn)生過多的維護成本。更為重要的一點在于,代碼疫苗技術(shù)能結(jié)合SCA軟件成分分析技術(shù),實時分析數(shù)字化應(yīng)用中的第三方開源成分,從而實現(xiàn)對重大組件漏洞的提前防御。
代碼疫苗技術(shù)經(jīng)歷了一個演進過程。早在2012年和2014年,代碼疫苗技術(shù)中的IAST和RASP就分別被提出。起初,代碼疫苗技術(shù)受限于其核心單探針技術(shù)對應(yīng)用性能和兼容性的影響,因而并沒有在業(yè)內(nèi)形成推廣之勢。懸鏡之所以能在代碼疫苗技術(shù)方面取得成功,是由于隨著DevOps的逐漸興起,我們先在研發(fā)測試環(huán)境中將IAST探針打磨成熟,使之能支撐百萬級的高并發(fā)應(yīng)用場景,在此基礎(chǔ)上再去拓展它的積極防御能力,這是一個循序漸進的進化過程。所以懸鏡當下所掌握的代碼疫苗技術(shù),它的核心探針既能實現(xiàn)IAST灰盒安全測試能力,也能實現(xiàn)API挖掘分析能力,還能實現(xiàn)RASP的自適應(yīng)出廠免疫能力和運營時的敏感數(shù)據(jù)追蹤能力。
代碼疫苗技術(shù)的核心分為兩個部分,一個是IAST交互式安全測試能力,另一個是RASP的積極防御能力。
其中IAST交互式安全測試又分為狹義和廣義兩種。狹義的IAST特指運行時動態(tài)插樁技術(shù),主要包括被動的動態(tài)污點追蹤和主動的交互式缺陷定位。廣義的IAST主要包含流量學(xué)習(xí)和日志分析,在此基礎(chǔ)上對數(shù)據(jù)進行重放和分析,進而能定位漏洞所在位置。相較于傳統(tǒng)的白盒和黑盒技術(shù),IAST這種灰盒技術(shù)具有非常大的優(yōu)勢,善于精準識別和分析API、分析第三方開源成分以及精準追蹤動態(tài)敏感數(shù)據(jù)。
RASP的核心在于輕量級的探針、統(tǒng)一的管控平臺和配套的積極防御插件。第一,它能幫助應(yīng)對重大未知威脅或典型威脅,使應(yīng)用實現(xiàn)出廠免疫;第二,具備熱補丁功能,對動態(tài)發(fā)生的部分組件漏洞進行修復(fù);第三,在云原生場景下,對微服務(wù)應(yīng)用上下文進行捕捉和分析;第四,對攻擊來源回溯。
總而言之,相較于傳統(tǒng)的WAF和EDR,RASP具有以下幾大核心優(yōu)勢:對未知漏洞的防御;對第三方組件漏洞的防御;對框架組件漏洞的防御;對WebShell的防御。
基于代碼疫苗技術(shù)的應(yīng)用風險管理是一個閉環(huán),在每個環(huán)節(jié)都具備對應(yīng)的能力,如漏洞發(fā)現(xiàn)、漏洞驗證、漏洞分發(fā)和漏洞修復(fù),能很好地結(jié)合IAST和RASP,在DevOps敏態(tài)環(huán)境下適應(yīng)業(yè)務(wù)的快速交付。
代碼疫苗技術(shù)能將自身的灰盒安全測試能力、第三方的開源成分掃描能力以及RASP積極防御能力對SDL不同環(huán)節(jié)進行精準覆蓋。
結(jié)合整個軟件供應(yīng)鏈全流程風險治理框架來看,在框架的每個環(huán)節(jié)都可以通過融入核心的自動化技術(shù)和配套的安全服務(wù)規(guī)范,形成高效的解決方案。
IDC發(fā)布的云原生安全熱點技術(shù)相關(guān)報告將DevSecOps判定為變革型技術(shù),且處于上升期。前文提到的云原生時代四大新變化,其中開發(fā)方式的變化以及應(yīng)用架構(gòu)的變化,都是以DevSecOps為主要推動力。
懸鏡曾與甲方用戶深度探討,在云原生安全構(gòu)建過程中,究竟是以容器安全技術(shù)為主導(dǎo),還是以DevSecOps安全技術(shù)作為支撐。在最終落地探索過程中,我們發(fā)現(xiàn)還是得依靠DevSecOps安全技術(shù)和相關(guān)安全廠商的支持,來形成整個方案的主體部分。
DevSecOps的核心是如何在DevOps研運一體化的各個階段嵌入安全,主要包含四大要素:組織、流程、技術(shù)和文化。
實際落地DevSecOps的過程主要分為三個階段。在第一個階段,要確保數(shù)字化應(yīng)用在安全左移的過程中不存在中高危漏洞,或者漏洞能被快速捕捉和修復(fù)。在第二個階段需要建立體系,包括SDL安全開發(fā)賦能平臺、左移情境式威脅建模工具和配套的咨詢服務(wù)。在第三個階段,需要加入安全度量,只有通過度量才能明確持續(xù)改進的方向,此外在云原生場景下進行敏捷右移需要關(guān)注整個體系的安全運營效果,而BAS技術(shù)正是與之相關(guān)的關(guān)鍵技術(shù),它能通過持續(xù)威脅模擬對現(xiàn)有防御體系進行持續(xù)驗證,度量其有效性。BAS可以和代碼疫苗技術(shù)的RASP形成內(nèi)外聯(lián)動,初步搭建起積極防御體系。
DevSecOps敏捷安全技術(shù)是不斷發(fā)展的。懸鏡每年都會在自己舉辦的DevSecOps大會上發(fā)布DevSecOps敏捷安全技術(shù)金字塔,為該賽道指出技術(shù)未來演進方向。
懸鏡通過市場觀察和實踐發(fā)現(xiàn),BAS目前只停留在頭部企業(yè)探索實踐階段,而IAST、容器安全和OSS/SCA,需求和建設(shè)程度都是相對比較靠前。金字塔往上具有一定深度的安全能力,比如RASP,能結(jié)合端點安全技術(shù)實現(xiàn)對整個護網(wǎng)場景中“最后一公里”的實時防御。此外RASP能與IAST、BAS綜合聯(lián)動,形成積極防御體系。而API Fuzz技術(shù),雖說多年前便已被提出,但目前仍具有局限性,第一是其挖掘未知漏洞的能力仍有待商榷,第二是使用門檻較高,需要對其產(chǎn)生的異常數(shù)據(jù)結(jié)果做進一步專業(yè)的分析,第三是對性能的消耗較大,因而對硬件要求較高。
再往上一層是自動化的風險評估技術(shù),包括安全測試編排等,目前懸鏡正與甲方用戶在該技術(shù)方向進行嘗試。以ASTO為例,它的核心是結(jié)合白盒、灰盒和黑盒的能力,從而發(fā)現(xiàn)更深層次的業(yè)務(wù)邏輯漏洞。
最頂層的CARTA,是希望實現(xiàn)風險與信任的平衡,綜合考慮漏洞與數(shù)字化應(yīng)用所關(guān)聯(lián)業(yè)務(wù),從而構(gòu)建一個信任和彈性并存的研運一體化安全環(huán)境,進而使企業(yè)能夠敏捷和安全地對整個軟件供應(yīng)鏈進行建設(shè)和保障。
最后需要再次強調(diào)的是,云原生時代下,不僅需要安全左移,還要做到敏捷右移,使常態(tài)化運營適應(yīng)敏捷開發(fā)節(jié)奏和適合云原生場景,并且形成積極防御的安全能力。這是懸鏡認為的軟件供應(yīng)鏈風險治理最佳實踐。
于近日舉辦的CCF TF第61期交流活動,主題為開發(fā)安全與軟件供應(yīng)鏈安全,特別邀請懸鏡安全創(chuàng)始人&CEO子芽發(fā)表演講。子芽憑借自身對行業(yè)的敏銳洞察以及懸鏡在相關(guān)領(lǐng)域的技術(shù)創(chuàng)新和實踐經(jīng)驗,與CCF TF安全SIG主席&北京賽博英杰科技有限公司董事長譚曉生及其他嘉賓對軟件供應(yīng)鏈風險治理進行了深度探討。

圖1 掃碼觀看更多精彩回放
當下,云原生技術(shù)正驅(qū)動著產(chǎn)業(yè)數(shù)字化轉(zhuǎn)型進程不斷加速,由云原生和開源帶來的下一代軟件供應(yīng)鏈安全正面臨新的挑戰(zhàn)。如何使開發(fā)的軟件更為安全,如何保障軟件供應(yīng)鏈安全,是全球關(guān)注的焦點。基于這樣的大背景,子芽以“云原生場景下軟件供應(yīng)鏈風險治理技術(shù)淺談”為主題,詳細闡明了軟件供應(yīng)鏈風險治理流程以及自動化智能化工具鏈——懸鏡安全原創(chuàng)專利級代碼疫苗和積極防御技術(shù)。
云原生時代面臨的應(yīng)用安全風險
數(shù)字化時代,對于軟件應(yīng)用有三個安全共識:
1. 數(shù)字化應(yīng)用正成為社會運轉(zhuǎn)的基本組件。數(shù)字化時代,一切皆可編程,軟件定義萬物。軟件已然成為新一代信息技術(shù)的靈魂。
2. 現(xiàn)代軟件都是組裝的而非純自研。近5年,開源代碼在現(xiàn)代應(yīng)用中所占比例由40%增至78%-90%?;煸撮_發(fā)成為主要模式,軟件供應(yīng)鏈安全威脅日趨嚴峻。
3. 代碼一定有未被發(fā)現(xiàn)的安全漏洞。平均每千行代碼就會出現(xiàn)2-40個邏輯性缺陷。缺陷是天生的,漏洞是必然的。
軟件供應(yīng)鏈泛指一家企業(yè)和組織開展數(shù)字化業(yè)務(wù)所依賴的軟件,包括研發(fā)、運營、供應(yīng)等各項活動所依賴的軟件以及與軟件評估、生產(chǎn)、分發(fā)等相關(guān)的任何活動,主要包括三個方面:軟件開發(fā)方(供應(yīng)商/上游)、軟件供應(yīng)方(供應(yīng)商及運營服務(wù)商/中間)、軟件使用方(消費者/下游)。
在云原生時代,軟件供應(yīng)鏈技術(shù)發(fā)生了躍遷式的演進,相較以往,有4處不同。
第一個是新制品,即軟件成分從傳統(tǒng)的閉源到混源再到以開源為主導(dǎo);
第二個是新發(fā)布,即開發(fā)過程不斷升級,從傳統(tǒng)的瀑布式到敏捷再到當下DevOps研運一體化;
第三個是新技術(shù),即數(shù)字化應(yīng)用架構(gòu)從早期的單體應(yīng)用到SOA(Service-Oriented Architecture,面向服務(wù)的架構(gòu))再到微服務(wù);
第四個是新環(huán)境,即數(shù)字化基礎(chǔ)設(shè)施從IDC物理機到虛擬化再到容器化。
伴隨這些演進而來的是新的安全風險。在敏捷業(yè)務(wù)交付的背景下,由于開源軟件的廣泛使用,微服務(wù)應(yīng)用本身安全漏洞逐漸積累。新的基礎(chǔ)設(shè)施引入新的防護對象,比如云原生場景下的鏡像風險、微服務(wù)運行風險、基礎(chǔ)設(shè)施風險、網(wǎng)絡(luò)安全風險,其中微服務(wù)風險主要與數(shù)字化應(yīng)用息息相關(guān),包括通用漏洞、業(yè)務(wù)邏輯漏洞、異常行為代碼、微服務(wù)框架漏洞、微服務(wù)開源組件漏洞等。
近年來,軟件供應(yīng)鏈攻擊事件頻發(fā),風險涉及開源軟件漏洞、開源工具被污染、廠商預(yù)留后門、升級劫持、惡意軟件、源代碼污染、開發(fā)環(huán)境漏洞等。尤其是去年爆發(fā)的Log4j2.x核彈級漏洞,至今回想起來仍令人記憶猶新。
通過對這些事件進行梳理總結(jié),可將整個軟件供應(yīng)鏈的主要安全風險分為三個階段:軟件開發(fā)環(huán)節(jié)、軟件供應(yīng)環(huán)節(jié)和軟件使用環(huán)節(jié)。每個環(huán)節(jié)都有相對應(yīng)的安全痛點。
在開發(fā)環(huán)節(jié),存在引用的組件攜帶漏洞、異常行為代碼或者后門,引入的開發(fā)工具、DevOps平臺和環(huán)境缺少管控以及開發(fā)人員安全意識薄弱等情況。值得一提的是,去年RSAC創(chuàng)新沙盒大賽的全球總冠軍Apiiro公司主要解決的就是開發(fā)環(huán)境中的供應(yīng)鏈安全問題,這些風險不但來自應(yīng)用本身,而且還源于環(huán)境和人員。
在供應(yīng)環(huán)節(jié),外包開發(fā)/外采過程中,沒有對交付的軟件進行安全規(guī)范,沒有提供安全保障措施,就會產(chǎn)生軟件供應(yīng)鏈安全風險。在使用環(huán)節(jié)即常態(tài)化運營環(huán)節(jié)中也存在第三方組件漏洞等安全問題。
因而需要將軟件供應(yīng)鏈看作一個整體,進行綜合的風險治理。
軟件供應(yīng)鏈源頭的開源風險治理實踐
前面提到軟件開發(fā)方式從閉源到混源再到開源驅(qū)動,隨著開發(fā)方式的演進,數(shù)字化應(yīng)用安全風險面除了傳統(tǒng)的Web通用漏洞、業(yè)務(wù)邏輯漏洞以外,還增加了開源成分的缺陷及后門、后門惡意代碼。
整個供應(yīng)鏈上下游的軟件分為商采、開源和免費三種,因而開源風險治理自然成了整個軟件供應(yīng)鏈安全保障的關(guān)鍵點之一。
開源風險治理存在四大痛點:
1. 看不清:無法清楚得知在數(shù)字化業(yè)務(wù)運行過程中動態(tài)加載被使用的組件數(shù)量和種類。
2. 摸不透:無法清楚得知開源軟件中真實可被利用的中高危漏洞的數(shù)量。
3.跟不上:受限于漏洞情報,無法準確確定開源軟件漏洞真實影響的范圍。
4. 防不?。?/strong>無法對未知漏洞進行提前的積極防御。
建立規(guī)范的開源治理體系能有效解決以上痛點。第一步,統(tǒng)一開源組件的引入入口及流程規(guī)范,把控源頭;第二步,檢測和梳理資產(chǎn),生成詳細的SBOM(軟件物料清單);第三步,分批整改,引入代碼疫苗技術(shù),幫助應(yīng)用本身獲得威脅免疫能力,實現(xiàn)對外部威脅的積極防御;第四步也是核心,要以人為本,對整個IT過程中相關(guān)人員的安全素養(yǎng)進行賦能。
從SDLC軟件開發(fā)全生命周期的角度看,從編碼、構(gòu)建、測試一直到運營階段的安全管理,開源風險治理乃至整個軟件供應(yīng)鏈風險治理的核心是既要實現(xiàn)“安全左移”,從源頭做治理,又要在云原生場景下實現(xiàn)“敏捷右移”,要求安全措施、安全技術(shù)覆蓋云原生場景下的典型基礎(chǔ)設(shè)施和應(yīng)用。

圖2 軟件供應(yīng)鏈風險治理既要“安全左移”又要“敏捷右移”
眾所周知,于去年年底爆發(fā)的Log4j2.x遠程代碼執(zhí)行漏洞堪稱核彈級漏洞。由于它屬于Javay語言生態(tài)基礎(chǔ)庫的高危漏洞,而基礎(chǔ)庫的相互引用影響是指數(shù)級的,粗略統(tǒng)計,70%左右的Java應(yīng)用受到影響。而且該漏洞觸發(fā)無前置條件,攻擊者可以通過它輕松實現(xiàn)遠程代碼執(zhí)行。
這類漏洞的爆發(fā)引發(fā)了業(yè)內(nèi)對軟件供應(yīng)鏈風險治理的深度思考。首先需要加強對源頭的檢測,在編碼、構(gòu)建、測試等環(huán)節(jié),通過自動化的安全能力比如IAST和SCA,對數(shù)字化應(yīng)用進行持續(xù)檢測;其次,不同于早期的原生應(yīng)用,需要通過代碼疫苗技術(shù)使應(yīng)用自我防御一些未知漏洞,實現(xiàn)應(yīng)用的出廠自免疫;第三,在常態(tài)化運營階段,需要結(jié)合漏洞情報能力和配套的管理措施,確保軟件物料清單的動態(tài)更新,實時掌握制品庫的詳細情況和安全體系的構(gòu)筑能力。
代碼疫苗技術(shù)的進化之路
介紹懸鏡原創(chuàng)專利級的代碼疫苗技術(shù)之前,不得不先提及網(wǎng)絡(luò)安全的三次關(guān)鍵演進。
第一次演進是指網(wǎng)絡(luò)邊界過濾分析技術(shù),比如傳統(tǒng)的防火墻、WAF等,作用在網(wǎng)絡(luò)層,優(yōu)勢在于部署交付過程相對便捷,但是對外部威脅的洞察是粗粒度的。
第二次演進是指主機環(huán)境環(huán)境檢測響應(yīng)技術(shù),比如EDR等,能夠?qū)?yīng)用或者外部異常行為進行細粒度的捕捉、分析和溯源,但是無法在云原生場景下,在容器化環(huán)境與基于微服務(wù)的應(yīng)用架構(gòu)下,對加密流量或者微服務(wù)中的應(yīng)用流量進行實時的洞察和分析,所以催生了第三次演進,即應(yīng)用運行時情境感知技術(shù),也就是代碼疫苗技術(shù)。
代碼疫苗技術(shù)不僅善于解決對外部入侵威脅“看不見、看不清”的問題,實現(xiàn)內(nèi)生積極防御,而且能實時捕捉應(yīng)用運行時情境感知的上下文,并且不會對整個策略產(chǎn)生過多的維護成本。更為重要的一點在于,代碼疫苗技術(shù)能結(jié)合SCA軟件成分分析技術(shù),實時分析數(shù)字化應(yīng)用中的第三方開源成分,從而實現(xiàn)對重大組件漏洞的提前防御。
代碼疫苗技術(shù)經(jīng)歷了一個演進過程。早在2012年和2014年,代碼疫苗技術(shù)中的IAST和RASP就分別被提出。起初,代碼疫苗技術(shù)受限于其核心單探針技術(shù)對應(yīng)用性能和兼容性的影響,因而并沒有在業(yè)內(nèi)形成推廣之勢。懸鏡之所以能在代碼疫苗技術(shù)方面取得成功,是由于隨著DevOps的逐漸興起,我們先在研發(fā)測試環(huán)境中將IAST探針打磨成熟,使之能支撐百萬級的高并發(fā)應(yīng)用場景,在此基礎(chǔ)上再去拓展它的積極防御能力,這是一個循序漸進的進化過程。所以懸鏡當下所掌握的代碼疫苗技術(shù),它的核心探針既能實現(xiàn)IAST灰盒安全測試能力,也能實現(xiàn)API挖掘分析能力,還能實現(xiàn)RASP的自適應(yīng)出廠免疫能力和運營時的敏感數(shù)據(jù)追蹤能力。
代碼疫苗技術(shù)的核心分為兩個部分,一個是IAST交互式安全測試能力,另一個是RASP的積極防御能力。
其中IAST交互式安全測試又分為狹義和廣義兩種。狹義的IAST特指運行時動態(tài)插樁技術(shù),主要包括被動的動態(tài)污點追蹤和主動的交互式缺陷定位。廣義的IAST主要包含流量學(xué)習(xí)和日志分析,在此基礎(chǔ)上對數(shù)據(jù)進行重放和分析,進而能定位漏洞所在位置。相較于傳統(tǒng)的白盒和黑盒技術(shù),IAST這種灰盒技術(shù)具有非常大的優(yōu)勢,善于精準識別和分析API、分析第三方開源成分以及精準追蹤動態(tài)敏感數(shù)據(jù)。
RASP的核心在于輕量級的探針、統(tǒng)一的管控平臺和配套的積極防御插件。第一,它能幫助應(yīng)對重大未知威脅或典型威脅,使應(yīng)用實現(xiàn)出廠免疫;第二,具備熱補丁功能,對動態(tài)發(fā)生的部分組件漏洞進行修復(fù);第三,在云原生場景下,對微服務(wù)應(yīng)用上下文進行捕捉和分析;第四,對攻擊來源回溯。
總而言之,相較于傳統(tǒng)的WAF和EDR,RASP具有以下幾大核心優(yōu)勢:對未知漏洞的防御;對第三方組件漏洞的防御;對框架組件漏洞的防御;對WebShell的防御。
基于代碼疫苗技術(shù)的應(yīng)用風險管理是一個閉環(huán),在每個環(huán)節(jié)都具備對應(yīng)的能力,如漏洞發(fā)現(xiàn)、漏洞驗證、漏洞分發(fā)和漏洞修復(fù),能很好地結(jié)合IAST和RASP,在DevOps敏態(tài)環(huán)境下適應(yīng)業(yè)務(wù)的快速交付。
代碼疫苗技術(shù)能將自身的灰盒安全測試能力、第三方的開源成分掃描能力以及RASP積極防御能力對SDL不同環(huán)節(jié)進行精準覆蓋。
結(jié)合整個軟件供應(yīng)鏈全流程風險治理框架來看,在框架的每個環(huán)節(jié)都可以通過融入核心的自動化技術(shù)和配套的安全服務(wù)規(guī)范,形成高效的解決方案。
DevSecOps敏捷安全技術(shù)演進趨勢
IDC發(fā)布的云原生安全熱點技術(shù)相關(guān)報告將DevSecOps判定為變革型技術(shù),且處于上升期。前文提到的云原生時代四大新變化,其中開發(fā)方式的變化以及應(yīng)用架構(gòu)的變化,都是以DevSecOps為主要推動力。
懸鏡曾與甲方用戶深度探討,在云原生安全構(gòu)建過程中,究竟是以容器安全技術(shù)為主導(dǎo),還是以DevSecOps安全技術(shù)作為支撐。在最終落地探索過程中,我們發(fā)現(xiàn)還是得依靠DevSecOps安全技術(shù)和相關(guān)安全廠商的支持,來形成整個方案的主體部分。
DevSecOps的核心是如何在DevOps研運一體化的各個階段嵌入安全,主要包含四大要素:組織、流程、技術(shù)和文化。
實際落地DevSecOps的過程主要分為三個階段。在第一個階段,要確保數(shù)字化應(yīng)用在安全左移的過程中不存在中高危漏洞,或者漏洞能被快速捕捉和修復(fù)。在第二個階段需要建立體系,包括SDL安全開發(fā)賦能平臺、左移情境式威脅建模工具和配套的咨詢服務(wù)。在第三個階段,需要加入安全度量,只有通過度量才能明確持續(xù)改進的方向,此外在云原生場景下進行敏捷右移需要關(guān)注整個體系的安全運營效果,而BAS技術(shù)正是與之相關(guān)的關(guān)鍵技術(shù),它能通過持續(xù)威脅模擬對現(xiàn)有防御體系進行持續(xù)驗證,度量其有效性。BAS可以和代碼疫苗技術(shù)的RASP形成內(nèi)外聯(lián)動,初步搭建起積極防御體系。
DevSecOps敏捷安全技術(shù)是不斷發(fā)展的。懸鏡每年都會在自己舉辦的DevSecOps大會上發(fā)布DevSecOps敏捷安全技術(shù)金字塔,為該賽道指出技術(shù)未來演進方向。

圖3 DevSecOps敏捷安全技術(shù)金字塔V2.0版
懸鏡通過市場觀察和實踐發(fā)現(xiàn),BAS目前只停留在頭部企業(yè)探索實踐階段,而IAST、容器安全和OSS/SCA,需求和建設(shè)程度都是相對比較靠前。金字塔往上具有一定深度的安全能力,比如RASP,能結(jié)合端點安全技術(shù)實現(xiàn)對整個護網(wǎng)場景中“最后一公里”的實時防御。此外RASP能與IAST、BAS綜合聯(lián)動,形成積極防御體系。而API Fuzz技術(shù),雖說多年前便已被提出,但目前仍具有局限性,第一是其挖掘未知漏洞的能力仍有待商榷,第二是使用門檻較高,需要對其產(chǎn)生的異常數(shù)據(jù)結(jié)果做進一步專業(yè)的分析,第三是對性能的消耗較大,因而對硬件要求較高。
再往上一層是自動化的風險評估技術(shù),包括安全測試編排等,目前懸鏡正與甲方用戶在該技術(shù)方向進行嘗試。以ASTO為例,它的核心是結(jié)合白盒、灰盒和黑盒的能力,從而發(fā)現(xiàn)更深層次的業(yè)務(wù)邏輯漏洞。
最頂層的CARTA,是希望實現(xiàn)風險與信任的平衡,綜合考慮漏洞與數(shù)字化應(yīng)用所關(guān)聯(lián)業(yè)務(wù),從而構(gòu)建一個信任和彈性并存的研運一體化安全環(huán)境,進而使企業(yè)能夠敏捷和安全地對整個軟件供應(yīng)鏈進行建設(shè)和保障。
最后需要再次強調(diào)的是,云原生時代下,不僅需要安全左移,還要做到敏捷右移,使常態(tài)化運營適應(yīng)敏捷開發(fā)節(jié)奏和適合云原生場景,并且形成積極防御的安全能力。這是懸鏡認為的軟件供應(yīng)鏈風險治理最佳實踐。