自動化滲透測試工具歷經(jīng)多年發(fā)展,但真的先進(jìn)到了不再需要滲透測試人員的程度?
過去幾年,網(wǎng)絡(luò)安全自動化大幅增長,但滲透測試依然免疫,還是依賴滲透測試員人工操作。盡管眾包安全在過去10年間已成長為滲透測試的替代選擇,卻并非基于自動化,不過是在一個問題上投入更多人力而已(而且過程中還會引入其固有的缺陷)。不過,自動化滲透測試工具最近已經(jīng)發(fā)展到了在特定條件下比較有效的程度。于是問題來了:這些工具能夠替代滲透測試人員嗎?
可以對自動化滲透測試工具進(jìn)行大量對比試驗(yàn),看能否趕得上滲透測試員的效果和效率;但此類自動化工具的發(fā)展堪稱現(xiàn)象級,去年做的對照測試分析,今天再來看可能就過時(shí)了。所以,以下分析結(jié)果,還請各位讀者帶著發(fā)展的眼光看問題。
自動化滲透測試工具的運(yùn)行機(jī)制
這些工具通過代理或虛擬機(jī)交付滲透測試,此類代理或虛擬機(jī)模擬滲透測試人員的筆記本電腦和/或接入客戶網(wǎng)絡(luò)的攻擊代理。滲透測試機(jī)器人程序會偵察其所在環(huán)境,執(zhí)行測試人員都會做的類似掃描:用喜歡的工具執(zhí)行漏洞掃描,或者就用Nmap或Masscan掃一遍端口和服務(wù)。確定自身在環(huán)境中所處位置之后,自動化工具會篩選所獲信息。從這一步開始,就不再雷同漏洞掃描器了。
漏洞掃描器只是簡單羅列找到的漏洞和潛在漏洞,并沒有關(guān)于漏洞可利用程度的上下文。它們不過是照搬通用漏洞與暴露(CVE)參考和通用漏洞評分系統(tǒng)(CVSS)得分而已。有時(shí)候漏洞掃描器會貼出系統(tǒng)易受攻擊的“證據(jù)”,但處理不好誤報(bào)問題。自動化滲透測試工具則會從這些目標(biāo)中選擇要接管的“最佳”系統(tǒng),基于漏洞利用難易度、噪音及此類因素做出決策。舉個例子,如果滲透測試機(jī)器人程序發(fā)現(xiàn)某Windows機(jī)器易受永恒之藍(lán)攻擊,它可能會選擇暴力破解要驗(yàn)證密碼的開放SSH端口,因?yàn)檫@是廣為人知的漏洞利用,利用起來還又快又簡單。
一旦獲得立足點(diǎn),滲透測試工具就會通過網(wǎng)絡(luò)擴(kuò)散,仿照滲透測試人員或攻擊者的做法。不同之處在于,自動化滲透測試工具會在被利用的機(jī)器上安裝自己的代理,以此為支點(diǎn)繼續(xù)向外輻射。工具會重新展開滲透過程,只不過,這一次會極其仔細(xì)地探查機(jī)器,收集更多信息,更有針對性地繼續(xù)在客戶網(wǎng)絡(luò)中的旅程。這一步驟中,滲透工具可能會轉(zhuǎn)儲密碼哈希,或者查找硬編碼的憑證,然后將之納入下一輪滲透的彈藥庫。雖然之前可能已經(jīng)重復(fù)過掃描/漏洞利用/跳轉(zhuǎn),這一次,自動化滲透工具將嘗試“哈希傳遞”攻擊,或利用剛剛偷得的密鑰連接SSH端口。然后,再次跳轉(zhuǎn),繼續(xù)擴(kuò)散。
如果你注意到自動化滲透測試工具的動作與滲透測試人員的操作有很多共同點(diǎn),那就對了:滲透測試人員基本上就是這么干的(某種程度上,攻擊者也是這么干的)。工具集很雷同,用來跳轉(zhuǎn)的技術(shù)和方法在很多方面上也很類似。那么,有哪些地方不一樣呢?
自動化滲透測試的優(yōu)勢
相對于有些年頭的滲透測試方法(和混亂的眾包方法),自動化具備一些優(yōu)勢。
首先,測試和報(bào)告的速度大大加快,而且報(bào)告的可讀性令人驚艷。(經(jīng)多名合格安全評估師(QSA)驗(yàn)證,這些報(bào)告可以滿足各種PCI-DSS滲透測試要求。)無需等待滲透測試人員花費(fèi)數(shù)天或數(shù)周時(shí)間撰寫報(bào)告并經(jīng)過幾輪質(zhì)保檢查,即可到手清晰明了的滲透測試報(bào)告。
人工滲透測試目前的主要缺陷之一,就是持續(xù)交付意味著很多報(bào)告在交付之前就已經(jīng)過時(shí)了。測試之后,環(huán)境已歷經(jīng)多次更新,引入了滲透測試之時(shí)并不存在的新潛在漏洞和配置錯誤。這就是傳統(tǒng)滲透測試不過是某個時(shí)刻的安全態(tài)勢快照的原因所在。
通過每天、每天兩次,甚或每次更改后執(zhí)行一次滲透測試,以及幾乎即時(shí)交付測試報(bào)告,自動化滲透測試工具規(guī)避了這一遲滯局限。這意味著你可以日常滲透測試你的環(huán)境并檢測可能遭利用的配置更改,不用依賴數(shù)周以后才交付的報(bào)告。
自動化的第二個優(yōu)勢在于入口點(diǎn)。你可能會給滲透測試人員一個特定入口點(diǎn)來進(jìn)入你的網(wǎng)絡(luò),但自動化工具就能從多個不同入口點(diǎn)多次執(zhí)行同樣的滲透測試,發(fā)現(xiàn)各入口點(diǎn)的弱點(diǎn),檢查各種可能造成影響的場景。雖然理論上人工滲透測試也可以做到這種程度,但每次不同測試都需要投入一大筆預(yù)算開銷。
自動化滲透測試的劣勢
自動化滲透測試工具也存在弊端。首先,此類工具壓根兒不了解Web應(yīng)用。雖然可以在端口/服務(wù)級檢測到Web服務(wù)器,但自動化滲透測試工具搞不懂是內(nèi)部API存在不安全直接對象引用(IDOR)漏洞,還是內(nèi)部網(wǎng)頁存在滲透測試人員可利用來進(jìn)一步跳轉(zhuǎn)的服務(wù)器端請求偽造(SSRF)漏洞。自動化滲透測試工具之所以存在這種缺陷,是因?yàn)榻裉斓腤eb技術(shù)棧實(shí)在太過復(fù)雜,即使專業(yè)掃描器(例如Web應(yīng)用掃描器)都難以檢測不太好利用的漏洞(例如跨站腳本(XSS)或SQL注入(SQLi))。
由此又引出自動化滲透測試工具的另一弱點(diǎn):你只能在網(wǎng)絡(luò)“內(nèi)部”使用這些工具。由于最為暴露的公司基礎(chǔ)設(shè)施就是基于Web的那些,而自動化滲透測試工具又理解不了這些基礎(chǔ)設(shè)施,你就仍然需要依靠來自外部的優(yōu)秀滲透測試人員。
當(dāng)前情況
自動化滲透測試技術(shù)前景廣闊,但仍處于早期階段。盡管暫時(shí)還無法替代滲透測試人員,卻也有助于應(yīng)對當(dāng)今不借助自動化就無法解決的攻擊性安全挑戰(zhàn)。
來源:數(shù)世咨詢