1. Introducción a OpenSCAP
1.1. ¿Qué es OpenSCAP?
OpenSCAP es una implementación open source del estándar SCAP (Security Content Automation Protocol), diseñado para evaluar la seguridad de sistemas, detectar vulnerabilidades, comprobar configuraciones y validar el cumplimiento de políticas de seguridad de forma automatizada.
Desde una perspectiva de ciberseguridad y hardening, OpenSCAP permite:
-
Identificar vulnerabilidades conocidas en el sistema.
-
Evaluar el cumplimiento de configuraciones de seguridad.
-
Generar informes técnicos reproducibles.
-
Automatizar auditorías de seguridad de forma consistente.
-
Integrarse con estándares reconocidos (CVE, CVSS, CCE, CIS, etc.).
OpenSCAP es ampliamente utilizado en entornos Linux, infraestructuras corporativas, sistemas regulados y procesos de compliance.
1.2. SCAP: Security Content Automation Protocol
SCAP (Security Content Automation Protocol) es un conjunto de especificaciones abiertas mantenidas por el NIST que define cómo expresar, intercambiar y evaluar información relacionada con la seguridad de sistemas.
SCAP no es una herramienta, sino un ecosistema de estándares que permiten describir:
-
Vulnerabilidades.
-
Configuraciones inseguras.
-
Plataformas afectadas.
-
Métricas de severidad.
-
Resultados de evaluación.
1.3. Componentes principales del ecosistema SCAP
El Security Content Automation Protocol (SCAP) no es una única especificación, sino un conjunto de estándares abiertos y complementarios que permiten describir, evaluar y correlacionar información de seguridad de forma automatizada y reproducible.
Cada uno de estos componentes cumple una función específica dentro del proceso de evaluación de seguridad:
OVAL (Open Vulnerability and Assessment Language)
Lenguaje declarativo utilizado para definir pruebas técnicas automatizadas que permiten determinar si una vulnerabilidad, configuración insegura o condición específica existe en un sistema.
OVAL describe qué comprobar y cómo comprobarlo, y es el componente encargado de la evaluación técnica directa del estado del sistema.
XCCDF (Extensible Configuration Checklist Description Format)
Formato estructurado (basado en XML) utilizado para definir checklists de seguridad, perfiles de cumplimiento y políticas evaluables.
XCCDF actúa como el marco de orquestación, agrupando reglas, asociándolas a pruebas OVAL y permitiendo evaluar el cumplimiento de estándares de seguridad como CIS Benchmarks o políticas corporativas.
OCIL (Open Checklist Interactive Language)
Lenguaje diseñado para describir evaluaciones interactivas, en aquellas situaciones en las que una comprobación no puede automatizarse completamente y requiere intervención humana.
OCIL permite integrar entrevistas, validaciones manuales o confirmaciones administrativas dentro de un proceso de evaluación SCAP.
CPE (Common Platform Enumeration)
Sistema estándar de nomenclatura utilizado para identificar de forma unívoca y consistente plataformas de hardware, sistemas operativos y aplicaciones.
CPE permite asociar vulnerabilidades y reglas de seguridad a plataformas concretas, evitando ambigüedades en la identificación de los sistemas afectados.
CCE (Common Configuration Enumeration)
Conjunto de identificadores estándar para configuraciones de seguridad específicas.
CCE facilita la trazabilidad entre configuraciones, reglas de cumplimiento y controles de seguridad, especialmente en entornos regulados y procesos de auditoría.
CVE (Common Vulnerabilities and Exposures)
Sistema de identificación pública y estandarizada de vulnerabilidades conocidas.
Cada CVE proporciona un identificador único que permite correlacionar vulnerabilidades entre diferentes herramientas, bases de datos y proveedores.
CVSS (Common Vulnerability Scoring System)
Marco estándar para evaluar y puntuar la severidad de las vulnerabilidades, teniendo en cuenta factores como impacto, explotabilidad y alcance.
CVSS permite priorizar riesgos y apoyar la toma de decisiones en procesos de gestión de vulnerabilidades y respuesta a incidentes.
2. Instalación y uso básico de OpenSCAP en Ubuntu
2.1. Instalación de OpenSCAP
En sistemas basados en Debian/Ubuntu, OpenSCAP se encuentra disponible en los repositorios oficiales.
Para instalar OpenSCAP tenemos que ejecutar los siguientes comandos.
sudo apt update
sudo apt install openscap-scanner -y (1)
sudo apt install openscap-utils -y (2)
sudo apt install bzip2 -y (3)
| 1 | Incluye la herramienta oscap, encargada de ejecutar evaluaciones SCAP. |
| 2 | Utilidades adicionales para la manipulación de contenido SCAP. |
| 3 | Necesario para descomprimir los ficheros OVAL distribuidos por Canonical. |
2.2. Verificación de la instalación
Para comprobar que OpenSCAP se ha instalado correctamente podemos ejecutar:
oscap --version
La salida mostrará la versión instalada y los módulos disponibles, y deberá ser similar a la siguiente.
OpenSCAP command line tool (oscap) 1.3.9
Copyright 2009--2023 Red Hat Inc., Durham, North Carolina.
==== Supported specifications ====
SCAP Version: 1.3
XCCDF Version: 1.2
OVAL Version: 5.11.1
CPE Version: 2.3
CVSS Version: 2.0
CVE Version: 2.0
Asset Identification Version: 1.1
Asset Reporting Format Version: 1.1
CVRF Version: 1.1
==== Capabilities added by auto-loaded plugins ====
SCE Version: 1.0 (from libopenscap_sce.so.25)
==== Paths ====
Schema files: /usr/share/openscap/schemas
Default CPE files: /usr/share/openscap/cpe
==== Inbuilt CPE names ====
Red Hat Enterprise Linux - cpe:/o:redhat:enterprise_linux:-
Red Hat Enterprise Linux 5 - cpe:/o:redhat:enterprise_linux:5
Red Hat Enterprise Linux 6 - cpe:/o:redhat:enterprise_linux:6
Red Hat Enterprise Linux 7 - cpe:/o:redhat:enterprise_linux:7
Red Hat Enterprise Linux 8 - cpe:/o:redhat:enterprise_linux:8
Community Enterprise Operating System 5 - cpe:/o:centos:centos:5
Community Enterprise Operating System 6 - cpe:/o:centos:centos:6
Community Enterprise Operating System 7 - cpe:/o:centos:centos:7
Community Enterprise Operating System 8 - cpe:/o:centos:centos:8
Fedora 32 - cpe:/o:fedoraproject:fedora:32
Fedora 33 - cpe:/o:fedoraproject:fedora:33
Fedora 34 - cpe:/o:fedoraproject:fedora:34
Fedora 35 - cpe:/o:fedoraproject:fedora:35
==== Supported OVAL objects and associated OpenSCAP probes ====
OVAL family OVAL object OpenSCAP probe
---------- ---------- ----------
independent environmentvariable probe_environmentvariable
independent environmentvariable58 probe_environmentvariable58
independent family probe_family
independent filehash probe_filehash (MD5, SHA-1)
independent filehash58 probe_filehash58 (MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512)
independent sql probe_sql
independent sql57 probe_sql57
independent system_info probe_system_info
independent textfilecontent probe_textfilecontent
independent textfilecontent54 probe_textfilecontent54
independent variable probe_variable
independent xmlfilecontent probe_xmlfilecontent
independent yamlfilecontent probe_yamlfilecontent
linux dpkginfo probe_dpkginfo
linux iflisteners probe_iflisteners
linux inetlisteningservers probe_inetlisteningservers
linux partition probe_partition
linux rpminfo probe_rpminfo
linux rpmverify probe_rpmverify
linux rpmverifyfile probe_rpmverifyfile
linux rpmverifypackage probe_rpmverifypackage
linux selinuxboolean probe_selinuxboolean
linux selinuxsecuritycontext probe_selinuxsecuritycontext
linux systemdunitdependency probe_systemdunitdependency
linux systemdunitproperty probe_systemdunitproperty
linux fwupdsecattr probe_fwupdsecattr
unix dnscache probe_dnscache
unix file probe_file
unix fileextendedattribute probe_fileextendedattribute
unix interface probe_interface
unix password probe_password
unix process probe_process
unix process58 probe_process58
unix routingtable probe_routingtable
unix runlevel probe_runlevel
unix shadow probe_shadow
unix symlink probe_symlink
unix sysctl probe_sysctl
unix uname probe_uname
unix xinetd probe_xinetd
3. Evaluación de vulnerabilidades con OVAL en Ubuntu
3.1. OVAL y los boletines de seguridad de Ubuntu
Canonical publica de forma oficial definiciones OVAL (Open Vulnerability and Assessment Language) basadas en los Ubuntu Security Notices (USN). Estas definiciones permiten evaluar automáticamente si un sistema Ubuntu es vulnerable a CVE conocidos, en función de:
-
La versión del sistema operativo
-
Los paquetes instalados
-
Las versiones de dichos paquetes
El contenido OVAL de Ubuntu se genera a partir de los avisos de seguridad publicados por Canonical y se mantiene actualizado de forma continua.
Las definiciones OVAL se distribuyen en ficheros XML comprimidos con bzip2 (.bz2), y están disponibles públicamente para su descarga y uso con herramientas compatibles con SCAP, como OpenSCAP.
3.2. Descarga del contenido OVAL
Para descargar el fichero OVAL correspondiente a la versión de Ubuntu instalada en el sistema, ejecuta el siguiente comando:
wget https://security-metadata.canonical.com/oval/com.ubuntu.$(lsb_release -cs).usn.oval.xml.bz2
El comando $(lsb_release -cs) devuelve automáticamente el codename de la versión de Ubuntu en uso, por ejemplo:
-
focal(20.04 LTS) -
jammy(22.04 LTS) -
noble(24.04 LTS)
De este modo, se garantiza que se descarga el contenido OVAL adecuado para el sistema evaluado.
3.3. Descompresión del fichero OVAL
Una vez descargado el archivo, es necesario descomprimirlo para obtener el fichero XML que contiene las definiciones OVAL:
bzip2 -d com.ubuntu.$(lsb_release -cs).usn.oval.xml.bz2
Tras la descompresión, se generará el archivo:
com.ubuntu.<codename>.usn.oval.xml
Este fichero XML será el utilizado por OpenSCAP para realizar la evaluación de vulnerabilidades.
3.4. Ejecución del escaneo de vulnerabilidades
Para evaluar el sistema utilizando las definiciones OVAL descargadas y generar un informe en formato HTML, ejecuta el siguiente comando:
oscap oval eval \
--report oval-$(lsb_release -cs).html \
com.ubuntu.$(lsb_release -cs).usn.oval.xml
Este comando realiza las siguientes acciones:
-
Evalúa el estado del sistema frente a todas las definiciones OVAL incluidas.
-
Comprueba versiones de paquetes y condiciones de vulnerabilidad.
-
Genera un informe HTML con los resultados de la evaluación.
3.5. Verificación del informe generado
Para comprobar que el informe se ha generado correctamente:
ls -la oval-$(lsb_release -cs).html
El archivo resultante es un informe HTML que puede abrirse con cualquier navegador web. Este informe proporciona una visión detallada del estado de seguridad del sistema, incluyendo:
-
Vulnerabilidades evaluadas.
-
Identificadores CVE asociados.
-
Resultado de cada prueba (vulnerable / no vulnerable).
-
Referencias a los Ubuntu Security Notices correspondientes.
A continuación se muestran algunos fragmentos de ejemplo de un informe generado por OpenSCAP:
| Puede consultar el informe completo en este enlace. |
4. Evaluación de cumplimiento con XCCDF
Además de la detección de vulnerabilidades, OpenSCAP permite evaluar el cumplimiento de configuraciones de seguridad recomendadas, utilizando benchmarks XCCDF. En entornos profesionales y educativos, uno de los benchmarks más utilizados es el CIS Benchmark para Ubuntu Linux, desarrollado por el Center for Internet Security (CIS).
La evaluación CIS permite responder de forma objetiva a preguntas como:
-
¿Está el sistema Ubuntu correctamente endurecido?
-
¿Cumple las recomendaciones de seguridad del CIS?
-
¿Qué controles no se han aplicado?
-
¿Cuál es el nivel de cumplimiento global del sistema?
Este tipo de evaluación es clave en procesos de hardening, auditoría técnica, cumplimiento normativo y mejora continua de la seguridad.
4.1. CIS Benchmark para Ubuntu
El CIS Benchmark for Ubuntu Linux es una guía de buenas prácticas que define un conjunto de controles técnicos de seguridad orientados a reducir la superficie de ataque del sistema operativo.
El benchmark cubre, entre otros aspectos:
-
Configuración del sistema de archivos.
-
Permisos y propiedad de ficheros críticos.
-
Gestión de usuarios y contraseñas.
-
Servicios y demonios activos.
-
Configuración de red y firewall.
-
Auditoría y registro de eventos.
-
Configuración de SSH y acceso remoto.
CIS distribuye estos benchmarks en diferentes formatos, incluyendo SCAP/XCCDF, compatibles directamente con OpenSCAP.
4.2. Perfiles CIS disponibles
El benchmark CIS para Ubuntu define normalmente dos perfiles principales:
-
Level 1 – Server / Workstation Recomendado para la mayoría de sistemas. Prioriza seguridad básica sin afectar significativamente a la funcionalidad.
-
Level 2 – Server / Workstation Perfil más restrictivo, orientado a sistemas críticos o entornos altamente regulados. Puede impactar en la operatividad del sistema.
Cada perfil agrupa un conjunto diferente de reglas XCCDF, permitiendo adaptar la evaluación al rol del sistema.
4.3. Obtención del contenido CIS en formato SCAP
El contenido SCAP del CIS Benchmark puede obtenerse desde:
-
El portal oficial del Center for Internet Security (CIS).
-
Repositorios institucionales que redistribuyen contenido SCAP.
-
Plataformas educativas o laboratorios internos.
El benchmark se distribuye habitualmente como un archivo XML que incluye:
-
Definiciones XCCDF (políticas y perfiles).
-
Pruebas OVAL asociadas a cada regla.
Ejemplo de fichero:
CIS_Ubuntu_24.04_LTS_Benchmark-xccdf.xml
| El nombre exacto del fichero puede variar según la versión de Ubuntu y del benchmark. |
4.4. Listado de perfiles CIS disponibles
Antes de ejecutar la evaluación, es recomendable listar los perfiles incluidos en el benchmark:
oscap xccdf list-profiles CIS_Ubuntu_24.04_LTS_Benchmark-xccdf.xml
La salida mostrará identificadores similares a:
xccdf_org.cisecurity.benchmarks_profile_Level_1_Server
xccdf_org.cisecurity.benchmarks_profile_Level_2_Server
Estos identificadores se utilizarán para seleccionar el perfil deseado en la evaluación.
4.5. Ejecución de la evaluación de cumplimiento CIS
Para evaluar el cumplimiento del sistema Ubuntu con el perfil CIS Level 1 (Server) y generar un informe HTML, ejecuta:
sudo oscap xccdf eval \
--profile xccdf_org.cisecurity.benchmarks_profile_Level_1_Server \
--report cis-ubuntu-report.html \
CIS_Ubuntu_24.04_LTS_Benchmark-xccdf.xml
Este comando realiza las siguientes acciones:
-
Evalúa todas las reglas CIS incluidas en el perfil seleccionado.
-
Comprueba automáticamente configuraciones del sistema.
-
Ejecuta pruebas OVAL asociadas a cada control.
-
Genera un informe HTML detallado con los resultados.
El proceso puede tardar varios minutos, dependiendo del número de reglas y del sistema evaluado.
4.6. Interpretación del informe CIS
El informe generado clasifica cada control CIS según su resultado:
-
pass: El control se cumple correctamente.
-
fail: El control no se cumple.
-
not applicable: El control no aplica al sistema.
-
not checked: No se pudo verificar automáticamente.
Además, el informe incluye:
-
Identificador del control CIS.
-
Descripción del control.
-
Severidad asociada.
-
Evidencias técnicas de la comprobación.
-
Referencias a CCE y buenas prácticas.
El porcentaje de controles superados proporciona una medida objetiva del nivel de hardening del sistema.
4.7. CIS Benchmark y hardening del sistema
El uso del CIS Benchmark con OpenSCAP permite integrar la evaluación de cumplimiento en procesos reales de bastionado:
-
Verificar el estado del sistema antes del hardening.
-
Aplicar medidas de seguridad de forma progresiva.
-
Reevaluar el sistema tras los cambios.
-
Comparar informes para comprobar mejoras.
-
Generar evidencias técnicas para auditorías.
En un entorno educativo, este enfoque permite al alumnado validar de forma objetiva si las medidas aplicadas cumplen un estándar reconocido internacionalmente.
4.8. Consideraciones y buenas prácticas
Al trabajar con el CIS Benchmark para Ubuntu es importante tener en cuenta:
-
No todas las reglas CIS son adecuadas para todos los sistemas.
-
El perfil Level 2 puede afectar a servicios y aplicaciones.
-
Es recomendable revisar los controles antes de aplicarlos en producción.
-
La evaluación debe complementarse con análisis manual y pruebas funcionales.
-
CIS proporciona recomendaciones, no configuraciones obligatorias.
5. Casos de uso habituales de OpenSCAP
OpenSCAP se emplea habitualmente como herramienta de apoyo en distintos procesos de gestión de la seguridad, cumplimiento normativo y operación de sistemas, tanto en entornos corporativos como regulados.
Entre sus principales casos de uso se incluyen:
-
Auditorías de seguridad periódicas
Ejecución recurrente de evaluaciones automatizadas para verificar el estado de seguridad de los sistemas a lo largo del tiempo y detectar desviaciones respecto a la configuración esperada. -
Evaluaciones de cumplimiento normativo
Validación del cumplimiento de políticas internas y estándares de seguridad reconocidos (por ejemplo, CIS Benchmarks, ENS, ISO/IEC 27001 o guías corporativas), mediante reglas y perfiles definidos en XCCDF. -
Detección temprana de vulnerabilidades
Identificación de vulnerabilidades conocidas (CVE) y configuraciones inseguras antes de que puedan ser explotadas, facilitando la priorización de acciones de parcheo y mitigación. -
Integración en pipelines CI/CD y procesos DevSecOps
Automatización de evaluaciones de seguridad como parte del ciclo de vida del software, permitiendo detectar incumplimientos de seguridad en etapas tempranas del despliegue. -
Verificación de hardening tras cambios de configuración
Comprobación del estado de seguridad del sistema después de aplicar actualizaciones, cambios de configuración o procesos de endurecimiento (hardening), asegurando que las medidas implementadas siguen siendo efectivas. -
Generación de evidencias para auditorías internas y externas
Producción de informes técnicos reproducibles (HTML, XML) que sirven como evidencia documental en auditorías de seguridad, revisiones de cumplimiento y procesos de certificación.
6. Limitaciones y consideraciones
Aunque OpenSCAP es una herramienta muy potente para la evaluación automatizada de la seguridad, su uso debe entenderse dentro de un contexto más amplio de gestión de la seguridad. Es importante tener en cuenta las siguientes limitaciones y consideraciones:
-
No sustituye el análisis manual experto
OpenSCAP automatiza comprobaciones técnicas y de cumplimiento, pero no reemplaza la revisión, interpretación y toma de decisiones por parte de profesionales de seguridad. -
Dependencia del contenido SCAP disponible
La eficacia de las evaluaciones está directamente ligada a la calidad, cobertura y actualización del contenido SCAP utilizado. Contenido obsoleto o incompleto puede dar lugar a resultados inexactos. -
Evaluación de estado, no de explotabilidad real
Las evaluaciones OVAL determinan si una condición de vulnerabilidad está presente en el sistema, pero no evalúan si dicha vulnerabilidad es explotable en un contexto real ni el impacto efectivo sobre el entorno. -
Necesidad de integración con otras medidas de seguridad
OpenSCAP debe utilizarse como parte de una estrategia de seguridad en profundidad, combinándose con procesos de hardening, gestión de parches, monitorización continua, análisis de riesgos y respuesta a incidentes.