跨站腳本攻擊:如何防止XSS漏洞?

XSS攻擊可用于獲得對特權(quán)信息的訪問,本文講的就是應(yīng)對它們的方法。美國國土安全部(Department of Homeland Security)目前向聯(lián)邦機(jī)構(gòu)發(fā)出警告,要警惕一種特別具有攻擊性的網(wǎng)絡(luò)攻擊形式——跨站腳本攻擊(XSS)。

XSS攻擊可用于獲得對特權(quán)信息的訪問,本文講的就是應(yīng)對它們的方法。美國國土安全部(Department of Homeland Security)目前向聯(lián)邦機(jī)構(gòu)發(fā)出警告,要警惕一種特別具有攻擊性的網(wǎng)絡(luò)攻擊形式——跨站腳本攻擊(XSS)。

美國國土安全部警告說:

“這種攻擊允許攻擊者冒充受害者進(jìn)入網(wǎng)站,這些漏洞可能會允許攻擊者不僅竊取cookie,還可以記錄鍵盤敲擊、捕捉屏幕截圖、發(fā)現(xiàn)和收集網(wǎng)絡(luò)信息,以及遠(yuǎn)程訪問和控制受害者的設(shè)備。”

Barracuda Networks高級安全研究員喬納森•坦納(Jonathan Tanner)表示:

“考慮到其數(shù)字資產(chǎn)的高價值,聯(lián)邦機(jī)構(gòu)的風(fēng)險可能尤其大。有了聯(lián)邦機(jī)構(gòu),就可以訪問特權(quán)信息和特權(quán)基礎(chǔ)設(shè)施,這對攻擊者來說是非常有利可圖的。無論是攻擊投票系統(tǒng),還是只是擾亂政府事務(wù),這些都可能是非常強(qiáng)烈的攻擊動機(jī)。”

什么是跨站腳本攻擊?

跨站腳本攻擊包括惡意參與者通過網(wǎng)站插入秘密代碼來針對受害者,CrowdStrike情報部門高級副總裁亞當(dāng)•邁耶斯(Adam Meyers)表示:“這種攻擊有幾種方式,但基本上攻擊者會向網(wǎng)站數(shù)據(jù)庫注入惡意腳本,讓瀏覽該網(wǎng)站瀏覽器的用戶執(zhí)行該腳本。”

作為一種客戶端代碼注入攻擊,XSS允許攻擊者通過受害者的web瀏覽器執(zhí)行惡意操作。政府機(jī)構(gòu)的web頁面或web應(yīng)用程序本質(zhì)上成為了傳播惡意腳本的工具。當(dāng)受害者訪問web頁面或web應(yīng)用程序時,代碼就會被執(zhí)行。

跨站腳本攻擊是如何發(fā)生的?

盡管存在幾種形式的XSS攻擊,但所有攻擊的結(jié)果本質(zhì)上都是一樣的:在用戶的瀏覽器中執(zhí)行惡意代碼。

通常,當(dāng)用戶與web應(yīng)用程序或網(wǎng)站交互時,數(shù)據(jù)會在客戶端和網(wǎng)站或應(yīng)用程序前端之間來回發(fā)送。其中可能大多是無害的數(shù)據(jù),可隨意瀏覽,或者應(yīng)用程序中可能有某些頁面或輸入從用戶那里收集數(shù)據(jù)。

XSS利用這些輸入插入其惡意指令,就拿一個簡單的博客或論壇來說吧。一般來說,作者會在網(wǎng)站上發(fā)布一篇博文,其他用戶可以對其進(jìn)行評論。這些評論是通過一個帶有提交按鈕的自由格式的文本框收集的。

在后臺,應(yīng)用程序正在從這些輸入字段中收集數(shù)據(jù):姓名、電子郵件地址、評論。那是什么阻止人們在文本框中放入其他東西并傳播回web應(yīng)用程序?可能什么都沒有。在這種情況下,可以利用站點本身來執(zhí)行跨站腳本攻擊。

什么是Cookie竊???

Cookie竊取是跨站腳本攻擊工具庫中的一種工具,它利用存儲在用戶Web瀏覽器緩存中的信息來識別特定連接或會話中的用戶。

如果攻擊者可以竊取用戶的cookie,那么攻擊者就可以冒充終端用戶,在XSS漏洞中,如果攻擊者可以竊取用戶的cookie,就可以變成用戶或者冒充用戶。攻擊者可以更改用戶的密碼、更改用戶的備份郵箱,從而接管整個賬戶。

這樣的攻擊可能允許惡意攻擊者獲取秘鑰來竊取用戶名和密碼。如果該用戶擁有政府網(wǎng)絡(luò)的管理證書,潛在的危害可能呈指數(shù)級上升。

XSS攻擊與跨站請求偽造攻擊的區(qū)別?

跨站請求偽造攻擊是XSS方法的變體,它迫使終端用戶執(zhí)行不希望的操作。例如,攻擊者可能誘騙web應(yīng)用程序的用戶更改電子郵件地址或轉(zhuǎn)移資金。

使用XSS,它攻擊用戶,改變頁面顯示內(nèi)容或頁面在瀏覽器中的呈現(xiàn)方式,準(zhǔn)確的說,它利用了用戶對網(wǎng)站的信任。

在跨站請求偽造中,它偽裝成是用戶,以利用web服務(wù)器對用戶的信任。如果用戶對web頁面進(jìn)行身份驗證,服務(wù)器就知道你已登錄。然后,攻擊者使用該令牌代表用戶發(fā)出請求,通常是在他們不知情的情況下,他們可以更改用戶可能更改的任何內(nèi)容。

如何檢測跨站腳本攻擊

眾所周知,XSS攻擊很難被檢測到,因為瀏覽器無法區(qū)分合法和非法行為。

只有在受到攻擊后,研究人員蔡可以對代碼進(jìn)行漏洞掃描,以確保沒有遺漏任何東西。目前有許多免費和付費資源可以執(zhí)行此操作,以尋找這些特定類型的攻擊或可能容易受到此類攻擊的領(lǐng)域。

Web應(yīng)用程序過濾工具也提供了一些保護(hù),當(dāng)服務(wù)器檢測到攻擊的有效載荷時,就是檢測正在進(jìn)行中的攻擊的良好機(jī)制。Web應(yīng)用程序過濾器將尋找具有特定上下文的請求,這些請求反映了XSS攻擊。這可以歸結(jié)為異常檢測,研究人員也可以通過一個集成了檢測威脅的日志產(chǎn)品來實現(xiàn)。

不過,專家表示,總體而言,防御XSS攻擊的最佳方法是預(yù)防而不是檢測。

跨站腳本預(yù)防技巧

確保你的瀏覽器已打補(bǔ)丁,確保你在完成所做的工作后退出站點。這確保了cookie不再有效,請謹(jǐn)慎考慮您訪問的網(wǎng)站。另一個好的策略是使用多個瀏覽器:將一個用于受信任的站點,將另一個用于不受信任的站點。

從較高的層次上來說,可以考慮其開發(fā)流程,構(gòu)建安全措施來保護(hù)應(yīng)用程序和網(wǎng)站免受此類攻擊。XSS很容易被預(yù)防,但是如果沒有安全原則作為開發(fā)設(shè)計的基礎(chǔ),那么事后使用安全保護(hù)措施時,它就會被忽略。

最簡單的方法是安裝過濾器,當(dāng)用戶添加輸入時,使其合理,比如電話號碼應(yīng)該是電話號碼,日期應(yīng)該是日期,而不是一段Java腳本。請確保如果你的應(yīng)用程序要求輸入名字,那么該名字就不應(yīng)是活動內(nèi)容,并在將其顯示給用戶之前對其進(jìn)行編碼。這樣,攻擊者就無法利用純文本發(fā)起攻擊了。不過這么高級的方法在很大程度上取決于開發(fā)人員的技能水平。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論