mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 11:07:37 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-kms-enum
This commit is contained in:
@@ -6,11 +6,11 @@
|
||||
|
||||
O AWS Key Management Service (AWS KMS) é apresentado como um serviço gerenciado, simplificando o processo para os usuários **criarem e gerenciarem chaves mestras do cliente** (CMKs). Essas CMKs são integrais na criptografia dos dados do usuário. Um recurso notável do AWS KMS é que as CMKs são predominantemente **protegidas por módulos de segurança de hardware** (HSMs), aumentando a proteção das chaves de criptografia.
|
||||
|
||||
O KMS usa **criptografia simétrica**. Isso é usado para **criptografar informações em repouso** (por exemplo, dentro de um S3). Se você precisar **criptografar informações em trânsito**, precisará usar algo como **TLS**.
|
||||
O KMS utiliza **criptografia simétrica**. Isso é usado para **criptografar informações em repouso** (por exemplo, dentro de um S3). Se você precisar **criptografar informações em trânsito**, precisará usar algo como **TLS**.
|
||||
|
||||
O KMS é um **serviço específico da região**.
|
||||
O KMS é um **serviço específico de região**.
|
||||
|
||||
**Os administradores da Amazon não têm acesso às suas chaves**. Eles não podem recuperar suas chaves e não ajudam você com a criptografia de suas chaves. A AWS simplesmente administra o sistema operacional e o aplicativo subjacente; cabe a nós administrar nossas chaves de criptografia e administrar como essas chaves são usadas.
|
||||
**Administradores da Amazon não têm acesso às suas chaves**. Eles não podem recuperar suas chaves e não ajudam você com a criptografia de suas chaves. A AWS simplesmente administra o sistema operacional e o aplicativo subjacente; cabe a nós administrar nossas chaves de criptografia e administrar como essas chaves são usadas.
|
||||
|
||||
**Chaves Mestras do Cliente** (CMK): Podem criptografar dados de até 4KB de tamanho. Elas são tipicamente usadas para criar, criptografar e descriptografar as DEKs (Chaves de Criptografia de Dados). Então, as DEKs são usadas para criptografar os dados.
|
||||
|
||||
@@ -21,7 +21,7 @@ Existem 2 tipos de chaves mestras:
|
||||
- **CMKs gerenciadas pela AWS: Usadas por outros serviços para criptografar dados**. Elas são usadas pelo serviço que as criou em uma região. Elas são criadas na primeira vez que você implementa a criptografia nesse serviço. Rotaciona a cada 3 anos e não é possível alterá-la.
|
||||
- **CMKs gerenciadas pelo cliente**: Flexibilidade, rotação, acesso configurável e política de chave. Habilitar e desabilitar chaves.
|
||||
|
||||
**Criptografia Envelope** no contexto do Key Management Service (KMS): Sistema de hierarquia de dois níveis para **criptografar dados com a chave de dados e, em seguida, criptografar a chave de dados com a chave mestra**.
|
||||
**Criptografia Envelope** no contexto do Key Management Service (KMS): Sistema de hierarquia em dois níveis para **criptografar dados com a chave de dados e, em seguida, criptografar a chave de dados com a chave mestra**.
|
||||
|
||||
### Políticas de Chave
|
||||
|
||||
@@ -33,7 +33,7 @@ Por **padrão:**
|
||||
|
||||
Ao contrário de outras políticas de recursos da AWS, uma **política de chave KMS da AWS não concede automaticamente permissão a nenhum dos principais da conta**. Para conceder permissão aos administradores da conta, a **política de chave deve incluir uma declaração explícita** que forneça essa permissão, como esta.
|
||||
|
||||
- Sem permitir a conta(`"AWS": "arn:aws:iam::111122223333:root"`) as permissões IAM não funcionarão.
|
||||
- Sem permitir a conta (`"AWS": "arn:aws:iam::111122223333:root"`) as permissões IAM não funcionarão.
|
||||
|
||||
- Ela **permite que a conta use políticas IAM** para permitir acesso à chave KMS, além da política de chave.
|
||||
|
||||
@@ -76,32 +76,32 @@ Concessões:
|
||||
|
||||
**Acesso**:
|
||||
|
||||
- Via **política de chave** -- Se isso existir, isso tem **precedência** sobre a política IAM
|
||||
- Via **política da chave** -- Se isso existir, isso tem **precedência** sobre a política IAM
|
||||
- Via **política IAM**
|
||||
- Via **concessões**
|
||||
|
||||
</details>
|
||||
|
||||
### Administradores de Chave
|
||||
### Administradores de Chaves
|
||||
|
||||
Administrador de chave por padrão:
|
||||
Administrador de chaves por padrão:
|
||||
|
||||
- Tem acesso para gerenciar KMS, mas não para criptografar ou descriptografar dados
|
||||
- Apenas usuários e papéis IAM podem ser adicionados à lista de Administradores de Chave (não grupos)
|
||||
- Se um CMK externo for usado, os Administradores de Chave têm a permissão para importar material de chave
|
||||
- Apenas usuários e papéis IAM podem ser adicionados à lista de Administradores de Chaves (não grupos)
|
||||
- Se uma CMK externa for usada, os Administradores de Chaves têm a permissão para importar material de chave
|
||||
|
||||
### Rotação de CMKs
|
||||
|
||||
- Quanto mais tempo a mesma chave permanecer em uso, mais dados são criptografados com essa chave, e se essa chave for comprometida, então a área de impacto dos dados estará em risco. Além disso, quanto mais tempo a chave estiver ativa, maior a probabilidade de ser comprometida.
|
||||
- **KMS rotaciona chaves de clientes a cada 365 dias** (ou você pode realizar o processo manualmente sempre que quiser) e **chaves gerenciadas pela AWS a cada 3 anos** e esse tempo não pode ser alterado.
|
||||
- Quanto mais tempo a mesma chave permanecer em uso, mais dados são criptografados com essa chave, e se essa chave for comprometida, então a área de impacto dos dados em risco será maior. Além disso, quanto mais tempo a chave estiver ativa, maior a probabilidade de ser comprometida.
|
||||
- **KMS rotaciona chaves de clientes a cada 365 dias** (ou você pode realizar o processo manualmente sempre que quiser) e **chaves gerenciadas pela AWS a cada 3 anos**, e esse tempo não pode ser alterado.
|
||||
- **Chaves mais antigas são retidas** para descriptografar dados que foram criptografados antes da rotação
|
||||
- Em uma violação, rotacionar a chave não removerá a ameaça, pois será possível descriptografar todos os dados criptografados com a chave comprometida. No entanto, os **novos dados serão criptografados com a nova chave**.
|
||||
- Se o **CMK** estiver em estado de **desativado** ou **pendente de** **exclusão**, o KMS **não realizará uma rotação de chave** até que o CMK seja reativado ou a exclusão seja cancelada.
|
||||
- Em caso de violação, rotacionar a chave não removerá a ameaça, pois será possível descriptografar todos os dados criptografados com a chave comprometida. No entanto, os **novos dados serão criptografados com a nova chave**.
|
||||
- Se a **CMK** estiver em estado de **desativada** ou **pendente de** **exclusão**, o KMS **não realizará uma rotação de chave** até que a CMK seja reativada ou a exclusão seja cancelada.
|
||||
|
||||
#### Rotação manual
|
||||
|
||||
- Um **novo CMK precisa ser criado**, então, um novo CMK-ID é criado, portanto, você precisará **atualizar** qualquer **aplicativo** para **referenciar** o novo CMK-ID.
|
||||
- Para facilitar esse processo, você pode **usar aliases para se referir a um key-id** e então apenas atualizar a chave à qual o alias está se referindo.
|
||||
- Uma **nova CMK precisa ser criada**, então, um novo CMK-ID é criado, e você precisará **atualizar** qualquer **aplicação** para **referenciar** o novo CMK-ID.
|
||||
- Para facilitar esse processo, você pode **usar aliases para se referir a um key-id** e, em seguida, apenas atualizar a chave à qual o alias está se referindo.
|
||||
- Você precisa **manter chaves antigas para descriptografar arquivos antigos** criptografados com elas.
|
||||
|
||||
Você pode importar chaves de sua infraestrutura de chaves local.
|
||||
@@ -110,15 +110,15 @@ Você pode importar chaves de sua infraestrutura de chaves local.
|
||||
|
||||
O KMS é cobrado por número de solicitações de criptografia/descriptografia recebidas de todos os serviços por mês.
|
||||
|
||||
O KMS tem plena auditoria e conformidade **integração com o CloudTrail**; é aqui que você pode auditar todas as alterações realizadas no KMS.
|
||||
O KMS possui total auditoria e conformidade **integração com o CloudTrail**; é aqui que você pode auditar todas as alterações realizadas no KMS.
|
||||
|
||||
Com a política do KMS, você pode fazer o seguinte:
|
||||
|
||||
- Limitar quem pode criar chaves de dados e quais serviços têm acesso a usar essas chaves
|
||||
- Limitar o acesso dos sistemas para criptografar apenas, descriptografar apenas ou ambos
|
||||
- Definir para permitir que sistemas acessem chaves em diferentes regiões (embora não seja recomendado, pois uma falha na região que hospeda o KMS afetará a disponibilidade dos sistemas em outras regiões).
|
||||
- Definir para permitir que os sistemas acessem chaves em diferentes regiões (embora não seja recomendado, pois uma falha na região que hospeda o KMS afetará a disponibilidade dos sistemas em outras regiões).
|
||||
|
||||
Você não pode sincronizar ou mover/copiar chaves entre regiões; você só pode definir regras para permitir o acesso entre regiões.
|
||||
Você não pode sincronizar ou mover/copiar chaves entre regiões; você só pode definir regras para permitir acesso entre regiões.
|
||||
|
||||
### Enumeração
|
||||
```bash
|
||||
@@ -128,6 +128,11 @@ aws kms list-grants --key-id <id>
|
||||
aws kms describe-key --key-id <id>
|
||||
aws kms get-key-policy --key-id <id> --policy-name <name> # Default policy name is "default"
|
||||
aws kms describe-custom-key-stores
|
||||
|
||||
# This script enumerates AWS KMS keys across all available regions.
|
||||
for region in $(aws ec2 describe-regions --query "Regions[].RegionName" --output text); do
|
||||
echo -e "\n### Region: $region ###"; aws kms list-keys --region $region --query "Keys[].KeyId" --output text | tr '\t' '\n';
|
||||
done
|
||||
```
|
||||
### Privesc
|
||||
|
||||
|
||||
Reference in New Issue
Block a user