自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

內(nèi)生安全免疫,代碼疫苗關(guān)鍵技術(shù)剖析

原創(chuàng) 精選
安全 應(yīng)用安全
代碼疫苗技術(shù)是一種能夠通過運行時插樁技術(shù)進(jìn)行軟件運行時風(fēng)險自發(fā)現(xiàn)及威脅自免疫的新一代安全技術(shù)

代碼疫苗技術(shù),是一種能夠通過運行時插樁技術(shù)進(jìn)行應(yīng)用漏洞檢測及安全防護(hù)的新一代安全技術(shù),其所涵蓋的IAST技術(shù)與RASP技術(shù),已連續(xù)數(shù)年被Gartner列在十大安全技術(shù)之內(nèi)。

在不久前的【T·TALK】系列活動第七期中,我們特別邀請到了懸鏡安全CTO寧戈做客直播間,為大家分享代碼疫苗技術(shù)的原理、實現(xiàn)及落地實踐經(jīng)驗?!綯·TALK】也將這期分享的精彩內(nèi)容進(jìn)行了整理,希望能為讀者帶來一些啟發(fā):

?

代碼疫苗概念

近年來,在技術(shù)創(chuàng)新的驅(qū)動下,軟件技術(shù)上下游產(chǎn)業(yè)的演替不斷加速。開發(fā)模式、應(yīng)用架構(gòu)、服務(wù)器與基礎(chǔ)設(shè)施的升級,使得應(yīng)用軟件的開發(fā)流程變得愈發(fā)復(fù)雜。與此同時,伴隨著軟件復(fù)雜度的提升,軟件安全所面臨的問題與挑戰(zhàn)也在持續(xù)增加。

代碼疫苗技術(shù),是一種能夠通過運行時插樁技術(shù)進(jìn)行軟件運行時風(fēng)險自發(fā)現(xiàn)及威脅自免疫的新一代安全技術(shù),其核心內(nèi)涵主要包含四個方面:

  1. 無需代碼安全專家逐行分析源代碼
  2. 無需對原有代碼邏輯進(jìn)行修改調(diào)整
  3. 無需維護(hù)復(fù)雜流量過濾策略及規(guī)則
  4. 不會忽略應(yīng)用程序中超90%由第三方組件引入的風(fēng)險

與醫(yī)學(xué)屆對疫苗的定義相似,代碼疫苗技術(shù)并不是傳統(tǒng)的外掛式安全,其側(cè)重點是從開發(fā)源頭側(cè)規(guī)避安全風(fēng)險,并為應(yīng)用搭建更加有效的內(nèi)生積極防御體系。而幫助代碼疫苗技術(shù)實現(xiàn)這一目標(biāo)的兩個核心,則是基于單探針插樁的IAST技術(shù)與RASP技術(shù)。

圖片

IAST全稱交互式應(yīng)用安全測試,是近幾年的新興安全測試技術(shù)。與SAST白盒安全測試技術(shù)、DAST黑盒安全測試技術(shù)兩種傳統(tǒng)的安全漏洞解決方案相比,IAST的漏洞檢出率更高、適配場景更多,也更加適用于目前流行的DevOps場景。

RASP全稱運行時應(yīng)用自防護(hù)。不同于傳統(tǒng)的WAF或IDS在流量層的檢測,RASP更多的是與應(yīng)用耦合在一起,通過運行時插樁,對應(yīng)用的運行時環(huán)境進(jìn)行檢測。利用這樣的方式,RASP能夠攔截從應(yīng)用程序到系統(tǒng)的所有調(diào)用,確保它們的安全,從而實時檢測和阻斷各式各樣的安全攻擊。

代碼疫苗技術(shù),則是將IAST技術(shù)的漏洞檢測能力與RASP技術(shù)的攻擊防護(hù)能力進(jìn)行了合并。將這兩項技術(shù)整合成一個統(tǒng)一的IAST和RASP探針,以此實現(xiàn)統(tǒng)一的從漏洞檢測到漏洞防護(hù)的全生命周期一體化的檢測與防護(hù)解決方案。


代碼疫苗技術(shù)原理

無論IAST技術(shù)還是RASP技術(shù),都依賴運行時插樁進(jìn)行實現(xiàn)。運行時插樁是在應(yīng)用層通過應(yīng)用啟動后,替換函數(shù)體或在函數(shù)前后插入檢測代碼來實現(xiàn)的。通過插樁代碼,可以快速獲得應(yīng)用運行在關(guān)鍵點的數(shù)據(jù)信息。

需要注意的是,由于不同語言間存在運行時的環(huán)境差異,因此不同語言實現(xiàn)插樁的方式也會有所區(qū)別。以Java為例,由于Java擁有Instrument的特性,因此在類加載的過程中,需要對所關(guān)注的關(guān)鍵類與方法的字節(jié)碼進(jìn)行修改,才能夠達(dá)到插入檢測邏輯的目的。

IAST從概念角度可分為廣義與狹義兩種。廣義的IAST包含流量學(xué)習(xí)和日志分析模式,通過對鏡像流量及日志等數(shù)據(jù)進(jìn)行重放及分析,以達(dá)到檢測目的。此外,廣義的IAST對研發(fā)測試等使用人員完全透明,無流程侵入,不依賴應(yīng)用編程語言。

圖片

狹義IAST特指運行時插樁模式,能夠幫助普通研發(fā)測試人員快速完成業(yè)務(wù)安全測試,精準(zhǔn)定位漏洞細(xì)節(jié)及修復(fù)指導(dǎo)。同時,狹義IAST分為兩種模式,一種是主動IAST,通過插樁分析流量數(shù)據(jù),另一種則是使用動態(tài)污點分析技術(shù)的被動IAST。

動態(tài)污點分析技術(shù)能夠基于運行時插樁跟蹤外部可控數(shù)據(jù)對應(yīng)用的影響,進(jìn)而分析外部數(shù)據(jù)在應(yīng)用內(nèi)部的流轉(zhuǎn)情況,從而確定應(yīng)用是否存在漏洞。由于動態(tài)IAST擁有無重放數(shù)據(jù)、無臟數(shù)據(jù)、可應(yīng)對加密簽名接口、可適配復(fù)雜場景等優(yōu)點,因此目前的適用面是比較廣泛的。

在動態(tài)污點分析技術(shù)中,可以將污點傳播的整體過程分為污點輸入、污點傳播與污點匯集三個階段。在污點輸入階段,所有外部數(shù)據(jù)都被默認(rèn)為不可信數(shù)據(jù),因此需要在外部數(shù)據(jù)進(jìn)入應(yīng)用的時候,對其添加污點標(biāo)記。

圖片

污點傳播階段,主要目標(biāo)為跟蹤污點數(shù)據(jù)的傳播過程。由于外部數(shù)據(jù)在進(jìn)入應(yīng)用程序時已被污點標(biāo)記,因此當(dāng)被標(biāo)記數(shù)據(jù)進(jìn)行運算或字符串拼接及其他操作后,所產(chǎn)生的新數(shù)據(jù)也將會攜帶污點標(biāo)記。

污點匯集階段,需要對可能觸發(fā)漏洞的函數(shù)進(jìn)行關(guān)注。確定攜帶污點標(biāo)記的數(shù)據(jù)是否會匯聚到例如SQL執(zhí)行或文件讀寫等敏感函數(shù)之上。若該過程發(fā)生,則意味著在應(yīng)用程序中的這些函數(shù)執(zhí)行流程中可能存在著漏洞。

當(dāng)然,如果在污點傳播階段,攜帶污點標(biāo)記的數(shù)據(jù)遇到了清潔函數(shù),并被成功執(zhí)行了過濾操作或其他安全操作,則會將該數(shù)據(jù)所攜帶的污點標(biāo)記消除,以此來確認(rèn)這一條鏈路的安全性。這就是動態(tài)污點分析技術(shù)的執(zhí)行原理。

RASP的核心則是通過插樁技術(shù)將防護(hù)邏輯與防護(hù)功能注入應(yīng)用程序,深入應(yīng)用運行時的環(huán)境內(nèi)部,通過分析與了解數(shù)據(jù)流及事件流,檢測和防護(hù)無法預(yù)見的安全威脅與攻擊事件(如0day攻擊)。這種運作模式,使得RASP能夠解決WAF所存在的檢測規(guī)則與功能無法對應(yīng)、無法知曉服務(wù)端防御方式、變形及未知威脅防御乏力、微服務(wù)場景難適配等痛點。

圖片

RASP能夠獲取運行時的上下文數(shù)據(jù)。在這其中,第一類數(shù)據(jù)是HTTP請求及響應(yīng)數(shù)據(jù)與各式RPC協(xié)議,例如dubbo的請求與響應(yīng)數(shù)據(jù),以及gRPC等各式RPC框架。

第二類是所關(guān)注函數(shù)的執(zhí)行數(shù)據(jù),包括動態(tài)運行時,函數(shù)所接收到的完整參數(shù)、調(diào)用函數(shù)的對象實例以及函數(shù)執(zhí)行的返回值。通過獲取運行時過程中函數(shù)整體執(zhí)行的狀態(tài),便能夠判斷運行函數(shù)執(zhí)行過程中是否存在所關(guān)注的數(shù)據(jù)。

第三類則是函數(shù)執(zhí)行過程中的調(diào)用棧。獲取完整的函數(shù)調(diào)用棧,一方面便于研發(fā)進(jìn)行漏洞分析與攻擊分析。另一方面,也可以通過函數(shù)調(diào)用棧分析攻擊者的行為。常用的一些反序列化的攻擊手段,都可以通過函數(shù)調(diào)用棧進(jìn)行分析。第四類是應(yīng)用配置信息。獲取應(yīng)用的各類安全配置、代碼內(nèi)屬性配置等信息,可以完整得知該應(yīng)用是否執(zhí)行了安全策略。

基于獲取的運行時上下文數(shù)據(jù),RASP可以進(jìn)行分析和運用,根據(jù)采用的算法或者檢測邏輯分為幾大類。

圖片

第一類也是最常規(guī)的是規(guī)則方式,對獲取的參數(shù)或者HTTP請求綜合進(jìn)行規(guī)則匹配。

第二類是RASP的亮點功能,就是基于詞法的分析。由于RASP所獲取的數(shù)據(jù)更加全面,因此RASP能夠針對完整的輸入如SQL、命令執(zhí)行等信息數(shù)據(jù)進(jìn)行詞法分析,以判斷關(guān)鍵函數(shù)執(zhí)行點上的數(shù)據(jù)是否存在異常。

第三類是行為及運行堆棧檢測,主要用來檢測敏感函數(shù)的執(zhí)行。例如當(dāng)WebShell植入系統(tǒng)后,會通過變形混淆繞過檢測,但在執(zhí)行系統(tǒng)命令或文件操作的過程中,其必定會調(diào)用底層運行時的API,此時通過行為及運行堆棧分析,便能夠得知執(zhí)行調(diào)用的函數(shù)或函數(shù)調(diào)用棧。

第四類則是應(yīng)用運行配置檢測,也就是對代碼中的動態(tài)安全配置及其他配置檢測。例如增加了某些安全配置后,部分漏洞就無法再被利用了。這其中包括預(yù)編譯這類防范SQL注入的方式,以及XXE的關(guān)閉外部實體訪問這類方式等。這樣便能夠完整地了解目前應(yīng)用所存在的安全防護(hù)情況。

綜合以上四類方式,可以實現(xiàn)應(yīng)用運行時的自我防護(hù)。

在整體防護(hù)體系中,RASP會與每個應(yīng)用耦合,但其與WAF、IDS/IPS、防火墻等防護(hù)是并不沖突的。RASP適用于現(xiàn)代開發(fā)或應(yīng)用架構(gòu),其與應(yīng)用、微服務(wù)是相伴相生的。因此這些安全解決方案,每個都是縱深防御體系中的一個環(huán)節(jié)。

圖片


代碼疫苗技術(shù)實踐

代碼疫苗技術(shù)的實踐主要有四類場景。第一類是應(yīng)對DevOps的檢測防護(hù)一體化。由于探針是比較輕量級的,可以隨流水線一同上線發(fā)布。在開發(fā)和測試環(huán)節(jié),可以利用IAST進(jìn)行漏洞檢測,上線后則可以開啟RASP進(jìn)行漏洞防護(hù),以實現(xiàn)全流程的檢測防護(hù)一體化,使DevOps的效率更高。

圖片

第二類場景是紅藍(lán)對抗。在這一場景下,RASP充當(dāng)?shù)氖歉呒壜┒垂舴雷o(hù)工具的角色。目前紅藍(lán)對抗中會更多地應(yīng)用0day、1day或一些未公開的EXP進(jìn)行攻防。這對于傳統(tǒng)的流量手段而言是難以防護(hù)的,而RASP則有能力應(yīng)對一些高級攻擊。

第三類場景是應(yīng)對突發(fā)漏洞的應(yīng)急。RASP能夠提供針對基于行為與調(diào)用棧位置威脅的檢測。這可以在一定程度上緩解0day或1day攻擊,為漏洞修復(fù)爭取時間。也可以利用RASP提供的熱補(bǔ)丁功能,通過一些簡單配置,先進(jìn)行第一波漏洞攻擊的防護(hù)。

第四類則是應(yīng)用上線的自免疫。在容器化的環(huán)境之中,可以將探針和應(yīng)用進(jìn)行打包,使應(yīng)用在上線之后能夠自帶攻擊防護(hù)效果。

代碼疫苗技術(shù)也同樣關(guān)注性能與熔斷方面的問題。代碼疫苗技術(shù)也會提供一些基于CPU或內(nèi)存、QPS/TPS的熔斷策略。例如,代碼疫苗技術(shù)會提供CPU、內(nèi)存、QPS/TPS的閾值,當(dāng)超過這一閾值時,探針就會進(jìn)行熔斷降級,以確保業(yè)務(wù)優(yōu)先、不影響業(yè)務(wù)的運行。

代碼疫苗技術(shù)針對IAST與RASP有著一整套應(yīng)用風(fēng)險的閉環(huán)管理。在IAST層面,在發(fā)現(xiàn)漏洞后進(jìn)行自動化的漏洞驗證,通過在參數(shù)點上增加payload進(jìn)行數(shù)據(jù)重放(重放量很?。┮则炞C漏洞。若漏洞存在,則會通過對接的平臺通知企業(yè)的相應(yīng)負(fù)責(zé)人。此時負(fù)責(zé)人便可進(jìn)行漏洞修復(fù)或選擇啟動RASP的熱補(bǔ)丁功能模塊進(jìn)行漏洞的臨時防護(hù)。

圖片

最后,以2021年Log4j2組件的遠(yuǎn)程代碼執(zhí)行漏洞的防護(hù)為例,梳理一下代碼疫苗技術(shù)的防護(hù)流程。當(dāng)應(yīng)用的某個接口或接口背后的實現(xiàn)應(yīng)用了Log4j2的組件并開啟了模塊化JNDI的Log4j棧內(nèi)服務(wù)輸出與日志輸出,則系統(tǒng)中就會存在這一漏洞。

對攻擊者而言,探測到漏洞存在,即可基于漏洞的接口發(fā)送HTTP請求,JNDI注入的數(shù)據(jù)傳入到Log4j的寫日志操作之中。當(dāng)寫日志操作執(zhí)行時,就會觸發(fā)這一漏洞,并請求攻擊者的服務(wù)器,將外部的class文件加載到應(yīng)用之中,從而造成遠(yuǎn)程代碼執(zhí)行。

在這一過程中,有多個步驟都是RASP能夠進(jìn)行攔截的。首先,在發(fā)送寫日志請求時,會內(nèi)部發(fā)送一個類似于SSRF的請求,這是RASP能夠進(jìn)行的第一層防護(hù)。其次,在攻擊者進(jìn)行JNDI注入時,RASP也能夠?qū)@一操作進(jìn)行攔截。最后,在攻擊者進(jìn)行命令執(zhí)行的環(huán)節(jié),RASP同樣會針對這一操作采取相應(yīng)的防護(hù)。

圖片

當(dāng)漏洞的原理明晰之后,可以通過熱補(bǔ)丁對漏洞點進(jìn)行精準(zhǔn)插樁,同時基于插樁技術(shù)梳理應(yīng)用所有依賴的組件與版本號,結(jié)合SCA或OSS的功能對組件漏洞進(jìn)行分析。因此,代碼疫苗技術(shù)能夠?qū)og4j2這類0day漏洞進(jìn)行較好防護(hù)并為漏洞的修復(fù)爭取寶貴的時間。

?

嘉賓介紹:

懸鏡安全CTO寧戈,擁有10年前沿安全技術(shù)研究實踐經(jīng)驗,長期從事系統(tǒng)軟件與應(yīng)用軟件的漏洞研究及自動化檢測技術(shù)研究,專注于IAST、RASP等運行時檢測防御技術(shù)及DevSecOps體系的產(chǎn)品化實踐。負(fù)責(zé)懸鏡IAST、RASP、SCA等多個產(chǎn)品線的設(shè)計與研發(fā)。擁有多項原創(chuàng)發(fā)明專利授權(quán),多次參與國家級科研和安全保障項目,獲得多個國家級網(wǎng)絡(luò)安全領(lǐng)域獎項。

責(zé)任編輯:徐杰承 來源: 51CTO技術(shù)棧
相關(guān)推薦

2011-03-21 15:29:46

2012-12-13 09:45:32

BYOD移動通信

2022-10-11 11:20:01

智能汽車技術(shù)

2025-02-17 09:00:00

DeepSeek人工智能AI

2023-09-20 20:11:07

Java

2023-06-26 07:57:49

2022-01-25 00:06:05

云計算安全技術(shù)

2009-07-22 10:11:45

2023-06-13 18:17:55

2022-04-13 06:51:27

云安全云計算云原生

2023-04-07 07:42:01

2018-01-03 00:38:20

大數(shù)據(jù)Hadoop分布式文件系統(tǒng)

2015-09-11 13:54:51

大數(shù)據(jù)關(guān)鍵技術(shù)

2021-05-17 14:57:22

NFV虛擬化數(shù)據(jù)

2022-04-15 15:03:42

云計算容器Linux

2021-09-03 11:46:59

數(shù)字化

2019-01-16 14:20:42

2016-10-28 13:12:41

2023-06-13 18:14:39

點贊
收藏

51CTO技術(shù)棧公眾號