このページの本文へ

前へ 1 2 次へ

週刊セキュリティレポート 第4回

エフセキュアがセキュリティトピックスを解説!

PDFにまつわるセキュリティの問題とは?

2011年06月27日 06時00分更新

文● 八木沼 与志勝/エフセキュア

  • この記事をはてなブックマークに追加
  • 本文印刷

PDFはプログラムの実行も可能!

 PDFには、前述のフォームデータの送信(SubmitForm Action)のようなアクションの実行コマンドがいくつか定義されていますが、なかには「Launch(アプリケーションの実行)」や「JavaScript(JavaScriptの実行)」といったアクションも標準で定義されています。ドキュメントファイルから任意のアプリケーションやJavaScriptが実行されるのは、あまり気持ちのよいものではありません。

 たとえば、Launch(アプリケーション実行)は直接コンピュータ上の実行コマンドを実行できてしまいます。図3はPDFファイルからWindowsのコマンドプロンプト(cmd.exe)を実行したものです。

図3 PDFファイルを開いただけでコマンドプロンプトを開くことができた

 この機能は、PDFファイルの中で次のように記述するだけで実現できます。

図4 PDFでコマンドを呼び出す処理の記載部分

 PDFファイルはテキストエディタでも編集できるので、各ユーザーのレベルでさえ、たとえばCドライブの中をすべて消すといった悪質なイタズラも簡単に実現できます。また、一部のセキュリティソフトウェアでは、セキュリティソフト自体のプロセス停止を防御できないため、このコマンド実行によってセキュリティ機能の停止さえも可能です。もっとも、こういったあからさまに悪意ある処理は、通常のセキュリティソフトはパターンマッチングやふるまい検出の機能の解析で比較的簡単に検出します。そこで実際には、攻撃者は簡単に判別されないように「難読化」という処理を施すことでセキュリティベンダーのパターン処理や自動解析の目をかいくぐろうとします。

 難読化の簡単な一例をあげてみましょう。前述の通りPDFではJavaScriptを実行することを許可しています。JavaScriptはインタープリタ型プログラミング言語ですので、見る人が見ればわかってしまいますし、自動解析で行なわれるコマンド(キーワード)マッチングなどでは簡単に見つけることができます。しかし、スクリプトをエスケープ処理するなどの手段を複数組み合わせることで、見つかりにくくすることが可能です。

図5 JavaScriptをわかりにくくした難読化の例

 また、実行コードを暗号化して仕込んでおくといった手法もひんぱんに用いられます。

 では、PDFでJavaScriptを実行できるということは、どういった問題を引き起こすのでしょうか。JavaScriptを埋め込むことで、

  • ユーザーがPDFを開いた時、(難読化で検出をごまかした)悪意あるJavaScriptを実行する
  • ユーザーがWebブラウザなどで、PDFへのリンク(URL)をクリックした時に、別のJavaScriptファイルの命令に基づいてPDFに埋め込まれたJavaScriptを実行

といった事ができるのです。

 JavaScriptは、現在多くのWebサイトで使われるプログラミング言語です。JavaScriptはWeb上に存在するさまざまな脅威と関連していますので、PDFを利用したインラインの攻撃のような単純なものだけではなく、PDFファイルをきっかけとしてユーザーを悪質なサイトと結びつけて感染を促進させるドライブバイダウンロード攻撃のリスクもあるでしょう。

PDFファイルから感染しないようにするために

 以上のように、PDFは「文書の閲覧のための形式」ではないことがわかって頂けたでしょうか。PDFファイルは、ビジネスの上でもプライベートでも一般的に使われています。ですので、使わないという選択肢は非常に難しいと思います。そこで私たちにできるのは、できる限りリスクを減らすという点に尽きるのが現状です。では、リスク軽減とは、どうすればよいのでしょうか

 まず、多くの人がPDFの表示にAdobe Acrobat/Readerを使っていると思います。アドビは脆弱性が見つかる度に、修正を行なうバージョンアップを行なっています。再起動が必要だったりと手間はかかりますが、最新版へのアップデートを忘れないようにしましょう。また、JavaScriptに関連した攻撃が多いため、Adobe Acrobat/ReaderのJavaScriptの実行は無効にしてしまいましょう。無効化は、「環境設定」の「JavaScript」という項目で可能です。

 ほかに、他社製のPDF表示ソフトを使う、Google DocsのようなPDF表示が可能なWebサービスを使うという方法もあります。会社で許可されたソフト以外は使えない、オンラインへのアップロードは許されないなど、万人向けの対策とはいえませんが検討の価値はあります。

 そして、もはや当たり前のことですが、利用しているアンチウイルス製品は最新のバージョンを選び、定義ファイルのアップデートを怠らないようにしましょう。現在流通しているアンチウイルス製品のほとんどは、定義ファイルだけでなく、レピュテーションというクラウド技術を使うことで、定義ファイルでは間に合わないセキュリティの脅威に対応しますので、リスクを大幅に減らすことが可能になります。

 最後に、PDFに限らない話ですが、ファイルの送信者や発行元が信頼できるのかを意識することが大切です。見知らぬ相手からファイルを受信した際は、「開かずに捨てる」くらいの疑いが必要です。

筆者紹介:八木沼 与志勝(やぎぬま よしかつ)

エフセキュア株式会社 テクノロジー&サービス 部長
1972年生。UNIXプログラミングからIT業界に携わりはじめ、そのあとITインフラを中心としたITコンサルティングからセキュリティ業界へ。エフセキュア入社は2006年で、法人/コンシューマの製品およびプリセールスなどのサービス全般を担当する。


前へ 1 2 次へ

カテゴリートップへ

この連載の記事