管理安全漏洞并非易事,這不僅是因?yàn)槁┒纯赡芎茈y被發(fā)現(xiàn),還因?yàn)槁┒搭?lèi)型繁多。最新國(guó)家信息安全漏洞共享平臺(tái)(CNVD)漏洞信息月度通報(bào)(2023年第5期)顯示:“收集整理信息安全漏洞1581個(gè),其中高危漏洞727個(gè),中危漏洞746個(gè),低危漏洞108個(gè)。上述漏洞中,可被利用來(lái)實(shí)施遠(yuǎn)程網(wǎng)絡(luò)攻擊的漏洞有1357個(gè)?!倍疫\(yùn)的是,相關(guān)工具和技術(shù)可以解決各種可能潛伏在技術(shù)棧任何一層的漏洞。
什么是安全漏洞?
安全漏洞是IT資源中可能被攻擊者利用的錯(cuò)誤或缺陷,其形式多種多樣。安全漏洞可能是應(yīng)用程序源代碼中的一個(gè)編碼錯(cuò)誤,能夠被用于發(fā)動(dòng)緩沖區(qū)溢出攻擊。它可能是開(kāi)發(fā)人員的疏忽,忘記在應(yīng)用程序中對(duì)輸入內(nèi)容妥當(dāng)?shù)剡M(jìn)行驗(yàn)證,從而使注入攻擊成為可能。它可能是訪問(wèn)控制策略或網(wǎng)絡(luò)配置中的一個(gè)錯(cuò)誤配置,使外部人士能夠訪問(wèn)敏感資源。
安全漏洞、漏洞利用、漏洞威脅、漏洞攻擊
“安全漏洞”、“漏洞利用”、“漏洞威脅”和“漏洞攻擊”這幾個(gè)詞往往會(huì)接連出現(xiàn)。然而,盡管這些術(shù)語(yǔ)密切相關(guān),但它們各自指的是可能導(dǎo)致安全事件的事件鏈中不同部分:
- 安全漏洞是有可能被利用以發(fā)動(dòng)攻擊的缺陷。
- 漏洞利用是指利用漏洞來(lái)執(zhí)行攻擊的方法。比如,將惡意代碼注入到應(yīng)用程序中,就可能造成漏洞利用。
- 漏洞威脅是導(dǎo)致漏洞利用發(fā)生的一組必要條件。威脅可能只存在于軟件在某個(gè)操作系統(tǒng)上運(yùn)行之時(shí),或者當(dāng)攻擊者能夠訪問(wèn)某個(gè)界面時(shí)。
- 漏洞攻擊是指發(fā)生的攻擊。當(dāng)威脅者成功地執(zhí)行一個(gè)漏洞時(shí),就會(huì)發(fā)生漏洞攻擊。
- 由于安全漏洞構(gòu)成了上述漏洞利用、漏洞威脅和漏洞攻擊的基礎(chǔ),對(duì)漏洞進(jìn)行檢測(cè)是將安全風(fēng)險(xiǎn)扼殺在萌芽狀態(tài)的最佳方式。如果消除了漏洞,也就消除了其可能導(dǎo)致的漏洞利用、漏洞威脅和潛在的漏洞攻擊。
安全漏洞的主要類(lèi)型
雖然IT環(huán)境中可能存在各種各樣安全漏洞,但大多數(shù)都?xì)w屬于以下四類(lèi):
- 惡意代碼: 惡意方插入代碼庫(kù)的代碼(如惡意軟件),可被利用,以對(duì)系統(tǒng)進(jìn)行未授權(quán)訪問(wèn)或?qū)?yīng)用程序進(jìn)行控制。
- 錯(cuò)誤配置:云身份和訪問(wèn)管理(IAM)規(guī)則等的配置錯(cuò)誤,提供了對(duì)敏感數(shù)據(jù)的公共訪問(wèn),可能導(dǎo)致漏洞攻擊。
- 編碼缺陷: 編碼錯(cuò)誤或疏忽(例如未能執(zhí)行輸入驗(yàn)證,因此不能檢測(cè)旨在獲得未授權(quán)訪問(wèn)的應(yīng)用程序輸入),可能導(dǎo)致漏洞。
- 缺少加密: 未妥善加密的的數(shù)據(jù),無(wú)論是靜態(tài)數(shù)據(jù)還是網(wǎng)絡(luò)中正在傳輸?shù)臄?shù)據(jù),都容易受到攻擊。
檢測(cè)應(yīng)用程序的安全漏洞
鑒于安全漏洞形式多樣,對(duì)其檢測(cè)也需要多管齊下。有多種技術(shù)有助于發(fā)現(xiàn)安全風(fēng)險(xiǎn)。
靜態(tài)應(yīng)用安全分析
靜態(tài)應(yīng)用安全分析(SAST)是安全測(cè)試的一個(gè)類(lèi)別,通過(guò)掃描源代碼和(在某些情況下)二進(jìn)制代碼,以確定其中存在的漏洞。通常情況下,SAST會(huì)尋找漏洞的“簽名”,如已知不安全的依賴項(xiàng)。
動(dòng)態(tài)應(yīng)用安全分析
動(dòng)態(tài)應(yīng)用安全分析(DAST)通過(guò)對(duì)測(cè)試環(huán)境中的應(yīng)用自動(dòng)發(fā)起主動(dòng)攻擊來(lái)識(shí)別漏洞。如攻擊成功,則能揭示應(yīng)用程序中的漏洞。
滲透測(cè)試
在滲透測(cè)試中,安全測(cè)試人員會(huì)手動(dòng)嘗試識(shí)別和利用漏洞。滲透測(cè)試不同于DAST之處在于,滲透測(cè)試需要安全專(zhuān)家來(lái)主動(dòng)尋找漏洞,而DAST則有賴于自動(dòng)攻擊模擬。
圖像掃描器
圖像掃描器(例如JFrog Xray)能夠在軟件被編譯或打包后檢測(cè)其漏洞。因此,對(duì)于識(shí)別應(yīng)用程序包中可能招致攻擊的薄弱依賴項(xiàng)或配置,圖像掃描器是非常有用的。例如,圖像掃描器可以檢查容器圖像,以確定該圖像的任何依賴項(xiàng)是否包含漏洞。
配置審計(jì)
配置審計(jì)工具通常用于驗(yàn)證承載應(yīng)用程序的基礎(chǔ)設(shè)施的配置,而非應(yīng)用程序本身(盡管在某些情況下,配置審計(jì)可在定義了應(yīng)用程序設(shè)置的配置文件上執(zhí)行)。
例如,云環(huán)境的配置審計(jì)能夠檢測(cè)不安全的IAM規(guī)則或網(wǎng)絡(luò)配置。此外,配置審計(jì)器可用于掃描Kubernetes環(huán)境,以檢測(cè)Kubernetes安全上下文、網(wǎng)絡(luò)策略或其他會(huì)削弱環(huán)境安全態(tài)勢(shì)的設(shè)置中的錯(cuò)誤配置。