Servidor SQL en Internet

Servidor SQL en Internet

Tengo una aplicación de escritorio que se conecta directamente a SQL Server. Veo muchas publicaciones que dicen que no se debe exponer SQL Server directamente a Internet, pero ninguna dice por qué. Algunos antecedentes:

  • La escalabilidad, el equilibrio de carga y otros criterios de rendimiento no son un problema para mi escenario
  • Mi aplicación necesita funcionar localmente (con SQL Server local) o con un repositorio remoto para que varios usuarios puedan compartir datos (SQL Server alojado, que es mi pregunta)

Me di cuenta de que conectarse a SQL Azure parece muy parecido a un servidor SQL remoto estándar (http://www.windowsazure.com/en-us/develop/net/how-to-guides/sql-database/#using-sql-server)

Entiendo que abrir cualquier puerto es una vulnerabilidad heredada, pero esa no puede ser la única razón. Debo estar perdiendo algo pero no estoy seguro de qué.

¿Cuál es una alternativa real además de implementar la mitad inferior de mi aplicación como un servicio web?

Respuesta1

Hay varias razones para ello, pero la más relevante es que alguien que no tenga experiencia tanto en el servidor SQL como en la seguridad de la red probablemente cometerá uno o más errores comunes.

Por ejemplo, podría utilizar el inicio de sesión SQL "sa" para conectarse, que es la cuenta de administrador del sistema predeterminada y tiene control total sobre el servidor SQL.

O podría estar utilizando otro inicio de sesión de SQL Server, que tiene una contraseña débil, por lo que un atacante puede intentar un ataque de fuerza bruta para elevar sus privilegios.

O podría haber dejado habilitada alguna cuenta de usuario predeterminada de solo lectura (para esta o cualquier otra aplicación), que los atacantes explorarán activamente en busca de scripts de explotación para que puedan recuperar datos de su base de datos.

Algunas buenas medidas para protegerse de los ataques remotos más básicos:

  • limite la conectividad a aquellas IP y clientes en los que confía
  • utilice la autenticación integrada de Windows siempre que sea posible y desactive cualquier inicio de sesión con contraseñas débiles
  • Si debe utilizar la autenticación de SQL Server, cambie el nombre/deshabilite el inicio de sesión de sa y establezca contraseñas seguras (>10 caracteres) en todos los inicios de sesión.

información relacionada