IoTデバイスやルータを侵害しDDoS攻撃を仕掛けるボットネット「Momentum」

トレンドマイクロは、2019年、Linuxを狙うさまざまな攻撃を確認してきました。そうした中、このプラットフォームのデバイスを狙う注目すべき不正活動を確認しました。入手した検体を解析したところ、この不正活動は、ボットネット「Momentum」に関連していることが判明しました。Momentumという名称は、このボットネットが使用している通信チャンネルで確認された画像に由来しています。今回の解析では、デバイスへの感染や分散型サービス拒否(DDoS)攻撃に際してこのボットネットが使用しているツールや手法について新たな詳細を確認しました。

Momentumは、ARM、MIPS、Intel、Motorola 68020などの各種CPUアーキテクチャのLinuxプラットフォームを標的としています。主な目的は、標的のデバイスへバックドア型マルウェアを感染させ、その上でコマンド&コントロール(C&C)サーバからのコマンドを待機し、特定のターゲットへさまざまなサービス拒否(DoS)攻撃を仕掛けることです。このボットネットで拡散されるマルウェアは、Mirai、Kaiten、Bashliteなど一般にIoTボットとされているものです。今回解析した検体はMiraiの亜種となります。その他、このボットネットは、各種ルータやWebサービスの脆弱性複数を悪用し、標的のデバイス上でシェルスクリプトをダウンロードして実行することで自身のネットワークを拡大させます。

■Momentumの活動

Momentumは、バックドア型マルウェアを標的のデバイスに感染させた後、「rc」ファイルを変更して感染デバイス内にとどまります。そしてC&Cサーバに接続した上で、インターネットリレーチャット(IRC)のチャンネル「#HellRoom」に参加して自身を登録し、コマンドを待機します。なお、このIRCプロトコルは、C&Cサーバとの主要な通信方法として悪用されています。こうしてMomentumの運営者は、登録したIRCチェンネルへメッセージを送信することにより、感染デバイスの制御が可能になります。

図1:デバイスは、バックドア型マルウェアの感染後、IRCチャンネルを介して攻撃者のCCサーバへ接続する
図1:デバイスは、バックドア型マルウェアの感染後、
IRCチャンネルを介して攻撃者のC&Cサーバへ接続する

図2:CC通信パス(ダウンローダ/配信サーバおよびIRCサーバ)
図2:C&C通信パス(ダウンローダ/配信サーバおよびIRCサーバ)

上図のとおり、まず配信サーバがバックドア型マルウェアの実行ファイルをホストします。そしてもう1つのサーバがIRCによるC&Cサーバとなります。このC&Cサーバは、2019年11月18日まで稼働していたことが確認されています。

C&Cサーバとの通信が確立すると、Momentumは、自身のボットネット上の感染デバイスを駆使し、さまざまなコマンドを用いて攻撃を仕掛けます。特にDoS攻撃の場合、以下のとおり、多数のさまざまな攻撃手法を展開します。

コマンド 詳細
ACK ACKフラッド攻撃
ADV-TCP TCPフラッディング – SSYN攻撃の改良版
BLACKNURSE ICMPパケットのフラッド攻撃
DNS DNSアンプフラッド攻撃
ECE attacking (Not in use) SYNフラッド攻撃の一種
ESSYN ExecuteSpoofedSynフラッド攻撃
FIN attacking (Not in use) FINフラッド攻撃
FRAGACK ACKフラグメンテーションフラッド攻撃
FRAG-TCP なりすましTCPフラグメンテーションフラッド攻撃
GRE GREフラッド攻撃
HOLD (Not in use) TCP接続フラッド攻撃(フラグ)
HTTP HTTフラッド攻撃
HTTPFLOOD HTTPフラッディング
JUNK TCPフラッド攻撃(フラグ)
LDAP LDAPアンプフラッド攻撃
MEMCACHE MEMCACHEアンプフラッド攻撃
NSACK ACKフラッド攻撃の一種
NSSYN SYNフラッド攻撃の一種
OVH UDPフラッディング (DOMINATE)の一種
PHATWONK 一度に複数の攻撃:TCPクリスマスツリースキャン(FIN、URG、PSHフラグのパケットの同時送信)や、すべてのフラグのパケットの同時送信、USYNスキャン(URGおよびSYNフラグのパケットの同時送信)、任意のTCPフラグのパケットの組み合わせによる同時送信などのフラッド攻撃
RTCP ランダムなTCPフラッド攻撃の
フラグメンテーションパケットヘッダ
SACK TCPフラッド攻撃の一種
SEW Attack SYNフラッド攻撃の一種
SSYN2 SYNフラッド攻撃の一種
STUDP STDフラッド攻撃
SYN SYNフラッド攻撃
SYNACK SYN-ACKフラッド攻撃
TCPNULL TCP-Nulledフラッド攻撃 –
フラグ無しでTCPパケットによるフラッド攻撃
UDP UDPフラッド攻撃
UDP-BYPASS UDPフラッド攻撃の一種 (vulnMix)
UNKNOWN UDPフラッド攻撃
URG attacking 不明
VOLT-UDP なりすましUDPフラッド攻撃
ほとんどのファイアウォールをバイパスl
VSE バルブソースエンジン増幅
(Valve Source Engine Amplification)
XMAS TCPクリスマスフラッド攻撃
(TCPクリスマスツリースキャン:FIN、URG、PSHフラグのパケットの同時送信)

表1:ボットネット「Momentum」が行使可能がDoS攻撃の手法一覧

このバックドア型マルウェアは、既知のリフレクション手法やアンプ手法を用いることで、分散型メモリキャッシュシステムのモジュール「Memcache」、ディレクトリサービスのアクセスプロトコル「LDAP」、IPアドレスとドメイン名の管理システム「DNS」、Valve社開発の汎用ゲームエンジン「Valve Source Engine」など、さまざまなサービスを利用して標的に攻撃を仕掛けます。リフレクション、アンプ攻撃では標的サーバのIPアドレスに偽装して利用するサービスに通信することにより、大量の応答が標的に集中するように仕向けます。こうして発生した大量の応答が、標的サーバを圧倒し、被害が発生することになります。

なお、Momentumは、DoS攻撃だけでなく、その他、指定されたIPのポートでプロキシを開いたり、クライアントのニックネームを変更したり、クライアントからのパケットを無効や有効にしたり、複数の不正活動が実行できることも確認されました。

以下、Momentumが行使可能な各種DoS攻撃について説明します。

■Momentumによる各種DoS攻撃

LDAP DDoSリフレクション攻撃

この攻撃の場合、デバイスに感染したバックドア型マルウェアは、LDAPの公開サーバへアクセス可能で同時に標的でもある特定のシステムのソースIPアドレスになりすまします。これにより、最終的に標的のシステムに対して大量の応答が送信されることになります。

Memchache攻撃

この攻撃の場合、遠隔の攻撃者が、標的のシステムになりすましたソースIPアドレスを用いて、脆弱なUDP memcachedサーバに対して(通信プロトコルUDPによる)不正なUDPリクエストを作成して送信します。これにより、Memcachedサーバから膨大の応答が標的のシステムへ送信されることになります。この際、Momentumは、HTTP GETリクエストを使用してリフレクションファイルをダウンロードします。なお、このHTTP GETリクエストは、別のアンプDoS攻撃を行使する際にも使用されます。

オンライン検索エンジン「Shodan」のデータによると、この攻撃の影響を受ける可能性がある脆弱性なMemcachedサーバの数は、4万2,000台以上に至ることが確認されています。

Momentumは、以下のHTTP GETリクエストを使用して、リフレクションファイルをダウンロードします。

GET / HTTP/1.1
User-Agent: Mozilla/4.75 [en] (X11; U; Linux 2.2.16-3 i686)
Host: <HOST_Address>:80
Accept: */*
Connection: Keep-Alive

UDP-BYPASS攻撃

この攻撃の場合、Momentum上の正規の通信プロトコルUDPによって特定のポートを介し、標的となるホストへフラッド攻撃が仕掛けられます。攻撃に際しては、デバイスに感染したマルウェアが任意のポートをランダムに選択します、これにより、各ポートに対応した攻撃が、標的のホストへ送信されることになります。この際、マルウェアは複数のスレッドを使用し、各スレッドに振り分けられたポートを介して攻撃が仕掛けられます。

フラッド攻撃は、各ポートに応じて以下のように異なります。

ポート番号 フラッド攻撃 詳細
500 \x00\x11\x22\x33\x44\x55\x66\x77\x00\x00\x00\x00\x00\x00\x00\x00\x01\x10\x02\x00\x00\x00\x00\x00\x00\x00\x00\xC0\x00\x00\x00\xA4\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x98\x01\x01\x00\x04\x03\x00\x00\x24\x01\x01\x00\x00\x80\x01\x00\x05\x80\x02\x00\x02\x80\x03\x00\x01\x80\x04\x00\x02\x80\x0B\x00\x01\x00\x0C\x00\x04\x00\x00\x00\x01\x03\x00\x00\x24\x02\x01\x00\x00\x80\x01\x00\x05\x80\x02\x00\x01\x80\x03\x00\x01\x80\x04\x00\x02\x80\x0B\x00\x01\x00\x0C\x00\x04\x00\x00\x00\x01\x03\x00\x00\x24\x03\x01\x00\x00\x80\x01\x00\x01\x80\x02\x00\x02\x80\x03\x00\x01\x80\x04\x00\x02\x80\x0B\x00\x01\x00\x0C\x00\x04\x00\x00\x00\x01 Internet Key Exchange
バージョン1、
フェーズ1
メインモード
1434 \x02 MS-SQL
Ping試行
5353 \x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x09_services\x07_dns-sd\x04_udp\x05local\x00\x00\x0C\x00\x01 DNSサービス検出
8767 xf4\xbe\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x002x\xba\x85\tTeamSpeak\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nWindows XP\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00 \x00<\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08nickname\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 TeamSpeak 2 UDP
ログインリクエスト
9987 \x05\xca\x7f\x16\x9c\x11\xf9\x89\x00\x00\x00\x00\x02\x9d\x74\x8b\x45\xaa\x7b\xef\xb9\x9e\xfe\xad\x08\x19\xba\xcf\x41\xe0\x16\xa2\x32\x6c\xf3\xcf\xf4\x8e\x3c\x44\x83\xc8\x8d\x51\x45\x6f\x90\x95\x23\x3e\x00\x97\x2b\x1c\x71\xb2\x4e\xc0\x61\xf1\xd7\x6f\xc5\x7e\xf6\x48\x52\xbf\x82\x6a\xa2\x3b\x65\xaa\x18\x7a\x17\x38\xc3\x81\x27\xc3\x47\xfc\xa7\x35\xba\xfc\x0f\x9d\x9d\x72\x24\x9d\xfc\x02\x17\x6d\x6b\xb1\x2d\x72\xc6\xe3\x17\x1c\x95\xd9\x69\x99\x57\xce\xdd\xdf\x05\xdc\x03\x94\x56\x04\x3a\x14\xe5\xad\x9a\x2b\x14\x30\x3a\x23\xa3\x25\xad\xe8\xe6\x39\x8a\x85\x2a\xc6\xdf\xe5\x5d\x2d\xa0\x2f\x5d\x9c\xd7\x2b\x24\xfb\xb0\x9c\xc2\xba\x89\xb4\x1b\x17\xa2\xb6 TeamSpeak 3 UDP
ログインリクエスト
1604 \x1e\x00\x01\x30\x02\xfd\xa8\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 Citrix MetaFrame
アプリケーション
ブラウザ サービス
1900 \x4d\x2d\x53\x45\x41\x52\x43\x48\x20\x2a\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0D\x0A\x48\x6f\x73\x74\x3a\x32\x33\x39\x2e\x32\x35\x35\x2e\x32\x35\x35\x2e\x32\x35\x30\x3a\x31\x39\x30\x30\x0D\x0A\x53\x54\x3a\x73\x73\x64\x70\x3a\x61\x6c\x6c\x0D\x0A\x4d\x61\x6e\x3a\x22\x73\x73\x64\x70\x3a\x64\x69\x73\x63\x6f\x76\x65\x72\x22\x0D\x0A\x4d\x58\x3a\x33\x0D\x0A\x0D\x0A SSDP
623 \x06\x00\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x20\x18\xc8\x81\x00\x38\x8e\x04\xb5 インテリジェントプラットフォーム管理インターフェイス(IPMI)– RMCP Get Channel Auth機能
626 SNQUERY: 127.0.0.1:AAAAAA:xsvr シリアル番号化 – Mac OS X サーバ
1194 8d\xc1x\x01\xb8\x9b\xcb\x8f\0\0\0\0\0 オープンVPN P_CONTROL_HARD_RESET_CLIENT_V2
520 \x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 RIP –ルーティング情報プロトコル
バージョン1
177 \x00\x01\x00\x02\x00\x01\x00 xdmcp – Xディスプレイ
マネージャー制御プロトコル
389 \x30\x84\x00\x00\x00\x2d\x02\x01\x07\x63\x84\x00\x00\x00\x24\x04\x00\x0a\x01\x00\x0a\x01\x00\x02\x01\x00\x02\x01\x64\x01\x01\x00\x87\x0b\x6f\x62\x6a\x65\x63\x74\x43\x6c\x61\x73\x73\x30\x84\x00\x00\x00\x00 コネクションレスLDAP
161 \x30\x3A\x02\x01\x03\x30\x0F\x02\x02\x4A\x69\x02\x03\x00\xFF\xE3\x04\x01\x04\x02\x01\x03\x04\x10\x30\x0E\x04\x00\x02\x01\x00\x02\x01\x00\x04\x00\x04\x00\x04\x00\x30\x12\x04\x00\x04\x00\xA0\x0C\x02\x02\x37\xF0\x02\x01\x00\x02\x01\x00\x30\x00 SNMPv3
リクエスト取得
53 %getPayload%getPayload\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03\x77\x77\x77\x06\x67\x6f\x6f\x67\x6c\x65\x03\x63\x6f\x6d\x00\x00\x01\x00\x01 querydns
7 \x0D\x0A\x0D\x0A エコーサービス
111 \x72\xFE\x1D\x13\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x86\xA0\x00\x01\x97\x7C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 RPCチェック

表2:ポートおよび攻撃内容

上記のスクリプトは、主にサービスの検出に使用されます。このため、これらが長期に渡り標的のデバイスに送信されることで、該当サービスがクラッシュし、結果的にサービス拒否が発生することになります。

Phatwonk攻撃

この攻撃の場合、TCPクリスマスツリースキャン(FIN、URG、PSHフラグのパケットの同時送信)や、すべてのフラグのパケットの同時送信、USYNスキャン(URGおよびSYNフラグのパケットの同時送信)、任意のTCPフラグのパケットの組み合わせによる同時送信など、複数のDoS攻撃が一度に実行されます。

■その他の機能

上述の攻撃は、ボットネットが駆使する他の機能に依存することで大きな成果を上げることができます。例えば、拡散されるマルウェアが備える検出回避機能、公開サーバ上での通信を維持する機能、その他の各種機能が挙げられます。

特に以下の機能は、ボットネットを介してマルウェアを拡散させ、デバイスへ感染させる上で有効です。

  • Fast-Flux手法:Momentumは、C&Cサーバのネットワーク復元力を高めるためにこの手法を駆使します。この手法により、特定のドメイン名に複数のIPアドレスを関連づけられ、それらをすばやく連続的に変更させるFast-Fluxネットワークが確立されます。これにより、攻撃者は、セキュリティリサーチャーの追跡を回避したり混乱させたりすることが可能になります。
  • バックドア機能:攻撃者は、BASH、SHD、もしくはSHなどのコマンドをボットネット上のIRCチャンネルに送信します。そして感染デバイスがこれらのコマンドを受信して実行します。これらのコマンド内容が該当のIRCチャンネルへ応答されることで、攻撃者は、感染デバイスをコントロールすることが可能になります。
  • 脆弱性を介した拡散:Momentumは、複数の脆弱性を悪用して影響範囲を拡大せます。今回調査したC&Cサーバだけでも、その範囲は、1,232台のデバイスに及んでいます。Momentumの他の亜種およびそれに利用されるC&Cサーバを含めると、範囲はさらに大きくなる可能性があります。

■被害に遭わないためには

スマートデバイスやネットワーク機器は、セキュリティ設定と保護オプションが限定されており、さまざまな脅威にさらされやすい状況にあります。これらのデバイスは、多くの場合、セキュリティよりも操作性を優先する形で製造されており、ユーザは、こうした条件を念頭に、ご使用のデバイス、特にルータを保護するためのセキュリティ対策を講じる必要があります。とりわけ、Momentumの場合、Linuxデバイスを対象としています。近年、Linuxプラットフォームを狙うボットネットランサムウェアコインマイナーなどの攻撃が表面化しており、このようなデバイスを攻撃から保護するセキュリティ対策を講じることが求められています。

■トレンドマイクロの対策

Trend Micro Smart Home Network(SHN)は、家庭用ネットワークに接続されたすべてのデバイスに対するネットワークアクセス管理を可能にし、サイバー攻撃のリスクから守る組込み型ネットワークセキュリティソリューションです。大手家庭用ルータベンダーの多くがすでにこのソリューションを採用し、すでに国内外の100万以上の家庭で利用いただいており、トレンドマイクロの豊富な脅威リサーチの経験と業界をリードするDPI(Deep Packet Inspection)技術に基づいて、SHNはインテリジェントなサービス品質(QoS)、保護者による利用制限(ペアレンタルコントロール)、ネットワークセキュリティなどを提供します。

統合型サーバセキュリティソリューション「Trend Micro Deep Security™」は、仮想パッチ機能によって脆弱性を狙う攻撃からサーバを防御します。家庭用ルータを中心に構成されるホームネットワークを保護する「ウイルスバスター for Home Network」では、接続されている各デバイスへの脆弱性を悪用する攻撃をネットワークレイヤでブロックします。トレンドマイクロ製品に組み込まれたクロスジェネレーション(XGen)セキュリティアプローチは、高度な機械学習型検索を活用しエンドポイントのデータとゲートウェイおよびアプリケーションを守ります。XGenは、従来の検出技術を回避し、既知、未知および未公開の脆弱性を突くなどの今日の目的に特化した脅威からユーザを保護します。

トレンドマイクロのネットワーク挙動監視ソリューション「Deep Discovery™」は、ネットワーク内に侵入した標的型攻撃などの脅威による活動の兆候を可視化することができます。今日の気づけない標的型攻撃や巧妙化する脅威をリアルタイムで検出および分析し、対処できます。専用のエンジンとカスタムサンドボックス機能を使用し、攻撃のライフサイクル全体に対する相関分析を可能にします。

■侵入の痕跡(Indicators of Compromise、IoC)

今回の記事に関する侵入の痕跡はこちらを参照してください。

参考記事:

翻訳: 与那城 務(Core Technology Marketing, Trend Micro™ Research)