淺談sniffer的原理與防范
sniffer用英文翻譯的意思為"嗅探器",想必大家都看過"無間道"吧,其中劉德華和梁朝偉兩個(gè)人做的是什么職業(yè)?臥底.而sniffer也可以這樣比喻.它就象進(jìn)入敵人內(nèi)部的臥底一樣.不斷地將敵方的情報(bào)送出來.
一、什么是sniffer
sniffer一般運(yùn)行在路由器或有路由器功能的主機(jī)上.這樣就可以達(dá)到監(jiān)控大量數(shù)據(jù)的目的.它的運(yùn)行平臺(tái)也比較多.如Linux.Lanpatrol.Lanwatch.netmon等.sniffer屬于第二層次(即數(shù)據(jù)鏈路層)的攻擊.一般是攻擊者進(jìn)入目標(biāo)系統(tǒng).然后利用sniffer來得到更多的信息.(如用戶名.口令.銀行帳戶.密碼等等)它幾乎能得到以太網(wǎng)上傳送的任何數(shù)據(jù)包.通常.sniffer程序只需要看到一個(gè)數(shù)據(jù)包的前200到350個(gè)字節(jié)的數(shù)據(jù).就可以得到用戶名和密碼等信息.由此可見這種攻擊手段是非常危險(xiǎn)的.
二、如何防范sniffer
實(shí)際上.在網(wǎng)絡(luò)上很難發(fā)現(xiàn)sniffer.因?yàn)樗揪筒粫?huì)留下任何痕跡.我們可以通過查看進(jìn)程的方法來發(fā)現(xiàn)它.
在Unix系統(tǒng)下我們使用這個(gè)命令:
pa -aux 或者是:pa -augx
(這兩個(gè)命令是列出當(dāng)前正在運(yùn)行的所有進(jìn)程(類似windows2000下的任務(wù)管理器).我們來看看啟動(dòng)這些進(jìn)程的用戶.占用內(nèi)存的大小.占用CPU的時(shí)間和大小等等.)
在windowsNT系統(tǒng)下.我們只要按下ctrl+alt+del鍵,就可以通過任務(wù)管理器來查看一下進(jìn)程列表.但是.一般編程技巧高的sniffer.它根本就不會(huì)在進(jìn)程里出現(xiàn).
防范sniffer并不難.問題就在花費(fèi)上了.嗬嗬.誰都知道現(xiàn)在的¥¥很難賺的.我們常用的防范sniffer的方法有:
1.傳輸加密.
比較安全的方法就是加密,即對(duì)傳輸?shù)臄?shù)據(jù)在傳送之前加密.對(duì)方收到后再解迷.就算被sniffer監(jiān)聽.但它看到的僅僅的加密后的數(shù)據(jù).這樣數(shù)據(jù)包在傳輸?shù)倪^程中.就算被sniffer程序截獲.它也得不到什么可以利用的信息.不幸的是.傳統(tǒng)的TCP/IP協(xié)議并沒有采用加密的方法來進(jìn)行數(shù)據(jù)傳輸.數(shù)據(jù)都是明文方式的.因此,要想徹底解決被sniffer程序監(jiān)聽的問題.最根本的方法是增強(qiáng)TCP/IP協(xié)議.而目前就只能通過打補(bǔ)丁來解決了.(如SSH協(xié)議,它是在應(yīng)用程序中提供安全通信的協(xié)議.建立在客戶機(jī)/服務(wù)器模型上.SSH服務(wù)器的服務(wù)斷口是22.采用RSA算法來驗(yàn)證用戶并建立連接.通信數(shù)據(jù)是采用IDEA技術(shù)來加密的.這種加密方法只適合一般的通信)
2.采用安全拓?fù)浣Y(jié)構(gòu).
采用安全拓?fù)浣Y(jié)構(gòu)要遵循一個(gè)原則就是一個(gè)網(wǎng)絡(luò)段必須要有足夠的理由才能相信另外一個(gè)網(wǎng)絡(luò)段.網(wǎng)絡(luò)段的設(shè)計(jì)考慮數(shù)據(jù)之間的信任關(guān)系.而不是硬件需要.我們做個(gè)說明.
一個(gè)網(wǎng)絡(luò)段僅由能相互信任的計(jì)算機(jī)組成.象公司的財(cái)務(wù)系統(tǒng).它是固定在某個(gè)辦公室的.
所有的問題都?xì)w結(jié)到信任上了.一臺(tái)計(jì)算機(jī)為了和其他計(jì)算機(jī)進(jìn)行通信.就必須信任那臺(tái)計(jì)算機(jī).作為系統(tǒng)管理員.我們要做的就是用某種方法讓計(jì)算機(jī)之間的信任關(guān)系變小.
局域網(wǎng)和internet連接.僅僅只靠防火墻是不夠的.入侵者已經(jīng)可以從防火墻后面掃描.并探測(cè)正在運(yùn)行的服務(wù).要考慮入侵者進(jìn)入系統(tǒng)后.他想得到或者說能得到什么信息.就必須先考慮一條路徑.即信任關(guān)系有多長(zhǎng).在信任關(guān)系中.任何計(jì)算機(jī)都可以對(duì)確定最小信任關(guān)系的那臺(tái)計(jì)算機(jī)進(jìn)行攻擊.我們要做的就是保證出現(xiàn)的sniffer程序只對(duì)最小范圍有效.
總結(jié):sniffer程序一般是入侵者在侵入系統(tǒng)后才會(huì)使用它來收集有用的信息.因此.防范系統(tǒng)被入侵才是解決問題的關(guān)鍵.,系統(tǒng)管理員要定期的對(duì)所管理的網(wǎng)絡(luò)進(jìn)行安全測(cè)試.以便即使發(fā)現(xiàn)和防止安全隱患.安全隱患隨處可見,并不僅僅出現(xiàn)在sniffer的問題上.我們只是借這個(gè)來討論一下.希望大家都能夠保護(hù)好自己的計(jì)算機(jī).