このZIPファイルは安全に開けますか?展開する前にチェック
ZIPファイルは、展開する前に中身を確認しましょう。目次には、すべてのファイルの名前、サイズ、圧縮によってどれだけ小さくなったかが表示されます。ZIPが問題を起こそうとしているとき、そこには五つの兆候が現れます。展開すると容量が急に膨らむ、フォルダの外へ抜け出そうとする名前、本当の種類を隠す二つ目の拡張子、暗号化されたエントリ、そして実際の種類が名前と合わないファイルです。まず ZIPの中身を確認する で、想定どおりのものだけを展開してください。
ZIP ビューアーこのZIPの中身は何?無料で使うZIPの目次に表示される内容
ZIPは、各ファイルをエントリとして保存します。アーカイブの末尾には「セントラルディレクトリ」と呼ばれる一覧があり、エントリごとに一件の記録が入っています。各記録には、エントリの名前とパス、圧縮前と圧縮後のサイズ、圧縮方式、CRC-32(内容から計算された短い数値で、破損の検出に使われます)、そして暗号化されているかどうかが含まれています。
展開ツールはまずこの一覧を読みます。ZIPビューアー も一覧だけを読むので、何も展開せずに中身を確認できます。アーカイブ内のものが実行されることもありません。
ZIP爆弾:小さいのに展開すると巨大になるファイル
圧縮は、繰り返されるデータを短い符号に置き換えることで行われます。そのため、繰り返しが多いほど結果は小さくなります。圧縮率は、展開後のサイズを圧縮後のサイズで割った値です。同じデータが長く続くものは、非常によく圧縮されます。一般的なZIPの方式では、同じバイトが長く続く部分を約1000分の1まで縮められることがあります。
ZIP爆弾はこの性質を悪用します。小さなアーカイブで、展開すると数ギガバイトになるものです。サイズを増やすために、アーカイブの中にさらにアーカイブを入れることもあります。展開するとディスクがいっぱいになり、パソコンが固まることもあります。
普通のファイルを見れば、一般的な圧縮率の目安がわかります。テキストやコードはよく縮みます。写真や動画、そして.docx、.xlsx、.jpgのようにすでに圧縮されているファイルは、ほとんど縮みません。ただのドキュメントのはずなのに圧縮率が数百倍になっているなら、警戒が必要です。
フォルダの外へ抜け出す名前
エントリの名前にはフォルダを含めることができます。../../Startup/update.batのような名前は、展開ツールに二階層上がり、スタートアップフォルダへ書き込むよう指示します。そこに置かれたプログラムは、ログインするたびに実行されてしまいます。これは「パストラバーサル」や「zip slip」と呼ばれます。注意深い展開ツールは../の部分を取り除きます。しかし、古いツールや自作のスクリプトはそうしないことがあります。
/etc/...やC:\...のように、スラッシュで始まる名前も同じ問題です。ディスク上の決まった場所に書き込もうとします。ビューアーは名前を保存されているとおりに表示するので、何かが書き込まれる前に確認できます。
二重拡張子と隠れた種類
ファイル名の最後の拡張子は、そのファイルの種類をシステムに伝えます。invoice.pdf.exeは.exeで終わっているので、プログラムです。先頭はPDFのように見える名前でもです。Windowsは既知のファイル形式の拡張子を初期設定で隠すため、名前は「invoice.pdf」と表示されることがあります。
先頭のバイトから本当の種類を確認する
どのファイル形式も、先頭に数バイトの「シグネチャ」を持っています。拡張子は単なるラベルにすぎず、誰でも変更できます。ファイルの実際の形式を確認する は、その先頭バイトを読み取り、名前と比べます。
| 種類 | 先頭のバイト(16進数) |
|---|---|
| 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フォルダに保存します。ファイルの横には._で始まる名前のファイルができ、Finderの表示設定を保持する.DS_Storeファイルも作られます。 - Windows は、サムネイルのキャッシュである
Thumbs.dbと、フォルダの表示設定を保持するdesktop.iniを追加します。
どちらも害はありませんが、アーカイブを散らかし、受け取る人を混乱させます。
送る前にアーカイブを整理する
ZIPを整理する は、MacとWindowsのファイルを取り除いた新しいアーカイブを作ります。元のファイルはそのまま残ります。安全な手順は次のとおりです。
- ZIPビューアー でアーカイブを開き、すべての名前を読みます。
- 名前や種類がおかしいファイルは、ファイル形式チェッカー で確認します。
- アーカイブを整理したら、整理後のコピーを開いて、送りたい内容が揃っているか確かめます。
- 整理後のコピーを送ります。
特殊なケース
- アーカイブの中のアーカイブ。 ビューアーに表示されるのは外側の一覧です。内側のアーカイブは別に開いて、同じように確認してください。
- 破損したアーカイブ。 セントラルディレクトリは末尾にあるため、末尾が壊れていると、ZIPがまったく開けなくなることがあります。これは破損の問題であり、安全だという証拠ではありません。破損がないか確認する。
- 自己展開型ファイル。 プログラムが付いているアーカイブは、多くの場合.exeという名前で、それ自体がプログラムです。送り主を信頼できない限り実行しないでください。
- 一覧が正常に見えても安全とは限りません。 整った一覧は、名前とサイズが正常に見えることを示すだけです。各ファイルが無害だと証明するものではありません。信頼できないアーカイブ内のプログラムは、確認したあとでも実行しないでください。
英語原文をもとに、AIの支援を受けて翻訳しています。
コメント
まだコメントはありません。最初のコメントを書いてみましょう。


