悪意あるソフトウェアパッケージが、インストール中にクラウド認証情報を盗み出す恐れがあります。アプリケーションが動作する前の段階で、開発者のワークステーションや継続的インテグレーション/デリバリー(CI/CD)パイプラインが危険にさらされます。
こうした攻撃は、日常的な依存関係の更新をクラウドアカウント侵害の入り口に変えてしまいます。問題の中心は、開発者やビルドランナーの権限で実行されるインストールスクリプトです。
ビルドが成功したからといって、環境の安全が証明されるわけではありません。悪意あるコードがすでに機密情報を収集し、攻撃者の管理するインフラへ送信している可能性があります。
開発環境には、AWSのアクセスキー、GitHubトークン、Azureの認証情報、Google Cloudのサービスアカウントキー、Kubernetes設定ファイル、npmの公開用トークンなどが置かれていることが少なくありません。
これらの機密情報に広範な権限が付与されている場合、侵害された依存関係によって、影響を受けたソフトウェアプロジェクトの範囲をはるかに超えるリソースが危険にさらされる可能性があります。
提供された調査資料は、npm、RubyGems、Go、PyPI、コンテナレジストリにまたがり、信頼されたパッケージや開発ツールを狙う攻撃キャンペーンについて述べています。
共通する手口は、悪意あるコードを実行し、入手可能な認証情報を収集したうえで、それを使ってアクセス範囲を広げるというものです。
Shai-Huludキャンペーンは、このパターンをよく示しています。提供された資料によると、感染したnpmパッケージは、開発環境やビルド環境から機密情報を探し回っていました。
後の亜種ではpreinstallフックが使われ、インストール処理が終わる前に認証情報の窃取が始まるようになりました。
ビルドホスト自体を標的にしたキャンペーンもあります。悪意ある開発者向けユーティリティが、Goの設定を変更したり、コマンドのラッパーを仕込んだり、攻撃者のSSH鍵を追加したりしたと報告されています。
こうした変更は、元のパッケージを削除した後でも、アクセスを維持し、以降のコマンドに影響を与え続ける可能性があります。
侵害されたセキュリティツールも、別のリスクを生みます。パイプラインでは、リポジトリや機密情報にアクセスできるスキャナーを日常的に信頼しているためです。提供された資料は、TeamPCPが信頼されたツールを使って、認証情報を窃取するペイロードを配布したと説明しています。
盗まれた認証情報が攻撃者の手に渡ると、次の攻撃対象は正規のクラウドAPIになります。付与された権限によっては、攻撃者がストレージを調べたり、シークレットを取得したり、リソースを作成したり、永続化の足がかりを築いたりする可能性があります。
そのため防御側は、パッケージファイルだけでなく、アイデンティティに関するアクティビティも調査する必要があります。セキュリティチームはまず、影響を受けたワークステーションやランナーからアクセスできるすべての認証情報を洗い出すべきです。
露出したトークンは失効させ、キーをローテーションし、侵害されたホストを隔離したうえで、調査のためにログを保全してください。悪意ある依存関係を削除するだけでは、盗まれた認証情報で得られたアクセスは止まりません。
露出期間全体にわたって、クラウドの監査記録を確認してください。見慣れないAPI呼び出し、新規のアイデンティティ、権限の変更、想定外のリソース、無効化されたログ記録などを調べる必要があります。
公開用の認証情報にも注意が必要です。攻撃者がこれを悪用して、別のパッケージを侵害する恐れがあるためです。予防策としては、インストール時の信頼を減らし、認証情報の利用可能範囲を狭めることが重要です。
互換性が許す範囲でパッケージのライフサイクルスクリプトを制限し、依存関係を承認制にして、ロックファイルを強制しましょう。ビルド作業とデプロイ権限は分離し、保存されたキーではなく、権限範囲が狭く有効期間の短い認証情報を優先してください。
ランナーがアクセスを必要としない場合は、クラウドのメタデータエンドポイントを保護してください。AWSではIMDSv2を必須にします。ただし、メタデータ保護は最小権限の原則やホストのセキュリティに代わるものではない点に注意が必要です。
Qualysによると、TotalCloudは、対応する環境全体にわたって、クラウドのインベントリ、ポスチャ、アイデンティティ、ワークロード、ランタイムのセキュリティを統合します。
同社のTruRiskエンジンは、脆弱性、設定ミス、権限付与、脅威インテリジェンスを相関分析し、優先的に対処すべき露出を判断します。
1万6,000以上のSOCチームがANY.RUNを活用し、脅威調査を効率化して手作業を削減しています。チームで試してみる
翻訳元: https://cyberpress.org/malicious-packages-steal-credentials-2/