Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA

This commit is contained in:
Translator
2025-02-10 23:48:39 +00:00
parent a9b6f240ac
commit 4f3ffb6f5b
33 changed files with 477 additions and 773 deletions

View File

@@ -86,11 +86,11 @@ IAM se puede definir por su capacidad para gestionar, controlar y gobernar los m
### [Usuario raíz de la cuenta de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) <a href="#id_root" id="id_root"></a>
Cuando creas por primera vez una cuenta de Amazon Web Services (AWS), comienzas con una única identidad de inicio de sesión que tiene **acceso completo a todos** los servicios y recursos de AWS en la cuenta. Este es el _**usuario raíz**_ de la cuenta de AWS y se accede iniciando sesión con la **dirección de correo electrónico y la contraseña que usaste para crear la cuenta**.
Cuando creas por primera vez una cuenta de Amazon Web Services (AWS), comienzas con una identidad de inicio de sesión única que tiene **acceso completo a todos** los servicios y recursos de AWS en la cuenta. Este es el _**usuario raíz**_ de la cuenta de AWS y se accede iniciando sesión con la **dirección de correo electrónico y la contraseña que utilizaste para crear la cuenta**.
Nota que un nuevo **usuario administrador** tendrá **menos permisos que el usuario raíz**.
Nota que un nuevo **usuario admin** tendrá **menos permisos que el usuario raíz**.
Desde el punto de vista de la seguridad, se recomienda crear otros usuarios y evitar usar este.
Desde un punto de vista de seguridad, se recomienda crear otros usuarios y evitar usar este.
### [Usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) <a href="#id_iam-users" id="id_iam-users"></a>
@@ -103,10 +103,10 @@ Los usuarios pueden tener **MFA habilitado para iniciar sesión** a través de l
#### CLI
- **ID de clave de acceso**: 20 caracteres alfanuméricos aleatorios en mayúsculas como AKHDNAPO86BSHKDIRYT
- **ID de clave de acceso secreta**: 40 caracteres aleatorios en mayúsculas y minúsculas: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (No es posible recuperar IDs de clave de acceso secreta perdidas).
- **ID de clave de acceso secreta**: 40 caracteres aleatorios en mayúsculas y minúsculas: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (No es posible recuperar IDs de claves de acceso secretas perdidas).
Siempre que necesites **cambiar la clave de acceso**, este es el proceso que debes seguir:\
&#xNAN;_&#x43;rear una nueva clave de acceso -> Aplicar la nueva clave al sistema/aplicación -> marcar la original como inactiva -> Probar y verificar que la nueva clave de acceso funciona -> Eliminar la clave de acceso antigua_
_Crear una nueva clave de acceso -> Aplicar la nueva clave al sistema/aplicación -> marcar la original como inactiva -> Probar y verificar que la nueva clave de acceso funciona -> Eliminar la clave de acceso antigua_
### MFA - Autenticación de Múltiples Factores
@@ -143,7 +143,7 @@ Aquí hay algunas características importantes de los grupos de usuarios:
Un **rol** de IAM es muy **similar** a un **usuario**, en el sentido de que es una **identidad con políticas de permisos que determinan qué** puede y no puede hacer en AWS. Sin embargo, un rol **no tiene ninguna credencial** (contraseña o claves de acceso) asociada. En lugar de estar asociado de manera única a una persona, un rol está destinado a ser **asumido por cualquier persona que lo necesite (y tenga suficientes permisos)**. Un **usuario de IAM puede asumir un rol para temporalmente** adoptar diferentes permisos para una tarea específica. Un rol puede ser **asignado a un** [**usuario federado**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) que inicia sesión utilizando un proveedor de identidad externo en lugar de IAM.
Un rol de IAM consiste en **dos tipos de políticas**: una **política de confianza**, que no puede estar vacía, definiendo **quién puede asumir** el rol, y una **política de permisos**, que no puede estar vacía, definiendo **a qué puede acceder**.
Un rol de IAM consta de **dos tipos de políticas**: una **política de confianza**, que no puede estar vacía, definiendo **quién puede asumir** el rol, y una **política de permisos**, que no puede estar vacía, definiendo **qué puede acceder**.
#### Servicio de Token de Seguridad de AWS (STS)
@@ -151,7 +151,7 @@ El Servicio de Token de Seguridad de AWS (STS) es un servicio web que facilita l
### [Credenciales temporales en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) <a href="#id_temp-creds" id="id_temp-creds"></a>
**Las credenciales temporales se utilizan principalmente con roles de IAM**, pero también hay otros usos. Puedes solicitar credenciales temporales que tengan un conjunto de permisos más restringido que tu usuario de IAM estándar. Esto **previene** que **realices accidentalmente tareas que no están permitidas** por las credenciales más restringidas. Un beneficio de las credenciales temporales es que expiran automáticamente después de un período de tiempo establecido. Tienes control sobre la duración durante la cual las credenciales son válidas.
Las **credenciales temporales se utilizan principalmente con roles de IAM**, pero también hay otros usos. Puedes solicitar credenciales temporales que tengan un conjunto de permisos más restringido que tu usuario de IAM estándar. Esto **previene** que **realices accidentalmente tareas que no están permitidas** por las credenciales más restringidas. Un beneficio de las credenciales temporales es que expiran automáticamente después de un período de tiempo establecido. Tienes control sobre la duración durante la cual las credenciales son válidas.
### Políticas
@@ -162,7 +162,7 @@ Se utilizan para asignar permisos. Hay 2 tipos:
- Políticas administradas por AWS (preconfiguradas por AWS)
- Políticas administradas por el cliente: configuradas por ti. Puedes crear políticas basadas en políticas administradas por AWS (modificando una de ellas y creando la tuya), utilizando el generador de políticas (una vista GUI que te ayuda a otorgar y denegar permisos) o escribiendo la tuya propia.
Por **defecto, el acceso** es **denegado**, el acceso se otorgará si se ha especificado un rol explícito.\
Por **defecto, el acceso** es **denegado**, el acceso se otorgará si se ha especificado un rol explícito.\
Si **existe un "Deny" único, anulará el "Allow"**, excepto para las solicitudes que utilizan las credenciales de seguridad raíz de la cuenta de AWS (que están permitidas por defecto).
```javascript
{
@@ -191,8 +191,8 @@ Los [campos específicos que se pueden usar para condiciones por servicio están
#### Políticas en línea
Este tipo de políticas son **asignadas directamente** a un usuario, grupo o rol. Entonces, no aparecen en la lista de Políticas ya que ningún otro puede usarlas.\
Las políticas en línea son útiles si deseas **mantener una relación estricta uno a uno entre una política y la identidad** a la que se aplica. Por ejemplo, quieres asegurarte de que los permisos en una política no se asignen inadvertidamente a una identidad diferente de la que están destinados. Cuando usas una política en línea, los permisos en la política no pueden ser adjuntados inadvertidamente a la identidad incorrecta. Además, cuando usas la Consola de Administración de AWS para eliminar esa identidad, las políticas incrustadas en la identidad también se eliminan. Eso es porque son parte de la entidad principal.
Este tipo de políticas son **asignadas directamente** a un usuario, grupo o rol. Por lo tanto, no aparecen en la lista de Políticas ya que ningún otro puede usarlas.\
Las políticas en línea son útiles si deseas **mantener una relación estricta uno a uno entre una política y la identidad** a la que se aplica. Por ejemplo, quieres asegurarte de que los permisos en una política no se asignen inadvertidamente a una identidad diferente de la que están destinados. Cuando usas una política en línea, los permisos en la política no pueden ser adjuntados inadvertidamente a la identidad incorrecta. Además, cuando usas la Consola de Administración de AWS para eliminar esa identidad, las políticas incrustadas en la identidad también se eliminan. Eso se debe a que son parte de la entidad principal.
#### Políticas de Bucket de Recursos
@@ -220,18 +220,18 @@ aws sts assume-role \
[--policy-arns <arn_custom_policy1> <arn_custom_policy2>]
[--policy <file://policy.json>]
```
Tenga en cuenta que por defecto **AWS podría agregar políticas de sesión a las sesiones** que se van a generar por razones de terceros. Por ejemplo, en [roles asumidos de cognito no autenticados](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) por defecto (usando autenticación mejorada), AWS generará **credenciales de sesión con una política de sesión** que limita los servicios a los que la sesión puede acceder [**a la siguiente lista**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
Nota que por defecto **AWS puede agregar políticas de sesión a las sesiones** que se van a generar por razones de terceros. Por ejemplo, en [roles asumidos de cognito no autenticados](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) por defecto (usando autenticación mejorada), AWS generará **credenciales de sesión con una política de sesión** que limita los servicios a los que la sesión puede acceder [**a la siguiente lista**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
Por lo tanto, si en algún momento se enfrenta al error "... porque ninguna política de sesión permite el ...", y el rol tiene acceso para realizar la acción, es porque **hay una política de sesión que lo impide**.
Por lo tanto, si en algún momento te enfrentas al error "... porque ninguna política de sesión permite el ...", y el rol tiene acceso para realizar la acción, es porque **hay una política de sesión que lo impide**.
### Federación de Identidad
La federación de identidad **permite a los usuarios de proveedores de identidad que son externos** a AWS acceder a los recursos de AWS de manera segura sin tener que proporcionar credenciales de usuario de AWS de una cuenta de IAM válida.\
Un ejemplo de un proveedor de identidad puede ser su propio **Microsoft Active Directory** corporativo (a través de **SAML**) o servicios de **OpenID** (como **Google**). El acceso federado permitirá entonces a los usuarios dentro de él acceder a AWS.
La federación de identidad **permite a los usuarios de proveedores de identidad que son externos** a AWS acceder a recursos de AWS de manera segura sin tener que proporcionar credenciales de usuario de AWS de una cuenta IAM válida.\
Un ejemplo de un proveedor de identidad puede ser tu propio **Microsoft Active Directory** corporativo (a través de **SAML**) o servicios de **OpenID** (como **Google**). El acceso federado permitirá entonces a los usuarios dentro de él acceder a AWS.
Para configurar esta confianza, se genera un **Proveedor de Identidad IAM (SAML u OAuth)** que **confiará** en la **otra plataforma**. Luego, al menos un **rol IAM es asignado (confiando) al Proveedor de Identidad**. Si un usuario de la plataforma de confianza accede a AWS, lo hará como el rol mencionado.
Para configurar esta confianza, se genera un **Proveedor de Identidad IAM (SAML u OAuth)** que **confiará** en la **otra plataforma**. Luego, al menos un **rol IAM es asignado (confiando) al Proveedor de Identidad**. Si un usuario de la plataforma confiable accede a AWS, lo hará como el rol mencionado.
Sin embargo, generalmente querrá dar un **rol diferente dependiendo del grupo del usuario** en la plataforma de terceros. Entonces, varios **roles IAM pueden confiar** en el Proveedor de Identidad de terceros y la plataforma de terceros será la que permitirá a los usuarios asumir un rol u otro.
Sin embargo, generalmente querrás dar un **rol diferente dependiendo del grupo del usuario** en la plataforma de terceros. Entonces, varios **roles IAM pueden confiar** en el Proveedor de Identidad de terceros y la plataforma de terceros será la que permitirá a los usuarios asumir un rol u otro.
<figure><img src="../../../images/image (247).png" alt=""><figcaption></figcaption></figure>
@@ -241,7 +241,7 @@ AWS IAM Identity Center (sucesor de AWS Single Sign-On) amplía las capacidades
El dominio de inicio de sesión será algo como `<user_input>.awsapps.com`.
Para iniciar sesión a los usuarios, hay 3 fuentes de identidad que se pueden utilizar:
Para iniciar sesión a los usuarios, hay 3 fuentes de identidad que se pueden usar:
- Directorio del Centro de Identidad: Usuarios regulares de AWS
- Active Directory: Soporta diferentes conectores
@@ -257,12 +257,12 @@ Para dar acceso a un usuario/grupo del Centro de Identidad a una cuenta, se **cr
Es posible **dar permisos a través de políticas en línea a roles creados a través del Centro de Identidad IAM**. Los roles creados en las cuentas que se les dan **políticas en línea en AWS Identity Center** tendrán estos permisos en una política en línea llamada **`AwsSSOInlinePolicy`**.
Por lo tanto, incluso si ve 2 roles con una política en línea llamada **`AwsSSOInlinePolicy`**, **no significa que tenga los mismos permisos**.
Por lo tanto, incluso si ves 2 roles con una política en línea llamada **`AwsSSOInlinePolicy`**, **no significa que tenga los mismos permisos**.
### Confianza y Roles entre Cuentas
### Confianzas y Roles entre Cuentas
**Un usuario** (confiando) puede crear un Rol entre Cuentas con algunas políticas y luego, **permitir a otro usuario** (confiado) **acceder a su cuenta** pero solo **teniendo el acceso indicado en las nuevas políticas del rol**. Para crear esto, simplemente cree un nuevo Rol y seleccione Rol entre Cuentas. Los roles para Acceso entre Cuentas ofrecen dos opciones. Proporcionar acceso entre cuentas de AWS que posee, y proporcionar acceso entre una cuenta que posee y una cuenta de AWS de terceros.\
Se recomienda **especificar el usuario que es de confianza y no poner algo genérico** porque de lo contrario, otros usuarios autenticados como usuarios federados también podrán abusar de esta confianza.
**Un usuario** (confiando) puede crear un Rol entre Cuentas con algunas políticas y luego, **permitir a otro usuario** (confiado) **acceder a su cuenta** pero solo **teniendo el acceso indicado en las nuevas políticas del rol**. Para crear esto, solo crea un nuevo Rol y selecciona Rol entre Cuentas. Los roles para Acceso entre Cuentas ofrecen dos opciones. Proporcionar acceso entre cuentas de AWS que posees, y proporcionar acceso entre una cuenta que posees y una cuenta de AWS de terceros.\
Se recomienda **especificar el usuario que es confiado y no poner algo genérico** porque de lo contrario, otros usuarios autenticados como usuarios federados también podrán abusar de esta confianza.
### AWS Simple AD
@@ -271,7 +271,7 @@ No soportado:
- Relaciones de Confianza
- Centro de Administración de AD
- Soporte completo de API de PS
- Papelera de reciclaje de AD
- Papelera de Reciclaje de AD
- Cuentas de Servicio Administradas por Grupo
- Extensiones de Esquema
- Sin acceso directo a OS o Instancias
@@ -282,17 +282,19 @@ La aplicación utiliza AssumeRoleWithWebIdentity para crear credenciales tempora
### Otras opciones de IAM
- Puede **establecer una configuración de política de contraseñas** con opciones como longitud mínima y requisitos de contraseña.
- Puede **descargar un "Informe de Credenciales"** con información sobre las credenciales actuales (como el tiempo de creación del usuario, si la contraseña está habilitada...). Puede generar un informe de credenciales tan a menudo como una vez cada **cuatro horas**.
- Puedes **establecer una configuración de política de contraseñas** con opciones como longitud mínima y requisitos de contraseña.
- Puedes **descargar "Informe de Credenciales"** con información sobre las credenciales actuales (como tiempo de creación del usuario, si la contraseña está habilitada...). Puedes generar un informe de credenciales tan a menudo como una vez cada **cuatro horas**.
AWS Identity and Access Management (IAM) proporciona **control de acceso detallado** en toda AWS. Con IAM, puede especificar **quién puede acceder a qué servicios y recursos**, y bajo qué condiciones. Con las políticas de IAM, gestiona los permisos para su fuerza laboral y sistemas para **asegurar permisos de menor privilegio**.
AWS Identity and Access Management (IAM) proporciona **control de acceso granular** en toda AWS. Con IAM, puedes especificar **quién puede acceder a qué servicios y recursos**, y bajo qué condiciones. Con las políticas de IAM, gestionas los permisos para tu fuerza laboral y sistemas para **asegurar permisos de menor privilegio**.
### Prefijos de ID de IAM
En [**esta página**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) puede encontrar los **prefijos de ID de IAM** de las claves dependiendo de su naturaleza:
En [**esta página**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) puedes encontrar los **prefijos de ID de IAM** de las claves dependiendo de su naturaleza:
| ABIA | [Token portador del servicio AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
| Código de Identificador | Descripción |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ABIA | [Token portador del servicio AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
| ACCA | Credencial específica del contexto |
| AGPA | Grupo de usuarios |
| AIDA | Usuario IAM |
@@ -322,8 +324,8 @@ Los siguientes privilegios otorgan varios accesos de lectura de metadatos:
### Autenticación CLI
Para que un usuario regular se autentique en AWS a través de CLI, necesita tener **credenciales locales**. Por defecto, puede configurarlas **manualmente** en `~/.aws/credentials` o **ejecutando** `aws configure`.\
En ese archivo puede tener más de un perfil, si **no se especifica un perfil** usando el **aws cli**, se utilizará el llamado **`[default]`** en ese archivo.\
Para que un usuario regular se autentique en AWS a través de CLI, necesitas tener **credenciales locales**. Por defecto, puedes configurarlas **manualmente** en `~/.aws/credentials` o **ejecutando** `aws configure`.\
En ese archivo puedes tener más de un perfil, si **no se especifica un perfil** usando el **aws cli**, se utilizará el llamado **`[default]`** en ese archivo.\
Ejemplo de archivo de credenciales con más de 1 perfil:
```
[default]
@@ -351,7 +353,7 @@ Con este archivo de configuración, puedes usar aws cli así:
```
aws --profile acc2 ...
```
Si estás buscando algo **similar** a esto pero para el **navegador**, puedes consultar la **extensión** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en).
Si estás buscando algo **similar** a esto pero para el **navegador**, puedes revisar la **extensión** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en).
## Referencias

View File

@@ -24,7 +24,7 @@ Los registros de CloudTrail pueden ser **agregados a través de cuentas y region
CloudTrail permite usar **la integridad del archivo de registro para poder verificar que tus archivos de registro no han cambiado** desde que CloudTrail te los entregó. Crea un hash SHA-256 de los registros dentro de un archivo de resumen. Un hash sha-256 de los nuevos registros se crea cada hora.\
Al crear un Trail, los selectores de eventos te permitirán indicar el tipo de registro: eventos de gestión, de datos o de información.
Los registros se guardan en un bucket de S3. Por defecto, se utiliza el cifrado del lado del servidor (SSE-S3), por lo que AWS descifrará el contenido para las personas que tengan acceso a él, pero para mayor seguridad puedes usar SSE con KMS y tus propias claves.
Los registros se guardan en un bucket de S3. Por defecto, se utiliza el cifrado del lado del servidor (SSE-S3), por lo que AWS descifrará el contenido para las personas que tienen acceso a él, pero para mayor seguridad puedes usar SSE con KMS y tus propias claves.
Los registros se almacenan en un **bucket de S3 con este formato de nombre**:
@@ -88,15 +88,15 @@ El Historial de Eventos de CloudTrail te permite inspeccionar en una tabla los r
Los insights se almacenan en el mismo bucket que los registros de CloudTrail en: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
### Security
| Integridad del Archivo de Registro de CloudTrail | <ul><li>Validar si los registros han sido manipulados (modificados o eliminados)</li><li><p>Utiliza archivos de resumen (crea un hash para cada archivo)</p><ul><li>Hashing SHA-256</li><li>SHA-256 con RSA para firma digital</li><li>clave privada propiedad de Amazon</li></ul></li><li>Toma 1 hora crear un archivo de resumen (hecho en la hora cada hora)</li></ul> |
| Control Name | Implementation Details |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Detener el acceso no autorizado | <ul><li><p>Usar políticas de IAM y políticas de bucket de S3</p><ul><li>equipo de seguridad —> acceso de administrador</li><li>auditores —> acceso solo de lectura</li></ul></li><li>Usar SSE-S3/SSE-KMS para cifrar los registros</li></ul> |
| Prevenir que los archivos de registro sean eliminados | <ul><li>Restringir el acceso de eliminación con políticas de IAM y bucket</li><li>Configurar la eliminación MFA de S3</li><li>Validar con la Validación de Archivos de Registro</li></ul> |
| CloudTrail Log File Integrity | <ul><li>Validar si los registros han sido manipulados (modificados o eliminados)</li><li><p>Usa archivos de resumen (crea un hash para cada archivo)</p><ul><li>SHA-256 hashing</li><li>SHA-256 con RSA para firma digital</li><li>clave privada propiedad de Amazon</li></ul></li><li>Toma 1 hora crear un archivo de resumen (hecho en la hora cada hora)</li></ul> |
| Stop unauthorized access | <ul><li><p>Usar políticas de IAM y políticas de bucket S3</p><ul><li>equipo de seguridad —> acceso de administrador</li><li>auditores —> acceso solo de lectura</li></ul></li><li>Usar SSE-S3/SSE-KMS para cifrar los registros</li></ul> |
| Prevent log files from being deleted | <ul><li>Restringir el acceso de eliminación con políticas de IAM y de bucket</li><li>Configurar S3 MFA delete</li><li>Validar con Validación de Archivos de Registro</li></ul> |
## Access Advisor
AWS Access Advisor se basa en los últimos 400 días de registros de **CloudTrail de AWS para recopilar sus insights**. CloudTrail captura un historial de llamadas a la API de AWS y eventos relacionados realizados en una cuenta de AWS. Access Advisor utiliza estos datos para **mostrar cuándo se accedió por última vez a los servicios**. Al analizar los registros de CloudTrail, Access Advisor puede determinar qué servicios de AWS ha accedido un usuario o rol de IAM y cuándo ocurrió ese acceso. Esto ayuda a los administradores de AWS a tomar decisiones informadas sobre **refinar permisos**, ya que pueden identificar servicios que no se han accedido durante períodos prolongados y potencialmente reducir permisos excesivamente amplios basados en patrones de uso reales.
AWS Access Advisor se basa en los últimos 400 días de registros de AWS **CloudTrail para recopilar sus insights**. CloudTrail captura un historial de llamadas a la API de AWS y eventos relacionados realizados en una cuenta de AWS. Access Advisor utiliza estos datos para **mostrar cuándo se accedió por última vez a los servicios**. Al analizar los registros de CloudTrail, Access Advisor puede determinar qué servicios de AWS ha accedido un usuario o rol de IAM y cuándo ocurrió ese acceso. Esto ayuda a los administradores de AWS a tomar decisiones informadas sobre **refinar permisos**, ya que pueden identificar servicios que no se han accedido durante períodos prolongados y potencialmente reducir permisos excesivamente amplios basados en patrones de uso reales.
> [!TIP]
> Por lo tanto, Access Advisor informa sobre **los permisos innecesarios que se están otorgando a los usuarios** para que el administrador pueda eliminarlos
@@ -198,7 +198,7 @@ De esta manera, un **atacante puede obtener el ARN de la clave sin activar ning
![](<../../../../images/image (93).png>)
> [!CAUTION]
> Ten en cuenta que todas las API públicas descubiertas que no estaban creando logs de CloudTrail ahora están corregidas, así que tal vez necesites encontrar las tuyas...
> Ten en cuenta que todas las API públicas descubiertas que no estaban creando logs de CloudTrail ahora están arregladas, así que tal vez necesites encontrar las tuyas...
>
> Para más información, consulta la [**investigación original**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/).

View File

@@ -11,7 +11,7 @@ Puede establecer **alarmas de alta resolución**, visualizar **logs** y **métri
Puede monitorear, por ejemplo, logs de CloudTrail. Los eventos que se monitorean:
- Cambios en Grupos de Seguridad y NACLs
- Iniciar, Detener, reiniciar y terminar instancias EC2
- Inicio, Detención, reinicio y terminación de instancias EC2
- Cambios en Políticas de Seguridad dentro de IAM y S3
- Intentos de inicio de sesión fallidos en la Consola de Administración de AWS
- Llamadas a la API que resultaron en autorización fallida
@@ -68,7 +68,7 @@ Las unidades son el tipo de medida asociado con una métrica. Las unidades ayuda
**Metric Streams** en AWS CloudWatch le permiten transmitir continuamente métricas de CloudWatch a un destino de su elección en casi tiempo real. Esto es particularmente útil para monitoreo avanzado, análisis y dashboards personalizados utilizando herramientas fuera de AWS.
**Metric Data** dentro de Metric Streams se refiere a las mediciones o puntos de datos reales que se están transmitiendo. Estos puntos de datos representan varias métricas como utilización de CPU, uso de memoria, etc., para recursos de AWS.
**Metric Data** dentro de Metric Streams se refiere a las mediciones reales o puntos de datos que se están transmitiendo. Estos puntos de datos representan varias métricas como utilización de CPU, uso de memoria, etc., para recursos de AWS.
**Ejemplo de Caso de Uso**:
@@ -84,11 +84,11 @@ Las unidades son el tipo de medida asociado con una métrica. Las unidades ayuda
- **Umbral**: El valor en el que se activa la alarma.
- **Períodos de Evaluación**: El número de períodos sobre los cuales se evalúan los datos.
- **Puntos de Datos para la Alarma**: El número de períodos con un umbral alcanzado necesario para activar la alarma.
- **Acciones**: Lo que sucede cuando se activa el estado de la alarma (por ejemplo, notificar a través de SNS).
- **Acciones**: Lo que sucede cuando se activa el estado de una alarma (por ejemplo, notificar a través de SNS).
**Ejemplo de Caso de Uso**:
- Monitorear la utilización de CPU de la instancia EC2 y enviar una notificación a través de SNS si supera el 80% durante 5 minutos consecutivos.
- Monitorear la utilización de CPU de una instancia EC2 y enviar una notificación a través de SNS si supera el 80% durante 5 minutos consecutivos.
### Anomaly Detectors
@@ -118,16 +118,16 @@ Las unidades son el tipo de medida asociado con una métrica. Las unidades ayuda
Permite **agregar y monitorear logs de aplicaciones** y sistemas de **servicios de AWS** (incluyendo CloudTrail) y **de aplicaciones/sistemas** (**CloudWatch Agent** se puede instalar en un host). Los logs pueden ser **almacenados indefinidamente** (dependiendo de la configuración del Grupo de Logs) y pueden ser exportados.
**Elementos**:
| **Grupo de Logs** | Una **colección de flujos de logs** que comparten la misma retención, monitoreo y configuraciones de control de acceso |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Flujo de Logs** | Una secuencia de **eventos de logs** que comparten el **mismo origen** |
| Término | Definición |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Grupo de Logs** | Una **colección de flujos de logs** que comparten la misma retención, monitoreo y configuraciones de control de acceso |
| **Flujo de Logs** | Una secuencia de **eventos de logs** que comparten la **misma fuente** |
| **Filtros de Suscripción** | Definen un **patrón de filtro que coincide con eventos** en un grupo de logs particular, enviándolos a un flujo de Kinesis Data Firehose, flujo de Kinesis o una función Lambda |
### Monitoreo y Eventos de CloudWatch
CloudWatch **básico** agrega datos **cada 5 minutos** (el **detallado** lo hace **cada 1 minuto**). Después de la agregación, **verifica los umbrales de las alarmas** en caso de que necesite activar una.\
En ese caso, CloudWatch puede estar preparado para enviar un evento y realizar algunas acciones automáticas (funciones de AWS Lambda, temas de SNS, colas de SQS, flujos de Kinesis).
En ese caso, CloudWatch puede estar preparado para enviar un evento y realizar algunas acciones automáticas (funciones de AWS lambda, temas de SNS, colas de SQS, flujos de Kinesis)
### Instalación del Agente
@@ -216,7 +216,7 @@ aws events list-event-buses
### **`cloudwatch:DeleteAlarms`,`cloudwatch:PutMetricAlarm` , `cloudwatch:PutCompositeAlarm`**
Un atacante con estos permisos podría socavar significativamente la infraestructura de monitoreo y alertas de una organización. Al eliminar alarmas existentes, un atacante podría desactivar alertas cruciales que notifican a los administradores sobre problemas críticos de rendimiento, violaciones de seguridad o fallos operativos. Además, al crear o modificar alarmas métricas, el atacante también podría engañar a los administradores con alertas falsas o silenciar alarmas legítimas, enmascarando efectivamente actividades maliciosas y evitando respuestas oportunas a incidentes reales.
Un atacante con estos permisos podría socavar significativamente la infraestructura de monitoreo y alerta de una organización. Al eliminar alarmas existentes, un atacante podría desactivar alertas cruciales que notifican a los administradores sobre problemas críticos de rendimiento, violaciones de seguridad o fallos operativos. Además, al crear o modificar alarmas métricas, el atacante también podría engañar a los administradores con alertas falsas o silenciar alarmas legítimas, enmascarando efectivamente actividades maliciosas y evitando respuestas oportunas a incidentes reales.
Además, con el permiso **`cloudwatch:PutCompositeAlarm`**, un atacante podría crear un bucle o ciclo de alarmas compuestas, donde la alarma compuesta A depende de la alarma compuesta B, y la alarma compuesta B también depende de la alarma compuesta A. En este escenario, no es posible eliminar ninguna alarma compuesta que sea parte del ciclo porque siempre hay una alarma compuesta que depende de esa alarma que deseas eliminar.
```bash
@@ -287,13 +287,13 @@ Al eliminar acciones de alarma, el atacante podría prevenir alertas críticas y
Además, un atacante con el permiso podría manipular los estados de alarma, siendo capaz de crear falsas alarmas para distraer y confundir a los administradores, o silenciar alarmas genuinas para ocultar actividades maliciosas en curso o fallos críticos del sistema.
- Si usas **`SetAlarmState`** en una alarma compuesta, la alarma compuesta no garantiza volver a su estado real. Solo regresa a su estado real una vez que cualquiera de sus alarmas hijas cambie de estado. También se reevaluará si actualizas su configuración.
- Si usas **`SetAlarmState`** en una alarma compuesta, la alarma compuesta no garantiza volver a su estado real. Regresa a su estado real solo una vez que cualquiera de sus alarmas hijas cambie de estado. También se reevaluará si actualizas su configuración.
```bash
aws cloudwatch disable-alarm-actions --alarm-names <value>
aws cloudwatch enable-alarm-actions --alarm-names <value>
aws cloudwatch set-alarm-state --alarm-name <value> --state-value <OK | ALARM | INSUFFICIENT_DATA> --state-reason <value> [--state-reason-data <value>]
```
**Impacto Potencial**: Falta de notificaciones para eventos críticos, problemas potenciales no detectados, alertas falsas, suprimir alertas genuinas y potencialmente detecciones perdidas de incidentes reales.
**Impacto Potencial**: Falta de notificaciones para eventos críticos, problemas potencialmente no detectados, alertas falsas, suprimir alertas genuinas y potencialmente detecciones perdidas de incidentes reales.
### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`**
@@ -370,7 +370,7 @@ aws cloudwatch delete-insight-rules --rule-names <value>
aws cloudwatch put-insight-rule --rule-name <value> --rule-definition <value> [--rule-state <value>]
aws cloudwatch put-managed-insight-rules --managed-rules <value>
```
**Impacto Potencial**: Dificultad para detectar y responder a problemas de rendimiento y anomalías, toma de decisiones mal informadas y potencialmente ocultar actividades maliciosas o fallos del sistema.
**Impacto Potencial**: Dificultad para detectar y responder a problemas de rendimiento y anomalías, toma de decisiones erróneas y potencialmente ocultar actividades maliciosas o fallos del sistema.
### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`**
@@ -417,7 +417,7 @@ Un atacante podría agregar, modificar o eliminar etiquetas de los recursos de C
aws cloudwatch tag-resource --resource-arn <value> --tags <value>
aws cloudwatch untag-resource --resource-arn <value> --tag-keys <value>
```
**Impacto Potencial**: Disrupción de las políticas de control de acceso basadas en etiquetas.
**Impacto Potencial**: Disrupción de políticas de control de acceso basadas en etiquetas.
## Referencias