[今すぐ確認必要!]AWS S3データを勝手に暗号化するランサムウェアなしの攻撃手法が発見される
要約
ランサムウェアグループ「Codefinger」が、AWS S3バケットに保存されたデータを、AWS提供の暗号化オプション(SSE-C)を使って勝手に暗号化し、復号キーの引き渡しと引き換えに身代金を要求する新しい攻撃手法が発見されました。データの流出はなく、暗号化されたファイルを7日以内に削除すると脅迫することで、組織に支払いを迫っています。
詳細分析
主なポイント
- Codefinger攻撃グループが、組織のAWS S3バケットに保存されたデータを勝手に暗号化する新しい手法を使っている
- 過去に組織から盗まれたか誤って公開されたAWSキーを悪用し、SSE-Cを使って暗号化を行う
- 暗号化されたデータの復号キーを引き渡すと引き換えに身代金を要求する
- 暗号化されたファイルを7日以内に削除すると脅迫し、支払いを迫る
社会的影響
- AWS S3を利用する企業にとって深刻な脅威となる
- データ復旧のためにランサム支払いを余儀なくされる可能性がある
- 企業の機密情報が流出するリスクもある
- セキュリティ対策の強化が急務となる
編集長の意見
この攻撃手法は従来のランサムウェアとは異なり、データの流出がないため検知が難しく、深刻な影響を及ぼす可能性があります。AWS S3の適切な設定と、IAMポリシーの定期的な見直しが重要になってきます。また、バックアップの確保など、データ復旧の対策も欠かせません。特に、今回のこの手法は、`技術的に至って簡単`なため、`このニュースを知った攻撃者はすぐに真似してくることが予想されます`。この攻撃手法が広まれば甚大な被害が予想されます。今すぐ設定の見直しを!
ということで本日はこのS3暗号化について深掘り解説します。
解説
今回のS3型ランサムウェア攻撃について概略
事件の概略
2025年1月13日、Amazon S3バケットを標的とした新たなランサムウェア攻撃が発見されました。
この攻撃は、AWSの Server-Side Encryption with Customer Provided Keys (SSE-C) を利用してデータを暗号化し、復号に必要な対称AES-256キーと引き換えに身代金を要求するものです。
この攻撃は、AWSの脆弱性を悪用するものではなく、攻撃者がまず AWS顧客のアカウント認証情報を入手 することに依存しています。
そして、公開されている、あるいは侵害されたAWSキーの中から、「s3:GetObject」 と 「s3:PutObject」 リクエストを実行する権限を持つキーを見つけ出すことから始まります。
攻撃者は、取得したAWSキーを用いて、S3バケット内のオブジェクトを SSE-Cで暗号化 します。
SSE-Cは、顧客が 独自の暗号化キーを提供 する暗号化方式です。 攻撃者は、暗号化処理中に 自ら生成したAES-256キーを利用 し、そのキーは ローカルに保管 し、AWSには提供しません。
AWSは暗号化処理中にキーを使用しますが、キー自体は保存せず、キーのHMAC(ハッシュベースのメッセージ認証コード)のみ をAWS CloudTrailに記録します。
このHMACは、キーの再構築やデータの復号には使用できません。
さらに、攻撃者はS3 Object Lifecycle Management APIを使用して、暗号化されたファイルを7日以内に削除するように設定 し、被害者に身代金支払いを迫ります。
各ディレクトリには、攻撃者のビットコインアドレスと暗号化データに関連付けられたクライアントIDを含む 身代金メモ が残されます。
メモには、アカウントの権限やファイルを変更すると交渉が終了するという警告も含まれています。
この攻撃は、身代金を支払わずにデータを回復する方法がないため、ランサムウェア攻撃の 重大な進化 と言っても過言ではないでしょう。
SSE-C自体は2014年から利用可能ですが、ランサムウェア攻撃者がこの機能を利用するのは 今回が初めて と思われます。
この攻撃が現在標的型であるものの、他の脅威アクターの間でもすぐに広まる可能性 があることを示唆しています。
この攻撃は、Amazon S3をデータストレージに利用している組織が、AWSキーまたはアクセストークンを保護することの必要性 を浮き彫りにしています。
SSE-Cの使用を制限 し、AWSキーを監査 し、高度なロギングを実装 し、AWSサポートと連携 して防御を強化することが、今すぐできる対策 として挙げられます。
すべての主要なクラウドサービスプロバイダーは、悪用される可能性のある同様のクライアントサイド暗号化機能を提供している ため注意が必要です。
企業は、新たなランサムウェア攻撃に対抗 できるよう、環境の レジリエンス(回復力)を確保 することが重要です。
S3をデータやファイル置き場、あるいはHP自体を置いているような企業さんも多いと思います。 そして、自社で使っていなくても、使っているSaaSサービスがS3にデータを置いているようなものもいっぱいあると思います。
この流れは急激に広がると予想されますので、今1度、設定など見直すようにしてください。
今回は、さらに、S3の暗号化と、今回問題になったSSE-Cについて深掘りしていきます。
Amazon S3における暗号化とSSE-C: 深掘り解説
はじめに
クラウドストレージサービスの普及に伴い、データセキュリティの重要性はますます高まっています。Amazon S3は、スケーラビリティと耐久性に優れたオブジェクトストレージサービスとして広く利用されていますが、機密データを保存する場合には適切な暗号化対策が不可欠です。Amazon S3は、多様な暗号化オプションを提供しており、ユーザーのセキュリティ要件に合わせて柔軟な設定が可能です。
今回Packet Pilotでは、
- Amazon S3における暗号化の基本概念と、
- 顧客が提供したキーを用いたサーバーサイド暗号化(SSE-C)
について詳しく解説します。
特に、近年のランサムウェア攻撃で悪用されたSSE-Cの仕組みを図解と共に解説することで、そのリスクと対策を明確化します。
S3の暗号化: 概要
Amazon S3は、保存中のデータを保護するために、以下の暗号化方式を提供しています。
- サーバーサイド暗号化: データは、S3サーバーに保存される際に自動的に暗号化されます。復号は、アクセス時に自動的に行われます。
- SSE-S3 (Server-Side Encryption with Amazon S3-Managed Keys): S3が暗号化キーを管理する方式。追加料金なしで利用できます。
- SSE-KMS (Server-Side Encryption with AWS KMS-Managed Keys): AWS Key Management Service (KMS) で管理されるキーを用いる方式。キーのライフサイクル管理やアクセス制御をKMSで行えます。
- SSE-C (Server-Side Encryption with Customer-Provided Keys): 顧客が自ら暗号化キーを提供する方式。キー管理の責任は顧客が負います。
- DSSE-KMS (Dual-layer Server-Side Encryption with AWS KMS-Managed Keys): 2つのKMSキーを用いて二重に暗号化する方式。より強固なセキュリティを提供します。
- クライアントサイド暗号化: データは、S3にアップロードされる前にクライアント側で暗号化されます。復号もクライアント側で行われます。
SSE-C (Server-Side Encryption with Customer-Provided Keys) : 深掘り
SSE-Cは、顧客が 自ら暗号化キーを管理し、提供 するサーバーサイド暗号化方式です。以下に、SSE-Cの仕組みを図解と共に解説します。
図:SSE-Cによる暗号化と復号のプロセス
顧客 Amazon S3
-----------------------------------------------------------
1. 暗号化キー (AES-256) を生成
2. データを暗号化キーで暗号化
3. 暗号化データとキーのHMACをS3に送信
4. キーのHMACを検証
5. データをS3ストレージに保存
------------------------------------------------------------
6. 復号リクエスト (キーのHMACを含む) を送信
7. キーのHMACを検証
8. データを暗号化キーで復号
9. 復号データを顧客に返却
SSE-Cの特徴は以下の通りです。
- 柔軟なキー管理: 顧客は、独自のキー管理システムを用いてキーを生成、保存、ローテーションできます。
- セキュリティ強化: 暗号化キーはS3サーバーに保存されず、顧客のみがアクセスできます。
- 責任の明確化: キー管理の責任は顧客が負います。キーの紛失はデータの損失に直結します。
SSE-Cの悪用: ランサムウェア攻撃事例
今回、Codefingerと呼ばれるランサムウェア攻撃グループが、SSE-Cを悪用した攻撃を仕掛けました。
この攻撃では、攻撃者は 脆弱なAWSキーを入手 し、S3バケットへのアクセス権を取得します。
そして、 攻撃者が生成したAES-256キー を用いて、 SSE-Cでバケット内のオブジェクトを暗号化 します。
AWSはキー自体を保存しないため、 攻撃者だけが復号キーを保有 することになり、身代金を要求します。
図: CodefingerによるSSE-C悪用
攻撃者 Amazon S3 顧客
-------------------------------------------------------------------
1. 脆弱なAWSキーを入手
2. S3バケットへのアクセス権を取得
3. 攻撃者独自の暗号化キーを生成
4. SSE-Cでオブジェクトを暗号化
5. キーのHMACを検証
6. データをS3ストレージに保存
--------------------------------------------------------------------
7. 顧客はデータにアクセスできない
8. 身代金メモを設置
9. 復号キーと引き換えに身代金を要求
まとめ: SSE-C利用におけるリスクと対策
SSE-Cは強力な暗号化方式ですが、 キー管理を適切に行わなければセキュリティリスク が高まります。 特に、ランサムウェア攻撃の標的となる可能性を考慮し、以下の対策を講じることが重要です。
- AWSキーの厳格な管理:
- アクセス制御: 最小限の権限の原則を適用し、必要なユーザーにのみ必要なアクセス権を付与します。
- キーのローテーション: 定期的にキーをローテーションすることで、キーが侵害された場合の影響を最小限に抑えます。
- キーの保管: 安全な場所にキーを保管し、不正アクセスを防ぎます。
- SSE-C利用時の注意:
- キーのバックアップ: 暗号化キーは安全な場所にバックアップし、紛失に備えます。
- 複数方式の併用: SSE-Cに加えて、他のセキュリティ対策(多要素認証、ネットワークセキュリティなど)を導入することで、セキュリティレベルを高めます。
- AWSのセキュリティ機能の活用:
- AWS CloudTrail: S3バケットへのアクセスログを監視し、不審なアクティビティを検知します。
- Amazon GuardDuty: 脅威インテリジェンスに基づいて、AWS環境におけるセキュリティ脅威を検知します。
SSE-Cは、適切に利用すれば強力なセキュリティ対策となります。
しかし、キー管理の重要性を理解し、適切な対策を講じなければ、思わぬセキュリティリスクに晒される可能性があります。
解説した内容を参考に、S3における暗号化設定を見直し、よりセキュアなクラウド環境を構築することを推奨します。
背景情報
- AWS S3は多くの企業が利用するクラウドストレージサービス
- SSE-Cはユーザー側で暗号化キーを管理する機能
- 攻撃者はこの機能を悪用し、データを勝手に暗号化している
- 過去に組織から盗まれたAWSキーを使って認証を通過し、データ暗号化を行う