https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/
https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/

觀點

APT攻擊:網路封包分析抽絲剝繭找出異常

2013 / 08 / 13
蔡一郎
APT攻擊:網路封包分析抽絲剝繭找出異常

網路封包並非全新的技術,對於網路管理人員而言或是資訊安全分析人員而言,是必備具重要的技術,以往大多應用在網路行為的分析或是網路環境的除錯上,在目前資訊安全事件頻傳的網路世界中,在資訊安全事件的調查過程,幾乎已成了必要的處理程序,針對目標主機進行網路封包的側錄,以取得與事件更多的資訊,而透過網路封包的分析,往往可以讓分析人員掌握更多的情資,因此面對當下熱門的APT攻擊威脅而言,其它所使用的攻擊手法或是隱藏在背後的通訊行為,甚至進行的通訊內容,都有機會可以利用網路封包的分析技術取得關鍵的資料。

想找出異常 先瞭解正常的通訊行為
網路封包就像電話的通聯紀錄一樣,可以知道通訊雙方的行為,包括連線所使用的通訊協定、通訊埠、通訊雙方的位址等資訊,這些都能夠做為網路行為的分析使用,也可以藉此掌握重要的通訊時間證據,因此分析網路封包就像扮演偵探一樣,必須將手邊所擁有的資料一一抽絲剝繭,而隱藏在通訊中的內容,透過分析人員的判讀就能夠一一現形了,目前針對APT的攻擊行為中,網路封包的分析是相當重要的,也是必要的處理程序,因為APT攻擊的獨特性,攻擊行為往往具有長時間以及針對性,因此對於網路行為的分析,如果能夠由遭到攻擊的目標,不論是個人、設備或是提供網路服務的主機,都能夠利用網路封包的取得,掌握攻擊者更多的情資,也可以做為防禦與預測後續攻擊行為的參考。

瞭解正常的通訊行為對於資訊安全的分析而言是相當重要的,分析人員至少必須知道許多常見的通訊協定所具備的行為特性,例如:預設使用的通訊埠或是基於UDP或TCP的協定等,目前網路上常見的通訊協定,以許多的常用的網路服務居多,例如:HTTP、HTTPS、POP3、SMTP、IMAP、FTP、SSH等,這些常見的通訊協定大多為應用層的通訊協定,在依據所使用的傳輸層協定,而展現出不同的網路通訊行為。
* 網路層
IP (IPv4、IPv6)、OSPF、IS-IS、BGP、IPsec、ARP、RARP、RIP、ICMP、ICMPv6等
* 傳輸層
TCP、UDP、DCCP、SCTP、RTP、RSVP、IGMP、PPTP等
* 應用層
DHCP、DNS、FTP、Gopher、HTTP、IMAP4、IRC、NNTP、XMPP、POP3、SIP、SMTP、SNMP、SSH、TELNET、RPC、RTCP、RTSP、TLS、SDP、SOAP、GTP、STUN、NTP等

3種網路封包工具介紹
所謂「工欲善其事必先利其器」,選擇適合的工具軟體是相當重要的,目前以普遍容易取得的網路封包分析工具,多以WireShark以及Netwitness Investigator等為主,如果想要透過一段時間的網路封包行為重現,藉此觀察通訊的行為特徵,則可以利用Rumint視覺化的工具軟體,將網路封包的通訊行為進行呈現。
工具1:WireShark
Wireshark算是經典的網路封包軟體(圖1),它的前身是Ethereal,後來Ethereal轉型為商業公司並且以此為註冊商標,而支持原始碼開放的開發團隊,為遵循自由軟體開放的精神,改以Wireshark繼續發行後續的版本,一樣採用GNU的開放授權。目前Wireshark可以使用在多種不同的系統平台,且提供圖形化的使用者界面,可以協助使用者進行網路封包的分析,能夠加上所需要的過濾規則,針對特定的目標、通訊行為進行分析;網路封包可以分成檔頭以及資料兩個主要的部份,其中在檔頭的部份,記載了與網路封包有關的資訊,以提供網路設定依據所提供的資訊,進行網路封包的傳送,而資料的部份主要用來儲存通訊時所需要傳統的資料,以提供應用程式進行資料的傳遞。

Wireshark的軟體介面常見的網路服務,例如:HTTP、DNS等,皆是在網路封包中常見的通訊協定,當使用者開啟某個網站時,我們就可以在網路封包中,看到先使用UDP通訊協定向DNS伺服器送出了網域名稱的解析查詢,其後再由發起連線的使用者,建立與伺服器之間的三向交握,以完成TCP連線的建立,最後再交由應用層的通訊協定HTTP接續後來的資料傳遞,諸如此類的通訊行為,透過網路封包的分析,就能夠讓我們能夠掌握其它的通訊行為。

Wireshark提供TCP Stream、UDP Stream以及SSL Stream的分析功能(圖2),對於常見的通訊協定,可以透過追蹤的機制,掌握整個連線行為中的詳細資訊,也可以藉此取得網路封包中所攜帶的資料,並重組成原本的檔案形式,對於網路封包或是使用者的行為分析而言,提供了相當實用的功能。
圖2 Wireshark的TCP Stream分析功能
不論針對已有的網路封包檔案,或是即時的針對目前正在側錄中的網路通訊進行分析,都能夠使用Wireshark所提供的強大過濾功能(圖3),能夠讓我們依據所指定的條件進行資料的分析,對於特定的目標或是通訊協定,甚至是網路封周檔頭中的特定欄位,都能夠利用過濾器進行篩選條件的設定,以協助分析人員可以精確的掌握網路封包的通訊內容,以及與事件調查有關的重要資料。

圖3 Wireshark過濾器

工具2:RSA Netwitness Investigator
RSA Netwitness Investigator提供另類的網路封包分析方式(圖4),以搜尋的觀念針對網路封包提供資料的查詢,提供數位鑑識過程中常用的資料鏈結概念,可以由目前已知的資料往前進行追蹤,而隨時可以因應資料追蹤上的需求,提供多個查詢介面可分別進行不同目標的查詢,當網路封包的資料匯入Investigator之後,所有的資料將會分別進行屬性與類型的分析,包括了服務的型式、主機的名稱、來源位址、目的地位址、內容的樣式、帳號密碼資料等,提供與Wirshark與眾不同的資料呈現方式,對於網路封包的事件調查而言,可以直覺地針對手邊的網路封包進行分析,以縮短分析網路封包所花費的的時間。

圖4 Investigator分析畫面

Investigator提供了時間軸的概念(圖5),許多的資料分析,都與時間的屬性有關,因此我們在分析相關的攻擊行為時,很容易瞭解攻擊手法的前後關係,例如:遠端的探測性掃瞄、系統或應用程式弱點的應用、到最後惡意程式碼的植入,甚至遭到資料竊取時,攻擊者所取得的資料等,這些資訊配合時間的概念,可以較容易的解釋在資安事件中的來龍去脈,以及掌握攻擊的意圖與所使用的手法。

圖5 Investigator的時間軸

工具3:Rumint
對於資訊安全事件的調查而言,視覺化的分析是目前的主流,如果已經掌握了一段時間的網路通訊,可以透過該段時間的網路封包紀錄進行分析,能夠快速的掌握該攻擊威脅的特性。

圖6 Rumint的軟體界面

Rumint的操作方式就像一般的播放軟體一樣(圖6),只不過一般的播放軟體大多用來播放媒體相關的檔案,而Rumint則是用來「播放」網路封包的檔案,其中包括七個主要的功能,包括了text rainfall、byte frequency、parallel plot、binary rainfall、scatter plot、combined以及packet detail view等,這些功能再配合指定的欄位,例如:IPv4的來源位址、目的地位址、來源的通訊埠、目的地的通訊埠、通訊協定等等,這些可能夠依據我們的需求進行指定,並且利用播放的方式,將一段期間的通訊行為以視覺化的方式呈現。

圖7 Rumint 網路封包的行為分析圖

在網路封包的過程中,經常會遇到一些不安全的通訊協定,何謂不安全的通訊協定呢?主要所使用的通訊協定,針對所傳送的內容是採用明碼的方式進行,因此在資安事件的分析過程,針對這些未進行加密或編碼的通訊行為,可以取得更詳盡的資料,以做為資安事件調查的佐證資料,不安全的通訊協定,包括了HTTP、POP3、SMTP、TELNET、SNMP等,許多的應用程式或是網路上的服務在設計當初,並未嚴謹的考量資料安全的問題,因此採用了這些不夠安全的通訊方式,也造成了重要資料外洩等問題,例如:使用者的帳號或密碼等,當攻擊者取得這些關鍵的資料後,就會假冒使用者的身份登入系統中,在許多APT攻擊的事件中,往往可以看到這些通訊協定的蹤跡。

網路封包記錄著完整的網路通訊行為,因此對於目前主要的APT攻擊,透過網路封包的分析,可以對於攻擊所採取的手法以及攻擊行為,進行詳細的分析,對於資訊安全事件的調查而言,可以掌握攻擊者的意圖以及在整體攻擊行動中,對於我們所造成的危害與影響,也可以定義出整個資訊安全事件的影響範圍,因此掌握網路封包的分析技術,對於資訊安全分析人員而言是相當重要的技能。目前APT的攻擊行為經常達數個月或長達半年以上,許多針對特定目標的攻擊,往往不容易在潛伏期就能夠發現其中的異常通訊,因此針對網路的通訊,建議能夠保持一段期間的網路行為紀錄,例如:netflow等,可以在資安事件的出現跡象,或是發現異常的通訊行為時,能夠搭配網路封包的側錄,進行長時間的行為調查,例如:利用攻擊來源的或是遭受攻擊的目標資訊,往前追溯一段期間的網路通訊行為,往往能夠發覺其中隱藏的異常行為或是呈現完整的攻擊軌跡。