Sanitization
Sanitizationとは、PDFドキュメントから潜在的に有害または不要なコンテンツを分析・除去し、安全に配布・閲覧できるようにするプロセスです。
Sanitizationとは、PDFドキュメントから潜在的に有害または不要なコンテンツを分析・除去し、安全に配布・閲覧できるようにするプロセスです。これには、悪意のあるスクリプト、埋め込みファイル、非表示レイヤー、その他セキュリティやプライバシーを侵害する可能性のある構造要素の特定と削除が含まれます。 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) はPDFドキュメントの技術的構造を定義していますが、Sanitizationはその構造内に埋め込まれる様々な機能やコンテンツタイプのセキュリティへの影響に対処します。
PDF Sanitizationは、PDFファイルを体系的に検査し、ユーザーやシステムにリスクをもたらす可能性のある要素を検出・除去するセキュリティ重視のプロセスです。これは単純な検証やエラーチェックを超えたもので、PDF仕様に従って技術的には有効である可能性があっても、悪意を持って悪用される可能性のあるコンテンツや機密情報を含むコンテンツを積極的に削除または無害化します。
Sanitizationは、ドキュメントが仕様要件に準拠しているかどうかを単に確認するPDF検証とは異なります。また、ファイルサイズの削減に焦点を当てた最適化とも異なります。Sanitizationは、以下の要素を除去することでセキュリティとプライバシーを優先します:
- JavaScriptコードやその他の実行可能スクリプト
- 埋め込みファイルとファイル添付
- 外部参照とリモートリソース
- 非表示レイヤー、コメント、注釈
- 機密情報を含むメタデータ
- 危険なアクションを持つフォームフィールド
- コンテンツを隠す可能性のある透明度とブレンドモード
このプロセスには通常、 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されているすべての間接オブジェクト、ストリーム、メタデータを含むPDF構造の詳細な検査が含まれます。
WebアプリケーションやエンタープライズアプリケーションでPDFを扱う開発者にとって、Sanitizationが重要である理由はいくつかあります:
セキュリティ保護:SanitizationされていないPDFは、悪意のあるJavaScriptを実行したり、外部アプリケーションを起動したり、PDFリーダーの脆弱性を悪用したりする可能性があります。ユーザーがアップロードしたPDFを受け入れる場合や、信頼できないソースからのドキュメントを処理する場合、Sanitizationによってこれらの攻撃ベクトルがエンドユーザーに到達するのを防ぎます。
プライバシーコンプライアンス:PDFには、非表示のメタデータ、編集履歴、技術的にはアクセス可能な墨消しコンテンツが含まれていることがよくあります。Sanitizationは、ドキュメント配布前に機密情報が確実に削除されることを保証し、組織がGDPRなどのプライバシー規制に準拠するのを支援します。
一貫したレンダリング:複雑な機能や非標準的な機能を削除することで、異なるPDFリーダーやプラットフォーム間でドキュメントが予測可能にレンダリングされ、サポートの問題が減少し、ユーザーエクスペリエンスが向上します。
法的およびコンプライアンス要件:多くの業界では、情報漏洩を防ぎ、長期にわたってドキュメントの完全性を維持するために、ドキュメントのアーカイブや公開前にSanitizationを要求しています。
PDF Sanitizationは通常、複数のフェーズで動作します:
分析フェーズ:Sanitizerは ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) に従ってPDF構造を解析し、すべての間接オブジェクト、ストリーム、相互参照を含む完全なオブジェクトグラフを構築します。このフェーズでは、以下を調べることで潜在的に危険な機能を特定します:
- 埋め込みアクションのドキュメントカタログとページツリー
- すべてのJavaScriptアクションとトリガー
- ファイル添付注釈と埋め込みファイルストリーム
- URIアクションとGoToRデスティネーション内の外部参照
- フォームフィールドとそれに関連するアクション
リスク評価:特定された各要素は、受け入れ可能なコンテンツタイプを定義するセキュリティポリシーに対して評価されます。これには以下のチェックが含まれる場合があります:
- 既知の悪意のあるパターンまたはエクスプロイト
- 組織のポリシーで明示的に禁止されているコンテンツタイプ
- ターゲットとなるPDF標準( ( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) で参照されているPDF/AやPDF/UA-1など)と互換性のない機能
除去または無害化:危険なコンテンツは、ドキュメント構造を維持しながら脅威を排除するために、完全に削除されるか、変更されます。これには以下が含まれる場合があります:
- アクションからのJavaScript辞書エントリの削除
- 埋め込みファイルストリームとその参照の削除
- フォームフィールドを静的コンテンツに平坦化
- メタデータストリームの削除
- オプショナルコンテンツグループ(レイヤー)の削除または結合
再構築:PDFはクリーンなオブジェクト構造で再構築され、ドキュメントの有効性を維持するために相互参照テーブル、トレーラー辞書、オブジェクトストリームが更新されます。これには、Webビューイングのためのリニアライゼーションと、適切なファイルサイズを維持するための圧縮が含まれることがよくあります。
検証:Sanitizationされたドキュメントは、すべてのセキュリティリスクが正常に軽減された状態で、正しくレンダリングされる整形式PDFであることを確認するために検証されます。
- PDF Validation – PDFドキュメントが仕様要件と構造ルールに準拠しているかを検証すること
- Metadata – PDFに埋め込まれたドキュメントレベルの情報で、削除が必要な機密データを含む可能性がある
- JavaScript Actions – PDF内の実行可能スクリプトで、セキュリティリスクのためSanitizationの主要なターゲットとなる
- Embedded Files – PDFドキュメント内に添付されたファイルで、悪意のあるコンテンツを含む可能性がある
- Redaction – ドキュメントから機密コンテンツを永久に削除するプロセスで、復元を防ぐためにSanitizationが必要になることが多い
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
- (N.A.) (2014)
- (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html
