Asegurar la base de datos SQL en línea y el servidor [cerrado]

1

Estoy tratando de construir un gran proyecto, pero carezco del conocimiento de seguridad de los servidores y SQL . Así que, por favor, ayúdame diciéndome qué pasos necesarios debo tomar.

  1. Bloquear todo el acceso remoto : - He escuchado que a través del firewall puede bloquear a todos los usuarios remotos para que conecten su servidor a menos que haya permitido que una IP específica acceda al servidor (agregando una regla para firewall). ¿Será esto suficiente para mantener a los hackers alejados?

  2. Si a un usuario de SQL solo se le otorgan GRANT EXEC , podrá hacer cualquier cosa excepto ejecutar el procedimientos de la tienda?

  3. ¿Debería optar por SO basado en Microsoft o Linux ? He escuchado que la E / S basada en Linux es muy rápida y es necesaria para mi aplicación, pero ¿es más segura en comparación con Microsoft?

Por favor, siéntase libre de corregirme donde me vaya mal, ya que soy un novato.

Gracias de antemano

    
pregunta Developer Nation 29.01.2016 - 06:21
fuente

3 respuestas

0

No has especificado qué SQL estás usando. Tenga en cuenta que Microsoft SQL Server solo se ejecutará en el sistema operativo Windows.

Supondré que usas Windows Server y Microsoft SQL Server.

Firewall :

  • Bloqueado todas las conexiones.
  • Permitir el puerto 1433 (SQL TCP) para su computadora que solo habla con SQL
  • Permitir el puerto 1433 (SQL UDP) para su computadora que solo habla con SQL
  • Cualquier otro servicio relacionado con la red que necesite, como RDP, etc.

Windows: Si su servidor puede ser pirateado, una vez que el atacante está en su servidor, tendrá acceso completo a su SQL. Por lo tanto, asegúrese de que las actualizaciones de Windows estén actualizadas, la cuenta de invitado esté deshabilitada, use una contraseña segura, etc.

SQL: Asegúrese de que todas las cuentas dentro de SQL tengan contraseñas seguras. Es posible que GRANT EXEC no le dé los permisos deseados que necesita. Si el objeto es creado por otro propietario, requerirá permisos de lo que realmente hace su procedimiento almacenado. Por ejemplo, si tenía SELECT * FROM dbo.Product en su procedimiento almacenado que fue creado por el usuario Paul, el usuario Developer Nation no podría ejecutarlo ya que tendría el permiso SELECT denegado para el dbo.Product de la tabla.

Espero que este sea un buen punto de partida para ti.

    
respondido por el Paul 29.01.2016 - 10:37
fuente
0

Para proteger un servidor, puede seguir el Modelo TCP / IP para intentar tener el sistema más seguro posible.

Conestemodelo,aplicaráelprincipiode seguro en profundidad y aplicará un principio seguro en cada capa del modelo.

Ejemplo: Si su servidor SQL habla solo con unos pocos servidores en la misma red local, puede hacer una tabla ARP estática con cada servidor.

Para proteger su capa 3 y 4 (protocolo IP y TCP), aplicará reglas de firewall como esta:

# 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

Después, aplicará reglas seguras en su servidor SQL:

  • crear usuarios con los derechos adecuados en las bases de datos no se conecta con las credenciales de la raíz, crea un usuario por base de datos y todos los demás principios seguros específicos de su servidor SQL
  • asegure su servidor (el SO) física y lógicamente

Y, por último, será consciente de proteger las aplicaciones (si es posible) que se conectan a su servidor SQL.

Con todo eso, tienes un punto de partida para comenzar a proteger tu sistema.

    
respondido por el Sorcha 29.01.2016 - 08:47
fuente
0

Estoy con TesselatingHeckler y deberías pensar dos veces sobre esto porque hacer un gran proyecto con soluciones de pasta a medias en servidor y SQL es realmente una mala idea. Puede leer la información necesaria pero, como se dijo, es realmente muy amplia. Probablemente debería comenzar con la base de datos, ya que esta es la parte más crítica de una aplicación y buscar información sobre el problema de seguridad más común, la inyección SQL. OWASP es la mejor referencia para esto:

enlace
enlace
enlace

    
respondido por el AdHominem 29.01.2016 - 09:18
fuente

Lea otras preguntas en las etiquetas