SHA-1衝突によるBitErrant攻撃:同じ.torrentファイルで異なる.exeを作成します





2017年2月23日に、Googleとアムステルダムの数学およびコンピューターサイエンスセンターは、SHA-1の最初の衝突生成アルゴリズムを発表しました。 この発見は、SHA-1衝突の理論的アプローチに関するアムステルダムの数学およびコンピューターサイエンスセンターの暗号学者Mark Stevensの研究の2013年の出版の直後に始まった2年間の研究の結果でした。 彼はさらに実用的なハッキング方法を探しました。 現在、彼はGoogleの同僚と一緒に、SHA-1衝突( SHAttered攻撃)を受けやすいメッセージブロックを含むドキュメントを生成する一般的な原理を説明する科学論文を発表しました。



TLSやSSL、PGP、SSH、S / MIME、IPsecなどのアプリケーションやセキュリティプロトコルなど、 廃止された SHA-1暗号化ハッシュ関数が依然として広く使用されているため、攻撃がどれほど危険であるかがすぐに明らかになりました。 SHA-1ハッシュは、コンテンツを検証し、データ破損を検出するために、Git、Mercurialなどのさまざまなバージョン管理システムで使用されます(Gitの衝突に関するTorvaldsのコメントを参照)。 SHA-1ハッシュは、起動時に署名を検証するためにWiiゲームコンソールでも使用されます。 一部の政府機関では、SHA-1の使用が法的に義務付けられています。 また、この記事のトピックで最も興味深いのは、SHA-1ハッシュがBitTorrentピアツーピアネットワークプロトコルで使用され、インターネット経由でファイルを共有することです。



つまり、BitTorrentの仕組み、つまり、 torrentファイルの仕組みです。







トレント経由でファイルを配布するには、最初のステップで、このファイル(DATA)から拡張子.torrent(DATA.torrent)を持つ特別なトレントファイルを生成する必要があります。 元のファイルは一定数のセグメント(チャンク)に分割され、各セグメントに対してSHA-1ハッシュが計算されます。 受信したすべてのハッシュは結合され、共有ディクショナリキーの下のpieces



行のtorrentファイルに保存されます。 この文字列の長さは20 *ピースの数です。







誰かがBitTorrentを介して(DATA)ファイルをダウンロードしようとする場合、最初にDATA.torrentトレントファイルをダウンロードして解析する必要があります。 このファイルの情報に基づいて、クライアントはピアを検索し、元のファイル(DATA)のセグメントをダウンロードします。 悪意のあるデータをスリップしようとするピアから保護するために、クライアントは各セグメントをトレントファイルのハッシュでチェックします。 トレントファイルのハッシュがダウンロードされたフラグメントのSHA1ハッシュと一致しない場合、不良フラグメントは拒否されます。



これで攻撃ベクトルが明らかになりました。







攻撃者は、実行時に禁止されていることは何もせず無害に見える実行可能ファイルを作成できますが、SHATTER領域の内容に応じてコマンドの実行パスを変更します。 アンチウイルスでチェックする場合、悪意のある部分は暗号化されたblobに保存され、実行のために起動されることはないため、元のファイルは疑いを引き起こしません。



そして、ここから楽しみが始まります。



BitErrant攻撃



攻撃者が同じSHA1ハッシュで2つのデータBLOBを作成できる場合、特定の条件下で、内部に異なるデータを持つ2つの実行可能ファイルを生成することができます。 ただし、両方のファイルは同じトレントファイルに対応します。



すべての条件が満たされている場合、1つの部分を別の部分に置き換えることができる2つの実行可能ファイルを取得します。 置き換えると、コマンドの実行パスが変更され、悪意のあるコードが機能します。







特に、実行可能ファイルのこのような「可変」機能は、BitTorrentプロトコルのおかげで実際に実装できます。 原理は簡単です。トレントから「良い」ファイルをシードし始め、ある時点でそれを「悪い」ファイルに置き換え、このファイルをピアネットワークにダウンロードする人のデータフラグメントを効果的に変更します。



デモンストレーションとツールキット



biterrant_poc.zip



アーカイブには、機能が異なる2つの実行可能EXEファイルが含まれています(悪意のあるファイルには、Metasploitフレームワーク用のMeterpreterが実装されています。この場合、すべてのインターフェイスのリッスンが開始されます)。



アーカイブを復号化するためのパスワード:biterrant.io



SHA1:eed49a31e0a605464b41df46fbca189dcc620fc5



VirusTotalの良いファイル 、同じ場所の悪いファイル



BitErrant攻撃の作成者は、 適切なツールキットを開発しました。これは、同じ.torrentで実行可能ファイルを生成するためのフレームワークです。 このフレームワークを使用すると、実行可能ファイルの暗号化された部分に任意の負荷をかけ、それを呼び出すためのパラメーターを取得して、ファイルの実行可能部分に配置できます。 次に、選択した適切なファイルの交換可能な部分に無害な関数を指定します。 次に、Pythonスクリプトは、 1つの .torrentファイルに対応する2つの実行可能ファイル(良いものと悪いもの)を生成します。



これまでのところ、誰もこの攻撃を使用して公式のトレントトラッカーを介してファイルを配布していません。 また、可変機能を備えた「適切な」ファイルでさえ、一部のウイルス対策ソフトウェアに対して疑わしいと思われます。 したがって、この攻撃の危険性をあまり深刻に受け止めてはなりません。



この攻撃から身を守るには、ダウンロードしたファイルの一般的なハッシュを常に確認し、配布されているファイルのハッシュと比較するだけで十分です。 ところで、MD5ファイルの一般的なハッシュをトレントファイルに直接含めるオプションもあり、この攻撃は不可能になります。 ほとんどの場合、誰もこのオプションを使用しません。



All Articles