Quali sono le probabili minacce a un'istanza DB con accesso pubblico?

6

Introduzione rapida: piccola azienda, risorse MOLTO limitate. Io praticamente faccio tutto, inclusa la spazzatura.

Da anni eseguiamo internamente un'istanza di MySQL e abbiamo funzionato bene, ma penso che sia in buona parte una buona fortuna. Disponiamo di diversi computer client che vengono distribuiti nei negozi e, a volte, nelle fiere. Queste macchine client hanno bisogno di accedere al database. Attualmente stiamo facilitando l'accesso sicuro tramite una VPN alla nostra rete. Il nostro firewall non ha un buco aperto per MySQL.

La soluzione VPN è dolorosa e ha le sue implicazioni sulla sicurezza. Sono anche sempre più nervoso nel mantenere la mia istanza MySQL online e disponibile. Ho trovato Amazon il servizio RDS di AWS e sembrava PERFETTO! Tuttavia, mi sono imbattuto subito nel problema del gruppo di sicurezza e mi sono reso conto che avrei dovuto concedere un accesso completo e illimitato a tutti gli IP, poiché non ho alcun controllo sugli intervalli IP delle macchine client. Fidati di me su questo, non ho idea di quale sarà il loro IPS.

Ho letto che è una pessima pratica esporre un DB al pubblico e che quando si deve assolutamente fare questo è meglio implementare un'API di servizi web sul DB. Sarebbe bello farlo, ma non c'è modo che io abbia il tempo (in questo momento) di scrivere un endpoint di servizi Web per tutte le applicazioni.

Finalmente ... la mia domanda: quali sono le minacce che dovremmo affrontare esponendo la nostra istanza DB a tutti gli IP? Non siamo una banca, non siamo una società pubblica - nessuno sa davvero di noi quindi sembra che un attacco mirato sia improbabile. Tuttavia sono completamente all'oscuro delle minacce alla sicurezza e di "cosa c'è là fuori" - ci sono minacce che scandiscono tutti gli intervalli IP in cerca di un server per rispondere, quindi quando attaccano "solo per divertimento"?

Per essere chiari, SO che questo è contro le migliori pratiche e non ho bisogno di una lezione, sto cercando consigli del mondo reale sulla probabilità di un attacco - se è possibile determinarlo.

A proposito, ho trovato questa domanda ed è correlata ma non esattamente ciò di cui ho bisogno. Volevo solo includerlo in modo che altri non rispondessero collegandoci ad esso. Database Amazon RDS pubblico

    
posta Steve K 09.09.2011 - 02:04
fonte

5 risposte

7

Sembra che tu abbia una comprensione decente delle minacce, sappi che quello che stai facendo ora è preferibile da un punto di vista della sicurezza e si trova ad affrontare un'analisi costi / benefici. Con questo in mente, ecco alcuni pensieri alternativi:

  • Configura MySQL con un frontend SSL. Ci sono alcune funzionalità in MySQL per questo, ma stunnel potrebbe renderti meno pazzo. Mentre i certificati client sono in qualche modo ideali, immagino dalle tue lotte VPN che potrebbero non essere nelle carte.

  • Avvia MySQL sul tuo computer e configuralo per ascoltare il mondo e usa la funzionalità iptables (firewall) del sistema per negare qualsiasi connessione. Creare un servizio Web molto semplice che, una volta completata l'autenticazione, aggiungerà l'IP di origine all'elenco di host autorizzati. Ogni tanto è possibile cancellare le statistiche di iptables e rimuovere gli host che non generano traffico per alcuni giorni. Pensa a bussare alla porta con una pista di controllo.

risposta data 09.09.2011 - 05:01
fonte
7

Per le fiere commerciali, DEVI connettersi al tuo database live? Potresti accontentarti di una copia (recente) su un computer locale.

I rischi addizionali in una fiera sono che sei circondato da società concorrenti che potrebbero avere un interesse commerciale sia nei tuoi dati sia nel rendere l'applicazione non disponibile (bloccando il server). C'è anche più potenziale per l'ascolto sulla rete fornita.

    
risposta data 09.09.2011 - 12:11
fonte
6

Fidati di me quando dico che ci sono scanner che eseguono giorni e notti in rete. Quando apri il tuo DB al pubblico, vedrai tutti i tipi di tentativi di scansione nel registro del server.

Alcuni esempi di attacchi ciechi sono i worm Slammer di SQL che mirano specificamente a MS SQL, LizaMoon un'iniezione SQL di massa e SpoolCLL che mirano a password deboli in MySQL.

Quindi, se è necessario esporre MySQL, si prega di utilizzare almeno una porta diversa.

    
risposta data 09.09.2011 - 02:41
fonte
2

Potresti usare un DB amazon ma solo accedervi tramite una casella ec2 tramite un'app di frontend attentamente costruita o forse anche solo un tunnel ipsec direttamente all'istanza di ec2?

    
risposta data 09.09.2011 - 03:55
fonte
-1

I database non dovrebbero mai consentire l'accesso a tutti a causa di alcuni dei seguenti problemi di sicurezza:

  • Accesso diretto per sfruttare il server del database e qualsiasi vulnerabilità che potrebbe avere.
  • Vettore DDOS / DOS (salta il sito web e vai direttamente al database).
  • Possibilità di ignorare qualsiasi impostazione di sicurezza dell'applicazione.
  • Poco o nessun audit trail disponibile e pronto per l'uso in MySQL c'è poco o nessun controllo. Quindi, se qualcuno ha fatto un dump del tuo database o ha fatto altre attività dannose, avresti solo i log del firewall e nient'altro.
  • Se i dati non vengono inviati crittografati su Internet, il database può essere facilmente compromesso per chiunque stia annusando la rete. Quindi possono utilizzare credenziali valide per fare ciò che desiderano.
  • Dal momento in cui poco o nulla viene verificato fuori dagli schemi, tutto viene aggirato e permesso loro di avere accesso per un tempo sconosciuto e potresti non saperlo mai.
  • Altri siti o applicazioni potrebbero utilizzare il tuo database per servire pubblicamente il contenuto al mondo e consentire all'utente di scaricare il database, eseguire i quires, ecc.
  • Le risorse massime impostate per il database potrebbero essere utilizzate da terze parti utilizzando il tuo database.
  • Nessuna protezione contro SQL Injection.
  • Il server MySQL potrebbe essere utilizzato per ottenere una shell sul server per configurare gli account di sistema, eliminare i file, modificare le impostazioni e altre attività dannose.
  • La parte di sicurezza di amministratore di sistema e amministratore di database è stata appena rimossa.
  • Perdita di lavoro
risposta data 09.09.2011 - 02:43
fonte

Leggi altre domande sui tag