web-dev-qa-db-ja.com

悪意のある自己実行コードはJPEG画像のEXIFデータにのみ存在しますか?

感染したJPEG画像があり、それを表示するだけで、その中に保存されている悪意のあるコードを自動的に実行できるとしましょう。これは、バッファオーバーフローまたはその他の手法を使用して、画像ビューアのセキュリティホールを利用することで可能です。 JPEGイメージのEXIFデータセグメント内で、コードを実行する準備ができている唯一の場所はありますか?

誰かが EXIFtool またはFileMind QuickFixを使用してすべてのEXIFメタデータを削除するとします。これにより、画像の表示時に実行される可能性のあるコードから画像が消去され、内部に格納されている脅威が削除されますか?

PS:画像は表示できますが、たとえば名前が変更された* .exeファイルではありません。私たちは、画像に隠されたコードをステガノグラフィー技術を使用して読み取り、それを実行できる別のマルウェアに感染していません。クリーンで画像を開くだけです。

EDIT:ケースの自己実行コードは、EXIFメタデータから離れた画像の実際のデータ内に詰め込むことができ、このコードを検出できます。暗号化されている場合、それを解読するには別の悪意のあるプログラムが必要です。では、このコードを画像内でどのように検出できますか?

1
pgmank

必ずしも。

悪意のある自己実行コードは、データを処理する一部のソフトウェアのコードに影響を与えるバグを利用します。 EXIFの処理方法のバグを参照していますが、画像データもソフトウェアで処理する必要があり、このデータを処理するコードにもバグが悪用される可能性があります。

EXIFデータを削除すると、EXIFデータ操作に影響するバグを使用しようとする脅威から保護されますが、実際の画像データ処理ルーチンを悪用しようとする脅威に対しては何も行いません(このため、画像データを変更する画像のサイズ変更を想像するかもしれませんが、このサイズ変更を行うソフトウェアがうまく利用されないように対策を講じることをお勧めします...)。

いずれの場合も、そのような脅威はソフトウェアとライブラリの非常に特定のバージョンのみを対象とすることができます。非常に特定のバグを対象とするため、どのソフトウェアでイメージを開くすべてのユーザーに影響を与える「一般的な悪用」にはなり得ません。

編集:この件に関するディスカッションも StackOverflowで で見つかります。

5
WhiteWinterWolf

JPEGイメージのEXIFデータセグメント内で、コードを実行する準備ができている唯一の場所はありますか?

必ずしも。ただし、EXIF処理コード内にバグが存在する可能性がはるかに高くなります。実際の画像のJPEG処理コードは、実証済みのアルゴリズムを使用したかなり標準的なものです。 EXIF処理は、データの処理に応じて、アプリケーションごとに特注になります。

誰かがEXIFtoolまたはFileMind QuickFixを使用してすべてのEXIFメタデータを削除するとします。これにより、画像の表示時に実行される可能性のあるコードから画像が消去され、内部に格納されている脅威が削除されますか?

たぶん。ただし、ここでは、エクスプロイトのリスクを画像表示コードからEXIFツールに移しています。 EXIFツールには、悪用を可能にする欠陥が含まれている可能性があります。ただし、ネットワークアクセスが制限された別のマシンでツールを実行し、EXIFデータが削除されたら画像データを渡すことができます。

2
SilverlightFox