Quanto è pericoloso archiviare la password in formato testo su siti come GitHub?

11

Ho alcuni repository privati impostati su GitHub per alcuni dei progetti a cui sto lavorando per la mia azienda. Queste applicazioni si collegano ai database e ho le credenziali di autenticazione del database memorizzate in un file chiamato config.php (in testo normale).

Quanto è rischioso, dato che il mio codice è sui server di GitHub? So che dalla mia parte, solo le persone a cui concedo l'accesso al repository potranno vedere queste informazioni, ma devo preoccuparmi di altre fonti di perdita?

    
posta karancan 03.07.2013 - 20:13
fonte

4 risposte

8

Questa è una domanda interessante con diverse sfaccettature che dovrebbero essere scomposte.

La prima domanda che hai posto è "Quanto è rischioso?" e la risposta è "Molto". Esponendo queste credenziali su un servizio di terze parti che non controlli e gestisci, aumenti il rischio. Ci sono molti modi in cui le tue credenziali potrebbero essere esposte: compromissione del servizio, account di servizio compromessi, errore di autorizzazione nel servizio, intercettazione della rete (se SSL / TLS non è utilizzato per servire il codice), concedi l'accesso alla persona sbagliata, ecc.

Fondamentalmente, considera quelle credenziali esposte.

Sembra terribile, vero? Forse no ... Ora devi fare la domanda "Sono a mio agio con quel rischio?" Se hai altre attenuazioni, potresti essere d'accordo. Se si limita (forse con la whitelist IP) in cui è possibile utilizzare quelle credenziali, le credenziali diventano meno utili da rubare. Il servizio potrebbe anche avere un valore estremamente basso e non ha senso dal punto di vista finanziario per aggiungere ulteriore sicurezza. Se il costo di recupero da un compromesso è di $ 10 e l'aggiunta di una sicurezza aggiuntiva costerebbe $ 1.000.000, allora si vive con il rischio. (Detto questo, se hai preso un impegno nei confronti dei tuoi utenti in merito alla loro protezione o alle loro informazioni, hai l'obbligo etico di cercare di onorare questo impegno, indipendentemente dal costo.)

Alcuni pensieri aggiuntivi:

"Progetti a cui sto lavorando per la mia azienda" - Stai facendo questo per conto della società per cui lavori, probabilmente hanno politiche o pratiche accettabili. Se questo è il caso, quelli dovrebbero avere un precedente su ciò che ti sta bene. Il rischio che stai creando influenza la tua azienda e la sua reputazione, l'azienda arriva a fare la chiamata finale.

Lucas Kauffman suggerisce un buon approccio. Non posso dire se funzionerà per te, ma il takeaway è trovare una soluzione che funzioni per il tuo processo di implementazione e riduca il rischio a un livello constrongvole.

    
risposta data 05.07.2013 - 18:24
fonte
7

Lo faccio così come lavoro su un progetto memorizzato su Github da posizioni diverse. Tuttavia, nel momento in cui il mio codice va in accettazione o in produzione, la password viene modificata in qualcosa di casuale. Quindi, per test / sviluppo, non mi interessa che le credenziali del mio database siano lì, poiché sono valide solo sui miei computer di sviluppo e nessun dato è confidenziale.

    
risposta data 03.07.2013 - 20:36
fonte
2

Indipendentemente dal fatto che il tuo livello (rilassato?) di esigenze di sicurezza sia sufficiente per memorizzare le password nel repository, non è assolutamente necessario farlo.

Ho appena incontrato lo stesso problema con le password del database utilizzate dagli script php, e la mia risposta era scrivere un semplice script php per generare automaticamente password casuali. L'idea è di eseguire il generatore di password una volta, subito dopo aver scaricato il codice sorgente, per generare password locali. Questi non dovrebbero mai essere spinti fino al repository; quando il codice viene scaricato altrove (da un collaboratore o sul server di produzione), di nuovo il generatore deve essere eseguito una volta localmente per ottenere un diverso set di password.

Se non puoi essere preso la briga di implementarlo da solo, usa il mio codice (che attualmente presuppone che il database e l'interprete PHP siano eseguiti sullo stesso server): link

    
risposta data 04.07.2013 - 11:54
fonte
0

La memorizzazione della password ovunque in testo semplice è sempre rischiosa. Ora non sono sicuro se questo è possibile in PHP ma so per certo che in .NET è possibile crittografare i file di configurazione.

    
risposta data 03.07.2013 - 20:26
fonte