純文字TXT檔案真的安全嗎?

TXT檔案副檔名通常都會被認為是安全的檔案,而員工收到外來的電郵時,普遍覺得EXE檔案不案全,而DOCX和XLSX也可能含有惡意巨集,但TXT因為只可以含有純文字,所以一般都會被認為是無害的檔案,但事實真的如此簡單嗎?

漏洞在於處理TXT檔的程式

其實檔案格式本身並沒有問題,問題在於處理TXT檔案的程式。研究人員Paulos Yibelo指出一個奇怪的方法,透過純文字檔攻擊macOS電腦,其關鍵在於CVE-2019-8761安全漏洞。和很多保安方案一樣,macOS內建的保安系統Gatekeeper視純文字檔為完全可信,用戶可以下載編輯工具TextEdit而無需經過額外的檢查。

然而,TextEdit比Windows的Notepad來得複雜,功能更多,例如顯示粗字體、讓用戶轉換文字顏色等等,由於TXT格式原本並非設計來儲存風格資訊,TextEdit因為另加額外資訊令它能處理相關工作。例如,如果一個檔案第一行以<!DOCTYPE HTML><html><head></head><body>作開始,TextEdit便會開始處理HTML分頁,即使文件是.txt副檔名。

因此,把HTML編碼加入到以以上文字開頭的純文字檔內,便能迫使TextEdit處理編碼或至少其中的一部份。

可能通過純文字檔案攻擊

經過小心測試所有被攻擊者以此方法的潛在可能性,Yibelo找出有關的漏洞能達到:

  • DoS攻擊,Gatekeeper不會防止打開TXT副檔名的本機檔案,因此打開惡意純文字檔可以使電腦超載,例如使用HTML編碼存取/dev/zero檔案,無盡的空字符來源。
  • 辨別用戶的真IP地址,在純文字檔內的編碼可以呼叫AutoFS,一個掛載檔案系統的標準程式,可以提供外置硬盤的存取,即使它本身屬於無害,但自動掛載程序強迫系統發送TCP要求,即使用戶藏身在proxy server之後,惡意純文字檔的製作者可以找出文件打開的時間,並註冊真實IP地址。
  • 檔案盜竊,可以把整個檔案方入含有<iframedoc> 的純文字文件內,所以惡意純文字檔可以在受害者電腦上存取其他檔案,然後把它的內容傳送,用戶只需要打開該檔案。

CVE-2019-8761漏洞在2019年12月已經向Apple報告,詳情可以參考Yibelo的文章。

如何保持安全

CVE-2019-8761在2020年有補丁更新,但不能保證該軟件中不會含有TXT相關的臭蟲,可能也有其他人找出未被發現的方法,所以如果問純文字檔是否安全,答安是「是,暫時,但要提高警剔」,而培訓所有員工把所有檔案都視為潛在威脅也同樣重要,即使只是看起來無害的純文字檔。

資料來源:Kaspersky blog