マイニングマルウェア RedTail を理解する

# はじめに
出前館や、UberEATSを利用したくても利用できる環境に無い田舎住まいの [@\_\_\_nix___](https://twitter.com/___nix___)  です。

# 背景
フードデリバリーサービス「出前館」は、システム障害の原因が、マルウェア「RedTail」だったと発表しましたが、「マルウェア怖いね～」では困ります。**敵を知り己を知れば百戦危うからず** の気持ちでまずは敵を理解しましょう。

https://www.itmedia.co.jp/news/articles/2410/29/news205.html

# 概要
「RedTail」は継続的に進化しており、国家レベルの支援を受けたグループがいるのではないかと紹介されています。

https://tuxcare.com/blog/alert-palo-alto-networks-prey-to-redtail-malware-exploits/
> “The investments necessary for a private crypto-mining operation include significant staffing, infrastructure, and obfuscation,” the [researchers concluded](https://www.scworld.com/brief/new-redtail-cryptominer-attacks-involve-palo-alto-firewall-exploit), implying that RedTail’s sophistication points to a highly organized and possibly state-sponsored threat group.


# 詳細

## RedTail の概要

```mermaid
flowchart LR
    subgraph 攻撃手段
        A(CVE-2024-4577 Exploit) --> B{シェルスクリプト}
        C(Other CVE Exploits) --> B{シェルスクリプト}
    end
    subgraph マルウェア実行
        B --> D((マルウェア))
    end
    subgraph システム侵害
        D --> E[システム情報収集<br>Gather system information]
        D --> F(Cron job による永続化<br>Persist)
        D --> G((Moneroマイニング<br>Configure XMRig))
        D --> H{SSHエージェント<br>Steal credentials}
    end
    subgraph C2通信
        D --> I{C2 Server<br>Configuration settings}
    end
    subgraph マイニング
        G --> J($ Mine Monero)
        J --> K{JSON-RPC communication\nwith mining pool<br>Cryptocurrency mining}
    end
```

## 攻撃手段

どの脆弱性を突かれたのかまでは公開されていませんが、この記事では 2024年6月9日に公開された CVE-2024-4577 の脆弱性を例に紹介していきます。

https://nvd.nist.gov/vuln/detail/CVE-2024-4577
> PHP バージョン 8.1.* 8.1.29 より前、8.2.* 8.2.20 より前、8.3.* 8.3.8 より前では、Windows で Apache および PHP-CGI を使用するときに、システムが特定のコード ページを使用するように設定されていると、Windows は Win32 API 関数に渡されるコマンド ラインの文字を「最適」動作で置き換えることがあります。

脆弱性のあるサーバーへのPOSTリクエスト例
```
POST /cgi-bin/php-cgi.exe?%ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp://input
```

これにより実行されるコマンド例
```
php.exe -d allow_url_include -d auto_prepend_file=php://input
```

## マルウェア実行
CVE-2024-4577 やその他の脆弱性を利用して、上記の攻撃手段により悪意ある ShellScript をダウンロードし、 `.redtail` を実行します。

## C2通信
攻撃者が制御するコマンド アンド コントロール (C2) サーバーにアクセスし、マルウェアは構成設定をダウンロードします。これには、マルウェア自体の更新が含まれる場合があります。
このリモート構成機能により、攻撃者はマルウェアの動作をリアルタイムで変更し、侵入した特定の環境に合わせてそのアクティビティを調整することができます。

## システム侵害
マルウェアが実際に行うシステム侵害は大きく分けて以下の4つです。

### システム情報収集
オペレーティング システムのバージョン、アーキテクチャ、ビルド番号、ユーザー名やアカウントの種類などのユーザー情報など、広範なシステム情報を収集します。

### Cron job による永続化
システムの再起動後もマルウェアがアクティブなままになるように、ユーザーの crontab 内に cron ジョブを設定することで、マルウェアが永続的に存在します。このスケジュールされたタスクは、システムが起動するたびにマルウェアを自動的にトリガーします。

### Monero マイニング
XMRig を使用してシステムの処理能力を悪用し、Monero(*1) をマイニングします。このプロセスでは、通常、ユーザーが気付かないうちにバックグラウンドでマイニング ソフトウェアが実行され、感染したマシンの速度が大幅に低下し、電力消費が増加する可能性があります。マイニングされた暗号通貨は、その後、攻撃者が管理するウォレットに送信され、侵害されたシステムのパフォーマンスと被害者のリソースを犠牲にして、攻撃者に金銭的利益をもたらします。

(*1) [Monero](https://www.getmonero.org/) ブロックチェーン技術を利用した仮想通貨・暗号通貨の1つです。

:::note alert
これが攻撃者の目的です！
:::

### SSH エージェント
RedTailは、感染したシステムに悪意のあるバージョンの ssh-agent をドロップします。この改変された ssh-agent は、SSH 認証情報の乗っ取りと窃盗に使用され、攻撃者は他のシステムやサーバーに不正アクセスできるようになります。

# 攻撃されない為に

例に挙げた CVE-2024-4577の脆弱性に対する具体的な対策としては以下のような方法があります。

## PHPのバージョンアップデート
最も重要な対策は、脆弱性が修正された最新バージョンのPHPにアップグレードすることです。

* PHP 8.3系列: 8.3.8以降
* PHP 8.2系列: 8.2.20以降
* PHP 8.1系列: 8.1.29以降

## CGIモードの無効化
可能であれば、PHPのCGIモードを無効にし、より安全なMod-PHP、FastCGI、またはPHP-FPMなどのアーキテクチャに移行することを検討してください。

## Apacheの設定変更
CGIモードを使用せざるを得ない場合は、Apacheの設定ファイルに以下のようなリライトルールを追加して、攻撃を一時的にブロックすることもできます。

```
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? - [F,L]
```

# 終わりに
今回の記事執筆で参考及び引用させて頂いたサイトです。
この場で感謝を申し上げます。

https://www.akamai.com/ja/blog/security-research/2024-php-exploit-cve-one-day-after-disclosure

https://www.forescout.com/blog/new-redtail-malware-exploited-via-php-security-vulnerability/

https://tuxcare.com/blog/alert-palo-alto-networks-prey-to-redtail-malware-exploits/

# 一言
これらの事象は対岸の火事では無く、常に自身の周りでも起こり得る事象であると認識して行動するのが良いと思います。

この記事良かったと少しでも思って頂けたら是非 [@\_\_\_nix___](https://twitter.com/___nix___) をフォローしてあげてください。或いは記事に対してリアクションをお願い致します。