# AWS - S3 永続化

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

## S3

詳細は以下を参照してください:

{{#ref}}
../../aws-services/aws-s3-athena-and-glacier-enum.md
{{#endref}}

### KMS クライアント側暗号化

暗号化プロセスが完了すると、ユーザは KMS API を使って新しいキーを生成します（`aws kms generate-data-key`）そして**生成した暗号化キーをファイルのメタデータに保存します**（[python code example](https://aioboto3.readthedocs.io/en/latest/cse.html#how-it-works-kms-managed-keys)）ので、復号時に KMS を使って再度復号できます:

<figure><img src="../../../images/image (226).png" alt=""><figcaption></figcaption></figure>

したがって、attacker はメタデータからこのキーを取得し、KMS（`aws kms decrypt`）で復号して、情報を暗号化するために使用されたキーを入手する可能性があります。こうして attacker は暗号化キーを手に入れ、そのキーが他のファイルの暗号化に再利用されていれば、それらの復号にも使用できるようになります。

### S3 ACLs の利用

通常、バケットの ACLs は無効になっていることが多いですが、十分な権限を持つ attacker はそれらを悪用し（有効化されている場合、または attacker が有効化できる場合）、S3 bucket へのアクセスを維持することができます。

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