Verificar la conformitat d’un sistema Linux amb la guia ANSSI BP-028

Cyberwatch avalua la conformitat dels sistemes Linux amb la guia ANSSI-BP-028 v2.0 «Configuration recommendations of a GNU/Linux system», publicada per l’ANSSI.

El benchmark ANSSI_BP028_Linux cobreix les 80 recomanacions de la guia, repartides en 176 regles de conformitat: 164 es verifiquen automàticament i 12 s’han de verificar manualment. S’aplica a totes les distribucions Linux compatibles amb el mòdul de conformitat: Debian, Ubuntu, Red Hat Enterprise Linux i les seves derivades (AlmaLinux, Rocky Linux, Oracle Linux, CentOS), Fedora, SUSE Linux Enterprise Server i openSUSE Leap, Amazon Linux i Photon OS.

Marcs de conformitat

La guia classifica cada recomanació en un dels seus quatre nivells: Mínim, Intermedi, Reforçat i Alt (vegeu la interpretació dels nivells). Aquests nivells són acumulatius: les recomanacions s’apliquen des del nivell mínim fins al nivell objectiu. Per tant, cada marc de conformitat de nivell conté les regles d’aquest nivell i dels nivells inferiors:

Marc de conformitatNivell objectiuRecomanacionsRegles verificades automàticament
ANSSI_BP028_level_1Mínim1119
ANSSI_BP028_level_2Intermedi40110
ANSSI_BP028_level_3Reforçat58140
ANSSI_BP028_level_4Alt80164

El marc de conformitat ANSSI_BP028 conté totes les regles del benchmark, com ANSSI_BP028_level_4.

Per avaluar un actiu, afegiu-li el marc de conformitat del nivell objectiu, i només aquest: afegir-ne diversos nivells no afegeix cap regla. Aquests marcs de conformitat són presents per defecte a Cyberwatch, però no s’assignen a cap actiu. Per assignar-los automàticament, per exemple a tots els servidors Linux, utilitzeu regles d’actius.

Organització de les regles

  • Cada regla té una referència de la forma ANSSI-BP028-R<n>-<nnn>, on R<n> és el número de la recomanació a la guia, per exemple ANSSI-BP028-R12-001.
  • La categoria de la regla reprèn el número i el títol de la recomanació, per exemple «R12 – Paramétrer les options de configuration du réseau IPv4»: permet filtrar les regles per recomanació.
  • Una recomanació té una regla per paràmetre que cal verificar (un paràmetre del nucli, una opció de muntatge, una directiva sudo), de manera que cada paràmetre es pugui corregir o ignorar per separat. Les recomanacions R15 a R27, que tracten sobre les opcions de compilació del nucli, són l’excepció: una regla per recomanació.
  • El nivell d’una regla sempre és el de la seva recomanació a la guia.
  • El títol, la descripció, l’objectiu i la remediació de les regles estan redactats en anglès. La descripció precisa què verifica la regla, on ho llegeix, i el comportament per defecte de les distribucions.

Tipus de regles

  • Regles automatitzades: la regla verifica el que demana la guia.
  • Controls parcials: quan una recomanació és en part organitzativa, la regla en verifica la part tècnica. La seva descripció comença amb el que es verifica i el que no («This rule checks… It does not check…»). Per exemple, la regla de R80 verifica que un tallafoc local està actiu, però no que cada servei només escolti a les interfícies de xarxa necessàries.
  • Regles manuals: la recomanació no es pot verificar al sistema. La regla no s’avalua en cap actiu i no pertany a cap marc de conformitat. Es llista amb la menció «Regla manual» a la pàgina del benchmark ANSSI_BP028_Linux, a Administració > Benchmarks.

Les recomanacions que cal verificar manualment són les següents:

RecomanacióNivell
R2 – Configurer le BIOS/UEFIIntermedi
R4 – Remplacer les clés préchargéesAlt
R51 – Changer les secrets et droits d’accès dès l’installationReforçat
R58 – N’installer que les paquets strictement nécessairesMínim
R60 – Utiliser des dépôts de paquets durcisReforçat
R64 – Configurer les privilèges des servicesReforçat
R65 – Cloisonner les servicesReforçat
R66 – Durcir les composants de cloisonnementAlt
R70 – Séparer les comptes système et d’administrateur de l’annuaireIntermedi
R77 – Protéger la base de données des scellésAlt
R78 – Cloisonner les services réseauReforçat
R79 – Durcir et surveiller les services exposésIntermedi

Llegir els resultats

Les regles s’executen amb els drets d’administrador. Per tant, un actiu analitzat sense agent ha de disposar d’un compte d’escaneig amb els drets sudo (vegeu els requisits del compte d’escaneig).

Els estats de les regles són els mateixos que per als altres marcs de conformitat:

  • Èxit: l’actiu és conforme a la regla
  • Fallada: l’actiu no és conforme a la regla
  • Omesa: l’actiu s’ha analitzat sense drets sudo
  • No aplicable: la regla no s’aplica a l’actiu, per exemple una regla de particionament en un contenidor, una regla sudo sense sudo instal·lat, o una regla d’arrencada segura en una arquitectura sense UEFI; la sortida comença llavors amb N/A: seguit del motiu
  • Anomalia: el control no s’ha pogut executar

La sortida de cada regla, visible a la pestanya «Conformitat» de l’actiu, detalla el que s’ha constatat. Per als scripts propis del marc de conformitat, la primera línia dona el veredicte (PASSED, FAILED o N/A: <raison>), seguit del valor esperat i del valor constatat.

Les regles R53-001, R54-001, R54-002, R56-001 i R57-001 recorren els sistemes de fitxers locals. Cadascuna s’atura al cap de 5 minuts: llavors està en fallada, i la seva sortida indica el sistema de fitxers on s’ha aturat el recorregut.

Requisits del compte d’escaneig sense agent

Sense agent, Cyberwatch eleva els seus drets amb sudo -n, sense terminal, i després executa un intèrpret d’ordres que executa altres programes. El compte d’escaneig ha de tenir els drets sudo descrits a Informació tècnica sobre les connexions sense agent per als sistemes Linux, per exemple cyberwatch ALL=(ALL) NOPASSWD:ALL.

Diverses recomanacions de la guia restringeixen sudo o l’accés al sistema, i poden bloquejar aquest compte. Quan les apliqueu, preveieu les excepcions següents, substituint cyberwatch pel nom del compte d’escaneig:

  • R38 (grup dedicat a sudo): afegiu el compte d’escaneig al grup autoritzat a executar sudo; si no, ja no pot elevar els seus drets:

    usermod -aG sudogrp cyberwatch
    
  • R39 (directives de configuració de sudo): les directives noexec i requiretty impedeixen l’anàlisi. Afegiu per al compte d’escaneig les dues sobreescriptures següents, en dues línies diferents:

    Defaults:cyberwatch !noexec
    Defaults:cyberwatch !requiretty
    

    sudo-rs, el sudo per defecte a partir d’Ubuntu 25.10, ignora qualsevol línia Defaults que contingui un paràmetre que no coneix: una línia única Defaults:cyberwatch !noexec,!requiretty s’ignoraria, !noexec inclòs. sudo-rs no coneix requiretty: en un actiu en què és l’únic sudo instal·lat, afegiu només la línia !noexec, perquè el seu visudo rebutja la segona. Les regles de R39 llisten aquestes sobreescriptures a la seva sortida, sense comptar-les com a desviacions.

  • R40 a R44 (especificacions de sudo): les regles ignoren les especificacions la llista d’usuaris de les quals és exactament el compte que executa l’anàlisi. Per tant, la línia cyberwatch ALL=(ALL) NOPASSWD:ALL no les fa fallar.
  • R47 (confinament SELinux dels usuaris): un usuari SELinux user_u no pot utilitzar sudo. Abans d’associar els usuaris per defecte a user_u, associeu el compte d’escaneig a unconfined_u:

    semanage login -a -s unconfined_u cyberwatch
    
  • R80 (superfície d’atac dels serveis de xarxa): autoritzeu SSH abans d’activar el tallafoc, per no interrompre les anàlisis.

L’agent de Cyberwatch, que s’executa per defecte com a root, no es veu afectat per aquestes excepcions.

Recomanacions d’alt impacte

Algunes recomanacions no es corregeixen amb un simple canvi de configuració, o poden dificultar l’explotació. Abans d’aplicar-les, consulteu la guia i la remediació de cada regla:

  • R15 a R27 (nivell Alt): opcions de compilació del nucli. Els nuclis de les distribucions no activen totes aquestes opcions: l’única correcció és recompilar el nucli o canviar-lo.
  • R10 (nivell Reforçat): amb kernel.modules_disabled = 1, el nucli rebutja qualsevol càrrega de mòdul fins al reinici següent, fins i tot per a root. Els mòduls necessaris (controladors d’emmagatzematge, de xarxa o USB, sistemes de fitxers) s’han de carregar en l’arrencada.
  • R28 (nivell Intermedi): particionament tipus. Crear una partició després de la instal·lació requereix desplaçar dades, o fins i tot reinstal·lar el sistema.
  • R39 (nivell Intermedi): la directiva noexec fa fallar les ordres sudo que executen altres programes (gestors de paquets, scripts, reinicis de serveis) mentre no s’autoritzin una per una amb l’etiqueta EXEC.

Quan s’accepta una desviació, la regla es pot ignorar, amb un comentari que justifiqui aquesta decisió.

Diferències amb els altres marcs de conformitat

Security_Best_Practices

El marc de conformitat Security_Best_Practices és una base de bones pràctiques que s’assigna per defecte als servidors i a les estacions de treball. Per a Linux, té 45 regles, una part de les quals reprèn recomanacions de la guia BP-028, però no implementa la guia: els seus nivells es trien segons l’esforç de correcció esperat, i no segons el nivell de la recomanació.

Els marcs de conformitat ANSSI_BP028 cobreixen tota la guia, amb el nivell de cada recomanació. Tots dos es poden assignar al mateix actiu: quan una regla ANSSI reprèn el control d’una regla Security_Best_Practices, donen el mateix resultat.

Importació d’un DataStream ComplianceAsCode

El projecte ComplianceAsCode (paquet scap-security-guide) publica perfils ANSSI BP-028 als seus DataStreams. Aquests es poden importar com a benchmarks, però Cyberwatch no n’aplica els perfils: s’importen totes les regles del DataStream, sigui quin sigui el perfil, i només una part dels seus controls és compatible. ComplianceAsCode tampoc no ofereix cap perfil ANSSI per a Ubuntu.

Per avaluar un sistema Linux respecte a la guia, Cyberwatch recomana els marcs de conformitat ANSSI_BP028.