トレンドマイクロでは、オープンソースソフトである「Salt」の脆弱性を利用する不正コインマイナーを確認しました。Saltはソフトウェア開発企業「SaltStack」による、イベント駆動型のIT自動化やリモートでのタスク実行、および構成管理を可能にするオープンソースのソフトウェアです。Saltの管理フレームワークは、多くのデータセンターやクラウドサーバで使用されています。また、Saltはインフラをコード化して管理する「IaC (Infrastructure as Code)」を実現する構成管理ツールでもあり、DevOpsでも利用されます。今回利用されたSaltの2つの脆弱性は、2020年3月中旬、サイバーセキュリティ企業「F-Secure」のリサーチャによって公開されたものです。一つは、認証バイパスの脆弱性である「CVE-2020-11651」、もう一つはディレクトリトラバーサルの脆弱性である「CVE-2020-11652」です。これらの脆弱性は認証されていないリモートの攻撃者によって悪用される可能性があり、Salt Master 2019.2.3 と3000.1およびそれ以前のバージョンが影響を受けます。なお、これらの脆弱性に対処するために、SaltStackによるセキュリティ更新情報が既にリリースされています。
トレンドマイクロでは、このSaltに影響を与える2つの脆弱性とその修正パッチ、そして脆弱性を悪用するコインマイナーについて調査しました。
■CVE-2020-11651 およびCVE-2020-11652について
「CVE-2020-11651」はリモートユーザによるアクセスを許可し、「CVE-2020-11652」は任意のディレクトリへのアクセスを許可する脆弱性です。Saltのアーキテクチャを観察することによって脆弱性を理解することができます。マスター/スレーブ(master-slave)モデルを採用するSaltでは、マスターは「saltマスター」と呼ばれ、スレーブは「saltミニオン」と呼ばれます。saltマスターは、コマンドと設定をsaltミニオンに送信するために使用されます。一つのマスターで複数のミニオンを管理することができます。
CVE-2020-11651の脆弱性は、saltマスターのプロセスである「ClearFuncs」が、メソッドの呼び出しを正しく検証しない所にあります。このクラスでは以下の2つのメソッドが公開されています。
•_prep_auth_info()メソッド。ユーザトークン(ルート鍵)を返すメソッド。攻撃者はトークンを使用して認証を回避できるため、マスターとミニオンの両方で、Saltプロセスのコンテキスト内でリモートコマンド実行が可能になる
•_send_pub()メソッド。マスターのパブリッシュサーバ上でメッセージを直接キューに入れるために使用できるメソッド。このようなメッセージを使用することによってミニオンをトリガーし、任意のコマンドをrootで実行することができる
要約すると、CVE-2020-11651は、認証不要でいくつかのメソッドへのアクセスを許可する脆弱性です。この脆弱性を悪用してsaltマスターからユーザトークンを取得し、saltマスターとsaltミニオン上でコマンドを実行することができます。
もう一つのCVE-2020-11652脆弱性も、saltマスターのプロセス「ClearFuncs」に関係しています。この脆弱性では、パスのサニタイズ処理を不適切にさせる、いくつかのメソッドへのアクセスを許可します。SaltのWheel Modulesには、特定のディレクトリパスにあるファイルの読み取りと書き込みに使用するコマンドが含まれています。salt.tokens.localfsのget_token()メソッドがトークン入力パラメータのサニタイズに失敗すると、ファイル名として使用され、「..」パス要素を挿入できるため、意図したディレクトリ外のファイルを読み取ることができます。これは、ファイル名として利用されるトークン入力パラメータを正しくサニタイズできないために発生しますが、唯一の制限として、この時ファイルがsalt.payload.Serial.loads()によって元のデータ形式に復元できなければなりません。これにより、攻撃者はパス要素を書き換えるチャンスを得ることになります。
■修正パッチについて
脆弱性「CVE-2020-11651を修正するために、SaltStackは、ユーザが平文のメッセージで指定することのできる公開されたメソッドを定義しました。これは、get_method()という新しい関数によって行われます。
脆弱性「CVE-2020-11652」を修正するために、SaltStackはsaltマスターによって提供されるClearFuncsメソッドのパスをサニタイズしました。これにより、意図しないファイルやディレクトリへのアクセスが許可されることを防ぎます。ファイルシステムリンクを解決する_realpath()とパスを確認するclean_path()の、2つの新しい関数が追加されました。
■「CVE-2020-11651」および「CVE-2020-11652」を利用するコインマイナー
トレンドマイクロは、CVE-2020-11651およびCVE-2020-11652を実際に悪用するコインマイナーを確認しました。(以下は検出名)
- Coinminer.Linux.KINSING.A
- Coinminer.Linux.KINSING.B
- Coinminer.Linux.KINSING.C
- Coinminer.Linux.MALXMR.SMDSL64
- Coinminer.Linux.MALXMR.UWEKP
トレンドマイクロのクラウド型セキュリティ技術基盤「Smart Protection Network(SPN)」によれば、脆弱性が公開されてからわずか数日後の5月3日以降に、以下の表のような検出データを確認しています。 「ファイルのフルパス」の列は、マルウェアがドロップされたパスに関連するもの、「プロセスのフルパス」は、プロセス実行のバイナリファイルのパスを意味します。また、「インスタンス数」は、検出が報告されたコンピュータの数です。
「ファイルのフルパス」は以下のいずれかです。
- /tmp/salt-minions
- /var/tmp/salt-store
「プロセスのフルパス」は以下のいずれかです。
- [salt-store]
- /usr/bin/bash
- /usr/bin/md5sum
- /usr/bin/python2.7
- /usr/bin/wget
- /var/tmp/salt-store
Red Hat Enterprise Linux Serverリリース7.2(Maipo)は、記録されたうちで最も多い315,265を検出しました。
OS 名 | ファイルのフルパス | プロセスのフルパス | インスタンス数 | 合計検出数 | |
Red Hat Enterprise Linux Server リリース7.2 (Maipo) Red Hat Enterprise Linux Serverリリース7.2(Maipo) |
/tmp/salt-minions | /var/tmp/salt-store | 185 | 315,265 | |
CentOS Linux リリース7.5.1804 (Core) |
/tmp/salt-minions | /var/tmp/salt-store |
75 | 117,453 | |
CentOS Linux リリース7.7.1908 (Core) | /tmp/salt-minions | /var/tmp/salt-store | 2 | 5,194 | |
CentOS Linux リリース7.4.1708 (Core) | /tmp/salt-minions | /var/tmp/salt-store | 1 | 2,192 | |
CentOS Linux リリース7.6.1810 (Core) | /tmp/salt-minions | /var/tmp/salt-store | 1 | 2,114 | |
Red Hat Enterprise Linux Server リリース7.2 (Maipo) | /tmp/salt-minions | [salt-store] | 1 | 1 |
表1:/tmp/salt-minionsをファイルのフルパスとした検出
OS 名 | ファイルのフルパス | プロセスのフルパス | インスタンス数 | 合計検出数 |
Red Hat Enterprise Linux Server リリース7.2 (Maipo) |
/var/tmp/salt-store | /usr/bin/md5sum | 120 | 1,357 |
Red Hat Enterprise Linux Server リリース7.2 (Maipo) |
/var/tmp/salt-store | /usr/bin/bash |
113 | 900 |
Red Hat Enterprise Linux Server リリース7.2 (Maipo) | /var/tmp/salt-store | /usr/bin/wget |
84 | 680 |
CentOS Linux リリース7.5.1804 (Core) | /var/tmp/salt-store | /usr/bin/md5sum |
36 | 440 |
CentOS Linux リリース7.5.1804 (Core) | /var/tmp/salt-store | /usr/bin/bash | 34 | 289 |
CentOS Linux リリース7.5.1804 (Core) | /var/tmp/salt-store | /usr/bin/wget | 28 | 221 |
CentOS Linux リリース7.7.1908 (Core) | /var/tmp/salt-store | /usr/bin/md5sum | 1 | 19 |
CentOS Linux リリース7.6.1810 (Core) | /var/tmp/salt-store | /usr/bin/md5sum | 1 | 17 |
CentOS Linux リリース7.7.1908 (Core) | /var/tmp/salt-store | /usr/bin/bash | 1 | 12 |
CentOS Linux リリース7.6.1810 (Core) | /var/tmp/salt-store | /usr/bin/bash | 1 | 10 |
CentOS Linux リリース7.6.1810 (Core) | /var/tmp/salt-store | /usr/bin/wget | 1 | 10 |
CentOS Linux リリース7.7.1908 (Core) | /var/tmp/salt-store | /usr/bin/wget | 1 | 10 |
CentOS Linux リリース7.3.1611 (Core) | /var/tmp/salt-store | /usr/bin/md5sum | 1 | 1 |
CentOS Linux リリース7.4.1708 (Core) | /var/tmp/salt-store | /usr/bin/python2.7 | 1 | 1 |
CentOS Linux リリース7.5.1804 (Core) | /var/tmp/salt-store | [salt-store] | 1 | 1 |
表2:/var/tmp/salt-storeをファイルのフルパスとした検出
■被害に遭わないために
サイバー犯罪者は利用可能な脆弱性を常に探しています。1つのシステムに脆弱性が見つかれば、そのシステムに接続された他のシステムを侵害するために利用することができます。例えば、Saltの脆弱性によってデータセンターやクラウドサーバに保存されているデータが危険にさらされる可能性があります。ユーザは、システムのセキュリティを強化するため、できるだけ早くプラットフォームと端末の脆弱性に修正パッチを適用する必要があります。また、脆弱性を利用する脅威から防御するためにセキュリティソリューションを導入することも役立ちます。
■トレンドマイクロの対策
「Trend Micro Deep Security™」は、今回解説した脆弱性を利用する脅威からシステムを保護します。
- 1010265 – SaltStack Salt Authorization Weakness Vulnerability (CVE-2020-11651)
- 1010266 – SaltStack Vulnerabilities Exploitation Detected
- 1010267 – SaltStack Salt Directory Traversal Vulnerability (CVE-2020-11652)
ネットワーク脅威防御ソリューション「TippingPoint」は、以下のMainlineDV filterによりこれらの脆弱性を利用する脅威をブロックします。
- 37032 – HTTP: Backdoor.Linux.Kinsackor.A Runtime Detection
- 37750 – TCP: SaltStack Salt Authentication Bypass Vulnerability (CVE-2020-11651)
- 37782 – TCP: SaltStack Salt Directory Traversal Vulnerability (CVE-2020-11652)
Trend Micro Cloud One™ Workload Securityは、物理、仮想、クラウドおよびコンテナの各環境で一貫したセキュリティを実現します。Trend Micro Cloud One™ Network Securityは、シンプルで柔軟な導入オプションにより、ビジネスアプリケーションやプロセスの中断を招くことなく、必要な場所でネットワークを迅速に保護できます。
■侵入の痕跡(Indicators of Compromise、IoC)
今回の記事に関する侵入の痕跡はこちらを参照してください。
参考記事:
- 「Coinminers Exploit SaltStack Vulnerabilities CVE-2020-11651 and CVE-2020-11652」
By Govind Sarda and Suraj Sahu, Threat Researchers
翻訳: 室賀 美和(Core Technology Marketing, Trend Micro™ Research)