拡大を続けるIoTボットネット – Satori、JenX、OMG、Wicked

2018年5月31日 ASERTチーム

概要

IoT(モノのインターネット)を標的にした革新的なマルウェアと見られているMiraiは、地球上で破壊を続け、IoTマルウェアを普及させてきました。2016年、Miraiは複数の攻撃者に利用され、様々なインターネット資産やサービスに対して派手で大規模なDDOS攻撃が繰り返されました(*1)。Miraiのソースコードが公開されて以来、IoTボットネットの作成者は新しいマルウェアを作るフレームワークとしてMiraiを使ってきました。そして、改良を加えながら新しい機能を追加してオリジナルのコードを拡張してきました。
このブログでは、Miraiの4つの亜種であるSatori、JenX、OMG、Wickedについて考察します。これらの作者はMiraiを土台にして各自のセンスを加えています。Satoriはリモート・コード・インジェクション・エクスプロイトを活用し、Miraiコードを拡張しました。一方でJenXは、そのコードからいくつかの機能を取り除き、その部分はスキャンやエクスプロイトのための外部ツールに頼っています。
OMGもMiraiのレガシーに加えられました。OMGは、HTTPプロキシとSOCKSプロキシの形式で新しい機能を追加します。これらのプロキシの機能によって、感染したIoTデバイスはピボット(中継)ポイントとしての働きをします。ボットの作成者は現在、新たな脆弱性に対する追加のスキャンや、オリジナルのバイナリーのアップデートをせずに追加の攻撃を柔軟に実行できます。IoTデバイスの種類や接続の仕方によっては、感染したIoTデバイスに接続されたプライベートネットワークにも到達できます。
最後に登場したのがWickedです。その特徴は、リモートコード実行(RCE)の欠陥に対する脆弱性を持つNetgear製のルーターとCCTV-DVRデバイスを標的にしていることです。RCEエクスプロイト内では、Owariボットのコピーをダウンロードして実行する命令が含まれています。しばしばデバイスのスキャンとエクスプロイトは自動化される可能性があり、その結果、感染しやすいデバイスがボットネットの一部になります。

IoTについて

IoTは、広範なデバイスが対象になります。(これだけではありませんが)主なデバイスは以下のとおりです。
オペレーティングシステムが稼働してネットワーク機能(ネットワーク上でデータの送受信を行う)を持つ組み込みデバイスはすべて、IoTデバイスと考えられます。IoTデバイスは市場に投入されるのが早く、低コストです。これらのデバイスは基本的な脆弱性に悩まされます。この脆弱性は主に以下のとおりです。
ほとんどのIoTデバイスはこれらの脆弱性を持っています。修正パッチがリリースされていても、ほとんど適用されていません。消費者はIoTデバイスをコンセントにつないだらセキュリティについて考えませんし、セキュリティのアップデートやパッチを定期的に適用する必要性など理解していないでしょう。IHS Markit(*2)の最新の分析では、2017年にはおよそ270億のデバイスがネットワークに接続されており、2030年には1250億に増えると言われています。これらのデバイスはマルウェアの作成者にとって、とても魅力的なターゲットです

IoTマルウェアについて

2016年の後半、DNSのホスティング会社やプロバイダーに対する派手なDDoS攻撃が観測されました。多くの主要なオンラインサービスに影響がありました。この攻撃の中心的なマルウェアがMiraiでした。
Miraiは、IPカメラや家庭用ルーターのtelnetに対するブルートフォース攻撃を使って、強固な基盤を構築します。Miraiが使用する認証情報リストは、工場出荷時のデフォルトの認証情報で構成されます。Miraiのソースコードは、2016年9月30日に公開されました。それ以来、Miraiのソースコードは、最近の多くのIoTボットネットに大きな影響を与えています。そのIoTボットネットは以下のとおりです。

Satoriについて

当社では、2017年12月から2018年1月の間に、いくつかのSatoriの亜種が出回っているのを観測しました。どれもがMiraiを土台にしたものでした。亜種2 (977534e59c72dafd0160457d802f693d)は、デフォルトの認証情報をスキャンし、亜種3 (440af2606c5dc475c9a2a780e086d665ca203f01)は、2つのリモート・コード・エクスプロイトを加えていました。亜種4 (9c677dd17279a43325556ec5662feba0)は、ARCアーキテクチャーを狙った初めてのIoTボットだったため、大きな注目を集めました。
Satoriの亜種3を見てみましょう。この亜種は、Miraiと同じコンフィグレーションテーブルを使います(図1および図2参照)。亜種3はまた、Miraiと同じ文字列難読化手法を使い、XORキーを「0x07」に修正するだけです。これらの同じ機能はOMGでも見られます。後述しますが、OMGの場合、作成者は「deadbeef」のXORキーを利用します。「deadbeef」のXORキーは、Miraiのソースコードのオリジナルのキーです。

図1:Satoriのコンフィグレーションテーブル (table_init) 機能

図2:Miraiのコンフィグレーションテーブル (table_init) 機能
図3で示すHuawei製の家庭用ゲートウェイのエクスプロイトのように、作成者はMiraiのソースコードを異なるエクスプロイトにまで拡張します。

図3:Huawei製の家庭用ゲートウェイのエクスプロイト
上記の亜種3のSHA1は、440af2606c5dc475c9a2a780e086d665ca203f01で、2017年12月5日にVirus Totalに初めて登録されました。

JenXについて

JenXは、Miraiが元となっている基本的なコードを持つ IoTボットネットのもう一つの例です。MiraiのDDoS機能をいくつか持っていて、Miraiと同じコンフィグレーションテーブルと文字列難読化手法を使います。図4と図5はJenXとMiraiにおけるattack_udp_generic攻撃コードの比較です。OMGはJenXといくつか似た点がありますが、一つ違う部分はMiraiが元となるHTTP DDoS攻撃の使用です。HTTP DDoS攻撃はJenXからは取り除かれましたが、OMGでは今も利用可能です。

図4:JenXのattack_udp_generic DoS攻撃

図5: Miraiのattack_udp_generic DoS攻撃
JenXは、Miraiと同様のコンフィグレーションテーブルにC2を保存する代わりに、図6に示したようにCnCのIPアドレスをハードコードします。

図6:resolve_cnc_addr 機能
JenXはスキャンとエクスプロイトの機能を取り除きました。別のシステムがこの機能を操作します。これはMirai、Satori、OMGからの脱却を意味します。他の研究者が指摘しているように、JenXは現在、ビデオゲームのGrand Theft Auto San Andreasのプレイヤーにのみ対象を絞っているようです。
上記のJenXサンプルのSHA1は、5008b4a7048ee0a013465803f02cb9c4bffe9b02で、2018年2月1日にVirus Totalに初めて登録されました。

OMGについて

OMGボットネットは、最も興味深いMiraiの亜種の一つです。OMGはフレームワークとしてMiraiを使い、Miraiの機能をすべてサポートします。OMGを際立たせているのは、Miraiのコードをプロキシサーバーにまで拡張する方法です。OMGは3proxyを組み込んで、感染したIoTデバイスのSOCKSもしくはHTTPプロキシサーバーを有効にします。ボットの作成者は、これらの2つの機能によって、感染したIoTデバイスを通して任意のトラフィックをプロキシすることが可能です。新たな脆弱性への追加のスキャンを組み込んで、さらなる攻撃を行い、感染したIoTデバイスからそのデバイスに接続された他のネットワークまで到達します。
OMGは、Mirai、Satori、JenXと同じ種類のコンフィグレーションテーブルを活用して、プロキシサーバーへのアクセスを許可するiptablesのルールを有効にしたり無効にしたりします。OMGはコンフィグレーションテーブルに2つの新しいエントリーを加えて、iptablesのルールの追加や削除を操作します(図7)。

図7:OMGのコンフィグレーションテーブル (table_init) 機能
上記のコンフィグレーションテーブルで参照された難読化されているiptablesコマンドの断片が図8です。「deadbeef」のXORキーを使って、難読化が解除されたiptablesコマンド(図9)を取得できます。

図8:OMGのXOR化されたiptablesコマンド

図9:OMGの難読化が解除されたiptablesコマンド
iptablesのルールをコントロールする機能が図10です。コマンドレトリーブがコンフィグレーションテーブルの値(図7)にアクセスするのに利用されます。

図10:OMGのiptables 機能
上図が示すように、OMGの作成者はMiraiの新しいプロキシ機能を操作できるようにオリジナルのソースコードを拡張します。
上記のOMGサンプルのSHA1は、0ed366c1af749cbda25ff396f28a6b7342d5dcd9で、2018年1月15日にVirus Totalに初めて登録されました

Wickedについて

Wickedは最近登場してきたMiraiの最新亜種です。Satoriの亜種3と類似していて、Miraiの認証情報スキャン機能ではなく自身のRCEスキャナーを使います。WickedのRCEスキャナーはNetgear製のルーターおよびCCTV-DVRデバイスをターゲットにします。図11は、RCEペイロードが定義されるスキャナー機能の一部です。

図11:RCEエクスプロイト
WickedはMiraiの文字列難読化手法を使う昔ながらの伝統を継続しています。以前の亜種のように、「0xdeadbeef」からXORキーを転換します。図12に示すとおり、「0x37」で終わる難読化された文字列が確認できます。通常C文字列はヌル終端されなければならないので、これを見るとWickedがXORキーとして「0x37」を使っていることがよくわかります。

図12:Wickedの難読化された文字列
XORキーに「0x37」を使って、難読化された文字列を復号することができます。復号化された文字列を調べていると、以下のようなアスキーアートが見つかりました。
Wickedは以下の場所にメッセージを記述します。
現在のところ、これらのファイルはWickedによって使用されているようには見えません。おそらくは作成者が名刺的なものとして使用しているのでしょう。
上記のWickedサンプルのSHA1は、b8e8c107d242cc0b7516cf7908b67e108a7d927eで、2018年5月5日にVirus Totalに初めて登録されました。

Mirai DDoSの攻撃タイプ

前述のIoTボットネットはすべて、Miraiのオリジナルソースコードによってサポートされる同種の攻撃タイプを使います。MiraiとOMGは以下のDDoS機能を有しています。
備考:Satori、JenX、Wickedは、HTTP攻撃を除き、同じDDoS機能を実行できます。

Mirai DDoS攻撃の防御

すべての関連するネットワークインフラ、ホスト、アプリケーション、サービス、DNSのベストカレントプラクティス(BCP)は、ネットワーク運用者によって、公開されたネットワークインフラとインターネット資産の両方またはいずれか一方に実装されなければなりません。Arbor SPを利用している企業は、フローテレメトリー(NetFlow、IPFIX、s/Flow、cflowd/jflow、Netstreamなど)をアプライアンスに取り込んでおり、DDoS攻撃の検知・分類・解明が可能です。
フローテレメトリーは攻撃しているIoTデバイスのIPアドレスと使用される攻撃タイプを特定するのに使われます。攻撃者がスプーフィングされていないDDoS攻撃を使用した場合、攻撃しているIoTデバイスはArbor SP/TMSのブラックリストとホワイトリストを使ってブロックできます。
Arbor SP/TMSの最新版では、これらのIoTボットネットからのDDoS攻撃をすばやく検知・分類・解明・緩和する機能に加え、自動化やプロビジョニングを提供する機能がより高度に拡張されています。

結論

ボットネットの作成者は、フレームワークとしてMiraiを使用して、すぐに新しいエクスプロイトや機能を追加することが可能で、ボットネットの開発時間を劇的に減らすことができます。MiraiのソースはDDoS攻撃に限られたことではありません。Satoriの亜種にはイーサリウムマイニングのクライアントを攻撃するものが発見されました(*3)。上記で考察してきた4つのサンプルを見ればわかるように、ボットネットの作成者はすでにMiraiのソースコードを彼らのビルディングブロックに使用しています。IoTデバイスの増加は鈍化しているようには見えません。IoTボットネットは引き続き増加すると考えられます。Miraiの遺物が新しいボットネットに生きているのです。
マルウェアの作者は、自動化された方法でIoTベースのマルウェアを活用し続けます。ワームのように拡散させ、ネットワークプロキシ機能を使い、インターネットにつながったデバイスの脆弱性を自動でエクスプロイトすることで、ボットネットのサイズを急速に拡大します。企業は自分たちを守るために、適切なパッチやアップデート、そしてDDoSミティゲーション戦略を実施することが重要です。
脚注: