Web服務器面臨的攻擊
發佈時間:2015-01-22
-
瀏覽次數:3458次
- Web服務器攻擊常利用Web服務器軟件和配置中的漏洞,針對這些漏洞最佳做法是遵循一些方法搭建並運行Web服務器,本文詳解了Web服務器保護的一些方法。Web安全分爲兩大類:· Web服務器的安全性(Web服務器本身安全和軟件配置)。· Web應用程序的安全性(在Web服務器上運行的Java、 ActiveX、PHP、ASP代碼的安全)。Web服務器面臨的攻擊Web服務器攻擊利用Web服務器軟件和配置中常見的漏洞。這些漏洞包括:· 緩衝區溢出· 文件目錄遍曆· 腳本權限· 文件目錄浏覽· Web服務器軟件默認安裝的示例代碼· Web服務器上運行的其他軟件中的漏洞,例如SQL數據庫軟件讓我們對上訴漏洞依個進行深入地探討。1.緩衝區溢出緩衝區溢出允許惡意代碼注入到應用程序,它損壞應用程序的堆棧——內存中存儲應用程序代碼的一個地方——並用不同的代碼代替原始代碼的一部分來實現攻擊者的目的,例如運行特洛伊木馬程序或遠程控制應用程序。以下是緩衝區溢出漏洞的一個簡單示例代碼,使用C語言編寫:char aTmp[100];scanf(\\\\\\\"%s\\\\\\\",aTmp);在第一行中,程序員聲明一個長度爲100的數組aTmp。在第二行中,scanf方法從控制台讀取數據存到aTmp數組。代碼不會檢查%s 變量是否能夠容納輸入數據的大小。因爲程序員編碼過程不對輸入字符串的大小進行檢查,如果給定的輸入超過100個字符,就會造成緩衝區溢出。一個精心構造構的輸入中可能包含彙編代碼,這部分彙編代碼能夠獲得源程序一樣的運行權限。2.目錄遍曆目錄遍曆是指訪問到了不是原先設想或允許的目錄(或文件夾)。例如,微軟IIS Web站點的默認文件夾爲C:\\\\\\\\inetpub,攻擊者可使用的目錄遍曆漏洞,在該文件夾之外去讀取他們本不該訪問的文件。詳細來說,假如有一個網址爲 “www.bad.com”的網站,其服務器代碼中包含目錄遍曆漏洞。攻擊者通過輸入以下URL就可以利用該漏洞:http://www.bad.com/../autoexec.batURL中的“.../”告訴服務器上溯一個目錄,也就是“C:\\\\\\\\”目錄(Web 服務器可以將斜杠轉換爲反斜杠)。所以如果IIS服務器默認目錄爲“c:\\\\\\\\inetpub”,那麽該URL會轉到“C:\\\\\\\\”目錄,攻擊者將能夠看到“c: \\\\\\\\autoexec.bat”文件。除非將服務器配置好了避免目錄遍曆,不然所有目錄可能都是可訪問的。這種情況下,Web服務器將顯示 “autoexec.bat”文件的內容,或者攻擊者選擇的任何其他文件。值得注意的是:我們已經使用 IIS 作爲示例;但是,此漏洞的利用不是針對IIS服務器的,在其他的Web 服務器上也有目錄遍曆漏洞。3.腳本權限爲了運行通用網關接口(CGI)、Perl或者其他服務端應用程序,管理員必須授予對服務器端應用程序所在的目錄以可執行權限。一些管理員給錯誤位置授予此權限(通常是因爲他們不明白這麽做會帶來的問題)。讓我們看看下面的示例,探討如果管理員將此權限授予C盤下的所有目錄將發生什麽。http://www.bad.com/../winnt/system32/cmd.exe%20%2fc%20dir首先我們來破譯這神秘的URL。某些字符如空格和斜杠,不能出現在URL中,因爲URL是限于7 -bit編碼的ASCII碼。然而,某些情況下還是會使用到這些字符。可行的辦法是使用其十六進制的字符來表示,或者使用類似ASCII的base 16編碼。Base 16 使用字母a、b、c、d、e 和f來表示大于9的數字。舉例來說,字母a表示十六進制中的數字10,f表示15,並使用10表示數字16。所以,在前面的示例:· 空格使用ASCII編碼表示爲十進制的32,使用十六進制則爲20,因此變成%20。· 斜杠(/)使用ASCII編碼表示爲十進制的47,使用十六進制則爲2f,因此變成%2f。經Web服務器解析後,就成爲下面的URL:../winnt/system32/cmd.exe /c dir這是要執行“cmd.exe”並告訴它執行“dir”命令。“cmd.exe”是位于“C:\\\\\\\\winnt\\\\\\\\system32”文件夾中的命令外殼。“Dir”命令列出當前目錄中的所有文件,並將結果返回給用戶。當然,這是只是一個簡單的例子,攻擊者可以執行更複雜的命令以達到刪除、運行或修改Web服務器上數據的目的。那是用于網站訪問者運行的命令,而不是可能援助攻擊者的軟件,如cmd.exe或其他內置操作系統命令。4.目錄浏覽通常情況下,目錄浏覽是禁用的,但是如果啓用它,則它顯示該目錄中的所有文件,並允許浏覽的子目錄。有時知道一個文件存在可以幫助攻擊者利用Web 服務器上文件和程序的漏洞。爲此,不建議啓用Web 服務器上的目錄浏覽。5.默認示例默認示例是包含在Web 服務器軟件中並在服務器軟件安裝時默認安裝的應用程序。一些默認安裝的示例包含安全漏洞。針對這些漏洞保護的最佳辦法是不要安裝示例,如果已經安裝了,最好把它們刪除掉。6.其他服務攻擊者可以通過攻擊在Web服務器上運行的其他服務來攻陷Web服務器。這些服務包括FTP、SMTP、POP3、SQL服務器和NetBIOS服務。防止此類攻擊的最佳方法是減少“受攻擊面”。關閉所有運行在Web服務器操作系統上不必要的服務並對剩下的服務進行安全地配置。最佳做法是使 Web服務器只有一個Web服務程序,而沒有其他的服務。運行數據庫和其他的軟件應部署在單獨的服務器上,這樣服務器受防火牆保護,只有Web服務器易受 Web攻擊。如果攻擊者設法利用其他服務的漏洞來攻擊服務器,他們也能夠幹擾或攻陷Web站點。7.Web服務器軟件的固有漏洞每個Web服務器軟件,包括IIS和Apache,由于缺乏安全的編碼技術,該軟件的程序員已經提供了內置漏洞。例如,IIS的.htr漏洞,允許攻擊者看到駐留在服務器上的文件的內容。幾乎每周都會發布主要的Web服務器軟件平台中的新漏洞。Web服務器的保護針對上述漏洞最佳做法是遵循以下建議搭建並運行Web服務器。采取下列措施將提高Web服務器的安全性。· 給Web服務器服務或守護程序配置能夠使它正常運行最少的權限。這樣,即使攻擊者控制了Web 服務器,他們只能獲得運行該軟件對應的用戶賬戶的權限。這樣,攻擊計算機或網絡上的其他軟件可行方案就極爲有限了。· 安裝最新的安全補丁並時刻關注漏洞的最新動態。· 刪除默認示例並避免安裝類似的示例。· 通過刪除不需要的應用程序,安全配置同一台計算機上的其他網絡服務,確保操作系統已安裝最新的安全補丁來保證承載Web服務器的計算機的安全。· 確保只給需要執行的腳本單獨的目錄運行的權限。· 在Web服務器上每個目錄中,都提供一個index.html文件,以避免需要目錄浏覽。第三方安全産品商業和免費的産品也可以幫助抵禦與Web服務器相關的不同漏洞。主要有以下産品:· 軟硬件防火牆· Web應用防火牆(WAFs)· 病毒防禦軟件· 基于ISAPI的安全産品· 安全日志· 反饋分析軟件· 入侵檢測系統和入侵檢測防禦系統· 漏洞掃描軟件· 輸入驗證軟硬件防火牆。防火牆過濾掉不屬于正常 Web會話的流量。所有Web服務器都應配備技術先進的第四代防火牆。第四代防火牆可以區分出普通的Web浏覽器合法的流量和攻擊者的惡意攻擊流量。直接部署在Web服務器上的防火牆軟件可以爲服務器提供額外的防護。Web應用防火牆。Web應用防火牆(WAFs)是具有Web流量深度檢查功能的設備。WAFs能夠提供基于內容的攻擊的良好保護,因爲他們會解析HTTP會話的實際內容,尋找與正常使用模式不匹配的已知錯誤或異常行爲。這些設備可以是非常有效的防範大多數攻擊。病毒防禦軟件。Web服務器上應該安裝防禦毒軟件。如果攻擊者利用安全漏洞企圖控制Web 服務器,並且漏洞已知,病毒防禦軟件能夠檢測到並阻止。基于ISAPI的安全産品。此類産品截取URL請求,過濾掉可能的攻擊,如緩衝區溢出。Web服務器供應商通常會免費提供基于ISAPI的安全産品。反饋分析軟件。反饋分析軟件解析Web服務器的響應並與已知的正常網站響應進行比較。如果網站含有惡意代碼或者被修改,響應將不匹配原始的已知的正常響應,這樣能夠檢測出未經授權的網站更改。入侵檢測與防禦。入侵檢測系統(IDS)一般用于入侵的後期處理,因爲系統保留事件的詳細記錄。而入侵預防系統(IDP)能夠阻止某些已知的不良行爲。漏洞掃描軟件。管理員應運行漏洞掃描程序定期來測試Web服務器的安全性,因爲假如掃描儀發現了安全漏洞,攻擊者很可能也會發現同樣的漏洞。有很多免費或商業的漏洞掃描軟件。其中有些是基于Web,有些是硬件程序,剩下的是純軟件。輸入驗證。輸入驗證産品檢查提交到Web站點每個數據是否存在異常、SQL注入命令或緩衝區溢出攻擊代碼。安全日志。安全日志可以提供Web服務器攻擊入侵的證據。除了存放在在 Web 服務器上,還應該將它們存儲網絡上安全的位置以防止攻擊者更改日志或刪除記錄。文章摘抄于站長之家
搜索