Tips & Tricks

PDF から隠しスクリプトとオートメーションを削除する方法

PDF には実行可能コードを含めることができます。ドキュメントが開いたとき、ページがめくられたとき、フォーム フィールドにフォーカスがあったときに実行される JavaScript。ユーザーの介入なしでトリガーされる自動化されたアクション。外部アプリケーションを起動する隠しオブジェクト。ほとんどの PDF にはこれらは含まれていません。合計を自動計算するフォーム、ユーザー入力に基づいて移動するインタラクティブなドキュメント、スライドを自動的に進めるプレゼンテーションなど、通常は正当なものです。しかし、スクリプトや自動化には悪意があり、受信者が予期しないことをドキュメントに実行させようとする誰かによって隠蔽される場合もあります。

PDF から隠しスクリプトと自動化を削除することは、完全に開く前に、信頼できないソースまたは未知のソースからのドキュメント、および古いまたは安全性の低い PDF リーダーを使用している受信者と共有する準備をしているドキュメントに適用する必要があるセキュリティ予防策です。スクリプトがどこに隠れるかがわかれば、削除プロセスは簡単です。

SonicWall の 2025 年の脅威レポートによると、PDF ベースのマルウェア攻撃は 2023 年から 2025 年の間に 42% 増加し、最も一般的な攻撃ベクトルは埋め込み JavaScript でした (SonicWall、「サイバー脅威レポート」、2025 年)。ほとんどの攻撃は、埋め込みスクリプトを自動的に実行する古い PDF リーダーを使用するユーザーを標的としていました。この脅威は現実のものであり、軽減策は簡単です。スクリプトが実行される前に削除するだけです。

How to Remove Hidden Scripts and Automation From a PDF

PDF 内でスクリプトとオートメーションが隠れる場所

スクリプトは PDF 構造内の複数の場所に添付できます。それぞれの場所は個別の隠れ場所であり、個別にチェックして掃除する必要があります。以下の表は、一般的な場所と、それぞれの場所に通常どのようなタイプの自動化が表示されるかをカタログ化しています。

場所トリガーイベント典型的な正当な使用悪意のあるリスク
ドキュメントレベル文書を開く、文書を閉じる、文書の保存、文書の印刷ウェルカム メッセージの表示、開いたドキュメントの検証、ドキュメントの印刷時の追跡高: ドキュメントが開かれるとすぐに、ユーザーがコンテンツを表示する前にスクリプトが実行されます。
ページレベルページが開いている、ページが閉じている、ページが表示されている特定のページが表示されているときにアニメーションまたはトランジションをトリガーする中: ユーザーが特定のページに移動したときに実行されます。
フォームフィールドレベルフィールドフォーカス、フィールドブラー、フィールド変更、フィールド検証、フィールド計算合計の自動計算、入力フォーマットの検証、入力データの自動フォーマット中: 通常形式の対話中に実行されます。キーストロークをキャプチャしたり、入力されたデータを変更したりする可能性があります
リンクレベルリンクのクリック、ボタンの押下、マウスの入力、マウスの終了URL への移動、フォーム データの送信、コンテンツの表示または非表示低: トリガーするにはユーザーの操作が必要です。悪意のある URL に誘導される可能性があります
WukongPDF

PDFを保護してみる

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

始める →

処理前のスクリプトの検出

埋め込みスクリプトを表示できるリーダーで PDF を開きます。 Adobe Acrobat Pro には、ドキュメント内のすべてのスクリプトとその場所およびトリガー イベントを一覧表示する JavaScript エディターが含まれています。ほとんどのブラウザベースの PDF リーダーはスクリプトを実行しないため、表示中にデバイスが保護されますが、表示もされません。つまり、どのようなスクリプトが存在するかを監査することはできません。スクリプト監査ツールにアクセスできない場合は、信頼できないソースからの PDF にスクリプトが含まれている可能性があると想定してください。最も安全なアプローチは、各スクリプトが無害かどうかを判断するのではなく、すべてのスクリプトを積極的に削除することです。識別できないスクリプトは、悪意がある可能性があるものとして扱う必要があります。

不明なスクリプトに対する PDF セキュリティ の原則は、評価ではなく削除です。良性のスクリプトを削除するコスト (通常は一部の対話機能が失われます) は、悪意のあるスクリプトの実行を許可するコストよりもはるかに低くなります。

ブラウザベースのサニタイズによるスクリプトの削除

PDF を、フラット化、サニタイズ、またはセキュリティ クリーニングを提供するブラウザベースのツールにアップロードします。これらの操作により、スクリプト、フォーム フィールド ロジック、埋め込みアクション、リンクなどの対話型要素がすべて削除されます。出力は静的 PDF であり、同じビジュアルコンテンツが表示されますが、実行可能コードは含まれません。クリーンアップされたファイルをダウンロードし、スクリプトをサポートするリーダーで開いて検証し、スクリプトが残っていないことを確認します。 WukongPDF は、埋め込みスクリプトを実行せずに PDF を処理します。 Fix PDF プラットフォームは、処理中にインタラクティブな要素を取り除き、クリーンで静的な出力を生成します。

作成するドキュメントへのスクリプトの導入を防止する

オーサリング アプリケーションからドキュメントを PDF にエクスポートする場合は、インタラクティブな要素に関連するオプションのエクスポート設定を確認してください。 JavaScript、マクロ、埋め込みアクションは、受信者が期待する文書化された特定の目的を果たさない限り無効にします。合計を自動計算するフォームには、計算スクリプトのみを含める必要があります。プレゼンテーション PDF には、受信者が制御できない自動アクションを含めるべきではありません。配布する PDF のデフォルトは、実行可能コードのない静的コンテンツである必要があります。スクリプトと自動化はオプトアウトではなく、オプトインである必要があります。

スクリプトの健全性に対する PDF ツール のアプローチは、他のセキュリティ対策と同じです。デフォルトで最も安全な構成に設定し、必要で受信者が期待する場合にのみ対話機能を追加します。スクリプトなしで届く PDF は、悪意のあるコードを実行できない PDF です。

良性の自動化と悪意のあるコードの区別

PDF 内のほとんどのスクリプトは悪意のあるものではありません。明細項目から合計を自動計算するフォーム、特定のフィールドの入力形式を検証するドキュメント、またはユーザーの操作に基づいて移動するプレゼンテーションはすべて、正規の自動化を使用します。コードを監査するためのツールや専門知識がない場合、課題は、これらを悪意のあるスクリプトと区別することです。実用的なヒューリスティック: 検証可能な値を生成する計算や意図的なクリックに応答するナビゲーション アクションなど、スクリプトの動作が目に見えて予測可能な場合、それはおそらく無害です。スクリプトの目的がドキュメントの目に見える動作から明らかでない場合、ユーザーが制御していないイベントでトリガーされる場合、または外部リソースにアクセスしようとする場合は、削除する必要があります。疑わしい場合は、機能を削除し、セキュリティのコストとして機能の損失を受け入れてください。

既知のベンダーからの月次請求書や週次レポートなど、同じソースから定期的に受け取るドキュメントについては、段階的に信頼を確立します。スクリプトの削除を有効にして最初のドキュメントを処理します。欠落している機能がないか出力を確認します。ドキュメントがスクリプトなしで正しく動作する場合は、そのソースの後続のドキュメントからスクリプトを削除し続けます。合計を計算しなくなったフォームなど、ドキュメントで重要な機能が失われている場合は、その機能を提供する特定のスクリプトを特定し、それらをホワイトリストに登録し、他のスクリプトを削除します。時間をかけて、セキュリティと機能のバランスをとるソース固有のスクリプト ポリシーを開発します。

PDF スクリプトのウイルス対策スキャンの制限

ウイルス対策ソフトウェアは、署名の照合を通じて既知の悪意のあるスクリプトを検出できますが、このアプローチには重大な制限があります。シグネチャベースの検出は、既知のマルウェア パターンに一致するスクリプトのみを検出します。新しいまたはカスタムの悪意のあるスクリプトは検出されません。ウイルス対策ソフトウェアは、マルウェアと表面レベルの特性を共有する無害なスクリプトにフラグを立てて、誤検知を引き起こす場合もあります。唯一のスクリプト検出方法としてウイルス対策スキャンに依存すると、誤ったセキュリティ感が得られます。信頼できないソースからの PDF に対する最も安全なアプローチは、スクリプトの評価ではなく、スクリプトの削除です。良性のスクリプトを削除すると、一部の対話型機能が失われます。検出を回避した悪意のあるスクリプトを許可すると、コストがはるかに高くなる可能性があります。

WukongPDF

PDFを保護してみる

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

始める →