https://www.informationsecurity.com.tw/seminar/2021twcert/
https://www.informationsecurity.com.tw/seminar/2021twcert/

觀點

駭客入侵第五階段:網路封包擷取

2011 / 08 / 29
馮智偉
駭客入侵第五階段:網路封包擷取

        監聽(Sniffing),是指能夠用來擷取網路上傳輸封包資訊的一種程式或者設備。Sniffing簡單來說,就是基本「資料攔截」技術,它的目的是要擷取密碼(電子郵件、Web網頁、SMB、檔案傳輸、ftpSQLtelnet)、或是網路傳遞資料的內容,甚至是檔案本身。

         Sniffing,我們應該有正確的解讀。一般人認為Sniffing就是不好的、不法的行為,其實不然,電腦技術與工具本身是中立的,沒有善惡之分,之所以有好壞的差別皆取決於使用者所懷抱的意圖。

        舉例來說,網路管理人員想了解整個網路的狀況是否穩定、設備是否異常、是否有惡意程式之類的攻擊在網路中流竄等情況,那麼他便可以透過監聽網路封包的方式,再配合入侵偵測系統,就可以進一步判斷出是否有人利用網路進行惡意攻擊;又或者是當網路管理人員執行公司網路使用政策,對公司內部人員進行網路使用的控管時,也可以利用Sniffing達成目的。將單位人員使用網路的狀況留下記錄存檔,方便日後有需要時進行審查與追蹤,藉以判斷組織內部是否有人曾經連線至與工作不相關的網站,違反公司的網路安全政策等等。

        事實上,某教育單位資訊組便曾經利用Sniffing的方式,來掌握校園內是否有人員使用P2P連線等違反校園網路使用規定的狀況,一旦有此類情況發生,便會對使用者發出警告,強化對校園資訊安全的維護。

當然,駭客也會利用Sniffing的特性,對其他人暗中進行非法的網路監聽以獲取網路連線狀況與機密資訊,再利用這些資訊對特定目標進行攻擊,並從中獲得利益。因此,我們必須要知道有關Sniffing的一些重要資訊,以確保自身安全不被威脅。

        Sniffing的監聽類型有2種,第1種為被動式監聽,第2種為主動式監聽。何為被動式監聽?何謂主動式監聽?這跟我們進行Sniffing時,網路的環境條件有關係。怎麼說呢?就讓我們以網路設備為例子來說明吧!

        如大家所知,在OSI七層標準協定中,定義了網路設備依據協定層級的差異分別扮演不同的角色,像是OSI協定的第一層是以集線器(Hub)為代表;OSI協定的第二層以橋接器(Bridge)及交換器(Switch) 為代表;OSI協定的第三層以路由器(Router)為代表…,它們的目的都是在提供網路連線時所需要的不同功能。

 

被動與主動監聽之差異

在網路尚未普及的時代,區域網路的連線設備主要以Hub為主,由於Hub的設備特性,只要是連結在同一台Hub的所有設備,即使是由不同通訊埠(port) 底下的電腦傳送出來的網路封包,都會被完整的傳送至其他所有實體port上,並不會去檢查那是不是它原本要傳送封包的對象。換句話說,由於每個port都能接受到其他port傳送過來的所有連線封包,駭客因此可以利用監聽程式竊聽其他電腦的連線狀況,並從中擷取出機密資訊。這種監聽方式我們稱之為被動式監聽。

        那麼,假使Hub不可靠,我們換一個網路設備吧!最簡單的方式是以Switch取代Hub,因為Switch可以判斷出封包要傳送的目的地,不會將封包資料傳送給連接在Switch上的所有的設備,而是只會針對目的地設備傳送網路封包,因此比較不易遭受網路監聽。但不要忽略了重要的一點,由於Switch的運作乃是使用ARPAddress Resolution Protocol)通訊協定,這意味著駭客可以偽造IP與網路卡號MAC address 的對應關係(我們又稱作ARP Poisoning),藉由偽造的資料仿冒身分,製造出一個可以進行監聽的環境,並且是針對「特定的」主機進行監聽,這便是主動式監聽。

 

 Sniffing工具介紹

再者,我們應該要知道有哪些工具能夠用來進行Sniffing首先,駭客在進行Sniffing時所使用的工具可以依據作業系統平台的不同而分為兩大類,一類是在UNIX-LIKE作業系統中所使用,常見的工具如:dsniffsniffitsnooptcpdumpethereal;另一類則是在WINDOWS作業系統中所使用,如:etherealCainwinsniffmsn snifferEffetech http sniffer等等。

 此外,根據使用方式的差異還可分為指令列操作方式及視窗圖型化操作方式,而對於所監聽之網路通訊,依據網路的不同層級與不同的服務需求也會有不同的工具可與之應用。舉例來說,用於網路流量分析的監聽工具可能就需要對比較底層的網路封包通訊狀況做處理與分析,而針對比較上層的應用程式傳遞的明文資料就需要有專門對於特定的監聽程式以進行監聽的動作等等,一些如:telnetftpsmtphttpmsn等,其通訊內容都未經過加密,很容易以工具進行機密資料的監聽與竊取。

 那麼,身為使用者的我們,能夠偵測出本機或是區域網路中是否正有人安裝監聽程式嗎?有沒有甚麼辦法可以讓使用者可以透過一些方式及合適的程式幫助偵測到網路監聽行為呢?理論上,封包監聽如果是採用完全被動的被動式監聽,那要從網路上偵測是否有人進行封包監聽的行為幾乎是不大可能的事情。在這種情況下,就需要透過不同的方式去進行偵測與判斷,才能正確的找出被安裝監聽程式的電腦主機,以保護本機及網路的安全。

  

 6招防止竊聽之法

如何防止被監聽?我們可以利用下列的策略:

1.          使用SWITCH取代HUB從網路設備來看,最簡單的方式是使用SWITCH取代HUB,儘管這個方式並非百分之百的安全及有效,但至少可以發揮一定程度的功效。這個動作能夠阻擋一些只會利用簡單工具進行網路監聽,意圖竊取機密資訊的駭客。

 2.          通訊加密(SSH)使用者在進行網路通訊時能夠利用加密工具將其連線的封包內容先加密,縱使被監聽,其所聽取到的資訊也會是一堆亂碼的無意義組合,從而使得駭客無法達成竊取機密資訊的目的,這也是最有效的方式。

 3.          指定靜態ARP有鑑於駭客有可能偽造IP<->MAC ADDRESS的對應關係,進而在SWITCH的環境中創造出可進行監聽的網路環境,網路管理者需在主機端設定靜態的ARP 對應關係,便可以防止駭客進行修改。

 4.          監控ARP TABLE的改變:監控ARP TABLE的改變也可以在主機端或是gateway 端安裝程式監測其ARP TABLE的改變狀況,如IP<->MAC ADDRESS 有異常的改變,就有可能是有人想要進行偽造(spoofing)ARP封包,並進而進行網路監聽的攻擊。

 5.          不隨意下載安裝來路不明的軟體:很多時候監聽程式是使用者自己在無意中下載並安裝被駭客修改過的軟體,同時也一起安裝了監聽程式,所以若無必要,不要隨意下載及安裝來路不明的軟體與連線到不明網站登錄資料,以減少被監聽的風險。

 6.      偵測網路卡的運作模式:最後一種情形是關於網路卡的運作模式。網路卡的運作模式可分為4種:Unicast(單點廣播模式)、Broadcast(廣播模式)、Multicast(多點廣播模式)與Promiscuous(混雜模式),而網路卡會依照連線需求切換到不同的運作模式。在正常的狀況下,每台電腦的網路卡只會去聽取和自己有關的網路連線封包,對於和自己無關的封包就不會理會封包的內容而是直接將封包丟棄。但是被駭客安裝了監聽程式的電腦則會強制將網路卡一直開啟為Promiscuous 模式,目的在讓流經過該網路卡的所有封包,都會被網路卡接收並分析封包的內容再進而取得其中所包含、傳遞的資料。因此我們想知道是否有監聽行為發生時,也可以先測試網路中電腦網路卡的運作模式,來作為一個判斷的依據。

       

編註:駭客入侵前四階段文章刊登期數如下:

駭客入侵首部曲──足跡探測 第57

駭客入侵第二階段──掃描 第59

駭客入侵第三階段──列舉分析 第61

駭客入侵第四階段──系統入侵 第63

 

 

本文作者為美國EC-Council原廠認證講師(CEI)電腦公司資深技術顧問