一位網(wǎng)絡(luò)滲透測試專家給企業(yè)的5條忠告
架構(gòu)Nick Merritt是Halo Security公司主管安全產(chǎn)品和服務(wù)的副總裁,他已經(jīng)負(fù)責(zé)并領(lǐng)導(dǎo)開展了超過300次的網(wǎng)絡(luò)安全滲透測試工作。通過在各類企業(yè)中的大量安全性測試實(shí)踐,Nick Merritt從攻擊者的視角,總結(jié)了目前企業(yè)組織在信息化系統(tǒng)防護(hù)中的普遍弱點(diǎn)和常見錯誤,并給出了提升應(yīng)用系統(tǒng)安全性的五點(diǎn)建議:
01 自動化安全掃描還遠(yuǎn)遠(yuǎn)不夠
如果企業(yè)只是使用自動化工具掃描Web應(yīng)用程序的安全性,那么很多安全漏洞都會成為漏網(wǎng)之魚,因?yàn)檫@類工具通常使用了模糊測試(一種將畸形數(shù)據(jù)注入系統(tǒng)來驗(yàn)證安全的方法),而這種技術(shù)會產(chǎn)生大量的誤報(bào)和漏報(bào)。
企業(yè)應(yīng)該明白,自動化掃描工具的研發(fā)還難以跟上現(xiàn)代Web應(yīng)用程序開發(fā)的步伐,技術(shù)上的局限性讓掃描工具不能夠?yàn)镴avaScript頁面應(yīng)用、WebAssembly或圖技術(shù)(Graph)提供最佳的安全檢測結(jié)果。特別是對一些比較復(fù)雜的漏洞,企業(yè)安全團(tuán)隊(duì)需要專門編寫有針對性的載荷才可以檢測出它們。
目前,要實(shí)現(xiàn)對安全漏洞和利用情況進(jìn)行全面的分析還離不開安全專家的人工操作,而自動化安全掃描工具可作為輔助性的檢測手段,幫助安全分析師提升漏洞發(fā)現(xiàn)的效率。
02應(yīng)用系統(tǒng)自帶的身份驗(yàn)證通常不可靠
身份驗(yàn)證是確保Web應(yīng)用程序安全性的關(guān)鍵因素之一。但是在實(shí)際測試中發(fā)現(xiàn),開發(fā)人員在應(yīng)用系統(tǒng)中創(chuàng)建的身份驗(yàn)證及密碼管理流程,通常都沒有采用安全、可靠的方式。
滲透測試人員很容易繞過系統(tǒng)自帶的驗(yàn)證功能,輕松訪問其他用戶的隱私信息,或者擁有與其角色不相符的過多特權(quán),這就會帶來橫向和縱向身份訪問控制方面的安全威脅問題。
企業(yè)必須要重視和加強(qiáng)對應(yīng)用系統(tǒng)的身份管理和驗(yàn)證,其關(guān)鍵在于相關(guān)的安全協(xié)議是否能夠得到有效實(shí)時。比如說,安全聲明標(biāo)記語言(SAML)身份驗(yàn)證是一種流行并且有效的單點(diǎn)登錄控制協(xié)議,但如果開發(fā)人員在系統(tǒng)開發(fā)時未能正確理解和引入,反而留下更多的安全漏洞。
03攻擊者更善于發(fā)現(xiàn)業(yè)務(wù)邏輯中的漏洞
開發(fā)人員在研發(fā)Web應(yīng)用系統(tǒng)時,一般都是從產(chǎn)品的應(yīng)用場景角度進(jìn)行分析和設(shè)計(jì),但是他們常常不會從攻擊者的角度去分析各種功能是否可能被惡意利用。一個典型的事例是電商網(wǎng)站中的購物車,它是這類網(wǎng)站的關(guān)鍵性應(yīng)用,但常常不安全,存在嚴(yán)重的業(yè)務(wù)邏輯漏洞,比如攻擊者在結(jié)賬前將總數(shù)歸零,或者在完成付款后將低價(jià)商品替換成其他高價(jià)值商品。
我們不能過多苛責(zé)開發(fā)人員只關(guān)注系統(tǒng)的使用場景,而忽視其可能的風(fēng)險(xiǎn)場景。但是安全管理人員需要看到問題的各個方面,明白業(yè)務(wù)邏輯應(yīng)該與安全邏輯相關(guān)聯(lián)。
04不存在“超范圍”的滲透測試觀念
Web應(yīng)用程序已經(jīng)變得非常復(fù)雜,會涉及較廣泛的資源和資產(chǎn)整合與利用。這就需要開發(fā)時通過后端API服務(wù)器利用,以支持主應(yīng)用程序的各種功能。
企業(yè)應(yīng)該向執(zhí)行滲透測試的安全人員告知所有這些外部資產(chǎn),以及它們?nèi)绾闻c應(yīng)用系統(tǒng)之間進(jìn)行關(guān)聯(lián)交互,這對保障安全很重要。開發(fā)人員可能認(rèn)為這些資產(chǎn)“超范圍”,因此不需要對它們負(fù)責(zé)。但攻擊者可不會遵守任何的攻擊界限,大量滲透測試結(jié)果也表明,企業(yè)中的資源和資產(chǎn),沒有什么是“超范圍”的。
應(yīng)用系統(tǒng)開發(fā)人員應(yīng)該更好地與安全測試人員合作,減少滲透測試工作帶來的流程影響。開發(fā)人員只有兼顧創(chuàng)造力和安全框架,才能知道哪里可以自由編程,而哪里需要設(shè)置應(yīng)用程序安全護(hù)欄機(jī)制。
05跨站腳本(XSS)攻擊不可忽視
XSS屬于被動式攻擊,是一種較盛行的Web應(yīng)用程序漏洞利用方式。2021年,由于應(yīng)用程序開發(fā)框架的改進(jìn),XSS首次跌出了OWASP(開放Web應(yīng)用程序安全項(xiàng)目)前10名榜單,因此有人開始認(rèn)為這種攻擊將會很少被應(yīng)用。但事實(shí)上,“無孔不入”是網(wǎng)絡(luò)黑客們最基本的信念和意志表現(xiàn),它仍是我們執(zhí)行每次滲透測試任務(wù)中,最有效的模擬攻擊手法之一。
XSS攻擊造成的安全風(fēng)險(xiǎn)往往會很高,包括賬戶接管、數(shù)據(jù)竊取以及對應(yīng)用程序基礎(chǔ)設(shè)施的全面破壞。許多開發(fā)人員以為,使用成熟的輸入驗(yàn)證庫和配置適當(dāng)?shù)腃ookie屬性就足夠防止XSS攻擊,但實(shí)際上這遠(yuǎn)遠(yuǎn)不夠。因?yàn)樵诮裉斓膽?yīng)用程序開發(fā)中,必然會使用大量自定義的代碼,此時XSS漏洞就會趁虛而入。以WordPress網(wǎng)頁為例,針對其的XSS攻擊非常危險(xiǎn),因?yàn)橐坏┇@取了管理員級訪問憑據(jù),攻擊者就可以在應(yīng)用中加載各種插件,并在應(yīng)用服務(wù)器上執(zhí)行代碼中的惡意載荷。
參考鏈接: