Come già accennato nella risposta di Lie Ryan, il principio di Kerckhoff si applica qui. Concedere conoscenze, a un utente delle sue risorse su un sistema non dovrebbe aumentare la vulnerabilità di quel sistema. Se pensi che lo faccia, hai alcuni problemi più grandi da considerare prima.
La prima cosa da fare con il tuo sistema: valutare se dare la conoscenza di come funziona quel sistema aumenta il rischio in primo luogo.
Se aumenta i rischi, potresti avere problemi più grossi del semplice se un utente può visualizzare le proprie autorizzazioni e deve bloccare qualsiasi altra conoscenza di quel sistema.
Inoltre, nascondere le autorizzazioni di un utente è una condizione per ridurre la vulnerabilità del sistema? Se è così, ti stai preparando per il fallimento.
Questo perché, in un sistema correttamente disponibile, un utente può facilmente scoprire le sue funzionalità nel tempo, semplicemente utilizzando il sistema in questione e registrando ciò che possono e non possono fare. Questo si applica anche se il sistema è un metodo di distribuzione delle truppe perché, hey , i tuoi utenti dovranno, usarlo .
In effetti, la conoscenza di un utente di ciò che è a sua disposizione è spesso una condizione di disponibilità in primo luogo.
E un sistema non disponibile ha già fallito.
Torna al principio di Kerckhoff, ecco alcune domande per verificare se sei in un tipo di situazione di "sicurezza attraverso l'oscurità":
-
Il codice o le specifiche relativi al tuo sistema sono open-source?
-
Anche altri utenti che utilizzano sistemi simili limitano queste informazioni
-
In caso contrario, ha portato a maggiori rischi per loro?
-
Quali scenari puoi pensare a dove consentire a queste informazioni di rendere tutti gli utenti vulnerabili? E limitare le informazioni riduce effettivamente la vulnerabilità (rispetto alle alternative)?
Ecco un esempio funzionante, utilizzando 2 dei miei strumenti di sicurezza Blue Team di scelta, KeePassXC e HashiCorp Vault:
-
Sì KeePassXC , HashiCorp Vault
-
KeePassXC: no, perché l'autorizzazione è limitata ai DB di KeePassXC a cui si hanno password e chiavi.
HashiCorp Vault: No
-
KeePassXC: No. Se non chiami il tuo DB dopo una qualsiasi delle tue password, sei d'oro.
HashiCorp Vault: No, purché non nominare il materiale utilizzato nel metodo di autorizzazione (ad esempio i nomi dei negozi KV) per conservare i dati segreti Di nuovo, c'è una responsabilità per l'utente, qui. Se rispettate i limiti e non nominate i vostri DB e KV dopo nomi utente o password, questo non introduce una nuova vulnerabilità.
-
Ecco uno scenario in cui la vulnerabilità è aumentata dalla conoscenza del proprio accesso da parte di un utente:
A. Dove l'utente ha già accesso privilegiato non dovrebbe, e semplicemente non lo saprebbe altrimenti.
In questo caso, sarebbe prudente limitare la conoscenza dell'utente. Ma un'alternativa migliore è semplicemente ridurre i livelli di accesso in primo luogo, piuttosto che limitarsi a limitare la sua conoscenza del proprio accesso, perché potrebbe comunque scoprire le sue risorse disponibili accidentalmente. Se ti trovi in una situazione in cui hai nominato i nomi delle chiavi KV KeePassXC DB o HashiCorp Vault dopo qualcosa di privilegiato, entrambi hanno il modo di spostare tali informazioni più in basso verso il luogo in cui non è esposto al sistema di autorizzazione. Per l'esempio nell'archivio KV di Vault, basta cambiare i nomi delle chiavi in qualcosa di generico e copiare le informazioni privilegiate per proteggere i valori di tali chiavi.