互聯(lián)網(wǎng)和Web技術(shù)廣泛使用,使Web應(yīng)用安全所面臨的挑戰(zhàn)日益嚴(yán)峻,Web系統(tǒng)時(shí)時(shí)刻刻都在遭受各種攻擊的威脅,在這種情況下,需要制定一個(gè)完整的Web攻擊防御解決方案,通過(guò)安全的Web應(yīng)用程序、Web服務(wù)器軟件、Web防攻擊設(shè)備共同配合,確保整個(gè)網(wǎng)站的安全。
Web應(yīng)用攻擊是攻擊者通過(guò)瀏覽器或攻擊工具,在URL或者其它輸入?yún)^(qū)域(如表單等),向Web服務(wù)器發(fā)送特殊請(qǐng)求,從中發(fā)現(xiàn)Web應(yīng)用程序存在的漏洞,從而進(jìn)一步操縱和控制網(wǎng)站,查看、修改未授權(quán)的信息。
1、信息泄露漏洞
信息泄露漏洞是由于Web服務(wù)器或應(yīng)用程序沒(méi)有正確處理一些特殊請(qǐng)求,泄露Web服務(wù)器的一些敏感信息,如用戶名、密碼、源代碼、服務(wù)器信息、配置信息等。
造成信息泄露主要有以下三種原因:
–Web服務(wù)器配置存在問(wèn)題,導(dǎo)致一些系統(tǒng)文件或者配置文件暴露在互聯(lián)網(wǎng)中;
–Web服務(wù)器本身存在漏洞,在瀏覽器中輸入一些特殊的字符,可以訪問(wèn)未授權(quán)的文件或者動(dòng)態(tài)腳本文件源碼;
–Web網(wǎng)站的程序編寫(xiě)存在問(wèn)題,對(duì)用戶提交請(qǐng)求沒(méi)有進(jìn)行適當(dāng)?shù)倪^(guò)濾,直接使用用戶提交上來(lái)的數(shù)據(jù)。
2、目錄遍歷漏洞
目錄遍歷漏洞是攻擊者向Web服務(wù)器發(fā)送請(qǐng)求,通過(guò)在URL中或在有特殊意義的目錄中附加“../”、或者附加“../”的一些變形(如“..\”或“..//”甚至其編碼),導(dǎo)致攻擊者能夠訪問(wèn)未授權(quán)的目錄,以及在Web服務(wù)器的根目錄以外執(zhí)行命令。
3、命令執(zhí)行漏洞
命令執(zhí)行漏洞是通過(guò)URL發(fā)起請(qǐng)求,在Web服務(wù)器端執(zhí)行未授權(quán)的命令,獲取系統(tǒng)信息,篡改系統(tǒng)配置,控制整個(gè)系統(tǒng),使系統(tǒng)癱瘓等。
命令執(zhí)行漏洞主要有兩種情況:
–通過(guò)目錄遍歷漏洞,訪問(wèn)系統(tǒng)文件夾,執(zhí)行指定的系統(tǒng)命令;
–攻擊者提交特殊的字符或者命令,Web程序沒(méi)有進(jìn)行檢測(cè)或者繞過(guò)Web應(yīng)用程序過(guò)濾,把用戶提交的請(qǐng)求作為指令進(jìn)行解析,導(dǎo)致執(zhí)行任意命令。
4、文件包含漏洞
文件包含漏洞是由攻擊者向Web服務(wù)器發(fā)送請(qǐng)求時(shí),在URL添加非法參數(shù),Web服務(wù)器端程序變量過(guò)濾不嚴(yán),把非法的文件名作為參數(shù)處理。這些非法的文件名可以是服務(wù)器本地的某個(gè)文件,也可以是遠(yuǎn)端的某個(gè)惡意文件。由于這種漏洞是由PHP變量過(guò)濾不嚴(yán)導(dǎo)致的,所以只有基于PHP開(kāi)發(fā)的Web應(yīng)用程序才有可能存在文件包含漏洞。
5、SQL注入漏洞
SQL注入漏洞是由于Web應(yīng)用程序沒(méi)有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,攻擊者通過(guò)Web頁(yè)面的輸入?yún)^(qū)域(如URL、表單等) ,用精心構(gòu)造的SQL語(yǔ)句插入特殊字符和指令,通過(guò)和數(shù)據(jù)庫(kù)交互獲得私密信息或者篡改數(shù)據(jù)庫(kù)信息。SQL注入攻擊在Web攻擊中非常流行,攻擊者可以利用SQL注入漏洞獲得管理員權(quán)限,在網(wǎng)頁(yè)上加掛木馬和各種惡意程序,盜取企業(yè)和用戶敏感信息。
6、跨站腳本漏洞
跨站腳本漏洞是因?yàn)閃eb應(yīng)用程序時(shí)沒(méi)有對(duì)用戶提交的語(yǔ)句和變量進(jìn)行過(guò)濾或限制,攻擊者通過(guò)Web頁(yè)面的輸入?yún)^(qū)域向數(shù)據(jù)庫(kù)或HTML頁(yè)面中提交惡意代碼,當(dāng)用戶打開(kāi)有惡意代碼的鏈接或頁(yè)面時(shí),惡意代碼通過(guò)瀏覽器自動(dòng)執(zhí)行,從而達(dá)到攻擊的目的。跨站腳本漏洞危害很大,尤其是目前被廣泛使用的網(wǎng)絡(luò)銀行,通過(guò)跨站腳本漏洞攻擊者可以冒充受害者訪問(wèn)用戶重要賬戶,盜竊企業(yè)重要信息。
根據(jù)前期各個(gè)漏洞研究機(jī)構(gòu)的調(diào)查顯示,SQL注入漏洞和跨站腳本漏洞的普遍程度排名前兩位,造成的危害也更加巨大。
SQL注入攻擊是通過(guò)構(gòu)造巧妙的SQL語(yǔ)句,同網(wǎng)頁(yè)提交的內(nèi)容結(jié)合起來(lái)進(jìn)行注入攻擊。比較常用的手段有使用注釋符號(hào)、恒等式(如1=1)、使用union語(yǔ)句進(jìn)行聯(lián)合查詢(xún)、使用insert或update語(yǔ)句插入或修改數(shù)據(jù)等,此外還可以利用一些內(nèi)置函數(shù)輔助攻擊。
通過(guò)SQL注入漏洞攻擊網(wǎng)站的步驟一般如下:
第一步:探測(cè)網(wǎng)站是否存在SQL注入漏洞。
第二步:探測(cè)后臺(tái)數(shù)據(jù)庫(kù)的類(lèi)型。
第三步:根據(jù)后臺(tái)數(shù)據(jù)庫(kù)的類(lèi)型,探測(cè)系統(tǒng)表的信息。
第四步:探測(cè)存在的表信息。
第五步:探測(cè)表中存在的列信息。
第六步:探測(cè)表中的數(shù)據(jù)信息。
跨站腳本攻擊的目的是盜走客戶端敏感信息,冒充受害者訪問(wèn)用戶的重要賬戶??缯灸_本攻擊主要有以下三種形式:
1、本地跨站腳本攻擊
B給A發(fā)送一個(gè)惡意構(gòu)造的Web URL,A點(diǎn)擊查看了這個(gè)URL,并將該頁(yè)面保存到本地硬盤(pán)(或B構(gòu)造的網(wǎng)頁(yè)中存在這樣的功能)。A在本地運(yùn)行該網(wǎng)頁(yè),網(wǎng)頁(yè)中嵌入的惡意腳本可以A電腦上執(zhí)行A持有的權(quán)限下的所有命令。
2、反射跨站腳本攻擊
A經(jīng)常瀏覽某個(gè)網(wǎng)站,此網(wǎng)站為B所擁有。A使用用戶名/密碼登錄B網(wǎng)站,B網(wǎng)站存儲(chǔ)下A的敏感信息(如銀行帳戶信息等)。C發(fā)現(xiàn)B的站點(diǎn)包含反射跨站腳本漏洞,編寫(xiě)一個(gè)利用漏洞的URL,域名為B網(wǎng)站,在URL后面嵌入了惡意腳本(如獲取A的cookie文件),并通過(guò)郵件或社會(huì)工程學(xué)等方式欺騙A訪問(wèn)存在惡意的URL。當(dāng)A使用C提供的URL訪問(wèn)B網(wǎng)站時(shí),由于B網(wǎng)站存在反射跨站腳本漏洞,嵌入到URL中的惡意腳本通過(guò)Web服務(wù)器返回給A,并在A瀏覽器中執(zhí)行,A的敏感信息在完全不知情的情況下將發(fā)送給了C。
3、持久跨站腳本攻擊
B擁有一個(gè)Web站點(diǎn),該站點(diǎn)允許用戶發(fā)布和瀏覽已發(fā)布的信息。C注意到B的站點(diǎn)具有持久跨站腳本漏洞,C發(fā)布一個(gè)熱點(diǎn)信息,吸引用戶閱讀。A一旦瀏覽該信息,其會(huì)話cookies或者其它信息將被C盜走。持久性跨站腳本攻擊一般出現(xiàn)在論壇、留言簿等網(wǎng)頁(yè),攻擊者通過(guò)留言,將攻擊數(shù)據(jù)寫(xiě)入服務(wù)器數(shù)據(jù)庫(kù)中,瀏覽該留言的用戶的信息都會(huì)被泄漏。
對(duì)于以上常見(jiàn)的Web應(yīng)用漏洞漏洞,可以從如下幾個(gè)方面入手進(jìn)行防御:
1)對(duì) Web應(yīng)用開(kāi)發(fā)者而言
大部分Web應(yīng)用常見(jiàn)漏洞,都是在Web應(yīng)用開(kāi)發(fā)中,開(kāi)發(fā)者沒(méi)有對(duì)用戶輸入的參數(shù)進(jìn)行檢測(cè)或者檢測(cè)不嚴(yán)格造成的。所以,Web應(yīng)用開(kāi)發(fā)者應(yīng)該樹(shù)立很強(qiáng)的安全意識(shí),開(kāi)發(fā)中編寫(xiě)安全代碼;對(duì)用戶提交的URL、查詢(xún)關(guān)鍵字、HTTP頭、POST數(shù)據(jù)等進(jìn)行嚴(yán)格的檢測(cè)和限制,只接受一定長(zhǎng)度范圍內(nèi)、采用適當(dāng)格式及編碼的字符,阻塞、過(guò)濾或者忽略其它的任何字符。通過(guò)編寫(xiě)安全的Web應(yīng)用代碼,可以消除絕大部分的Web應(yīng)用安全問(wèn)題。
2) 對(duì)Web網(wǎng)站管理員而言
作為負(fù)責(zé)網(wǎng)站日常維護(hù)管理工作Web管理員,應(yīng)該及時(shí)跟蹤并安裝最新的、支撐Web網(wǎng)站運(yùn)行的各種軟件的安全補(bǔ)丁,確保攻擊者無(wú)法通過(guò)軟件漏洞對(duì)網(wǎng)站進(jìn)行攻擊。
除了軟件本身的漏洞外,Web服務(wù)器、數(shù)據(jù)庫(kù)等不正確的配置也可能導(dǎo)致Web應(yīng)用安全問(wèn)題。Web網(wǎng)站管理員應(yīng)該對(duì)網(wǎng)站各種軟件配置進(jìn)行仔細(xì)檢測(cè),降低安全問(wèn)題的出現(xiàn)可能。
此外,Web管理員還應(yīng)該定期審計(jì)Web服務(wù)器日志,檢測(cè)是否存在異常訪問(wèn),及早發(fā)現(xiàn)潛在的安全問(wèn)題。
3)使用網(wǎng)絡(luò)防攻擊設(shè)備
前兩種為事前預(yù)防方式,是比較理想化的情況。然而在現(xiàn)實(shí)中,Web應(yīng)用系統(tǒng)的漏洞還是不可避免的存在:部分Web網(wǎng)站已經(jīng)存在大量的安全漏洞,而Web開(kāi)發(fā)者和網(wǎng)站管理員并沒(méi)有意識(shí)到或發(fā)現(xiàn)這些安全漏洞。由于Web應(yīng)用是采用HTTP協(xié)議,普通的防火墻設(shè)備無(wú)法對(duì)Web類(lèi)攻擊進(jìn)行防御,因此可以使用IPS入侵防御設(shè)備來(lái)實(shí)現(xiàn)安全防護(hù)。
H3C IPS Web攻擊防御
H3C IPS入侵防御設(shè)備有一套完整的Web攻擊防御框架,能夠及時(shí)發(fā)現(xiàn)各種已經(jīng)暴露的和潛在的Web攻擊。下圖為對(duì)于Web攻擊的總體防御框架。
H3C IPS采用基于特征識(shí)別的方式識(shí)別并阻斷各種攻擊。IPS設(shè)備有一個(gè)完整的特征庫(kù),并可定期以手工與自動(dòng)的方式對(duì)特征庫(kù)進(jìn)行升級(jí)。當(dāng)網(wǎng)絡(luò)流量進(jìn)入IPS后,IPS首先對(duì)報(bào)文進(jìn)行預(yù)處理,檢測(cè)報(bào)文是否正確,即滿足協(xié)議定義要求,沒(méi)有錯(cuò)誤字段;如果報(bào)文正確,則進(jìn)入深度檢測(cè)引擎。該引擎是IPS檢測(cè)的核心模塊,對(duì)通過(guò)IPS設(shè)備的Web流量進(jìn)行深層次的分析,并與IPS攻擊庫(kù)中的特征進(jìn)行匹配,檢測(cè)Web流量是否存在異常;如果發(fā)現(xiàn)流量匹配了攻擊特征,IPS則阻斷網(wǎng)絡(luò)流量并上報(bào)日志;否則,網(wǎng)絡(luò)流量順利通過(guò)。
此Web攻擊防御框架有如下幾個(gè)特點(diǎn):
1) 構(gòu)造完整的Web攻擊檢測(cè)模型,準(zhǔn)確識(shí)別各種Web攻擊
針對(duì)Web攻擊的特點(diǎn),考慮到各種Web攻擊的原理和形態(tài),在不同漏洞模型之上開(kāi)發(fā)出通用的、層次化的Web攻擊檢測(cè)模型,并融合到特征庫(kù)中。這些模型抽象出Web攻擊的一般形態(tài),對(duì)主流的攻擊能夠準(zhǔn)確識(shí)別,使得模型通用化。
2) 檢測(cè)方式靈活,可以準(zhǔn)確識(shí)別變形的Web攻擊
在實(shí)際攻擊中,攻擊者為了逃避防攻擊設(shè)備的檢測(cè),經(jīng)常對(duì)Web攻擊進(jìn)行變形,如采用URL編碼技術(shù)、修改參數(shù)等。H3C根據(jù)Web應(yīng)用漏洞發(fā)生的原理、攻擊方式和攻擊目標(biāo),對(duì)攻擊特征進(jìn)行了擴(kuò)展。即使攻擊者修改攻擊參數(shù)、格式、語(yǔ)句等內(nèi)容,相同漏洞原理下各種變形的攻擊同樣能夠被有效阻斷。這使得IPS的防御范圍擴(kuò)大,防御的靈活性也顯著增強(qiáng),極大的減少了漏報(bào)情況的出現(xiàn)。
3) 確保對(duì)最新漏洞及技術(shù)的跟蹤,有效阻止最新的攻擊
隨著Web攻擊出現(xiàn)的頻率日益增高,其危害有逐步擴(kuò)展的趨勢(shì)。這對(duì)IPS設(shè)備在防御的深度和廣度上提出了更高的要求,不僅要能夠防御已有的Web攻擊,更要有效的阻止最新出現(xiàn)的、未公布的攻擊。目前,H3C已經(jīng)建立起一套完整的攻防試驗(yàn)環(huán)境,可以及時(shí)發(fā)現(xiàn)潛在Web安全漏洞。同時(shí)還在繼續(xù)跟蹤最新的Web攻擊技術(shù)和工具,及時(shí)更新Web攻擊的特征庫(kù),第一時(shí)間發(fā)布最新的Web漏洞應(yīng)對(duì)措施,確保用戶的網(wǎng)絡(luò)不受到攻擊。
4) 保證正常業(yè)務(wù)的高效運(yùn)行
檢測(cè)引擎是IPS整個(gè)設(shè)備運(yùn)行的關(guān)鍵,該引擎使用了高效、準(zhǔn)確的檢測(cè)算法,對(duì)通過(guò)設(shè)備的流量進(jìn)行深層次的分析,并通過(guò)和攻擊特征進(jìn)行匹配,檢測(cè)流量是否存在異常。如果流量沒(méi)有匹配到攻擊特征,則允許流量通過(guò),不會(huì)妨礙正常的網(wǎng)絡(luò)業(yè)務(wù),在準(zhǔn)確防御的同時(shí)保證了正常業(yè)務(wù)的高效運(yùn)行。
SQL注入攻擊(SQL Injection),簡(jiǎn)稱(chēng)注入攻擊、SQL注入,被廣泛用于非法獲取網(wǎng)站控制權(quán),是發(fā)生在應(yīng)用程序的數(shù)據(jù)庫(kù)層上的安全漏洞。在設(shè)計(jì)程序,忽略了對(duì)輸入字符串中夾帶的SQL指令的檢查,被數(shù)據(jù)庫(kù)誤認(rèn)為是正常的SQL指令而運(yùn)行,從而使數(shù)據(jù)庫(kù)受到攻擊,可能導(dǎo)致數(shù)據(jù)被竊取、更改、刪除,以及進(jìn)一步導(dǎo)致網(wǎng)站被嵌入惡意代碼、被植入后門(mén)程序等危害。
通常情況下,SQL注入的位置包括:
(1)表單提交,主要是POST請(qǐng)求,也包括GET請(qǐng)求;
(2)URL參數(shù)提交,主要為GET請(qǐng)求參數(shù);
(3)Cookie參數(shù)提交;
(4)HTTP請(qǐng)求頭部的一些可修改的值,比如Referer、User_Agent等;
(5)一些邊緣的輸入點(diǎn),比如.mp3文件的一些文件信息等。
常見(jiàn)的防范方法
(1)所有的查詢(xún)語(yǔ)句都使用數(shù)據(jù)庫(kù)提供的參數(shù)化查詢(xún)接口,參數(shù)化的語(yǔ)句使用參數(shù)而不是將用戶輸入變量嵌入到SQL語(yǔ)句中。當(dāng)前幾乎所有的數(shù)據(jù)庫(kù)系統(tǒng)都提供了參數(shù)化SQL語(yǔ)句執(zhí)行接口,使用此接口可以非常有效的防止SQL注入攻擊。
(2)對(duì)進(jìn)入數(shù)據(jù)庫(kù)的特殊字符(’”<>&*;等)進(jìn)行轉(zhuǎn)義處理,或編碼轉(zhuǎn)換。
(3)確認(rèn)每種數(shù)據(jù)的類(lèi)型,比如數(shù)字型的數(shù)據(jù)就必須是數(shù)字,數(shù)據(jù)庫(kù)中的存儲(chǔ)字段必須對(duì)應(yīng)為int型。
(4)數(shù)據(jù)長(zhǎng)度應(yīng)該嚴(yán)格規(guī)定,能在一定程度上防止比較長(zhǎng)的SQL注入語(yǔ)句無(wú)法正確執(zhí)行。
(5)網(wǎng)站每個(gè)數(shù)據(jù)層的編碼統(tǒng)一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導(dǎo)致一些過(guò)濾模型被繞過(guò)。
(6)嚴(yán)格限制網(wǎng)站用戶的數(shù)據(jù)庫(kù)的操作權(quán)限,給此用戶提供僅僅能夠滿足其工作的權(quán)限,從而最大限度的減少注入攻擊對(duì)數(shù)據(jù)庫(kù)的危害。
(7)避免網(wǎng)站顯示SQL錯(cuò)誤信息,比如類(lèi)型錯(cuò)誤、字段不匹配等,防止攻擊者利用這些錯(cuò)誤信息進(jìn)行一些判斷。
(8)在網(wǎng)站發(fā)布之前建議使用一些專(zhuān)業(yè)的SQL注入檢測(cè)工具進(jìn)行檢測(cè),及時(shí)修補(bǔ)這些SQL注入漏洞。
跨站腳本攻擊(Cross-site scripting,通常簡(jiǎn)稱(chēng)為XSS)發(fā)生在客戶端,可被用于進(jìn)行竊取隱私、釣魚(yú)欺騙、竊取密碼、傳播惡意代碼等攻擊。
XSS攻擊使用到的技術(shù)主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對(duì)WEB服務(wù)器雖無(wú)直接危害,但是它借助網(wǎng)站進(jìn)行傳播,使網(wǎng)站的使用用戶受到攻擊,導(dǎo)致網(wǎng)站用戶帳號(hào)被竊取,從而對(duì)網(wǎng)站也產(chǎn)生了較嚴(yán)重的危害。
XSS類(lèi)型包括:
(1)非持久型跨站:即反射型跨站腳本漏洞,是目前最普遍的跨站類(lèi)型??缯敬a一般存在于鏈接中,請(qǐng)求這樣的鏈接時(shí),跨站代碼經(jīng)過(guò)服務(wù)端反射回來(lái),這類(lèi)跨站的代碼不存儲(chǔ)到服務(wù)端(比如數(shù)據(jù)庫(kù)中)。上面章節(jié)所舉的例子就是這類(lèi)情況。
(2)持久型跨站:這是危害最直接的跨站類(lèi)型,跨站代碼存儲(chǔ)于服務(wù)端(比如數(shù)據(jù)庫(kù)中)。常見(jiàn)情況是某用戶在論壇發(fā)貼,如果論壇沒(méi)有過(guò)濾用戶輸入的Javascript代碼數(shù)據(jù),就會(huì)導(dǎo)致其他瀏覽此貼的用戶的瀏覽器會(huì)執(zhí)行發(fā)貼人所嵌入的Javascript代碼。
(3)DOM跨站(DOM XSS):是一種發(fā)生在客戶端DOM(Document Object Model文檔對(duì)象模型)中的跨站漏洞,很大原因是因?yàn)榭蛻舳四_本處理邏輯導(dǎo)致的安全問(wèn)題。
常用的防止XSS技術(shù)包括:
(1)與SQL注入防護(hù)的建議一樣,假定所有輸入都是可疑的,必須對(duì)所有輸入中的script、iframe等字樣進(jìn)行嚴(yán)格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入接口,也包括HTTP請(qǐng)求中的Cookie中的變量,HTTP請(qǐng)求頭部中的變量等。
(2)不僅要驗(yàn)證數(shù)據(jù)的類(lèi)型,還要驗(yàn)證其格式、長(zhǎng)度、范圍和內(nèi)容。
(3)不要僅僅在客戶端做數(shù)據(jù)的驗(yàn)證與過(guò)濾,關(guān)鍵的過(guò)濾步驟在服務(wù)端進(jìn)行。
(4)對(duì)輸出的數(shù)據(jù)也要檢查,數(shù)據(jù)庫(kù)里的值有可能會(huì)在一個(gè)大網(wǎng)站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點(diǎn)時(shí)也要進(jìn)行安全檢查。
(5)在發(fā)布應(yīng)用程序之前測(cè)試所有已知的威脅。
弱口令(weak password) 沒(méi)有嚴(yán)格和準(zhǔn)確的定義,通常認(rèn)為容易被別人(他們有可能對(duì)你很了解)猜測(cè)到或被破解工具破解的口令均為弱口令。設(shè)置密碼通常遵循以下原則:
(1)不使用空口令或系統(tǒng)缺省的口令,這些口令眾所周之,為典型的弱口令。
(2)口令長(zhǎng)度不小于8個(gè)字符。
(3)口令不應(yīng)該為連續(xù)的某個(gè)字符(例如:AAAAAAAA)或重復(fù)某些字符的組合(例如:tzf.tzf.)。
(4)口令應(yīng)該為以下四類(lèi)字符的組合,大寫(xiě)字母(A-Z)、小寫(xiě)字母(a-z)、數(shù)字(0-9)和特殊字符。每類(lèi)字符至少包含一個(gè)。如果某類(lèi)字符只包含一個(gè),那么該字符不應(yīng)為首字符或尾字符。
(5)口令中不應(yīng)包含本人、父母、子女和配偶的姓名和出生日期、紀(jì)念日期、登錄名、E-mail地址等等與本人有關(guān)的信息,以及字典中的單詞。
(6)口令不應(yīng)該為用數(shù)字或符號(hào)代替某些字母的單詞。
(7)口令應(yīng)該易記且可以快速輸入,防止他人從你身后很容易看到你的輸入。
(8)至少90天內(nèi)更換一次口令,防止未被發(fā)現(xiàn)的入侵者繼續(xù)使用該口令。
HTTP/1.1(RFC2616)規(guī)范定義了HTTP TRACE方法,主要是用于客戶端通過(guò)向Web服務(wù)器提交TRACE請(qǐng)求來(lái)進(jìn)行測(cè)試或獲得診斷信息。當(dāng)Web服務(wù)器啟用TRACE時(shí),提交的請(qǐng)求頭會(huì)在服務(wù)器響應(yīng)的內(nèi)容(Body)中完整的返回,其中HTTP頭很可能包括Session Token、Cookies或其它認(rèn)證信息。攻擊者可以利用此漏洞來(lái)欺騙合法用戶并得到他們的私人信息。該漏洞往往與其它方式配合來(lái)進(jìn)行有效攻擊,由于HTTP TRACE請(qǐng)求可以通過(guò)客戶瀏覽器腳本發(fā)起(如XMLHttpRequest),并可以通過(guò)DOM接口來(lái)訪問(wèn),因此很容易被攻擊者利用。
防御HTTP報(bào)頭追蹤漏洞的方法通常禁用HTTP TRACE方法。
ApacheStruts是一款建立Java web應(yīng)用程序的開(kāi)放源代碼架構(gòu)。Apache Struts存在一個(gè)輸入過(guò)濾錯(cuò)誤,如果遇到轉(zhuǎn)換錯(cuò)誤可被利用注入和執(zhí)行任意Java代碼。
網(wǎng)站存在遠(yuǎn)程代碼執(zhí)行漏洞的大部分原因是由于網(wǎng)站采用了Apache Struts Xwork作為網(wǎng)站應(yīng)用框架,由于該軟件存在遠(yuǎn)程代碼執(zhí)高危漏洞,導(dǎo)致網(wǎng)站面臨安全風(fēng)險(xiǎn)。CNVD處置過(guò)諸多此類(lèi)漏洞,例如:“GPS車(chē)載衛(wèi)星定位系統(tǒng)”網(wǎng)站存在遠(yuǎn)程命令執(zhí)行漏洞(CNVD-2012-13934);Aspcms留言本遠(yuǎn)程代碼執(zhí)行漏洞(CNVD-2012-11590)等。
修復(fù)此類(lèi)漏洞,只需到Apache官網(wǎng)升級(jí)Apache Struts到最新版本:http://struts.apache.org
文件上傳漏洞通常由于網(wǎng)頁(yè)代碼中的文件上傳路徑變量過(guò)濾不嚴(yán)造成的,如果文件上傳功能實(shí)現(xiàn)代碼沒(méi)有嚴(yán)格限制用戶上傳的文件后綴以及文件類(lèi)型,攻擊者可通過(guò) Web 訪問(wèn)的目錄上傳任意文件,包括網(wǎng)站后門(mén)文件(webshell),進(jìn)而遠(yuǎn)程控制網(wǎng)站服務(wù)器。
因此,在開(kāi)發(fā)網(wǎng)站及應(yīng)用程序過(guò)程中,需嚴(yán)格限制和校驗(yàn)上傳的文件,禁止上傳惡意代碼的文件。同時(shí)限制相關(guān)目錄的執(zhí)行權(quán)限,防范webshell攻擊。
IP地址是網(wǎng)絡(luò)用戶的重要標(biāo)示,是攻擊者進(jìn)行攻擊前需要了解的。獲取的方法較多,攻擊者也會(huì)因不同的網(wǎng)絡(luò)情況采取不同的方法,如:在局域網(wǎng)內(nèi)使用Ping指令,Ping對(duì)方在網(wǎng)絡(luò)中的名稱(chēng)而獲得IP;在Internet上使用IP版的QQ直接顯示。最有效的辦法是截獲并分析對(duì)方的網(wǎng)絡(luò)數(shù)據(jù)包。攻擊者可以找到并直接通過(guò)軟件解析截獲后的數(shù)據(jù)包的IP包頭信息,再根據(jù)這些信息了解具體的IP。
針對(duì)最有效的“數(shù)據(jù)包分析方法”而言,就可以安裝能夠自動(dòng)去掉發(fā)送數(shù)據(jù)包包頭IP信息的一些軟件。不過(guò)使用這些軟件有些缺點(diǎn),譬如:耗費(fèi)資源嚴(yán)重,降低計(jì)算機(jī)性能;訪問(wèn)一些論壇或者網(wǎng)站時(shí)會(huì)受影響;不適合網(wǎng)吧用戶使用等等?,F(xiàn)在的個(gè)人用戶采用最普及隱藏IP的方法應(yīng)該是使用代理,由于使用代理服務(wù)器后,“轉(zhuǎn)址服務(wù)”會(huì)對(duì)發(fā)送出去的數(shù)據(jù)包有所修改,致使“數(shù)據(jù)包分析”的方法失效。一些容易泄漏用戶IP的網(wǎng)絡(luò)軟件(QQ、MSN、IE等)都支持使用代理方式連接Internet,特別是QQ使用“ezProxy”等代理軟件連接后,IP版的QQ都無(wú)法顯示該IP地址。雖然代理可以有效地隱藏用戶IP,但攻擊者亦可以繞過(guò)代理,查找到對(duì)方的真實(shí)IP地址,用戶在何種情況下使用何種方法隱藏IP,也要因情況而論。
由于Web配置不安全,登陸請(qǐng)求把諸如用戶名和密碼等敏感字段未加密進(jìn)行傳輸,攻擊者可以竊聽(tīng)網(wǎng)絡(luò)以劫獲這些敏感信息。建議進(jìn)行例如SSH等的加密后再傳輸。
SQL注入、XSS、目錄遍歷、弱口令等均可導(dǎo)致敏感信息泄露,攻擊者可以通過(guò)漏洞獲得敏感信息。針對(duì)不同成因,防御方式不同
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
任何一個(gè)簡(jiǎn)單的漏洞、疏忽都會(huì)造成整個(gè)網(wǎng)站受到攻擊,造成巨大損失。此外 ,Web攻擊防御是一個(gè)長(zhǎng)期持續(xù)的工作,隨著Web技術(shù)的發(fā)展和更新,Web攻擊手段也不斷發(fā)展,針對(duì)這些最新的安全威脅,需要及時(shí)調(diào)整Web安全防護(hù)策略,確保Web攻擊防御的主動(dòng)性,使Web網(wǎng)站在一個(gè)安全的環(huán)境中為企業(yè)和客戶服務(wù)。