web-dev-qa-db-ja.com

JPEG画像を単に解凍するとエクスプロイトがトリガーされますか?

小説 Daemon は、流行語をつぶすだけでなく、その描写が現実的であることでしばしば賞賛されます。

しかし、これは非現実的であることに私を驚かせました:

Graggの電子メールには、ブローカーのロゴの有害なJPEGが含まれていました。 JPEGは圧縮された画像ファイルです。ユーザーが電子メールを表示すると、オペレーティングシステムは解凍アルゴリズムを実行して、グラフィックを画面に表示しました。 Graggの悪意のあるスクリプトを実行してユーザーのシステム内に侵入させたのはこの解凍アルゴリズムであり、フルアクセスを許可していました。解凍の欠陥に利用できるパッチがありましたが、古い、裕福な人々は通常、セキュリティパッチについての手がかりを持っていませんでした。

そんなことありますか?この説明は実際のエクスプロイトに基づいていますか?

これは2006年12月に発行されました。

「オペレーティングシステム」が画像を解凍してレンダリングしたと言ってもいいでしょうか。


これは、PHP画像アップロードスクリプトのセキュリティとは関係ありません。JPEGを表示するデコードプロセスについて質問しています、リモートユーザーからの入力を受け取るスクリプトや、.jpeg。私が対応している重複フラグは、流行語の一致でも不十分に見えます。画像ファイルについて言及すること以外、本当に何も似ていません。

102
JDługosz

そんなことありますか?

もちろんです。悪意のある入力をパーサーに送ることは、エクスプロイトを作成する最も一般的な方法の1つです(JPEGの場合、「解凍」は「解析」です)。

この説明は実際のエクスプロイトに基づいていますか?

Microsoft Windows GDI +のバッファオーバーフローの脆弱性 に基づいている可能性があります。

GDI +(Gdiplus.dll)のJPEG解析コンポーネントが不正なJPEG画像を処理する方法にバッファオーバーフローの脆弱性があります。脆弱なコンポーネントに特別に細工されたJPEGファイルを導入することにより、リモートの攻撃者がバッファオーバーフロー状態を引き起こす可能性があります。

...

リモートの認証されていない攻撃者は、特別に細工されたJPEGファイルを導入することにより、脆弱なシステム上で任意のコードを実行する可能性があります。この悪意のあるJPEG画像は、悪意のあるWebページ、HTML電子メール、または電子メールの添付ファイルを介してシステムに導入される可能性があります。

これは2006年12月に発行されました。

GDI + JPEG解析の脆弱性は2004年9月に公開されました。

「オペレーティングシステム」が画像を解凍してレンダリングしたと言ってもいいでしょうか。

承知しました;この場合、それを修正するためにOSベンダーのパッチが必要なのはシステムライブラリでした。多くの場合、このようなライブラリは複数のソフトウェアパッケージで使用され、アプリケーション固有ではなくオペレーティングシステムの一部になります。

実際には、「電子メールアプリケーションはJPEGを解析するためにシステムライブラリを呼び出しました」が、「オペレーティングシステム」は小説にとって十分に近いものです。

180
gowenfawr

はい、これは完全に可能ですが、興味深い逸話を追加することもできます。

Joshua Drake(@jduck)は、非常によく似たコンセプト(OSによって解釈される画像)に基づいてバグを発見し、最終的には「Stagefright」という名前が付けられ、 とんでもない数のAndroidデバイス

彼は libpng で同様の画像ベースのバグを発見し、特定のデバイスをクラッシュさせました。彼は基本的に「Twitterがインライン画像の自動レンダリングを追加したことを知らずに、私が作ったこのクールな悪質なPNGをチェックしてください、デバイスをクラッシュさせるでしょう」と言って、エクスプロイトの例をツイートしました。言うまでもなく、彼のフォロワーの多くは、ブラウザがフィードに画像のサムネイルをロードしようとした瞬間に、マシンをクラッシュさせ始めました。

49
Nic Barker

非現実的ですか?フォント定義の解析に最近重大なバグがありました: https://technet.Microsoft.com/en-us/library/security/ms15-078.aspx とlibjpegの変更点にはセキュリティ勧告がいっぱいです。ファイルの解析[1]は難しい:オーバーフロー、アンダーフロー、範囲外のアクセス。最近、クラッシュを引き起こす可能性のある入力の半自動検出のために開発された多くのファジングツールがありました。

[1]またはネットワークパケット、XMLまたはSQLクエリ。

12
user158037

他の人が指摘したように、このような攻撃は通常、バッファオーバーフローを悪用します。

方法の本質について、それはスタックスマッシング攻撃と呼ばれています。 call stack を破壊し、実行する正当なコードへのアドレスを、代わりに実行される攻撃者提供のコードへのアドレスで上書きすることを含みます。

詳細は insecure.org/stf/smashstack.html にあります。

2

はい、これは可能です:

Malwarebytesの上級セキュリティ研究者であり、フランスのセキュリティ研究者であるキシリトールであるJerome Seguraの共同研究によると、ZeusVMと呼ばれる悪意のあるZeusバンキング型トロイの木馬の新種がJPG画像ファイルに隠されています。

この行為はステガノグラフィーとして知られており、メッセージや画像を他のメッセージや画像に隠します。

ZeusVMの場合、マルウェアのコードは気取らないJPG画像に隠されていると、Seguraによる月曜日のブログ投稿が明らかにしました。これらの写真は、ZeusVMが構成ファイルを取得するための誤った指示として機能します。

「JPGにはマルウェア設定ファイルが含まれています。これは基本的にスクリプトと金融機関のリストですが、被害者自身が開く必要はありません」とSeguraはSCMagazine.comに火曜日のメールで伝えた。 「実際、JPG自体はユーザーに対してほとんど可視性がなく、セキュリティソフトウェアの観点から検出されないようにするための隠蔽手法です。」

ソース

1
TheJulyPlot