# AWS - Macie Privesc

{{#include ../../../../banners/hacktricks-training.md}}

## Macie

For more information about Macie check:

{{#ref}}
../../aws-services/aws-macie-enum.md
{{#endref}}

### Amazon Macie - Bypass `Reveal Sample` Integrity Check

AWS Macieは、AWS環境内の資格情報、個人識別情報（PII）、およびその他の機密データなどのセンシティブなデータを自動的に検出するセキュリティサービスです。MacieがS3バケットに格納されたAWSのシークレットキーのような機密資格情報を検出すると、検出されたデータの「サンプル」を表示できるfindingを生成します。通常、機密ファイルがS3バケットから削除されると、そのシークレットはもはや取得できないはずです。

しかし、十分な権限を持つ攻撃者が「同じ名前のファイルを再アップロード」し、中身を異なるダミーデータに置き換えることで回避できる脆弱性が確認されています。これによりMacieは新しくアップロードされたファイルを元のfindingに関連付け、攻撃者は**"Reveal Sample"**機能を使って以前に検出されたシークレットを抽出できてしまいます。この問題は、削除されたと想定されていたシークレットがこの手法で取り出せるため、重大なセキュリティリスクをもたらします。

![flow](https://github.com/user-attachments/assets/7b83f2d3-1690-41f1-98cc-05ccd0154a66)

**再現手順:**

1. S3バケットに機密データ（例: `test-secret.txt` に格納されたAWSシークレットキー）をアップロードし、AWS Macieがスキャンしてfindingを生成するのを待ちます。

2. AWS Macie Findingsに移動し、生成されたfindingを見つけ、**Reveal Sample**機能を使って検出されたシークレットを表示します。

3. S3バケットから`test-secret.txt`を削除し、ファイルが存在しないことを確認します。

4. 同じ名前の`test-secret.txt`をダミーデータで作成し、**attacker's account**を使って同じS3バケットに再アップロードします。

5. AWS Macie Findingsに戻り、元のfindingにアクセスして再度**Reveal Sample**をクリックします。

6. 異なるアカウント（今回のケースではattacker's account）からファイルが削除され、内容が置き換えられていても、Macieが元のシークレットを引き続き表示することを確認します。

**概要:**

この脆弱性により、十分なAWS IAM権限を持つ攻撃者は、元のファイルがS3から削除された後でも以前に検出されたシークレットを回収できます。AWSシークレットキー、アクセストークン、その他の機密資格情報が漏えいしている場合、攻撃者はこの欠陥を利用してそれらを取得し、不正にAWSリソースへアクセスする可能性があります。これにより、privilege escalation、無許可のデータアクセス、クラウド資産のさらなる侵害につながり、データ漏洩やサービス停止などの影響を引き起こす恐れがあります。
{{#include ../../../../banners/hacktricks-training.md}}
