網(wǎng)絡(luò)安全檢測思路與技巧

字號:

對于主機的安全檢測,我們通常直接采用nmap或者類似軟件進行掃描,然后針對主機操作系統(tǒng)及其開放端口判斷主機的安全程度,這當(dāng)然是一種方法,但這種方法往往失之粗糙,我仔細考慮了一下,覺得按下面的流程進行判別是比較完整的。   
    1、通過DNS查詢得到目標的網(wǎng)絡(luò)拓撲基本情況,比如有幾臺主機,各自起的服務(wù)是什么等等。這是必要的步驟因為我們檢測應(yīng)該針對網(wǎng)絡(luò),而不是單一主機。   
    2、用nmap進行端口掃描,判斷操作系統(tǒng),結(jié)合自己的一些經(jīng)驗,必要的時候抓banner,判斷出目標主機的操作系統(tǒng)類型。   
    3、用nessus進行普通漏洞的掃描,得到一個大致的報告。對報告進行分析。nessus的報告有些地方并不準確,而且有漏掃或誤報的情況,比如嚴重的unicode漏洞機器明明有,它卻會掃不到,對這種情況我們必須有人工的判斷。   
    4、cgi漏洞也必須有專門的掃描器進行,可以結(jié)合whisker或者twwwscan或者xscan,自己判斷需要增加哪些危險cgi的檢測。      
    上面只是最簡單的,任何一個初學(xué)電腦的人可能都能夠較好完成的工作流程,但是如果在上面的各種掃描方式得到的信息無法分析出目標操作系統(tǒng)的情況甚至系統(tǒng)類型的時候,應(yīng)該怎么辦呢?這種事情現(xiàn)在經(jīng)常遇到,因為大多數(shù)防火墻或者入侵檢測系統(tǒng)現(xiàn)在都具備了動態(tài)地將tcp/ip協(xié)議?!鏣TL、TOS、DF、滑動窗口大小等修改或者屏蔽,使掃描工具無法得出正確結(jié)果的功能。互聯(lián)網(wǎng)上也有許多免費工具可以達到這一效果。
    因此下面要談到其它檢查方式   
    1、在有防火墻的情況下:建議可以使用如hping、firewalk之類的工具,更加靈活地探測目標主機的情況,根據(jù)數(shù)據(jù)包的返回做更進一步的判斷。這需要操作者掌握TCP/IP基本知識,并能靈活運用判斷。   
    2、對主頁程序的檢測,雖然我們只能在外面做些基本的輸入驗證檢測。但按照現(xiàn)在常見的web錯誤,我們可以從下面幾個方面著手分析:   
    a、特殊字符的過濾: &;`‘\" *?~<>^()[]{}$\n\r 這些字符由于在不同的系統(tǒng)或運行環(huán)境中會具有特殊意義,如變量定義/賦值/取值、非顯示字符、運行外部程序等,而被列為危險字符但在許多編程語言、開發(fā)軟件工具、數(shù)據(jù)庫甚至操作系統(tǒng)中遺漏其中某些特殊字符的情況時常出現(xiàn),從而導(dǎo)致出現(xiàn)帶有普遍性的安全問題。當(dāng)有需要web用戶輸入的時候,根據(jù)不同的數(shù)據(jù)庫系統(tǒng)、編程語言提交帶不同參數(shù)變量的url,很可能造成服務(wù)器端資料泄露甚至可執(zhí)行系統(tǒng)命令。   
    b、WEB服務(wù)器的錯誤編碼或解碼可能會導(dǎo)致服務(wù)器信息的泄露、可執(zhí)行命令、源代碼泄露等錯誤。比較典型的應(yīng)該是unicode漏洞以及各種iis服務(wù)器、apache服務(wù)器的源代碼泄露漏洞。
    c、利用程序錯誤的邊界判斷而造成的緩沖區(qū)溢出進行攻擊。最近的一個典型案例應(yīng)該是eeye.com發(fā)現(xiàn)的.printer溢出漏洞。這是web server本身的問題;但網(wǎng)站應(yīng)用程序的編寫者也可能犯下同樣的錯誤,就是對戶輸入不加驗證。但這方面的錯誤比較不容易試出來。
    通過這樣一個過程,應(yīng)該說在遠程掃描,沒有本地帳號或者權(quán)限的情況下,能夠搜集到盡量多的信息了。當(dāng)然,主機面臨的并非是遠程風(fēng)險,還需要具體分析。