OpenSCAP (Foreman)

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Audit de conformité centralisé
Plugin foreman_openscap + smart proxy
Client foreman_scap_client
Voir aussi OpenSCAP · Foreman

Le plugin foreman_openscap intègre OpenSCAP à Foreman/Katello : il centralise la collecte des rapports de conformité SCAP des hôtes gérés, associe des policies (profil + contenu SSG + planification) aux machines et présente les résultats dans l'interface Foreman. Chaque hôte exécute périodiquement un scan oscap et remonte son rapport ARF au smart proxy, qui le transmet au serveur Foreman.

Terminologie SCAP

ARF   Asset Reporting Format - format XML de restitution des résultats
XCCDF eXtensible Configuration Checklist Description Format - checklists
OVAL  Open Vulnerability and Assessment Language - état système
CPE   Common Platform Enumeration - applicabilité des contrôles
CVSS  Common Vulnerability Scoring System - criticité d'une vulnérabilité
CCE   Common Configuration Enumeration - mapping STIG / NIST 800-53
CCI   Control Correlation Identifiers - mapping NIST 800-53 / SRG
STIG  Security Technical Implementation Guide
SRG   Security Requirements Guide

Installation côté smart proxy

dnf install -y rubygem-smart_proxy_openscap scap-security-guide

# Activer le module dans le smart proxy
cp /etc/foreman-proxy/settings.d/openscap.yml{.example,}

Contenu type de /etc/foreman-proxy/settings.d/openscap.yml :

:enabled: true
# Journal du script de transfert
:openscap_send_log_file: /var/log/foreman-proxy/openscap-send.log
# Répertoire de spool des audits avant transfert vers Foreman
:spooldir: /var/spool/foreman-proxy/openscap
# Cache local des contenus SCAP (évite de les redemander à Foreman)
:contentdir: /var/lib/openscap/content
# Répertoire des rapports ARF
:reportsdir: /usr/share/foreman-proxy/openscap/content
systemctl restart foreman-proxy

Installation côté serveur Foreman

dnf install -y tfm-rubygem-foreman_openscap scap-security-guide openscap-scanner

# Vérifier les data streams SSG disponibles
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml

Renseigner l'URL du serveur pour le smart proxy dans /etc/foreman-proxy/settings.yml :

:foreman_url: https://foreman.exemple.tld

Une policy Foreman associe ensuite un contenu SCAP (par exemple /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml), un profil et une planification aux hôtes ou groupes d'hôtes concernés.

Client

# Lancer un scan et remonter le rapport (id = identifiant de la policy dans Foreman)
foreman_scap_client <policy_id>

# Forcer l'envoi des rapports en attente sur le smart proxy
smart-proxy-openscap-send

Fichier de configuration client /etc/foreman_scap_client/config.yaml (géré par Puppet) :

:server: 'foreman-proxy.exemple.tld'
:port: 9090
# Authentification mutuelle TLS (certificats du consommateur / subscription-manager)
:ca_file: '/etc/rhsm/ca/katello-server-ca.pem'
:host_certificate: '/etc/pki/consumer/cert.pem'
:host_private_key: '/etc/pki/consumer/key.pem'
# policy (la clé est l'identifiant de la policy dans Foreman)
6:
  :profile: 'xccdf_org.ssgproject.content_profile_pci-dss'
  :content_path: '/var/lib/openscap/content/ssg-rhel9-ds.xml'
  :download_path: '/compliance/policies/6/content'
Note : Si les rapports n'apparaissent pas côté serveur, vérifier les droits du cache de contenu : chown -R foreman-proxy:foreman /var/lib/openscap/content/.

Évaluation manuelle avec oscap

# Lister les profils du contenu
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml

# Évaluer un profil et produire un rapport HTML
oscap xccdf eval \
  --profile xccdf_org.ssgproject.content_profile_pci-dss \
  --results results.xml --report report.html \
  /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml

Vérifier la validité d'un data stream :

oscap ds sds-validate /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml

Voir aussi

  • OpenSCAP — évaluation SCAP autonome en ligne de commande
  • Foreman — gestion et provisioning centralisés