PDFのFormCalcによるコンテンツハイジャック
書籍を読んで
こちらの書籍を読んでWebアプリケーションを作る際に重要な要点を自分用としてアウトプットします。
PDFのFormCalcによるコンテンツハイジャック
PDFはFormCalcとよばれるスクリプト言語が仕様でき、PDFドキュメントにFormCalcスクリプトを埋め込むことが出来る。
Adobe Acrobat Readerに実装されたFormCalcにはURL関数という機能があり、HTTPリクエストを呼び出し、結果を受け取ることが出来る。
このFormCalcのURL関数を用いた仕掛けを組み込んだPDFファイルをアップロードすることにより、正規ユーザに成りすましを行う攻撃手段が考案されている
脆弱性が生まれる原因
問題としては、Adobe Acrobat Readerのセキュリティ上好ましくない仕様を悪用されることにある
従って、Acrobat Readerの仕様が見直される事が本筋だが、Webアプリケーション側で対応を取らざるを得ないのが現状である
対策
ブラウザのAcrobat ReaderプラグインでPDFデータを開いてしまうと、PDFファイル内のスクリプト実行を止める手段はWebサイト側には用意されていない。
このため、以下の両方を実施することが対策になる
- PDFファイルはブラウザ内で開かずダウンロードを強制する
- PDFをobject要素やembed要素では開けない仕組みを実装する