Shinoa, Owari, Mirai: なぜアニメキャラクターの名前ばかり?

2016年9月、Hack ForumsでMiraiのソースコードがリークされました。あの重大な出来事以来、IoTデバイスを標的とするマルウェアが爆発的に増え、それぞれに日本のアニメに登場する、超人的な力を持つ主人公の名前が付けられています。FortiGuard Labsでは、お客様に最善の保護を提供するため、これらのIoTボットネットの追跡を行ってきました。

例えばMiraiは、アニメシリーズ「境界の彼方」の主人公、栗山未来から取った名前です。Owariとして知られるマルウェアの名前は、漫画「終わりのセラフ」から取ったものです。最近では5月17日、当社のネットワークテレスコープが、Shinoaという新たな亜種を発見しました。これも同じく「終わりのセラフ」のヒロインの名前です(この名前はマルウェアサンプルに含まれるフォルダの名前から付けられたもの)。

ホスト自体は非常に新しいものです。

Figure 1 Malicious Host

図1. 悪意のあるホスト

VirusTotal(VT)の巧妙なトリックをいくつか使ってみたところ、新たなShinoaマルウェアのソースコードを発見できました。このソースコードはわれわれの好奇心をあおりました。マルウェア作成者の進化と思考をたどる絶好の機会だからです。そこで、ソースコードをさらに深く掘り下げることにしました。「マルウェア亜種の名前には何か意味があるのか」という疑問の答えも見つかるかもしれません。


Shinoaの概要

ソースコードはRar5形式のアーカイブになっており、ハッシュは 499b4c2bc3396a215682d42ba0f2bdf96492e7f45a15129422f9ecd6134bd3b8です。

Figure 2 Shinoa's Source Code

図2. Shinoaのソースコード

すでにMiraiのコードベースはわかっていましたので、Miraiと何らかの関係がある予感がありました。さらに掘り下げてみると、ソースコードを手直しした跡がいくつかありました。いくつかのヘッダーファイルが「shinoa\bot\headers」に移動されていたので、それを元に戻しました。

その後、クリーンなside-by-side形式のdiffを取ることができ、ソースコードを分析できました。

Figure 3 Side by side

図3. side-by-side形式でdiffを取ったところ

ご覧の通り、すべてのデータポイントが非常に類似しており、Miraiの亜種という先ほどの予感が裏付けられました。また、お客様を保護するためにホスト(185.244.25.197)を見つけ出し、ブロックしました。

Figure 4 Configurations

図4. コンフィギュレーション


新たな攻撃手法

次に、攻撃手法を見ていくことにしました。ここでは多くの違いがありそうです。

Figure 5 Attack Methods

図5. 攻撃手法

ご覧の通り、Miraiの元々のソースコードからいくつかの攻撃手法(具体的には「DNS resolver flood」、「TCP stomp flood」、「HTTP flood」)が削除されていますが、同時に新たな2つの攻撃手法「XMAS flood」と「LYNX flood」が追加されています。

Figure 6

図6. 「XMAS flood」と「LYNX flood」

次に、attack_meth.cの新たな攻撃手法の実装を掘り下げてみました。

Figure 7 Implementation of the Attacks

図7. 攻撃の実装

興味深いことに、ShinoaではMiraiの元々の攻撃手法が1つの大きなファイル(attack_meth.c)に統合されていました。しかし、コード自体は変わっていません。

Figure 8 Code in C

図8. Cのコード

次に、「XMAS flood」と「LYNX flood」の実装に焦点を当ててみました。 attack_tcp_xmas()は、計算能力を最大限消費させ、帯域幅を飽和状態にするようすべての選択肢が設定された、昔からある実装形式です。

一方、「LYNX flood」は新しいようです。「コードはデザイン」と昔から言いますから、掘り下げてみることにしました。 すると、attack_tcp_lynx()は、attack_tcp_xmas()とかなり似ていることがわかりました。コードは複雑ですが、簡単に言えば、ヘッダーの2つのフラグ(ATK_OPT_RSTとATK_OPT_FIN)がFALSEに設定されています。

Figure 9 LYNX Flood (left) vs Xmas Flood (right)

図9. LYNX Flood(左)とXmas Flood(右)

上のデータベーステーブルの名前(「miori」)、さらにはMIORI(これもXmasフラッディングを導入している)に驚くほど似ていることから、ShinoaとMIORIが関連していると結論付けることができます。

Figure 10 MIORI

図10. MIORI


Miraiの亜種は一体何なのか

数多くのMiraiの亜種のリバースエンジニアリングを行うなか、「スクリプトキディが再び活動しているのでは」という考えが、しばしば頭をよぎりました。そしてリークされたShinoaのソースコードを見て、考えが裏付けられました。

例えば、以下のビルドスクリプトをご覧ください。メインロジックが基本的にMiraiと同じであることがわかります。Shinoaの作成者は、デバッグバイナリをビルドするコードを削除しただけです。

Figure 11 Build Script

図11. ビルドスクリプト

他の多くのケースでは、コードはほとんど同じで、一般的なヘッダーをheaders\'に移動するなど、少々手直しを行った程度です。

Figure 12 Minimal changes

図12. 最小限の変更

FortiGuard Labsのチームは、Kill All IoT Botnets(KAIB)と呼ばれる社内プロトタイプを保有しており、これが新たなMirai亜種の追跡、ダウンロードを行っています。

Figure 13 Kill All IoT Botnets

図13. Kill All IoT Botnets

ご覧の通り、時とともに数多くの亜種が登場してきています。ソースコードの「質が高い」ことを踏まえると、スクリプトキディたちは容易に新たな亜種を作り出せるのでしょう。2016年9月にMiraiのコードが公表されて以来、その派生物が増加していることからも明らかです。幸いにも、フォーティネットのお客様は常に、FortiGuard Antivirusのシグネチャで、あらゆる新しい亜種から保護されています。


まとめ

Miraiのコードがオンライン上で公表されて以来、多くがその改変を試みてきました。その結果、多くの亜種が登場しています。単純な改変(新たな認証情報を追加しただけのものなど)から、感染させたIoTデバイスを、マルウェアのプロキシクリプトマイナーに変えるような高度なものまで、様々です。こうした動向を踏まえると、今後も亜種は増え続けるでしょう。

FortiGuard Labsでは今後もIoTの脅威ランドスケープを監視し、皆様に鋭い調査内容をお伝えしていきます。

追加分析を行い、意見を提供してくれた同僚のDavid Maciejakに感謝します。

-= FortiGuard Lion Team =-


ソリューション

フォーティネットのユーザーは、以下のソリューションでMiraiの亜種から保護されています。

  • FortiGuard Antivirusでファイルを検知
  • FortiGuard Web Filtering Serviceで悪意のあるダウンロードURLやC2をブロック

IOC

ソースコード: 499b4c2bc3396a215682d42ba0f2bdf96492e7f45a15129422f9ecd6134bd3b8
FortiGuard Web Filtering ServiceはShinoaのCCとホスティングサーバーにも対応
91.229.20.98 - Malicious
185.244.25.197 - Malicious