Protezione del database e server SQL online [chiuso]

1

Sto cercando di costruire un grande progetto ma manca la conoscenza della sicurezza dei server e SQL . Quindi, per favore aiutami dicendo quali misure necessarie dovrei prendere.

  1. Blocca tutti gli accessi remoti : - Ho sentito che attraverso il firewall puoi bloccare tutti gli utenti remoti per connettere il tuo server a meno che tu non abbia permesso a un IP specifico di accedere al server (aggiungendo una regola per il firewall). Sarà sufficiente per tenere lontani gli hacker?

  2. Se a un utente SQL vengono assegnati solo i GRANT EXEC diritti sarà in grado di fare qualsiasi cosa tranne eseguire il procedure di deposito?

  3. Dovrei andare per Sistema operativo Microsoft o Linux : ho sentito che l'I / O basato su Linux è molto veloce, necessario per la mia applicazione, ma è più sicuro rispetto a Microsoft?

Sentitevi liberi di correggermi ovunque io stia sbagliando visto che sono un principiante.

Grazie in anticipo

    
posta Developer Nation 29.01.2016 - 06:21
fonte

3 risposte

0

Non hai specificato quale SQL stai usando. Tieni presente che Microsoft SQL Server verrà eseguito solo sul sistema operativo Windows.

Prenderò per scontato che tu stia utilizzando Windows Server e Microsoft SQL Server.

Firewall:

  • Blocca tutte le connessioni.
  • Consenti la porta 1433 (SQL TCP) per il tuo computer che parla solo con SQL
  • Consenti la porta 1433 (SQL UDP) per il tuo computer che parla solo con SQL
  • Qualsiasi altro servizio relativo alla rete richiesto come RDP ecc.

di Windows: Se il tuo server può essere violato, una volta che l'utente malintenzionato si trova sul tuo server, avrà accesso completo al tuo SQL. Quindi, assicurati che gli aggiornamenti di Windows siano aggiornati, che l'account ospite sia disabilitato, che usi la password complessa e così via.

SQL: Assicurati che tutti gli account all'interno di SQL abbiano password complesse. GRANT EXEC potrebbe non fornire i permessi desiderati richiesti. Se l'oggetto è creato da un altro proprietario, avrai bisogno delle autorizzazioni su cosa effettivamente fa la stored procedure. Ad esempio, se avevi SELECT * FROM dbo.Product nella stored procedure che è stata creata dall'utente Paul, allora l'utente Developer Nation non sarebbe in grado di eseguirlo in quanto avrebbe l'autorizzazione SELECT negata per la tabella dbo.Product.

Spero che questo sia un buon punto di partenza per te.

    
risposta data 29.01.2016 - 10:37
fonte
0

Per proteggere un server è possibile seguire il modello TCP / IP per cercare di avere il sistema più sicuro possibile.

Conquestomodelloapplicheraiilprincipiodi sicuro in profondità e applicherai un principio protetto su ogni livello del modello.

Esempio: Se il tuo server SQL parla solo con alcuni server nella stessa rete locale, puoi creare una tabella ARP statica con ciascun server.

Per proteggere i tuoi livelli 3 e 4 (protocollo IP e TCP), applicherai le regole del firewall in questo modo:

# MYSQL FROM WEB SERVERS
-A INPUT -s <ip source> -d <ip destination> -i eth0 -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 3306 -j ACCEPT
-A OUTPUT -s <ip source> -d <ip destination> -o eth0 -p tcp -m state --state ESTABLISHED -m tcp --sport 3306 -j ACCEPT

Dopo, applicherete le regole sicure sul vostro server SQL:

  • creare utenti con diritti appropriati sui DB non si connettono con le credenziali di root, crea un utente per db e tutti gli altri protetti specifici per il tuo server SQL
  • proteggi il tuo server (il SO) fisicamente e logicamente

Infine, sarai consapevole di proteggere le applicazioni (se puoi) che si connettono al tuo server SQL.

Con tutto ciò, hai un punto di partenza per iniziare a proteggere il tuo sistema.

    
risposta data 29.01.2016 - 08:47
fonte
0

Sono d'accordo con TesselatingHeckler sul fatto che dovresti pensarci due volte su questo perché creare un grande progetto con soluzioni di copia di pasta semi-assing in server e SQL è davvero una cattiva idea. Puoi leggere le informazioni necessarie ma, come detto, è davvero molto ampia. Probabilmente dovresti iniziare con il database poiché questa è la parte più critica di un'applicazione e cercare alcune informazioni sul problema di sicurezza più comune, SQL injection. OWASP è il miglior riferimento per questo:

link
link
link

    
risposta data 29.01.2016 - 09:18
fonte

Leggi altre domande sui tag