Compliance as code è l'idea che un obbligo di compliance debba essere espresso e verificato dove il sistema risiede effettivamente, cioè nel repository e nella pipeline, piuttosto che solo in un documento di policy che un revisore esamina una volta all'anno. Prende spunto dall'approccio che ha funzionato per testing e infrastruttura: trasformare qualcosa che era manuale e periodico in qualcosa di definito e continuo.
Le tre cose che richiede realmente
Prima di tutto, l'obbligo deve essere definito a un livello di granularità verificabile. "Migliorare la nostra postura di sicurezza" non è verificabile; "una modifica di ruolo privilegiato deve essere registrata, secondo ISO 27001:2022 A.8.15" sì. Seconda cosa, il controllo deve essere eseguito dove avvengono le modifiche, cioè nella pull request, non in uno strumento separato che nessuno usa. Terza cosa, quando segnalerà qualcosa, deve indicare quale controllo e perché, in modo che l'ingegnere possa agire senza diventare un esperto di compliance.
La maggior parte dei team ha già il primo ingrediente nei propri framework e il secondo nella CI. Ciò che di solito manca è lo strato di traduzione che collega una modifica concreta del codice al controllo specifico che interessa.
Perché il diff è l'unità giusta
Un controllo non si degrada secondo un calendario. Si degrada nel momento in cui qualcuno allarga un ruolo, rimuove un'impostazione di crittografia o elimina una riga di log. Ognuna di queste è un diff. Se verifichi la compliance al diff, rilevi il degrado nel momento in cui viene introdotto, mentre l'autore ha ancora il contesto per correggerlo a basso costo.
Questo è lo stesso motivo per cui i test vengono eseguiti ad ogni modifica piuttosto che una volta al trimestre: il costo di una regressione cresce con il tempo tra l'introduzione e il rilevamento.
Dove si inserisce heygrc
heygrc è stato creato per essere quel livello di traduzione: per leggere ogni pull request rispetto ai framework selezionati dalla tua azienda e identificare il controllo specifico che una modifica interessa, come commento di revisione con la clausola allegata. Non è pensato per sostituire il tuo framework, il tuo revisore o il tuo giudizio ingegneristico; l'obiettivo è rendere il controllo visibile nel diff in modo che la decisione sia informata.