From d6bbf8b7cc05bbb935e81588e8213115a512e0a1 Mon Sep 17 00:00:00 2001 From: alexr3y <115954546+alexr3y@users.noreply.github.com> Date: Thu, 9 Feb 2023 15:14:38 +0200 Subject: [PATCH] update(compliance): ENS RD2022 Spanish security framework updates (#1809) Co-authored-by: Sergio Garcia --- prowler/compliance/aws/ens_rd2022_aws.json | 2412 +++++++++++++++-- prowler/lib/check/compliance_models.py | 4 +- prowler/lib/outputs/compliance.py | 20 +- ...nerate_compliance_json_from_csv_for_ens.py | 10 +- 4 files changed, 2266 insertions(+), 180 deletions(-) diff --git a/prowler/compliance/aws/ens_rd2022_aws.json b/prowler/compliance/aws/ens_rd2022_aws.json index a866f9ef..e59b86bc 100644 --- a/prowler/compliance/aws/ens_rd2022_aws.json +++ b/prowler/compliance/aws/ens_rd2022_aws.json @@ -13,12 +13,13 @@ "Marco": "operacional", "Categoria": "control de acceso", "DescripcionControl": "Es muy recomendable la utilización de un proveedor de identidades que permita administrar las identidades en un lugar centralizado, en vez de utilizar IAM para ello.", - "Nivel": "bajo", + "Nivel": "alto", "Tipo": "recomendacion", "Dimensiones": [ "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -41,7 +42,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -64,7 +66,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -87,7 +90,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -103,7 +107,57 @@ ] }, { - "Id": "op.acc.4.aws.iam.9", + "Id": "op.acc.4.aws.iam.2", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Evitar políticas con comodines (wildcards) en su definición, que puedan otorgar privilegios administrativos completos.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "iam_policy_allows_privilege_escalation", + "iam_no_custom_policy_permissive_role_assumption", + "iam_policy_no_administrative_privileges" + ] + }, + { + "Id": "op.acc.4.aws.iam.6", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Con AWS Systems Manager Automation pueden utilizarse documentos de automatización y diseñar flujos de trabajo para la administración de cambios o la ejecución de operaciones estándar para administrar las instancias EC2 (p. ej., actualizar los sistemas operativos), en lugar de permitir el acceso directo. ", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "ec2_instance_managed_by_ssm" + ] + }, + { + "Id": "op.acc.4.aws.iam.7", "Description": "Proceso de gestión de derechos de acceso", "Attributes": [ { @@ -118,7 +172,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -127,7 +182,7 @@ ] }, { - "Id": "op.acc.4.aws.iam.11", + "Id": "op.acc.4.aws.iam.9", "Description": "Proceso de gestión de derechos de acceso", "Attributes": [ { @@ -142,7 +197,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -165,7 +221,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -188,7 +245,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -211,7 +269,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -235,7 +294,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -260,7 +320,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -283,7 +344,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -311,10 +373,13 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ + "iam_administrator_access_with_mfa", + "iam_root_mfa_enabled", "iam_user_mfa_enabled_console_access" ] }, @@ -334,7 +399,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -342,31 +408,6 @@ "iam_root_hardware_mfa_enabled" ] }, - { - "Id": "op.acc.6.r4.aws.ct.1", - "Description": "Certificados en dispositvo físico", - "Attributes": [ - { - "IdGrupoControl": "op.acc.6.r4", - "Marco": "operacional", - "Categoria": "control de acceso", - "DescripcionControl": "Habilitar los dispositivos MFA físicos para todos los usuarios IAM mediante la consola, línea de comandos o la propia API de IAM. Del mismo modo, el uso de estos certificados deberá estar protegido por un segundo factor de tipo PIN o biométrico.", - "Nivel": "alto", - "Tipo": "refuerzo", - "Dimensiones": [ - "confidencialidad", - "integridad", - "trazabilidad", - "autenticidad" - ] - } - ], - "Checks": [ - "iam_administrator_access_with_mfa", - "iam_root_mfa_enabled", - "iam_user_mfa_enabled_console_access" - ] - }, { "Id": "op.acc.6.r5.aws.iam.1", "Description": "Registro", @@ -383,7 +424,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -406,7 +448,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -430,7 +473,8 @@ "integridad", "trazabilidad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -454,7 +498,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -478,7 +523,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -503,7 +549,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -519,7 +566,7 @@ "Marco": "operacional", "Categoria": "explotación", "DescripcionControl": "La entidad usuaria puede consultar el histórico de configuraciones de recursos en AWS Config.", - "Nivel": "bajo", + "Nivel": "alto", "Tipo": "recomendacion", "Dimensiones": [ "confidencialidad", @@ -527,7 +574,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -551,10 +599,12 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ + "ec2_instance_managed_by_ssm", "ssm_managed_compliant_patching" ] }, @@ -567,7 +617,7 @@ "Marco": "operacional", "Categoria": "explotación", "DescripcionControl": "Utilizar la solución AWS Systems Manager Automation para automatizar las tareas de corrección en servicios de AWS como EC2 y RDS.", - "Nivel": "bajo", + "Nivel": "alto", "Tipo": "recomendacion", "Dimensiones": [ "confidencialidad", @@ -575,12 +625,12 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ - "ec2_instance_managed_by_ssm", - "ssm_managed_compliant_patching" + "ec2_instance_managed_by_ssm" ] }, { @@ -592,7 +642,7 @@ "Marco": "operacional", "Categoria": "explotación", "DescripcionControl": "Asegurar que CloudTrail esté activo para todas las regiones.", - "Nivel": "bajo", + "Nivel": "alto", "Tipo": "recomendacion", "Dimensiones": [ "confidencialidad", @@ -600,7 +650,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -624,13 +675,117 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ "guardduty_is_enabled" ] }, + { + "Id": "op.exp.7.aws.gd.1", + "Description": "Gestión de incidentes", + "Attributes": [ + { + "IdGrupoControl": "op.exp.7", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Habilitar GuardDuty para la detección de incidentes de seguridad", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "guardduty_is_enabled", + "guardduty_no_high_severity_findings" + ] + }, + { + "Id": "op.exp.7.aws.sh.1", + "Description": "Gestión de incidentes", + "Attributes": [ + { + "IdGrupoControl": "op.exp.7", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Habilitar Security Hub", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "securityhub_enabled" + ] + }, + { + "Id": "op.exp.7.aws.cf.1", + "Description": "Gestión de incidentes", + "Attributes": [ + { + "IdGrupoControl": "op.exp.7", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Habilitar los logs de acceso de CloudFront", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "cloudfront_distributions_logging_enabled" + ] + }, + { + "Id": "op.ext.7.aws.am.1", + "Description": "Gestión de incidentes", + "Attributes": [ + { + "IdGrupoControl": "op.exp.7", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Deberá proveerse la información relacionada con contactos alternativos (de facturación, operaciones y seguridad), con correos que no dependan de la misma persona. Deberá comprobarse regularmente que estas cuentas funcionan correctamente y mantener listas de correo para asegurar la recepción de avisos por personal disponible en cada momento. Además, deberán establecerse preguntas de desafío de seguridad y respuestas para el caso de que sea necesario autenticarse como propiterio de la cuenta para ponerse en contacto con el soporte de AWS.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "account_maintain_current_contact_details", + "account_security_contact_information_is_registered", + "account_security_questions_are_registered_in_the_aws_account" + ] + }, { "Id": "op.exp.8.aws.ct.1", "Description": "Registro de actividad", @@ -644,7 +799,8 @@ "Tipo": "medida", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -664,7 +820,8 @@ "Tipo": "medida", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -684,7 +841,8 @@ "Tipo": "medida", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -704,7 +862,8 @@ "Tipo": "medida", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -720,12 +879,13 @@ "IdGrupoControl": "op.exp.8", "Marco": "operacional", "Categoria": "explotación", - "DescripcionControl": "Se deberán habilitar alertas para los siguientes eventos:\n* Llamadas no permitidas a la API\n* Accesos no permitidos a la consola\n* Todos los intentos de acceso sin el correcto uso de MFA\n* Toda la actividad realizada sobre y por la cuenta root\n* Cualquier cambio en las políticas IAM", + "DescripcionControl": "Se deberán habilitar alertas para los siguientes eventos: * Llamadas no permitidas a la API, * Accesos no permitidos a la consola, * Todos los intentos de acceso sin el correcto uso de MFA, * Toda la actividad realizada sobre y por la cuenta root, * Cualquier cambio en las políticas IAM", "Nivel": "alto", "Tipo": "medida", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -736,6 +896,48 @@ "cloudwatch_log_metric_filter_policy_changes" ] }, + { + "Id": "op.exp.8.aws.ct.6", + "Description": "Registro de actividad", + "Attributes": [ + { + "IdGrupoControl": "op.exp.8", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Activar el servicio de AWS CloudTrail para registrar la actividad de los usuarios relativa a la configuración de los servicios VPN Site-to-Site y AWS DirectConnect", + "Nivel": "alto", + "Tipo": "medida", + "Dimensiones": [ + "trazabilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "cloudtrail_multi_region_enabled" + ] + }, + { + "Id": "op.exp.8.aws.cw.1", + "Description": "Registro de actividad", + "Attributes": [ + { + "IdGrupoControl": "op.exp.8", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Crear alertas utilizando herramientas como Amazon CloudWatch Events para anunciar el inicio de sesión y el uso de las credenciales de usuario root de la cuenta de administración", + "Nivel": "alto", + "Tipo": "medida", + "Dimensiones": [ + "trazabilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "cloudwatch_log_metric_filter_root_usage" + ] + }, { "Id": "op.exp.8.r1.aws.ct.2", "Description": "Revisión de los registros", @@ -745,11 +947,12 @@ "Marco": "operacional", "Categoria": "explotación", "DescripcionControl": "Configurar la herramienta CloudTrail de manera que realice el registro de eventos de administración, eventos de datos y eventos anómalos (insights).", - "Nivel": "pytec", + "Nivel": "alto", "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -767,11 +970,12 @@ "Marco": "operacional", "Categoria": "explotación", "DescripcionControl": "Registrar los eventos de lectura y escritura de datos.", - "Nivel": "pytec", + "Nivel": "alto", "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -792,7 +996,8 @@ "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -812,7 +1017,8 @@ "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -832,7 +1038,8 @@ "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -840,7 +1047,32 @@ ] }, { - "Id": "op.exp.8.r4.aws.ct.3", + "Id": "op.exp.8.r4.aws.ct.8", + "Description": "Control de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.exp.8.r4", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Asignar correctamente las políticas IAM para el acceso y borrado de los registros y sus copias de seguridad haciendo uso del principio de mínimo privilegio.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "trazabilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "iam_policy_allows_privilege_escalation", + "iam_policy_no_administrative_privileges", + "iam_no_custom_policy_permissive_role_assumption", + "iam_policy_attached_only_to_group_or_roles", + "iam_role_cross_service_confused_deputy_prevention" + ] + }, + { + "Id": "op.exp.8.r4.aws.ct.2", "Description": "Control de acceso", "Attributes": [ { @@ -848,11 +1080,12 @@ "Marco": "operacional", "Categoria": "explotación", "DescripcionControl": "Utilizar una política de bucket para restringir el acceso de forma pública e imponer restricciones sobre cuáles de los usuarios pueden eliminar objetos de Amazon S3.", - "Nivel": "bajo", + "Nivel": "alto", "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -862,7 +1095,7 @@ ] }, { - "Id": "op.exp.8.r4.aws.ct.5", + "Id": "op.exp.8.r4.aws.ct.4", "Description": "Control de acceso", "Attributes": [ { @@ -870,11 +1103,12 @@ "Marco": "operacional", "Categoria": "explotación", "DescripcionControl": "Configurar los archivos de logs de AWS CloudTrail para aprovechar el cifrado del lado del servidor (SSE – Server Side Encryption) y las claves maestras creadas por el cliente (CMK de KMS).", - "Nivel": "pytec", + "Nivel": "alto", "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -882,7 +1116,7 @@ ] }, { - "Id": "op.exp.8.r4.aws.ct.6", + "Id": "op.exp.8.r4.aws.ct.5", "Description": "Control de acceso", "Attributes": [ { @@ -894,7 +1128,8 @@ "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -902,7 +1137,7 @@ ] }, { - "Id": "op.exp.8.r4.aws.ct.7", + "Id": "op.exp.8.r4.aws.ct.6", "Description": "Control de acceso", "Attributes": [ { @@ -914,7 +1149,8 @@ "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -922,7 +1158,7 @@ ] }, { - "Id": "op.exp.8.r4.aws.ct.8", + "Id": "op.exp.8.r4.aws.ct.7", "Description": "Control de acceso", "Attributes": [ { @@ -934,7 +1170,8 @@ "Tipo": "refuerzo", "Dimensiones": [ "trazabilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -942,7 +1179,32 @@ ] }, { - "Id": "op.exp.10.aws.cmk.6", + "Id": "op.exp.9.aws.ct.1", + "Description": "Registro de la gestión de incidentes", + "Attributes": [ + { + "IdGrupoControl": "op.exp.9", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Habilitar AWS Incident Manager y AWS CloudTrail en todas las regiones con el fin de recopilar información para generar contenido prescriptivo para la creación de informes exigidos por la medida de seguridad.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "cloudtrail_multi_region_enabled" + ] + }, + { + "Id": "op.exp.10.aws.cmk.3", "Description": "Protección de claves criptográficas", "Attributes": [ { @@ -950,55 +1212,7 @@ "Marco": "operacional", "Categoria": "explotación", "DescripcionControl": "Activar la rotación de las claves CMK.", - "Nivel": "pytec", - "Tipo": "medida", - "Dimensiones": [ - "confidencialidad", - "integridad", - "trazabilidad", - "autenticidad", - "disponibilidad" - ] - } - ], - "Checks": [ - "kms_cmk_rotation_enabled" - ] - }, - { - "Id": "op.exp.10.aws.cmk.7", - "Description": "Protección de claves criptográficas", - "Attributes": [ - { - "IdGrupoControl": "op.exp.10", - "Marco": "operacional", - "Categoria": "explotación", - "DescripcionControl": " Para el archivo posterior a la explotación y destrucción de las claves se debe deshabilitar todas las claves CMK que no estén en uso.", - "Nivel": "pytec", - "Tipo": "medida", - "Dimensiones": [ - "confidencialidad", - "integridad", - "trazabilidad", - "autenticidad", - "disponibilidad" - ] - } - ], - "Checks": [ - "cloudwatch_log_metric_filter_disable_or_scheduled_deletion_of_kms_cmk" - ] - }, - { - "Id": "op.exp.10.aws.cmk.8", - "Description": "Protección de claves criptográficas", - "Attributes": [ - { - "IdGrupoControl": "op.exp.10", - "Marco": "operacional", - "Categoria": "explotación", - "DescripcionControl": "Eliminar las claves deshabilitadas que no estén en uso y no mantengan ningún objeto o recurso cifrado, completando el ciclo de vida de la clave.", - "Nivel": "pytec", + "Nivel": "alto", "Tipo": "requisito", "Dimensiones": [ "confidencialidad", @@ -1006,7 +1220,58 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "kms_cmk_rotation_enabled" + ] + }, + { + "Id": "op.exp.10.aws.cmk.4", + "Description": "Protección de claves criptográficas", + "Attributes": [ + { + "IdGrupoControl": "op.exp.10", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Para el archivo posterior a la explotación y destrucción de las claves se debe deshabilitar todas las claves CMK que no estén en uso.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "cloudwatch_log_metric_filter_disable_or_scheduled_deletion_of_kms_cmk" + ] + }, + { + "Id": "op.exp.10.aws.cmk.5", + "Description": "Protección de claves criptográficas", + "Attributes": [ + { + "IdGrupoControl": "op.exp.10", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Eliminar las claves deshabilitadas que no estén en uso y no mantengan ningún objeto o recurso cifrado, completando el ciclo de vida de la clave.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1023,14 +1288,15 @@ "Categoria": "monitorización del sistema", "DescripcionControl": "En ausencia de otras herramientas de terceros, habilitar Amazon GuarDuty para la detección de amenazas e intrusiones.", "Nivel": "alto", - "Tipo": "medida", + "Tipo": "requisito", "Dimensiones": [ "confidencialidad", "integridad", "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1047,14 +1313,15 @@ "Categoria": "monitorización del sistema", "DescripcionControl": "Activar el servicio de eventos AWS CloudTrail para todas las regiones.", "Nivel": "alto", - "Tipo": "medida", + "Tipo": "requisito", "Dimensiones": [ "confidencialidad", "integridad", "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1071,14 +1338,15 @@ "Categoria": "monitorización del sistema", "DescripcionControl": "Activar el servicio VPC FlowLogs.", "Nivel": "alto", - "Tipo": "medida", + "Tipo": "requisito", "Dimensiones": [ "confidencialidad", "integridad", "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1102,7 +1370,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1119,6 +1388,31 @@ "Categoria": "monitorización del sistema", "DescripcionControl": "Utilizar Security Hub para obtener una vista consolidada de los hallazgos de seguridad en los servicios de AWS habilitados.", "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "securityhub_enabled" + ] + }, + { + "Id": "op.mon.3.aws.cwl.2", + "Description": "Vigilancia", + "Attributes": [ + { + "IdGrupoControl": "op.mon.3", + "Marco": "operacional", + "Categoria": "monitorización del sistema", + "DescripcionControl": "Se deberá utilizar el servicio CloudWatch Logs para acceder a los registros de los diferentes servicios de AWS de forma centralizada", + "Nivel": "alto", "Tipo": "requisito", "Dimensiones": [ "confidencialidad", @@ -1126,13 +1420,164 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "cloudtrail_cloudwatch_logging_enabled" + ] + }, + { + "Id": "op.mon.3.r1.aws.gd.1", + "Description": "Correlación de eventos", + "Attributes": [ + { + "IdGrupoControl": "op.mon.3.r1", + "Marco": "operacional", + "Categoria": "monitorización del sistema", + "DescripcionControl": "Activar GuardDuty y Security Hub o bien disponer de un SIEM externo a AWS", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "guardduty_is_enabled" + ] + }, + { + "Id": "op.mon.3.r1.aws.sh.1", + "Description": "Correlación de eventos", + "Attributes": [ + { + "IdGrupoControl": "op.mon.3.r1", + "Marco": "operacional", + "Categoria": "monitorización del sistema", + "DescripcionControl": "Activar GuardDuty y Security Hub o bien disponer de un SIEM externo a AWS", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" } ], "Checks": [ "securityhub_enabled" ] }, + { + "Id": "op.mon.3.r2.aws.cfg.1", + "Description": "Análisis dinámico", + "Attributes": [ + { + "IdGrupoControl": "op.mon.3.r2", + "Marco": "operacional", + "Categoria": "monitorización del sistema", + "DescripcionControl": "Utilizar las herramientas AWS Config y Security hub", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "config_recorder_all_regions_enabled" + ] + }, + { + "Id": "op.mon.3.r2.aws.sh.1", + "Description": "Análisis dinámico", + "Attributes": [ + { + "IdGrupoControl": "op.mon.3.r2", + "Marco": "operacional", + "Categoria": "monitorización del sistema", + "DescripcionControl": "Utilizar las herramientas AWS Config y Security hub", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "securityhub_enabled" + ] + }, + { + "Id": "op.mon.3.r3.aws.gd.1", + "Description": "Ciberamenazas avanzadas", + "Attributes": [ + { + "IdGrupoControl": "op.mon.3.r3", + "Marco": "operacional", + "Categoria": "monitorización del sistema", + "DescripcionControl": "Activar GuardDuty (ya cubierto)", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "guardduty_is_enabled" + ] + }, + { + "Id": "op.mon.3.r6.aws.cfg.1", + "Description": "Inspecciones de seguridad", + "Attributes": [ + { + "IdGrupoControl": "op.mon.3.r6", + "Marco": "operacional", + "Categoria": "monitorización del sistema", + "DescripcionControl": "Utilizar Config Rules y AWS Inspector", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "config_recorder_all_regions_enabled" + ] + }, { "Id": "mp.com.1.aws.sg.1", "Description": "Perímetro seguro", @@ -1150,7 +1595,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1175,7 +1621,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1199,7 +1646,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1223,7 +1671,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1247,7 +1696,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1271,7 +1721,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1295,7 +1746,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1316,7 +1768,8 @@ "Dimensiones": [ "integridad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1337,7 +1790,8 @@ "Dimensiones": [ "integridad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1358,7 +1812,8 @@ "Dimensiones": [ "integridad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1379,7 +1834,8 @@ "Dimensiones": [ "integridad", "autenticidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1403,11 +1859,37 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ - "ec2_instance_public_ip" + "ec2_instance_internet_facing_with_instance_profile" + ] + }, + { + "Id": "mp.com.4.r2.aws.vpc.1", + "Description": "Segmentación lógica avanzada", + "Attributes": [ + { + "IdGrupoControl": "mp.com.4.r2", + "Marco": "medidas de protección", + "Categoria": "protección de las comunicaciones", + "DescripcionControl": "Implementar la segmentación a través de la utilización de diferentes VPCs conectadas entre sí por VPN.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "vpc_peering_routing_tables_with_least_privilege" ] }, { @@ -1424,7 +1906,8 @@ "Dimensiones": [ "confidencialidad", "integridad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1445,7 +1928,8 @@ "Dimensiones": [ "confidencialidad", "integridad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1466,13 +1950,36 @@ "Dimensiones": [ "confidencialidad", "integridad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ "sqs_queues_server_side_encryption_enabled" ] }, + { + "Id": "mp.si.2.aws.rds.1", + "Description": "Criptografía", + "Attributes": [ + { + "IdGrupoControl": "mp.si.2", + "Marco": "medidas de protección", + "Categoria": "protección de los soportes de información", + "DescripcionControl": "Aplicar cifrado sobre las bases de datos AWS RDS.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "rds_instance_storage_encrypted" + ] + }, { "Id": "mp.si.2.aws.dydb.1", "Description": "Criptografía", @@ -1487,7 +1994,8 @@ "Dimensiones": [ "confidencialidad", "integridad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1508,13 +2016,36 @@ "Dimensiones": [ "confidencialidad", "integridad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ "opensearch_service_domains_encryption_at_rest_enabled" ] }, + { + "Id": "mp.si.2.aws.elb.1", + "Description": "Criptografía", + "Attributes": [ + { + "IdGrupoControl": "mp.si.2", + "Marco": "medidas de protección", + "Categoria": "protección de los soportes de información", + "DescripcionControl": "Se recomienda dejar activada la opción de cifrado por defecto para nuevos volúmenes.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "ec2_ebs_snapshots_encrypted" + ] + }, { "Id": "mp.si.2.r2.aws.ebs.1", "Description": "Copias de seguridad", @@ -1529,13 +2060,40 @@ "Dimensiones": [ "confidencialidad", "integridad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ "ec2_ebs_snapshots_encrypted" ] }, + { + "Id": "mp.sw.2.r1.aws.acb.1", + "Description": "Aceptación y puesta en servicio", + "Attributes": [ + { + "IdGrupoControl": "mp.sw.2.r1", + "Marco": "medidas de protección", + "Categoria": "protección de la información", + "DescripcionControl": "Habilitar Amazon CodeBuild para el apoyo de la realización de pruebas en entornos aisaldos.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "automático" + } + ], + "Checks": [ + "codebuild_project_older_90_days", + "codebuild_project_user_controlled_buildspec" + ] + }, { "Id": "mp.s.2.aws.waf.1", "Description": "Protección de servicios y aplicaciones web", @@ -1553,7 +2111,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1577,7 +2136,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1601,7 +2161,8 @@ "trazabilidad", "autenticidad", "disponibilidad" - ] + ], + "ModoEjecucion": "automático" } ], "Checks": [ @@ -1621,7 +2182,8 @@ "Tipo": "refuerzo", "Dimensiones": [ "disponibilidad" - ] + ], + "ModoEjecucion": "automáticoop.pl.2.aws.warch.1" } ], "Checks": [ @@ -1632,6 +2194,1526 @@ "shield_advanced_protection_in_internet_facing_load_balancers", "shield_advanced_protection_in_route53_hosted_zones" ] + }, + { + "Id": "op.pl.2.aws.warch.1", + "Description": "Sistema de gestión", + "Attributes": [ + { + "IdGrupoControl": "op.pl.2.r1", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "Es recomendable que la entidad usuaria se apoye en el marco de trabajo AWS Well-Architected Framework", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.2.aws.warch.1", + "Description": "Sistema de gestión de la seguridad con mejora continua", + "Attributes": [ + { + "IdGrupoControl": "op.pl.2.r2", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "Es recomendable que la entidad usuaria se apoye en el marco de trabajo AWS Well-Architected Framework", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.2.aws.warch.1", + "Description": "Validación de datos", + "Attributes": [ + { + "IdGrupoControl": "op.pl.2.r3", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "Es recomendable que la entidad usuaria se apoye en el marco de trabajo AWS Well-Architected Framework", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.4.aws.ec2.1", + "Description": "Necesidades de procesamiento", + "Attributes": [ + { + "IdGrupoControl": "op.pl.4", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "La entidad usuaria deberá llevar a cabo el estudio de capacidades a las que hace referencia la medida de seguridad, si bien (…) deberá tener especialmente en cuenta: * Las capacidades de procesamiento, almacenamiento y comunicaciones de las instancais desplegadas en AWS.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.4.aws.sq.1", + "Description": "Necesidades de procesamiento", + "Attributes": [ + { + "IdGrupoControl": "op.pl.4", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "La entidad usuaria deberá llevar a cabo el estudio de capacidades a las que hace referencia la medida de seguridad, si bien (…) deberá tener especialmente en cuenta: * Las cuotas de los servicios a utilizar.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.4.r1.aws.cw.1", + "Description": "Mejora continua de la gestión de la capacidad", + "Attributes": [ + { + "IdGrupoControl": "op.pl.4.r1", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "En caso de no disponer de herramientas de terceros, se deberán utilizar las herramientas de monitorización de la capaciad indicadas para monitorizar las capacidades de la infraestructura y el grado de consumo de los servicios en función de las cuotas disponibles. (CloudWatch)", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.4.r1.aws.sq.1", + "Description": "Mejora continua de la gestión de la capacidad", + "Attributes": [ + { + "IdGrupoControl": "op.pl.4.r1", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "En caso de no disponer de herramientas de terceros, se deberán utilizar las herramientas de monitorización de la capaciad indicadas para monitorizar las capacidades de la infraestructura y el grado de consumo de los servicios en función de las cuotas disponibles. (Service Quotas)", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.4.r1.aws.sq.2", + "Description": "Previsión y actualización de la capacidad", + "Attributes": [ + { + "IdGrupoControl": "op.pl.4.r1", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "En cuanto a la monitorización sobre el grado de consumo, utilizar la solución nativa Quota Monitor.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.4.r1.aws.sns.1", + "Description": "Monitorización de la capacidad", + "Attributes": [ + { + "IdGrupoControl": "op.pl.4.r1", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "Para la creación de alarmas en materia de capacidad de las instancias, se debe configurar un tema de SNS que permita el envío de mails automáticos a la dirección de correo seleccionada.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.4.r1.aws.sns.2", + "Description": "Monitorización de la capacidad", + "Attributes": [ + { + "IdGrupoControl": "op.pl.4.r1", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "Configurar alarmas correspondientes a las diferentes capacidades (SNS) como uso de CPU, capacidad de almacenamiento o latencia.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.pl.4.r1.aws.sq.3", + "Description": "Monitorización de la capacidad", + "Attributes": [ + { + "IdGrupoControl": "op.pl.4.r1", + "Marco": "operacional", + "Categoria": "planificación", + "DescripcionControl": "Visualizar las cuotas de servicio y configurar alarmas a través de la integración de AWS Service Quotas con CloudWatch.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.1.aws.iam.1", + "Description": "Identificador único", + "Attributes": [ + { + "IdGrupoControl": "op.acc.1", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Utilizar los grupos y roles, en lugar de los usuarios individuales, para controlar el acceso. Esto permitirá implementar un conjunto de permisos en lugar de actualizar muchas políticas individuales cuando el acceso de un usuario necesita cambiar.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.1.aws.iam.3", + "Description": "Proveedor de identidad centralizado", + "Attributes": [ + { + "IdGrupoControl": "op.acc.1", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "El usuario raíz actúa como usuario IAM de seguridad (usuario \"breakglass\"), dado que no se encuentra sincronizado con el proveedor de identidades externo, lo que permite la recuperación de emergencia del acceso a AWS en caso de imposibilidad de autenticar a los usuarios a través del proveedor de identidades.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.1.aws.iam.4", + "Description": "Identificador único", + "Attributes": [ + { + "IdGrupoControl": "op.acc.1", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Utilizar identificadores únicos para los usuarios del sistema.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.1.aws.iam.5", + "Description": "Identificador único", + "Attributes": [ + { + "IdGrupoControl": "op.acc.1", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Cada cuenta estará asociada a un identificador único.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.1.aws.iam.6", + "Description": "Cuentas de usuario", + "Attributes": [ + { + "IdGrupoControl": "op.acc.1", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Las cuentas deben ser inhabilitadas en los siguientes casos: cuando el usuario deja la organización; cuando el usuario cesa en la función para la cual se requería la cuenta de usuario; o, cuando la persona que la autorizó, da orden en sentido contrario.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.1.aws.iam.7", + "Description": "Cuentas de usuario", + "Attributes": [ + { + "IdGrupoControl": "op.acc.1", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Las cuentas se retendrán durante el periodo necesario para atender a las necesidades de trazabilidad de los registros de actividad asociados a las mismas. A este periodo se le denominará periodo de retención.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.1.r1.aws.iam.1", + "Description": "Identificación de usuario", + "Attributes": [ + { + "IdGrupoControl": "op.acc.1.r1", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Los identificadores de usuario deberán ser asignados en el proveedor de identidades (o en IAM) de modo que se permita singularizar a la persona asociada a cada identificador y cumplir con el resto de requisitos del refuerzo", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.2.aws.iam.1", + "Description": "Requisitos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.2", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Hacer uso de las políticas IAM para la asignación de privilegios de acceso. Deberán administrarse permisos para controlar el acceso de las identidades de personas y máquinas y sus cargas de trabajo.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.2.aws.vpn.1", + "Description": "Requisitos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.2", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Deberá definirse una correcta política de permisos IAM para operaciones de Amazon WorkSpaces según las recomendaciónes establecidas en la sección 3.1.1 Control de Acceso de la guía CCN STIC-887A Guía de configuración segura AWS.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.2.aws.iam.2", + "Description": "Requisitos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.2", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Deberá definirse una política IAM que conceda permiso al usuario o rol de IAM para utilizar los recursos y las acciones de la API específicos que necesita", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.2.aws.iam.3", + "Description": "Requisitos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.2", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "De acuerdo con las medidas del Esquema Nacional de seguridad los derechos de acceso de cada recurso, se establecerán según las decisiones de la persona responsable del recurso, ateniéndose a la política y normativa de seguridad del sistema", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.2.aws.vpn.2", + "Description": "Requisitos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.2", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Deberán restringirse los permisos a usuarios para utilizar la acción ec2:DescribeVpnConnections. Esta acción permite a los usuarios ver la información de configuración de la gateway de cliente sobre las conexiones Site-to-Site VPN de su cuenta.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.2.aws.vpn.3", + "Description": "Requisitos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.2", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "La rotación de certificados de VPN deberá asignarse siguiendo las recomendaciónes de segregación de funciones tal y como se explica en la sección 3.1.1.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.2.r1.aws.iam.1", + "Description": "Privilegios de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.2.r1", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Evitar el uso de asunción de roles para cualquier cuenta.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.3.aws.iam.1", + "Description": "Segregación de funciones y tareas", + "Attributes": [ + { + "IdGrupoControl": "op.acc.3", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Enumerar los recursos específicos a los que puede obtener acceso una función de trabajo.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.3.aws.iam.2", + "Description": "Segregación de funciones y tareas", + "Attributes": [ + { + "IdGrupoControl": "op.acc.3", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Emplear correctamente el uso de RBAC/ABAC para separar las funciones de desarrollo y operación.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.3.aws.iam.3", + "Description": "Segregación de funciones y tareas", + "Attributes": [ + { + "IdGrupoControl": "op.acc.3", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Emplear correctamente el uso de RBAC/ABAC para separar las funciones de autorización y control de uso.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.3.aws.iam.4", + "Description": "Segregación de funciones y tareas", + "Attributes": [ + { + "IdGrupoControl": "op.acc.3", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Las políticas IAM deberían estar asociadas solo a grupos y a roles.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.3.r3.aws.iam.1", + "Description": "Acceso a la información de seguridad", + "Attributes": [ + { + "IdGrupoControl": "op.acc.3.r3", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Limitar el acceso a la información de seguridad del sistema a los administradores de seguridad utilizando los mecanismos de acceso imprescindibles (consola, interfaz web, acceso remoto etc.).", + "Nivel": "opcional", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.4.aws.iam.12", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Las políticas IAM únicamente deben poder asignarse por el usuario que tenga la función de control de accesos expresamente atribuida.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.4.aws.iam.13", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "No utilizar el usuario raíz salvo necesidad expresa.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.4.aws.iam.3", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Para una correcta implementación de la estrategia de políticas de acceso, se recomienda utilizar la herramienta Policy Simulator para probar y solucionar posibles problemas en la asignación de políticas.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.4.aws.iam.4", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Se puede utilizar Acces Analyzer para identificar recursos y cuentas, validar las políticas contra las prácticas recomendadas y generar políticas con base en la actividad de acceso de registros de CloudTrail.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.4.aws.iam.5", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "En cuanto a los accesos a las instancias alojadas en AWS se recomienda emplear mecanismos para mantener a las personas alejadas de los datos. Es decir, limitar al máximo el acceso directo a los datos por parte de los usuarios.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.4.aws.iam.10", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Se evitará que los usuarios puedan deshabilitar o modificar servicios relacionados con el área de seguridad como AWS Config o AWS CloudWatch.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.4.aws.iam.11", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Deberá definirse una política de IAM que conceda permiso al usuario o rol de IAM para utilizar exclusivamente los recursos y las acciones de WorkSpace que necesita.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.4.aws.vpn.1", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Las configuraciones de las políticas de las AWS VPN deben tener las redes específicas con las que se va a establecer la conectividad y evitar políticas genéricas basadas en routing donde se pierde el control granular de las redes permitidas en los SA de la VPN.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.4.aws.vpn.2", + "Description": "Proceso de gestión de derechos de acceso", + "Attributes": [ + { + "IdGrupoControl": "op.acc.4", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "En configuraciones de AWS DirectConnect, deberán controlarse los AS y el routing que se lleva por BGP, de modo que se propague el mínimo de rutas y se asegure que no exista redistribución de rutas/redes privadas de entornos del cliente hacia el ISP.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.6.r2.aws.iam.2", + "Description": "Contraseña + otro factor de autenticación", + "Attributes": [ + { + "IdGrupoControl": "op.acc.6.r2", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Se recomienda que la organización determine qué llamadas a la API deben también contar con seguridad reforzada a través de un doble factor de autenticación.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.6.r3.aws.iam.1", + "Description": "Certificados", + "Attributes": [ + { + "IdGrupoControl": "op.acc.6.r3", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Utilizar el servicio AWS IAM Roles Anywhere para crear un ancla de confianza en la que se haga referencia al servicio AWS Certificate Manager Private CA o registrar sus propias autoridades de certificación (CA), permitiendo usar el certificado emitido por la misma para obtener credenciales temporales para el acceso al entorno AWS. Estos certificados deberán estar protegidos por un segundo factor.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.6.r5.aws.iam.2", + "Description": "Registro", + "Attributes": [ + { + "IdGrupoControl": "op.acc.6.r5", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Habilitar la información de usuario sobre la fecha de último uso de sus claves de acceso.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.6.r9.aws.iam.1", + "Description": "Acceso remoto (todos los niveles)", + "Attributes": [ + { + "IdGrupoControl": "op.acc.6.9", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "Deberá asegurarse que se está haciendo uso de HTTPS en todas las llamadas a API. Esto se puede lograr a través de una política IAM que rechace el tráfico que no sea HTTPS.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.acc.6.r9.aws.iam.2", + "Description": "Acceso remoto (todos los niveles)", + "Attributes": [ + { + "IdGrupoControl": "op.acc.6.9", + "Marco": "operacional", + "Categoria": "control de acceso", + "DescripcionControl": "En caso de que las llamadas a las APIs no se produzcan de manera constante, se recomienda condicionar su realización a aquellas franjas horarias en las que sean necesarias. ", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.1.r2.aws.sminv.1", + "Description": "Identificación periódica de activos", + "Attributes": [ + { + "IdGrupoControl": "op.exp.1.r2", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Disponer de herramientas que permitan visualizar de forma continua el estado de todos los equipos en la red, en particular servidores y los dispositivos de red y comunicaciones.", + "Nivel": "opcional", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.1.r3.aws.tag.1", + "Description": "Lista de componentes software", + "Attributes": [ + { + "IdGrupoControl": "op.exp.1.r4", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Mantener actualizada una relación de los componentes software de terceros utilizados en el despliegue del sistema. Listado equivalente a lo requerido en mp.sw.1.r5.", + "Nivel": "opcional", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.3.r4.aws.cfg.2", + "Description": "Copias de seguridad", + "Attributes": [ + { + "IdGrupoControl": "op.exp.3.r3", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Desplegar toda la infraestructura de AWS a través de código con el servicio AWS CloudFormation.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.4.aws.ami.1", + "Description": "Mantenimiento y actualizaciones de seguridad", + "Attributes": [ + { + "IdGrupoControl": "op.exp.4", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Una forma eficiente de garantizar la instalación de las versiones actualizadas y aprobadas del software de los sistemas es la utilización de Golden AMIs.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.5.aws.cm.1", + "Description": "Gestión de cambios", + "Attributes": [ + { + "IdGrupoControl": "op.exp.5", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "La entidad usuaria puede hacer uso de la utilidad AWS Change Manager para mantener un registro actualizado de las plantillas y peticiones de cambio en las que se incluya información en detalle sobre estos.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.5.aws.cal.1", + "Description": "Gestión de cambios", + "Attributes": [ + { + "IdGrupoControl": "op.exp.5", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Utilizar AWS Change Calendar para establecer una ventana de tiempo (fecha y hora) en la que realizar los cambios y las pruebas de preproducción en equipos equivalentes a los de producción sin riesgo a que estas afecten a la continuidad del servicio prestado.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.6.r1.aws.sys.1", + "Description": "Escaneo periódico", + "Attributes": [ + { + "IdGrupoControl": "op.exp.6.r1", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Automatizar las operaciones estándar a llevar a cabo para la respuesta en caso de incidente a través de AWS System Manager", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.6.r3.aws.sys.1", + "Description": "Lista blanca", + "Attributes": [ + { + "IdGrupoControl": "op.exp.6.r3", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Hacer uso de AWS System Manager Inventory para definir, a nivel de software, una lista blanca de aplicaciones.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.6.r4.aws.sys.1", + "Description": "Capacidad de respuesta en caso de incidente", + "Attributes": [ + { + "IdGrupoControl": "op.exp.6.r4", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Automatizar tareas estándar a través de AWS System Manager", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.8.r1.aws.cw.1", + "Description": "Revisión de los registros", + "Attributes": [ + { + "IdGrupoControl": "op.exp.8.r1", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Utilizar el servicio AWS CloudWatch para centralizar y revisar los registros de todos los sistemas independientemente de su origen.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "trazabilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.8.r3.aws.ct.1", + "Description": "Retención de registros", + "Attributes": [ + { + "IdGrupoControl": "op.exp.8.r3", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Ejecutar la acción PutRetentionPolicy de Amazon CloudWatch, permitiendo así establecer la retención del grupo de registros especificado y configurar el número de días durante los cuales se conservarán los eventos de registro en el grupo seleccionado de acuerdo con el documento de seguridad correspondiente. Paralelamente, se debe definir un periodo de retención para los datos almacenados en CloudTrail Lakes.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "trazabilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.10.aws.cmk.6", + "Description": "Protección de claves criptográficas", + "Attributes": [ + { + "IdGrupoControl": "op.exp.10", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Utilizar el principio de mínimos privilegios para las políticas asociadas a claves.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.10.aws.cmk.7", + "Description": "Protección de claves criptográficas", + "Attributes": [ + { + "IdGrupoControl": "op.exp.10", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Utilizar tags y alias para una mejor administración de las claves.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.exp.10.aws.cmk.8", + "Description": "Protección de claves criptográficas", + "Attributes": [ + { + "IdGrupoControl": "op.exp.10", + "Marco": "operacional", + "Categoria": "explotación", + "DescripcionControl": "Utilizar las políticas IAM y las concesiones de claves para el acceso a las mismas.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.cont.2.aws.az.1", + "Description": "Plan de continuidad", + "Attributes": [ + { + "IdGrupoControl": "op.cont.2", + "Marco": "operacional", + "Categoria": "continuidad del servicio", + "DescripcionControl": "(Organizativo) Deberá implementarse correctamente la distribución de servicios según regiones y zonas de disponibilidad para limitar al máximo los riesgos asociados a una única ubicación.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.mon.1.aws.gd.4", + "Description": "Detección de intrusión", + "Attributes": [ + { + "IdGrupoControl": "op.mon.1", + "Marco": "operacional", + "Categoria": "monitorización del sistema", + "DescripcionControl": "La administración de Amazon GuardDuty quedará delegada exclusivamente a la cuenta de seguridad para garantizar una correcta asignación de los roles para este servicio.", + "Nivel": "alto", + "Tipo": "medida", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "op.mon.3.aws.cwl.1", + "Description": "Vigilancia", + "Attributes": [ + { + "IdGrupoControl": "op.mon.3", + "Marco": "operacional", + "Categoria": "monitorización del sistema", + "DescripcionControl": "Deberá asegurarse que todos los servicios que se utilicen en la arquitectura de la aplicación desplegada en AWS estén generando logs", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.com.2.aws.vpn.1", + "Description": "Protección de la confidencialidad", + "Attributes": [ + { + "IdGrupoControl": "mp.com.2", + "Marco": "medidas de protección", + "Categoria": "protección de las comunicaciones", + "DescripcionControl": "Garantizar que las conexiones entre la VPC y la red local (remota) se canalizan a través de VPN Site-to-Site o bien a través de Direct Connect.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.com.2.aws.vpn.2", + "Description": "Protección de la confidencialidad", + "Attributes": [ + { + "IdGrupoControl": "mp.com.2", + "Marco": "medidas de protección", + "Categoria": "protección de las comunicaciones", + "DescripcionControl": "Garantizar que las conexiones entre la VPC y la red local (remota) se canalizan a través de VPN Site-to-Site o bien a través de Direct Connect.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.com.3.r1.aws.vpn.1", + "Description": "Redes privadas virtuales", + "Attributes": [ + { + "IdGrupoControl": "mp.com.3.r1", + "Marco": "medidas de protección", + "Categoria": "protección de las comunicaciones", + "DescripcionControl": "Utilizar VPN Site-to-Site para conectar las VPCs con las redes locales o externas.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "integridad", + "autenticidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.si.2.r1.aws.kms.1", + "Description": "Productos certificados", + "Attributes": [ + { + "IdGrupoControl": "mp.si.2.r1", + "Marco": "medidas de protección", + "Categoria": "protección de los soportes de información", + "DescripcionControl": "Utilizar productos certificados conforme a op.pl.5, si bien AWS KMS es un producto certificado cuyo uso satisface la exigencia de este control.", + "Nivel": "alto", + "Tipo": "refuerzo", + "Dimensiones": [ + "confidencialidad", + "integridad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.sw.2.r1.aws.cfgd.1", + "Description": "Aceptación y puesta en servicio", + "Attributes": [ + { + "IdGrupoControl": "mp.sw.2.r2", + "Marco": "medidas de protección", + "Categoria": "protección de la información", + "DescripcionControl": "Habilitar CloudFormation Guard para el apoyo en las tareas de inspección de recursos no conformes implementados en el código fuente.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.info.6.aws.iam.1", + "Description": "Copias de seguridad", + "Attributes": [ + { + "IdGrupoControl": "mp.info.6", + "Marco": "medidas de protección", + "Categoria": "protección de la información", + "DescripcionControl": "La organización puede hacer uso de roles y políticas IAM para la definición y asignación de permisos en cuanto a controles de acceso de las copias de respaldo.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.info.6.r2.aws.bcku.1", + "Description": "Protección de las copias de seguridad", + "Attributes": [ + { + "IdGrupoControl": "mp.info.6.r2", + "Marco": "medidas de protección", + "Categoria": "protección de la información", + "DescripcionControl": "La organización puede hacer uso de la nube de AWS como ubicación diferente para el almacenamiento de la copia de seguridad separada del resto o, incluo, utilizar los servicios de ubicación para separar una copia de seguridad en una ubicación diferente dentro de la propia nube.", + "Nivel": "alto", + "Tipo": "recomendacion", + "Dimensiones": [ + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.s.1.aws.wm.1", + "Description": "Protección del correo electrónico", + "Attributes": [ + { + "IdGrupoControl": "mp.s.1", + "Marco": "medidas de protección", + "Categoria": "protección de los servicios", + "DescripcionControl": "Se deberá hacer uso del cifrado de la información contenida en los correos electrónicos.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.s.1.aws.wm.3", + "Description": "Protección del correo electrónico", + "Attributes": [ + { + "IdGrupoControl": "mp.s.1", + "Marco": "medidas de protección", + "Categoria": "protección de los servicios", + "DescripcionControl": "En SES, se debe hacer uso de la opción que permite a los usuarios enviar correo electrónico cifrado con S/MIME", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] + }, + { + "Id": "mp.s.1.aws.wm.2", + "Description": "Protección del correo electrónico", + "Attributes": [ + { + "IdGrupoControl": "mp.s.1", + "Marco": "medidas de protección", + "Categoria": "protección de los servicios", + "DescripcionControl": "Habilitar el registro de eventos de Workmail en CloudWatch para realizar el seguimiento de mensajes con spam.", + "Nivel": "alto", + "Tipo": "requisito", + "Dimensiones": [ + "confidencialidad", + "integridad", + "trazabilidad", + "autenticidad", + "disponibilidad" + ], + "ModoEjecucion": "manual" + } + ], + "Checks": [] } ] } diff --git a/prowler/lib/check/compliance_models.py b/prowler/lib/check/compliance_models.py index 4103c370..e7867fa9 100644 --- a/prowler/lib/check/compliance_models.py +++ b/prowler/lib/check/compliance_models.py @@ -11,10 +11,10 @@ from prowler.lib.logger import logger class ENS_Requirements_Nivel(str, Enum): """ENS V3 Requirements Level""" + opcional = "opcional" bajo = "bajo" medio = "medio" alto = "alto" - pytec = "pytec" class ENS_Requirements_Dimensiones(str, Enum): @@ -106,7 +106,7 @@ class Compliance_Base_Model(BaseModel): """Compliance_Base_Model holds the base model for every compliance framework""" Framework: str - Provider: Optional[str] + Provider: str Version: str Description: str Requirements: list[Compliance_Requirement] diff --git a/prowler/lib/outputs/compliance.py b/prowler/lib/outputs/compliance.py index 7af8e340..e5130e9c 100644 --- a/prowler/lib/outputs/compliance.py +++ b/prowler/lib/outputs/compliance.py @@ -4,7 +4,7 @@ from csv import DictWriter from colorama import Fore, Style from tabulate import tabulate -from prowler.config.config import timestamp +from prowler.config.config import timestamp, orange_color from prowler.lib.logger import logger from prowler.lib.outputs.models import ( Check_Output_CSV_CIS, @@ -158,10 +158,10 @@ def display_compliance_table( "Proveedor": [], "Marco/Categoria": [], "Estado": [], - "PYTEC": [], "Alto": [], "Medio": [], "Bajo": [], + "Opcional": [], } pass_count = fail_count = 0 for finding in findings: @@ -185,7 +185,7 @@ def display_compliance_table( if marco_categoria not in marcos: marcos[marco_categoria] = { "Estado": f"{Fore.GREEN}CUMPLE{Style.RESET_ALL}", - "Pytec": 0, + "Opcional": 0, "Alto": 0, "Medio": 0, "Bajo": 0, @@ -197,8 +197,8 @@ def display_compliance_table( ] = f"{Fore.RED}NO CUMPLE{Style.RESET_ALL}" elif finding.status == "PASS": pass_count += 1 - if attribute.Nivel == "pytec": - marcos[marco_categoria]["Pytec"] += 1 + if attribute.Nivel == "opcional": + marcos[marco_categoria]["Opcional"] += 1 elif attribute.Nivel == "alto": marcos[marco_categoria]["Alto"] += 1 elif attribute.Nivel == "medio": @@ -211,17 +211,17 @@ def display_compliance_table( ens_compliance_table["Proveedor"].append("aws") ens_compliance_table["Marco/Categoria"].append(marco) ens_compliance_table["Estado"].append(marcos[marco]["Estado"]) - ens_compliance_table["PYTEC"].append( - f"{Fore.LIGHTRED_EX}{marcos[marco]['Pytec']}{Style.RESET_ALL}" + ens_compliance_table["Opcional"].append( + f"{Fore.BLUE}{marcos[marco]['Opcional']}{Style.RESET_ALL}" ) ens_compliance_table["Alto"].append( - f"{Fore.RED}{marcos[marco]['Alto']}{Style.RESET_ALL}" + f"{Fore.LIGHTRED_EX}{marcos[marco]['Alto']}{Style.RESET_ALL}" ) ens_compliance_table["Medio"].append( - f"{Fore.YELLOW}{marcos[marco]['Medio']}{Style.RESET_ALL}" + f"{orange_color}{marcos[marco]['Medio']}{Style.RESET_ALL}" ) ens_compliance_table["Bajo"].append( - f"{Fore.BLUE}{marcos[marco]['Bajo']}{Style.RESET_ALL}" + f"{Fore.YELLOW}{marcos[marco]['Bajo']}{Style.RESET_ALL}" ) if fail_count + pass_count < 0: print( diff --git a/util/generate_compliance_json_from_csv_for_ens.py b/util/generate_compliance_json_from_csv_for_ens.py index 18cd38f0..68e6c911 100644 --- a/util/generate_compliance_json_from_csv_for_ens.py +++ b/util/generate_compliance_json_from_csv_for_ens.py @@ -15,9 +15,11 @@ with open(file_name, newline="", encoding="utf-8") as f: reader = csv.reader(f, delimiter=",") for row in reader: niveles = list(map(str.strip, row[5].split(","))) - if "pytec" in niveles: - nivelvalue = "pytec" - elif "alto" in niveles: + # Use of pytec/CPSTIC levels is under clarification, disabling temporarily + # if "pytec" in niveles: + # nivelvalue = "pytec" + # el + if "alto" in niveles: nivelvalue = "alto" elif "medio" in niveles: nivelvalue = "medio" @@ -27,12 +29,14 @@ with open(file_name, newline="", encoding="utf-8") as f: nivelvalue = "bajo" attribute = { + "IdGrupoControl": row[10], "Marco": row[2], "Categoria": row[3], "DescripcionControl": row[4], "Nivel": nivelvalue, "Tipo": row[9], "Dimensiones": list(map(str.strip, row[6].split(","))), + "ModoEjecucion": row[11], } output["Requirements"].append( {