Come affrontare le password durante la distribuzione automatizzata?

Come amministratori responsabili conosciamo di comuni punti deboli come

  • CWE-260: Password nel file di configuration http://cwe.mitre.org/data/definitions/260.html
  • CWE-522: credenziali insufficienti protette http://cwe.mitre.org/data/definitions/522.html
  • CWE-257: Memorizzazione delle password in un formato recuperabile http://cwe.mitre.org/data/definitions/557.html

Ma come ci occupiamo in pratica?

Naturalmente con tecnologie come l'authentication password tramite SSH e strumenti come sudo, è ansible sbarazzarsi di credenziali di accesso memorizzate in luoghi importnti e questo aiuta veramente durante l'installazione automatizzata di server Linux.

Ma non appena si lascia il sistema operativo e si installano le applicazioni, le probabilità sono alte che si è confrontati con il problema where salvare saldamente le password.

Ad esempio se si installa un server di database, è più probabile che si desideri salvare la password di un text libero in un file di configuration dell'applicazione Web.

Quindi è necessario proteggere il file di configuration in modo che solo l'amministratore sia in grado di visualizzare le credenziali e limitare le autorizzazioni di accesso dell'utente di database al fine di limitare l'impatto di sicurezza ansible.

Ma come affrontare ad esempio il principale account di database amministrativo? Alless il tuo dbas dovrebbe conoscerlo (quindi hai bisogno di un text chiaro) e come amministratore di sistema non dovresti conoscere le credenziali. O la distribuzione è fatta da devops e non dovrebbero conoscere nessuna delle credenziali sui server di produzione.

Possibili soluzioni

Dopo aver pensato questo per un lungo periodo di tempo, mi presento tre possibili soluzioni ma hanno debolezze proprie:

  1. Genera credenziali casuali durante la distribuzione e lo memorizza in un database in un modo di scrivere una volta. E ad esempio dbas ha un altro utente che può leggere solo credenziali di database. Ma come gestire le password di chiusura del text nei file di configuration di p.es. webapp? Un utente root può leggerli. Anche l'utente principale del database di password potrebbe leggere tutte le credenziali di password.

  2. Accetta password e credenziali predefinite durante la distribuzione e aggiunge un postScript che modifica tutte le password. Forse anche interattivo where le persone autorizzate devono immettere le credenziali durante il runtime dello script.

  3. Crittografa la password asimmetricamente con la chiave di una terza parte affidabile. Quando viene richiesta la password, deve essere modificata in seguito.

Cosa ne pensi? Vedi qui tutte le pratiche migliori?

  • Come possiamo alleviare le preoccupazioni di sicurezza quando si aggiunge dispositivi Windows CE di terze parti collegati a Internet in una networking?
  • Stato amministratore / cliente account "non applicabile"?
  • Come configurare una networking per bloccare gmail ma consentire la posta Google Apps?
  • Perché hai bisogno di awverify record CNAME per Azure?
  • Una volta che assicuro la sicurezza dell'edificio, sono sicuro da l'uomo negli attacchi medi?
  • Come posso essere avvisato se qualcuno sta tentando di entrare in un server Linux?
  • usando / bin / bash in un ambiente chroot - symlink o mount
  • Criteri di restrizioni software di Windows Criteri di gruppo non funzionano con la variabile% TEMP%
  • One Solution collect form web for “Come affrontare le password durante la distribuzione automatizzata?”

    1. Dovresti avere un database sicuro e criptato con tutte le tue credenziali
    2. Un server dovrebbe essere totalmente inaccessibile dall'esterno dalla virtù dei firewall durante l'installazione
    3. È bene avere uno script generare un passaggio random e inviarlo via email
    4. E 'anche bene modificare la password dopo che il server è stato fornito, PRIMA di aver consentito l'accesso al pubblico
    5. Se ti invii la posta elettronica, la password è buona, fintanto che utilizza il tuo server di posta interno e non viene indirizzata tramite il pubblico tramite SMTP (SMTPS è una storia diversa)

    È ansible sostituire l'email per qualsiasi protocollo. Potresti sftp una password da qualche parte, creare un messaggio di una volta usando il onetimesecret api, caricarlo in un gist privato usando https o qualsiasi altra cosa che si possa pensare.

    Penso che questo lo copri.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.