點評:對於一些大型網站來說,通常擁有一整套已經執行瞭的WEB站點安全防范解決方案,但是,為什麼一些網站還是會被攻擊者掛載木馬?其中一個最主要的原因是已經實施的WEB站點安全解決方案隻能夠應對已經出現的安全漏洞和威脅。而攻擊者總是在通過各種手段來分析網站中可能會存在的弱
對於一些大型網站來說,通常擁有一整套已經執行瞭的WEB站點安全防范解決方案,但是,為什麼一些網站還是會被攻擊者掛載木馬?其中一個最主要的原因是已經實施的WEB站點安全解決方案隻能夠應對已經出現的安全漏洞和威脅。而攻擊者總是在通過各種手段來分析網站中可能會存在的弱點或漏洞,以便能夠成功繞過網站當前的安全防范措施來實施掛馬攻擊。針對這樣的一種WEB站點安全現狀,最好的方式就是在部署相應的安全防范安全解決方案的同時,還必需采取與攻擊者相同的手段,也就是在網站的運營過程中,不斷對它進行安全評估,以此來找到網站中可能存在的弱點和漏洞。
對WEB站點進行安全評估是WEB安全防范處理過程中非常重要的一個環節,它應當貫穿站點的整個生命周期。對WEB站點實施安全評估的目的就是指安全評估人員,使用相應的評估工具和技術,經過一系列恰當的方法,對WEB服務器本身、服務器系統、後臺數據庫系統及網絡中已經實施的安全機制,進行全面的檢測和評估,以此來檢測整個WEB系統是否還存在弱點,以及驗證實施的安全機制是否有效。並根據最後的評估分析結果,對現有的安全策略進行修訂,對實施的安全機制進行補充。
一、制定WEB站點安全評估方案
對WEB站點進行安全評估,為瞭能夠達到最終的效果,事先先制定一個切合實際的安全評估方案是十分有意義的。當然,對於一些個人網站,或者隻進行一次WEB站點弱點檢測來說,也可以跳過制定安全評估方案這個環節,直接使用系統或WEB弱點檢測工具對WEB站點所在的系統和其本身進行詳細的弱點檢測即可。
如果需要對一個WEB站點進行全面的安全評估,或者你需要一個安全評估方案來指導你完成相應的WEB站點弱點檢測任務,那麼,我們可以按下列列出的內容,來構建一個適合自己實際需求的WEB站點安全評估方案:
1、為WEB站點安全評估確定一個最終目標,也就是為什麼要這麼做,這樣做需要達到什麼的目的。
2、為WEB站點的安全評估指定安全評估人員。
3、確定安全評估時具體的評估對象。
4、為WEB站點的安全評估制定具體的時間計劃表,如果沒有什麼特殊情況,我們應當嚴格按照這張時間表規定的時間對WEB站點實施安全評估。
5、為WEB站點的安全評估指定具體的評估工具,並要求評估人員對這些工具進行相應的學習,以達到訓練掌握它們的目的,還必需規定評估人員按時對這些評估軟件所依賴的評估漏洞庫和軟件本身進行不斷的更新。
6、規定是將安全評估工具安全裝在目標WEB服務器進行安全評估,還是在專門的硬件設備(例如筆記本電腦)上安裝評估軟件,然後在使用時再接入目標網絡實施評估任務。
7、明確具體的安全評估方法
8、明確安全評估過程中需要註意的操作事項;
9、明確安全評估的規章制度和評估人員責任;
10、規定安全評估結果的記錄方式,以及評估報告的上報、存檔和檢索方式。
WEB站點安全評估方案應當根據實際的網絡環境,以及站點的具體內容和功能,經過詳細的調查和分析後,再由安全評估參與人員共同完成。當然,一個實際的WEB站點安全評估方案,所包括的內容可能比上述所列出的內容要多得多,也詳細得多,在這裡隻是對它們做瞭一個簡單的說明,具體的內容還需要大傢根據實際情況做具體的補充。
二、WEB站點安全評估的具體實施方式
WEB站點安全評估的具體實施涉及到四個最關鍵的因素,它們是安全評估人員、評估工具、評估方法和評估對象。
1、安全評估人員
安全評估人員,應當包括WEB站點所有者、管理員及安全評估實施人員。安全評估實施人員的技術和經驗,以及工作態度在一定程度上決定瞭評估的效果和可信性。
有時,一些WEB站點不得不將安全評估任務外包給一些具有安全評估資質的第三方機構來完成,這也是一些沒有具體的WEB站點管理員的中小企業WEB網站經常使用的方式。
還有一些WEB站點,所有的工作都是由站點管理員一個人來完成,對於這樣的WEB站點安全評估報告,通常隻會被他自己所接受,也就是用來對站點當前的安全狀況進行一次簡單的體檢,以此來做到心中有數。
2、安全評估工具
安全評估工具需要根據所要評估的具體對象來選擇,不同的評估對象,所使用的評估工具是不相同的。這是由於有些安全評估工具隻是針對某種服務或軟件,有些是針對整個主機或網絡的;有些安全評估工具隻能在某種操作系統平臺下運行,而有些安全評估工具卻能在許多流行的操作系統平臺下運行;一些安全評估工具是軟件方式的,還有一些是以獨立的硬件方式存的;有些安全軟件是免費的,而有一些是商業的。由此,要找到一款合適的安全評估工具還真的不是隨便選擇幾樣這麼簡單。並且,一些其他人認為非常好用的安全評估工具,對於我們自己來說並不見得會很喜歡,因此,有時我們不得不經過不斷的試用才會知道哪幾款評估軟件才是最適合我們自己的。
幸運的是,現在還是已經有許多功能強大的評估工具可以供我們選擇,這些工具有:
(1)Nmap
Nmap是一個網絡探測和安全掃描程序,我們可以使用它來掃描WEB站點所在系統或整個網絡,並以此來得到WEB站點所在系統正在運行及提供什麼樣的服務,開放瞭什麼樣的端口,使用什麼樣的操作系統等信息。Nmap支持包括UDP、TCP connect()、TCP SYN()、ICMP、FIN及ACK等掃描方式,其中有許多掃描方式還可以用來檢測防火墻及IDS/IPS等設備的回應情況。
Nmap能夠在類UNIX系統及Windows系統的終端下以命令方式運行,它的命令執行格式為:nmap [Scan Type(s)] [Options]。我們可以從http://insecure.org/網站上下載到它的最新版本,以及得到它的詳細說明文檔。
(2)Nessus
Nessus同樣是一個功能強大的安全檢測工具,它允許用戶使用插件對它進行功能上的擴展。Nessus使用一個頻繁更新的漏洞庫作為安全檢測的依據。我們可以到www.nessus.org網站上下載到它的免費版本Nessus3,以及得到它的詳細的使用文檔。現在大部分的安全人員都使用它來對網絡或主機系統進行全面安全檢測。
(3)Nikto
Nikto是一款開放源代碼、功能強大的WEB弱點掃描評估軟件,它能對WEB服務器的多種安全項目進行測試,能在230多種服務器上掃描出2600多種有潛在危險的文件、CGI及其他問題。Nikto使用LibWhiske漏洞庫,Nikto已成為WEB站點管理員必備的WEB安全檢測工具之一。
可以到http://www.cirt.net/網站上下載Nikto的最新版本。Nikto是基於PERL開發的程序,所以需要PERL環境。因此,當Nikto需要在Windows系統下使用時,要同時下載並安裝ActiveState Perl環境。當需要Nikto使用SSL的安全方式對WEB站點進行安全掃描時,還會用到Net::SSLeay PERL模式,此時必須保證系統中安裝有OpenSSL。它們的具體安裝和使用細節可以參考它們的幫助文檔。
另外,還有一個與Nikto相似的WEB弱點掃描工具Wikto,它不僅具有Nikto同樣的功能,還提供GUI圖形界面,但隻能在Windows系統下運行。它可以到http://www.sensepost.com/research/wikto/下載。。
(4)N-Stealth
N-Stealth是ZMT公司出品的一款商業的WEB站點安全掃描軟件,同時也有可以免費使用的版本,隻是功能沒有商業版本的多,漏洞庫也不支持自動更新。我們可以到www.nstalker.com網站上下載它的最新版本,它可以在win98/ME/2000/XP/2003系統下運行。
(5)ISS Database Scanner
ISS的數據庫掃描器(DataBase Scanner)是一個針對數據庫管理系統進行風險評估的檢測工具。它可以自動識別數據庫系統中各種潛在的安全問題,產生通俗易懂的報告來表示安全風險和弱點,並對違反和不遵循數據庫安全策略的弱點和漏洞提出修改建議。
Database Scanner 可以掃描的數據包括Microsoft SOL Server 6.x 或7.x、Sybase Adaptive Server 11.x和Oracle 8i, 8.0 或 7.3。它能通過網絡快速、方便地掃描數據庫,去檢查數據庫中可能存在的安全漏洞,全面評估所有的安全漏洞和認證、授權、完整性方面的問題。
除瞭上面介紹的安全掃描軟件以外,還有一些軟件也有可以用來進行安全檢測工作,包括X-scan3.3、WebInject1.41和Acunetix WVS Free Edition,以及一款功能全面且性能強大的商業安全掃描軟件ISS Internet Scanner等。
另外,在使用任何評估工具之前,要先對其漏洞庫進行升級更新。這是由於現在大多數安全評估工具都是利用漏洞特征庫來進行弱點檢測的,隻有保證它們的漏洞特征庫為最新狀態,才有可能發現WEB站點及所依賴的系統上可能存在的最新漏洞。
3、安全評估方法
安全評估方法就是具體的安全評估實施方式,它主要涉及到下列五個具體的方面:
(1)由外向內測試
這種安全評估方式就是以攻擊者的角度從WEB站點所在網絡結構中的外部,對它進行安全掃描工作,以此來檢測WEB站點防范來自互聯網遠程攻擊的能力。此種測試方式可以使用上述評估工具中的N-stealth、X-Scan和WebInject等工具來進行。
(2)由內向外測試
由內向外的安全檢測方式是指從WEB站點所在網絡結構的內部,對它進行安全掃描工作。這種安全檢測方式主要用來檢驗WEB站點對來自內部的攻擊防范能力,以及檢測對用戶權限分配情況和內部數據傳輸過程中的安全性。此時可使用一些操作系統內部網絡命令,例如Netstat,以及Hping和Nikto、X-scan、Nmap、Acunetix WVS Free Edition等工具來進行完成檢測任務。
(3)模擬攻擊測試
模擬攻擊測試是指在實際的測試過程中並不對WEB站點所在服務器系統及WEB應用程序、網絡設備進行真正的攻擊事件。這種測試方式並不會對WEB站點的性能產生影響,平時大部分的安全評估工作應當使用模擬攻擊的測試方式。
(4)真實攻擊測試
當使用模擬攻擊測試不能真正檢驗到網站的安全狀況時,就可以使用真實的攻擊測試。由於攻擊是真實的,因此會對WEB站點的性能造成影響,因而這種方式最好在WEB開發的最初階段,以及沒有WEB業務的時候進行。現在有很多的網站都會請一些專門的黑客來對自己的站點進行真實的攻擊,以便最大程度地檢測出WEB站點中存在的安全漏洞問題。
(5)社會工程攻擊測試
有許多人認為社會工程隻是攻擊者用來進行攻擊的一種手段,卻不知它也是一種很好的檢測企業內部員工及站點管理員反社會工程攻擊能力強度的評測工具。我們可以通過電話、手機短信及電子郵件的方式對評測的人員實施與攻擊相同的社會工程攻擊測試。同樣,我們還可以通過直接接觸的方式對被評測者進行相應的社會工程攻擊測試評估。當我們決定進行社會工程方式的安全評估工作時,最好讓可信的第三方來進行,這樣才可以達到最好的評估效果。
4、評估對象
評估對象就是指評估過程中具體的評估實施目標,包括WEB服務器主機操作系統、WEB應用程序框架、數據庫系統及網絡基礎設施等。
這四個因素是WEB站點安全評估工作中缺一不可的,缺少任何一個或任何一個出現問題,都會使整個評估工作中斷或使評估結果不可信。還有就是評估工具的使用並不一定得一次隻使用一種工具,我們可以根據所要評估的對象和評估的內容進行組合應用。畢竟,有時一種工具隻在某一個方面比較有效,而且,評估軟件還存在誤報和漏報的問題,組合使用工具,再加上評估人員自己經驗的判斷,就能將評估結果的有效性提高到最高水平。
當WEB站點安全評估工作完成後,我們還應當根據安全評估結果,對安全策略進行相應的修訂,同時對實施瞭的安全機制進行相應的補充。WEB站點的安全評估工作,在站點沒有真正投入運行前,可不斷地重復進行檢測,直到我們認為已經修補瞭所有已知的漏洞為止。同時,我們還必需在WEB站點運營過程當中進行安全評估,以此來發現潛在的安全威脅。
不能忽略的一點,如今攻擊者善於主動分析並發現新的漏洞,這樣就對現有的漏洞掃面系統造成瞭一定的瓶頸,並不能完全解決網站被掛馬攻擊這種威脅。因此,我們在使用它的同時,還必需使用其它的方式來補充它的不足。
因此作為Web站點的管理者而言,需要通過不斷對WEB站點進行安全評估,以便能先攻擊者一步來發現網站中可能存在的弱點,然後才能在攻擊沒有發動前就修補好這些漏洞,這樣才有可能最大限度地減少網站被掛馬的風險。為瞭更好地瞭解安全趨勢,我們還可以到www.cert.org及www.securityfocus.comh訂閱最新的安全漏洞的郵件列表,讓我們可以及時瞭解每天的安全漏洞信息。