露出したDocker APIを介してコンテナに侵入するボット型マルウェア「AESDDoS」について解説

企業が利用するシステムにおける設定の不備は特に珍しいことではありません。しかしながら、サイバー犯罪者は、そのような設定の不備を、不正な目的のために企業のコンピュータリソースを盗用するための効果的な手段として捉えています。実際、設定の不備はサイバーセキュリティにおける重大な懸念事項の1つとしていて問題視され続けてきました。本記事では、人気のあるオープンソースのDevOpsツール「Docker Engine」のコミュニティ版における、APIの設定不備を狙う攻撃について解説します。この設定の不備により、攻撃者は狙ったコンピュータに不正なコンテナを潜り込ませて、Linuxを対象とするボット型マルウェア「AESDDoS」の亜種(「Backdoor.Linux.DOFLOO.AA」として検出)を実行することが可能になります。このマルウェアの亜種は、トレンドマイクロが設置したハニーポットから検出されました。

コンテナホストで実行されるDocker APIによって、ホストは、ルート権限で実行されているデーモンが実行する全てのコンテナ関連のコマンドを受け取ることが可能です。設定の不備であれ意図的な設定であれ、APIポートに対する外部からのアクセスが許可されている場合、攻撃者は当該ホストの管理権を持つことになり以下の動作を行うことが可能となります。

  • ホスト内で実行しているインスタンスをマルウェアを利用して侵害
  • ユーザのサーバやハードウェアリソースに遠隔からアクセス

これまでの事例でも、露出したDockerホストが、仮想通貨発掘マルウェアの展開のようなサイバー犯罪に利用可能であることが確認されています。

■今回のAESDDoSによる攻撃について

今回確認された新しい攻撃では、攻撃者はまずTCP SYNパケットを、Dockerデーモンとの通信に使用されるデフォルトポートである2375に送信することによって、特定のIP範囲を外部からスキャンします。開いているポートが識別されると、実行中のコンテナを要求する接続が確立されます。 実行中のコンテナが発見されると、次に「docker exec」コマンドを利用してAESDDoSボットが展開されます。このコマンドは、露出したホスト内の該当するすべての実行中コンテナのシェルへのアクセスを可能にします。 こうして、マルウェアは自身の存在を隠しながら、すでに起動しているコンテナ内で実行されます。既に起動しているコンテナ内でマルウェアが実行されるため、ユーザはマルウェアの存在に気付くことが困難です。

■攻撃で利用されたツールとペイロード

ファイル共有サーバ「HTTP File Server(HFS)」に置かれたあるファイルへのリンクが存在することが確認できました。アクセス可能なHFSは、中国からの攻撃者であると言われている何者かによって、マルウェア「ELF Linux / BillGates.Lite」や、「Elknot / Setag」、「MrBlack」、「Gafgyt」などのボットネットのような不正なバイナリをホストするために、過去に利用されてきたことがわかっています。

図1:ホストされたマルウェアとツールの一覧を示すHFSのパネル
図1:ホストされたマルウェアとツールの一覧を示すHFSのパネル

トレンドマイクロが確認したHFSのパネルには、「2375-SYNG口漏洞.zip」(2375 SYNポートの脆弱性の意)という名前のファイルがあり、解析の結果、このファイルは特定のIP範囲をスキャンし脆弱なコンピュータを検索するためのツールであることが判明しました。この圧縮ファイル「2375-SYNG口漏洞.zip」は、以下のようにいくつかの興味深いファイルを含んでいました。

図2:圧縮ファイル「2375-SYNG口漏洞.zip」の中身
図2:圧縮ファイル「2375-SYNG口漏洞.zip」の中身

まず、バッチファイル(拡張子:.bat)はスキャナ「WinEggDrop」(ファイル名:「s.exe」)を実行します。このスキャナは、「ip.txt」ファイルで指定された中国のIPアドレス範囲を持つ複数のホストに対して、ポート2375をスキャンします。このコマンドの出力は「ips.txt」という名前のファイルに保存され、「Docker.exe」ファイルに渡されます。
図 3:ポートスキャナ「WinEggDrop」
図 3:ポートスキャナ「WinEggDrop」

トレンドマイクロはまた、攻撃者がツール「Docker Batch Test Tool」を悪用したことを確認しました。このツールは、Dockerにおける脆弱性を検出するために開発されたものです。
図4:「Docker Batch Test Tool」のスクリーンショット
和訳:
2375 Docker Batch TestRapid Edition
2375 Docker Batch Test Rapid Edition 作成者:烟火 QQ154284301
脆弱性検出専用です。 法に反する目的のために使用することを禁じます。違法行為が確認された場合、ユーザは法的責任を負います。 違法行為によって問題が発生したとしても、作者は一切関係ありません。

図4:「Docker Batch Test Tool」のスクリーンショット

Docker.exeの起動後、以下の図5のメッセージが表示されます。
図5: 「Docker.exe」によるスキャン処理の進行を示すメッセージ
和訳:
試行中のIPアドレスが1つあります。しばらくお待ちください!
IP: 192.168.1.1
IPアドレスの試行が完了し次第、次のスキャンの準備に入ります!

図5: 「Docker.exe」によるスキャン処理の進行を示すメッセージ

Docker.exeは「/containers/json」APIを介してシステム上におけるすべてのDockerコンテナの一覧を取得しようとします。
図6: 利用可能なすべてのコンテナ一覧をJSON形式で取得するクエリ
図6: 利用可能なすべてのコンテナ一覧をJSON形式で取得するクエリ

続いて、Docker.exeは実行中のコンテナでコマンドを実行します。図7のJSON文字列で、キー「Cmd」の値は「.zip」ファイルの中に置かれている「Shell.txt」ファイルに含まれています。

図7:実行中のコンテナで起動しているコンテナにおいてexecインスタンスをセットアップするクエリ
図7:実行中のコンテナで起動しているコンテナにおいてexecインスタンスをセットアップするクエリ

そして、Docker.exeはボット型マルウェアAESDDoSを展開します。このマルウェアが展開されると、攻撃者は複数の種類のDDoS攻撃を仕掛けることが可能になります。 このDDoS攻撃の種類としては、SYN、LSYN、UDP、UDPS、およびTCPフラッドのようなものが挙げられます。このマルウェアの亜種は、脆弱なバージョンの「Confluence Server」および「Confluence Data Center」を実行するシステムにおいて、DDoS攻撃、遠隔からのコード実行、および仮想通貨の発掘といった機能を呼び出していることがこれまでに確認されてきました。

図 8:「AESDDoS」がC&Cサーバに送信するメッセージ
図 8:「AESDDoS」がC&Cサーバに送信するメッセージ

図9:実装されたDDoS 攻撃の一覧
図9:実装されたDDoS 攻撃の一覧

■被害に遭わないためには

Dockerは、Dockerデーモンがポート2375で通信を待機するように設定することに関して明示的な警告を発しています。この設定では、デーモンが実行されているホストへのrootアクセス権を誰でも取得できるという危険性があるためです。したがって、APIおよびアドレスへのアクセスを厳しく制限することが必須となります。

コンテナベースの脅威を防ぐために、法人組織は以下のベストプラクティスを講じることを推奨します。

  • API 設定の確認。 システム管理者と開発者は、決められたホストまたは社内ネットワークからのみリクエストを受け取るようにAPIを設定しましょう。合わせてHTTPSと証明書を利用してAPIエンドポイントを保護してください。
  • 最小権限の原則に従うこと。 コンテナイメージが署名され、なおかつ認証されていることを確認しましょう。 コンテナの実行を補助するデーモンのような重要なコンポーネントへのアクセスを制限することが重要です。 また、ネットワーク接続を暗号化することも必要です。
  • 推奨されたベストプラクティスの採用。 Docker が提供する包括的なベストプラクティスと、組み込まれているセキュリティ機能を利用してください。
  • 実行時のイメージスキャンを自動化し、コンテナのプロセスの可視性を向上する(改ざんや脆弱性の有無を判断するためなど)。アプリケーションコントロール変更監視は、サーバ、ファイル、システム領域の異常な変更を監視するのに役立ちます。

■トレンドマイクロの対策

トレンドマイクロは、アプリケーションを安全にビルドし、さまざまな環境に迅速にデプロイして実行するDevOpsチームを支援します。「Hybrid Cloud Security」は、DevOps 体制を支えるセキュリティチームに対して、「XGen」アプローチにより、物理・仮想・クラウドの混在環境における最適なセキュリティを提供します。総合サーバセキュリティ製品「Trend Micro Deep Security™」およびコンテナイメージを保護する「Deep Security Smart Check」により、デプロイおよび実行時にコンテナイメージをスキャンすることが可能です。

■侵入の痕跡(Indicators of Compromise、IoCs)

侵入の痕跡(Indicators of Compromise、IoCs)はこちらを参照してください。
参考記事: