這個 ZIP 檔案能安心開啟嗎?解壓縮前先檢查
解壓縮前先檢查 ZIP。它的內容清單會列出每個檔案的名稱、大小,以及壓縮後縮小了多少。ZIP 若想搞破壞,通常會在這裡露出五個跡象:解壓後大小暴增、名稱會跳出所在資料夾、第二個副檔名掩蓋了真正的類型、有加密的項目,以及真實類型與檔名不符的檔案。請先查看 ZIP 內容,只解壓你預期中的檔案。
ZIP 檔案檢視器這個 ZIP 裡面有什麼?免費使用ZIP 內容清單顯示什麼
ZIP 會把每個檔案存成一個項目。在壓縮檔的結尾,它保存一份名為中央目錄的清單,每個項目對應一筆紀錄。每筆紀錄包含項目的名稱與路徑、壓縮前後的大小、壓縮方法、一組名為 CRC-32 的校驗碼(根據內容計算出的短數字,用來偵測損毀),以及該項目是否加密。
解壓縮工具會先讀取這份清單。ZIP 檢視器只讀取清單,所以不必解壓就能看到內容,壓縮檔裡的任何東西也都不會執行。
Zip 炸彈:檔案很小,解壓後卻極大
壓縮的原理是用短代碼取代重複的資料,重複越多,結果就越小。壓縮比是解壓後大小除以壓縮後大小。大段重複的資料壓縮效果極佳,常見的 ZIP 方法可以把一長串相同位元組縮小約一千倍。
Zip 炸彈正是利用這一點。它是一個很小的壓縮檔,解壓後會變成好幾 GB,有時還會把壓縮檔層層巢套,讓體積倍增。解壓這種檔案會塞滿磁碟,甚至讓電腦當機。
一般檔案可以讓你掌握正常的壓縮比。文字和程式碼會大幅縮小;照片、影片,以及 .docx、.xlsx、.jpg 等本身已經壓縮過的檔案,幾乎縮不了多少。如果一份本該是普通文件的檔案,壓縮比卻高達數百,就是警訊。
跳出資料夾的名稱
每個項目的名稱都可能包含資料夾。像 ../../Startup/update.bat 這樣的名稱,會指示解壓程式往上跳兩層,寫入開機啟動資料夾,之後每次登入電腦,那個程式都會執行。這種手法稱為路徑穿越,也叫「zip slip」。謹慎的解壓程式會移除 ../ 的部分,但較舊的工具或自製的腳本未必會這麼做。
名稱以斜線開頭的,例如 /etc/... 或 C:\...,也是同樣的問題,它想寫入磁碟上的固定位置。檢視器會照原樣顯示儲存的名稱,所以在任何東西被寫入之前,你就能先讀取。
雙重副檔名與隱藏的類型
檔案名稱的最後一個副檔名,會告訴系統它是哪種檔案。invoice.pdf.exe 結尾是 .exe,所以它是程式,即使前面的名稱看起來像 PDF。Windows 預設會隱藏已知檔案類型的副檔名,因此畫面上可能只顯示「invoice.pdf」。
從開頭幾個位元組檢查真實類型
每種檔案類型都以幾個特徵位元組開頭。副檔名只是一個標籤,任何人都能更改。檢查檔案的真實類型會讀取這些開頭位元組,並與檔名比對。
| 類型 | 開頭位元組(十六進位) |
|---|---|
| PDF 文件 | 25 50 44 46(文字為 %PDF) |
| PNG 圖片 | 89 50 4E 47 |
| JPEG 圖片 | FF D8 FF |
| ZIP,以及 Word 或 Excel 檔(內部是 ZIP) | 50 4B 03 04(文字為 PK) |
| Windows 程式 | 4D 5A(文字為 MZ) |
類型不符並不代表檔案有害,但它表示檔案不是檔名所宣稱的那樣,這已足以讓你停下來,查明它從哪裡來。
加密項目
有密碼保護的項目會隱藏內容。檢視器仍能顯示名稱和大小,但在這裡無法檢查裡面的東西,掃描工具也同樣無法讀取。這就是攻擊者用加密壓縮檔來躲過過濾的原因。銀行對帳單和報稅表也常被刻意加密。如果寄件者是你認識的人,請透過其他管道索取密碼,並且只在確定寄件人之後才開啟壓縮檔。
Mac 與 Windows 的垃圾檔
有兩個系統會加入你沒有建立的檔案:
- macOS 會在隱藏的
__MACOSX資料夾裡,為每個檔案存放額外資料,並在檔案旁建立以._開頭的檔案,另外還會寫入.DS_Store檔,用來保存 Finder 的檢視設定。 - Windows 會加入
Thumbs.db(縮圖快取)和desktop.ini(資料夾顯示設定)。
這些檔案無害,但會讓壓縮檔變得雜亂,也會讓收件的人感到困惑。
寄送前先清理壓縮檔
清理 ZIP會產生一個不含 Mac 與 Windows 垃圾檔的新壓縮檔,原始檔案維持不變。建議的步驟如下:
特殊情況
- 壓縮檔中的壓縮檔。 檢視器只會顯示外層的清單。請另外開啟內層的壓縮檔,並以同樣的方式檢查。
- 損毀的壓縮檔。 中央目錄位於結尾,因此結尾損壞可能使 ZIP 根本無法開啟。這是損毀問題,並不代表壓縮檔是安全的。請檢查是否損毀。
- 自我解壓檔。 附帶程式的壓縮檔,通常命名為 .exe,本身就是程式。除非你信任來源,否則不要執行。
- 清單乾淨不代表保證安全。 整齊的清單只表示名稱與大小看起來正常,並不能證明每個檔案都無害。即使檢查過,也不要執行來自不可信任來源之壓縮檔中的程式。
借助 AI 協助,由英文原文翻譯而成。
留言
還沒有留言,搶先留言吧。


