oscap

Siehe auch

oscap ist das „Open Security Content Automation Protocol“ (OpenSCAP) Kommandozeilen-Tool.

Konfigurationsanweisungen werden in OVAL spezifiziert und können aus einer XCCDF-formatierten Checkliste aufgerufen werden. Diese finden sich für RHEL im Red Har OVAL Repository kategorisiert nach:

Für CentOS (und viele andere) finden sich OVALs hier: https://oval.cisecurity.org/repository/download

Installation und Konfiguration

Tipp

Auf einer Fedora-Workstation macht sich dnf -y install scap-workbench (GTK) gut.

# just the openscap scanner, neeeded for example for *scap-workbench* via SSH
yum -y install openscap-scanner

# this installs package "openscap-scanner" including SCAP definiton files, documentation and remediation tools
yum -y install scap-security-guide

Profile

Unter /usr/share/xml/scap/ssg/content finden sich die verfügbaren Security-Profile. Das Kommando listet die für die Evaluation zur Verfügung stehenden Profile auf:

oscap info /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml

Auditing / Scanning

Gegen alle bekannten Security Vulnerabilities prüfen (RHSA, CVE) - das dauert einige Minuten:

wget http://www.redhat.com/security/data/oval/com.redhat.rhsa-all.xml
oscap --verbose INFO oval eval \
    --report rhsa-all-report.html \
    --results rhsa-all-report.xml \
    com.redhat.rhsa-all.xml

Gegen Schwachstellen aus dem Jahr 2017 prüfen:

wget https://www.redhat.com/security/data/oval/com.redhat.rhsa-2017.xml
oscap --verbose INFO oval eval \
    --report rhsa-2017-report-2017.html \
    --results rhsa-2017-report-2017.xml \
    com.redhat.rhsa-all.xml

System gegen eine ganz bestimmte Schwachstelle prüfen:

wget http://www.redhat.com/security/data/oval/com.redhat.rhsa-20130254.xml
oscap --verbose INFO oval eval \
    --report rhsa-20130254-report.html \
    --results rhsa-20130254-report.xml \
    com.redhat.rhsa-20130254.xml

System auditieren (SSG XCCDF Benchmark):

oscap --verbose INFO xccdf eval \
    --fetch-remote-resources \
    --profile xccdf_org.ssgproject.content_profile_rht-ccp \
    --report ssg-rhel8-report.html \
    --results ssg-rhel8-xccdf-result.xml \
    /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml

System auditieren (SSG USGCB):

oscap --verbose INFO xccdf eval \
    --cpe usgcb-rhel5desktop-cpe-dictionary.xml \
    --fetch-remote-resources \
    --oval-results \
    --profile united_states_government_configuration_baseline \
    --report usgcb-rhel5desktop.report.html \
    --results usgcb-rhel5desktop-xccdf.xml.result.xml \
    /usr/share/xml/scap/ssg/content/usgcb-rhel5desktop-xccdf.xml

RHEL8-System gegen CIS auditieren (gibt es allerdings Stand 2020-11 noch nicht):

oscap --verbose INFO xccdf eval \
    --datastream-id scap_org.open-scap_datastream_from_xccdf_ssg-rhel8-xccdf-1.2.xml \
    --fetch-remote-resources \
    --oval-results \
    --profile xccdf_org.ssgproject.content_profile_cis \
    --report cis-rhel8.html \
    --results cis-rhel8.xml \
    --results-arf cis-rhel8.arf \
    --xccdf-id scap_org.open-scap_cref_ssg-rhel8-xccdf-1.2.xml \
    /usr/share/xml/scap/ssg/content/ssg-rhel8-xccdf.xml

Remediation-Skripte

Mit Tools und Kickstart-Dateien aus diesen Ordnern kann man den gewünschten Level erreichen:

  • Kickstart: /usr/share/scap-security-guide/kickstart

  • Bash: /usr/share/scap-security-guide/bash

  • Ansible: /usr/share/scap-security-guide/ansible

Alle dort abgelegten Skripte/Tools/Playbooks lassen sich auch dynamisch erzeugen. Vorher muss man prüfen, ob es ein solches Profil für die eigene Plattform gibt, anschliessend das System scannen und das Ansible-Playbook generieren:

oscap info \
    /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml

oscap xccdf eval \
    --profile ospp \
    --results ospp-results.xml
    /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml

oscap xccdf generate fix \
    --fix-type ansible \
    --output ospp-remediations.yml \
    ospp-results.xml

--fix-type muss dabei vom Typ bash, ansible, puppet oder anaconda sein.

Built on 2022-06-03