Vai al contenuto

Concetti chiave

Permesso vs Osservato

La differenza al cuore della mappa degli accessi — ciò che un agente ha il permesso di fare rispetto a ciò che viene effettivamente osservato fare.

Ultimo aggiornamento:

Ogni arco nella mappa degli accessi porta due fatti indipendenti: se l’accesso e permesso e se è stato osservato. La differenza tra questi due livelli e il fattore differenziante — e ciò che trasforma un grafo statico in una segnalazione.

Due livelli su un arco

La mappa non mantiene un “grafo delle policy” e un “grafo della telemetria” separati. Ogni arco e una singola relazione (origine verso risorsa, tipizzata come lettura o lettura-scrittura) che porta entrambi i flag:

  • Permesso — una concessione o policy consente questo accesso. La sorgente del segnale è la policy dichiarata stessa.
  • Osservato — l’accesso è stato effettivamente visto avvenire, derivato da telemetria e audit nativi (OpenTelemetry dagli agenti cooperativi, PostgreSQL pgAudit, log di audit cloud, un backstop eBPF a livello kernel).

Una sfumatura importante per la trasparenza: non permesso significa “non noto come permesso”, non “vietato”. La mappa registra ciò che può dimostrare dalle concessioni dichiarate; l’assenza di una concessione è una lacuna da investigare, non un verdetto di enforcement.

La differenza: dove sta il valore

Il drift del privilegio minimo e semplicemente l’insieme degli archi dove i due flag divergono. Si divide in due segnalazioni operativamente distinte:

  • Accesso inattesoosservato ma non permesso. Un agente ha toccato una risorsa che nessuna concessione copre. Questa è la meta rilevante per la sicurezza, presentata come segnalazione principale.
  • Concessioni inutilizzatepermesse ma mai osservate. Una concessione che nessuno ha mai esercitato. Questa è la lista concreta per la riduzione dei privilegi, non un generico “rivedi il tuo IAM”.

Gli archi dove entrambi i flag concordano — permessi e utilizzati, o nessuno dei due — sono lo stato stazionario prevedibile e poco interessante. La differenza e la fetta piccola e azionabile che sta in mezzo.

Trasparenza nella differenza

Una differenza ingenua produce segnalazioni false, quindi la riconciliazione è deliberatamente conservativa.

Riconciliazione in attesa

L’audit attribuisce un accesso a una credenziale o ruolo; una concessione è scritta contro un’identità; un segnale cooperativo nomina un agente o sessione. Quando la mappa degli accessi non può ancora collegare fermamente l’agente agente all’identità per cui è stata scritta la concessione, non può provare che l’accesso sia permesso — ma non deve neppure presentarlo come violazione. Tali archi vengono contrassegnati reconciliation_pending: incertezza onesta, non una segnalazione fabbricata. Si risolvono in modo pulito una volta che l’identità per agente collega la credenziale all’agente.

Concessioni su risorse che nessuno monitora

Alcune concessioni riguardano tipi di risorse che non hanno un collector lato osservato — non c’e niente che monitori chi ha effettivamente utilizzato una directory LDAP o un’assegnazione app di un IdP. Per queste, “mai osservato” e lo stato stazionario atteso, non evidenza di over-provisioning. Vengono tenute fuori dalla lista principale delle concessioni inutilizzate anziché gonfiarla con rumore.

Copertura e attribuzione viaggiano comunque con l’arco

La differenza eredita la fedeltà a livelli degli archi sottostanti. Su un datastore opaque (Redis, SQLite, D1) non c’e alcun segnale passivo di lettura/scrittura, quindi l’assenza di un arco osservato non e prova che l’accesso non sia avvenuto — e silenzio. Allo stesso modo, un account di servizio condiviso riduce l’attribuzione ad approximate. La differenza non presenta mai una segnalazione a bassa confidenza come se fosse certa.

Quando la differenza viene calcolata su una finestra parziale (un estate molto grande che supera il limite di paginazione), il risultato viene esplicitamente marcato come parziale anziché presentato come autorevole.

Investigativo, non nel percorso

Produrre questa differenza e un’attività fuori banda, investigativa. Il piano di controllo gira nella tua infrastruttura (e può essere air-gapped); osserva attraverso log, OpenTelemetry e audit nativi, e non si interpone nel percorso delle richieste tra un agente e le sue risorse. Un collector che fallisce non interrompe mai il traffico di produzione.

Due conseguenze seguono. Primo, la differenza è un report, non un gate: presenta ciò che è già accaduto. Dove il prodotto agisce su una segnalazione, lo fa deny-closed e su richiesta — mai come esecutore indiscriminato. Secondo, leggere la differenza è essa stessa un’azione privilegiata, circoscritta al tenant e completamente registrata nell’audit: l’atto di ispezionare chi-può-raggiungere-cosa e rilevante per la ricognizione, e la lettura viene registrata nel registro di audit append-only prima che qualsiasi arco venga restituito.

Questo è anche il motivo per cui la differenza è sicura da eseguire su estate sensibili: la mappa memorizza la relazione — origine, risorsa, lettura/scrittura, sorgente, confidenza, timestamp — mai i payload, i corpi SQL, i segreti o PII che hanno attraversato l’arco. Ciò che non viene memorizzato non può trapelare.

Correlati

Cerca nella documentazione