Vai al contenuto principale
I benchmark CIS sono guide di configurazione sicure basate sul consenso utilizzate per rafforzare sistemi, software e reti: una linea di base riconosciuta nel settore per ridurre la superficie di attacco. Usali con Primo e FleetDM per valutare la conformità e applicare le impostazioni nella tua flotta macOS e Windows.

Supporto del sistema operativo

macOSWindowsLinuxiOS / iPadOSAndroid
✅ macOS 13+✅ Windows 10+ Aziendale

Informazioni sui benchmark CIS

I benchmark CIS sono sviluppati dalla comunità attraverso un processo di consenso aperto (CIS WorkBench) con governo, industria e mondo accademico. Esistono oltre 100 benchmark in oltre 25 famiglie di fornitori. Ogni benchmark viene fornito con due profili:
  • Livello 1: impostazioni prudenti e a basso impatto che forniscono un chiaro valore di sicurezza.
  • Livello 2: impostazioni più potenti e di difesa approfondita che potrebbero influire sull’usabilità/prestazioni.

Come aggiungere benchmark CIS

Esegui questo script per generare il file YAML delle query delle policy CIS per la tua istanza FleetDM:
#!/bin/bash
#shellcheck disable=SC2207

# convert.cis.policy.queries.yml @2024 Fleet Device Management

# CIS queries as written here:
#    https://github.com/fleetdm/fleet/blob/main/ee/cis/macos-14/cis-policy-queries.yml
# must be converted to be uploaded via Fleet GitOps.
#
# This script takes as input the YAML from the file linked above & creates a new YAML array compatible with the "Separate file" format documented here:
#    https://fleetdm.com/docs/configuration/yaml-files#separate-file

# get CIS queries raw file from Fleet repo
cisfile='https://raw.githubusercontent.com/fleetdm/fleet/refs/heads/main/ee/cis/macos-14/cis-policy-queries.yml'
cispath='/private/tmp/cis.yml'

/usr/bin/curl -X GET -LSs "$cisfile" -o "$cispath"

# create CIS benchmark array
IFS=$'\n'
cisarry=($(/opt/homebrew/bin/yq '.spec.name' "$cispath" | /usr/bin/grep -v '\-\-\-'))

for i in "${cisarry[@]}"
do
    cisname="$(/opt/homebrew/bin/yq ".[] | select(.name == \"$i\") | (del(.platforms)) | (del(.purpose)) | (del(.tags)) | (del(.contributors))" "$cispath" | /opt/homebrew/bin/yq eval '.name')"
    cispfrm="$(/opt/homebrew/bin/yq ".[] | select(.name == \"$i\") | (del(.platforms)) | (del(.purpose)) | (del(.tags)) | (del(.contributors))" "$cispath" | /opt/homebrew/bin/yq eval '.platform')"
    cisdscr="$(/opt/homebrew/bin/yq ".[] | select(.name == \"$i\") | (del(.platforms)) | (del(.purpose)) | (del(.tags)) | (del(.contributors))" "$cispath" | /opt/homebrew/bin/yq eval --unwrapScalar=true '.description')"
    cisrslt="$(/opt/homebrew/bin/yq ".[] | select(.name == \"$i\") | (del(.platforms)) | (del(.purpose)) | (del(.tags)) | (del(.contributors))" "$cispath" | /opt/homebrew/bin/yq eval --unwrapScalar=true '.resolution')"
    cisqrry="$(/opt/homebrew/bin/yq ".[] | select(.name == \"$i\") | (del(.platforms)) | (del(.purpose)) | (del(.tags)) | (del(.contributors))" "$cispath" | /opt/homebrew/bin/yq eval --unwrapScalar=true '.query')"

    printf "name: %s\nplatform: %s\ndescription: |\n%s\nresolution: |\n%s\nquery: |\n%s\n" "$cisname" "$cispfrm" "$cisdscr" "$cisrslt" "$cisqrry" | /usr/bin/sed 's/^/    /g;s/^[[:space:]]*name:/- name:/;s/^[[:space:]]*platform:/  platform:/;s/^[[:space:]]*description:/  description:/;s/^[[:space:]]*resolution:/  resolution:/;s/^[[:space:]]*query:/  query:/'

done
Quindi carica le policy sulla tua istanza FleetDM:
fleetctl apply --policies-team "Workstations" -f cis-policy-queries.yml

Dove si adattano gli utensili MDM (Fleet/Primo)

Fleet espone query di policy per valutare la conformità CIS su macOS 13+ e Windows 10+ (Enterprise). I criteri non risolvono: hai comunque bisogno di profili MDM e/o script per applicare le impostazioni e puoi utilizzare le automazioni per guidare i flussi di lavoro di correzione. Alcuni controlli richiedono la registrazione a MDM e autorizzazioni specifiche dell’agente.

Su macOS

Crittografia del disco

Questa policy è basata su un modello Primo e funziona sia per i dispositivi macOS che per quelli Windows.
  1. Su Primo, vai su MDM > Profili
  2. Seleziona tutti i dispositivi
  3. Clicca sulla carta: Crittografia
  4. Fare clic su “Attiva impostazione”
  5. Infine, conferma. Schermata: Crittografia disco

Politica relativa alla password e blocco automatico dello schermo

Brevi timeout di blocco e password complesse aiutano a prevenire attacchi come lo spallamento, l’uso improprio da parte di personale interno e l’accesso opportunistico su laptop non presidiati. Questa policy è basata su un modello Primo e funziona con i dispositivi iOS, macOS e Windows.
  1. Su Primo, vai su MDM > Profili
  2. Seleziona tutti i dispositivi
  3. Clicca sulla scheda: Password e blocco schermo
  4. Fare clic su “Attiva impostazione”
  5. Passare alle schede Mac, Windows e iOS per configurarle ciascuna.
  6. Infine, conferma.

Firewall integrato

Screenshot: Criteri password e blocco schermo automatico Il traffico in entrata negato per impostazione predefinita riduce la possibilità che un servizio dormiente diventi un punto di ingresso della rete, in particolare sul Wi-Fi pubblico. Questa policy è basata su un modello Primo e funziona sia per i dispositivi macOS che per quelli Windows.
  1. Su Primo, vai su MDM > Profili
  2. Seleziona tutti i dispositivi
  3. Clicca sulla scheda: Firewall
  4. Fare clic su “attiva impostazione”
  5. Infine, conferma. Schermata: Firewall integrato

Modalità invisibile del firewall

Nascondersi dall’ICMP e da sonde simili rende i dispositivi più difficili da enumerare nelle scansioni e rallenta la propagazione dei worm. Questo criterio non è modellato con Primo e deve essere configurato come impostazione del profilo personalizzato.
  1. Su Primo, vai su MDM > Profili
  2. Seleziona tutti i dispositivi
  3. Fare clic sulla scheda: Aggiungi un’impostazione MDM personalizzata
  4. Dagli un nome (ad esempio Block ICMP) e una descrizione (ad esempio la descrizione sopra)
  5. Per macOS, carica il seguente mobileconfig
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>PayloadType</key>
        <string>Configuration</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadIdentifier</key>
        <string>com.getprimo.cis.6EC2A11D-313F-410F-B2FA-80F1D726624A</string>
        <key>PayloadUUID</key>
        <string>AE317001-B5E0-4F78-B971-954506775306</string>
        <key>PayloadDisplayName</key>
        <string>Firewall Stealth Mode</string>
        <key>PayloadRemovalDisallowed</key>
        <true/>
        <key>PayloadContent</key>
        <array>
            <dict>
                <key>PayloadType</key>
                <string>com.apple.security.firewall</string>
                <key>PayloadVersion</key>
                <integer>1</integer>
                <key>PayloadIdentifier</key>
                <string>com.getprimo.cis.stealth</string>
                <key>PayloadUUID</key>
                <string>B852FF89-DBE2-4F85-BE9C-20D180F5C859</string>
                <key>EnableStealthMode</key>
                <true/>
            </dict>
        </array>
    </dict>
</plist>
  1. Infine, conferma.

Su Windows

Crittografia del disco

Questa policy è basata su un modello Primo e funziona sia per i dispositivi macOS che per quelli Windows. Segui gli stessi passaggi della sezione Crittografia disco macOS sopra: la scheda Crittografia nei profili si applica a entrambe le piattaforme.

Politica relativa alla password e blocco automatico dello schermo

Questa policy è basata su un modello Primo e funziona con i dispositivi iOS, macOS e Windows. Seguire gli stessi passaggi della sezione Politica password macOS sopra. Assicurati di configurare la scheda Windows separatamente.

Firewall integrato

Questa policy è basata su un modello Primo e funziona sia per i dispositivi macOS che per quelli Windows. Segui gli stessi passaggi della sezione macOS Firewall integrato sopra: la scheda Firewall nei profili si applica a entrambe le piattaforme.