新聞中心
網絡監(jiān)聽技術是一個發(fā)展的比較成熟的技術,但是網絡監(jiān)聽技術確實是一柄雙刃劍。網絡管理員可以通過網絡監(jiān)聽技術監(jiān)管網絡數(shù)據傳輸,排除網絡故障。但是網絡監(jiān)聽技術也往往被黑客所利用,成為數(shù)據泄露的一大重點威脅。

網絡監(jiān)聽技術在安全領域引起人們普遍注意是在94年開始的,在那一年2月間,相繼發(fā)生了幾次大的安全事件,一個不知名的人在眾多的主機和骨干網絡設備上安裝了網絡監(jiān)聽技術軟件,利用它對美國骨干互聯(lián)網和軍方網竊取了超過100000個有效的用戶名和口令。上述事件可能是互聯(lián)網上最早期的大規(guī)模的網絡監(jiān)聽技術事件了,它使早期網絡監(jiān)聽技術從"地下"走向了公開,并迅速的在大眾中普及開來。
關于網絡監(jiān)聽技術常常會有一些有意思的問題,如:"我現(xiàn)在有連在網上的計算機了,我也有了竊聽的軟件了,那么我能不能竊聽到微軟(或者美國國防部,新浪網等等)的密碼?
又如:我是公司的局域網管理員,我知道hub很不安全,使用hub這種網絡結構將公司的計算計互連起來,會使網絡監(jiān)聽技術變得非常容易,那么我們就換掉hub,使用交換機,不就能解決口令失竊這種安全問題了么?
這是兩個很有意思的問題,我們在這里先不做回答,相信讀者看完全文后會有自己正確的答案。
基本概念:認清mac地址和ip地址
首先,我們知道,一臺接在以太網內的計算機為了和其他主機進行通訊,在硬件上是需要網卡,在軟件上是需要網卡驅動程序的。而每塊網卡在出廠時都有一個唯一的不與世界上任何一塊網卡重復的硬件地址,稱為mac地址。同時,當網絡中兩臺主機在實現(xiàn)tcp/ip通訊時,網卡還必須綁定一個唯一的ip地址。下面用一個常見的unix命令ifconfig來看一看作者本人的一臺正常工作的機器的網卡:
[yiming@server/root]# ifconfig -a
hme0: flags=863 mtu 1500
inet 192.168.1.35 netmask ffffffe0
ether 8:0:20:c8:fe:15
從這個命令的輸出中我們可以看到上面講到的這些概念,如第二行的192.168.1.35是ip 地址,第三行的8:0:20:c8:fe:15是mac地址。請注意第一行的BROADCAST,MULTICAST,這是什么意思?一般而言,網卡有幾種接收數(shù)據幀的狀態(tài),如unicast,broadcast,multicast,promiscuous等,unicast是指網卡在工作時接收目的地址是本機硬件地址的數(shù)據幀。Broadcast是指接收所有類型為廣播報文的數(shù)據幀。Multicast是指接收特定的組播報文。Promiscuous則是通常說的混雜模式,是指對報文中的目的硬件地址不加任何檢查,全部接收的工作模式。對照這幾個概念,看看上面的命令輸出,我們可以看到,正常的網卡應該只是接收發(fā)往自身的數(shù)據報文,廣播和組播報文,請大家記住這個概念。
對網絡使用者來說,瀏覽網頁,收發(fā)郵件等都是很平常,很簡便的工作,其實在后臺這些工作是依靠tcp/ip協(xié)議族實現(xiàn)的,大家知道有兩個主要的網絡體系:OSI參考模型和TCP/IP參考模型,OSI模型即為通常說的7層協(xié)議,它由下向上分別為物理層、數(shù)據鏈路層、網絡層、傳輸層、會話層、表示層、應用層,而tcp/ip模型中去掉了會話層和表示層后,由剩下的5層構成了互聯(lián)網的基礎,在網絡的后臺默默的工作著。
下面我們不妨從tcp/ip模型的角度來看數(shù)據包在局域網內發(fā)送的過程:當數(shù)據由應用層自上而下的傳遞時,在網絡層形成ip數(shù)據報,再向下到達數(shù)據鏈路層,由數(shù)據鏈路層將ip數(shù)據報分割為數(shù)據幀,增加以太網包頭,再向下一層發(fā)送。需要注意的是,以太網的包頭中包含著本機和目標設備的mac地址,也即,鏈路層的數(shù)據幀發(fā)送時,是依靠48bits的以太網地址而非ip地址來確認的,以太網的網卡設備驅動程序不會關心ip數(shù)據報中的目的ip地址,它所需要的僅僅是mac地址。
目標ip的mac地址又是如何獲得的呢?發(fā)端主機會向以太網上的每個主機發(fā)送一份包含目的地的ip地址的以太網數(shù)據幀(稱為arp數(shù)據包),并期望目的主機回復,從而得到目的主機對應的mac地址,并將這個mac地址存入自己的一個arp緩存內。
當局域網內的主機都通過HUB等方式連接時,一般都稱為共享式的連接,這種共享式的連接有一個很明顯的特點:就是HUB會將接收到的所有數(shù)據向HUB上的每個端口轉發(fā),也就是說當主機根據mac地址進行數(shù)據包發(fā)送時,盡管發(fā)送端主機告知了目標主機的地址,但這并不意味著在一個網絡內的其他主機聽不到發(fā)送端和接收端之間的通訊,只是在正常狀況下其他主機會忽略這些通訊報文而已!如果這些主機不愿意忽略這些報文,網卡被設置為promiscuous狀態(tài)的話,那么,對于這臺主機的網絡接口而言,任何在這個局域網內傳輸?shù)男畔⒍际强梢员宦牭降摹?p#
隱患:混雜模式下接收所有信息
我們不妨舉一個例子來看看:我們現(xiàn)在有A,B兩臺主機,通過hub相連在一個以太網內,現(xiàn)在A機上的一個用戶想要訪問B機提供的WWW服務,那么當A機上的用戶在瀏覽器中鍵入B的ip地址,得到B機提供的web服務時,從7層結構的角度上來看都發(fā)生了什么呢?
1:首先,當A上的用戶在瀏覽器中鍵入B機的地址,發(fā)出瀏覽請求后,A機的應用層得到請求,要求訪問IP地址為B的主機。
2:應用層于是將請求發(fā)送到7層結構中的下一層傳輸層,由傳輸層實現(xiàn)利用tcp對ip建立連接。
3:傳輸層將數(shù)據報交到下一層網絡層,由網絡層來選路。
4:由于A,B兩機在一個共享網絡中,IP路由選擇很簡單:IP數(shù)據報直接由源主機發(fā)送到目的主機。
5:由于A,B兩機在一個共享網絡中,所以A機必須將32bit的IP地址轉換為48bit的以太網地址,請注意這一工作是由arp來完成的。
6:鏈路層的arp通過工作在物理層的hub向以太網上的每個主機發(fā)送一份包含目的地的ip地址的以太網數(shù)據幀,在這份請求報文中申明:誰是B機IP地址的擁有者,請將你的硬件地址告訴我。
7:在同一個以太網中的每臺機器都會"接收"(請注意這一點?。┑竭@個報文,但正常狀態(tài)下除了B機外其他主機應該會忽略這個報文,而B機網卡驅動程序識別出是在尋找自己的ip地址,于是回送一個arp應答,告知自己的ip地址和mac地址。
8:A機的網卡驅動程序接收到了B機的數(shù)據幀,知道了B機的mac地址,于是以后的數(shù)據利用這個已知的MAC地址作為目的地址進行發(fā)送。同在一個局域網內的主機雖然也能"看"到這個數(shù)據幀,但是都保持靜默,不會接收這個不屬于它的數(shù)據幀。
上面是一種正常的情況,如果網卡被設置為為混雜模式(promiscuous),那么第8步就會發(fā)生變化,這臺主機將會默不作聲的聽到以太網內傳輸?shù)乃行畔ⅲ簿褪钦f:竊聽也就因此實現(xiàn)了!這會給局域網安全帶來極大的安全問題,一臺系統(tǒng)一旦被入侵并進入網絡監(jiān)聽技術狀態(tài),那么無論是本機還是局域網內的各種傳輸數(shù)據都會面臨被竊聽的巨大可能性。
實用的網絡監(jiān)聽技術工具介紹
上面我們看到,一切的關鍵就在于網卡被設置為混雜模式的狀態(tài),這種工作復雜嗎?不幸的是,這種工作并不復雜,目前有太多的工具可以做到這一點。自網絡監(jiān)聽技術這一技術誕生以來,產生了大量的可工作在各種平臺上相關軟硬件工具,其中有商用的,也有free的。在google上用sniffer tools作為關鍵字,可以找到非常多。
作者在這里列舉一些作者喜歡的軟件,供有興趣的讀者參考使用。
Windows平臺下的:
Windump
Windump是最經典的unix平臺上的tcpdump的window移植版,和tcpdump幾乎完全兼容,采用命令行方式運行,對用慣tcpdump的人來講會非常順手。目前版本是3.5.2,可運行在Windows 95/98/ME/Windows NT/2000/XP平臺上
Iris
Eeye公司的一款付費軟件,有試用期,完全圖形化界面,可以很方便的定制各種截獲控制語句,對截獲數(shù)據包進行分析,還原等。對管理員來講很容易上手,入門級和高級管理員都可以從這個工具上得到自己想要得東西。運行在Windows 95/98/ME/Windows NT/2000/XP平臺上
unix平臺下的:
tcpdump
不多說,最經典的工具,被大量的*nix系統(tǒng)采用,無需多言。
ngrep
和tcpdump類似,但與tcpdump最大的不同之處在于,借助于這個工具,管理員可以很方便的把截獲目標定制在用戶名,口令等感興趣的關鍵字上。
snort
目前很紅火的免費的ids系統(tǒng),除了用作ids以外,被用來sniffer也非常不錯,可以借助工具或是依靠自身能力完全還原被截獲的數(shù)據。
Dsniff
作者設計的出發(fā)點是用這個東西進行網絡滲透測試,包括一套小巧好用的小工具,主要目標放在口令,用戶訪問資源等敏感資料上,非常有特色,工具包中的arpspoof,macof等工具可以令人滿意的捕獲交換機環(huán)境下的主機敏感數(shù)據。
Ettercap
和dsniff在某些方面有相似之處,也可以很方便的工作在交換機環(huán)境下
提示:國內用戶訪問這個站點需要使用代理服務器。
Sniffit
被廣泛使用的網絡監(jiān)聽技術軟件,截獲重點在用戶的輸出。
網絡監(jiān)聽技術的防范方法
上面我們介紹了可以用來進行網絡監(jiān)聽技術的軟件,那么對這種不受歡迎的行為,有沒有一些防范手段呢?
上面我們知道,sniffer是發(fā)生在以太網內的,那么,很明顯,首先就要確保以太網的整體安全性,因為sniffer行為要想發(fā)生,一個最重要的前提條件就是以太網內部的一臺有漏洞的主機被攻破,只有利用被攻破的主機,才能進行sniffer,去收集以太網內敏感的數(shù)據信息。
其次,采用加密手段也是一個很好的辦法,因為如果sniffer抓取到的數(shù)據都是以密文傳輸?shù)?,那對入侵者即使抓取到了傳輸?shù)臄?shù)據信息,意義也是不大的-比如作為telnet,ftp等安全替代產品目前采用ssh2還是安全的。這是目前相對而言使用較多的手段之一,在實際應用中往往是指替換掉不安全的采用明文傳輸數(shù)據的服務,如在server端用ssh,openssh等替換unix系統(tǒng)自帶的telnet,ftp,rsh,在client端使用securecrt,sshtransfer替代telnet,ftp等。
除了加密外,使用交換機目前也是一個應用比較多的方式,不同于工作在第一層的hub,交換機是工作在二層,也就是說數(shù)據鏈路層的,以CISCO的交換機為例,交換機在工作時維護著一張ARP的數(shù)據庫,在這個庫中記錄著交換機每個端口綁定的MAC地址,當有數(shù)據報發(fā)送到交換機上時,交換機會將數(shù)據報的目的MAC地址與自己維護的數(shù)據庫內的端口對照,然后將數(shù)據報發(fā)送到"相應的"端口上,注意,不同于HUB的報文廣播方式,交換機轉發(fā)的報文是一一對應的。對二層設備而言,僅有兩種情況會發(fā)送廣播報文,一是數(shù)據報的目的MAC地址不在交換機維護的數(shù)據庫中,此時報文向所有端口轉發(fā),二是報文本身就是廣播報文。由此,我們可以看到,這在很大程度上解決了網絡監(jiān)聽技術的困擾。但是有一點要注意,隨著dsniff,ettercap等軟件的出現(xiàn),交換機的安全性已經面臨著嚴峻的考驗!我們將在后面對這種技術進行介紹。
此外,對安全性要求比較高的公司可以考慮kerberos,kerberos是一種為網絡通信提供可信第三方服務的面向開放系統(tǒng)的認證機制,它提供了一種強加密機制使client端和server即使在非安全的網絡連接環(huán)境中也能確認彼此的身份,而且在雙方通過身份認證后,后續(xù)的所有通訊也是被加密的。在實現(xiàn)中也即建立可信的第三方服務器保留與之通訊的系統(tǒng)的密鑰數(shù)據庫,僅kerberos和與之通訊的系統(tǒng)本身擁有私鑰(private key),然后通過private key以及認證時創(chuàng)建的session key來實現(xiàn)可信的網絡通訊連接。
文章題目:全面解析網絡監(jiān)聽技術
網站URL:http://fisionsoft.com.cn/article/dpjoici.html


咨詢
建站咨詢
