Perché è male avere una password utente mysql debole?


23

Mi è stato presentato un argomento sul motivo di "non hai bisogno di una password utente mysql forte perché per usarla, avrebbero già accesso al tuo server". Stiamo parlando di una password di 4 cifre che è una parola del dizionario inglese standard su un sito Web aziendale dal vivo.

Senza influenzare le risposte con le mie conoscenze ed esperienze, vorrei mostrare loro alcune risposte provenienti da una fonte di terze parti disinteressata. Qualcuno ha voglia di intervenire su questo? Le risposte di programmazione / pratiche sarebbero apprezzate.


7
Sembra uno di questi root:rootaccessi.

3
Password a quattro cifre? Come 1337?
Gumbo,

Risposte:


39

Chiunque stesse sostenendo questo argomento sembra dire "Una volta che qualcuno ha i piedi nella porta, potresti anche dare loro l'accesso completo". In base a tale logica, un firewall annulla la necessità di tutte le password sulla rete interna.

Le password complesse sono un passo verso la limitazione del danno causato dall'intrusione della rete. Non c'è motivo di alzare le mani in segno di sconfitta solo perché una piccola parte della rete è stata compromessa.


13
"Difesa approfondita" è il motto della giornata.
Scott Pack

3
Basta notare che una volta che hanno accesso al tuo filesystem, avrebbero accesso al tuo file PHP o al file di configurazione in cui è memorizzata la tua password, a meno che tu non abbia impostato una sicurezza aggiuntiva per questo, che di solito è difficile o impossibile su host condivisi .
Lotus Notes

2
@Lotus Supponendo che i server PHP e MySQL siano la stessa macchina.
meagar

2
@Lotus Note, l'utente non deve comunque utilizzare l'utente root in un'applicazione. Un'applicazione ben progettata consente solo l'accesso necessario. Il più delle volte, questo include l'accesso ai dati, ma non sempre a tutti i dati e, in alcuni casi, può anche essere di sola lettura.
bradlis7,

1
Note @Lotus: molti host condivisi utilizzano suPHP che offre il 660 chmoding di file PHP sensibili.
webbiedave,

14

Risale davvero all'idea di " Difesa in profondità ", quindi almeno una password complessa potrebbe rallentarli in modo da poterli scoprire e bloccarli. Mi piace l'analogia di avere una sola chiave per una gated community contro una chiave sulla porta di ogni casa.


Stavo aspettando che qualcuno trovasse un'analogia chiave / porta: |
scadente

Ma una chiave diversa per ogni porta di casa è probabilmente in mare. Dove disegni la linea?
Dan,

4
@Dan: ma in una struttura sicura, ti aspetteresti una chiave diversa per ogni porta, giusto? In una casa unifamiliare no, ti aspetteresti che tutte le serrature utilizzino la stessa chiave. Ma in una casa condivisa (come con i coinquilini), dipenderà dalla filosofia della famiglia: o porte sbloccate (forse porte che usano tutte la stessa chiave) o chiavi diverse per compagno di stanza.
Wallyk,

5
Le serrature e altri dispositivi di sicurezza sono utilizzati principalmente per il ladro dilettante o solo per scoraggiare il professionista. Un altro deterrente è un'adeguata illuminazione intorno alla casa ed evitare routine regolari che rendono ovvio dove e cosa fai durante il giorno. Non chattare mai con uno sconosciuto sui piani di vacanza e avvisare la polizia locale se non ci sei per un lungo periodo di tempo. Cerca sempre di farlo apparire come se qualcuno fosse a casa. Inoltre, per ... aspettare, qual era la domanda di nuovo?
Stephen Watkins,

6

Dipende molto da come è installato il tuo server MySQL. Se accetta solo richieste fuori dalla casa (127.0.0.1) ip, questo lo rende moderatamente più sicuro.

Dato uno scenario in cui si consentono gli IP remoti, diventa un affare molto più grande.

Inoltre, è sempre bene avere una forte sicurezza in caso di intrusione, meglio che se ne vadano il meno possibile.


6

C'è un lucchetto nella casella Petty Cash in Contabilità? Se è così, perché? L'edificio non ha sicurezza fisica?


5

non hai bisogno di una password utente mysql forte perché per usarla avrebbero già accesso al tuo server

Questo non è vero, perché mysql può essere utilizzato anche nell'ambiente client-server tra reti e, per impostazione predefinita, l'unica cosa di cui hai bisogno è l'utente / pass per accedere al database (offcourse, con la porta 3306 aperta e il server pubblicamente visibile ).


5

In effetti può essere diversamente: se hanno accesso a mysql, potrebbero essere in grado di accedere al sistema operativo del server stesso.

  1. Le query MySQL LOAD_FILE e SELECT ... INTO OUTFILE consentono agli utenti mysql di leggere e scrivere file sul file system sottostante. Qualsiasi file a cui anche l'utente mysql abbia accesso (il tuo MySQL funziona come root?). Se in Linux / UNIX basta interrogare SELECT LOAD_FILE ('/ etc / passwd') e vederli sorridere. Se mysqld è in esecuzione come root, puoi provare a SELEZIONARE LOAD_FILE ('/ etc / shadow') e guardare piangere il tuo amministratore di sistema.
  2. Molte volte sotto Linux l'utente mysql "root" ha la stessa password dell'utente "mysql" del server (quello che esegue mysqld). Quindi se questa password è banale (o reperibile da strumenti automatizzati come medusa / hydra), puoi semplicemente SSH / telnet direttamente sul server di database e scherzare.

4

Se qualcuno ottiene l' accesso come root al tuo server, non avrà bisogno di alcuna password MySQL. Ma se possono solo eseguire app sul tuo server come utente non root e non web, una password MySQL forte può comunque salvare i tuoi dati. Ma sì, la maggior parte degli hack proviene dal web, ciò significa che l'hacker avrà accesso al tuo account web e può quindi estrarre la password del DB dai file PHP.

Tutto questo supponendo che il tuo server MySQL non accetti connessioni da qualsiasi luogo tranne localhost. In tal caso, è necessaria una PW potente.


4

Qualcosa che sembra essere stato trascurato qui è, ti fidi dei tuoi utenti sulla rete fidata?

Francamente, non lo so, perché so com'ero quando stavo iniziando con l'IT. Avrei cercato e punzecchiato in aree in cui non avevo il diritto, e francamente una password MySQL debole sarebbe stata una delizia per me, dato che avrei avuto una buona fortuna e sarei entrato e avrei potuto creare scompiglio (per caso, ovviamente).

Cosa succede se qualcuno utilizza il social engineering per accedere alla tua rete di fiducia? quindi cosa fai? Se si trovano su una macchina dietro il firewall, la tua sicurezza del firewall è rovinata e si inseriscono direttamente nella macchina.

Le password complesse sono così semplici da fare e ci sono molti strumenti di gestione delle password per rendere facile la protezione delle password, quindi non ci sono davvero scuse per non farlo.


Il fatto è che non dovresti consentire connessioni remote in MySQL o, se necessario, quindi specificare localhost/ 127.0.0.1come host. In questo modo, nessuno può accedere ai database all'esterno (anche quelli nella stessa rete).
Chazy Chaz,

2

Eh. Se il tuo server è IP bloccato e il tuo utente è limitato a SELEZIONARE su un set di tabelle in cui non ti interessano le informazioni, non è un grosso problema.

D'altra parte, ho impostato le mie password MySQL digitando sulla tastiera per un minuto e copiando incollando il gibberish risultante in un file protetto, a cui faccio riferimento nel mio codice ogni volta che devo accedere. Ecco come dovrebbe funzionare.

Perché renderlo facile? Se la password è allegata a un account locale limitato (come dovrebbero essere tutti), allora perché la stai digitando? In caso contrario, dovrebbe avere una password il cui punto di forza è relativo al valore dei dati che stai proteggendo.


2

Le informazioni sull'account / accesso di mySQL sono archiviate in un file separato dai database effettivi. Quindi puoi semplicemente trascinare e rilasciare un file diverso al suo posto. Con mySQL se hanno accesso in scrittura alla parte rilevante del tuo filesystem il gioco è finito.


2

Perché i requisiti cambiano ...

Quindi il server oggi limitato all'accettazione delle connessioni MySQL solo alla macchina locale, domani potrebbe essere aperto in modo da poter utilizzare uno strumento esterno per gestire il database. La persona che esegue questa configurazione potrebbe non sapere che sono in uso password estremamente deboli.

Se il tuo utente è disturbato dal dover ricordare una password buona, forte (ad esempio: lunga, casuale), considera di renderla molto forte e quindi di memorizzarla nella .my.cnf- ancora più conveniente che avere una password debole che deve digitare. Naturalmente, ci sono implicazioni di sicurezza anche a questo, ma dovrai archiviare la tua password da qualche parte, ad esempio le applicazioni che vi accedono, quindi stai già proteggendo copie della password.

Ma leggi anche cosa ha detto @meagar.


1

La premessa che avrebbero già avuto accesso non è vera. Tuttavia, se hanno accesso e hanno un account non privilegiato, potrebbero comunque facilmente hackerare la password mysql.

Inoltre, se il server è un server di produzione live, allora stai pubblicizzando te stesso su Internet. che significa che a un certo punto, qualcuno SARA provare un attacco di forza bruta su quel server, tra cui MySQL, sia il porto e l'account utente.

se ti interessano i dati, i passaggi di base devono avere una password di root diversa per il database rispetto all'utente root. altri hanno affermato che dovresti avere anche le autorizzazioni più basse possibili per utenti e programmi.

una password di 4 caratteri può essere hackerata in pochi minuti, su un computer abbastanza economico.

Potrei semplicemente ripetere ciò che altri hanno detto, ma più munizioni hai per il tuo manager, meglio è.


1

Molte delle ragioni dello scenario di vita reale sono state trattate in precedenza da post, quindi aggiungerò quella "filosofia". L'uso di password complesse e l'adozione di precauzioni per rafforzare la sicurezza è una filosofia di lavoro. Un modo di pensare.

L'uso di una password debole ora perché mysql funziona solo su 127.0.0.1 e solo l'utente root ha accesso ad essa mostra che non pensi in anticipo. Cosa succede se un giorno dovrai concedere l'accesso in rete al tuo mysql. Ti ricorderai di coprire tutti i buchi di sicurezza che hai lasciato?

Un buon amministratore pone lo scenario peggiore al primo posto della paranoia.


1

Dipende da quali diritti ha l'utente, dovresti sempre bloccare le cose su più livelli. Inoltre dipende dai dati archiviati nel database. Supponiamo anche ipoteticamente che ci sia una vulnerabilità in MySQL che consente loro di assumere l'intero database, ma hanno solo bisogno di accedere a qualsiasi account utente. Se la tua password era forte, questo renderebbe muta questa vulnerabilità. Ma questo dipende solo dal tuo caso specifico.


Se il server MySQL è compromesso, l'utente e la password sono inutili. I file del database non sono crittografati. Gli utenti MySQL per le app dovrebbero avere localhost / 127.0.0.1 come host in modo che non possano essere utilizzati in remoto o disabilitare le connessioni remote.
Chazy Chaz,

1

È molto facile impersonare qualcun altro in mysql. Dato un ID utente senza password (la sicurezza più debole) basta usare mysql -u userid. Se ha una password è un po 'più difficile, ma una password debole lo rende facile. Se root non ha password, posso accedere a root come mysql -u root. Posso quindi fare qualsiasi cosa all'interno del database che root possa.

Anche l'uso delle specifiche dell'host nella sicurezza è una buona idea, specialmente se l'accesso remoto è o potrebbe essere disponibile.

Le password nei file possono e devono essere in qualche modo protette dalle autorizzazioni. L'accesso da parte di root o il proprietario del file della password è banale. Se possibile, utilizzare la crittografia della password sul disco. Questo rende leggermente più difficile l'accesso, ma comunque vulnerabile.


0

Bene, se non stai ospitando il db MySQL da solo, ma è su un servizio di hosting e qualcuno ottiene l'accesso all'indirizzo IP del tuo server, il nome utente e la password sono l'ultima linea di difesa. È sempre bene avere un nome utente / una password sicuri.


Meh! Se qualcuno ottiene l'accesso al server, può leggere l'utente / la password dai file PHP ... Aggiorna, elimina questa risposta.
Chazy Chaz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.