Benchmarks
Una anàlisi de conformitat compara el sistema objectiu amb una referència (el benchmark), que és un conjunt de regles de seguretat per avaluar la conformitat o la no conformitat del sistema.
Un benchmark es defineix amb la norma SCAP, que permet a les organitzacions automatitzar la manera com supervisen les vulnerabilitats i s’asseguren que compleixen les polítiques de seguretat.
Estructura d’un benchmark
Un benchmark inclou un fitxer XCCDF que descriu les regles de conformitat i les proves que permeten avaluar-les. Aquestes proves es poden escriure en format OVAL o SCE.
Cyberwatch admet dos formats de benchmark:
- un fitxer ZIP que conté com a mínim un fitxer XCCDF i, si escau, els altres fitxers (scripts SCE o OVAL) els camins relatius dels quals s’han declarat al fitxer XCCDF
- un fitxer en format DataStream
Exemple mínim de fitxer XCCDF
Exemple de fitxer XCCDF extret del benchmark del CIS per a Ubuntu Linux 22.04 LTS que defineix un benchmark amb una sola regla de conformitat:
<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>
Alguns elements que cal tenir en compte en aquest document:
- L’identificador del benchmark, definit per l’atribut
idde l’etiqueta<xccdf:Benchmark>, que serveix de referència per a Cyberwatch - La plataforma objectiu es defineix en format CPE amb l’atribut
idrefde l’etiqueta<xccdf:platform>. També es poden declarar una o diverses plataformes en una regla si se’n vol restringir l’aplicació - A la definició de la regla
<xccdf:Rule>, el contingut de l’etiqueta<xccdf:complex-check>permet llistar les proves que cal executar i els camins relatius per accedir als fitxers on es defineixen
En aquest exemple, l’única regla fa referència a una prova en format OVAL; per tant, el benchmark contindrà aquest fitxer XCCDF i el fitxer OVAL declarat. Es podrà distribuir en format ZIP o en format DataStream.
En canvi, si la regla fes referència a un script en format SCE, declarant per exemple:
<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 contindria el fitxer XCCDF i un directori sce amb l’script de shell ensure_no_exec_option.sh. Caldria comprimir-ho tot en format ZIP per poder afegir-ho a Cyberwatch, tal com es descriu a continuació.
L’estructura de fitxers dins del fitxer ZIP ha de respectar obligatòriament els camins relatius declarats al fitxer XCCDF.
Afegir un benchmark
- Aneu a Administració > Benchmarks
- Feu clic al botó «Afegeix»
- Seleccioneu el benchmark que voleu afegir, en format ZIP o DataStream
- Feu clic a «Importa»
Durant la importació, si l’identificador del benchmark ja existeix a Cyberwatch, el benchmark s’actualitza. En cas contrari, es crea un benchmark nou.
Només es poden importar benchmarks nous per a les plataformes compatibles amb el mòdul de gestió de la conformitat de Cyberwatch. Per tant, es pot importar un benchmark per a altres versions de sistemes operatius, com ara macOS o Ubuntu 12.04, però no un benchmark que permeti verificar la configuració d’un programari o d’un dispositiu de xarxa, per exemple.
Llista de plataformes compatibles
A la taula següent s’indiquen les plataformes compatibles i els benchmarks ja instal·lats:
| Sistemes operatius | CPE de la plataforma | Benchmarks instal·lats |
|---|---|---|
| AlmaLinux | cpe:/o:almalinux:almalinux:8, … | CIS Alma Linux OS 8 Benchmark CIS AlmaLinux OS 9 Benchmark |
| Amazon Linux 2 | cpe:/o:amazon:linux_2 | CIS Amazon Linux 2 Benchmark CIS Amazon Linux 2023 Benchmark |
| Apple macOS | cpe:/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 Linux | cpe:/o:centos:centos:6, … | CIS CentOS Linux 6 Benchmark CIS CentOS Linux 7 Benchmark |
| Debian | cpe:/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 Linux | cpe:/o:fedora:linux:28 | CIS Fedora 28 Family Linux Benchmark |
| Microsoft Windows 8 | cpe:/o:microsoft:windows_8 | CIS Microsoft Windows 8 Benchmark |
| Microsoft Windows 10 | cpe:/o:microsoft:windows_10 | CIS Microsoft Windows 10 Enterprise Benchmark CIS Microsoft Intune for Windows 10 Benchmark |
| Microsoft Windows 11 | cpe:/o:microsoft:windows_11 | CIS Microsoft Windows 11 Enterprise Benchmark CIS Microsoft Intune for Windows 11 Benchmark |
| Microsoft Windows Server 2008 | cpe:/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 2012 | cpe:/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 2016 | cpe:/o:microsoft:windows_server_2016 | CIS Microsoft Windows Server 2016 Benchmark |
| Microsoft Windows Server 2019 | cpe:/o:microsoft:windows_server_2019 | CIS Microsoft Windows Server 2019 Benchmark |
| Microsoft Windows Server 2022 | cpe:/o:microsoft:windows_server:2022 | CIS Microsoft Windows Server 2022 Benchmark |
| Microsoft Windows Server 2025 | cpe:/o:microsoft:windows_server:2025 | CIS Microsoft Windows Server 2025 Benchmark |
| Oracle Linux | cpe:/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 Linux | cpe:/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 Linux | cpe:/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 |
| Ubuntu | cpe:/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 CIS Ubuntu Linux 26.04 LTS Benchmark |
| Nucli Linux | cpe:/o:linux:linux_kernel:* | CIS Docker Benchmark |
Estàndards compatibles
Les versions dels components SCAP compatibles, amb el seu espai de noms XML, són:
Els espais de noms XML no reconeguts s’ignoren. Per tant, un intent d’importació d’un benchmark amb una versió de DataStream o XCCDF desconeguda acabarà amb un error de fitxer XCCDF no trobat.
Enllaços útils
Glossari
SCAP
La norma SCAP (Security Content Automation Protocol) inclou diverses normes de components dissenyades per funcionar conjuntament. Per a cada component, la norma defineix un format de document amb la sintaxi i la semàntica de les estructures de dades internes. Totes les normes de components es basen en XML i cada norma de component defineix el seu propi espai de noms XML.
XCCDF
XCCDF (Extensible Configuration Checklist Description Format) és el llenguatge que s’utilitza per descriure les llistes de control de seguretat. El llenguatge està dissenyat per admetre l’intercanvi d’informació, la generació de documents, l’adaptació a l’organització i a cada situació, les proves de conformitat automatitzades i la puntuació de la conformitat.
El llenguatge no conté cap ordre per fer l’anàlisi i és principalment descriptiu. Des del document XCCDF es pot fer referència a altres documents de components (OVAL i scripts SCE).
OVAL
OVAL (Open Vulnerability and Assessment Language) és un llenguatge declaratiu per fer afirmacions lògiques sobre l’estat del sistema. S’utilitza per descriure les vulnerabilitats de seguretat o la configuració desitjada dels sistemes. Les definicions OVAL defineixen un estat segur de determinats objectes d’un ordinador, per exemple els fitxers de configuració, els permisos dels fitxers o els processos. Les definicions OVAL s’avaluen amb un intèrpret anomenat escàner.
Els conceptes principals del document OVAL són les definicions, les proves, els objectes i els estats. Cada definició especifica les proves que s’han de satisfer. Una prova relaciona un objecte i un estat. La prova té èxit quan un recurs designat per un objecte determinat compleix els requisits d’un estat corresponent.
SCE
SCE (Script Check Engine) és una extensió que permet executar scripts (escrits, per exemple, en Bash, PowerShell, …) a partir de la política SCAP. Us permet fer que els vostres scripts siguin interoperables amb la vostra política de seguretat.
DataStream
DataStream és un format que permet agrupar en un sol fitxer XML els diferents components SCAP del benchmark; en el nostre cas, XCCDF i OVAL.
CPE
El CPE (Common Platform Enumeration) serveix per identificar les plataformes i els sistemes informàtics amb noms definits sense ambigüitat.