Others

PDFに隠しトラッキングコードが含まれているかどうかわかりますか

PDF には、ページに表示されているもの以外の内容も含めることができます。埋め込み JavaScript、非表示のフォーム フィールド、リモート リソース呼び出し、カスタム メタデータはすべて、ドキュメントがいつ開かれるか、どこから開かれるか、リーダーがドキュメントを使用して何を行うかを追跡するために使用できます。 PDF セキュリティ の追跡メカニズムのスキャンは、特に未知のソースまたは信頼できないソースから PDF を受け取った場合に、ビジネス デュー デリジェンスの標準的な手順になりつつあります。問題は、トラッキング コードが存在するかどうかだけではなく、機密文書を開く前にそれを検出するツールがあるかどうかです。

PDF 内のトラッキング コードは、意図的なコードと無害なコードの 2 つのカテゴリに分類されます。意図的な追跡では、JavaScript を使用して文書が開かれたときにホームに電話をかけ、開封者の IP アドレス、おおよその位置、読書時間を追跡サーバーに送信します。安全な追跡には、PDF 請求書に埋め込まれた開封確認や、コンテンツを表示する前にライセンスを検証するデジタル著作権管理などの機能が含まれます。どちらのタイプも同様の技術メカニズムを使用しており、ここで説明する検出方法は両方に機能します。

WukongPDF の PDF プライバシー 機能には、処理前に文書をスキャンして埋め込みスクリプトを検出するセキュリティ検査ツールが含まれています。見覚えのない送信者からの PDF を開く前にクイック チェックを実行すると、ほとんどの PDF リーダーがデフォルトで提供していない追跡に対する保護層が追加されます。

Can You Tell If a PDF Contains Hidden Tracking Code

PDF トラッキング コードの技術的な仕組み

PDF ファイルは、PDF リーダーのスクリプト エンジン内で実行される JavaScript のサブセットである Acrobat JavaScript API を通じて JavaScript をサポートします。ドキュメント レベルのスクリプトは、PDF を開いたとき、ページを表示したとき、ドキュメントを印刷したとき、または閉じたときに自動的に実行されます。追跡スクリプトは通常、DocOpen イベントで実行され、HTTP リクエストを通じてリーダーの IP アドレスなど、JavaScript API を通じて利用可能な情報を収集し、app.launchURL または Net.HTTP.request メソッドを使用してそのデータをリモート サーバーに送信します。

PDF JavaScript が収集できるデータは、ブラウザー JavaScript に比べて限られています。ユーザーのコンピュータ上のファイルにアクセスしたり、ブラウザの Cookie を読み取ったり、開いている他のドキュメントを操作したりすることはできません。ただし、ネットワーク要求を行うことはできます。これは、追跡を可能にする中心的な機能です。 JavaScript を有効にして Adobe Acrobat Reader で PDF を開くと、追跡スクリプトがサイレントに実行されます。 Acrobat JavaScript API をサポートしていないブラウザベースのビューアで PDF を開いた場合、スクリプトは実行されず、追跡の試行はサイレントに失敗します。

WukongPDF

PDFを保護してみる

インストールは必要ありません。ブラウザで直接動作します。

始める →

方法 1: Adobe Acrobat Pro で JavaScript を確認する

トラッキング コードを確認する最も直接的な方法は、PDF の JavaScript コンテンツを検査することです。 Adobe Acrobat Pro で PDF を開き、「編集」メニューに移動して「環境設定」を選択し、「JavaScript」カテゴリをクリックします。 「Acrobat JavaScript を有効にする」のチェックを外して、リーダーでのすべての JavaScript の実行をグローバルに無効にします。これにより、ファイルを開いたときに追跡スクリプトが実行されなくなります。 JavaScript を無効にする前に、スクリプトを実行せずに、どのようなスクリプトが存在するかを検査できます。

スクリプトを検査するには、Acrobat Pro で PDF を開き、「ツール」、「JavaScript」の順に移動し、ドロップダウンから「JavaScript を文書化」を選択します。ダイアログには、すべてのドキュメントレベルのスクリプトが名前ごとにリストされます。スクリプト名を選択し、「編集」をクリックしてソース コードを表示します。外部ドメインを指す URL、app.launchURL 呼び出し、Net.HTTP.request 呼び出し、または this.docOpened または this.docClosed イベントへの参照など、追跡を示すパターンを探します。スクリプトがネットワーク要求を行い、ドキュメントがネットワーク アクセスを必要としないと予想しなかった場合は、それを潜在的なトラッキング コードとして扱います。

[ドキュメント JavaScript] ダイアログから個々のスクリプトを削除できます。スクリプト名を選択し、「削除」をクリックします。疑わしいスクリプトをすべて削除した後、元のファイルを証拠として保存するために、PDF を新しいファイル名で保存します。クリーンアップされた PDF には、表示されているすべてのコンテンツとフォーム機能が保持されますが、削除されたスクリプトは実行されなくなります。

方法 2: テキスト エディターを使用して PDF の内部を検査する

Acrobat Pro を必要としないより詳細な検査については、PDF の生の内部構造を調べてください。 PDF ファイルは、人間が判読できる文字列とキーワードがバイナリ データに組み込まれたテキスト ベースのオブジェクト形式を使用します。 VS Code、Notepad++、Sublime Text など、大きなファイルを処理できるテキスト エディターで PDF を開きます。文字列 /JavaScript または /JS を検索します。これらのキーワードは、JavaScript コード オブジェクトの始まりを示します。スクリプト ソース コードはキーワードの後にあり、通常は括弧の間、またはストリーム マーカーとエンドストリーム マーカーの間にあります。

また、/URI または /URL を検索して、PDF に埋め込まれたハードコーディングされた Web アドレスを見つけます。追跡スクリプトには追跡サーバーの URL が含まれる場合があります。 /AA または /OpenAction を検索します。これらは、ドキュメントを開いたときに実行するアクションを指定する PDF 辞書キーです。 JavaScript オブジェクトを指す /OpenAction エントリは、ドキュメントを開いたときに追跡コードをトリガーするための最も一般的なメカニズムです。

この手動検査アプローチでは、PDF 構文にある程度の精通が必要ですが、自動ツールでは見逃してしまう可能性のあるトラッキング コードをキャッチします。これは、セキュリティ研究者がフィッシング調査で不審な PDF 添付ファイルを分析するために使用するのと同じ手法です。追跡構造を見つけて、Acrobat Pro を使用せずにそれらを無力化したい場合は、--remove-restrictions フラグを付けた qpdf などのツールを使用して、生の PDF から関連オブジェクトを削除できます。ただし、この方法では、ファイル構造の破損を避けるための注意が必要です。

方法 3: 自動 PDF セキュリティ スキャナ

いくつかの無料および商用ツールは、PDF 内のトラッキングおよび悪意のあるコードの検出を自動化します。 DID-SIEM および同様のセキュリティ分析ツールは、PDF 構造を解析し、JavaScript、外部 URL、起動アクション、埋め込みファイルを含むオブジェクトにフラグを立てます。オンライン PDF セキュリティ チェッカーは、ファイルのアップロードを受け入れ、追跡可能なすべての要素をリストしたレポートを返します。外部ソースから受け取った PDF を定期的にチェックする場合、自動スキャナは手動検査よりも高速かつ完全です。

インジケータそれが意味する確認方法
ドキュメントJavaScriptPDF を開いたり、閉じたり、印刷したりするときに実行されるスクリプトAcrobat:編集、環境設定、JavaScript パネル
外部リソース呼び出しPDF を開くと、リモート URL から画像、フォント、またはデータがロードされます埋め込まれた URL についてドキュメントのプロパティを確認する
非表示のフォームフィールドトラッキング ID またはトークンが事前に入力される非表示フィールド「フォーム」パネルを開き、非表示フィールドのフラグを探します。
メタデータスクリプトカスタム追跡識別子を含む XMP メタデータドキュメントのプロパティと生の XMP データを表示する

トラッキング コードを見つけた場合の対処法

受信した PDF でトラッキング コードが見つかっても、送信者が悪意を持って行動しているとは限りません。通常、PDF 請求書には、請求書が開かれたときに送信者に通知する開封確認スクリプトが含まれています。マーケティング資料には、電子メール開封追跡ピクセルと同様のエンゲージメント追跡が含まれる場合があります。問題は、追跡が開示されているかどうか、また文書の種類に適切であるかどうかです。請求書の開封確認が期待されます。交渉中に送信された契約書に隠されたトラッカーには問題があります。

トラッキング コードを使用せずにドキュメントを他のユーザーと共有する必要がある場合は、方法 1 の説明に従って JavaScript を削除し、クリーン コピーを保存します。トラッキング コードが DRM またはライセンス強制システムの一部である場合、それを削除するとドキュメントの使用条件に違反する可能性があります。法的に機密性の高い文書の場合は、埋め込みコードを削除する前に、組織の法務チームまたはセキュリティ チームに相談してください。追跡メカニズムは、契約上保存する義務があるコンプライアンスまたは監査証跡システムの一部である可能性があります。

PDF トラッキング コードは、適切なツールを使用して検出できます。見慣れないソースからの PDF を開く前に簡単な JavaScript インスペクションを実行するのにかかる時間は 1 分もかからず、ほとんどの追跡メカニズムをキャッチします。このチェックを標準的な文書処理ルーチンの一部にすると、読書活動が知らず知らずのうちに外部の関係者と共有される可能性が減ります。機密文書を扱う組織の場合、PDF リーダーで JavaScript をデフォルトで無効にし、信頼できる文書に対してのみ有効にするというポリシーにより、文書ごとの継続的な検査作業を行わずに強力なベースライン防御が提供されます。

組織内のすべての PDF リーダーで JavaScript を無効にする

各 PDF のトラッキング コードを個別に検査することは、時折使用する場合には実用的ですが、毎日何百もの外部 PDF を受け取る組織には拡張できません。より体系的なアプローチは、すべてのデバイスにわたってリーダー レベルで JavaScript の実行を無効にすることです。 Adobe Acrobat Reader では、この設定は [編集]、[環境設定]、[JavaScript] にあり、[Acrobat JavaScript を有効にする] のチェックを外すとすべてのスクリプトの実行がブロックされます。この設定は、Windows のグループ ポリシー、Mac の構成プロファイル、および Acrobat Reader の企業展開の管理設定を通じて展開できます。

JavaScript をグローバルに無効にすると、機能に影響があります。一部の PDF フォームでは、フィールドの検証、自動計算、および動的なフォームの動作に JavaScript を使用します。 JavaScript が無効になっている場合、これらの機能は動作しなくなります。インタラクティブな PDF フォームに依存している組織の場合、すべての外部送信者からのすべての PDF で JavaScript が実行されるセキュリティ リスクを受け入れるのではなく、デフォルトで JavaScript を無効にし、信頼できる内部ソースからのフォームに対してのみ有効にするというアプローチを取る必要があります。コードを追跡するための PDF セキュリティ検査は、最新のドキュメント リテラシー スキルです。見慣れないソースから PDF を開いたり共有したりする前に、JavaScript、外部 URL、および非表示のフォーム フィールドを 1 分かけてチェックすることで、ほとんどの PDF ユーザーがその存在に気づいていない微妙な情報漏洩を防ぐことができます。 PDF 処理に対するセキュリティを意識したアプローチにより、特殊なソフトウェアや高度な技術知識を必要とせずに、個人のプライバシーと組織の情報セキュリティの両方が保護されます。

WukongPDF

PDFを保護してみる

インストールは必要ありません。ブラウザで直接動作します。

始める →