Audite automáticamente los grupos de AWS seguridad que permiten el acceso desde direcciones IP públicas - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Audite automáticamente los grupos de AWS seguridad que permiten el acceso desde direcciones IP públicas

Eugene Shifer y Stephen DiCato, Amazon Web Services

Resumen

Como práctica recomendada de seguridad, es fundamental minimizar la exposición de los AWS recursos solo a lo que sea absolutamente necesario. Por ejemplo, los servidores web que sirven al público en general deben permitir el acceso entrante desde Internet, pero el acceso a otras cargas de trabajo debe restringirse a redes específicas para reducir la exposición innecesaria. Los grupos de seguridad de Amazon Virtual Private Cloud (Amazon VPC) son un control eficaz que lo ayudará a limitar el acceso a los recursos. Sin embargo, evaluar los grupos de seguridad puede ser una tarea engorrosa, especialmente en arquitecturas de varias cuentas. las reglas de AWS Config y los controles de AWS Security Hub CSPM pueden ayudarle a identificar los grupos de seguridad que permiten el acceso público de Internet (0.0.0.0/0) a protocolos de comunicación de red específicos, como Secure Shell (SSH), HTTP, HTTPS y el protocolo de escritorio remoto (RDP) de Windows. Sin embargo, estas reglas y controles no se aplican si los servicios se ejecutan en puertos no estándar o si el acceso está restringido a determinadas direcciones IP públicas. Por ejemplo, esto puede ocurrir cuando un servicio web está asociado al puerto TCP 8443 en lugar del puerto TCP 443 estándar. Esto también puede ocurrir cuando los desarrolladores tienen acceso al servidor desde sus redes domésticas, por ejemplo, con fines de prueba.

Para solucionar este problema, puede utilizar la solución de infraestructura como código (IaC) incluida en este patrón para identificar los grupos de seguridad que permiten el acceso desde cualquier dirección IP no privada (no conforme a la RFC 1918) a cualquier carga de trabajo de su organización. Cuenta de AWS AWS La AWS CloudFormationplantilla proporciona una AWS Config regla personalizada, una AWS Lambdafunción y los permisos necesarios. Puede implementarla como una pila en una sola cuenta o como un conjunto de pilas en toda la organización, gestionado de forma integral AWS Organizations.

Requisitos previos y limitaciones

Requisitos previos 

  • Un activo Cuenta de AWS

  • Experiencia en el uso GitHub

  • Si va a realizar la implementación en una sola Cuenta de AWS:

  • Si va a realizar un despliegue en una AWS organización:

    • Permisos para crear conjuntos de CloudFormation pilas

    • Security Hub (CSPM) configurado con integración AWS Organizations

    • AWS Config configúrelo en las cuentas en las que va a implementar esta solución

    • Designe Cuenta de AWS a un administrador delegado de un Security Hub ( AWS Config CSPM)

Limitaciones

  • Si va a realizar la implementación en una cuenta individual que no tiene activado el CSPM de Security Hub, puede utilizarla AWS Config para evaluar los resultados.

  • Si va a realizar el despliegue en una organización que no tiene un administrador delegado para AWS Config el CSPM de Security Hub, debe iniciar sesión en las cuentas de los miembros individuales para ver los resultados.

  • Si solía administrar y AWS Control Tower controlar las cuentas de su organización, implemente el IaC siguiendo este patrón mediante Customizations for (cFCT). AWS Control Tower El uso de la CloudFormation consola generaría desviaciones en la configuración y AWS Control Tower requeriría que volvieras a inscribir las unidades organizativas () o las cuentas gestionadas. OUs

  • Algunas Servicios de AWS no están disponibles en todas las versiones. Regiones de AWS Para conocer la disponibilidad de las regiones, consulte Servicios de AWS by Region. Para los puntos de conexión específicos, consulte la página Service endpoints and quotas y elija el enlace del servicio.

Arquitectura

Desplegarse en un individuo Cuenta de AWS

El siguiente diagrama de arquitectura muestra el despliegue de los AWS recursos en una sola unidad Cuenta de AWS. Los recursos se aprovisionan mediante una CloudFormation plantilla directamente a través de la CloudFormation consola. Si el CSPM de Security Hub está activado, puede ver los resultados en el CSPM AWS Config o en el Security Hub. Si el CSPM de Security Hub no está activado, solo podrá ver los resultados en. AWS Config

Implementación de la plantilla IaC como una CloudFormation pila en una sola cuenta de AWS.

En el diagrama, se muestra el siguiente flujo de trabajo:

  1. Usted crea una CloudFormation pila. Esto despliega una función Lambda y AWS Config una regla. Tanto la regla como la función se configuran con los permisos AWS Identity and Access Management (de IAM) necesarios para publicar las evaluaciones de los recursos en AWS Config los registros.

  2. La AWS Config regla funciona en modo de evaluación detectivesca e invoca la función Lambda cada 24 horas.

  3. La función Lambda evalúa los grupos de seguridad y envía las actualizaciones a. AWS Config

  4. Security Hub CSPM recibe todos los AWS Config hallazgos.

  5. Puede ver los resultados en Security Hub CSPM o en AWS Config, según los servicios que haya configurado en la cuenta.

Implementar en una organización AWS

El siguiente diagrama muestra la implementación del patrón en varias cuentas que se administran mediante AWS Organizations y AWS Control Tower. La CloudFormation plantilla se implementa a través de cFCT. Los resultados de la evaluación se centralizan en Security Hub CSPM en la cuenta de administrador delegado. La sección de AWS CodePipeline flujo de trabajo del diagrama muestra los pasos básicos que se producen durante la implementación de cFCT.

Implementación de la plantilla IaC como un conjunto de CloudFormation pilas en una organización de AWS.

En el diagrama, se muestra el siguiente flujo de trabajo:

  1. En la cuenta de administración, cargUE un archivo comprimido (ZIP) de la plantilla de IaC a un bucket de Amazon Simple Storage Service (Amazon S3) que implementa CfCT.

  2. La canalización cFCT descomprime el archivo, ejecuta las comprobaciones de cfn-nag (GitHub) y despliega la plantilla como un conjunto de pilas. CloudFormation

  3. Según la configuración que especifiques en el archivo de manifiesto de cFCT, CloudFormation StackSets despliega las pilas en cuentas individuales o especificadas. OUs Esto despliega una función Lambda y AWS Config una regla en las cuentas de destino. Tanto la regla como la función se configuran con los permisos de IAM necesarios para publicar las evaluaciones de los recursos en AWS Config los registros.

  4. La AWS Config regla funciona en modo de evaluación detectivesca e invoca la función Lambda cada 24 horas.

  5. La función Lambda evalúa los grupos de seguridad y envía las actualizaciones a. AWS Config

  6. AWS Config reenvía todos los resultados a Security Hub CSPM.

  7. Los resultados del CSPM de Security Hub se agregan a la cuenta del administrador delegado.

  8. Puede ver los resultados agregados en Security Hub CSPM en la cuenta de administrador delegado.

Tools (Herramientas)

Servicios de AWS

  • AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todo el territorio y. Cuentas de AWS Regiones de AWS

  • AWS Configproporciona una vista detallada de los recursos que tiene Cuenta de AWS y de cómo están configurados. Le ayuda a identificar cómo se relacionan los recursos entre sí y cómo han cambiado sus configuraciones a lo largo del tiempo. Una AWS Config regla define los parámetros de configuración ideales para un recurso y AWS Config puede evaluar si AWS los recursos cumplen las condiciones de la regla.

  • AWS Control Towerle ayuda a configurar y administrar un entorno de AWS múltiples cuentas, siguiendo las prácticas recomendadas prescriptivas. Las personalizaciones de AWS Control Tower (cFCT) te ayudan a personalizar tu AWS Control Tower landing zone y a mantenerte alineado con las AWS mejores prácticas. Las personalizaciones de esta solución se implementan mediante CloudFormation plantillas y políticas de control AWS Organizations de servicios (). SCPs

  • AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.

  • AWS Organizationses un servicio de administración de cuentas que le ayuda a consolidar múltiples cuentas Cuentas de AWS en una organización que puede crear y administrar de forma centralizada.

  • AWS Security Hub CSPMproporciona una visión completa del estado de su seguridad en AWS. También le ayuda a comparar su AWS entorno con los estándares y las mejores prácticas del sector de la seguridad.

Otras herramientas

  • Python es un lenguaje de programación informático de uso general.

Repositorio de código

El código de este patrón está disponible en el repositorio GitHub Detect vulnerable Security Groups.

Prácticas recomendadas

Le recomendamos que siga las prácticas recomendadas en los siguientes recursos:

Epics

TareaDescripciónHabilidades requeridas

Determine su estrategia de implementación.

Revise la solución y el código para determinar la estrategia de implementación de su AWS entorno. Determine si va a realizar la implementación en una sola cuenta o en una AWS organización.

Propietario de la aplicación, AWS general

Clonar el repositorio.

Introduzca el siguiente comando para clonar el repositorio de Detección de grupos de seguridad vulnerables:

git clone https://github.com/aws-samples/detect-public-security-groups.git
Desarrollador de aplicaciones, propietario de la aplicación

Valide la versión de Python.

  1. Vaya al directorio de nivel superior del repositorio clonado:

    cd detect-public-security-groups
  2. Abre Security-Group-Public-Assessment.yaml.

  3. En el recurso de SgPublicAccessCheckLambdaFunction, confirme que la versión de Python es compatible con su objetivo de Regiones de AWS. De forma predeterminada, esta función usa Python 3.12. Para más información, consulte AWS Lambda adds support for Python 3.12. Si es necesario, actualice la versión de Python.

  4. Guarde y cierre Security-Group-Public-Assessment.yaml.

Administrador de AWS, desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Implemente la CloudFormation plantilla.

Implemente la CloudFormation plantilla en su AWS entorno. Realice una de las siguientes acciones:

  • Si va a realizar la implementación en una sola Cuenta de AWS unidad, siga las instrucciones de Cómo crear una pila.

  • Si vas a realizar el despliegue en una organización que no está gestionada por AWS Control Tower, sigue las instrucciones de Cómo crear un conjunto de pilas.

  • Si vas a realizar el despliegue en una organización gestionada por AWS Control Tower, consulta las instrucciones de la sección Crea tus propias personalizaciones.

Desarrollador de aplicaciones, administrador de AWS, AWS general

Comprobar la implementación.

En la CloudFormation consola, compruebe que la pila o el conjunto de pilas se hayan desplegado correctamente.

Administrador de AWS, propietario de la aplicación
TareaDescripciónHabilidades requeridas

Vea los resultados de la AWS Config regla.

En Security Hub CSPM, haga lo siguiente para ver una lista de las conclusiones individuales:

  1. Abra la consola CSPM de Security Hub.

  2. En el panel de navegación, seleccione Resultados.

  3. En el cuadro Agregar filtros, agregue los siguientes filtros:

    • El estado de conformidad es FAILED

    • El título es SgPublicAccessCheck

  4. Seleccione Aplicar.

En Security Hub CSPM, haga lo siguiente para ver una lista del total de hallazgos agrupados por: Cuenta de AWS

  1. Abra la consola CSPM de Security Hub.

  2. En el panel de navegación, elija Hallazgos.

  3. Seleccione Crear hallazgo.

  4. Para seleccionar el atributo de agrupación para el conocimiento:

    1. Seleccione el cuadro de búsqueda para ver las opciones de filtro.

    2. Elija Group by (Agrupar por).

    3. Seleccione AwsAccountId.

    4. Seleccione Aplicar.

  5. En el cuadro Agregar filtros, agregue los siguientes filtros:

    • El título es SgPublicAccessCheck

    • El estado de conformidad es FAILED

  6. Seleccione Crear hallazgo.

  7. Escriba un Nombre del hallazgo y elija Crear hallazgo.

En AWS Config, para ver una lista de las conclusiones, siga las instrucciones que se indican en la documentación sobre la visualización de la información de conformidad y los resultados de la AWS Config evaluación.

Administrador de AWS, administrador de sistemas de AWS, administrador de la nube

Resolución de problemas

ProblemaSolución

Se produce un error al crear o eliminar el conjunto de CloudFormation pilas.

Cuando AWS Control Tower se despliega, impone las barreras de protección necesarias y asume el control de los AWS Config agregadores y las reglas. Esto incluye evitar cualquier alteración directa. CloudFormation Para implementar o eliminar correctamente esta CloudFormation plantilla, incluidos todos los recursos asociados, debe utilizar cFCT.

cFct no puede eliminar la CloudFormation plantilla.

Si la CloudFormation plantilla persiste incluso después de realizar los cambios necesarios en el archivo de manifiesto y eliminar los archivos de plantilla, confirme que el archivo de manifiesto contiene el enable_stack_set_deletion parámetro y que el valor está establecido en. false Para más información, consulte Eliminación de un conjunto de pilas en la documentación de CfCT.

Recursos relacionados