heygrc
ISO 27001 A.8.9 nel codice

La baseline che nessuno ha aggiornato.

ISO 27001:2022 A.8.9 (gestione della configurazione) richiede che le configurazioni di sicurezza per hardware, software, servizi e reti siano stabilite, documentate, implementate, monitorate e revisionate, e che ciò che viene effettivamente eseguito corrisponda a tale baseline. In pratica, la baseline di solito risiede nel codice: un manifesto, modulo o template condiviso da cui ogni servizio o risorsa dovrebbe partire. Il controllo si indebolisce quando la configurazione distribuita si discosta da tale baseline senza autorizzazione, documentazione o monitoraggio, non quando un'eccezione revisionata viene apportata deliberatamente.

How it shows up in a diff

The shapes the same control failure takes.

A.8.9 si indebolisce quando la configurazione in esecuzione e la baseline documentata non coincidono. Le situazioni ricorrenti:

  • Un'impostazione di hardening predefinita viene sovrascritta localmente

    Un manifesto di un servizio imposta un parametro rilevante per la sicurezza in contrasto con la baseline condivisa per sbloccare qualcosa di specifico, invece di risolvere il bisogno sottostante o aggiornare la baseline.

  • Un template copiato si discosta silenziosamente

    Un nuovo servizio parte dal template di configurazione condiviso, viene personalizzato ad hoc e i due si discostano senza che nulla tracci più la loro divergenza.

  • Un'eccezione viene distribuita senza scadenza

    Una sovrascrittura occasionale (un'impostazione rilassata, una flag di debug lasciata attiva) dovrebbe essere temporanea ma non ha una data di revisione, quindi rimane attiva.

  • Una risorsa attiva viene modificata manualmente

    Qualcuno modifica direttamente una risorsa in esecuzione (un clic sulla console, un comando CLI ad hoc) invece che tramite la configurazione versionata che dovrebbe essere la fonte di verità, quindi le due non coincidono più.

  • Un nuovo tipo di risorsa viene distribuito senza baseline

    Un nuovo tipo di risorsa (una coda, un motore di database) viene introdotto senza nulla che ne definisca la configurazione sicura, quindi ogni istanza viene configurata ad hoc.

Worked example

Un'impostazione di hardening predefinita sovrascritta per sbloccare una distribuzione.

Il manifesto base Kubernetes condiviso dell'organizzazione esegue ogni servizio come non-root con un filesystem root in sola lettura, la baseline documentata. Un nuovo worker deve scrivere un file temporaneo all'avvio e l'esecuzione come root è il modo più veloce per sbloccare la distribuzione, quindi il suo manifesto sovrascrive direttamente la baseline invece di montare un volume scrivibile o aggiornare la base condivisa. Il servizio ora viene eseguito con privilegi superiori a quelli consentiti dalla baseline documentata e, poiché la baseline stessa non è stata modificata, nessuno che la revisiona noterebbe la divergenza.

k8s/worker/deployment.yaml+1 -1
  containers:  - name: worker-    securityContext:-      runAsNonRoot: true+    securityContext:+      runAsNonRoot: false # needs to write a temp file at startup
heygrcISO 27001:2022 A.8.9

Questo esclude un servizio dalla baseline condivisa di hardening (`runAsNonRoot: true`) direttamente nel suo manifesto, invece che tramite la baseline revisionata. A.8.9 richiede che la configurazione distribuita corrisponda a quella stabilita e documentata, e questa si discosta senza che nessuno modifichi la baseline stessa. Risolvi il percorso di scrittura effettivo (monta un volume scrivibile per il file temporaneo) o documenta e approva un'eccezione temporanea tramite il processo di gestione della configurazione, invece di escludere un servizio localmente.

What an auditor does with this

La configurazione viene verificata rispetto a ciò che viene effettivamente eseguito, non solo al documento.

Un auditor verifica se la configurazione in esecuzione corrisponde alla baseline sicura documentata, non solo se il documento della baseline esiste. Un servizio che ha silenziosamente escluso un'impostazione di hardening predefinita, una risorsa modificata manualmente che si è discostata dalla sua configurazione tracciata o un nuovo tipo di risorsa senza baseline sono il tipo di discrepanze che diventano un riscontro. Di solito si risale a una modifica che ha preso una scorciatoia locale invece di aggiornare o eccezionare la baseline.

What this is, and is not

Una revisione, non la tua baseline di configurazione.

heygrc segnalerà le modifiche che interessano A.8.9 e citerà il controllo in modo che la correzione avvenga nella pull request. Non definisce la tua baseline né gestisce la tua infrastruttura. Rileva il momento in cui una modifica si discosta silenziosamente dalla configurazione documentata, al livello del diff.