Come proteggere SQL Server dagli hacker


9

Sto riscontrando un problema e non sono riuscito a capire come gestirlo. Ho un SQL Server su un server Windows 2008 R2. Questo SQL Server 2005 viene utilizzato per ricevere abbonamenti DB da un altro SQL Server situato altrove su Internet. Ho la porta del server sql aperta attraverso il firewall, tuttavia nell'ambito, ho inserito l'IP dell'altro SQL Server. In questo modo speravo che le richieste di connessione attraverso quella porta non raggiungessero SQL Server a meno che le richieste non arrivassero dall'altro SQL Server (il cui IP è elencato nell'ambito della regola del firewall). Ma, quando vedo il registro, ci sono centinaia di voci "login utente fallito sa" (e arrivano ogni secondo che passa). Sembra che alcuni hacker stiano provando la forza bruta per indovinare la password dell'utente. Ma la domanda è: perché Windows sta permettendo a queste richieste di raggiungere SQL Server anche se non provengono dall'indirizzo IP elencato nell'ambito del firewall? Qual è il modo giusto per proteggere questo SQL Server. Nessun altro IP oltre a quello dell'altro SQL Server deve connettersi a questo server SQL.

MODIFICA - Ulteriori informazioni:

Ho eseguito telnet sulla porta del server sql da macchine diverse. Telnet ha esito negativo tranne quando viene eseguito dalla macchina menzionata in modo specifico nell'ambito del firewall. Quindi sembra che il firewall stia bloccando bene la porta del server sql. Ma allora perché vedo quelle richieste di accesso non riuscite all'utente "sa" da diversi indirizzi IP nel registro di SQL Server? È possibile che l'hacker stia entrando nella macchina tramite la porta 80 e che in qualche modo stia cercando di connettersi al server sql? Le porte 80 e 443 sono aperte a tutti. Tutte le altre porte sono chiuse ad eccezione della porta del server sql (che è aperta solo per un IP specifico). Non c'è nulla in esecuzione sul server Web sulla porta 80 che può condurre un visitatore al server SQL. In effetti, esiste un solo file index.html (HTML puro senza connessione a SQL) nel server Web. Questo è solo un server di prova che viene configurato per un uso futuro. Testare solo i dati in SQL Server.

MODIFICARE:

Ho attivato la traccia del firewall per includere sia le connessioni drop che success. Ora sta rintracciando tutto. Quindi vado al registro di SQL Server dove vedo questi tentativi di accesso non riusciti da diversi indirizzi IP in Cina. Ma non ci sono voci per questi indirizzi IP nel registro del firewall. Com'è possibile? Possono arrivare al server SQL bypassando completamente il firewall? Se supponiamo che alcune porte del firewall fossero aperte attraverso le quali poter accedere, il registro del firewall dovrebbe mostrare una voce per quell'indirizzo IP. Sono in completa perdita.


Che ne dici di usare Logon Trigger ? Inoltre, SQL Server non deve essere esposto a Internet (pubblico). Inoltre, è possibile utilizzare le Regole del programma in Windows Firewall per limitare l'intervallo di indirizzi IP.
Kin Shah,

Sì, potrei, ma in fondo non si tratta proprio di SQL Server. Sto cercando di scoprire perché il firewall di Windows non sta facendo quello che dovrebbe fare, cioè non sta lasciando passare queste richieste perché non provengono dall'unico indirizzo IP consentito.

1
Sì, sembra che Windows Firewall sia configurato in modo errato. Forse hai un'altra regola più generale che consente la porta 1433 (o consente tutto), o forse Windows Firewall è disabilitato sulla scheda NIC rivolta a Internet. È difficile dirlo senza vedere la configurazione. Ma questa è davvero una domanda per ServerFault come dice Max. Intendevi Windows 2008 R2, a proposito? 'RC' è Release Candidate, software pre-release per i test.
James L


1
Stai davvero usando un vecchio sistema operativo candidato al rilascio ?! Risolvilo per primo.
Michael Hampton,

Risposte:


12

Sembra che il tuo firewall non sia configurato correttamente. questo è il primo passo.

Normalmente non farei il magnaccia di un libro che ho scritto, ma in questo caso farò un'eccezione. Si chiama Protezione di SQL Server e ti darà un buon inizio.


Bene, il tuo libro si adatta perfettamente a questa domanda :-)
mfinni

Freddo! Ha una guida prescrittiva sull'uso dei certificati anziché dell'autenticazione locale / Windows per i server con connessione a Internet? ;-)
Greg Askew il

Vedi le mie modifiche. Il firewall sembra funzionare bene. È un altro trucco che stanno giocando questi hacker cinesi per arrivare a SQL Server.
Allen King,

1
Se qualcuno si sta connettendo alla porta SQL da un indirizzo IP pubblico, il firewall non è configurato correttamente. Se provengono da un IP interno, hai qualche altro tipo di problema. SQL da solo non supporta i certificati. Devi farlo tramite AD e mapping dei certificati.
mrdenny,

Torna al disegno davvero per il firewall. Vorrei estrarre il server SQL da Internet fino a quando non si risolve la situazione del firewall. In questo modo sarai in grado di vietare IP interi intervalli di indirizzi IP con relativa facilità.
Techie Joe,

4

Semplicemente detto - non lo fai. Non userei afirewall ecc. - Un server SQL non ha il diritto di essere su Internet. MOLTE MOLTE eccezioni.

Per la replica, impostare una VPN corretta.


Sono leggermente confuso. Se il server DB non si trova su Internet, in che modo un server back-end di app Web raggiungerà il server DB?
Allen King,

Attraverso la rete interna. Installazione di base. L'app Web si trova in entrambe le reti.
TomTom,

3

Oltre a configurare correttamente il firewall, ecco alcuni consigli generali per proteggere SQL Server dagli attacchi di forza bruta:

  • Disabilita l'account "sa". Conoscere il nome esatto di accesso renderà gli attacchi più facili

    ALTER LOGIN sa DISABLE
    

Un'altra opzione è quella di rinominare l'account "sa" con un nome meno ovvio

ALTER LOGIN sa WITH NAME = SimonXZY
  • Utilizzare l'autenticazione di Windows anziché l'autenticazione in modalità mista. L'autenticazione di Windows applica il criterio della password di Windows e blocca l'accesso in caso di successivi tentativi di accesso non riusciti
  • Controllo degli accessi non riusciti. Il modo più semplice per eseguire questa operazione è impostare l'opzione di controllo dell'accesso nelle proprietà del server, scheda Sicurezza su Solo accessi non riusciti o Entrambi gli accessi non riusciti e riusciti. Questo non ti aiuterà a proteggerti dagli attacchi di forza bruta, ma ti aiuterà a essere consapevole degli attacchi

Altri consigli utili qui: Prevenire una forza bruta o un attacco nel dizionario: come tenere i bruti lontani dal bottino

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.