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