web-dev-qa-db-ja.com

ウイルスはどのように画像に存在しますか?

最近、フィンランドのインターネットセキュリティの専門家の this ビデオを見ました。 11分ほどのどこかで、彼は画像に隠されているウイルスについて話し、画像が表示されようとしているときに実行します。

私は彼らが技術的にどのようにそのようなことをするのか疑問に思っています、私はどうしてウイルス実行された、どうやって来るべきかを意味しますdisplayedそして、どうして写真が何らかの形で損なわれないのか。コンピューターが最初に拡張機能を見てから、適切なプログラムでそれを開き、プログラム自体を動作させると思った(そして、通常の画像ビューアーがそれ自体でウイルスを実行できるとは思わない)。明らかにそれはそのように機能しませんが、私が尋ねた誰もこれで私を助けることができませんでした。

だから、誰もこれをどのように行うのか、原理を知っていますか?どうもありがとうございました。

45
JoeSlotsky

OSがプログラムを選択し、イメージを開くように要求するのは正しいことです。 OSは、プログラムにexecuteを要求しません。これはナンセンスです。

ただし、画像は複雑な形式であり、多くの場合、直接表示されないメタデータやその他の部分が含まれています。画面上の画像に影響を与えることなく、そこにあるものを隠すことができます。そのため、画像ファイル内に悪意のあるデータが潜んでいる可能性があります。

さらに、プログラムにはバグがある可能性があります。特に、 バッファオーバーフロー です。簡単に言えば、ウイルスは、メタデータセクションに大きすぎるデータを配置することでこれを悪用することができます-イメージをデコードするプログラムが予想するよりも大きい。内部バッファがオーバーフローし、十分なスキルを備えているため、ウイルス作成者は実行可能コードをメモリの適切な場所に配置して、イメージをデコードするプログラムが最終的にexecutingコード。そのようにして、イメージのような無実で「死んだ」ファイルがエクスプロイトをホストできます。

43
Martin Geisler

表示する必要はなく、読む必要があります。

OSには、検出したすべての画像を解析するサムネイル生成スレッドがあります。そのコードのバッファオーバーフローにより、ユーザーの介入なしにコードを実行できます。

これは、mp3のプロパティを抽出したり、PDFにインデックスを付けたりするために、あらゆる形式の自動読み取り機能を備えたファイルに適用されます。

3
ixe013

ウイルスはstore画像の情報を取得でき、画像表示プログラムの脆弱性を悪用できます。イメージを「感染」させることはできません。イメージを悪意を持って変更するため、イメージを開く可能性のあるプログラムが破壊され、そのプロセスで悪用がトリガーされます。

ウイルスが画像に不正なデータを入れてプログラムXを悪用し、その画像がプログラムYで開かれた場合、その画像は不正な形式であるためレンダリングされないか、そのプログラム。

これらすべての問題は、画像形式ではなく、画像デコーダの実装にあります。

2
SecurityMatt