首頁»安全»您的網站如何導致訪問者感染惡意軟件

                    您的網站如何導致訪問者感染惡意軟件

                    來源:IBM developerworks 發布時間:2013-02-28 閱讀次數:

                      多年來,惡意軟件 這個術語一直用來描述任何類型的惡意程序,包括病毒、木馬、蠕蟲、間諜軟件、流氓軟件和廣告軟件。在計算機發展初期,人們常常將惡意軟件看作是通過惡意行為騷擾用戶或者炫耀編程技術的惡作劇。基本上,惡意程序感染的人越多,您在某些圈子里的名氣就越大。惡意程序往往以電子郵件附件、移動存儲介質共享或文件共享服務等手段傳遞給目標受害者。

                      盡管這種類型的惡意軟件確實給受害者造成了許多問題,但對大部分攻擊者來說無利可圖,因此也并未吸引過多的人參與。如今,惡意軟件背后的動力已經悄然轉變為金錢利益。這些攻擊由物質利益驅使,因此惡意軟件比以往更加猖獗。不但有更多的人參與創建和分發惡意軟件,而且攻擊也變得越來越復雜。電子犯罪者已經學會了如何通過以下手段利用惡意軟件謀取巨額利潤:

                    • 顯示和點擊廣告
                    • 竊取機密數據
                    • 劫持用戶會話
                    • 入侵用戶登錄憑據
                    • 竊取財務信息
                    • 進行欺詐性購買
                    • 制作垃圾郵件
                    • 發起服務拒絕攻擊

                      為了將其惡意軟件遞送給盡可能多的受害者,電子犯罪者已經將網站轉變為主要分發源之一。

                      他們為何會選擇網站?

                      人們已經學會了不去下載電子郵件中的附件,也對流行的文件共享服務敬而遠之,因為許多此類文件都已經被惡意軟件感染。但人們并未停止網上沖浪。據互聯網世界統計,在 2011 年,活躍的互聯網用戶達到了 2,279,709,629 名,而且這個數字仍然在不斷增加。

                      由于存在如此之大的攻擊范圍、如此之多的毫無疑心的用戶,網站成為致使用戶感染惡意軟件的最流行介質也毫不意外。事實上,惡意網站已經極為普及,Google 每天要將大約 6,000 個攜帶某種對訪問者存在危險的惡意軟件的網站列入黑名單。

                      惡意軟件如何通過網站傳播

                      負責使用惡意軟件感染網站的攻擊者是通過三種方式實現傳播的:

                    • 自行創建惡意網站。
                    • 利用 Web 服務器或其配置中的漏洞。
                    • 利用網站依賴的應用程序中的漏洞。

                      本文關注的是如何避免您的網站成為此類攻擊的犧牲品,因此這里僅討論后兩種方法。

                      攻擊者發現可以成功利用的漏洞之后,就需要確定如何將惡意軟件傳遞給網站的訪問者。表 1 列出了一些常用方法。

                      表 1. 網站分發惡意軟件的常用方法

                    方法 描述
                    下載 欺騙用戶下載惡意代碼。常用的一種策略就是告訴訪問者需要更新多媒體軟件才能觀看視頻,或者哄騙受害者下載實際上包含惡意軟件的 PDF 或其他類型的文件。
                    橫幅廣告 欺騙用戶點擊網站中出現的受感染廣告,從而下載惡意文件。
                    隱蔽式強迫下載(Drive-by downloads) 使用這種方法時,訪問者只要訪問網站即可下載惡意軟件,無需在網站中執行任何操作。 惡意軟件可以隱藏在網站的不可見元素中,例如 iframe 或清晰的 JavaScript 代碼中;甚至可能會嵌入多媒體文件,例如圖片、視頻或 Adobe Flash 動畫之中。加載頁面時,惡意軟件將利用瀏覽器或插件的漏洞,感染訪問者的計算機。

                      通過服務器漏洞感染網站

                      為了解決基于服務器的漏洞問題,我觀察了市面上兩種最流行的 Web 服務器應用程序:Apache 和 Microsoft® Internet Information Services (IIS)。這兩種服務器支撐著所有網站中 78.65% 的比例。

                      Apache 和 IIS(或其他任何 Web 服務器)都存在著惡意攻擊者可以利用的漏洞。如果攻擊者能夠入侵服務器軟件或服務器本身,那么就可以上傳惡意代碼,甚至上傳整個網頁,以便將惡意軟件傳送給網站訪問者。舉例來說,允許發生此類攻擊的漏洞主要來自兩種來源。

                      默認安裝中的漏洞

                      在安裝 Web 服務器軟件時,人們通常會采用默認配置,但默認配置僅僅會簡化網站的發布,而不能保證安全性。此外,Web 服務器的默認安裝往往也會包含一些不必要的模塊和服務。這些不必要的內容使攻擊者有機會無限制地訪問您的網站文件。

                    每一種操作系統、Web 服務器軟件和版本都有著自己的漏洞,只需通過簡單的 Web 搜索即可發現這些漏洞。在網站上線之前,應該解決所有已知漏洞。

                      存在問題的身份驗證和會話管理

                      這種來源包含用戶身份驗證和活動會話管理的所有方面。據 Open Web Application Security Project (OWASP) 表示:“大量的賬戶和會話管理缺陷會導致用戶或系統管理賬戶遭到入侵。開發團隊往往會低估設計身份驗證和會話管理架構的復雜程度,無法在網站的所有方面為提供妥善的保護。”

                      為了緩解此類漏洞造成的風險,負責管理 Web 服務器和站點的人員需要遵循對于所有密碼的強度、存儲和更改控制有所要求的密碼策略。除此之外,Web 服務器的遠程管理功能也應該加密,甚至應該考慮完全關閉,確保用戶憑據不會通過傳輸的方式被竊。

                      通過網站中的漏洞上傳惡意軟件

                      如果網站仍然采用靜態文本和圖像,那么犯罪者就很難利用合法網站傳播惡意軟件。然而,如今的網站大多由數據庫、復雜的代碼和第三方應用程序構成,在進一步豐富用戶體驗的同時也給網站帶來了無數種漏洞。

                      讓我們以 WordPress 為例。這種博客編輯應用程序改變了網站的創建方式,它使任何略有技術知識的用戶都能輕松創建具有豐富的多媒體內容的互動式網站。WordPress 極為流行,有超過 5000 萬個網站采用了它。然而,WordPress 的易用性也是近來爆發的大規模攻擊事件的誘因,在這次實踐中,大約有 30,000 至 100,000 個運行該應用程序的網站將受害者重定向到惡意網站。

                      安裝了流行插件的網站發現其網頁被代碼感染,導致訪問者重定向到其他網站。隨后,該網站會根據受害者計算機運行的操作系統和應用程序,以惡意軟件感染受害者的計算機。感染了超過 500,000 臺 Mac 計算機的閃回式木馬(Flashback Trojan)正是通過這種方法傳播的惡意程序之一。

                      然而,這樣的例子并非僅限于 WordPress。Joomla!、Drupal、MediaWiki、Magento、Zen Cart 和其他許多應用程序都有著自身的漏洞,導致惡意黑客能夠將惡意軟件上傳到這些站點并分發給訪問者。

                      防止 Web 應用程序遭受攻擊

                      對于利用 Web 應用程序的攻擊者來說,必須要做到的就是找到某種類型的漏洞。遺憾的是,對于網站所有者而言,存在大量各種類型的已知漏洞,甚至無法一一列明。但有些漏洞可能是廣為人知的:

                    • 跨站點腳本攻擊 (XSS)
                    • 結構化查詢語言注入
                    • 跨站點請求偽造注入
                    • URL 重定向
                    • 代碼執行
                    • Cookie 操縱

                      還有其他許多漏洞。

                      減少 Web 應用程序威脅

                      幸運的是,如果您的站點存在某些可能被利用的已知漏洞,可以利用 Web 應用程序滲透技術,通過某種方法加以解決。通過全面測試網站的已知漏洞,即可預先解決這些威脅,避免發生利用這些漏洞向網站訪問者分發惡意軟件的攻擊。為此,您可以利用多種開放源碼或商業工具,也可以將服務外包給相關領域的專業企業。

                      盡管滲透測試有助于識別網站代碼中需要修復的問題,但 Web 應用程序防火墻也能幫助您在威脅危及您的網站之前阻止威脅。通過識別已知攻擊模式,即可在惡意黑客損害您的網站之前阻止他們。更為先進的 Web 應用程序防火墻甚至能識別非法流量,針對未知的零日攻擊提供保護。

                      限制 Apache 中的漏洞

                      只要配置服務器,那么最佳實踐就是僅安裝必要的模塊和應用程序。迄今為止,這種做法不但屬于最佳實踐,也是最常用的實踐。

                      為了限制 Apache Web 服務器內的漏洞,還應采取其他一些基本措施。本文中將使用與 Linux® 的 Ubuntu 發布版相關的命令。對于在其他操作系統或發布版上運行的 Apache,很容易就能搜索到執行各任務所需的步驟。

                      禁用橫幅

                      默認情況下,Apache 會在發出 Web 請求時顯示其名稱和版本號,告訴潛在攻擊者網站實際運行的內容。禁用該橫幅使潛在攻擊者更難查明是否存在其他漏洞。為此,可以導航到 /etc/apache2/apache2.conf 并禁用 ServerSignatureServerTokens 條目。

                      禁用目錄索引

                      另外一項默認功能就是打印 Web 站點目錄中的文件列表。這項特性使攻擊者能夠映射您的服務器,并識別可能存在漏洞的文件。為了避免這樣的問題發生,您需要禁用自動索引模塊。只需打開終端并執行以下命令即可:

                    • rm -f /etc/apache2/mods-enabled/autoindex.load
                    • rm -f /etc/apache2/mods-enabled/autoindex.conf

                      禁用 WebDAV

                      基于 Web 的分布式創作和版本控制 (WebDAV) 是 HTTP 的文件訪問協議,允許在網站中上傳、下載和更改文件內容。任何生產網站都應禁用 WebDAV,確保攻擊者無法更改文件以上傳惡意代碼。

                      使用終端執行以下命令,通過刪除 dav、dav_fs 和 dav_lock 文件來禁用這些文件:

                    • 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

                      關閉 TRACE HTTP 請求

                      HTTP TRACE 請求可用于打印會話 cookie,此后利用這些信息劫持用戶會話,發起 XSS 攻擊。您可以導航到 /etc/apache2/apache2.conf 文件,確保 TraceEnable 設置為 TraceEnable off,以禁用此類跟蹤。

                      限制 IIS 中的漏洞

                      對于消費者市場來說,Windows Server® 產品最吸引人的一項特征就是易于安裝。利用 IIS,企業只需輕點幾下鼠標即可設置好一個 Web 服務器并將其投入運行。以開箱即用的方式安裝服務器軟件時,需要執行一些配置任務:但 IIS 會代替您完成這些任務。

                      為了解決 Web 服務器產品的安全性問題,Microsoft 對 IIS 的配置方式以及默認安裝的內容作出了一些重大變更。然而,您仍然可以采取一些措施來提供更好的保護,避免威脅。

                      安裝防惡意軟件程序

                      Code Red 和 Nimda 均屬于攻擊 Windows Server 操作系統的蠕蟲,兩者均造成了極大的損害。如果主機操作系統本身不具備重組的防惡意軟件保護,那么網站就極易受到攻擊。利用按鍵記錄器、木馬和其他惡意軟件,攻擊者不僅能夠輕松入侵 Web 管理員的登錄憑據,還能在提供給網站訪問者的文件中插入惡意代碼。

                      安裝防惡意軟件程序之后,應該及時更新程序,隨后在上傳任何網站文件之前運行。如果發現任何異常之處,則應立即更改所有密碼。

                      更新其他所有內容

                      在運行 IIS 的 Web 服務器上限之前,請務必更新操作系統軟件和 Web 服務器軟件,安裝 Microsoft 發布的最新更新。這些更新通常包括解決 Microsoft 產品特有漏洞的補丁程序。

                      在發生攻擊后進行清理

                      在網站導致訪問者蒙受損失之后,必須立即采取糾正措施。首先應將站點脫機,并將之隔離。如果需要將站點投入運行,以避免業務中斷,那么應該使用經過驗證、確無惡意軟件的備份。

                      處理在線狀態之后,接下來就應該清理受感染的文件。某些感染僅需移除幾行代碼,而較為復雜的攻擊則可能要求您重新編寫整個文件。此時,應采取一切必要措施,從站點中移除惡意軟件。

                      挽救您的名譽

                      Google 和其他搜索引擎發現一個網站傳播惡意軟件之后,就會將該網站從搜索結果中剔除。這會給業務造成災難性的影響。

                      移除所有惡意軟件、修補所有漏洞之后,應將網站提交給搜索引擎,供其審查。如果搜索引擎確定其中不再存在對任何訪問者有害的威脅,該網站即可重新列入搜索結果,搜索引擎帶來的訪問流量即可恢復如常。

                      如果惡意軟件感染侵害了用戶帳戶信息,那么應該立即通知所有用戶,使之能夠處理因之產生的任何后果。除此之外,組織還需要查看此類入侵是否違反了任何法律或法規,并采取必要的措施來應對負面影響,保證符合法律法規。

                      結束語

                      Dasient 的一份報告指出,2010 年第四季度發現約 110 萬個網站中包含某種類型的惡意軟件。其他研究表明,大約有 85% 的惡意軟件來自 Web。如果導致所有這些問題的網站都是從最初起便心懷惡意的網站,那么問題或許就簡單多了。但遺憾的是,許多計算機的感染源頭是小型企業的網站、教會網站,甚至是名聲良好的新聞網站。

                      Web 開發人員需要承擔起保護網站免受攻擊的重責。單純地編寫一些出色的代碼就可以完成任務的日子已經一去不復返。現在,開發人員必須確保其代碼功能正常并且安全可靠。

                      本文所列舉的技術無疑能幫助尚不了解網站安全性的開發人員打下知識基礎,但還有更多的知識需要探索。威脅形勢日新月異。隨著零日攻擊的興起和電子犯罪者對抗措施的發展,Web 開發人員也需要適應形勢,設法更好地保護自己的網站。

                    QQ群:WEB開發者官方群(515171538),驗證消息:10000
                    微信群:加小編微信 849023636 邀請您加入,驗證消息:10000
                    提示:更多精彩內容關注微信公眾號:全棧開發者中心(fsder-com)
                    網友評論(共0條評論) 正在載入評論......
                    理智評論文明上網,拒絕惡意謾罵 發表評論 / 共0條評論
                    登錄會員中心
                    福彩试机号今天 河北快3开奖走势图一定牛 快乐双彩玩法 腾讯分分彩组120怎么打 快3怎么判断出豹子 3d组六投资方案 排列3试机号彩吧 吉林十一选五助手免费 香港六合彩 报码 通比牛牛棋牌游戏下载大全 金牌一码三中三资料 彩票中心兑奖时间 棋牌游戏 30选5走势图 冰球规则 福彩3D六码复式有多少注