使用備用資料流(NTFS)隱藏檔案
在Windows系統上,使用一種鮮有報導的稱為備用資料流(Alternate Data Streams, ADS)的功能,即可有效隱藏資料。雖然NTFS檔案 系統很早就具備這個功能,但它卻從未引起大量關注。
該功能最初是為了確保與Macintosh計算機的相容性而提供的,但它己被用於其他用途,例如本文所述的這種。ADs提供了在現有檔案中隱藏檔案資料的能力,而不會以任何方式改變檔案的外觀或行為。當使用ADS時,檔案可以遊開所有傳統檢測技術以及dir命令和Windows資源管理器的檢測。
實際上,ADS的應用是一個重大安全問題,因為它近乎是一種完美的資料隱藏機制。在使用ADS嵌入並隱藏一份資料後,它可以一直保持隱藏,等待著後續攻擊者決定執行它。
作為防禦者,這似乎是個壞訊息,因為以這種方式隱藏的檔案用大多數手段無法檢
測。但是使用一些先進的方法可以檢測到它們。可以使用的一些工具包括:
Sfind 一個用於查詢流檔案的取證工具
Streams 用於查詢ADS流檔案
StreamArmour 用於檢測ADS的開源軟體
關於ADS,本書要說明的一點是,僅僅因為使用ADS可以在系統中隱藏檔案,並不能說明這是一個 “邪惡”功能。相反,出於完全正當的原因也可以使用該功能(就像本書已經介紹的許多技術一樣)。對於Windows ADS而言,正和Office用該功能確定檔案從何處下載。是否曾有過疑問,為何 Word、Excel或其他應用程式,可以很容易地知道檔案是從網上而不是從本地驅動器上下載的?這是因為,描述檔案獲取來源的資訊是儲存在檔案附帶的ADS中。根據在ADS中記錄的內容,支援ADS的應用程式,例如Word,即可讀取資訊並採取適當的操作(對於Word或Excel,該檔案將以只讀方式開啟)。
ADS是一種稱為分叉檔案系統(forked filesystem)的概念的一種實現方式。該概念已出現了很長一段時間,並且存在於過去20年中釋出的許多檔案系統和作業系統中。使用這種檔案系統的目的是將資料和後設資料分開儲存。例如,一個檔案可以將其資料儲存在檔案系統中,也就是出現在目錄或資料夾列表中,代表檔案的內容。但與之連結的是後設資料,這些資料描述了該檔案的作者和來源以及其他一些資訊。
有關ADS和分叉檔案系統還有一點值得討論:Linux確實有一個被稱為擴充套件檔案屬性的功能,具有類似的目的。然而,儘管作業系統支援該功能,但就像Windows一樣,它不支援大型檔案——超過64KB的檔案無法使用該特性。最後,雖然Linux支援該功能,但它只在(Linux允許使用的檔案系統中的)支援該功能的數種檔案系統上這麼做。
建立備用資料流的方法
建立ADS的過程很簡單。只需要輸入:triforce.exe> smoke.doc:triforce.ese
執行此命令將讀取檔案
triforce.exe
,並將其隱藏在檔案smoke.doc
之中。
此時,該檔案就變成流式的。下一步則是刪除剛剛隱藏的原始檔案,也就是triforce.exe
。
作為攻擊者,要獲取該檔案非常簡單,只需要輸入:Start smoke.doc:triforce.exe
該命令具有開啟隱藏的檔案並執行它的功能。
本作品採用《CC 協議》,轉載必須註明作者和本文連結