隨著SQL注入攻擊日益消沉,由于Web業(yè)務的代碼編寫人員不嚴謹?shù)淖址拗贫鴮е碌腦SS漏洞出現(xiàn),XSS攻擊成為了一種新的安全挑戰(zhàn)。
1.什么是XSS(跨站腳本)攻擊?
XSS攻擊:跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。XSS是一種經(jīng)常出現(xiàn)在Web應用中的計算機安全漏洞,它允許惡意Web用戶將代碼植入到提供給其它用戶使用的頁面中,比如HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy)。這種類型的漏洞由于被駭客用來編寫危害性更大的phishing攻擊而變得廣為人知。對于跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新型的“緩沖區(qū)溢出攻擊”,而JavaScript是新型的“ShellCode”。
XSS攻擊和前段時間甚囂塵上的SQL注入攻擊一樣,都是由于Web業(yè)務的代碼編寫人員不嚴謹?shù)淖址拗贫鴮е碌模寒斈硞站點允許用戶提交java script腳本(這在Web2.0年代非常普遍),而又沒有對這些腳本進行嚴格分析,就有可能存在XSS漏洞。這就決定了XSS漏洞的獨特性:任何允許提交腳本的頁面都可能存在XSS漏洞,而且這些漏洞可能各不相同。
2.如何防御XSS攻擊?
業(yè)內(nèi)對XSS漏洞的防御一般有兩種方式。
第一種方式就是代碼修改,對用戶所有提交內(nèi)容進行驗證,包括URL、查詢關鍵字、HTTP頭、POST數(shù)據(jù)等,僅接受指定長度范圍內(nèi)、采用適當格式、采用所預期的字符的內(nèi)容提交,對其它的一律過濾。接下來就是實現(xiàn)Session標記(session tokens)、CAPTCHA系統(tǒng)或者HTTP引用頭檢查,以防功能被第三方網(wǎng)站所執(zhí)行。最后一步就是確認接收的的內(nèi)容被妥善的規(guī)范化,僅包含最小的、安全的Tag(沒有javascript),去掉任何對遠程內(nèi)容的引用(尤其是樣式表和javascript),使用HTTP only的cookie。
但這種方法將降低Web業(yè)務的交互能力,用戶僅能提交少量指定的字符,不適應那些交互性要求較高的業(yè)務系統(tǒng)。而且Web業(yè)務的編碼人員很少有受過正規(guī)的安全培訓,即便是專業(yè)的安全公司,由于側(cè)重點的不同,也很難完全避免XSS攻擊:2008年1月,xssed.com的一份報告指出McAfee、Symantec、VeriSign這三家安全公司的官方站點存在約30個XSS漏洞。
第二種方式就是部署專業(yè)的防御設備,目前較為流行的有入侵防御產(chǎn)品,利用的就是入侵防御產(chǎn)品對應用層攻擊的檢測防御能力。用戶在選擇相應的產(chǎn)品之前,最好先了解一下相關產(chǎn)品的XSS、SQL注入等Web威脅的檢測方式,有一些入侵防御產(chǎn)品采用的還是傳統(tǒng)的特征匹配方法,如對經(jīng)典的XSS攻擊來說,就是定義“javascript”這個關鍵字進行檢索,一旦發(fā)現(xiàn)提交信息中包含“javascript”,就認定為XSS攻擊。這種模式匹配的方法缺點顯而易見:通過編碼或插入TAB鍵方式可以輕易躲避,而且還存在極大的誤報可能,如“http://www.xxx.com/javascript/kkk.asp?id=2345”這樣一個URL,由于包含了關鍵字“javascript”,也將會觸發(fā)報警。
比較好的方式是選擇那些基于攻擊手法或者說基于攻擊原理檢測的入侵防御產(chǎn)品。啟明星辰公司于近期發(fā)布天清入侵防御系統(tǒng)的新版本,沒有采用傳統(tǒng)的特征匹配方式,而是采用了行為特征分析方式,通過分析XSS所有可能的攻擊手法,建立一個XSS攻擊行為庫來分析判斷XSS攻擊。采用了這種方法的入侵防御產(chǎn)品可以避免傳統(tǒng)安全產(chǎn)品在XSS攻擊檢測上的漏報和誤報,實現(xiàn)精確阻斷,為面臨XSS威脅的廣大網(wǎng)絡管理員提供一個很好的選擇。
如果有需要服務器的租用與托管的敬請聯(lián)系QQ:1501281758(億恩星辰) 聯(lián)系電話:0371—63322220