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