この投稿は、Edmund Brumaghin、Andrew Williams、Alain Zidouemba が執筆しました。
エグゼクティブ サマリー
Talos は、最近のインシデント対応(IR)において新たなマルウェア ファミリを特定しました。このマルウェアは、インターネットからアクセス可能な SSH サーバの侵害に利用されていたものです。GoScanSSH という名前のこのマルウェアは、Go プログラミング言語で作成されており、いくつか興味深い特徴がありました。Talos が監視してきた中で、Go で作成されたマルウェア ファミリはこれが初めてというわけではありませんが、このプログラミング言語で作成されているのは、比較的珍しいと言えます。今回のケースでは、GoScanSSH マルウェアに感染したホストごとに、固有のマルウェア バイナリが作成されていたことも判明しました。さらに、GoScanSSH のコマンドアンドコントロール(C2)インフラストラクチャは、Tor2Web プロキシ サービスを利用していたため、攻撃者が制御しているインフラストラクチャの追跡や解析が困難でした。
最初の感染プロセス
GoScanSSH が利用した最初の感染ベクトルは、パスワードベースの SSH 認証が可能な公開 SSH サーバに対する、SSH クレデンシャルのブルートフォース アタックである可能性が高いと考えられます。この一連の攻撃では、7,000 を超えるユーザ名とパスワードの組み合わせを含む単語リストが利用されていました。攻撃者によって SSH 認証に成功する有効なクレデンシャル セットが割り出されると、固有の GoScanSSH マルウェア バイナリが作成され、侵害された SSH サーバにアップロードされます。その結果、マルウェアが実行され、システムに感染します。
このマルウェアに使用されたユーザ名とパスワードの組み合わせは、Linux ベースのさまざまなデバイスにおいてデフォルトとなっているクレデンシャル、または脆弱なクレデンシャルをターゲットにしていると思われます。以下のユーザ名は、マルウェアが SSH サーバの認証を試みるために使用しているものです。
admin
guest
oracle
osmc
pi
root
test
ubnt
ubuntu
user
これらのクレデンシャルの組み合わせは、特に以下を対象としていました。
- Open Embedded Linux Entertainment Center(OpenELEC)
- Raspberry Pi
- Open Source Media Center(OSMC)
- Ubiquiti デバイスのデフォルト クレデンシャル
- ジェイルブレイクした iPhone
- PolyCom SIP 電話のデフォルト クレデンシャル
- Huawei デバイスのデフォルト クレデンシャル
- Asterisk のデフォルト クレデンシャル
- さまざまなキーボード パターン
- よく知られている一般的なパスワード
GoScanSSH マルウェア特有の動作と、このマルウェアにみられる使用可能な機能の詳細については、次のセクションに記載します。
マルウェアの動作
GoScanSSH は、Linux システムを対象として Golang(Go)プログラミング言語で作成されたマルウェアです。Talos は、分析の過程で GoScanSSH マルウェア ファミリに関連する 70 種類以上のマルウェア サンプルを発見し、x86、x86_64、ARM、MIPS64 などの複数のシステム アーキテクチャ向けにコンパイルされた GoScanSSH サンプルの例を確認しました。また、GoScanSSH の MIPS64 バージョンの分析中に、Ubiquiti Enterprise Gateway Router ユーザが、そのルータでマルウェアが実行されているのを発見したというスレッドを確認しました。このことから、このマルウェアはさまざまなデバイス タイプに拡散されて実行されていることがわかります。このマルウェアのさまざまなバージョン(バージョン 1.2.2、1.2.4、1.3.0 など)が出回っていることも確認されていることから、この脅威は積極的に開発が進められ、改良が加えられていると思われます。
GoScanSSH マルウェアは、感染直後に対象システムがどの程度強力であるかを判断しようとします。一定期間内に何回ハッシュ計算を実行できるかによって判断され、その結果は、マルウェアが C2 サーバに「checking_in」メッセージを送信する際に、対象マシンに関する基本的な調査情報とともに、C2 サーバに送信されます。このメッセージは、C2 サーバ送信前に暗号化されます。このメッセージを復号すると、次のような JSON 形式で送信されていることがわかります。
また、マルウェアは固有識別子を取得しており、上記の要求に見られるように、これも C2 サーバに送信されます。Talos は、分析対象のサンプルでこれらの識別子を多数確認しましたが、同じ識別子は 2 回しか出現しませんでした。確認されたさまざまな識別子の例を以下に示します。
Talos が分析した GoScanSSH サンプルでは、以下の C2 サーバ ドメインにアクセスするようにマルウェアが設定されていました。
hXXp://5z5zt3qzyp6j4bda[.]onion[.]link
hXXp://5z5zt3qzyp6j4bda[.]onion[.]to
hXXp://3xjj3i6rv3bdxd6p[.]onion[.]link
hXXp://3xjj3i6rv3bdxd6p[.]onion[.]to
hXXp://b4l7gbnyduslzhq4[.]onion[.]link
hXXp://b4l7gbnyduslzhq4[.]onion[.]to
これらのドメインへのアクセスには、Tor2Web プロキシ サービスが使用されています。このサービスを使用すると、標準インターネット上のシステムは、Tor クライアントをインストールせずに、Tor でホストされているリソースにアクセスできます。Talos では、このブログ投稿に記載されているように、Tor2Web プロキシ サービスを利用するマルウェアが拡大しているのを確認しています。Tor2Web を活用することで、攻撃者は、マルウェアに Tor の機能を追加せずに、Tor ネットワーク内で C2 インフラストラクチャをホストすることができます。
侵害されたホストと C2 インフラストラクチャの間の通信は認証され、侵害されたホストがハイジャックされることはありません。そのために、感染システムと C2 サーバ間で送信されるメッセージは、ランダムに生成された秘密鍵を使用して AES 規格で暗号化されます。また、秘密鍵も RSA 非対称暗号化方式で暗号化されますが、RSA 公開キーは、マルウェアのバイナリ内でハードコードされています。暗号化された秘密鍵と、送信される JSON 形式のコンテンツが連結されて、base64 でエンコードされ、HTTP GET リクエストの URI 部分として C2 サーバに送信されます。
SSH スキャン活動を開始する前に、マルウェアは、前述の HTTP GET リクエスト(「checking_in」メッセージに関連付けられた JSON データ構造の SHA256 ハッシュ含む)に対する C2 サーバからの応答を待機します。応答が返ってこなかった場合、マルウェアはスリープ機能を実行し、このプロセスを再試行します。
Talos が Cisco Umbrella Investigate を使用して、上記ドメイン内の、ある C2 ドメインを解決しようとする DNS 要求を分析したところ、その数が大幅に増加していることがわかりました。これは、侵害されたホストの数が増大し続けていることを示している可能性があります。
分析したすべてのサンプルから収集された、全 C2 ドメインに関連するパッシブ DNS データを分析したところ、2017 年 6 月 19 日にさかのぼってドメイン解決の試みが確認されたため、この攻撃キャンペーンは少なくとも 9 ヵ月間継続していることになります。さらに、解決要求数が最大の C2 ドメインでは、その数が 8,579 回に及んでいます。
以下のグラフは、Talos が特定した悪意のあるドメインすべてに対する DNS アクティビティの総数を示しています。
現在進行中のこの活動に関連していることを Talos が特定した 250 ドメインの全リストは、本ブログの「侵害の兆候(IOC)」セクションに掲載されています。
脆弱な SSH サーバのスキャン
GoScanSSH マルウェアが実行する主な機能の 1 つに、インターネットからアクセス可能な、脆弱な SSH サーバをスキャンして、新たに特定する機能があります。これにより、さらに侵害が発生する可能性があります。マルウェアがスキャンを行う場合、まずランダムに IP アドレスを生成します。その際、特殊用途のアドレスは除きます。次に、生成された IP アドレスを、マルウェアがスキャンの対象外としている CIDR ブロックのリストと比較します。このリストの内容は、さまざまな政府機関および軍事機関によって主に管理されているネットワークの範囲です。特に、ここに記載されている米国国防総省に割り当てられた範囲は除外されます。また、このリストには、韓国の組織に割り当てられたネットワーク範囲も含まれています。選択された IP アドレスがこれらのネットワーク範囲に該当すると破棄され、新しい IP アドレスが生成されます。
その後、マルウェアは選択された IP アドレスの TCP/22 への TCP 接続を確立しようとします。接続の確立に成功すると、マルウェアは逆引き DNS ルックアップを実行して、IP アドレスからドメイン名に解決されるかどうかを判断します。逆引き DNS ルックアップでドメインが返される場合、さまざまな政府機関および軍事機関に関連するドメインのリストと比較されます。ドメインがリストのいずれかのエントリと一致すると、接続は終了して、IP は破棄され、新しい IP が生成されます。このプロセスに含まれる CIDR ブロックおよびドメインのリストは、付録 A および B に記載されています。
選択された IP アドレスがさらなる攻撃対象として最適であると判断すると、マルウェアは、ユーザ名とパスワードの組み合わせを含む前述の単語リストを使用して、システムに対して認証を試行し、有効な SSH クレデンシャルを取得しようとします。取得に成功した場合、マルウェアは C2 サーバに報告を返します。C2 サーバに返す通信では、バナーと、攻撃の状態に関するその他の情報を、以下の JSON 形式で送信します。
攻撃者は、侵害したシステムごとに新しくマルウェア バイナリをコンパイルして、新しいホストに感染するというプロセスを繰り返すと思われます。
まとめ
これらの攻撃によって、インターネットからアクセス可能なサーバは、サイバー犯罪者に攻撃されるリスクを常に抱えていることがわかります。組織は、ベスト プラクティスを適用して、世界中の攻撃者が絶え間なく仕掛けているこうした攻撃から、リスクにさらされているサーバを確実に保護していく必要があります。組織は、新しいシステムを実稼働環境に導入する前に、システムのセキュリティ強化とデフォルト クレデンシャルの変更を確認し、当該システムを侵害しようとする試みがないか継続的に監視する必要があります。Talos は、本稿で取り上げた攻撃はもちろんのこと、脅威状況全体にわたり監視と追跡を続けており、こうした脅威が時間とともに進化し続けてもお客様を保護できるように努めています。
カバレッジ
お客様がこの脅威を検出してブロックできる別の方法を以下に記載します。
Advanced Malware Protection(AMP)は、これらの攻撃者によるマルウェアの実行の阻止に最適です。
CWS や WSA の Web スキャンは、悪意のある Web サイトへのアクセスを阻止し、それらの攻撃に使用されたマルウェアを検出します。
E メール セキュリティ は、攻撃の一環として攻撃者が送りつける不正なE メールをブロックします。
NGFW や NGIPS、および Meraki MX などのネットワーク セキュリティ アプライアンスにより、この脅威に関する悪意のあるアクティビティを検出できます。
AMP Threat Grid は、悪意のあるバイナリを特定し、すべてのシスコ セキュリティ製品に保護機能を組み込みます。
シスコのセキュア インターネット ゲートウェイ(SIG)である Umbrella は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。
オープンソース Snort サブスクライバ ルール セットをお使いであれば、Snort.org で購入可能な最新のルール パックをダウンロードすることで、システムを最新状態に維持できます。
侵入の痕跡(IOC)
このマルウェアに関連付けられたバイナリのハッシュ(SHA256)のリストは、こちらをご覧ください。
このマルウェアに関連付けられたドメインのリストは、こちらをご覧ください。
付録 A:IP ブラックリスト
次のリストによりマルウェアは、ランダムに生成された IP をシステムの侵害に使用するかどうかを判断します。
0.0.0.0/8
10.0.0.0/8
100.64.0.0/10
127.0.0.0/8
169.254.0.0/16
172.16.0.0/12
192.0.0.0/24
192.0.2.0/24
192.88.99.0/24
192.168.0.0/16
198.18.0.0/15
198.51.100.0/24
203.0.113.0/24
224.0.0.0/4
240.0.0.0/4
255.255.255.255/32
6.0.0.0/8
7.0.0.0/8
11.0.0.0/8
21.0.0.0/8
22.0.0.0/8
26.0.0.0/8
28.0.0.0/8
29.0.0.0/8
30.0.0.0/8
33.0.0.0/8
55.0.0.0/8
214.0.0.0/8
215.0.0.0/8
211.238.159.0/24
付録 B:ドメインのブラックリスト
次のリストにより、逆引き DNS ルックアップの結果に基づいて、システムの侵害を続行しようとするかどうかを判断します。ドメインが次のリストに含まれる場合は、破棄されます。
.mil
.gov
.army
.airforce
.navy
.gov.uk
.mil.uk
.govt.uk
.mod.uk
.gov.au
.govt.nz
.mil.nz
.parliament.nz
.gov.il
.muni.il
.idf.il
.gov.za
.mil.za
.gob.es
.police.uk
本稿は 2018年3月26日に Talos Group のブログに投稿された「Forgot About Default Accounts? No Worries, GoScanSSH Didn’t」の抄訳です。