攻撃者は、実行中のDockerコンテナ環境を狙い続けています。トレンドマイクロは最近、「Alpine Linux」をベースイメージとして使用して構築されたDockerコンテナで、不正な暗号資産発掘ツールと分散型サービス拒否(DDoS)ボットネットの両方を作成する攻撃を確認しました。トレンドマイクロでも2020年5月に同様の攻撃を調査しましたが、その際にも攻撃者は不正なAlpine Linuxコンテナを作成して、不正な暗号資産発掘ツールとDDoSボットをホストしていました。以下の図は、この攻撃における感染の流れを表しています。
![図1:感染の流れ-1024x820](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図1:感染の流れ-1024x820.png)
■感染の流れを解析
今回確認された攻撃では、攻撃者が露出したDockerサーバに接続し、Dockerコンテナを作成して実行することから感染が始まります。 Dockerコンテナでは、以下の図2のコマンドが実行されます。
![図2:Dockerコンテナ上で実行されるコマンド](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図2:Dockerコンテナ上で実行されるコマンド-2.png)
XMIのダウンロードファイル(トレンドマイクロでは「Trojan.Linux.MALXMR.USNELH820」として検出)は、以下の図で見られるBashスクリプトで、「/.ssh/known_hosts」からの情報を使用して同一のコンテナネットワーク内の他のホストへと横方向移動を行います。
![図3:攻撃で使用されるBashスクリプト](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図3:攻撃で使用されるBashスクリプト.png)
以下の図のコマンドは、XMIのBashスクリプトと「d.py(Trojan.Python.MALXMR.D)」という名前のPythonスクリプトをダウンロードして実行します。
![図4:標的に送信されるコマンド](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図4:標的に送信されるコマンド-1.png)
XMIのシェルスクリプトは、検出回避のためにBase64エンコードを広範囲に使用します。上の図4でエンコードされた文字列をデコードすると、以下の図5のコマンドが生成され、d.pyをダウンロードおよび実行します。
![図5:「d.py」という名前のコンポーネントをダウンロードして実行するデコードされたコマンド](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図5:「d.py」という名前のコンポーネントをダウンロードして実行するデコードされたコマンド-1.png)
また、特筆すべき点として、以下の図からわかるように、シェルスクリプトには、SSHへのブルートフォース攻撃を介してマルウェアを拡散するために使用されていると見られる、コメントアウトされたコードが含まれています。この活動の背後にいる攻撃者は、SSHサーバを標的にしていた、あるいは標的としている可能性があります。
![図6:XMIBashスクリプト内から見つかったコメントアウトされたコード](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図6:XMIBashスクリプト内から見つかったコメントアウトされたコード-1.png)
この攻撃は、持続性を確立するために複数の手法を使用します。 以下の図のように、cronジョブの設定とは別に、自動ペイロード実行用の独自のサービスも作成します。
![図7:cronジョブを使用して持続性を設定する攻撃](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図7:cronジョブを使用して持続性を設定する攻撃.png)
サービスを作成する部分もBase64でエンコードされています。以下の図のように、デコードされた形式はディレクトリ「/etc/init.d」内に配置されます。
![図8:ディレクトリ「/etc/init.d」に配置されているスクリプトのデコードされた形式](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図8:ディレクトリ「etc-init.d」に配置されているスクリプトのデコードされた形式.png)
トレンドマイクロでは、以下の図のダウンロードスクリプトである、暗号資産発掘を行うペイロードを「Coinminer.Linux.MALXMR.UWELD」として検出しました。興味深いことに、攻撃者が使用する暗号資産ウォレットは、Confluenceの脆弱性「CVE-2019-3396」やApacheStrutsの脆弱性「CVE-2017-5638」などの脆弱性を悪用する活動で使用されたものと同一のものです。中国の「Tencent」社の調査によると、中国を拠点としてマイニングを行う犯罪組織「8220」は、CVE-2017-5638を悪用した活動を行います。
![図9:暗号資産発掘を行うペイロードのダウンロード](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図9:暗号資産発掘を行うペイロードのダウンロード-1.png)
ペイロードが正常に作成されたかどうかを確認するために、マルウェアは128ビットのMD5ハッシュを計算および検証するプログラム「md5sum」を使用します。この検証方法は、中国のクラウドサーバを対象とするH2Minerで暗号通貨発掘を行うボット型マルウェア「Kinsing」で使用されている手法と類似しています。
さらに、攻撃は、以下の図のように、DDoSボットネット(Backdoor.Linux.KAITEN.AMV)の形式で別のペイロードを作成します。
![](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図10:DDoSボットネットをダウンロードして実行するドロッパースクリプト-1.png)
このDDoSボットネットは、そのバックドアコマンドの一部を以下の図に示していますが、IRC(Internet Relay Chat)に基づいており、Kaiten(別名:Tsunami)の亜種と見られています。
![図11:バックドアコマンドの一部を示すDDoSボットネットで確認された文字列](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図11:バックドアコマンドの一部を示すDDoSボットネットで確認された文字列.png)
この攻撃では上述のように、「Trojan.Python.MALXMR.D」として検出されたPythonスクリプトであるd.pyも削除されます。トレンドマイクロは、「Trojan.Linux.MALXMR.USNELH820」と同じ動作を実行することを確認しました。つまり、持続性を確立し、暗号資産発掘ツールとDDoSボットネットのペイロードを作成します。以下の図は、d.pyのコードスニペットを示しています。
![図12:Pythonスクリプト「d.py」](https://blog.trendmicro.co.jp/wp-content/uploads/2020/11/図12:Pythonスクリプト「d.py」.png)
■被害に遭わないためには
攻撃者がDockerコンテナを狙うにしたがって、開発チームはリスクベースのセキュリティアプローチを採用して、コンテナの脅威に対抗する必要があります。まずは、Dockerデーモンのポートをオンライン状態で放置しないところから始めるべきでしょう。また、本記事で紹介した脅威を回避するためにも、公式のDockerイメージのみを使用しましょう。コンテナへのリスクをさらに軽減するために、以下のベストプラクティスを講じることを推奨します。
- アプリケーションファイアウォールを展開して、コンテナを保護し、脅威が環境に侵入する前に捕捉できるようにする
- サードパーティが提供するソフトウェアの使用を最小限に抑え、検証可能なソフトウェアを使用して、マルウェアがコンテナ環境に導入されないようにする
- 最小権限の原則を実装する。コンテナイメージは署名および認証される必要がある。ネットワーク接続と、コンテナの実行を支援するデーモンサービスなどの重要なコンポーネントへのアクセスを制限する必要がある
- 自動化されたランタイムと画像スキャンを採用して、コンテナのプロセスをさらに可視化する。アプリケーション制御と整合性監視は、サーバ、ファイル、およびシステム領域の異常な変更を捕捉するのに役立つ
■トレンドマイクロの対策
トレンドマイクロは「Trend Micro Cloud One™」製品群により、コンテナ技術の安全な利用を支援します。
- Application Security: コードの脆弱性、サーバ上のデータ流出、およびその他のアプリケーションレベルの一般的な脆弱性攻撃への保護を提供します。幅広いアーキテクチャとネットワークトポロジに製品を導入できるため、アプリケーションのエンドユーザと機密データを保護できます。主要なポイントでお客さまのフレームワークに自動的に接続し、悪用しようとする試みを検出してハッキングを阻止し、脆弱性を保護します。
- Container Security: コンテナイメージを自動的にスキャンし、利用しようとしているコンテナ自体の安全性を随時確認することで、セキュアなCI/CDパイプラインを実現。
このほか、トレンドマイクロのセキュリティプラットフォーム「Trend Micro Cloud One™」には、以下の製品・サービスが含まれています。
- Workload Security: パフォーマンスを損なうことなく、データセンター、クラウド、 コンテナを保護するクラウド型セキュリティ
- Container Security: コンテナイメージを自動的にスキャンし、セキュアなCI/CDパイプラインを実現
- File Storage Security: クラウドファイル、オブジェクトストレージサービスのためのセキュリティ
- Network Security: マルチクラウド環境のための強力なネットワークレイヤのセキュリティ
- Conformity: システムに重大な影響を及ぼす可能性があるクラウドの設定ミスを見つけてより早く修復。業界のコンプライアンス標準とクラウドセキュリティのベストプラクティスのルールに照らした何百もの自動化されたチェックによって、クラウドインフラストラクチャのためのセキュリティおよびコンプライアンスを継続的に支援
※調査協力:Arianne Grace Dela Cruz
■侵入の痕跡(Indicators of Compromise 、IoCs)
侵入の痕跡(Indicators of Compromise、IoCs)は、こちらを参照してください。
参考記事:
- 「Exposed Docker Server Abused to Drop Cryptominer, DDoS Bot」
By Augusto Remillano II
翻訳:下舘 紗耶加(Core Technology Marketing, Trend Micro™ Research)