AWS の正規サービス SSE-C を悪用:ユーザーの S3 バケットを暗号化する Codefinger とは?

Ransomware abuses Amazon AWS feature to encrypt S3 buckets

2025/01/13 BleepingComputer — 新たに発見されたランサムウェア・キャンペーンの特徴は、脅威アクターだけが知っている AWS の Server-Side Encryption with Customer Provided Keys (SSE-C) の悪用により、Amazon S3 バケットが暗号化され、復号キーとの交換条件として、身代金が要求されるところにある。このキャンペーンは、Halcyon により発見されたものであり、Codefinger と呼ばれる脅威アクターにより、少なくとも2件の暗号化インシデントが発生している。なお、このオペレーターにはエスカレーションの可能性があり、また、他の脅威アクターたちに素早く採用される可能性もあるという。

クラウド・ストレージの暗号化

Amazon Simple Storage Service (S3) は、Amazon Web Services (AWS) が提供する、スケーラブルでセキュアな高速オブジェクト ストレージ サービスである。また、S3 Buckets は、ファイル/バックアップ/メディア/ログなどを保存する、クラウド・ストレージ・コンテナである。

前述の SSE-C は、保存中の S3 データを保護するための暗号化オプションであり、顧客は独自の暗号化キーを使用し、また、AES-256 アルゴリズムを使用して、データの暗号化/復号化を行う。ない、AWS はキーを保存しないため、キーの生成/管理/保護は顧客の責任となる。

Codefinger による攻撃は、侵害した AWS 認証情報を悪用する脅威アクターが、”s3:GetObject” および “s3:PutObject” の権限を持つ、被害者のキーを特定するところから始まる。つまり、それらのアカウントの権限を用いることで、SSE-C を介した S3 バケット内のオブジェクトの暗号化が可能になる。

続いて攻撃者は、ローカルで暗号化キーを生成し、ターゲットのデータを暗号化する。

すでに説明したように、これらの暗号化キーを AWS は保存しないため、被害者から Amazon に対して、不正なアクティビティが報告されたとしても、データの回復には攻撃者のキーが必要となる。

Halcyon は、「AWS ネイティブ・サービスを利用することで、攻撃者は安全かつ独占的な方法で、データの暗号化/復号化を可能にする」と説明している。

さらに攻撃者は、S3 オブジェクト・ライフサイクル管理 API を使用して、ファイル削除ポリシーを7日間に設定した上で、侵害した全ディレクトリに身代金メモをドロップしていく。このメモに記されているのは、カスタム AES-256 キーと引き換えに、特定の Bitcoin アドレスに対して、身代金を支払えという指示である。

なお、アカウント権限の変更やバケット上のファイルの修正を試みた場合には、一方的に交渉が打ち切られ、データを回復する方法がなくなると、この身代金メモは警告している。

Codefinger に対する防御

Codefinger に関する調査結果は、Halcyon から Amazon へと報告された。 AWS は、キーが漏洩した顧客に対して速やかに通知し、即座に対応できるよう最善を尽くしているという。

さらに Amazon は、厳格なセキュリティ・プロトコルを実装し、これらの手順に従うことで、AWS における不正なアカウント・アクティビティ問題を、迅速に解決するよう促している。

その一方で Halcyon は、S3 バケットで SSE-C の使用を防ぐ制限ポリシーを、AWS ユーザーに設定させるよう提案している。

なお、この AWS キーに関しては、未使用のキーを無効化し、アクティブなキーに関しては頻繁にローテーションすべきである。そして、アカウント権限の発行を、必要最小限のレベルに抑える必要がある。