AWS, Google, and Azure CLI Tools Could Leak Credentials in Build Logs
2024/04/16 TheHackerNews — Amazon Web Services (AWS) と Google Cloud の CLI (command-line interface) ツールを悪用することで、ビルド・ログに機密情報を漏えいさせ、組織に重大なリスクをもたらすという問題が、新たなサイバーセキュリティ調査で判明した。この脆弱性は、クラウドセキュリティ企業の Orca により、LeakyCLI と命名されている。

セキュリティ研究者の Roi Nisimi は、「Azure/AWS/Google Cloud の一部の CLI コマンドには、環境変数のかたちで、機密情報を漏えいさせるという脆弱性が存在する。それらの情報が、GitHub Actions などのツールにより公開されると、攻撃者に窃取される可能性がある」と、The Hacker News と共有したレポートで述べている。
この脆弱性に対して Microsoft は、2023年11月にリリースされたセキュリティ・アップデートの一環で対処し、CVE-2023-36052 (CVSS:8.6) を割り当てた。
この問題は、端的に言えば、CLI コマンドを使用して (事前に) 定義された環境変数を表示し、CI/CD (Continuous Integration and Continuous Deployment) のログに出力する方法に関係している。AWS と Google Cloud にまたがる、この種のコマンドのリストは、以下の通りである:
- aws lambda get-function-configuration
- aws lambda get-function
- aws lambda update-function-configuration
- aws lambda update-function-code
- aws lambda publish-version
- gcloud functions deploy <func> –set-env-vars
- gcloud functions deploy <func> –update-env-vars
- gcloud functions deploy <func> –remove-env-vars
Github Actions/CircleCI/TravisCI/Cloud Build などのログを通じて、アクセストークンなどの機密データを流出させていたものが、GitHub 上のプロジェクトで、いくつか発見されたと Orca は指摘している。


しかし Amazon と Google は、Microsoft とは異なり、これを予期される行動とみなし、ユーザー組織に対しては、環境変数にシークレットを保存しないよう対策を講じるべきだとしている。また、環境変数の代わりとして、AWS Secrets Manager や Google Cloud Secret Manager などの、専用のシークレット・ストア・サービスを使用するよう求めている。
さらに Google は、ターミナルの標準出力と、標準エラーへのコマンド出力を抑制する “–no-user-output-enabled” オプションの使用を推奨している。
Nisimi は、「攻撃者が、これらの環境変数を入手した場合には、パスワード/ユーザー名/キーなどの機密情報が閲覧され、リポジトリの所有者がアクセス可能な各種のリソースへの、アクセスを獲得する可能性がある。CLI コマンドは、デフォルトでは安全な環境で実行されていると想定されているが、CI/CD パイプラインと相まって、セキュリティ上の脅威となる可能性がある」と述べている。
GUI では不可能な隠しコマンドなども、CLI であれば実装できます。また、使い方を誤ると危険なコマンドなどが、GUI からは削除されても、CLI には残る場合もあるのかもしれません。そもそも、危ないので CLI だけにしておこうというコマンドもあるのかもしれません。文中で紹介されている、2023/11/14 の「Azure CLI の深刻な脆弱性 CVE-2023-36052 が FIX:認証情報が漏洩する可能性」ですが、この種の問題は、あちらこちらに山ほど在りそうという意見が多かったと記憶しています。氷山の一角なのかもしれません。
You must be logged in to post a comment.