ほとんどの人は、ファイルを開く前に実行する基本的なチェックをすでに知っています。これはPDFにも当てはまります。送信元が正当なものであることを確認し、予期しない添付ファイルを開いたりダウンロードしたりする前に注意を払い、二重拡張子(.pdf.exeなど)のPDFは避けましょう。これらは、簡単なフィッシング攻撃の被害に遭いにくくするための優れた習慣です。

しかし、PDF攻撃は進化しており、必ずしも予測可能な経路を辿るわけではありません。これらの文書は構造化されたコンテナであり、隠しオブジェクト、デジタル署名、暗号化メタデータを保持できるだけでなく、アクションを実行することもできます。これらの文書を受動的な文書として扱うことは、内容を理解せずに信頼することを意味します。これは危険な場合があります。最新のPDFリーダーはある程度のリスクを回避できるかもしれませんが、万能ではありません。PDFファイルを開く前に、潜在的な脅威を特定するための徹底的なチェックを行う必要があります。
クイックリンク
PDF を開く前に実行可能かどうかを確認します。
アクティブオブジェクト、自動化された手順、および埋め込みペイロード

PDFファイルは、辞書、表、配列、参照などのオブジェクトをリンクすることで作成されるオブジェクトベースのフォーマットです。これらのドキュメントは、スクリプトや埋め込みファイルに対応しています。特定のアクションの開始点として使用したり、それらのアクションを自動的にトリガーしたりできます。PDFファイルの真の危険性は、ドキュメントの内容ではなく、その機能にあります。
PDFファイルを受け取ったら、まず実行可能な要素が含まれているかどうかを確認してください。Pythonとコマンドラインツールをインストールした後、以下のコマンドを実行するのが最適です。 PDFiD Python ベース:
python pdfid.py C:UsersYouDownloadssuspicious.pdf
テスト結果に基づいて、次のオブジェクトのいずれかにゼロ以外の値がある場合、何らかのリスクがある可能性があります。
- /JS または /JavaScript
- /オープンアクション
- /打ち上げ
- /AA(追加アクション)
- /埋め込みファイル
以下の表は、オブジェクトが何を指すのかを示しています。
| 物体 | アッミータフ |
|---|---|
| /JS または /JavaScript | カモフラージュや搾取の準備に使用 |
| /オープンアクション | ドキュメントを開いたときにコードを自動的に実行できます。 |
| /打ち上げ | 外部アプリケーションを実装できる |
| /埋め込みファイル | 二次ペイロードを含むことができる |
| /AA(追加アクション) | OpenActionに非常に似ている |
ほとんどの正当なファイルはこれらのオブジェクトを必要としません。例えば、請求書には`/Launch`は役に立ちません。静的なレポートには埋め込みファイルは必要ありません。前述のオブジェクトが多数含まれているからといって、必ずしもマルウェアであるとは限りません。しかし、これらのオブジェクトはPDFファイルをドキュメントからインタラクティブなコンテナへと変換します。ツールを使用することをお勧めします。 pdf-parser.py 結果が前述の主要オブジェクトのいずれかに対してゼロ以外の値を返すかどうかを判断するには、さらなる調査が必要です。
ただし、基本的な目安としては、少しでも疑問がある場合は、隔離された環境または仮想マシンでPDFファイルを開くことをお勧めします。また、スクリプトは必ずしも明白とは限らず、スクリプトが存在しないからといって、悪意のあるオブジェクトがPDFリーダーの脆弱性を悪用できないというわけではありません。目に見えるスクリプトが存在しないにもかかわらず、パーサーの脆弱性が原因でCVEが発生した事例がいくつかあります。JavaScriptは実行機能の要素の1つに過ぎません。もう一つの重要な要素は、構造の複雑さと実行の可能性です。ペイロードを誤って実行、取得、または保存する可能性のあるファイルは、決して開かないでください。
ドキュメントを信頼する前に、その暗号化の整合性を確認してください。
デジタル署名、証明書チェーン、署名後の変更

PDFファイルにロゴや可視署名があるだけでは、その整合性は保証されません。整合性はデジタル署名が存在する場合にのみ検証されます。暗号署名は公開鍵基盤(PKI)に依存しており、PDFファイルについて、ファイルが改ざんされていないこと(整合性)、署名者(真正性)、および発行元(否認防止性)の3つの点を確認できます。
PDFファイルが権限を主張している場合は、先ほど確認したのと同じPDFiDチェックを実行し、/AcroFormの値を確認します。値が0より大きい場合は、署名フォームフィールドが存在することを示します。その後、ファイルを単独で開くことができます。 Adobe Readerまたはその他の高度なPDFツール 署名パネルで次の点を確認してください。
- 署名は有効ですか?
- 信頼できるルート機関にまで遡れますか?
- 証明書の有効期限が切れているか、無効になっていますか?
- 文書は署名後に変更されましたか?
- 信頼できるタイムスタンプはありますか?
このチェックは、文書に署名が表示されていても、実際には暗号化された署名が付いていない可能性があるため、必要です。また、PDFファイルは署名後に修正が加えられる可能性があるため、増分更新には特に注意が必要です。署名後に読者が編集箇所を指摘した場合は、注意が必要です。以下の表は、署名の整合性チェックの例を示しています。
| 署名ステータス | 意味 |
|---|---|
| 良いし信頼できる | 安全性は確保されており、サイトの正体は確認済みです |
| 有効だが、自己中心的だ。 | 安全は保たれているが、身元は不明 |
| 破損または改造された | 安全が危険にさらされている |
| 署名なし | 暗号化の保証はありません。 |
正当なPDFファイルの中には署名されていないものが数多くありますが、これは全く正常なことです。しかし、銀行の通知、法的書類、企業の契約書など、ファイルが権限を主張する瞬間に署名がないことは懸念材料となります。権限を主張するファイルは、それを数学的に証明できる必要があります。
ファイルと対話する前に、ファイルのソースと構造の一貫性を確認してください。
メタデータの整合、配信チェーンの検証、構造上の異常
送信元が検証できない未署名のPDFファイルは、実行可能でなくても危険です。身を守るためには、ファイルの配信経路を確認する必要があります。SPF(Sender Policy Framework)、DKIM(Domain Keyed Mailing)、DMARC(Domain-Based Message Authentication, Reporting, and Compliance)の3つの値を確認する必要があります。これらのメール認証プロトコルは、メールが実際に送信元ドメインから送信されたものであるかどうかを検証します。これらの経路を確認するには、以下の手順に従ってください。
- PDF が添付されたメールを開きます。
- メールの右上にある3つの点をクリックし、 オリジナルを見る.
- 値を確認する SPF و dkim 拡張子 و DMARC値が パスソースは検証済みです。
メールの詳細を確認し、表示されている名前と実際の送信元ドメインを比較することもできます。しかし、さらに重要なのは、ファイルがリンク経由でダウンロードされた場合は、リダイレクト文字列を確認することです。これを行うには、リンクをコピーして、次のようなツールに貼り付けます。 URLスキャン 元のリンクを含む、ファイルが辿ったすべてのステップを確認するには、以下のコマンドを実行します。リンクがクリーンかどうかは、 VirusTotalのURLチェッカー次に、実際のファイルを確認します。インストールできます。 ExifTool 以下のコマンドを実行して、作成者、作成者、プロデューサー、作成日、変更日などのファイルの値を見つけます。
exiftool 疑わしい.pdf
これらの値を取得したら、PDFに記載されている内容と比較します。例えば、PDFは多国籍銀行からの2026年度の請求書であるはずなのに、製品情報にはLibreOfficeの古いコンシューマーバージョンと記載されている場合、何か問題があることを示しています。最後に、以下のコマンドを実行します。 qpdf これは構造の一貫性のためです。
qpdf --疑わしい.pdf をチェック
複数の日付の増加、オブジェクトの過度の流れ、奇妙な圧力層、相互参照の異常は、内部で何か有害なことが起こっていることの兆候である可能性があります。
PDF ファイルを受動的なドキュメントではなく、実行可能なコンテナとして扱います。
PDFファイルは印刷すると普通の紙のページのように見えますが、実際にはパッケージ化された容器のようなものです。これは、アクションを実行するための効果的な手段となる可能性があります。安全のために、ファイルの背後にあるメカニズムを調べる必要があります。
セキュリティ アプリを使用することは、オンラインで安全を保つ 1 つの方法です。ただし、PDF ファイルを開く前に一時停止して検査することは、アプリケーションが失敗したときに保護される習慣です。










