ArrayKit

PDFの無害化

知らない送り主から届いたPDFが何を実行できるかを確かめ、取り除き、保存したコピーを読み直してきれいだと確かめます。

PDFの無害化

知らない送り主から届いたPDFが何を実行できるかを確かめ、取り除き、保存したコピーを読み直してきれいだと確かめます。

信用できない文書はこのタブの中で読まれ、取り除かれ、再確認されます。閲覧ソフトで開かれることも、どこかへ送られることもありません。スクリプトは文字として調べられるだけで、実行されることはありません。

その文書が自分について何を明かすかを見る

PDFの無害化 について

PDFはページであると同時に小さなプログラムでもあります。文書を開いた瞬間に走るスクリプト、マシン上で別のプログラムを起動する処理、記入したフォームを作者の選んだ宛先へ送るボタン、添付として埋め込まれた実行ファイルまるごと、そして独自のスクリプトを備えたXMLのフォーム層——どれも持てます。ここでは、処理が置かれうる場所をすべて訪ねます。開いたときの処理、文書・ページ・注釈・フォーム欄のきっかけ、しおり、文書全体のスクリプトの木。そして連鎖は最後まで追うので、無害な一歩目の後ろに起動処理が控えていても見逃しません。見つかったものは、どこにあるか、何を指しているか、クリックが必要かを示します。何を消すかを選べば、書き直したコピーがそれ自身のバイト列から読み戻され、もう一度検査されます。

機能

  • 高・中・低で格付けした10のカテゴリー。最初は高と中にチェックが入っています
  • 見つかったものはどれも、どこにあるか、何を狙っているか、クリックなしで走るかを表示します
  • 処理の連鎖を最後まで追うので、無害な一歩目の陰に隠れるものはありません
  • プログラムのような名前の埋め込みファイルは、普通の添付とは別に一覧にします
  • #xxのエスケープで偽装された名前も復号する、ファイルのバイト列に対するキーワード走査
  • きれいにしたコピーは読み込み直して再検査し、何も残っていないときだけ「きれい」と記します
  • 複数のPDFを同時に処理し、1つずつでもZIPでまとめてでもダウンロードできます
  • 計算をやめてしまうフォームなど、削除によって何が変わるかの警告

PDFの無害化 の使い方

  1. PDFを1つ以上置きます。届いたそれぞれが読み込まれ、検査されます
  2. 見つかったものを一つずつ確認し、別の見方が欲しければ生のキーワード件数も開いてください
  3. 残したいものはチェックを外します——ウェブのリンクとメタデータは最初から外れています
  4. 無害化し、再検査の結果を読んで、きれいになったコピーをダウンロードします

例

入力

invoice_urgent.pdf — unexpected, from a sender nobody recognises

出力

6 findings: 2 scripts that run on opening, 1 launch action, 1 attachment named invoice.pdf.exe, 1 web link, document information · after sanitizing, the re-scan is clean

どちらのスクリプトも、何もクリックしないまま文書を開いた瞬間に走っていました。

よくあるエラーとトラブルシューティング

  • 無害化したらフォームが合計を出さなくなりました。 — 合計はスクリプトが計算していて、そのスクリプトが消えました。どうしても計算が必要なら、JavaScriptのチェックを外してもう一度実行してください。ただしこれは、攻撃を運ぶのに最もよく使われるカテゴリーだと知っておいてください。
  • 暗号化されたPDFは検査されただけで、きれいにされませんでした。 — パスワードで保護されたファイルは、開かれるまで書き直せません。まず「PDFの暗号化を解除」でパスワードを外し、その結果をここに戻してください。
  • キーワードの表に、見つかったものの一覧には無い名前が出ています。 — 答えている問いが違います。キーワード走査は生のバイト列にある名前を数えるので、何も指していないオブジェクトの中のものまで含みます。見つかったものの一覧は、文書が実際に到達するものだけです。
  • フォームが「しばらくお待ちください…」のページだけになってしまいました。 — フォーム全体がXFAの層にあり、普通のページはその代替表示にすぎませんでした。記入する必要があるならXFAの層を残してください。ただしそこにもスクリプトが乗っているので、扱いには注意してください。

よくある質問

PDFのアクティブコンテンツとは何を指しますか。
何かを見せるのではなく、何かをするもの全部です。スクリプト、開く・閉じる・保存・印刷で発火するきっかけ、プログラムを起動したりフォームを送信したりする処理、別のファイルを開くリンク、埋め込まれたファイル、XFAのフォーム層、そしてリッチメディアや3Dのオブジェクトです。
PDFは本当に開いた瞬間に何かを実行できるのですか。
試みることはできます。開いたときの処理と、文書・ページのきっかけは、クリックなしで発火します。だからこそここでは別に数えています。閲覧ソフトが従うかどうかはその設定によりますが、いずれにせよ指示はファイルの中にあります。
JavaScriptを取り除くと文書のフォームは壊れますか。
壊れることがあります。合計の計算、日付や数値の書式、入力内容の検査はスクリプトが担っているので、それらが止まります。欄そのものと、すでに記入されている内容には触れません。この引き換えは、実行する前にはっきり示されます。
きれいにしたコピーが本当にきれいだと、どう分かりますか。
信用で済ませていないからです。書き直したバイト列を新しい文書としてもう一度読み込み、ゼロから検査します。二度目の検査で何も見つからなかったファイルだけが「きれい」と記されます。表示される数字は、その二度目の読み取りの結果です。
なぜ.exeという名前の添付は、ほかの添付と違う扱いなのですか。
開けばコードが走るからです。表計算ファイルや画像はそうなりません。実行される拡張子で終わるもの——.exe・.js・.bat・.ps1・.vbs、ほか数十種——は中ではなく高に格付けされ、独立して一覧に出ます。
無害化するとページの見た目は変わりますか。
変わりません。ページの内容には触れないので、文字・絵柄・レイアウトはそのまま通ります。消えるのは振る舞いです。することが無くなったマルチメディアの再生部分やリンクは落とされ、メタデータは指示したときだけ消えます。

関連ツール

セキュリティの他のツール

セキュリティのツールをすべて見る (27) · すべてのツール