web-dev-qa-db-ja.com

あなたは本当にトロイの木馬を画像ファイルに入れることができますか?もしそうなら、それはどのように実行されますか?

いくつかのLPをデジタル化したばかりで、カバーアートが必要でした。私のスキャナーはアルバムをスキャンするのに十分な大きさではないので、ネットから画像を検索してダウンロードしました。

私がそうしたとき、アバストはそれらの1つに「Win32:Hupigon-ONX」トロイの木馬が含まれていると報告し、すぐにそれを隔離しました。チャンスを逃したくないので、クリーンと報告された別のコピーをダウンロードしました。

さて、これはアバストからの単なる誤検知でしたか、それともjpgにトロイの木馬が本当にあったのでしょうか?

どうやって実行されるのでしょうか?

私は、トロイの木馬とウイルスのこの側面が常に私を困惑させてきたことを認めなければなりません。ソフトウェア開発者として、私は常に配列の長さなどをチェックしてきたので、バッファオーバーランなどが発生する理由がわかりません。私は、人々が手抜きをして間違いを犯し、ソフトウェアが十分に複雑な場合、これらのエラーがすり抜けてしまう可能性があることを理解しています。

11
ChrisF

画像ファイルのエクスプロイトは、OSの画像処理コードのバッファオーバーランの欠陥を利用しています。数年前にWindowsのGDIレイヤーで見つかったそのような重大な欠陥がいくつかありました-パッチはずっと前にリリースされましたが、エクスプロイトイメージは残っているという理由だけで、またはそれらが残っていることを期待してまだそこにありますまだパッチが適用されていないマシンをヒットします。

このようなセキュリティホールの通常の原因は、コールスタック上の関数間で画像データを渡し、データの最大長を適切にチェックしないことです。これは、サイズが大きく、スタックフレームの次のコードを上書きする(他のコードで上書きする)か、他の関数を呼び出すために使用されるコードへのポインターを上書きするように配置された、巧妙に構築されたデータによって悪用される可能性がありますまたは、呼び出された関数が呼び出されたときに、呼び出し元(エクスプロイトコードを指すようにそのようなポインターを上書きする)、または別の穴が露出するような方法でデータを上書きします。正確な方法は、問題のセキュリティホールによって異なります。

最新のCPUには、コードがサポートしている場合、これらのエクスプロイトのほとんどを阻止する保護機能があります。これは、プログラム/ライブラリがそのページのどれがデータでどれがコードであるかを明示的にマークすることによって機能します-CPUは、データであるべきもの(画像データなど)の何かがコードとして実行されようとすると例外を発生させます。 IIRC Vista以降および最近のバージョンの.Netでは、この保護をサポートするためにすべてのライブラリが再調整されており、他のOSでもサポートされていますが、これは停止しませんallこのようなエクスプロイトでのみ機能します明示的にオンにした場合(そうでない場合、多くの古いコードが壊れます)。

11
David Spillett

私は、トロイの木馬とウイルスのこの側面が常に私を困惑させてきたことを認めなければなりません。ソフトウェア開発者として、私は常に配列の長さなどをチェックしてきたので、バッファオーバーランなどが発生する理由がわかりません。

さて、現実の世界へようこそ;-)。バッファオーバーフロー&c。多くの言語(特にCのような手動のメモリ管理を使用する言語)で発生する可能性があり、開発者がミスをすると、doが発生します。

通常、バッファオーバーフローはプログラムをクラッシュさせるだけですが(セグメンテーション違反など)、攻撃者がコードを実行する可能性があります->トロイの木馬がアクティブ化されます。

例えば:

http://www.Microsoft.com/technet/security/bulletin/MS04-028.mspx

http://secunia.com/advisories/35216/

そして、これがどのようにコード実行を可能にするかについての説明のために:

https://stackoverflow.com/questions/460519/how-are-buffer-overflows-used-to-exploit-computers

9
sleske

2006年に任意のコードを実行する可能性のある壊れたJPEGライブラリでバッファオーバーランを実行するエクスプロイトがありました。Microsoftは、これまでに見たよりも早く修正するパッチをリリースしました。お使いのマシンはほぼ間違いなく脆弱ではなく、Hupigonは今や非常に多くの誤検知を生成しています。

http://www.Microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?name=Win32/Hupigon

3
msw

私は、トロイの木馬とウイルスのこの側面が常に私を困惑させてきたことを認めなければなりません。ソフトウェア開発者として、私は常に配列の長さなどをチェックしてきたので、バッファオーバーランなどが発生する理由がわかりません。私は、人々が手抜きをして間違いを犯し、ソフトウェアが十分に複雑な場合、これらのエラーがすり抜けてしまう可能性があることを理解しています。

ポインタや配列などをすべてチェックしているのかもしれません。しかし、(いつか)使用する3番目のパトリライブラリのすべてのプログラマもそうしているのは確かですか?

これに対する最も簡単な解決策は、「image.jpg.exe」のようなファイルまたは実際の画像の代わりに類似したものをダウンロードすることです。

PCに感染するためのより高度な方法は、ここですでに説明されています(たとえば、バッファオーバーフローなど)。

2
Elvith