感傷寒 網(wǎng)頁(yè)掛馬早預(yù)防
“傷寒”是一種傳染性極強(qiáng)的疾病,有接觸就有可能感染。Web應(yīng)用系統(tǒng)由于采用標(biāo)準(zhǔn)的協(xié)議,如果Web服務(wù)器被掛馬,當(dāng)訪問(wèn)者訪問(wèn)服務(wù)器時(shí)就如同接觸到了傷寒病患者一樣會(huì)被感染并且自身會(huì)被信息竊取、數(shù)據(jù)破壞:
經(jīng)常上網(wǎng)的朋友會(huì)發(fā)現(xiàn),有時(shí)候有些鏈接點(diǎn)擊進(jìn)去后,防病毒軟件會(huì)報(bào)警,提示有病毒/木馬存在。某銀行科技處處長(zhǎng)Y女士,正在為這樣的一起客戶投訴頭疼不已:某網(wǎng)銀用戶接到一封網(wǎng)銀活動(dòng)通知郵件,點(diǎn)擊后居然發(fā)現(xiàn)被防病毒軟件報(bào)出存在木馬。
在經(jīng)過(guò)Y女士一番道歉后,客戶的怒氣似乎消退了一些,并表示可以把那封“肇事”郵件轉(zhuǎn)發(fā)給Y女士。這封郵件內(nèi)容是銀行這段時(shí)間正在搞的一個(gè)小調(diào)查活動(dòng),點(diǎn)擊“參加活動(dòng)”按鈕后,防病毒軟件馬上發(fā)出報(bào)警。經(jīng)專業(yè)安全公司專家分析后得知,這是一封偽造的活動(dòng)郵件,駭客偽造了“參加活動(dòng)”按鈕后的URL鏈接,用戶點(diǎn)擊后,雖然會(huì)進(jìn)入活動(dòng)頁(yè)面,但同時(shí)也會(huì)被鏈接到一個(gè)惡意站點(diǎn)下載木馬,這就是防病毒軟件報(bào)警的原因。而能造成這種現(xiàn)象的原因是:該銀行的網(wǎng)站頁(yè)面編碼存在缺陷??紤]到銀行的業(yè)務(wù)連續(xù)性要求,Y女士按照安全專家的建議購(gòu)買了安全防護(hù)產(chǎn)品,并迅速部署上線,用以屏蔽此類攻擊行為。
為什么網(wǎng)頁(yè)鏈接會(huì)導(dǎo)致木馬病毒植入呢?這有如下幾種可能:
a)網(wǎng)站所有者故意在頁(yè)面嵌入惡意代碼:常見于私人小站。為了牟取私利,有些站長(zhǎng)故意在網(wǎng)站頁(yè)面中嵌入惡意代碼,以竊取訪問(wèn)者的信息。一般來(lái)說(shuō),企業(yè)用戶不會(huì)存在這種情況。
b)駭客攻擊網(wǎng)站獲取權(quán)限后,在正常頁(yè)面中添加惡意代碼,這也就是常提到的XSS(跨站腳本)攻擊※。
※詳解:XSS(跨站腳本)攻擊
XSS是一種經(jīng)常出現(xiàn)在web應(yīng)用中的計(jì)算機(jī)安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁(yè)面中。比如這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問(wèn)控制——例如同源策略(same origin policy)。這種類型的漏洞由于被駭客用來(lái)編寫危害性更大的phishing攻擊而變得廣為人知。跨站腳本漏洞主要是由于沒有對(duì)所有用戶的輸入進(jìn)行有效的驗(yàn)證所造成的,它影響所有的Web應(yīng)用程序框架。
在實(shí)際表現(xiàn)中,XSS攻擊會(huì)有兩種常見的形態(tài),存儲(chǔ)式攻擊和反射式攻擊。
存儲(chǔ)式XSS:最常見的類型,駭客將攻擊腳本上傳到Web服務(wù)器上,使得所有訪問(wèn)該頁(yè)面的用戶都面臨信息泄漏的可能,其中也包括了Web服務(wù)器的管理員。其攻擊過(guò)程如下:
Bob擁有一個(gè)Web站點(diǎn),該站點(diǎn)允許用戶發(fā)布信息/瀏覽已發(fā)布的信息。
Charly注意到Bob的站點(diǎn)具有XXS漏洞。
Charly發(fā)布一個(gè)熱點(diǎn)信息,吸引其它用戶紛紛閱讀。
Bob或者是任何的其他人如Alice瀏覽該信息,其會(huì)話cookies或者其它信息將被Charly盜走。
反射式XSS:Web客戶端使用Server端腳本生成頁(yè)面為用戶提供數(shù)據(jù)時(shí),如果未經(jīng)驗(yàn)證的用戶數(shù)據(jù)被包含在頁(yè)面中而未經(jīng)HTML實(shí)體編碼,客戶端代碼便能夠注入到動(dòng)態(tài)頁(yè)面中。其攻擊過(guò)程如下:
Alice經(jīng)常瀏覽某個(gè)網(wǎng)站,此網(wǎng)站為Bob所擁有。Bob的站點(diǎn)運(yùn)行Alice使用用戶名/密碼進(jìn)行登錄,并存儲(chǔ)敏感信息(比如銀行帳戶信息)。
Charly發(fā)現(xiàn)Bob的站點(diǎn)包含反射性的XSS漏洞。
Charly編寫一個(gè)利用漏洞的URL,并將其冒充為來(lái)自Bob的郵件發(fā)送給Alice。
Alice在登錄到Bob的站點(diǎn)后,瀏覽Charly提供的URL。
嵌入到URL中的惡意腳本在Alice的瀏覽器中執(zhí)行,就像它直接來(lái)自Bob的服務(wù)器一樣。此腳本盜竊敏感信息(授權(quán)、信用卡、帳號(hào)信息等)然后在Alice完全不知情的情況下將這些信息發(fā)送到Charly的Web站點(diǎn)。
上面的例子中,Y女士所遭遇到的就是這種反射式的XSS攻擊。
如何判斷自己已經(jīng)遭受XSS攻擊呢?和其他常見攻擊行為一樣,XSS攻擊在網(wǎng)上也有許多免費(fèi)工具,利用這些軟件的駭客很有可能并不知道該如何清理自己留下的系統(tǒng)日志,從對(duì)日志的分析中可以很容易的看到是否有XSS攻擊行為發(fā)生。還有一種更直接的方法就是檢查頁(yè)面源代碼,看是否有不相干URL等字符串出現(xiàn),如某頁(yè)面源文件中存在與頁(yè)面功能無(wú)關(guān)的代碼,就很有可能是發(fā)生了XSS攻擊。
由于XSS攻擊的直接受害者往往并不是網(wǎng)站所有者,而是訪問(wèn)受攻擊網(wǎng)站的普通用戶,所以,經(jīng)常會(huì)出現(xiàn)普通用戶發(fā)現(xiàn)網(wǎng)站已經(jīng)被駭客攻擊,而網(wǎng)站的管理人員仍一無(wú)所知的情況。對(duì)于一些依靠網(wǎng)站開展業(yè)務(wù)的機(jī)構(gòu)來(lái)說(shuō)(如金融機(jī)構(gòu)等),做好前期網(wǎng)站的檢查服務(wù)※,是一項(xiàng)非常重要的工作。
※詳解:網(wǎng)站的檢查服務(wù)
一般來(lái)說(shuō),XSS攻擊的后果很難直接發(fā)現(xiàn),比如上面案例中如果駭客加入的攻擊字符串不是網(wǎng)頁(yè)木馬,而是竊取cookie信息的話,用戶在遭受攻擊時(shí)將會(huì)完全沒有表現(xiàn)癥狀,這種威脅將更加的危險(xiǎn)。
一種常用的方法是,購(gòu)買專業(yè)安全公司的網(wǎng)頁(yè)掛馬監(jiān)測(cè)服務(wù),定期檢查網(wǎng)站頁(yè)面是否含有惡意代碼。
XSS攻擊發(fā)生后,該如何應(yīng)對(duì)呢?首先當(dāng)然是檢查被攻擊頁(yè)面,清除惡意代碼,然后再考慮以后的防御,和大部分的Web威脅行為一樣,XSS攻擊發(fā)生原因是由于頁(yè)面文件編寫的不完備,也可以通過(guò)部署獨(dú)立安全產(chǎn)品或代碼級(jí)的頁(yè)面文件修改來(lái)避免。但考慮到代碼修改的復(fù)雜性和局限性,對(duì)于XSS防御來(lái)說(shuō)也不是最佳選擇。而應(yīng)當(dāng)選擇部署那些勝任應(yīng)用層威脅防護(hù)的安全產(chǎn)品(在前文已提到如何選擇,在此不再贅述),在XSS防御的實(shí)際應(yīng)用中,入侵防御產(chǎn)品也有非常廣泛的運(yùn)用。
被掛馬的網(wǎng)站就像傷寒癥患者,如果不小心發(fā)生接觸(點(diǎn)擊鏈接),就有染?。ū环N上木馬)的可能。中醫(yī)認(rèn)為,傷寒六經(jīng)病的總治療原則是祛除外邪,扶助正氣。所以被掛馬網(wǎng)站的解決之道也應(yīng)如此:驅(qū)除外邪(清理被掛馬頁(yè)面),扶助正氣(以增加安全設(shè)備/代碼評(píng)估服務(wù)/代碼修補(bǔ)等行為來(lái)提升網(wǎng)站的內(nèi)在防御力)。
【編輯推薦】