本文來(lái)自微信公眾號(hào)“GoUpSec”。
能同時(shí)防護(hù)Web應(yīng)用程序和API的組合解決方案WAAP大有取代WAF的勢(shì)頭。
根據(jù)NTT Application Security的研究,如今超過(guò)一半的Web應(yīng)用程序和API容易受到攻擊。因此,企業(yè)必須在軟件生命周期的所有階段(從開(kāi)發(fā)到運(yùn)營(yíng))加強(qiáng)安全防護(hù)。漏洞發(fā)現(xiàn)得越早,修復(fù)的速度就越快,成本也就越低。
軟件開(kāi)發(fā)人員和架構(gòu)師的安全培訓(xùn)很重要,但并不能確保萬(wàn)無(wú)一失,還需要安全專家的定期滲透測(cè)試。但人工滲透測(cè)試很耗時(shí),而且只是一個(gè)時(shí)間點(diǎn)上的快照,還需要其他技術(shù)工具。例如自動(dòng)測(cè)試工具,用于發(fā)現(xiàn)代碼或開(kāi)源庫(kù)中的已知漏洞。然而,即使是這些工具也無(wú)法防止那些程序上線后才被(能)發(fā)現(xiàn)的漏洞。因此,還需要另一種措施:在程序運(yùn)行過(guò)程中保護(hù)暴露的敏感數(shù)據(jù)。
信用卡行業(yè)很早就認(rèn)識(shí)到了這一點(diǎn),并在其行業(yè)安全標(biāo)準(zhǔn)(PCI-DSS 4.0)中明確規(guī)定了Web應(yīng)用程序防火墻(WAF)的保護(hù)。WAF放置在用戶和正在運(yùn)行的Web應(yīng)用程序之間,還可以保護(hù)后者在所有其他措施都失敗時(shí)免受攻擊和濫用。與WAF類似,API也有專門的安全解決方案。
從WAF到WAAP
除了Web應(yīng)用程序,API也變得越來(lái)越流行。這是因?yàn)楝F(xiàn)代互聯(lián)網(wǎng)應(yīng)用和移動(dòng)應(yīng)用大多都通過(guò)API獲取數(shù)據(jù)。然而,API自身面臨的威脅正在快速增長(zhǎng),根據(jù)Cequence Security的2022年度API安全報(bào)告,2022年下半年開(kāi)始API已成為主要攻擊媒介,其中自動(dòng)化攻擊是當(dāng)前API面臨的主要威脅。此外,由于API安全威脅有其獨(dú)特性,OWASP在2019年發(fā)布了針對(duì)API的安全風(fēng)險(xiǎn)TOP10列表。
由于API安全威脅的快速增長(zhǎng),能夠同時(shí)保護(hù)Web應(yīng)用程序和API的組合解決方案——WAAP(Web和API保護(hù))已經(jīng)開(kāi)始流行。WAAP解決方案通常包括以下功能:WAF、API安全、拒絕服務(wù)保護(hù)和bot防護(hù)。增加bot防護(hù)是因?yàn)槌撕戏ㄋ阉饕嬷猓絹?lái)越多的惡意bot程序未經(jīng)授權(quán)收集信息或執(zhí)行由網(wǎng)絡(luò)罪犯遠(yuǎn)程控制的自動(dòng)攻擊。
用虛擬補(bǔ)丁快速修復(fù)漏洞
WAAP解決方案讓所有攻擊者都為之頭疼,無(wú)論是業(yè)余黑客還是專業(yè)網(wǎng)絡(luò)罪犯。理想情況下,WAAP甚至可以抵御未知攻擊。WAAP的一個(gè)重要功能是虛擬補(bǔ)?。喝绻麘?yīng)用程序中的關(guān)鍵漏洞在運(yùn)行過(guò)程中被發(fā)現(xiàn)會(huì)怎樣?修復(fù)一個(gè)嚴(yán)重漏洞平均需要250多天!在修復(fù)可用之前,WAAP運(yùn)營(yíng)者可以先快速創(chuàng)建一個(gè)虛擬補(bǔ)丁,防止漏洞被利用。虛擬補(bǔ)丁可縮短易受攻擊的時(shí)間窗口,幫助安全團(tuán)隊(duì)在沒(méi)有時(shí)間壓力的情況下測(cè)試和推出補(bǔ)丁更新。
WAAP是如何工作的?
WAAP在OSI模型的第7層運(yùn)行,可以攔截范圍廣泛的威脅,包括注入、跨站點(diǎn)腳本(XSS)和其他攻擊。該保護(hù)適用于服務(wù)器應(yīng)用程序及其數(shù)據(jù),但不適用于訪問(wèn)它的瀏覽器或設(shè)備。從技術(shù)角度來(lái)看,通常需要反向代理打破加密(HTTPS)連接,控制雙向數(shù)據(jù)流并在必要時(shí)進(jìn)行更改?;蛘?,將保護(hù)功能嵌入到應(yīng)用程序中——這種方法稱為運(yùn)行時(shí)應(yīng)用程序自我保護(hù)(RASP),不太常見(jiàn),因?yàn)榧傻綉?yīng)用程序中要復(fù)雜得多。
下列WAAP保護(hù)機(jī)制可用于防止不同類型的攻擊:
●黑名單過(guò)濾器:使用阻止列表檢測(cè)并阻止可疑模式和已知類型的攻擊,例如跨站點(diǎn)腳本或注入攻擊。
●白名單過(guò)濾器:白名單過(guò)濾規(guī)則阻止所有未經(jīng)允許的內(nèi)容。白名單列表可由學(xué)習(xí)模式產(chǎn)生。
●身份驗(yàn)證和訪問(wèn)控制:只有授權(quán)用戶才能訪問(wèn)應(yīng)用程序,這可以顯著減少攻擊面。通過(guò)與身份服務(wù)提供商合作,每個(gè)用戶都需要預(yù)先經(jīng)過(guò)身份驗(yàn)證。這意味著沒(méi)有有效訪問(wèn)權(quán)限的攻擊者甚至無(wú)法尋找漏洞。
●速率限制和配額:限制流量會(huì)使暴力攻擊或內(nèi)容抓取更加困難。理想情況下,這些限制取決于調(diào)用者的身份,尤其是在調(diào)用API時(shí)。
●異常檢測(cè):可以使用人工智能檢測(cè)與“正常”用戶行為的明顯偏差。如果懷疑不受歡迎的bot在活動(dòng),可以要求其重新登錄或解決驗(yàn)證碼問(wèn)題。
●威脅情報(bào):某些用戶可通過(guò)位置或IP地址判斷其可信度。這種方法可以拒絕來(lái)自暗網(wǎng)或故意隱瞞身份的人。
●Cookie保護(hù):Cookie通常用于跟蹤Web應(yīng)用程序上的用戶會(huì)話。WAAP解決方案可以防止Cookie的修改,從而防止會(huì)話劫持。
●會(huì)話保護(hù):隱藏的令牌可防止跨站點(diǎn)請(qǐng)求偽造攻擊,防止登錄的受害者在不知情的情況下發(fā)起不需要的操作。
本地還是云端?
基于邊界的安全方法已經(jīng)一去不復(fù)返了。過(guò)去,WAF被放置在公司邊界以控制外部訪問(wèn)。如今,應(yīng)用程序和用戶通常都位于公司外部,這就是WAAP解決方案越來(lái)越多地遷移到云端(SaaS化)的原因。甚至CDN提供商現(xiàn)在也為Web應(yīng)用程序提供簡(jiǎn)單的保護(hù)功能。
批評(píng)與挑戰(zhàn)
WAAP是保護(hù)Web應(yīng)用程序和API免受最新威脅和攻擊的有效補(bǔ)充。WAAP基于全面的安全策略提供一整套措施:自動(dòng)漏洞掃描、定期滲透測(cè)試或安全編程培訓(xùn),以及強(qiáng)大的身份驗(yàn)證和嚴(yán)格的訪問(wèn)權(quán)限。理想情況下,這些安全控制在訪問(wèn)應(yīng)用程序之前進(jìn)行,訪問(wèn)控制通常被委托給身份和訪問(wèn)管理系統(tǒng)(IAM)。
WAAP的批評(píng)者抱怨說(shuō),基于簽名的黑名單過(guò)濾器會(huì)被專業(yè)黑客通過(guò)改變攻擊方法或巧妙的編碼來(lái)規(guī)避,也就是所謂的“過(guò)濾器繞過(guò)”。對(duì)此,現(xiàn)代WAAP解決方案在攻擊檢測(cè)開(kāi)始之前首先會(huì)對(duì)數(shù)據(jù)執(zhí)行多重解碼和規(guī)范化?;谔囟ㄇ閳?bào)和規(guī)則,WAAP不但能夠識(shí)別單個(gè)攻擊示例,而且能夠識(shí)別整個(gè)攻擊類別。
容器和零信任的微網(wǎng)關(guān)
微服務(wù)、持續(xù)交付和快速發(fā)布的趨勢(shì)也可能對(duì)WAAP系統(tǒng)構(gòu)成挑戰(zhàn),尤其是當(dāng)它們由IT部門集中管理時(shí)。如果應(yīng)用程序變更涉及對(duì)安全規(guī)則的微調(diào)時(shí),WAAP運(yùn)行者和應(yīng)用程序所有者之間的協(xié)調(diào)很快就會(huì)成為瓶頸。
為避免此類延遲,有時(shí)用戶會(huì)完全禁用WAAP功能。這個(gè)問(wèn)題可以通過(guò)WAAP的去中心化來(lái)解決。每個(gè)應(yīng)用程序或API不再僅僅依靠中央WAAP過(guò)濾,而是擁有自己的小型WAAP保護(hù)系統(tǒng)。
這些輕量級(jí)“迷你WAAP”通常與受保護(hù)的微服務(wù)位于同一容器中,因此稱為微網(wǎng)關(guān)。某種程度上來(lái)說(shuō),開(kāi)發(fā)團(tuán)隊(duì)本身就成為了WAAP的運(yùn)營(yíng)者,從而對(duì)安全規(guī)則有了更多的自主權(quán),在開(kāi)發(fā)或測(cè)試過(guò)程中可以很容易地激活保護(hù)功能。這大大減少了發(fā)布前的協(xié)調(diào)工作和可能的“消防演習(xí)”。去中心化的WAAP使零信任架構(gòu)成為可能,在這種架構(gòu)中,每次訪問(wèn)都會(huì)“現(xiàn)場(chǎng)”再次檢查和授權(quán)。
WAAP選型的六個(gè)關(guān)鍵問(wèn)題
在選擇WAAP產(chǎn)品時(shí),除了標(biāo)準(zhǔn)功能列表之外,用戶需要重點(diǎn)關(guān)注以下六大問(wèn)題:
●安全默認(rèn)設(shè)置:過(guò)濾器是否已由應(yīng)用程序安全專家預(yù)先配置和激活?是默認(rèn)“全開(kāi)”,還是必須先配置?
●高安全性:過(guò)濾規(guī)則是否不斷完善和加強(qiáng)?參考漏洞賞金計(jì)劃:只有已經(jīng)非常安全的解決方案才有能力向安全專家懸賞安全漏洞。
●零日漏洞響應(yīng):產(chǎn)品更新速度有多快?例如,WAAP過(guò)濾器用了多長(zhǎng)時(shí)間來(lái)阻止Log4Shell所有形式的攻擊,還是在漏洞披露之前就已經(jīng)保護(hù)了應(yīng)用程序?
●簡(jiǎn)單性和支持:該產(chǎn)品是基于開(kāi)源解決方案還是有專業(yè)支持?用戶問(wèn)題的響應(yīng)時(shí)間是多久?
●容器環(huán)境:哪些架構(gòu)變體可用于保護(hù)微服務(wù)或無(wú)服務(wù)器應(yīng)用程序?如何保護(hù)云原生和無(wú)服務(wù)器應(yīng)用程序?
●DevOps/GitOps:如何將產(chǎn)品集成到DevSecOps流程中?安全策略可以定義為代碼嗎?