2013-02-28 15:02:52
Google 宣布,每天有 9,500 個(gè)感染了惡意軟件的網(wǎng)站有可能會(huì)損害網(wǎng)站的訪問(wèn)者。了解惡意軟件如何感染網(wǎng)站以及如何防止這樣的感染有助于保證您的訪問(wèn)者的計(jì)算機(jī)不受惡意軟件侵?jǐn)_。
多年來(lái),惡意軟件 這個(gè)術(shù)語(yǔ)一直用來(lái)描述任何類型的惡意程序,包括病毒、木馬、蠕蟲、間諜軟件、流氓軟件和廣告軟件。在計(jì)算機(jī)發(fā)展初期,人們常常將惡意軟件看作是通過(guò)惡意行為騷擾用戶或者炫耀編程技術(shù)的惡作劇?;旧?,惡意程序感染的人越多,您在某些圈子里的名氣就越大。惡意程序往往以電子郵件附件、移動(dòng)存儲(chǔ)介質(zhì)共享或文件共享服務(wù)等手段傳遞給目標(biāo)受害者。
盡管這種類型的惡意軟件確實(shí)給受害者造成了許多問(wèn)題,但對(duì)大部分攻擊者來(lái)說(shuō)無(wú)利可圖,因此也并未吸引過(guò)多的人參與。如今,惡意軟件背后的動(dòng)力已經(jīng)悄然轉(zhuǎn)變?yōu)榻疱X利益。這些攻擊由物質(zhì)利益驅(qū)使,因此惡意軟件比以往更加猖獗。不但有更多的人參與創(chuàng)建和分發(fā)惡意軟件,而且攻擊也變得越來(lái)越復(fù)雜。電子犯罪者已經(jīng)學(xué)會(huì)了如何通過(guò)以下手段利用惡意軟件謀取巨額利潤(rùn):
1.顯示和點(diǎn)擊廣告
2.竊取機(jī)密數(shù)據(jù)
3.劫持用戶會(huì)話
4.入侵用戶登錄憑據(jù)
5.竊取財(cái)務(wù)信息
6.進(jìn)行欺詐性購(gòu)買
7.制作垃圾郵件
8.發(fā)起服務(wù)拒絕攻擊
為了將其惡意軟件遞送給盡可能多的受害者,電子犯罪者已經(jīng)將網(wǎng)站轉(zhuǎn)變?yōu)橹饕职l(fā)源之一。
他們?yōu)楹螘?huì)選擇網(wǎng)站?
人們已經(jīng)學(xué)會(huì)了不去下載電子郵件中的附件,也對(duì)流行的文件共享服務(wù)敬而遠(yuǎn)之,因?yàn)樵S多此類文件都已經(jīng)被惡意軟件感染。但人們并未停止網(wǎng)上沖浪。據(jù)互聯(lián)網(wǎng)世界統(tǒng)計(jì)(參考資料 部分提供了一個(gè)鏈接),在 2011 年,活躍的互聯(lián)網(wǎng)用戶達(dá)到了 2,279,709,629 名,而且這個(gè)數(shù)字仍然在不斷增加。
由于存在如此之大的攻擊范圍、如此之多的毫無(wú)疑心的用戶,網(wǎng)站成為致使用戶感染惡意軟件的最流行介質(zhì)也毫不意外。事實(shí)上,惡意網(wǎng)站已經(jīng)極為普及,Google 每天要將大約 6,000 個(gè)攜帶某種對(duì)訪問(wèn)者存在危險(xiǎn)的惡意軟件的網(wǎng)站列入黑名單。
惡意軟件如何通過(guò)網(wǎng)站傳播
負(fù)責(zé)使用惡意軟件感染網(wǎng)站的攻擊者是通過(guò)三種方式實(shí)現(xiàn)傳播的:
1.自行創(chuàng)建惡意網(wǎng)站。
2.利用 Web 服務(wù)器或其配置中的漏洞。
3.利用網(wǎng)站依賴的應(yīng)用程序中的漏洞。
本文關(guān)注的是如何避免您的網(wǎng)站成為此類攻擊的犧牲品,因此這里僅討論后兩種方法。
攻擊者發(fā)現(xiàn)可以成功利用的漏洞之后,就需要確定如何將惡意軟件傳遞給網(wǎng)站的訪問(wèn)者。表 1 列出了一些常用方法。
通過(guò)服務(wù)器漏洞感染網(wǎng)站
為了解決基于服務(wù)器的漏洞問(wèn)題,我觀察了市面上兩種最流行的 Web 服務(wù)器應(yīng)用程序:Apache 和 Microsoft® Internet Information Services (IIS)。這兩種服務(wù)器支撐著所有網(wǎng)站中 78.65% 的比例。
Apache 和 IIS(或其他任何 Web 服務(wù)器)都存在著惡意攻擊者可以利用的漏洞。如果攻擊者能夠入侵服務(wù)器軟件或服務(wù)器本身,那么就可以上傳惡意代碼,甚至上傳整個(gè)網(wǎng)頁(yè),以便將惡意軟件傳送給網(wǎng)站訪問(wèn)者。舉例來(lái)說(shuō),允許發(fā)生此類攻擊的漏洞主要來(lái)自兩種來(lái)源。
默認(rèn)安裝中的漏洞
在安裝 Web 服務(wù)器軟件時(shí),人們通常會(huì)采用默認(rèn)配置,但默認(rèn)配置僅僅會(huì)簡(jiǎn)化網(wǎng)站的發(fā)布,而不能保證安全性。此外,Web 服務(wù)器的默認(rèn)安裝往往也會(huì)包含一些不必要的模塊和服務(wù)。這些不必要的內(nèi)容使攻擊者有機(jī)會(huì)無(wú)限制地訪問(wèn)您的網(wǎng)站文件。
每一種操作系統(tǒng)、Web 服務(wù)器軟件和版本都有著自己的漏洞,只需通過(guò)簡(jiǎn)單的 Web 搜索即可發(fā)現(xiàn)這些漏洞。在網(wǎng)站上線之前,應(yīng)該解決所有已知漏洞。
存在問(wèn)題的身份驗(yàn)證和會(huì)話管理
這種來(lái)源包含用戶身份驗(yàn)證和活動(dòng)會(huì)話管理的所有方面。據(jù) Open Web Application Security Project (OWASP) 表示:“大量的賬戶和會(huì)話管理缺陷會(huì)導(dǎo)致用戶或系統(tǒng)管理賬戶遭到入侵。開發(fā)團(tuán)隊(duì)往往會(huì)低估設(shè)計(jì)身份驗(yàn)證和會(huì)話管理架構(gòu)的復(fù)雜程度,無(wú)法在網(wǎng)站的所有方面為提供妥善的保護(hù)。”
為了緩解此類漏洞造成的風(fēng)險(xiǎn),負(fù)責(zé)管理 Web 服務(wù)器和站點(diǎn)的人員需要遵循對(duì)于所有密碼的強(qiáng)度、存儲(chǔ)和更改控制有所要求的密碼策略。除此之外,Web 服務(wù)器的遠(yuǎn)程管理功能也應(yīng)該加密,甚至應(yīng)該考慮完全關(guān)閉,確保用戶憑據(jù)不會(huì)通過(guò)傳輸?shù)姆绞奖桓`。
通過(guò)網(wǎng)站中的漏洞上傳惡意軟件
如果網(wǎng)站仍然采用靜態(tài)文本和圖像,那么犯罪者就很難利用合法網(wǎng)站傳播惡意軟件。然而,如今的網(wǎng)站大多由數(shù)據(jù)庫(kù)、復(fù)雜的代碼和第三方應(yīng)用程序構(gòu)成,在進(jìn)一步豐富用戶體驗(yàn)的同時(shí)也給網(wǎng)站帶來(lái)了無(wú)數(shù)種漏洞。
讓我們以 WordPress 為例。這種博客編輯應(yīng)用程序改變了網(wǎng)站的創(chuàng)建方式,它使任何略有技術(shù)知識(shí)的用戶都能輕松創(chuàng)建具有豐富的多媒體內(nèi)容的互動(dòng)式網(wǎng)站。WordPress 極為流行,有超過(guò) 5000 萬(wàn)個(gè)網(wǎng)站采用了它。然而,WordPress 的易用性也是近來(lái)爆發(fā)的大規(guī)模攻擊事件的誘因,在這次實(shí)踐中,大約有 30,000 至 100,000 個(gè)運(yùn)行該應(yīng)用程序的網(wǎng)站將受害者重定向到惡意網(wǎng)站。
安裝了流行插件的網(wǎng)站發(fā)現(xiàn)其網(wǎng)頁(yè)被代碼感染,導(dǎo)致訪問(wèn)者重定向到其他網(wǎng)站。隨后,該網(wǎng)站會(huì)根據(jù)受害者計(jì)算機(jī)運(yùn)行的操作系統(tǒng)和應(yīng)用程序,以惡意軟件感染受害者的計(jì)算機(jī)。感染了超過(guò) 500,000 臺(tái) Mac 計(jì)算機(jī)的閃回式木馬(Flashback Trojan)正是通過(guò)這種方法傳播的惡意程序之一。
然而,這樣的例子并非僅限于 WordPress。Joomla!、Drupal、MediaWiki、Magento、Zen Cart 和其他許多應(yīng)用程序都有著自身的漏洞,導(dǎo)致惡意黑客能夠?qū)阂廛浖蟼鞯竭@些站點(diǎn)并分發(fā)給訪問(wèn)者。
防止 Web 應(yīng)用程序遭受攻擊
對(duì)于利用 Web 應(yīng)用程序的攻擊者來(lái)說(shuō),必須要做到的就是找到某種類型的漏洞。遺憾的是,對(duì)于網(wǎng)站所有者而言,存在大量各種類型的已知漏洞,甚至無(wú)法一一列明。但有些漏洞可能是廣為人知的:
1.跨站點(diǎn)腳本攻擊 (XSS)
2.結(jié)構(gòu)化查詢語(yǔ)言注入
3.跨站點(diǎn)請(qǐng)求偽造注入
4.URL 重定向
5.代碼執(zhí)行
6.Cookie 操縱
還有其他許多漏洞。
減少 Web 應(yīng)用程序威脅
幸運(yùn)的是,如果您的站點(diǎn)存在某些可能被利用的已知漏洞,可以利用 Web 應(yīng)用程序滲透技術(shù),通過(guò)某種方法加以解決。通過(guò)全面測(cè)試網(wǎng)站的已知漏洞,即可預(yù)先解決這些威脅,避免發(fā)生利用這些漏洞向網(wǎng)站訪問(wèn)者分發(fā)惡意軟件的攻擊。為此,您可以利用多種開放源碼或商業(yè)工具,也可以將服務(wù)外包給相關(guān)領(lǐng)域的專業(yè)企業(yè)。
盡管滲透測(cè)試有助于識(shí)別網(wǎng)站代碼中需要修復(fù)的問(wèn)題,但 Web 應(yīng)用程序防火墻也能幫助您在威脅危及您的網(wǎng)站之前阻止威脅。通過(guò)識(shí)別已知攻擊模式,即可在惡意黑客損害您的網(wǎng)站之前阻止他們。更為先進(jìn)的 Web 應(yīng)用程序防火墻甚至能識(shí)別非法流量,針對(duì)未知的零日攻擊提供保護(hù)。
限制 Apache 中的漏洞
只要配置服務(wù)器,那么最佳實(shí)踐就是僅安裝必要的模塊和應(yīng)用程序。迄今為止,這種做法不但屬于最佳實(shí)踐,也是最常用的實(shí)踐。
為了限制 Apache Web 服務(wù)器內(nèi)的漏洞,還應(yīng)采取其他一些基本措施。本文中將使用與 Linux® 的 Ubuntu 發(fā)布版相關(guān)的命令。對(duì)于在其他操作系統(tǒng)或發(fā)布版上運(yùn)行的 Apache,很容易就能搜索到執(zhí)行各任務(wù)所需的步驟。
禁用橫幅
默認(rèn)情況下,Apache 會(huì)在發(fā)出 Web 請(qǐng)求時(shí)顯示其名稱和版本號(hào),告訴潛在攻擊者網(wǎng)站實(shí)際運(yùn)行的內(nèi)容。禁用該橫幅使?jié)撛诠粽吒y查明是否存在其他漏洞。為此,可以導(dǎo)航到 /etc/apache2/apache2.conf 并禁用 ServerSignature 和 ServerTokens 條目。
禁用目錄索引
另外一項(xiàng)默認(rèn)功能就是打印 Web 站點(diǎn)目錄中的文件列表。這項(xiàng)特性使攻擊者能夠映射您的服務(wù)器,并識(shí)別可能存在漏洞的文件。為了避免這樣的問(wèn)題發(fā)生,您需要禁用自動(dòng)索引模塊。只需打開終端并執(zhí)行以下命令即可:
•rm -f /etc/apache2/mods-enabled/autoindex.load
•rm -f /etc/apache2/mods-enabled/autoindex.conf
禁用 WebDAV
基于 Web 的分布式創(chuàng)作和版本控制 (WebDAV) 是 HTTP 的文件訪問(wèn)協(xié)議,允許在網(wǎng)站中上傳、下載和更改文件內(nèi)容。任何生產(chǎn)網(wǎng)站都應(yīng)禁用 WebDAV,確保攻擊者無(wú)法更改文件以上傳惡意代碼。
使用終端執(zhí)行以下命令,通過(guò)刪除 dav、dav_fs 和 dav_lock 文件來(lái)禁用這些文件:
•rm -f /etc/apache2/mods-enabled/dav.load
•rm -f /etc/apache2/mods-enabled/dav_fs.conf
•rm -f /etc/apache2/mods-enabled/dav_fs.load
•rm -f /etc/apache2/mods-enabled/dav_lock.load
關(guān)閉 TRACE HTTP 請(qǐng)求
HTTP TRACE 請(qǐng)求可用于打印會(huì)話 cookie,此后利用這些信息劫持用戶會(huì)話,發(fā)起 XSS 攻擊。您可以導(dǎo)航到 /etc/apache2/apache2.conf 文件,確保 TraceEnable 設(shè)置為 TraceEnable off,以禁用此類跟蹤。
限制 IIS 中的漏洞
對(duì)于消費(fèi)者市場(chǎng)來(lái)說(shuō),Windows Server® 產(chǎn)品最吸引人的一項(xiàng)特征就是易于安裝。利用 IIS,企業(yè)只需輕點(diǎn)幾下鼠標(biāo)即可設(shè)置好一個(gè) Web 服務(wù)器并將其投入運(yùn)行。以開箱即用的方式安裝服務(wù)器軟件時(shí),需要執(zhí)行一些配置任務(wù):但 IIS 會(huì)代替您完成這些任務(wù)。
為了解決 Web 服務(wù)器產(chǎn)品的安全性問(wèn)題,Microsoft 對(duì) IIS 的配置方式以及默認(rèn)安裝的內(nèi)容作出了一些重大變更。然而,您仍然可以采取一些措施來(lái)提供更好的保護(hù),避免威脅。
安裝防惡意軟件程序
Code Red 和 Nimda 均屬于攻擊 Windows Server 操作系統(tǒng)的蠕蟲,兩者均造成了極大的損害。如果主機(jī)操作系統(tǒng)本身不具備重組的防惡意軟件保護(hù),那么網(wǎng)站就極易受到攻擊。利用按鍵記錄器、木馬和其他惡意軟件,攻擊者不僅能夠輕松入侵 Web 管理員的登錄憑據(jù),還能在提供給網(wǎng)站訪問(wèn)者的文件中插入惡意代碼。
安裝防惡意軟件程序之后,應(yīng)該及時(shí)更新程序,隨后在上傳任何網(wǎng)站文件之前運(yùn)行。如果發(fā)現(xiàn)任何異常之處,則應(yīng)立即更改所有密碼。
更新其他所有內(nèi)容
在運(yùn)行 IIS 的 Web 服務(wù)器上限之前,請(qǐng)務(wù)必更新操作系統(tǒng)軟件和 Web 服務(wù)器軟件,安裝 Microsoft 發(fā)布的最新更新。這些更新通常包括解決 Microsoft 產(chǎn)品特有漏洞的補(bǔ)丁程序。
在發(fā)生攻擊后進(jìn)行清理
在網(wǎng)站導(dǎo)致訪問(wèn)者蒙受損失之后,必須立即采取糾正措施。首先應(yīng)將站點(diǎn)脫機(jī),并將之隔離。如果需要將站點(diǎn)投入運(yùn)行,以避免業(yè)務(wù)中斷,那么應(yīng)該使用經(jīng)過(guò)驗(yàn)證、確無(wú)惡意軟件的備份。
處理在線狀態(tài)之后,接下來(lái)就應(yīng)該清理受感染的文件。某些感染僅需移除幾行代碼,而較為復(fù)雜的攻擊則可能要求您重新編寫整個(gè)文件。此時(shí),應(yīng)采取一切必要措施,從站點(diǎn)中移除惡意軟件。
挽救您的名譽(yù)
Google 和其他搜索引擎發(fā)現(xiàn)一個(gè)網(wǎng)站傳播惡意軟件之后,就會(huì)將該網(wǎng)站從搜索結(jié)果中剔除。這會(huì)給業(yè)務(wù)造成災(zāi)難性的影響。
移除所有惡意軟件、修補(bǔ)所有漏洞之后,應(yīng)將網(wǎng)站提交給搜索引擎,供其審查。如果搜索引擎確定其中不再存在對(duì)任何訪問(wèn)者有害的威脅,該網(wǎng)站即可重新列入搜索結(jié)果,搜索引擎帶來(lái)的訪問(wèn)流量即可恢復(fù)如常。
如果惡意軟件感染侵害了用戶帳戶信息,那么應(yīng)該立即通知所有用戶,使之能夠處理因之產(chǎn)生的任何后果。除此之外,組織還需要查看此類入侵是否違反了任何法律或法規(guī),并采取必要的措施來(lái)應(yīng)對(duì)負(fù)面影響,保證符合法律法規(guī)。
結(jié)束語(yǔ)
Dasient 的一份報(bào)告指出,2010 年第四季度發(fā)現(xiàn)約 110 萬(wàn)個(gè)網(wǎng)站中包含某種類型的惡意軟件。其他研究表明,大約有 85% 的惡意軟件來(lái)自 Web。如果導(dǎo)致所有這些問(wèn)題的網(wǎng)站都是從最初起便心懷惡意的網(wǎng)站,那么問(wèn)題或許就簡(jiǎn)單多了。但遺憾的是,許多計(jì)算機(jī)的感染源頭是小型企業(yè)的網(wǎng)站、教會(huì)網(wǎng)站,甚至是名聲良好的新聞網(wǎng)站。
Web 開發(fā)人員需要承擔(dān)起保護(hù)網(wǎng)站免受攻擊的重責(zé)。單純地編寫一些出色的代碼就可以完成任務(wù)的日子已經(jīng)一去不復(fù)返?,F(xiàn)在,開發(fā)人員必須確保其代碼功能正常并且安全可靠。
本文所列舉的技術(shù)無(wú)疑能幫助尚不了解網(wǎng)站安全性的開發(fā)人員打下知識(shí)基礎(chǔ),但還有更多的知識(shí)需要探索。威脅形勢(shì)日新月異。隨著零日攻擊的興起和電子犯罪者對(duì)抗措施的發(fā)展,Web 開發(fā)人員也需要適應(yīng)形勢(shì),設(shè)法更好地保護(hù)自己的網(wǎng)站。友博網(wǎng)絡(luò)也將盡自己的最大努力為客戶的網(wǎng)站保駕護(hù)航!