web-dev-qa-db-ja.com

マルウェアIDにMD5を使用する:衝突攻撃のリスク?

MD5ハッシュが衝突攻撃に対して脆弱であることが2004年以来知られています(update-"preimage"攻撃ではない-私の間違い....)。それでも、人々はマルウェアを識別するためにそれを使用しているようです。例えば。新しいFlameマルウェアが、アーカイブされたmd5データで同じmd5シグネチャを数年前に発見したドキュメントに関するレポート。

Flameは何歳ですか?-Alienvault Labs

攻撃者はおそらく、すべてのファイルが他のファイルのmd5ハッシュと一致していることを確認し、無害に見えるため、md5に依存することは危険なようです。

(パブリック)衝突攻撃を見たことがないsha256やsha1への参照はありません。ウイルスデータベースのより良いハッシュへの移行の状況は?

更新:私が懸念していたのは、ウイルスdbが問題のすべてのファイルの完全なコピーも保持していない場合(たとえば、一部のファイルが本当に大きいため)または何か)、および/またはデータベースを検索している人々がアーカイブしたファイルで調べている新しいファイルの完全な内容をチェックしなかった場合、古い「無害な」ファイルと一致する悪意のあるウイルスからの新しいファイルmd5の一致だけでは危険ではないと誤って却下される可能性があります。しかし、うまくいけば、完全なファイルが保持され、ウイルス対策研究者によってチェックされるか、そうでなければ、この攻撃に対して脆弱になります。

では、マルウェアIDに対するどのような種類の攻撃がmd5コリジョンの生成の容易さを利用し、特定のハッシュデータベースとAVソフトウェアで実際にどのような手順を実行してそれらを阻止するのでしょうか。

8
nealmcb

まず、SHA1、SHA256、SHA2、またはいくつかの最新のハッシュ関数を使用する方がよいというのは正しいことです。

しかし、リスクはそれほど高くないと思います。ハッシュ関数への攻撃に関する背景を少し説明する必要がある理由を説明するために。心配する必要のある攻撃には、次の2種類があります。

  • 衝突攻撃。攻撃者が2つのファイルを検出[〜#〜] m [〜#〜](悪意のある)、[〜#〜] s [〜# 〜](安全)同じハッシュを持っています。ここで、攻撃者は[〜#〜] m [〜#〜]および[〜#〜] s [〜#〜]を自由に選択できます。

  • 2番目のプリイメージ攻撃。攻撃者にはファイルが与えられます[〜#〜] c [〜#〜](共通)、2番目のファイルを見つける必要があります- [〜#〜] m [〜#〜]ファイルと同じハッシュを持つ[〜#〜] c [〜#〜]。攻撃者は[〜#〜] c [〜#〜];を選択できないことに注意してください。それは彼に与えられます。攻撃者の唯一の自由度は[〜#〜] m [〜#〜]の選択です。

2番目のプレイメージ攻撃は、攻撃者が衝突攻撃だけでは実行できないことを実行できるため、はるかに有害です。 MD5について知っておくべきことは、MD5が衝突攻撃に対して脆弱であることが知られているということです。ただし、MD5に対する既知の2番目のプリイメージ攻撃はありません。

この文脈で、私は今あなたの質問に答えることができます。 MD5は衝突攻撃に対して脆弱ですが、攻撃者がこれを使用して問題を引き起こす明確な方法はありません。確かに、攻撃者は悪意のあるファイル[〜#〜] m [〜#〜]および無害なファイル[〜#〜] s [〜#〜]を見つける可能性があります同じハッシュを持っています。その後、攻撃者はマルウェアの拡散を開始する可能性があります[〜#〜] m [〜#〜]、MD5ハッシュ[〜#〜] m [〜#〜] =誰かのブラックリストに乗る、そしてこれは一部の人々が[〜#〜] s [〜#〜]が有害であると誤って結論付ける可能性があります。しかし、何ですか? [〜#〜] s [〜#〜]はランダムに見えるバイトの束になります。 [〜#〜] s [〜#〜]がすでにシステムに保存されている理由はありません。そのため、攻撃者が[〜#〜 ] s [〜#〜]は基本的に無害です。

MD5に対する2つ目のプリイメージ攻撃は、はるかに問題になります。これにより、攻撃者は無害なファイルを選択できるようになります[〜#〜] c [〜#〜]全員のハードドライブに保存されます:Windowsファイアウォールの動作に重要なファイルである可能性があります。インスタンス。次に(攻撃者がMD5に対して2つ目のプリイメージ攻撃を行う方法を知っている場合)、攻撃者は悪意のあるファイルを作成できる可能性があります[〜#〜] m [〜#〜][〜#〜] c [〜#〜]と同じハッシュ、そして[〜#〜] m [〜#〜]の周りに広がり始めます。ウイルス対策企業が[〜#〜] m [〜#〜]のMD5ハッシュをブラックリストに追加すると、問題が発生する可能性があります。ウイルス対策ソフトウェアが誤ってそれを結論付ける可能性があります- [〜#〜] c [〜#〜]は有害であり、その誤った警告は、一連のシステムまたはそのようなものでWindowsファイアウォールを無効にする可能性があります。それが可能であるなら、それは悪いでしょう。しかし、今日私たちが知る限り、MD5に2番目のプレイメージ攻撃を成功させる方法を誰も知らないため、このような悪いシナリオは起こり得ません。

結論:MD5の代わりに、より最新のハッシュ関数を使用する方が良いでしょうが、悪意のある人がMD5を使用する現在の慣行を悪用する可能性はあまりないと思います。リスクはひどく低いようです。

6
D.W.

簡単な分析:

Threat:誰かが悪意のあるファイルのMD5ハッシュと一致するクリーンなファイルを作成します。

結果:クリーンファイルは悪意のあるものとして識別されますが、単なる衝突です。一致する別のファイルがまだ存在し、常に同じものとして識別されます。

これが起こったら、次に進むことについていくつかの話があるかもしれません。私たちがそうしていない理由についての私の推測:

  • これはマルウェアを認証するものではなく、それを特定するものです。誤検出の一致を挿入すると、値が制限されます。真のポジティブは引き続き検出されます。
  • 現在は普遍的です。 1つだけのハッシュアルゴリズム操作でマルウェアを特定できます。切り替えた場合、誰かがリポジトリを保持し、すべての新しいアルゴリズムハッシュを投稿できる場合を除き、複数のアルゴリズムですべてのファイルのハッシュを開始する必要があります。

誤った一致は非常に限られた価値しかありません。悪意のあるソフトウェアの別の部分であるかもしれない悪意のあるソフトウェアの部分を探していると誰かに納得させること以上のことはできません... 。その特定のマルウェアについて学ぼうとしている研究者だけが気にすることができ、彼らは何が起こっているのかを理解するべきです。

更新

ウイルスデータベースに「クリーン」チェックサムが含まれていないことは私の理解です。一致するMD5エントリがある場合は、それを調べようとしない限り、システムで使用したくないものです。実行可能ファイルのセクションは、古いナンセンスで埋められるように確保できるため、別の無害なファイルと同じMD5サムを持つマルウェアファイルを作成することが可能です(「衝突攻撃」)。実際の「プリイメージ攻撃」を行う方法はわかりませんが、実行可能ファイルの設計上の性質により、説明されているように、フォーカスされた攻撃者が衝突攻撃を作成する可能性がかなり高くなります WikipediaのMD5ページ 。つまり、実行可能構造により、実行時に無視される選択したデータを挿入する際の柔軟性が大幅に向上します。さらに、ランチャーからそれ以外の場合は実行不可能なファイルをロードして、ファイル内の先頭または末尾のデータを変更することができます。最初と最後のバイトは何でもかまいませんので、汎用ランチャーと非常に簡単なハッシュ衝突の使用を提供します。

データベースにはクリーンなファイルが含まれていないため、偽陰性は発生しません。誰かがそれを念頭に置いてマルウェアを設計した場合、誤検知が発生する可能性があります。今日最初のマルウェアデータベースの構築を担当していた場合は、別のハッシュアルゴリズムを使用します。 MD5は歴史的な理由と、成功した衝突攻撃の影響が比較的少ないため、現在は理想的ではありませんが、動き続けています。

9
Jeff Ferland

私はその記事の著者が書いた結論に同意しなければなりません。

メインコンポーネント(mssecmgr.ocx)のバージョンが2008年末にコンパイルされたようです。これは、Flameが少なくとも4年間存在していることを示している可能性があります。

実際、これはすべて、マルウェアの非常に大きな部分の主要コンポーネントが4歳であることを示しています。これは、使用されている他の主要コンポーネントがあることを意味するものではありません。同様に、Flameは2010年に修正された欠陥を悪用します。

更新:Flameを見てから最初の2週間後。 Flameは実際には数年前のものであることが発見されました。ターミナルサービスの欠陥とMicrosoft証明書に対するMD5衝突攻撃を悪用したため、非表示のままにしておくことができました。

著者の結論の残りは私が同意します。 Flameは、マルウェアのマザーロードという意味で新しいものであることは間違いありません。いくつかの洗練された攻撃のために、Flameは多くのものを悪用します。

攻撃者はおそらく、すべてのファイルが他のファイルのmd5ハッシュと一致していることを確認し、無害に見えるため、md5に依存することは危険なようです。

Flameはこれを試みませんでした。あなたの懸念は正しいことに向けられていません

更新:私が抱えていた懸念は、ウイルスデータベースが問題のファイルすべての完全なコピーも保持しなかった場合(たとえば、一部が本当に大きいか、または何かのため)、および/またはデータベースを検索している人々が完全なファイルをチェックしなかった場合です。アーカイブされたファイルで検索している新しいファイルの内容、次に古い「無害な」ファイルと一致した悪意のあるウイルスからの新しいファイルは、md5の一致だけに基づいて危険ではないと誤って却下される可能性があります。しかし、うまくいけば、完全なファイルが保持され、ウイルス対策研究者によってチェックされるか、そうでなければ、この攻撃に対して脆弱になります。

この更新について私が言わなければならないことは、あなたが間違ったことについて心配しているということです。これらのウイルスデータベースWebサイトは、ファイルのコピーを保持します。セキュリティ会社は、ファイルのMD5ハッシュ以外にも、ファイルが悪意のあるものかどうかを判断するために使用します。

実際のファイルが悪意のあるファイルのMD5ハッシュに一致する可能性は本当に本当に小さいです。したがって、悪意のあるファイルが実際のファイルにさらに一致した場合でも、MD5ハッシュだけが脅威の識別に使用されます。

過去10年間によく知られている悪意のある感染のほとんどは、「発見日」の間に発見されたエクスプロイトに加えて、非常に類似した方法で機能することに加えて、同じエクスプロイトを使用しています。

Stuxnetは「カスタム」言語で書かれた本当に高度なトロイの木馬であると誰もが思っていました。他の兄弟と同じように、Cで記述され、同じコンポーネントを共有していることを確認してください。

2
Ramhound