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:

Fragmento con la cabecera del informe OpenSCAP
Figura 1. Fragmento con la cabecera del informe OpenSCAP
Fragmento con algunas vulnerabilidades del informe OpenSCAP
Figura 2. Fragmento con algunas vulnerabilidades del informe OpenSCAP
Fragmento del informe OpenSCAP
Figura 3. Fragmento del informe 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.

Referencias