Security Hub Compliance Analyzer (SHCA) genera artefactos en apoyo de la acreditación del sistema de información del Marco de gestión de riesgos (RMF) del Departamento de Defensa. Utilizando la documentación proporcionada por Amazon Web Services, asignando los controles NIST800-53-Rev-5 a los ID de control de seguridad de AWS Security Hub, SHCA solicita el cumplimiento del entorno actual de Security Hub y genera un archivo zip almacenado en Amazon S3 que contiene artefactos discretos en CSV, JSON, OCSF proporciona a SecOps artefactos para importar a la herramienta RMF.
Security Hub con el estándar de seguridad NIST Special Publication 800-53 Revisión 5 y funcionando durante al menos 24 horas para producir resultados
** Para obtener más información sobre cómo habilitar este estándar, visite Habilitación y deshabilitación de estándares de seguridad)
Todos los hallazgos dentro de Security Hub se extraen y guardan en JSON.
El hallazgo más reciente de cada ID de control/recurso en el JSON se escribe en un archivo CSV para un mejor análisis y legibilidad.
Se crea un resumen de todos los controles a partir del archivo CSV siguiendo la siguiente metodología
Este paso crea un archivo para cada control NIST SP 800-53 según el estado de ese control y lo almacena en dos carpetas:
Además, este paso recupera e incluye varios archivos de un depósito de S3. Las carpetas y su contenido son:
Estos archivos proporcionan datos completos sobre el estado de seguridad de los recursos de AWS, según las comprobaciones de seguridad automatizadas NIST SP 800-53 de Security Hub.
Esto es lo que necesita instalar para utilizar AWS CDK.
Validación de la instalación de Python 3.7 o posterior, pip, virtualenv y Node.js en Linux
node --version
Todos los desarrolladores de AWS CDK, incluso aquellos que trabajan en Python, Java o C#, necesitan Node.js 14.15.0 o posterior. Todos los idiomas admitidos utilizan el mismo backend, que se ejecuta en Node.js. Recomendamos una versión con soporte activo a largo plazo. Es posible que su organización tenga una recomendación diferente.
Otros requisitos previos dependen del lenguaje en el que desarrolle aplicaciones AWS CDK y son los siguientes:
python3 --version
pip3 --version
virtualenv --version
wget --version
jq --version
npm install -g aws-cdk
Ejecute el siguiente comando para verificar la instalación correcta e imprimir el número de versión de AWS CDK.
cdk --version
El archivo cdk.json
le indica al CDK Toolkit cómo ejecutar la aplicación.
Este proyecto está configurado como un proyecto Python estándar. El proceso de inicialización también crea un virtualenv dentro de este proyecto, almacenado en el directorio .venv
. Para crear virtualenv, se supone que hay un ejecutable python3
(o python
para Windows) en su ruta con acceso al paquete venv
. Si por algún motivo falla la creación automática del virtualenv, puede crear el virtualenv manualmente.
Para crear manualmente un virtualenv en MacOS y Linux:
$ python3 -m venv .venv
Una vez que se completa el proceso de inicio y se crea el virtualenv, puede utilizar el siguiente paso para activar su virtualenv.
$ source .venv/bin/activate
Si estás en una plataforma Windows, activarías el virtualenv de esta manera:
% .venvScriptsactivate.bat
Una vez que virtualenv esté activado, puede instalar las dependencias necesarias.
$ pip install -r requirements-deploy.txt
Descargue AWS Lambda Layer para AWS SDK for Pandas (AWS Wrangler) y colóquelo en la siguiente ubicación: Consulte README.md para obtener más información.
bash update_aws_wrangler.sh
La implementación de pilas con AWS CDK requiere que los depósitos de Amazon S3 dedicados y otros contenedores estén disponibles para AWS CloudFormation durante la implementación. Crearlos se llama bootstrapping. Para arrancar, emita:
cdk bootstrap aws://ACCOUNT-NUMBER/REGION
En este punto, ahora puede sintetizar la plantilla de CloudFormation para este código.
$ cdk synth
Modifique los siguientes valores en cdk.json
- "environment": "shca"
- Asigne a esto un nombre descriptivo para la implementación de SHCA. Puede tener cualquier valor y no afecta la funcionalidad. Es para etiquetar los recursos SHCA dentro de la cuenta de AWS. - "vpc_cidr": "10.30.0.0/24"
: establece el rango CIDR para una VPC pequeña creada para que se ejecuten las funciones Lambda, ya que para no crear las funciones Lambda [Lambda.3] deben estar en un hallazgo de VPC. Seleccione un rango CIDR que aún no esté en uso en su entorno. - "schedule_frequency_days": 7
: esta configuración dicta con qué frecuencia desea que SHCA genere informes de cumplimiento. - "send_failure_notification_email": true
o false
- Si es true
, el correo electrónico se enviará a la dirección proporcionada en failure_notification_email
. - "failure_notification_email": [email protected]
: esta dirección de correo electrónico recibirá notificaciones si no se ejecuta SHCA.
Desde aquí tienes dos opciones sobre cómo instalar SHCA (CloudShell o CDK)
Si no tiene acceso a una computadora portátil o un entorno de desarrollo donde pueda instalar los requisitos previos anteriores, se puede usar el servicio CloudShell para implementar SHCA. Además, al utilizar credenciales temporales de AWS IAM Identity Center, podemos usar un único CloudShell en una cuenta para realizar llamadas a la API de CloudFormation e implementar código en cualquier cuenta a la que tenga acceso.
CloudShell está aprobado por DISA para su uso en entornos IL2-IL5, incluidas las regiones Comercial y GovCloud. Consulte al personal de cumplimiento de su organización para asegurarse de que CloudShell esté aprobado para su uso en la implementación de AWS de su organización.
Descargue el código fuente como shca-main.zip, desde la rama principal de este repositorio.
Navegue hasta el servicio CloudShell en la cuenta de AWS que utilizará para actuar como su entorno de implementación. Asegúrese de tener suficiente espacio en su CloudShell antes de realizar la implementación. Si te quedas sin espacio, fallará.
Cargue el código fuente en CloudShell. Descomprima los archivos y el cd en el directorio shca-main
:
unzip shca-main.zip && cd shca-main
Pegue las credenciales temporales de AWS IAM Identity Center para la cuenta en la que desea implementar SHCA . AWS CDK utilizará estas credenciales temporales (ahora configuradas como variables de entorno) para implementar el código en la cuenta de destino correcta, incluso si está utilizando CloudShell desde otra cuenta.
Ejecute aws sts get-caller-identity
y verifique que el principal y el número de cuenta coincidan con los valores esperados.
Otorgue permisos de ejecución y ejecute ./cloud_shell_deployment.sh
chmod +x cloud_shell_deployment.sh && ./cloud_shell_deployment.sh
Introduzca y
cuando CDK se lo solicite en el shell en ambas ocasiones .
$ cdk deploy
cdk ls
enumera todas las pilas en la aplicacióncdk synth
emite la plantilla de CloudFormation sintetizadacdk deploy
implemente esta pila en su cuenta/región de AWS predeterminadacdk diff
compara la pila implementada con el estado actualcdk docs
abre la documentación de CDK Una vez que se implementa SHCA:
Navegue hasta el Servicio de funciones de paso/máquinas de estado:
Seleccione YOUR-ENVIRONMENT-NAME-State-Machine
Si acaba de implementar SHCA por primera vez, verifique que la máquina de estado se haya ejecutado correctamente viendo la ejecución. Si la máquina de estado se ejecutó correctamente, vaya al paso 6 . De lo contrario, para ejecutar SHCA bajo demanda, seleccione "Iniciar ejecución":
Seleccione "Iniciar ejecución" nuevamente en la ventana emergente. Deje todos los valores predeterminados.
Desplácese hasta el final de la página y espere a que todos los pasos se completen correctamente. Verá esta "Ejecución exitosa" en la parte inferior una vez que se complete.
Navegue hasta la consola de Amazon S3 y busque y seleccione el depósito denominado "-resources-%YOUR_ACCOUNT_NUMBER%".
En este depósito, navegue hasta cliente/compliance_scraper/
Descargue el archivo zip de artefactos más reciente.
Revisar los archivos contenidos en el zip.
Consulte CONTRIBUCIÓN para obtener más información.
Este proyecto está bajo la licencia Apache-2.0.