安全防范Linux嗅探器
隨著Linux在網(wǎng)絡(luò)中的應(yīng)用日益廣泛,它的安全問題也越來越受到關(guān)注。本文主要介紹嗅探器技術(shù)的工作原理,及其防范措施。
何謂嗅探器
嗅探器(Sniffer)就是能夠捕獲網(wǎng)絡(luò)報文的設(shè)備。Sniffer 就是嗅探器,就是竊聽器,它靜悄悄地工作在網(wǎng)絡(luò)的底層,把用戶的秘密全部記錄下來。嗅探器的正當用處在于分析網(wǎng)絡(luò)的流量,以便找出所關(guān)心的網(wǎng)絡(luò)中潛在的問題。例如,假設(shè)網(wǎng)絡(luò)的某一段運行得不是很好,報文的發(fā)送比較慢,而我們又不知道問題出在什么地方,此時就可以用嗅探器來作出精確地問題判斷。嗅探器在功能和設(shè)計方面有很多不同,有些只能分析一種協(xié)議,而另一些可能能夠分析幾百種協(xié)議。一般情況下,大多數(shù)的嗅探器至少能夠分析下面的協(xié)議:標準以太網(wǎng)、 TCP/IP、IPX、DECNET、FDDI Token、微波和無線網(wǎng)。
實際應(yīng)用中的嗅探器還分軟、硬兩種。軟件嗅探器的優(yōu)點在于比較便宜,易于使用,缺點是往往無法抓取網(wǎng)絡(luò)上所有的傳輸數(shù)據(jù)(比如碎片),也就可能無法真正全面了解網(wǎng)絡(luò)的故障和運行情況。硬件嗅探器通常稱為協(xié)議分析儀,它的優(yōu)點恰恰是軟件嗅探器所欠缺的,但是價格昂貴。目前流行的嗅探器工具大多是軟件的。
FTP、POP和Telnet在本質(zhì)上都是不安全的,因為它們在網(wǎng)絡(luò)上用明文傳送口令和數(shù)據(jù),嗅探器就可以非常容易地截獲這些口令和數(shù)據(jù)。而且,這些服務(wù)程序的安全驗證方式也是有弱點的,就是很容易受到“中間服務(wù)器”方式的攻擊。所謂“中間服務(wù)器”攻擊方式,就是“中間服務(wù)器”冒充真正的服務(wù)器接收用戶傳給服務(wù)器的數(shù)據(jù),然后再冒充用戶把數(shù)據(jù)傳給真正的服務(wù)器。服務(wù)器和用戶之間的數(shù)據(jù)傳送被“中間服務(wù)器”轉(zhuǎn)手并做了手腳之后,就會出現(xiàn)很嚴重的問題。
嗅探器與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網(wǎng)絡(luò)報文。嗅探器通過將其置身于網(wǎng)絡(luò)接口來達到這個目的——例如將以太網(wǎng)卡設(shè)置成雜收模式。數(shù)據(jù)在網(wǎng)絡(luò)上是以很小的稱為幀(Frame)的單位傳輸?shù)摹珊脦撞糠纸M成,不同的部分執(zhí)行不同的功能。例如以太網(wǎng)的前12個字節(jié)存放的是源和目的的地址,這些位告訴網(wǎng)絡(luò)數(shù)據(jù)的來源和去處。以太網(wǎng)幀的其他部分存放實際的用戶數(shù)據(jù)、TCP/IP的報文頭或IPX報文頭等等。幀通過特定的稱為網(wǎng)絡(luò)驅(qū)動程序的軟件進行成型,然后通過網(wǎng)卡發(fā)送到網(wǎng)線上。它通過網(wǎng)線到達它們的目的機器,在目的機器的一端執(zhí)行相反的過程。接收端機器的以太網(wǎng)卡捕獲到這些幀,并告訴操作系統(tǒng)幀的到達,然后對其進行存儲。在這個傳輸和接收的過程中,每一個在LAN上的工作站都有其硬件地址。這些地址唯一地表示著網(wǎng)絡(luò)上的機器。這一點和Internet地址系統(tǒng)比較相似。當用戶發(fā)送一個報文時,這些報文就會發(fā)送到LAN上所有可用的機器。在一般情況下,網(wǎng)絡(luò)上所有的機器都可以 “聽”到通過的流量,但對不屬于自己的報文則不予響應(yīng)。換句話說,工作站A不會捕獲屬于工作站B的數(shù)據(jù),而是簡單的忽略這些數(shù)據(jù)。如果某工作站的網(wǎng)絡(luò)接口處于雜收模式,那么它就可以捕獲網(wǎng)絡(luò)上所有的報文和幀。如果一個工作站被配置成這樣的方式,它(包括其軟件)就是一個嗅探器。這也是嗅探器會造成安全方面的問題的原因。
#p#Linux環(huán)境下的嗅探器
Linux環(huán)境下的嗅探器有tcpdump、Nmap、linSniffer、LinuxSniffer、hunt、sniffit等。下面就只介紹Linux下優(yōu)秀的嗅探器——tcpdump。
tcpdump 在Linux下的安裝十分簡單,一般由兩種安裝方式。一種是以rpm包的形式來進行安裝。另外一種是以源程序的形式安裝。這里我們講 rpm包的形式安裝。這種形式的安裝是最簡單的安裝方法。rpm包是將軟件編譯后打包成二進制的格式,通過rpm命令可以直接安裝,不需要修改任何東西。
以超級用戶登錄,使用命令如下:
#rpm -ivh tcpdump-3_4a5.rpm
這樣tcpdump就順利地安裝到Linux系統(tǒng)中。
tcpdump 是一個多用途的網(wǎng)絡(luò)通信監(jiān)測器,可捕獲和顯示報文及其內(nèi)容。它可用來作為協(xié)議分析器,在系統(tǒng)及網(wǎng)絡(luò)設(shè)備間提供一個最佳途徑來探查通信和(或)連通性問題。大多數(shù)時候,網(wǎng)絡(luò)疑難問題集中在網(wǎng)絡(luò)配置問題以及診斷硬件相關(guān)故障。然而,用戶將常常面對協(xié)議相關(guān)問題并且被迫鉆研特定協(xié)議的機制來解決問題。使用 tcpdump,被檢查的報文將用長格式或短格式(根據(jù)使用的命令行選項)顯示其信息。tcpdump 有一個非常強有力的過濾機制,可用來查找與指定字符串或規(guī)則相匹配的報文。
tcpdump 提供兩種主要的捕獲模式:雜湊和非雜湊。在雜湊模式下,捕獲每個在網(wǎng)絡(luò)上傳遞的報文,不管該報文是否發(fā)送到執(zhí)行tcpdump 的系統(tǒng)。舉例來說,該模式就是RMON探測器在監(jiān)測網(wǎng)絡(luò)通信時使用的模式。網(wǎng)絡(luò)探測器(probe)在網(wǎng)絡(luò)上偵聽通信并收集協(xié)議信息和統(tǒng)計數(shù)據(jù)。因為局域網(wǎng)(LAN)協(xié)議(如Ethernet)是基于廣播的,每個被傳送的幀可被連接到LAN上的任何網(wǎng)絡(luò)接口所獲得。任何設(shè)備可讀取每個傳送的幀,只要該設(shè)備選擇這么做并配置成該方式就可以讀取。當一個設(shè)備或接口從網(wǎng)絡(luò)讀取每個幀,就說明它處于雜湊模式了。實際中,接口必須為雜湊操作進行配置,并且僅僅用于需要網(wǎng)絡(luò)診斷的特殊場合。由于這個緣故,僅有root可以在一個接口上啟用雜湊模式。這是非root用戶不允許調(diào)用tcpdump 的主要原因。tcpdump工具提供了許多命令行選項來選擇捕獲模式、控制輸出、指定過濾規(guī)則以及指定其他操作特性。這些選項根據(jù)它們的功能被分組并且包括以下種類:操作模式、顯示選項、報文過濾選項。
操作模式選項用于控- w 保存原始報文到文件中。
舉例說明:制tcpdump 如何捕獲和如何顯示網(wǎng)絡(luò)通信的參數(shù)。 各選項的意義如下:
- c 捕獲指定數(shù)量的報文;
- F 使用文件作為過濾表達式的源;
- i 使用可選網(wǎng)絡(luò)接口捕獲報文;
- p 禁止在雜湊模式下捕獲;
- r 讀取捕獲文件而非網(wǎng)絡(luò)接口;
1.pdump arp將捕獲并顯示所有地址解析協(xié)議(ARP)報文。捕獲包括請求和應(yīng)答。
2.pdump host red and tcp將捕獲并顯示來自(發(fā)往)red 主機的所有傳輸控制協(xié)議報文。
3.pdump hos red1 and port 23將捕獲并顯示發(fā)往red1或從red1發(fā)出的所有使用23 端口的報文。用來檢查網(wǎng)絡(luò)上從其他系統(tǒng)到該系統(tǒng)的Telnet報文。端口23是對所有傳入的報文來說是Telnet服務(wù)端口。
#p#嗅探器的危害
嗅探器可以幫助網(wǎng)絡(luò)管理員查找網(wǎng)絡(luò)漏洞和檢測網(wǎng)絡(luò)性能。嗅探器是一把雙刃劍,它也有很大的危害性。
嗅探器可能造成的危害有:
1.嗅探器能夠捕獲口令;
2.夠捕獲專用的或者機密的信息;
3.以用來危害網(wǎng)絡(luò)鄰居的安全,或者用來獲取更高級別的訪問權(quán)限;
4.析網(wǎng)絡(luò)結(jié)構(gòu),進行網(wǎng)絡(luò)滲透。
嗅探器的攻擊非常普遍,尤其在Internet上。一個放置好的嗅探器可以捕獲成千上萬個口令。1994年一個最大的嗅探器攻擊被發(fā)現(xiàn)。這次攻擊被人們普遍認為是記載中最為惡劣的一次,許多可以FTP、Telnet或遠程登陸的主機系統(tǒng)都受到了危害。在這件事故(攻擊者處于Rahul.net)中,嗅探器只運行了18個小時。在這段時間里,有幾百臺主機被泄密。受攻擊者包括268個站點,如MIT、美國海軍和空軍、Sun微系統(tǒng)公司、IBM、NASA、 CERFNet和加拿大、以色列、荷蘭、比利時的一些大學的機器。
嗅探器可以捕獲網(wǎng)絡(luò)上所有的報文,但實際上,一個攻擊者必須要對報文進行選擇。嗅探器攻擊并不像聽起來那么容易,它需要攻擊者對網(wǎng)絡(luò)知識有一定的了解。簡單地設(shè)置一個嗅探器,并將其放到隨便什么地方,將不會起到什么作用。因為即使一個只有5個工作站的網(wǎng)絡(luò),在一小時之內(nèi)也會傳輸好幾千個報文。這樣在很短的時間里,嗅探器中用來存儲捕獲報文的文件就會充斥整個硬盤(如果記錄下每一個報文的話)。
為了巧妙地解決這個問題,攻擊者只嗅探每個報文的前200到300個字節(jié)。用戶名和口令都包含在這一部分中,這是所有攻擊者真正關(guān)心的部分。當然,如果擁有足夠的空間進行存儲,擁有足夠的能力進行處理的話,也可以嗅探給定接口上的所有報文,那將會發(fā)現(xiàn)另一些非??膳碌臇|西。
【編輯推薦】