最普遍的安全威脅來自內部,同時這些威脅通常都是致命的,其破壞性也遠大于外部威脅。其中網絡嗅探對于安全防護一般的網絡來說,操作簡單同時威脅巨大,很多黑客也使用嗅探器進行網絡入侵的滲透。 一 嗅探器攻擊原理 嗅探器(sniffer) 是利用計算機的網絡接口截獲目的地為其他計算機的數據報文的一種技術。它工作在網絡的底層,把網絡傳輸的全部數據記錄下來. 嗅探器可以幫助網絡管理員查找網絡漏洞和檢測網絡性能。嗅探器可以分析網絡的流量,以便找出所關心的網絡中潛在的問題。 不同傳輸介質的網絡的可監聽性是不同的。一般來說,以太網被監聽的可能性比較高,因為以太網是一個廣播型的網絡;FDDI Token被監聽的可能性也比較高,盡管它并不是一個廣播型網絡,但帶有令牌的那些數據包在傳輸過程中,平均要經過網絡上一半的計算機;微波和無線網被監聽的可能性同樣比較高,因為無線電本身是一個廣播型的傳輸媒介,彌散在空中的無線電信號可以被很輕易的截獲。一般情況下,大多數的嗅探器至少能夠分析下面的協議: 標準以太網 TCP/IP IPX DECNET FDDI Token 微波和無線網。 實際應用中的嗅探器分軟、硬兩種。軟件嗅探器便宜易于使用,缺點是往往無法抓取網絡上所有的傳輸數據(比如碎片),也就可能無法全面了解網絡的故障和運行情況;硬件嗅探器的通常稱為協議分析儀,它的優點恰恰是軟件嗅探器所欠缺的,但是價格昂貴。目前主要使用的嗅探器是軟件的。 嗅探器捕獲真實的網絡報文。嗅探器通過將其置身于網絡接口來達到這個目的--例如將以太網卡設置成雜收模式。數據在網絡上是以幀(Frame)的單位傳輸的。幀通過特定的稱為網絡驅動程序的軟件進行成型,然后通過網卡發送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的以太網卡捕獲到這些幀,并告訴操作系統幀的到達,然后對其進行存儲。就是在這個傳輸和接收的過程中,每一個在LAN上的工作站都有其硬件地址。這些地址唯一地表示著網絡上的機器。當用戶發送一個報文時,這些報文就會發送到LAN上所有可用的機器。在一般情況下,網絡接口處于雜收模式,那么它就可以捕獲網絡上所有的報文和幀,如果一個工作站被配置成這樣的方式,它(包括其軟件)就是一個嗅探器。這也是嗅探器會造成安全方面的問題的原因。通常使用嗅探器的入侵者,都必須擁有基點用來放置嗅探器。對于外部入侵者來說,能通過入侵外網服務器、往內部工作站發送木馬等獲得需要,然后放置其嗅探器,而內部破壞者就能夠直接獲得嗅探器的放置點,比如使用附加的物理設備作為嗅探器(例如,他們可以將嗅探器接在網絡的某個點上,而這個點通常用肉眼不容易發現。除非人為地對網絡中的每一段網線進行檢測,沒有其他容易方法能夠識別出這種連接(當然,網絡拓撲映射工具能夠檢測到額外的IP地址)。 嗅探器可能造成的危害: 嗅探器能夠捕獲口令; 能夠捕獲專用的或者機密的信息; 可以用來危害網絡鄰居的安全,或者用來獲取更高級別的訪問權限; 二 嗅探器攻擊實例 Linux、Unix環境下的嗅探器有:Tcpdump、Nmap、Linuxsniffer、hunt、sniffit 等。Linsniffer是一個簡單實用的嗅探器。它主要的功能特點是用來捕捉用戶名和密碼,它在也這方面非常出色。注:編譯該軟件需要所在的Linux系統上必須的網絡包含文件(tvp.h、ip.h、inet.hif_t、her.h)。 雖然這個工具易于使用,但是Linsniffer需要完整的IP頭文件,包括常常存儲在/usr/include/net和 /usr/include/netinet的頭文件,在編譯前確保PATH變量包含/usr/include。 獲得這個軟件后,進入src目錄,使用下面的命令來編譯Linsniffer: $ cc linsniffer.c -o linsniffer 要運行Linsniffer,使用下面的命令:$ linsniffer 啟動以后linsniffer將創建一個空文件:tcp.log來存儲嗅探結果。 舉例說明,在一臺測試的Linux服務器中創建一個名為“goodcjh”的用戶,密碼為“fad”。然后在主機CJH上使用該用戶來登錄這臺Linux服務器,并進行一些常見的用戶操作。下面是進行的一次ftp過程: CJH$ ftp www.red.net
CJH => www.red.net [21]
SYST
嗅探器可以幫助網絡管理員查找網絡漏洞和檢測網絡性能。嗅探器是一把雙刃劍,它也有很大的危害性。嗅探器的攻擊非常普遍。一個位置好的嗅探器可以捕獲成千上萬個口令。1994年一個最大的嗅探器攻擊被發現. 這次攻擊被認為是危害最大的一次,許多可以FTP,Telnet或遠程登陸的主機系統都受到了危害。在這件事故(攻擊者處于Rahul.net)中,嗅探器只運行18小時。在這段時間里,有幾百臺主機被泄密。“受攻擊者包括268個站點,包括MIT、美國海軍和空軍、Sun、IBM、NASA、和加拿大、比利時大學一些主機……” 三 嗅探器的安全防范 1、檢測嗅探器。 檢測嗅探器可以采用檢測混雜模式網卡的工具。由于嗅探器需要將網絡中入侵的網卡設置為混雜模式才能工作,能夠檢測混雜模式網卡的AntiSniff是一個工具。軟件可以在http://www.l0pht.com/antisniff/下載,另外還有詳細的使用說明。 證明你的網絡有嗅探器有兩條經驗: 網絡通訊丟包率非常高: 通過一些網管軟件,可以看到信息包傳送情況,最簡單是ping命令。它會告訴你掉了百分之多少的包。如果你的網絡結構正常,而又有20%-30%數據包丟失以致數據包無法順暢的流到目的地。就有可能有人在監聽,這是由于嗅探器攔截數據包導致的。 網絡帶寬出現反常:通過某些帶寬控制器,可以實時看到目前網絡帶寬的分布情況,如果某臺機器長時間的占用了較大的帶寬,這臺機器就有可能在監聽。應該也可以察覺出網絡通訊速度的變化。 對于SunOS、和其它BSD Unix系統可以使用lsof(該命令顯示打開的文件)來檢測嗅探器的存在。lsof的最初的設計目地并非為了防止嗅探器入侵,但因為在嗅探器入侵的系統中,嗅探器會打開其輸出文件,并不斷傳送信息給該文件,這樣該文件的內容就會越來越大。如果利用lsof發現有文件的內容不斷的增大,我們就懷疑系統被嗅探。因為大多數嗅探器都會把截獲的"TCP/IP"數據寫入自己的輸出文件中。這里可以用:ifconfig le0檢查端口.然后用: #/usr/sbin/lsof >test #vi test 或 grep [打開的端口號] 檢測文件大小的變化。 注意如果你確信有人接了嗅探器到自己的網絡上,可以去找一些進行驗證的工具。這種工具稱為時域反射計量器(Time Domaio Reflectometer,TDR)。TDR對電磁波的傳播和變化進行測量。將一個TDR連接到網絡上,能夠檢測到未授權的獲取網絡數據的設備。不過很多中小公司沒有這種價格昂貴的工具。 2、將數據隱藏,使嗅探器無法發現。 嗅探器非常難以被發現, 因為它們是被動的程序一個老練的攻擊者可以輕易通過破壞日志文件來掩蓋信息。它們并不會給別人留下進行核查的尾巴.。完全主動的解決方案很難找到,我們可以采用一些被動的防御措施: 安全的拓撲結構; 會話加密; 用靜態的ARP或者IP-MAC對應表代替動態的。 安全的拓撲結構: 嗅探器只能在當前網絡段上進行數據捕獲。這就意味著,將網絡分段工作進行得越細,嗅探器能夠收集的信息就越少。但是,除非你的公司是一個ISP,或者資源相對不受限制,否則這樣的解決方案需要很大的代價。網絡分段需要昂貴的硬件設備。有三種網絡設備是嗅探器不可能跨過的:交換機、路由器、網橋。我們可以通過靈活的運用這些設備來進行網絡分段。大多數早期建立的內部網絡都使用HUB集線器來連接多臺工作站,這就為網絡中數據的泛播(數據向所有工作站流通),讓嗅探器能順利地工作提供了便利。普通的嗅探器程序只是簡單地進行數據的捕獲,因此需要杜絕網絡數據的泛播。 隨著交換機的價格下降,網絡改造變得可行且很必要了。不使用HUB而用交換機來連接網絡,就能有效地避免數據進行泛播,也就是避免讓一個工作站接收任何非與之相關的數據。 對網絡進行分段,比如在交換機上設置VLAN,使得網絡隔離不必要的數據傳送。一般可以采用20個工作站為一組,這是一個比較合理的數字。然后,每個月人為地對每段進行檢測(也可以每個月采用MD5隨機地對某個段進行檢測)。網絡分段只適應于中小的網絡。如果有一個500個工作站的網絡,分布在50個以上的部門中,那么完全的分段的成本上是很高的。
會話加密: 會話加密提供了另外一種解決方案。不用特別地擔心數據被嗅探,而是要想辦法使得嗅探器不認識嗅探到的數據。這種方法的優點是明顯的:即使攻擊者嗅探到了數據,這些數據對他也是沒有用的。S/key和其它一次性口令技術一樣,使竊聽帳號信息失去意義。S/key的原理是遠程主機已得到一個口令(這個口令不會在不安全的ftp://thumper.bellcore.com/pub/nmh/skey。它的缺點是所有帳號信息都存放在一臺主機中,如果該主機被入侵,則會危及整個網絡安全。另外配置它也不是一件簡單的事情。Kerberos包括流加密rlogind和流加密telnetd等,它可以防止入侵者捕獲用戶在登錄完成后所進行的操作。 在加密時有兩個主要的問題:一個是技術問題,一個是人為問題。 技術是指加密能力是否高。例如,64位的加密就可能不夠,而且并不是所有的應用程序都集成了加密支持。而且,跨平臺的加密方案還比較少見,一般只在一些特殊的應用之中才有。人為問題是指,有些用戶可能不喜歡加密,他們覺得這太麻煩。用戶可能開始會使用加密,但他們很少能夠堅持下。總之我們必須尋找一種友好的媒介-使用支持強大這樣的應用程序,還要具有一定的用戶友好性。使用secure shell、secure copy或者IPV6協議都可以使得信息安全的傳輸。傳統的網絡服務程序,SMTP、HTTP、FTP、POP3和Telnet等在本質上都是不安全的,因為它們在網絡上用明文傳送口令和數據,嗅探器非常容易就可以截獲這些口令和數據.SSH的英文全稱是Secure Shell。通過使用SSH,你可以把所有傳輸的網絡登錄到遠程主機并執行命令。SSH的加密隧道保護的只是中間傳輸的安全性,使得任何通常的嗅探工具軟件無法獲取發送的內容。它提供了很強的安全驗證可以在不安全的網絡中進行安全的通信.所以它是防范嗅探器的一種方法。 用靜態的ARP或者IP-MAC對應表代替動態的ARP或者IP-MAC對應表。 該措施主要是進行滲透嗅探的防范,采用諸如ARP欺騙手段能夠讓入侵者在交換網絡中順利完成嗅探。網絡管理員需要對各種欺騙手段進行深入了解,比如嗅探中通常使用的ARP欺騙,主要是通過欺騙進行ARP動態緩存表的修改。在重要的主機或者工作站上設置靜態的ARP對應表,比如win2K系統使用arp命令設置,在交換機上設置靜態的IP-MAC對應表等,防止利用欺騙手段進行嗅探的手法。 除了以上三點另外還要重視重點區域的安全防范 。這里說的重點區域,主要是針對嗅探器的放置位置而言。入侵者要讓嗅探器發揮較大功效,通常會把嗅探器放置在數據交匯集中區域,比如網關、交換機、路由器等附近,以便能夠捕獲更多的數據。因此,對于這些區域就應該加強防范,防止在這些區域存在嗅探器。 四 防范嗅探器應用案例 1、Linux下SSH安裝 在www.ssh.com,下載最新版本軟件包SSH2,最好下載源程序軟件包自己進行編譯。 # tar -zxvf ssh2-2.4.0.tar.gz
2、配置 SSH的配置文件在/etc/ssh2下,其中包括sshd2的主機公鑰和私鑰:hostkey和hostkey.pub。這兩個文件通常是在安裝SSH時自動生成的。你可以通過下面的命令重新來生成它們:(而ssh2_config 文件一般情形下無需修改) # rm /etc/ssh2/hostkey*
在UNIX/Linux環境下,服務器程序放置在/usr/local/sbin目錄下,啟動方法如下: # sshd # ps x 如果不希望每次重啟動系統,都要手工運行啟動,在rc.local中加入一行/usr/local/sbin/sshd。
安裝好ssh之后,我們可以很方便地在遠程服務器上利用ssh獲得一個shell。例如,假設我執行: # ssh cjh@red.forge.net 首先看到系統提示輸入密碼,輸入后我就在遠程機器上獲得了一個shell。從這里開始,ssh的會話過程和telnet會話相似。但SSH能夠確信所有在我和服務器之間傳輸的數據都已經經過加密。如果你很熟悉rsh和它的選項,那么你很快就可以開始使用ssh。ssh被設計成和rsh具有相同的運作方式。一般情況下,能夠用rsh作為傳輸端口的程序都允許用ssh來替代(例如rsync)。安全復制命令scp的用法也很簡單,它的語法和cp的語法很相似。例如,要把my.php文件復制到cjh.org服務器,則我們使用如下命令: # scp my.php cjh@cjh.org:/usr/local/apache/htdocs/ 此時,我們將看到密碼輸入提示(正如ssh)。接下來,本地機器當前目錄下的my.php文件被復制到cjh.org的/usr/local/apache/htdocs/,使用的登錄名字是cjh。從使用上看,與Telnet沒有什么不同之處。而且有了SSH客戶端軟件,如果你要上傳文件,不必向以前一樣再開一個FTP窗口,再次認證,然后上傳文件。使用SSH客戶端自帶的scp工具,就可以直接將文件上傳到遠端服務器上。 scp命令是SSH中最方便有用的命令,如果告訴你在兩臺服務器之間直接傳送文件,僅用scp-個命令就完全解決.你可以在一臺服務器上以root身份運行: #scp servername:/home/ftp/pub/file1./ 這樣就把另一臺服務器上的文件/home/ftp/pub/file1直接傳到本機器的當前目錄下。 以上我們講的是技術方面,對于網絡的安全,管理顯得格外重要。除網絡管理員外其他人員禁止在網絡中使用任何嗅探工具包括一些企業高級管理人員,是完全有必要的。這能從制度上明確限制一些工作站主動使用嗅探器的情況。 對于網絡管理員來說更重要的是要建立安全意識,了解你的用戶(系統管理員越熟悉自己的用戶和用戶的工作習慣,就越能快速發現不尋常的事件,而不尋常的事件往往意味著系統安全問題。)、定期檢查你網絡中的重點設備如服務器,交換機,路由器。最好配備一些專業工具比如前邊介紹的TDR。網絡管理員還要給用戶提供安全服務。對用戶要定期發送安全郵件,發送郵件是讓用戶具有安全意識。管理意識是提高安全性的另-個重要因素。如果用戶的管理部門對安全要求不強烈,只靠系統管理員也不行。最好讓管理部門建立一套每個人都必須遵守的安全標準,如果系統管理員在此基礎再建立自己的安全規則,就強化了安全。管理有助于加強用戶意識,讓用戶明確,信息是有價值的資產。系統管理員應當使安全保護方法對用戶盡可能地簡單,提供一些提高安全的工具。網絡管理員要建立合理的用戶痛苦量(痛苦量是指安全限制引起的抵制的函數),不能僅僅從技術上考慮問題,還要站在用戶的觀點上考慮。例如,我們能夠想每次Macintosh用戶登錄時都使用S/Key嗎?用戶知道的關于安全的知識越多,網絡安全就更有保障。 五 總結 嗅探器技術被廣泛應用于網絡維護和管理方面,它工作的時候就像一部被動聲納,默默的接收看來自網絡的各種信息,通過對這些數據的分析,網絡管理員可以深入了解網絡當前的運行狀況,以便找出網絡中的漏洞。在網絡安全日益被注意的今天.我們不但要正確使用嗅探器.還要合理防范嗅探器的危害.嗅探器能夠造成很大的安全危害,主要是因為它們不容易被發現。對于一個安全性要求很嚴格的企業,在使用技術防范的同時安全管理的制度建設也是非常重要的。 嗅探器技術并非尖端科技,只能說是安全領域的基礎課題。對嗅探器技術的研究并不要求太多底層的知識,它并不神秘。實際上我們的一些網管軟件,和一些網絡測試儀都使用了嗅探器技術。只是許多計算機軟件供應商對其一直諱莫如深。回避這個基本事實是不明智的。了解掌握它才是關鍵。這也筆者的寫作動機。 參考資料 The Sniffer FAQ Christopher Klaus. http:/www.netsys.com/firewalls/firewalls-9502/0320.html Privacy and Security on nternet: http:/www.med-edu.com/internet-security.html |
防范網絡嗅探理論介紹及實踐應用
- 發布于:2021-06-06
- 共 263 人圍觀
標簽: