Benchmarks

Un análisis de cumplimiento compara el sistema objetivo con una referencia (el benchmark), que es un conjunto de reglas de seguridad para evaluar el cumplimiento o no cumplimiento del sistema.

Un benchmark se define usando la norma SCAP, que permite a las organizaciones automatizar la forma en que supervisan las vulnerabilidades y se aseguran de que cumplen las políticas de seguridad.

Estructura de un benchmark

Un benchmark incluye un archivo XCCDF que describe las reglas de cumplimiento y las pruebas que permiten evaluarlas. Estas pruebas pueden estar escritas en formato OVAL o SCE.

Cyberwatch soporta dos formatos de benchmark:

  • un archivo ZIP que contiene, como mínimo, un archivo XCCDF y, opcionalmente, los demás archivos (scripts SCE u OVAL) cuyos caminos relativos se han declarado en el XCCDF
  • un archivo en formato DataStream

Ejemplo minimalista de archivo XCCDF

Ejemplo de archivo XCCDF extraído del benchmark CIS para Ubuntu Linux 22.04 LTS que define un benchmark que contiene una sola regla de cumplimiento:

<xccdf:Benchmark id="xccdf_org.cisecurity.benchmarks_benchmark_1.0.0_CIS_Ubuntu_Linux_22.04_LTS_Benchmark" xmlns:xccdf="http://checklists.nist.gov/xccdf/1.2" xmlns="http://checklists.nist.gov/xccdf/1.2" >
  <xccdf:title>CIS Ubuntu Linux 22.04 LTS Benchmark</xccdf:title>
  <xccdf:platform idref="cpe:2.3:o:canonical:ubuntu_linux:22.04:*:*:*:lts:*:*:*"/>
  <xccdf:Rule id="xccdf_org.cisecurity.benchmarks_rule_1.1.5.3_Ensure_noexec_option_set_on_varlog_partition" role="full" selected="false" weight="1.0">
    <xccdf:title xml:lang="en">Ensure noexec option set on /var/log partition</xccdf:title>
    <xccdf:description xml:lang="en">
      <xhtml:p><xhtml:span class="inline_block">noexec</xhtml:span> mount option specifies that the filesystem cannot contain executable binaries.</xhtml:p>
    </xccdf:description>
    <xccdf:rationale xml:lang="en">
      <xhtml:p> Since the <xhtml:span class="inline_block">/var/log</xhtml:span> filesystem is only intended for log files, set this option to ensure that users cannot run executable binaries from <xhtml:span class="inline_block">/var/log</xhtml:span>.</xhtml:p>
    </xccdf:rationale>
    <xccdf:fixtext xml:lang="en">
      <xhtml:div>
        <xhtml:p><xhtml:strong>IF</xhtml:strong> the <xhtml:span class="inline_block">/var/log</xhtml:span> partition exists, edit the <xhtml:span class="inline_block">/etc/fstab</xhtml:span> file and add <xhtml:span class="inline_block">noexec</xhtml:span> to the fourth field (mounting options) for the <xhtml:span class="inline_block">/var/log</xhtml:span> partition.</xhtml:p>
        <xhtml:p>Run the following command to remount <xhtml:span class="inline_block">/var/log</xhtml:span> with the configured options:    </xhtml:p>
        <xhtml:code class="code_block"># mount -o remount /var/log</xhtml:code>
      </xhtml:div>
    </xccdf:fixtext>
    <xccdf:complex-check operator="AND">
      <check system="http://oval.mitre.org/XMLSchema/oval-definitions-5">
        <check-content-ref href="CIS_Ubuntu_Linux_22.04_LTS_Benchmark_v1.0.0-oval.xml" name="oval:org.cisecurity.benchmarks.canonical_ubuntu_linux_22:def:2956581"/>
      </check>
    </xccdf:complex-check>
  </xccdf:Rule>
</xccdf:Benchmark>

Algunos elementos a tener en cuenta en este documento:

  • El identificador del benchmark definido por el atributo id en la etiqueta <xccdf:Benchmark> que sirve de referencia para Cyberwatch
  • La plataforma objetivo se define en formato CPE mediante el atributo idref en la etiqueta <xccdf:platform>. También es posible declarar una o varias plataformas a nivel de una regla si se quiere restringir su aplicación
  • En la definición de la regla <xccdf:Rule>, el contenido de la etiqueta <xccdf:complex-check> permite listar las pruebas a ejecutar y los caminos relativos para acceder a los archivos donde se definen

En este ejemplo, la única regla hace referencia a una prueba en formato OVAL, por lo que el benchmark contendrá este archivo XCCDF y el archivo OVAL declarado. Entonces podrá distribuirse en formato ZIP o en formato DataStream.

En cambio, si la regla hubiera hecho referencia a un script en formato SCE, declarando por ejemplo:

<check system="http://open-scap.org/page/SCE">
  <check-import import-name="stdout"/>
  <check-content-ref href="sce/ensure_no_exec_option.sh"/>
</check>

El benchmark contendría el archivo XCCDF y un directorio sce que contiene el script Shell ensure_no_exec_option.sh. Todo debería comprimirse en formato ZIP para poder ser añadido a Cyberwatch, como se describe a continuación.

El árbol de archivos en el archivo ZIP debe respetar obligatoriamente las rutas relativas declaradas en el archivo XCCDF.

Añadir un benchmark

  1. Ir a Configuración > Benchmarks
  2. Hacer clic en el botón “Añadir”
  3. Seleccionar el benchmark a añadir, en formato ZIP o DataStream
  4. Hacer clic en “Importar”

Durante la importación, si el identificador del benchmark ya existe en Cyberwatch, el benchmark se actualiza. En caso contrario, se crea un nuevo benchmark.

Es posible importar nuevos benchmarks únicamente para las plataformas soportadas por el módulo de gestión de cumplimientos de Cyberwatch. Por lo tanto, es posible importar un benchmark para otras versiones de sistemas operativos como macOS o Ubuntu 12.04, por ejemplo, pero no importar un benchmark que permita verificar una configuración de software o de un equipo de red, por ejemplo.

Lista de plataformas soportadas

En la tabla siguiente se enumeran las plataformas soportadas y los benchmarks ya instalados:

Sistemas operativosCPE de la plataformaBenchmarks instalados
AlmaLinuxcpe:/o:almalinux:almalinux:8, …CIS Alma Linux OS 8 Benchmark
CIS AlmaLinux OS 9 Benchmark
Amazon Linux 2cpe:/o:amazon:linux_2CIS Amazon Linux 2 Benchmark
CIS Amazon Linux 2023 Benchmark
Apple macOScpe:/o:apple:mac_os_x:10.15.0, …CIS Apple macOS 10.15 Catalina Benchmark
CIS Apple macOS 11.0 Big Sur Benchmark
CIS Apple macOS 12.0 Monterey Benchmark
CIS Apple macOS 13.0 Ventura Benchmark
CIS Apple macOS 14.0 Sonoma Benchmark
CIS Apple macOS 15.0 Sequoia Benchmark
CentOS Linuxcpe:/o:centos:centos:6, …CIS CentOS Linux 6 Benchmark
CIS CentOS Linux 7 Benchmark
Debiancpe:/o:debian:debian_linux:9.0, …CIS Debian Linux 9 Benchmark
CIS Debian Linux 10 Benchmark
CIS Debian Linux 11 Benchmark
CIS Debian Linux 12 Benchmark
Fedora Linuxcpe:/o:fedora:linux:28CIS Fedora 28 Family Linux Benchmark
Microsoft Windows 8cpe:/o:microsoft:windows_8CIS Microsoft Windows 8 Benchmark
Microsoft Windows 10cpe:/o:microsoft:windows_10CIS Microsoft Windows 10 Enterprise Benchmark
CIS Microsoft Intune for Windows 10 Benchmark
Microsoft Windows 11cpe:/o:microsoft:windows_11CIS Microsoft Windows 11 Enterprise Benchmark
CIS Microsoft Intune for Windows 11 Benchmark
Microsoft Windows Server 2008cpe:/o:microsoft:windows_server_2008,
cpe:/o:microsoft:windows_server_2008:r2
CIS Microsoft Windows Server 2008 (non-R2) Benchmark
CIS Microsoft Windows Server 2008 R2 Benchmark
Microsoft Windows Server 2012cpe:/o:microsoft:windows_server_2012,
cpe:/o:microsoft:windows_server_2012:r2
CIS Microsoft Windows Server 2012 (non-R2) Benchmark
CIS Microsoft Windows Server 2012 R2 Benchmark
Microsoft Windows Server 2016cpe:/o:microsoft:windows_server_2016CIS Microsoft Windows Server 2016 Benchmark
Microsoft Windows Server 2019cpe:/o:microsoft:windows_server_2019CIS Microsoft Windows Server 2019 Benchmark
Microsoft Windows Server 2022cpe:/o:microsoft:windows_server:2022CIS Microsoft Windows Server 2022 Benchmark
Microsoft Windows Server 2025cpe:/o:microsoft:windows_server:2025CIS Microsoft Windows Server 2025 Benchmark
Oracle Linuxcpe:/o:oracle:linux:6, …CIS Oracle Linux 6 Benchmark
CIS Oracle Linux 7 Benchmark
CIS Oracle Linux 8 Benchmark
CIS Oracle Linux 9 Benchmark
Red Hat Enterprise Linuxcpe:/o:redhat:redhat_enterprise_linux:6, …CIS Red Hat Enterprise Linux 6 Benchmark
CIS Red Hat Enterprise Linux 7 Benchmark
CIS Red Hat Enterprise Linux 8 Benchmark
CIS Red Hat Enterprise Linux 9 Benchmark
Rocky Linuxcpe:/o:rocky:rocky_linux:8, …CIS Rocky Linux 8 Benchmark
CIS Rocky Linux 9 Benchmark
SUSE Linux Enterprise Server
OpenSUSE Leap
cpe:/o:suse:suse_linux_enterprise_server:12, …CIS SUSE Linux Enterprise 12 Benchmark
CIS SUSE Linux Enterprise 15 Benchmark
Ubuntucpe:/o:canonical:ubuntu_linux:16.04, …CIS Ubuntu Linux 14.04 LTS Benchmark
CIS Ubuntu Linux 16.04 LTS Benchmark
CIS Ubuntu Linux 18.04 LTS Benchmark
CIS Ubuntu Linux 20.04 LTS Benchmark
CIS Ubuntu Linux 22.04 LTS Benchmark
CIS Ubuntu Linux 24.04 LTS Benchmark
Kernel Linuxcpe:/o:linux:linux_kernel:*CIS Docker Benchmark

Estándares soportados

Las versiones de los componentes SCAP soportadas, con su espacio de nombres XML, son:

Los espacios de nombres XML no reconocidos se ignorarán. Un intento de importación de benchmark con una versión DataStream o XCCDF desconocida acabará con un error de archivo XCCDF no encontrado.

Enlaces útiles

Glosario

SCAP

La norma SCAP (Security Content Automation Protocol) incluye varias normas de componentes diseñadas para trabajar juntas. Para cada componente, la norma define un formato de documento con la sintaxis y la semántica de las estructuras de datos internas. Todas las normas de componentes están basadas en XML y cada norma de componente define su propio espacio de nombres XML.

XCCDF

XCCDF (Extensible Configuration Checklist Description Format) es el lenguaje utilizado para describir listas de control de seguridad. El lenguaje está diseñado para soportar el intercambio de información, la generación de documentos, la adaptación organizacional y situacional, los tests de cumplimiento automatizados y la puntuación de cumplimiento.

El lenguaje no contiene ningún comando para realizar el análisis y es principalmente descriptivo. Otros documentos de componentes (OVAL y scripts SCE) pueden referenciarse desde el documento XCCDF.

OVAL

OVAL (Open Vulnerability and Assessment Language) es un lenguaje declarativo para realizar afirmaciones lógicas sobre el estado del sistema. Se utiliza para describir vulnerabilidades de seguridad o la configuración deseada de los sistemas. Las definiciones OVAL definen un estado seguro de ciertos objetos en un equipo, por ejemplo archivos de configuración, permisos de archivos, procesos. Las definiciones OVAL se evalúan mediante un intérprete llamado escáner.

Los conceptos principales del documento OVAL son las definiciones, las pruebas, los objetos y los estados. Cada definición especifica las pruebas que deben cumplirse. Una prueba vincula un objeto y un estado. La prueba tendrá éxito cuando un recurso designado por un objeto satisfaga los requisitos en un estado correspondiente.

SCE

SCE (Script Check Engine) es una extensión que permite ejecutar scripts (escritos, por ejemplo, en Bash, PowerShell, …) desde la política SCAP. Le permite hacer que sus scripts sean interoperables con su política de seguridad.

DataStream

DataStream es un formato que permite agrupar en un único archivo XML los diferentes componentes SCAP del benchmark, en nuestro caso: XCCDF y OVAL.

CPE


Volver arriba

English Français Español