新しいMiraiボットネットクローンの修正点を探る

新しいMiraiボットネットクローンの修正点を探る

マルウェアの作者は、貴重なコンテンツをアナリストや自動検出ツールから隠すために暗号化を使用しています。そのため、Nozomi Networks の研究者は、当社のモノのインターネット(IoT)ハニーポットによって収集されたマルウェアサンプルを常に監視し、新しいマルウェアサンプルや修正されたマルウェアサンプルを検出しています。当社が受け取るボットネット由来のサンプルの大半は、2つの異なるグループに分類することができます:MiraiベースとGafgytベースです。最近、Gafgytベースのサンプルに見られる改変についてブログを公開しましたので、このブログではMiraiベースのサンプルに焦点を当てます。

収集したサンプルを最近分析したところ、xor_initと呼ばれる新しい復号化関数を使用したMiraiベースの亜種を1つ発見しました。マルウェア作成者が貴重なコンテンツをアナリストや自動化ツールから隠すために暗号化を導入する場合、排他的論理和(XOR)演算はマルウェア作成者が最も使用するビット演算です。この新しい関数は潜在的なインジケータを再暗号化しないため、攻撃の後でもクリアテキストのまま残ります。これは通常のステルス型マルウェアと比較するとダウングレードと考えられるが、逆にネットワーク防御者や対応者が攻撃を追跡しやすくなる。  

このブログでは、Miraiの新しい暗号化ルーチン、3つの異なる暗号化バリアント、そしてこれらの変更がネットワーク防御者や対応者に実際にどのような利益をもたらすかについて説明する。さらに詳しく見ていきましょう。

ミライの新しい暗号化ルーチン

Miraiは独自の暗号化/復号化システムを持っており、それはtable_init関数で初期化される。コードをチェックした結果、非常に異なっていることがわかった。

table_init' 関数グラフ
図1.table_init' 関数のグラフ

古い方法:Miraiのtable_initコードは、暗号化された文字列をメモリに格納する。これにより、文字列がメモリ上に平文で残る時間が短くなり、アナリストが暗号化された文字列をすべて抜き出すことが難しくなる。これは、秘密を安全に保つためのシンプルかつ効率的な方法である。  

新しいメソッドでは、xor_initがすでにある機能にどのような新しいメソッドを追加しているのか確認してみよう。この関数はメモリ・ブロックを確保し、すべての情報を一度に復号化し、後で再暗号化することはない。言い換えれば、最初に実行される関数の1つは、すべての隠された文字列の復号化であり、研究者の復号化をより簡単にする。これは、本来のMiraiの機能から大幅に、そして不必要にダウングレードされたものだ。

xor_init' 関数グラフ
図2.xor_init」関数のグラフ

Mirai(または別の亜種)のソースコードを修正したマルウェア作者は、新しい文字列を追加しやすくするため、おそらく独自の保護機能を設計したのでしょう。ほとんどの場合、暗号化された文字列は、サンプルを疑わしいものとして識別するのに十分なユニークさがないため、保護には必要ないことがわかります。多くの場合、暗号化されていない形で、不審なサンプルを特定するのに有用なエクスプロイトコードやデータを見かけます。さらに、エクスプロイトコードには、暗号化されていないコマンド&コントロール(C&C)ドメインやその他のインジケータが含まれていることがあります。

CVE-2017-17215のエクスプロイトコードとプレーンテキストに保存されたC&C文字列
図3.CVE-2017-17215のエクスプロイトコードとプレーンテキストに格納されたC&C文字列

ミライ解読のバリエーション

このサンプルと似たようなサンプルに複数遭遇したため、追跡を開始したところ、異なる修正セットを含む類似のグループが複数存在することにすぐに気づいた。まず、いくつかの亜種が異なる文字列を処理するためにtable_init関数とxor_init関数を同時に使用していることを発見しました。この新しいXOR暗号化セットに格納される文字列には、一定のパターンはありません。時々、頻繁ではありませんが、C&Cサーバーの情報が格納されているのを見かけますが、ほとんどの場合、検出には重要でないいくつかのファイルパスが表示されるだけです。この亜種の作成者は新しいコードを追加したかったようだが、ほとんどの場合、最も重要な文字列を適切に保護することはできない。例えば、伝播フェーズで使用される脆弱性の悪用に関連する文字列は、これらのサンプルでは一般的に平文で見つけることができます。

3つのユニークな復号キー

xor_init関数が実行されると、保護されたコンテンツを復号化するために埋め込まれた暗号鍵が使われる。ここ数ヶ月、少なくとも3つの異なる鍵が使われている。このため、異なるグループに割り当て、その中から異なるパターンを探すことができる。暗号鍵は以下の通り:  

  • パズダノイスクト
  • メガキャットネット
  • ファカメボットネット

これは、誰かがMiraiを改造して別の攻撃者に販売していることを意味するか、あるいは異なるキャンペーンに関連していることを示している。3つのサンプルグループはいずれも独自のC&Cを持っているが、各グループの内部では、ほとんどすべてが同じインフラを共有している。

パズダノイスクト

我々が発見したサンプルのほとんど(過去3ヶ月で123)がこのグループに属する。このグループは、2022年6月以降、野生で最近見かけるようになった最初のグループである。最後にこのグループのサンプルを確認したのは、2022年9月の初めでした。

このボットネットは分散型サービス拒否(DDoS)攻撃に特化しているだけでなく、Omniと名付けられたMiraiの亜種で確認されているのと同じエクスプロイトのほとんども含んでいます。このバージョンのボットネットは、table_init関数とxor_init関数の両方を使用しています。

メガキャットネット

我々のThreat Intelligence システムでは、このMirai亜種のグループについて、これまでに34のサンプルを収集した。このグループのサンプルと次のサンプルは最近のもので、今年の8月に見られ始め、現在も野生で生きています。この亜種はDDoS攻撃のみに焦点を当てているため、より単純な亜種です。このキャンペーンや亜種は、xor_initだけを残してtable_init機能を削除したようです。いくつかの関数はxor_initの代わりにinit_xor関数名を使用していました。

ファカメボットネット

これまでのところ、fakamebotnet文字列をキーとして使用する16の異なるサンプルを収集している。このキャンペーンは2022年8月にも始まり、現在も活発に使用されている。このグループのサンプルは、実行中に使用するメモリを準備するためにtable_initとxor_initの両方の「初期化」関数を保持しています。このグループはDDoS攻撃だけに焦点を当てているわけではなく、HuaweiデバイスのCVE-2017-17215リモートコード実行を悪用して感染させることもできるため、少し複雑です。

fakamebotnetとmegacatnetの間に共通のインフラは確認されていませんが、両者が使用しているサブドメインのいくつかは、名前とドメインが似ています。これは、両者が同時期に出現したという事実と相まって、同じグループによって使用されていると考えられます。

結論

マルウェアのソースコードが誰でも自由に利用できるという事実は、さまざまなバリエーションの作成をより容易にしている。このため、マルウェア開発者は、どのようなレベルの経験者であっても、既存の強力なコードを再利用し、必要に応じて修正することができる。ここに見られるように、導入されたすべての改変が同じ基準に従っているわけではないため、サイバーセキュリティの専門家は、確実な検出を迅速に作成し、調査を迅速に実施することができる。

SHA256インジケータ

  • 14d082dccce114ea574098856395157111e58f029cc14921bde702147d1b5646
  • 25566a62ab5e8221780f0ae227eca06088077f098366f88454227e4b6e917c31
  • 2651d48bb50e77c6647d3bfe3de0ae872109a691fbebcbe305b96c54bd1c96f0
  • 2f86bf6baa896dc5b8ac10609e3b5b99d6b58cd2e58a47b6160c7fd9c514fe0b
  • 47ddd3b2581f8b70ac6ffa8f32476f423322e80e687ab664a6775bccb88c5d65
  • 4da284aec784efc94effdee4ea5b30e0636fe596d38c863415b6e273590a0763
  • 51de0c208785e70b83226dc762fc9386589a47ca19129369a70e704e2641bd78
  • 682ba2443f2b9ec13d9ba184e799f7c19cee598a844c8c105918c7aca493457c
  • 750d7fe81c7d8bad25442a8c653dfb9ffa6a015d68fd0015cc8409df071a0ad2
  • 86fbf21abc7d800c133b84a367431407a6f42a9cf2fee2d31626af343f277ef7
  • 9019acf6c6910bd92c262e8b5ae5c542ef216a8d7061f89dd715034b0f4cd8e9
  • a1eb59c928cb328b6ca4432400bfc93b81726b3754b815d288423f8d65d366b4
  • a89ad47d1862813c11d382aafe84a19dc9e79171ba8b688ef81721bb163ba652
  • b92b2879eb6e2bb0f9d34b6e2502ff554e002c16ec26f36cc765dfba0884b544
  • d1b493023508b85a0afb72c62ce5073e19f752d89dc433623eddd915239658fe
  • ec682de50315b173ca162fc3aaca5414f3c1dbd99c54ad99d486790bfddfe573
  • f3929937a4a469e78062a744008aeabc91960d3d5a870ef4984c70a428b5488f