觀點

常見網路監聽手法分析與防護策略

2005 / 11 / 04
蔡更達
常見網路監聽手法分析與防護策略

網路監聽
網路監聽(sniffing)並不全然是不好的、非法的、只有駭客才會進行的行為。「水可載舟,亦可覆舟」,電腦技術與工具其實是中性的,好壞皆取決於使用者之目的與用途。網路管理人員可透過監聽網路封包的方式判斷整個網路的狀況是否穩定,設備是否異常,是否有網蟲之類的攻擊在網路中流竄,配合入侵偵測系統可進一步判斷是否有人利用網路進行攻擊行為,單位人員使用網路的狀況也可留下紀錄以供日後審查與追蹤,判斷是否有人連線至與工作不相關的網站,違反公司的網路安全政策等。而對於一般個人使用者,若自己的密碼如Outlook Express、FTP等記錄於電腦中,但自己忘記了,也可利用此種方式找出密碼。但因為這些用途與特性,致使有心人士、攻擊者、駭客,也可運用此種思維進行網路監聽、獲取別人的網路狀況與機密資訊,再利用這些資訊進行攻擊。

特定環境與條件
若要進行有效的網路監聽,必須要有一些特定的環境與條件才能夠完成,可由巨觀與微觀的角度進行分析。巨觀而言,有一個可連線的網路及可供連線上網使用的網路設備電腦等,便可透過網路上方便取得的相關工具進行網路監聽的動作;而以更深入、微觀的角度來看,便要了解其網路的架構,如:區域網路、廣域網路、無線網路等,及網路的設備,如:hub、switch、router等,還有各種不同通訊協定運作的方式、電腦網路卡的硬體元件、工作模式、使用者所使用的軟體程式等方面,進而深入了解各個不同部份的運作。
就網路設備而言,OSI七層中不同層的設備扮演著不同的角色,提供網路連線不同的功能,一般第一層以repeater、hub為代表;第二層以bridge、switch為代表;第三層以router為代表。在網路剛興起時,區域網路的連線設備主要以hub為主,再透過電腦配合routing程式扮演路由器的角色串聯起整個網路,由於hub是第一層的設備,其運作方式為媒體共享式,即連結在同一台hub不同port底下由電腦傳送出來的網路封包,都會完整的廣播、傳送至其他所有實體port上,這會產生一些後果。第一個是因為廣播封包會造成封包彼此碰撞,進而會影響整體網路效能,所以同時上線的電腦愈多,連線速度就會愈慢。另外一個是,由於每個port都能接受到其他port傳送過來的連線封包,那就可利用監聽程式竊聽其他電腦的連線狀況,並從中擷取出機密資訊。由於網路快速發展,目前大多是以第二層的switch取代第一層的hub,switch可以判斷出封包要傳送的目的地,所以會提高連線效能,也較不易遭受網路監聽,但是因為其運作使用到ARP(Address Resolution Protocol)通訊協定,攻擊者可假造IP與網路卡號MAC address的對映關係,進而創造一個可進行監聽的環境,對特定主機進行監聽。所以使用switch取代hub,理論上會較為安全,但也無法保證完全不會遭受網路監聽。
再來要看的是網路卡的運作模式,因為我們一般電腦要連上網路,都要透過網路卡進行訊號處理,才能夠順利進行網路連線,網路卡的運作模式可分為以下四種:Unicast、Broadcast、Multicast、Promiscuous。在不同的連線狀況下,網路卡會依需求切換到不同的運作模式,一般電腦的網路卡只會去聽取和自己有關的網路連線封包,對於和自己無關的封包不會進而去看封包的內容,但如果強制將網路卡開啟為Promiscuous模式,則只要封包流經過網路卡,則網路卡便會接收並分析封包的內容再進而取得其封包中所包含、傳遞的資料。而一般要偵測網路中是否有人安裝監聽程式進行竊聽的動作,探測同一網路中電腦的網路卡運作模式便是一種很有效的方式。

監聽工具
由於目前軟硬體發展迅速,要使用一般電腦進行封包監聽動作其實相當容易,一般人上網搜尋便可輕易下載一大堆封包監聽的工具程式,特別是可以分析、過濾出網路連線中的帳號、密碼等資訊的小工具程式,而這種工具程式也可以被安裝在特定主機上,以從本機的連線中獲取該電腦使用者的機密資訊。只要是電腦的軟硬體相容就有可能會被安裝監聽程式,特別是在公用的電腦上,因為每個人都有權限去使用,可能更進一步的還有足夠的權限可以隨意的安裝軟體,在這種一般使用者不知道的狀況下,上網所需未加密的帳號、密碼便很容易的被監聽、竊取,而也因為網路的發達,很多人會從網路上自行下載各種看似有用或有趣的小軟體安裝在自己的電腦上,但是這些軟體有可能被植入木馬、後門程式,將監聽程式也放在裡面,一但使用者安裝後,表面上使用的很正常,但其實連監聽程式也安裝進自己的電腦,自己在電腦上所進行的一舉一動都被有心人士看的一清二楚,甚至連帳號、密碼、信用卡號碼都在被監聽後,主動由網路傳送出去,這也是一般使用者在上網下載、安裝軟體時需要特別注意的。
一般駭客所使用的監聽、竊聽工具可依作業系統平台不同而分為兩大類,一類是在UNIX-LIKE作業系統中所使用,常見的工具如:dsniff、sniffit、snoop、tcpdump、ethereal。另一類是在Windows作業系統中所使用,如:ethereal、Cain、winsniff、msn sniffer、Effetech http sniffer。
其使用方式還可分為指令列操作方式及視窗圖形化操作方式,而對於所監聽網路通訊,也可依網路的不同層及不同服務需求而有不同的工具可應用。如用於網路流量分析的監聽工具可能就需要對比較底層的網路封包通訊狀況做處理與分析,而針對比較上層的應用程式傳遞的明文資料就需要有專門對於特定的監聽程式以進行監聽的動作,如:telnet、ftp、smtp、http、msn等,通訊內容都未經加密,很容易以工具進行機密資料的監聽與竊取。

監聽偵測
對於如何偵測出本機或是區域網路中是否有人安裝監聽程式,可以透過一些方式及相對的程式幫助偵測,但理論上,要從網路上偵測封包監聽是不大可能的,因為封包監聽是可以完全被動的不傳送封包出去,在這種情況下,就需要透過不同的方式去進行偵測與判斷,才能正確的找出被安裝監聽程式的電腦主機,以保護本機及網路的安全。
一般偵測監聽的思考面如下:
網路卡在雜聽模式(promiscuous mode)下的行為
網路卡如果以此模式運作,由於流經此網路卡的所有封包都會進行處理,所以我們也可以使用程式送出特別的封包,以其回應之封包不同於一般網路卡正常模式的反應,加以判斷區域網路中的電腦是否運作在雜聽模式下,但此判斷結果並不是百分之百正確,有可能有誤判的狀況,有一些網路設備本身就是以此模式在運作,如入侵偵測系統,網路印表機等。
封包監聽程式本身的行為
某些監聽程式一但聽取到某些機密資訊,會用特別的封包格式將資料主動的回傳至攻擊者的電腦,可藉由偵測此特殊的封包格式加以判斷
監聽程式所安裝的系統主機的行為
因為被安裝監聽程式,所以其程式的運作需要額外的CPU與記憶體資源,假如是以一台主機監聽整個區域網路,其CPU與記憶體的負載會明顯的異於平時的狀況,即可由此加以判斷。
若運用以上思考方向,於被安裝監聽程式並有設定IP位址的主機,可進一步的分成以下幾種實際可行的偵測方式。
ARP偵測
藉由送出帶有特殊位址的ARP封包探測區域網路中之網路卡,如有啟動雜聽模式,則其回應的封包不同於一般網路卡其他模式的回應。
DNS偵測
有些監聽程式會進行IP<->DOMAIN NAME的解析,如網路中的某台主機送出大量名稱解析的要求,則也有可能被安裝監聽程式。
LATENCY偵測
由於網路卡啟動雜聽模式,會忙於處理各種經過的網路流量,如果利用程式送出大量封包進行測試,進行計算其封包的回應時間及其觀察主機的效能運作狀況,如果某主機網路的回應時間較久,系統負荷明顯的變重,則也有可能被安裝監聽程式。
常見可用來探測區域網路網路卡啟動雜聽模式程式如下:PromiScan、cain、SnoopNetCop、ettercap。
對於未設定IP,但有安裝監聽程式的主機,則無法使用以上的方式判斷,可以由以下的方式進行:
HOST STATUS
可以利用host IDS對本機的檔案進行定期的稽核檢查,如果有系統有新增異常的檔案或程式,則可以進而判斷是否為監聽程式。
NIC STATUS
可以利用系統本身的一些工具程式如UNIX-LIKE作業系統中常見的網路設定工具ifconfig判斷網路卡的運作模式,如其顯現的訊息有出現“PROMISC”等關鍵字,則其有可能被安裝監程式,Windows作業系統由於本身無類似的工具可用,可以使用外部工具程式PromiscDetect(http:// ntsecurity.nu/toolbox/promiscdetect/) 進行檢測,如其顯示“ Promiscuous (capture all packets on the network)”此訊息,則表示本機有可能被安裝監聽程式。
檢查實體線路:
也可以經由檢查網路卡及網路設備的顯示燈號做為判斷,如該主機並無人使用,表面上也無程式在運作,但燈號異常忙碌的在閃爍,則表示在進行大量的網路連線,則需檢查是何原因、是何程式所引起。

如何防止被監聽
使用SWITCH取代HUB
雖然使用SWITCH取代HUB並不是百分之百的安全及有效,但至少可以發揮一定的功效,可以阻擋一些只會利用簡單工具進行網路監聽,意圖竊取機密資訊的工具駭客。
通訊加密(ssh)
只要網路的通訊用加密工具將其連線的封包內容加以加密,縱使被監聽,其聽取到的資料也只是一堆亂碼,使駭客無法達到其竊取資訊的目的,這也是最有效的方式。
不隨意下載安裝來路不明的軟體
很多時候監聽程式是使用者自己因不小心下載安裝被駭客修改過的軟體,而被安裝了監聽程式,所以如果沒有必要,不隨意下載安裝來路不明的軟體,以減少被監聽的風險。
指定靜態ARP
攻擊者有可能偽造IP<->MAC ADDRESS的對應關係,進而在SWITCH的環境中創造出可進行監聽的網路環境,藉由在主機端設定靜態的ARP對應關係,則可以防止駭客進行後續的監聽攻擊。
監控ARP TABLE的改變
監控ARP TABLE的改變也可以在主機端(如WinARPWatch)或是gateway端(如arpwatch)安裝程式監測其ARP TABLE的改變狀況,如IP<->MAC ADDRESS有異常的改變,就有可能是有人想要進行偽造(spoofing)ARP封包,並進行網路監聽的攻擊。
網路封包監聽是一把雙面刃,網管人員可以用其解決問題,但是駭客也可以用它獲得帳號、密碼等機密資訊,利用所獲得的資訊光明正大的進入受害系統中為所欲為,而目前最常見的電腦權限管理、安全防護大多是以帳號、密碼此最原始的方式進行控管,一但帳號、密碼被非相關的人獲取,猶如門戶大開,讓駭客隨意的進出系統,所以帳號、密碼的保護是網路安全最基本也是最重要的一道防護關卡,平常須做好相對應的防護及訂定檢測計畫進行例行的檢測,以免因為網路封包監聽此種攻擊方式而造成系統被入侵導致有形或無形的損失與傷害。

一般駭客所使用的監聽、竊聽工具可依作業系統平台不同而分為兩大類:


系統平台L: Unix-Link
常見工具:Dsniff、sniffit、snoop、tcpdump、ethereal
系統平台L: Windows
常見工具:ethereal、Cain、winsniff、msn sniffer、Effetech http sniffer



情境:被安裝監聽程式並有設定IP位址的主機
實際可行偵測方式:ARP偵測、DNS偵測、LATENCY偵測

情境:被安裝監聽程式但未設定IP位址的主機
實際可行偵測方式:HOST STATUS、NIC STATUS、檢查實體線路



在一般監聽偵測下,實際可行偵測方式有:
情境:被安裝監聽程式並有設定IP位址的主機
實際可行偵測方式:ARP偵測、DNS偵測、LATENCY偵測

情境:被安裝監聽程式但未設定IP位址的主機
實際可行偵測方式:HOST STATUS、NIC STATUS、檢查實體線路