二十多年來,跨站腳本(簡稱 XSS)漏洞一直是主流網(wǎng)站的心頭之痛囱持。為什么過了這么久突想,這些網(wǎng)站還是對此類漏洞束手無策呢凤壁?
對于最近 eBay 網(wǎng)站曝出的跨站腳本漏洞熄阻,你有什么想法?為什么會出現(xiàn)這樣的漏網(wǎng)之魚?一個如此大規(guī)模的網(wǎng)站啥刻,不應(yīng)該具備可靠的網(wǎng)關(guān)安全技術(shù)以阻止任何情況下的 XSS 攻擊么奸鸯?
即便從上世紀 90 年代開始,跨站腳本漏洞就已經(jīng)為人們所熟知可帽。時至今日娄涩,它仍在貽害為數(shù)不少的網(wǎng)站。大多數(shù)主流網(wǎng)站映跟,包括谷歌蓄拣,CNN,PayPal 以及 Facebook努隙,都曾受過 XSS 漏洞的影響球恤。該漏洞也常年出現(xiàn)在 CWE/SANS 前 25 個最危險的編程錯誤、OWASP 前 10 個最致命的 Web 應(yīng)用安全風險之類的榜單荸镊。
XSS 攻擊與大多數(shù)應(yīng)用層攻擊(諸如 SQL 注入攻擊)不同咽斧,因為它攻擊的是應(yīng)用的用戶,而非應(yīng)用本身或應(yīng)用服務(wù)器躬存。這類攻擊會往 Web 應(yīng)用的內(nèi)容中注入代碼张惹,通常是 JavaScript 之類的客戶端代碼。大多數(shù)網(wǎng)站都有許許多多的注入位置岭洲,包括搜索框宛逗、反饋表格,cookie 以及論壇等盾剩。借助 XSS 漏洞雷激,黑客可以竊取數(shù)據(jù),控制用戶的會話彪腔,運行惡意代碼进栽,或操縱受害用戶瀏覽器中顯示的內(nèi)容格嗅。
像 eBay 這樣的網(wǎng)站,幾乎完全基于用戶產(chǎn)生的內(nèi)容贴铜,通常在用戶的項目描述部分包含許多活動內(nèi)容(Active Content)徘意,比如 JavaScript 和 Flash。由于網(wǎng)站必須與用戶互動勤讽,接收來自用戶的輸入、返回數(shù)據(jù)莫矗,這意味著,攻擊者也可以直接與網(wǎng)站互動,從而穿破傳統(tǒng)的外圍安全防護眨唬。除非所有用戶提供的內(nèi)容都經(jīng)過嚴格審查蔚万,XSS 攻擊代碼就有可能注入拍賣清單頁面昵慌,從而影響每個訪問該頁面的用戶。用戶輸入的所有內(nèi)容(表單數(shù)據(jù)淳蔼、cookie、郵件析桥、文件猜憎、圖片等)都應(yīng)該視為不可信任,需要經(jīng)歷審查崩瓤,刪除其中可能被惡意使用的字符與字符串,才能繼續(xù)執(zhí)行腳本或傳給數(shù)據(jù)庫踩官。
導致 eBay 這樣的大網(wǎng)站持續(xù)受到 XSS 攻擊的一大原因却桶,是這些網(wǎng)站過于復雜,實時生成的網(wǎng)頁常常會包含許多外部站點的內(nèi)容蔗牡。這使得測試階段颖系,枚舉用戶與應(yīng)用交互的所有排列組合變得不太現(xiàn)實,繼而導致 XSS 漏網(wǎng)之魚的出現(xiàn)辩越。
話雖如此嘁扼,eBay 居然沒有一套更為嚴格的代碼審查流程(近幾周發(fā)現(xiàn)了多個 XSS 漏洞),還是有些令人吃驚黔攒。用于測試 XSS 漏洞的工具其實很多趁啸,它們都能在代碼上線之前有效查找漏洞。此外亏钩,開發(fā)者也可以使用安全控制庫(諸如 OWASP 的企業(yè)安全 API 或微軟的反跨站腳本庫)莲绰,而不需要自己編寫驗證檢查欺旧。而且姑丑,諸如運行時應(yīng)用自我保護(RASP)等網(wǎng)關(guān)安全技術(shù)也有助于檢測并防御對 XSS 漏洞的攻擊。因此辞友,如此主流的一個大網(wǎng)站(eBay)栅哀,卻沒能有效防御如此廣為人知的安全漏洞震肮,實在是有些讓人失望。
如今留拾,多樣化的攻擊手段層出不窮戳晌,傳統(tǒng)安全解決方案越來越難以應(yīng)對網(wǎng)絡(luò)安全攻擊。OneRASP 實時應(yīng)用自我保護技術(shù),可以為軟件產(chǎn)品提供精準的實時保護痴柔,使其免受漏洞所累沦偎。想閱讀更多技術(shù)文章,請訪問 [OneAPM 官方技術(shù)博客]咳蔚。
本文轉(zhuǎn)自 OneAPM 官方博客