
Genera contenido de seguridad SCAP, Ansible, Bash y CEL para la evaluación de cumplimiento y el endurecimiento automatizado en hosts Linux, contenedores y Kubernetes.
El propósito de este proyecto es crear contenido de políticas de seguridad para varias plataformas — Red Hat Enterprise Linux, Fedora, Ubuntu, Debian, SUSE Linux Enterprise Server (SLES),... — así como productos — Firefox,... Nuestro objetivo es hacer que sea lo más fácil posible escribir contenido de seguridad nuevo y mantener el existente en todos los formatos de uso común.

"Contenido SCAP" se refiere a documentos en los formatos XCCDF, OVAL y flujo de datos fuente SCAP. Estos documentos pueden presentarse en diferentes formas y por diferentes organizaciones para satisfacer sus necesidades de automatización de seguridad e implementación técnica. Para uso general, recomendamos los flujos de datos fuente SCAP porque contienen todos los datos que necesita para evaluar y poner las máquinas en cumplimiento. Los flujos de datos son parte de nuestros archivos ZIP de lanzamiento.
"Contenido Ansible" se refiere a los playbooks de Ansible generados a partir de perfiles de seguridad. perfiles. Estos se pueden usar tanto en modo de verificación (check-mode) para evaluar el cumplimiento, como en modo de ejecución (run-mode) para poner las máquinas en cumplimiento. Publicamos estos en Ansible Galaxy así como en los archivos ZIP de lanzamiento.
"Archivos de corrección Bash" se refiere a scripts de Bash generados a partir de perfiles de seguridad. perfiles. Están pensados para ejecutarse en las máquinas para ponerlas en cumplimiento. Recomendamos usar otros formatos, pero entendemos que para algunos escenarios de implementación bash es la única opción.
"Contenido CEL" se refiere al contenido de cumplimiento que utiliza el Lenguaje de Expresiones Comunes (CEL) para plataformas Kubernetes y OpenShift. El contenido CEL se genera como archivos YAML y está diseñado para la evaluación nativa de recursos de Kubernetes a través del operador de cumplimiento (compliance-operator), sin requerir acceso shell a los nodos. Este formato se utiliza para comprobaciones de cumplimiento a nivel de plataforma en sistemas de orquestación de contenedores.
Queremos que múltiples organizaciones puedan desarrollar contenido de seguridad de manera eficiente. Al aprovechar el potente sistema de compilación de este proyecto, evitamos tanta redundancia como sea posible.
El sistema de compilación combina los archivos de reglas YAML fáciles de editar con comprobaciones OVAL, fragmentos de tareas de Ansible, correcciones Bash y otros archivos. Se proporciona plantillas en cada paso para evitar código repetitivo. Los identificadores de seguridad (CCE, NIST ID, STIG, ...) aparecen en todos nuestros formatos de salida, pero todos provienen de los archivos de reglas YAML.
Entendemos que, dependiendo de las necesidades de su organización, es posible que necesite utilizar un formato de contenido de seguridad específico. Le dejamos a usted elegir.
Usamos un formato de reglas YAML inspirado en OpenControl para la entrada. Escriba una vez y genere contenido de seguridad en XCCDF, Ansible y otros.
title: 'Configure The Number of Allowed Simultaneous Requests'
description: |-
The <tt>MaxKeepAliveRequests</tt> directive should be set and configured to
<sub idref="var_max_keepalive_requests" /> or greater by setting the following
in <tt>/etc/httpd/conf/httpd.conf</tt>:
<pre>MaxKeepAliveRequests {{{ xccdf_value("var_max_keepalive_requests") }}}</pre>
rationale: |-
Resource exhaustion can occur when an unlimited number of concurrent requests
are allowed on a web site, facilitating a denial of service attack. Mitigating
this kind of attack will include limiting the number of concurrent HTTP/HTTPS
requests per IP address and may include, where feasible, limiting parameter
values associated with keepalive, (i.e., a parameter used to limit the amount of
time a connection may be inactive).
severity: medium
identifiers:
cce: "80551-5"
Nuestro contenido de seguridad se puede utilizar para escanear máquinas físicas (bare-metal), máquinas virtuales, imágenes de máquinas virtuales (qcow2 y otras), contenedores (incluido Docker) e imágenes de contenedores.
Usamos comprobaciones de plataforma para detectar si debemos o no evaluar algunas de las reglas. Por ejemplo: las comprobaciones de particiones separadas tienen mucho sentido en máquinas físicas pero van en contra de las prácticas recomendadas en contenedores.
El método preferido de instalación es mediante el gestor de paquetes de su distribución. En Red Hat Enterprise Linux y Fedora puede utilizar:
yum install scap-security-guide
En Debian (sid), puede utilizar:
apt install ssg-debian # for Debian guides
apt install ssg-debderived # for Debian-based distributions (e.g. Ubuntu) guides
apt install ssg-nondebian # for other distributions guides (RHEL, Fedora, etc.)
apt install ssg-applications # for application-oriented guides (Firefox, JBoss, etc.)
Descargue el archivo ZIP de SSG precompilado desde la página de lanzamientos. Cada archivo ZIP es un archivo con flujos de datos fuente SCAP ya preparados.
Si ComplianceAsCode no está empaquetado en su distribución (puede estar presente como paquete scap-security-guide), o si la
versión empaquetada es demasiado antigua, necesita compilar el contenido usted mismo
e instalarlo mediante make install. Consulte el documento Guía para desarrolladores
para obtener más información. También recomendamos abrir un informe (issue) en el sistema de seguimiento de errores de esa distribución
para expresar su interés.
Asumimos que ha instalado ComplianceAsCode en todo el sistema en una ubicación estándar a partir de las fuentes upstream actuales, tal como se indica en la sección anterior.
Hay varias formas de consumir el contenido de ComplianceAsCode; aquí solo veremos algunas de ellas.
oscapLa herramienta oscap es una interfaz de línea de comandos de bajo nivel que proviene del
proyecto OpenSCAP. Se puede utilizar para escanear la máquina local.
oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_ospp --results-arf arf.xml --report report.html --oval-results /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
Después de la evaluación, el archivo arf.xml contendrá todos los resultados en un
flujo de datos de resultados (ARF) reutilizable, report.html contendrá un informe
legible por humanos que se puede abrir en un navegador.
Reemplace el perfil por otro perfil de su elección; puede mostrar todas las opciones posibles mediante:
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
Consulte el sitio web de OpenSCAP para obtener más información.
SCAP Workbench es una interfaz gráfica de usuario para la evaluación y personalización de SCAP. Es adecuado para escanear una sola máquina, ya sea local o remota (a través de SSH). Las nuevas versiones de SCAP Workbench tienen integración con SSG y la ofrecerán automáticamente cuando se inicie la aplicación.
Consulte el sitio web de SCAP Workbench para obtener más información.
oscap-sshoscap-ssh viene incluido con OpenSCAP 1.2.3 y versiones posteriores. Permite escanear
una máquina remota a través de SSH con una interfaz similar a la herramienta oscap.
El siguiente comando evalúa una máquina con IP 192.168.1.123 con contenido
almacenado en la máquina local. Tenga en cuenta que oscap debe estar instalado en la
máquina remota, pero el contenido SSG no es necesario.
oscap-ssh [email protected] 22 xccdf eval --profile xccdf_org.ssgproject.content_profile_standard --results-arf arf.xml --report report.html /usr/share/xml/scap/ssg/content/ssg-fedora-ds.xml
Para ver una lista de los Ansible Playbooks disponibles, ejecute:
ls /usr/share/scap-security-guide/ansible/
Estos Ansible Playbooks se generan a partir de los perfiles SCAP disponibles para los productos.
Para aplicar el playbook en su máquina local, ejecute: (¡ESTO CAMBIARÁ LA CONFIGURACIÓN DE LA MÁQUINA!)
ansible-playbook -i "localhost," -c local /usr/share/scap-security-guide/ansible/rhel9-playbook-ospp.yml
Cada uno de los Ansible Playbooks contiene instrucciones sobre cómo implementarlos. Aquí hay un fragmento de las instrucciones:
...
# This file was generated by OpenSCAP 1.2.16 using:
# $ oscap xccdf generate fix --profile rht-ccp --fix-type ansible sds.xml
#
# This script is generated from an OpenSCAP profile without preliminary evaluation.
# It attempts to fix every selected rule, even if the system is already compliant.
#
# How to apply this remediation role:
# $ ansible-playbook -i "192.168.1.155," playbook.yml
# $ ansible-playbook -i inventory.ini playbook.yml
...
Para ver una lista de los scripts Bash disponibles, ejecute:
# ls /usr/share/scap-security-guide/bash/
...
rhel8-script-hipaa.sh
rhel8-script-ospp.sh
rhel8-script-pci-dss.sh
...
Estos scripts Bash se generan a partir de los perfiles SCAP disponibles para los productos. Al igual que los Ansible Playbooks, cada uno de los scripts Bash contiene instrucciones sobre cómo implementarlos.
La lista de correo de SSG se puede encontrar en https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide.
Si tiene problemas con OpenSCAP o SCAP Workbench, use https://www.redhat.com/mailman/listinfo/open-scap-list
Si prefiere un contacto más interactivo con la comunidad, puede unirse a nosotros en Gitter e IRC:
#openscap en libera.chat.Este proyecto comenzó en 2011 como una colaboración entre agencias del Gobierno de los Estados Unidos y proveedores comerciales de sistemas operativos. El nombre original era SCAP Security Guide, comúnmente abreviado como SSG. El alcance original era crear flujos de datos SCAP. Con el tiempo, se convirtió en el mayor proyecto de código abierto de contenido más allá de SCAP.
En los años siguientes se introdujeron no solo perfiles de seguridad específicos del gobierno, sino también comerciales, como PCI-DSS y CIS.
Más tarde, la industria comenzó a moverse hacia diferentes formatos de contenido de seguridad,
como Ansible, Puppet y Chef InSpec. La comunidad reaccionó evolucionando las
herramientas y ayudó a transformar SSG en un proyecto de contenido de seguridad de
propósito más general. Este cambio ocurrió gradualmente en 2017 y 2018. En septiembre de 2018,
decidimos cambiar el nombre del proyecto a ComplianceAsCode, para evitar confusiones.
Prevemos que el futuro será independiente del formato. Por eso optamos por una abstracción en lugar de usar XCCDF como formato de entrada.
Este proyecto da la bienvenida a nuevos contribuyentes. Continuamente intentamos eliminar las complejidades para hacer que las contribuciones sean más fáciles y agradables para todos. Este es un buen proyecto y una comunidad amigable.
Hay muchas formas de contribuir. Consulte la documentación para obtener más detalles: https://complianceascode.readthedocs.io/en/latest/manual/developer/01_introduction.html
Consulte la lista actualizada de Contribuyentes.