In pratica, quasi tutti i database sql (MsSql, MySql, Oracle ecc.) hanno la capacità di eseguire comandi del sistema operativo. Quindi, se l'utente malintenzionato conosce la password del DB, può eseguire comandi OS su una macchina DB. Se il processo che esegue il tuo motore db ha privilegi elevati, allora l'attaccante può prendere il controllo dell'intera macchina. Oltre questo è limitato al tuo immaginario. Ad esempio:
- È in grado di attaccare altri computer nella rete dalla macchina db.
- Se si utilizza la virtualizzazione, è possibile estendere l'attacco al motore della VM e altri sistemi operativi sull'ambiente virtuale possono essere compromessi.
- Raccogli dati sensuali molto importanti per i futuri attacchi di social engineering.
- Prendere i nomi degli account utente e le password e provarli per altri sistemi di informazione sulla propria organizzazione. Le persone usano per lo più lo stesso strong? password su più sistemi.
- Ascolta il traffico nella tua rete e annota i dati importanti.
- Inserisci un trojan o una backdoor per accesso futuro ecc.
Che cosa puoi fare per proteggerti anche se l'hacker conosce la tua password db:
- È possibile limitare i privilegi dell'account utente db. Non dimenticare che a volte l'utente malintenzionato può aumentare i suoi privilegi sulla macchina tramite exploit speciali che utilizzano vulnerabilità sul tuo sistema operativo.
- Disabilita le capacità di esecuzione shell del server DB (ma principalmente gli account utente db hanno il privilegio di abilitarlo di nuovo)
- Limita i privilegi del processo del motore db. La maggior parte delle volte gli attacchi SQL injection hanno successo a causa dell'errata installazione dei server db. Soprattutto l'installazione di MsSql consente di impostare facilmente gli account admin come proprietario del processo db.
- Isolare la tua macchina db dalla rete. Consenti solo le richieste in arrivo. Hai bisogno di farlo con una macchina firewall esterna. Ricorda che l'attaccante ha accesso al sistema operativo in modo che possa attivarlo se lo si limita da DB Server.
- Proteggi gli account dei tuoi utenti tramite hashing (con un sale ovviamente) e se la tua risorsa CPU è disponibile proteggi i dati sensibili con la crittografia simmetrica a livello di applicazione.
Questa non è una lista completa. Può essere più grande.