mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-14 05:46:25 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA
This commit is contained in:
@@ -33,7 +33,7 @@ aws organizations create-account --account-name testingaccount --email testingac
|
||||
```
|
||||
### **Unidades de Organización**
|
||||
|
||||
Las cuentas pueden agruparse en **Unidades de Organización (OU)**. De esta manera, puedes crear **políticas** para la Unidad de Organización que se van a **aplicar a todas las cuentas hijas**. Ten en cuenta que una OU puede tener otras OUs como hijas.
|
||||
Las cuentas se pueden agrupar en **Unidades de Organización (OU)**. De esta manera, puedes crear **políticas** para la Unidad de Organización que se van a **aplicar a todas las cuentas hijas**. Ten en cuenta que una OU puede tener otras OUs como hijas.
|
||||
```bash
|
||||
# You can get the root id from aws organizations list-roots
|
||||
aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
|
||||
@@ -67,14 +67,14 @@ Encuentra **ejemplos de JSON** en [https://docs.aws.amazon.com/organizations/lat
|
||||
arn:partition:service:region:account-id:resource-type/resource-id
|
||||
arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env
|
||||
```
|
||||
Nota que hay 4 particiones en AWS pero solo 3 formas de llamarlas:
|
||||
Note que hay 4 particiones en AWS pero solo 3 formas de llamarlas:
|
||||
|
||||
- AWS Standard: `aws`
|
||||
- AWS China: `aws-cn`
|
||||
- AWS US public Internet (GovCloud): `aws-us-gov`
|
||||
- AWS Secret (US Classified): `aws`
|
||||
|
||||
## IAM - Gestión de Identidad y Acceso
|
||||
## IAM - Identity and Access Management
|
||||
|
||||
IAM es el servicio que te permitirá gestionar **Autenticación**, **Autorización** y **Control de Acceso** dentro de tu cuenta de AWS.
|
||||
|
||||
@@ -84,15 +84,15 @@ IAM es el servicio que te permitirá gestionar **Autenticación**, **Autorizaci
|
||||
|
||||
IAM se puede definir por su capacidad para gestionar, controlar y gobernar los mecanismos de autenticación, autorización y control de acceso de identidades a tus recursos dentro de tu cuenta de AWS.
|
||||
|
||||
### [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>
|
||||
### [AWS account root user](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 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**.
|
||||
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 usaste para crear la cuenta**.
|
||||
|
||||
Nota que un nuevo **usuario admin** tendrá **menos permisos que el usuario raíz**.
|
||||
Ten en cuenta que un nuevo **usuario administrador** tendrá **menos permisos que el usuario raíz**.
|
||||
|
||||
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>
|
||||
### [IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) <a href="#id_iam-users" id="id_iam-users"></a>
|
||||
|
||||
Un _usuario_ de IAM es una entidad que creas en AWS para **representar a la persona o aplicación** que lo utiliza para **interactuar con AWS**. Un usuario en AWS consiste en un nombre y credenciales (contraseña y hasta dos claves de acceso).
|
||||
|
||||
@@ -102,13 +102,13 @@ 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 claves de acceso secretas perdidas).
|
||||
- **Access Key ID**: 20 caracteres alfanuméricos aleatorios en mayúsculas como AKHDNAPO86BSHKDIRYT
|
||||
- **Secret access key ID**: 40 caracteres aleatorios en mayúsculas y minúsculas: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (No es posible recuperar los IDs de claves de acceso secreto perdidos).
|
||||
|
||||
Siempre que necesites **cambiar la clave de acceso**, este es el proceso que debes seguir:\
|
||||
Siempre que necesites **cambiar la Clave de Acceso**, este es el proceso que debes seguir:\
|
||||
_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
|
||||
### MFA - Multi Factor Authentication
|
||||
|
||||
Se utiliza para **crear un factor adicional para la autenticación** además de tus métodos existentes, como la contraseña, creando así un nivel de autenticación multifactor.\
|
||||
Puedes usar una **aplicación virtual gratuita o un dispositivo físico**. Puedes usar aplicaciones como Google Authenticator de forma gratuita para activar un MFA en AWS.
|
||||
@@ -120,7 +120,7 @@ Las políticas con condiciones de MFA se pueden adjuntar a lo siguiente:
|
||||
- La política de confianza de un rol de IAM que puede ser asumido por un usuario
|
||||
|
||||
Si deseas **acceder a través de CLI** a un recurso que **verifica MFA**, necesitas llamar a **`GetSessionToken`**. Eso te dará un token con información sobre MFA.\
|
||||
Nota que **las credenciales de `AssumeRole` no contienen esta información**.
|
||||
Ten en cuenta que **las credenciales de `AssumeRole` no contienen esta información**.
|
||||
```bash
|
||||
aws sts get-session-token --serial-number <arn_device> --token-code <code>
|
||||
```
|
||||
@@ -128,7 +128,7 @@ Como [**se indica aquí**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_c
|
||||
|
||||
### [Grupos de usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) <a href="#id_iam-groups" id="id_iam-groups"></a>
|
||||
|
||||
Un [grupo de usuarios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) de IAM es una forma de **adjuntar políticas a múltiples usuarios** a la vez, lo que puede facilitar la gestión de los permisos para esos usuarios. **Los roles y grupos no pueden ser parte de un grupo**.
|
||||
Un [grupo de usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) es una forma de **adjuntar políticas a múltiples usuarios** a la vez, lo que puede facilitar la gestión de los permisos para esos usuarios. **Los roles y grupos no pueden ser parte de un grupo**.
|
||||
|
||||
Puedes adjuntar una **política basada en identidad a un grupo de usuarios** para que todos los **usuarios** en el grupo de usuarios **reciban los permisos de la política**. No **puedes** identificar un **grupo de usuarios** como un **`Principal`** en una **política** (como una política basada en recursos) porque los grupos se relacionan con permisos, no con autenticación, y los principales son entidades IAM autenticadas.
|
||||
|
||||
@@ -137,7 +137,7 @@ Aquí hay algunas características importantes de los grupos de usuarios:
|
||||
- Un **grupo** de usuarios puede **contener muchos usuarios**, y un **usuario** puede **pertenecer a múltiples grupos**.
|
||||
- **Los grupos de usuarios no pueden estar anidados**; solo pueden contener usuarios, no otros grupos de usuarios.
|
||||
- No hay **un grupo de usuarios predeterminado que incluya automáticamente a todos los usuarios en la cuenta de AWS**. Si deseas tener un grupo de usuarios así, debes crearlo y asignar a cada nuevo usuario a él.
|
||||
- El número y tamaño de los recursos de IAM en una cuenta de AWS, como el número de grupos y el número de grupos de los que un usuario puede ser miembro, son limitados. Para más información, consulta [cuotas de IAM y AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
|
||||
- El número y tamaño de los recursos IAM en una cuenta de AWS, como el número de grupos y el número de grupos de los que un usuario puede ser miembro, son limitados. Para más información, consulta [cuotas de IAM y AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
|
||||
|
||||
### [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) <a href="#id_iam-roles" id="id_iam-roles"></a>
|
||||
|
||||
@@ -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 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
|
||||
|
||||
@@ -160,9 +160,9 @@ Las **credenciales temporales se utilizan principalmente con roles de IAM**, per
|
||||
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.
|
||||
- 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 propia), 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** está **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,7 +191,7 @@ 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. Por lo tanto, no aparecen en la lista de Políticas ya que ningún otro puede usarlas.\
|
||||
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 cualquier 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
|
||||
@@ -226,8 +226,8 @@ Por lo tanto, si en algún momento te enfrentas al error "... porque ninguna pol
|
||||
|
||||
### Federación de Identidad
|
||||
|
||||
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.
|
||||
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 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á 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 confiable accede a AWS, lo hará como el rol mencionado.
|
||||
|
||||
@@ -259,7 +259,7 @@ Es posible **dar permisos a través de políticas en línea a roles creados a tr
|
||||
|
||||
Por lo tanto, incluso si ves 2 roles con una política en línea llamada **`AwsSSOInlinePolicy`**, **no significa que tenga los mismos permisos**.
|
||||
|
||||
### Confianzas y Roles entre Cuentas
|
||||
### Confianza 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, 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.
|
||||
@@ -287,9 +287,9 @@ La aplicación utiliza AssumeRoleWithWebIdentity para crear credenciales tempora
|
||||
|
||||
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
|
||||
### Prefijos de ID IAM
|
||||
|
||||
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:
|
||||
En [**esta página**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) puedes encontrar los **prefijos de ID IAM** de las claves dependiendo de su naturaleza:
|
||||
|
||||
| Código de Identificador | Descripción |
|
||||
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
@@ -305,7 +305,7 @@ En [**esta página**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference
|
||||
| APKA | Clave pública |
|
||||
| AROA | Rol |
|
||||
| ASCA | Certificado |
|
||||
| ASIA | [IDs de claves de acceso temporales (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) utilizan este prefijo, pero son únicos solo en combinación con la clave de acceso secreta y el token de sesión. |
|
||||
| ASIA | [IDs de claves de acceso temporales (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) usan este prefijo, pero son únicos solo en combinación con la clave de acceso secreta y el token de sesión. |
|
||||
|
||||
### Permisos recomendados para auditar cuentas
|
||||
|
||||
@@ -320,12 +320,12 @@ Los siguientes privilegios otorgan varios accesos de lectura de metadatos:
|
||||
- `directconnect:DescribeConnections`
|
||||
- `dynamodb:ListTables`
|
||||
|
||||
## Varios
|
||||
## Miscelánea
|
||||
|
||||
### Autenticación CLI
|
||||
|
||||
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.\
|
||||
En ese archivo puedes tener más de un perfil, si **no se especifica un perfil** usando el **aws cli**, se usará el llamado **`[default]`** en ese archivo.\
|
||||
Ejemplo de archivo de credenciales con más de 1 perfil:
|
||||
```
|
||||
[default]
|
||||
|
||||
@@ -59,7 +59,7 @@ Al crear un CloudTrail, es posible indicar que se active CloudTrail para todas l
|
||||
|
||||
<figure><img src="../../../../images/image (200).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
De esta manera, puedes configurar fácilmente CloudTrail en todas las regiones de todas las cuentas y centralizar los registros en 1 cuenta (que debes proteger).
|
||||
De esta manera, puedes configurar fácilmente CloudTrail en todas las regiones de todas las cuentas y centralizar los registros en 1 cuenta (que deberías proteger).
|
||||
|
||||
### Verificación de Archivos de Registro
|
||||
|
||||
@@ -91,8 +91,8 @@ Los insights se almacenan en el mismo bucket que los registros de CloudTrail en:
|
||||
| Control Name | Implementation Details |
|
||||
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| 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> |
|
||||
| Stop unauthorized access | <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> |
|
||||
| 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 la eliminación MFA de S3</li><li>Validar con la Validación de Archivos de Registro</li></ul> |
|
||||
|
||||
## Access Advisor
|
||||
|
||||
@@ -191,7 +191,7 @@ La cuestión es que la salida te mostrará un error indicando el ID de la cuenta
|
||||
|
||||
#### Servicios de AWS sin logs
|
||||
|
||||
En el pasado, había algunos **servicios de AWS que no enviaban logs a CloudTrail** (encuentra una [lista aquí](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Algunos de esos servicios **responderán** con un **error** que contiene el **ARN del rol de la clave** si alguien no autorizado (la clave honeytoken) intenta acceder a él.
|
||||
En el pasado había algunos **servicios de AWS que no envían logs a CloudTrail** (encuentra una [lista aquí](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Algunos de esos servicios **responderán** con un **error** que contiene el **ARN del rol de la clave** si alguien no autorizado (la clave honeytoken) intenta acceder a él.
|
||||
|
||||
De esta manera, un **atacante puede obtener el ARN de la clave sin activar ningún log**. En el ARN, el atacante puede ver el **ID de la cuenta de AWS y el nombre**, es fácil conocer el ID y los nombres de las cuentas de las empresas del HoneyToken, así que de esta manera un atacante puede identificar si el token es un HoneyToken.
|
||||
|
||||
@@ -200,7 +200,7 @@ De esta manera, un **atacante puede obtener el ARN de la clave sin activar ning
|
||||
> [!CAUTION]
|
||||
> 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/).
|
||||
> Para más información consulta la [**investigación original**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/).
|
||||
|
||||
### Accediendo a Infraestructura de Terceros
|
||||
|
||||
|
||||
@@ -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 una alarma (por ejemplo, notificar a través de SNS).
|
||||
- **Acciones**: Lo que sucede cuando se activa el estado de la alarma (por ejemplo, notificar a través de SNS).
|
||||
|
||||
**Ejemplo de Caso de Uso**:
|
||||
|
||||
- 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.
|
||||
- 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.
|
||||
|
||||
### Anomaly Detectors
|
||||
|
||||
@@ -120,11 +120,11 @@ Permite **agregar y monitorear logs de aplicaciones** y sistemas de **servicios
|
||||
**Elementos**:
|
||||
| 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 |
|
||||
| **Log Group** | Una **colección de flujos de logs** que comparten la misma retención, monitoreo y configuraciones de control de acceso |
|
||||
| **Log Stream** | Una secuencia de **eventos de log** que comparten el **mismo origen** |
|
||||
| **Subscription Filters** | 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 Monitoring & Events
|
||||
|
||||
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)
|
||||
@@ -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 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.
|
||||
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.
|
||||
|
||||
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,7 +287,7 @@ 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. 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.
|
||||
- Si usas **`SetAlarmState`** en una alarma compuesta, no se garantiza que la alarma compuesta regrese 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>
|
||||
@@ -297,12 +297,12 @@ aws cloudwatch set-alarm-state --alarm-name <value> --state-value <OK | ALARM |
|
||||
|
||||
### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`**
|
||||
|
||||
Un atacante podría comprometer la capacidad de detección y respuesta a patrones inusuales o anomalías en los datos métricos. Al eliminar detectores de anomalías existentes, un atacante podría deshabilitar mecanismos críticos de alerta; y al crear o modificarlos, podría desconfigurarlos o crear falsos positivos para distraer o abrumar la monitorización.
|
||||
Un atacante podría comprometer la capacidad de detección y respuesta a patrones inusuales o anomalías en los datos métricos. Al eliminar detectores de anomalías existentes, un atacante podría deshabilitar mecanismos críticos de alerta; y al crear o modificar estos, podría desconfigurarlos o crear falsos positivos para distraer o abrumar la monitorización.
|
||||
```bash
|
||||
aws cloudwatch delete-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value>]
|
||||
aws cloudwatch put-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value> --configuration <value> --metric-characteristics <value>]
|
||||
```
|
||||
El siguiente ejemplo muestra cómo hacer que un detector de anomalías de métricas sea ineficaz. Este detector de anomalías de métricas monitorea la utilización promedio de CPU de una instancia EC2 específica, y solo al agregar el parámetro “ExcludedTimeRanges” con el rango de tiempo deseado, sería suficiente para asegurar que el detector de anomalías no analice ni alerte sobre ningún dato relevante durante ese período.
|
||||
El siguiente ejemplo muestra cómo hacer que un detector de anomalías de métricas sea ineficaz. Este detector de anomalías de métricas monitorea la utilización promedio de CPU de una instancia EC2 específica, y solo al agregar el parámetro “ExcludedTimeRanges” con el rango de tiempo deseado, sería suficiente para garantizar que el detector de anomalías no analice ni alerte sobre ningún dato relevante durante ese período.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Original Metric Anomaly Detector" }}
|
||||
|
||||
Reference in New Issue
Block a user