Microsoft Office ファイルを「サニタイズ」するということは、そのファイルに対して数十種類の保護処理を実行することを意味します。従来のアプローチでは、各保護処理でドキュメント全体を読み込み、保護が適用されるたびにその同じドキュメントを読み続けています。
Deep CDR™ テクノロジー 各ドキュメントを1回読み込み、その1回の処理中にすべての処理を実行します。この方法により、同じデータ消去結果を維持しつつ、大容量のOfficeファイルの処理時間を2倍に短縮します。
「徹底」がもたらす隠れた代償
サニタイゼーションは、設計上、徹底的な処理が行われます。Deep CDR™ テクノロジーは、外部リンク、埋め込みオブジェクト、画像とそのメタデータ、スマートタグなど、数十種類の処理を同時に適用することで、Microsoft Office 文書をサニタイゼーションします。各処理は、それぞれ特定の脅威カテゴリを対象とし、独自の分析と編集を行います。
現代のOfficeファイルでは、こうした徹底的な確認作業に時間がかかり、リソースも大量に消費されます。WordやExcelのファイルは、圧縮されたフォルダのようなものです。その中には、 XMLで記述されたテキストファイルが含まれています。これは、文書内のすべてのセル、段落、画像、リンクを記述する構造化された形式です。ファイルをクリーンアップするには、Deep CDR™テクノロジーがそのXMLを読み込む必要があります。50 MBのファイルとして届いたスプレッドシートは、展開すると0.5ギガバイトのXMLを含む単一のシートになることがあります。
従来のエンジン構成では、各処理がXMLパッケージ全体を順に処理します。つまり、リンクの処理、埋め込みオブジェクトの処理、画像の処理などが、それぞれ1回ずつ行われます。
保護対策を1つ追加するごとに、処理コストは増加します。この「隠れたコスト」は、ファイルの待ち行列が長くなったり、同じトラフィック量に対してより多くの演算リソースが必要になったりするという形で現れます。また、そのペースに追いつくためだけに、保護対策を妥協せざるを得なくなるというプレッシャーも生じます。
ワンパス戦略:1回の四球、 複数の ワーカー
住宅の検査を想像してみてください。通常、電気工事士、配管工、消防検査官が順番に家を検査し、それぞれがすべての部屋を回ります。これら全員を同時に回らせてみてはいかがでしょうか?そうすれば、必要な専門家全員による検査を一度で済ませることができます。

Deep CDR™ テクノロジーのワンパス戦略は、まさにそれを実現するものです。この戦略は、3つの考え方に基づき、従来のサニタイゼーションの仕組みを逆転させています:
- 1つのホスト、1回のウォーク。 1つの処理ホストが、ドキュメントの各XML部分を正確に1回だけ読み込み(「ウォーク」)、処理します。各プロテクションは、そのウォークに同行するハンドラーであり、ストリームとして通過してくる各XMLノードを検知し、その場で処理を行います。10個のプロテクションがある場合、500 MBのシートを1回読み込み、10人のワーカーがそれを監視することになります。
- 各プロテクションはプラグインです。 専用のチェッカー、つまり「ハンドラー」は、コンテンツXML内の使用ノード、それらを宣言するリソース定義、および保存されたアーティファクトそのものという、一連の要素を端から端まで一貫して管理します。すべてのハンドラーは、初期化、各ノードの処理、終了という同じライフサイクルに従います。エンジンに保護機能を追加するということは、同じ処理パスにハンドラーを1つ登録することを意味します。したがって、保護機能を追加するたびに、処理の徹底度を高めるためのコストが増加することはありません。
- 無効化された保護機能は決して実行されません。 ウォークが開始される前に、各ハンドラーは自身の設定が適用されるかどうかを確認します。ポリシーによって無効化された保護機能は、最初から除外されるため、ノードごとの処理負荷は増加しません。ドキュメントは一度だけ読み込まれ、関連する保護機能のみが処理に参加します。
ベンチマークが示すもの
WindowsおよびLinux環境において、入念に作成された大規模なドキュメントと、実環境を網羅した回帰テストスイートの両方を用いて、戦略の実施前と実施後のベンチマーク評価を行いました。

- 大規模なExcelファイル (シートXMLが約500 MB):処理速度が約2倍に向上しました。総処理時間は、Windowsで94%、Linuxで67%短縮され、最もデータ密度の高い単一シートファイルでは147%の短縮が確認されました。
- 大容量のWord文書 (70ファイルから構成されるテスト用セット):総実行時間が約2倍短縮され、ファイルごとの平均処理時間は169%改善されました。
- 実環境での回帰テストスイート (数千のWord、Excel、PowerPointファイル):フォーマットやプラットフォームによって異なりますが、処理速度が約4%~20%向上します。ほとんどのファイルはサイズが小さいため、ドキュメントのサイズが大きくなるほど、1回読み込みによるメリットは大きくなります。
- 動作に変化なし:どちらのバージョンも、完全な回帰テストスイートを完了し、サニタイゼーションの結果は同一でした。処理速度の向上は、重複した読み取りを削除したことによるものであり、保護処理が省略されることはありませんでした。
この最後の結果が最も重要です。セキュリティ設定において、パフォーマンスに関する主張が意味を持つのは、保護レベルが一定に保たれている場合に限られます。ゲートウェイでのスループットもセキュリティを支えています。ファイルのサニタイズ処理が速ければ速いほど、チームが保護機能を迂回して処理を行う必要性が低くなるからです。
なぜ最初にOffice 2007のファイル形式をテストしたのか
Office 2007 ファミリー(.docx、.xlsx、.pptx)には、XML に関連する隠れたコストが集中しています。これら 3 つの形式はすべて同じパッケージ構造を共有しているため、1 つのホスト設計でこれらすべてをカバーできます。また、スプレッドシートを多用するトラフィックでは、実環境において 0.5 ギガバイト規模の XML パーツが発生することがあります。
この戦略自体は、コストが大規模な構造化コンテンツに依存するあらゆるフォーマットに適用されるため、そうしたフォーマットはすべて同様の対応の対象となり得る。
かつては、徹底性を追求すればするほど、追加される保護措置ごとにコストがかさむものでした。ワンパス処理を採用したDeep CDR™テクノロジーでは、適用されている保護措置の数がいくら多くても、文書全体を一度だけ評価します。

Nhut Ngo氏は、OPSWAT のSoftware エンジニアリング部門のディレクターを務めており、MetaDefender Core™におけるDeep CDR™テクノロジーやその他のファイル処理技術を支えるエンジニアリングチームを率いています。ソフトウェアエンジニアリングおよびサイバーセキュリティ分野で10年以上の経験を持つ同氏は、ファイルのサニタイゼーションを高速かつ正確に行い、重要インフラでの利用に耐えうるものにすることに注力しています。Nhut氏は2015年に情報科学の博士号を取得しました。

