What is PyFlag?

PyFlag原是由澳洲國防部設計,之後被以GPL License(Free Software Foundation, 2007)模式釋出為自由軟體。原始設計是做為以資料庫與分析工具所架構的數位鑑識工具,後來又再加上了先進的網路鑑識的能力。它具有以下的特性:
  1. PyFlag是一種圖形界面的鑑識軟體,它可以以分析比對大容量的檔案、和log檔。
  2. PyFlag有強大的功能,包括載入許多不同類型的log檔案、執行磁碟與映象檔的鑑識分析。Pyflag也能藉由tcpdump快速有效率地進行網路流量分析。
  3. 因為PyFlag是在web之上使用的軟體,它能夠部署於Server中並由多位user同時共用。資料是載入到case中以便與資訊隔離開來。
  4. PyFlag基於GPL授權,可供任何人使用、修改與改良。
Feature List

  1. Network Forensics -PyFlag能分析TCPDump的網路記錄格式,支援不同類型的通訊協定。
  2. Log Analysis - PyFlag擁有強大的log分析能力。支援許多log格式及提供查詢log檔案的強大系統。
  3. Disk Forensics - PyFlag具備強力的分析鑑識硬碟images能力,支援多數檔案系統。也擁有Carve (比對檔案中,出現某一特徵的程序)的能力。
  4. Memory Forensic - PyFlag利用Volatility Framework可支援記憶體鑑識的功能。
The general PyFlag architecture:

PyFlag的主要元件如下:


1.IO Sources:
為了提供壓縮,或在原始image中儲存案件有關的meta-data,通常image除了dump(有時稱為dd格式)外還會以其他格式儲存。鑑識的資料通常來自不同的格式。透過IO Source Drivers,PyFlag可支援多種不同的image格式。IO子系統使用不同的driver,將資料以統一格式呈現,提供了一個標準的介面將image呈現給PyFlag。

在我們使用PyFlag分析image前,我們必須定義一個IO Source。一個IOSource僅僅是收集資訊以獲取原始image的數據資料。
例如,為了讀取一組Encase類型檔案,我們需知道使用Encase的Driver。透過讀取partition table來瞭解檔案系統是從那裡開始。這組必要的資訊稱為一個「IO Source」,而我們也可以自行將其命名。

一些常用IO Source drivers使用包括EWF(Expert Witness Forensic file format, Kloet,2007)這種支援業界目擊證據文件格式,以及標準IO Source也增加了可以直接取用dd program的原始image檔的能力。這提取可以把容量非常大的PCAP檔案以EWF格式儲存,以利壓縮、hash認證和檔案metadata等功能的使用。

2. The Virtual File System:

檔案系統是數位鑑識的核心,因此Virtual File System(VFS)是PyFlag的核心。PyFlag使用源自Unix的觀念是,“所有的東西都是檔案”。VFS是一個抽象的檔案系統。主要功能是向用戶提供信息。在VFS中的檔案不一定存在於image中,但所呈現信息已經由VFS推導出來。VFS本身只是儲存inode和檔案名稱的關係。

VFS基本上是一個樹狀結構,把PyFlag所有的物件在裡頭呈現。VFS是模仿真正的檔案系統,物件被稱為inode。VFS inode是個字串,它可以描述出這個物件如何獲得,物件相關的路徑、名稱等。這種途徑把inode在VFS下安排成一個目錄結構。內部的物件以inode的ID呈現,這種用法常見於一般工具中。PyFlag採用的新技術是可以把取自Data的來龍去脈以inode string來呈現。這種模式讓使用者可以很方便地檢視每個推論來自何處。

Virtual File System(VFS)提供了三個主要功能:

1. 開啓檔案
2. 在VFS中建立新檔案
3. 在VFS瀏覽檔案結構(檔案名稱和目錄)。

The File System Loader:

新建一個case後,PyFlag VFS是空的。我們必需先塞入原始資料,這便是由File System Loader的工作。

透過IO Source把imgaes載入後。File System Loader會檢查檔案系統的位置,並發掘所有在其中的檔案。負責把調查的檔案系統中所找到的檔案列表填入VFS的inode中。File System Loader是一個特殊的模組,它可以從一個實際的檔案系統(如NTFS或ext2)來處理和填入VFS inode。也能建立虛擬inodes來呈現抽象物件。

File System Loader有很多種,大致上可以分為幾種類型:

1. sleuthkit的文件系統驅動程序:
   這類drivers使用Brian Carrier's Sleuthkit的程式讀取許多種類型的檔案系統,如NTFS、FAT、ext2、ext3、ffs等。
2. Mounted File System Driver:
   這個drver只能與已掛載的IO Source一起運作,而它是在一個給定的目錄下,來記錄所發現的文件和目錄之用。
3. PCAP Filesystem:
   這個虛擬的檔案系統提供了存取PCAP檔案的能力,讓PyFlag能從事網路鑑識。

例如:PCAP FileSystem Loader在VFS中呈現代表的TCP Stream的節點,而記憶體鑑識Loader把porcess IDs和memory structure在VFS呈現。每種filesystem loader把它的inodes用一個特定的掛載點載入到VFS中。這讓許多不同的IO Source和filesystem可以同在VFS中呈現。藉由這些source產生VFS的inodes,應用程序整個一起呈現共同比對。

Scanners:

VFS是PyFlag的核心,它提供inode的存儲場所。而我們可以使用各種不同的VFS File Drivers開啓這些inode。File System可以從IO Source匯入到VFS。但File System Loader不是將檔案系統匯入VFS的唯一方式。我們也可以用掃描的方式來完成這個動作。

掃描是指使用一個或多個scanner來檢查某個目錄的過程。scanner是一種能夠細察與蒐集檔案資訊的模組元件。這過程中可能又某些檔案會被新增至VFS中(可再次掃描)。

掃描一組檔案可以從網頁瀏覽檔案系統的頁面開始,或直接從Load Data的選單進行。PyFlag有許多不同的Scanner。Scanner是一種小型的、專門為了從檔案系統中搜索檔案及資訊所建立的程式碼。例如,Zip file Scanner,旨在搜尋所有壓縮文件,並創建VFS的inode來表示zip檔的內容。

每次Scanner創建一個新的VFS檔案,便會使用一整套完整的Scanner去動作。假設pst檔案Scanner發現了一個pst檔案,從而建立新的VFS inode處理每一封電子郵件發現的附件。然後Zip Scanner,可以掃描發現其中一個附件是一個壓縮檔,從而建立了一套VFS的inode代表壓縮檔的內容。然後Virus Scanner發現一個可能這些文件中的某一個檔案是病毒。

The GUI and Table widget:

GUI提供了一個能檢視Scanner所掃瞄成果和使用VFS的界面。PyFlag最強大的工具集是table viewer。這個工具允許搜索極其複雜的數據。下圖顯示了一個典型的使用表的部件,儘管它是用在許多地方在PyFlag。

Scripting and automation:

PyFlag擁有強大的GUI快速導覽鑑識分析結果。但在任何硬體下,鑑識工作是一個緩慢的過程。硬碟image大小目前發展呈指數型增加,許多鑑識工作需要越來越多時間去進行。PyFlag會將鑑識分析結果cache起來,讓鑑識分析工作只需要進行一次。之後從cache中讀取操作起來會快上許多。

PyFlag的優點之一是使用者界面(UI)。換句話說,使用者如何與軟件交互,可以方便地改變而不用改變主要的程式碼。這讓使用者能擁有多種不同於GUI界面的選項。

命令行界面(CLI)一直是Unix的核心概念。雖然大多數新用戶擔心不懂得如何使用CLI,聲稱這是不直覺式、比GUI更難使用。然而CLI仍不被遺忘,原因就是CLI是更強大。在某些情況下,它允許批次或使用Script方式處理工作。PyFlag允許用戶互換任何模式來操作,因此,使用者如果不熟悉CLI,仍然可以使用GUI。

Network Frensics:

在數位鑑識調查中最有價值的證據之一是網絡所擷取的資訊。網絡流量可以呈現了豐富的價值和安全/管理的價值訊息。可惜一般被設計來分析網絡流量的工具(例如:Ethereal),只能調試網路問題或解剖通訊協議。但在鑑識調查中,高層次訊信息如FTP、Email…等社交網路才是重點。

模組目的是提供高層次的分析資料,同時提供足夠的信息來查明準確掌握每一塊數據的來源。例如,當瀏覽聊天訊息時,我們可以精確地看到每個聊天訊息的封包。

多層次地進行遞歸分析數據是PyFlag架構的優點之一,它可以發掘檔案被封裝在其他檔案中。這種方法是應用在分析網路通訊協議上最是理想,一般高層協議是架構在底層通訊協議之上。

PyFlag通常採取以下步驟來剖析網絡流量:

1.對PCAP檔案進行分析和並從中擷取封包。
2.將這些封包在不同低層通訊協議中分析,如以太網,IP,TCP或UDP。
3.使用TCP stream reassembler將有關TCP封包收集到stream中。Reassembler思索封包重送並按順序排序。
4.所產生的Stream用高層通訊協議的解析器(如:HTTP, IRC, MSN Chat)剖析。

The PCAP Filesystem

我們首先載入一個IO Source並將其命名,把PCAP檔案載入到PyFlag。然後選擇PCAPFS檔案系統。PCAP檔案系統,掃描IO Source並把封包建立索引。然後在VFS建立一個獨立檔案稱為rawdata。該檔案代表著原始封包資料。

The Network Scanners

初始的VFS只有一個檔案,network scanner負責填入VFS的新檔案。以下是一些重要的network scanner:

1.Steam Reassembler Scanner

Steam Reassembler Scanner將TCP封包分類到個別的stream。相對應的VFS Driver就可以使stream資料像個一般檔案使用。

2.HTTP Scanner

掃描儀的HTTP Scanner管理已重組的Stream並把曾造訪過的不同的網址分類。然後為HTTP下載的物件內容建立VFS的inode。

3.POP/SMTP Scanners

在POP scanner管理POP stream並辨識已傳送的email。依靠RFC2822 scanner的幫助,這個scanner可以為傳送的電子郵件中的附件建立VFS的stream。

4.MSN/IRC Scanners

記錄所有聊天信息,並讓它們顯示成便於檢索的格式。MSN檔案傳輸,也可以被進一步地掃描進VFS中。



轉自:http://teacher-rob.blogspot.com/2009/09/pyflag.html
參考:http://www.oschina.net/p/pyflag

0 意見: