web-dev-qa-db-ja.com

PDFファイルが感染しているかどうかを知る方法は?

PDFブックを開くことを恐れています。pdfidを介してファイルをチェックすると、次のようになります。

PDF Header:% PDF-1.6  
 obj 4175  
 endobj 4174  
 stream 3379  
 endstream 3379  
 xref 0  
 trailer 0  
 startxref 1  
 / Page 794  
 / Encrypt 0  
 / ObjStm 6  
 / JS 3  
 / JavaScript 0  
 / AA 6  
 / OpenAction 0  
 / AcroForm 1  
 / JBIG2Decode 0  
 / RichMedia 0  
 / Launch 0  
 / EmbeddedFile 0  
 / XFA 0  
 / Colors> 2 ^ 24 0  

virustotal でもファイルをチェックしました。ファイルがクリーンであると表示されています。しかし、アンチウイルスは常に何が問題なのかを見つけるとは限りませんよね?

だから私はこれらの質問があります:

  1. これらのうちどれが本当に危険ですか(AA、ObjStm、XFAなど)?ええ、私はこれらの項目の値について here を読みましたが、それでもそれらにどのように反応するかわかりません。可能であれば、簡単な例で説明してください。
  2. pdfid -dコマンドを使用した後にPDFを安全に読み取ることはできますか?
  3. / JSと/ JavaScriptは、PDFドキュメントにJavaScriptが含まれていることを示しています。悪意のあるPDFドキュメントのほとんどすべてに、JavaScriptが含まれています( JavaScriptの脆弱性および/またはヒープスプレーの実行)もちろん、悪意のある意図なしにPDFドキュメントでJavaScriptを見つけることもできます。

    / AAおよび/ OpenActionは、ページ/ドキュメントが表示されたときに実行される自動アクションを示します。すべての悪意のあるPDF私が実際に目にしたJavaScriptを含むドキュメントには、ユーザーの操作なしでJavaScriptを起動する自動アクションがありました。

    JSとJavaScript、AA、OpenActionが同じことを示している場合、どのような違いがありますか?

11
stackflow

悪意のある分析PDF=時々非常に扱いにくい場合があります。攻撃者は人々に感染する方法でますます創造的になっています。

しかし、これを簡単にしましょう。PDFが悪意のあるものであることを示すいくつかの例を以下に示します。

JavaScriptベースのエクスプロイト

PDF仕様はJavaScriptプログラミングをサポートしており、APIの形式でプログラマーが多数のJavaScript関数を使用できるようにします。

JavaScriptはその柔軟性と使いやすさのため、悪意のあるPDFで広く使用されており、脆弱なJavaScript APIを悪用し、PDFリーダープログラムのメモリに悪意のあるコード(別名ヒープ)をセットアップするために使用されます噴射)。

JavaScriptベースではないエクスプロイト

悪用された悪意のあるPDFの大部分はJavaScriptを使用していますが、悪用したり、悪用するためにメモリを設定したりするために、他の手法も使用されていることが確認されています。 JavaScriptを使用する代わりに、代わりにFlashオブジェクトをPDFに埋め込むことができます。

からPDFドキュメント: The Rise of PDF Malware

悪質なドキュメントを分析するためのニース cheat-sheet もここにあります。

PDF送信したファイルにマルウェアが含まれているかどうか)を確認するにはどうすればよいですか? 」もご覧ください。

7
Mirsad

少し調べたところ、このPDFドキュメントの調査に使用しているツールは、「セキュリティ研究者」によって書かれたスタンドアロンのpython(?)ツールであるようです。彼がセキュリティ研究者であると主張し、彼の名前を彼のウェブサイトに載せることが好きであるという事実以外は、私が彼について何も知らないからといって、私はそのタイトルを引用に入れました。

おそらくPDFエキスパートである誰かが来て、より良い情報を提供することができますが、私がこれまで見てきたことから、彼のツールは特定のPDFファイルには悪意のあるJavaScriptが含まれています。 javascriptactions の両方がPDFファイルのAdobe標準の一部であることを考えると、PDFファイルが悪意のある可能性のあるjavascript/actionsが含まれています。彼は自分自身については述べていませんが、「私が見たすべての悪質なPDFファイルにはjavascript/actionsが含まれている」という非常に役に立たない修飾子を述べています。同様に真実な声明は次のとおりです。したがって、ブラウザでJavaScriptを無効にするのですか、それともJavaScriptのあるページを避けるのですか?明らかにそうではありません。私の見解では、私が目にする最大の問題は、おそらく相関と因果関係の違いを理解していない研究です。

そうは言っても、このドキュメントには悪意のあるJavaScriptが含まれている可能性があります。調べる最良の方法は、問題のJavaScriptを抽出して、実行せずに実際に何を行うかを確認することです。問題のツールはすでにPDFファイルを解析しているため、そのツールからその情報を取得できる可能性があります。次に、別のツールを見つけるか、自分で試す必要があるかもしれません。

これらのオプションのどれもあなたにアピールしない場合、私はこれをリスク/ベネフィット分析と見なそうとします:

  1. このPDFファイルを信用しない理由はありますか?
  2. 信頼できるソースからのものでしたか?

評判の良いソースからのものであり、あなたがそれを信用する理由がない場合は、おそらくそれをオープンにします。心配な場合は、いつでも仮想マシンで開こうとするか、JavaScriptを処理しないPDFリーダーを見つけることができます。表示する前に、PDFからJavaScriptを削除する方法を見つけることもできます。これがpdfid -dが行うことになっていると想像しますが、筆者に向けた最良のツールであるツールについては何も知りません。

Linuxを使用している場合は、次のように簡単です。

pdf2ps input.pdf - | ps2pdf - output.pdf

うまくいくかもしれません。これにより、pdfからpsに変換され、pdfに戻ります。基本的に、それはファイルを印刷します(私は信じます)すべてのメタ情報を削除します。私はpdf2psにJavaScriptライブラリが組み込まれていないと思います。悪意のあるJavaScriptがこのプロセスで安全に削除されると想定しても安全だと思います。

繰り返しになりますが、これはすべて「頭から離れた」答えなので、最善の策は、PDFファイルからJavaScriptを安全に削除する方法について別の質問をすることです。それは、「PDFファイルが感染しているかどうかを知る方法」というより具体的な(そして簡単に答えられる)質問だと思います。

6
Conor Mancone