diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md index c44840ef6..423ce8817 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md @@ -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** -### 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 aws kms describe-key --key-id aws kms get-key-policy --key-id --policy-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