¿Qué debo hacer con alguien que intenta forzar el intento de iniciar sesión en nuestra cuenta 'sa' de SQL Server?

9

Parece que alguien o algo está intentando un intento de fuerza bruta para iniciar sesión en nuestra instancia de SQL Server de producción con la cuenta 'sa'. No han tenido éxito porque nuestra cuenta 'sa' está deshabilitada, pero ¿qué pasos debo seguir para asegurarme de que las cosas estén seguras?

intentos de acceso

Jon Erickson
fuente
1
Oye. Márquelo como respondido para que podamos seguir con nuestras vidas. :)
JohnThePro

Respuestas:

29

¿Su servidor SQL debe estar disponible públicamente en Internet? Usualmente este no es el caso. Si tiene que ser así, puede restringir el acceso por dirección IP o configurar una VPN. Obviamente, haga que la contraseña sa sea incuestionable o vea cómo restringir las ubicaciones de inicio de sesión sa solo desde sus direcciones IP de LAN. Proporcione más detalles para que otros puedan ayudarlo con mejores soluciones.

jftuga
fuente
3
Absolutamente esto. Este es un caso clásico para usar firewalls y minimizar su superficie de ataque.
Rob Moir
Además no es alguien. Es más o menos un gusano, no un humano. SQL Server en internet + no cambia el puerto predeterminado = ignorando completamente la realidad (internet no es un buen lugar).
TomTom
5

Lo primero que puede hacer es comenzar con una lista negra de esa dirección IP y negar directamente CUALQUIER tráfico de su IP en su firewall. Por supuesto, es posible que solo cambien las direcciones IP, pero al menos evitará que bombardeen su servidor con tráfico y registros.

JohnThePro
fuente
3

Deshabilite ese puerto (MySQL es 3306; no recupere el puerto de SQL Server, ¿quizás 118?) A través del firewall. Entonces nadie puede acceder a ella.
Si se necesita acceso externo a SQL, vuelva a asignarlo a un puerto de alto número, como 53535. Si alguien descubre que ese puerto está abierto, será difícil adivinar su importancia.

wallyk
fuente
1433; si tiene que estar abierto al exterior, cámbielo a casi cualquier otra cosa; sin embargo, eso implicará cambiar las cadenas de conexión en los clientes.
SqlACID
Y también 1434, para el servicio de descubrimiento ...
AviD
3

El inicio de sesión intenta involucrar intentos de inyectar algún código malicioso. Recomiendo bloquear esta actividad con una lista negra permanente usando el software de firewall del servidor o un firewall externo de terceros.

Además, reduzca el número de fallas de inicio de sesión permitidas, ya que esto bloqueará automáticamente la dirección IP del intruso.

Lo anterior minimizará esto.

S.Ragavendra Ganesh
fuente
2

Probablemente sea solo un script kiddie que ejecuta un escáner y no vale la pena dedicarle tiempo. Me gustaría no tener su base de datos accesible desde Internet.

JOTN
fuente
2
  • Si puede, deshabilite todo el acceso a la cuenta SQL, no solo sa, es decir, habilite solo la autenticación de Windows, sin autenticación de SQL.
  • Restrinja el acceso a la red, ya sea a través del firewall, o al menos las restricciones de IP en la caja, a aquellos servidores que requieren acceso solamente. Los usuarios públicos no necesitan acceso directo, ¿verdad?
  • Tenga en cuenta que, a continuación, probablemente intentará imponer brutalmente al usuario Administrador local. Aunque realmente no puede eliminar los permisos del administrador, puede colocarlo en un rol específico y bloquear explícitamente el acceso.
  • Si puede, deshabilite el servicio del navegador SQL Server. No hay razón para hacerlo más fácil ...
  • Realice un análisis completo de los usuarios, los permisos y las contraseñas en la base de datos; probablemente intentarán con otros usuarios a continuación.
  • Intente preguntar esto nuevamente en ITSecurity.SE para obtener más información :)
Ávido
fuente
2

Si su SQL Server debe ser accesible fuera de su netowrk, puede incluir en la lista blanca las direcciones IP externas que necesitan acceso. Las VPN son una mejor solución (pero no siempre está disponible), y la mejor solución es no tener acceso externo.

La inclusión en la lista blanca requiere más administración, pero elimina esta tontería. Si alguien necesita acceso y tiene una IP que cambia con frecuencia, puede iniciar sesión en un sistema diferente a través de RDP y conectarse desde allí al Servidor SQL.

Cambie el nombre de la cuenta sa, cree una cuenta sa falsa y desactívela.

Auditar permisos y activar una actualización de contraseña para todas las cuentas de usuario de SQL Server; quizás aumente los requisitos de seguridad de la contraseña.

Vuelva a numerar el puerto de escucha IP de SQL Server. Esto significa actualizar las configuraciones del cliente o los archivos de configuración de la aplicación.

Estoy de acuerdo con otros carteles con respecto a los probables vectores de próximo ataque y probablemente sea alguien que ejecute un script.

Robert Miller
fuente
1

Para cualquiera que busque un programa que cree la política IPSEC, los filtros, etc. y escanee automáticamente el registro de eventos y agregue las IP a la lista de bloqueo, he escrito un pequeño programa que hace exactamente eso.

También tuve este problema en el que mi registro de eventos se llenaría con miles de entradas para los piratas informáticos que intentaran iniciar sesión en mi instancia de MSSQL con el inicio de sesión 'sa'. Después de mucho buscar, decidí escribir mi propio programa, hacer que creara los elementos necesarios de IPSEC y luego escanear el registro de eventos cada 60 segundos en busca de ataques desde nuevas direcciones IP. Luego agrega la dirección IP al filtro IPSEC y bloquea todo el tráfico hacia y desde la IP. Solo he probado esto en Windows Server 2008, pero creo que también funcionará en otras versiones.

Siéntase libre de descargar el programa usando el siguiente enlace. Las donaciones siempre se agradecen utilizando el enlace en el menú contextual del icono del administrador de tareas.

http://www.cgdesign.net/programs/AutoBlockIp.zip

Tenga en cuenta que esto solo funciona para los intentos de inicio de sesión SQL utilizando el inicio de sesión 'sa', pero también podría modificarlo para que funcione para otros eventos de registro. Además, puede ver las IP que han sido bloqueadas, pero continuará viendo algunos elementos en el registro de eventos ya que el programa solo se ejecuta cada 60 segundos. Esto se debe a que no se puede eliminar una sola entrada del registro de eventos, y no pensé que eliminar todo el registro sería una buena idea.

DESCARGO DE RESPONSABILIDAD : al descargar e instalar el programa mencionado anteriormente, usted acepta eximirme de cualquier daño, pérdida de datos, corrupción o cualquier otro problema de funcionalidad resultante del uso de dicho software. He probado el programa lo mejor que he podido y actualmente lo tengo ejecutándose en 2 servidores, pero se le advirtió que lo use bajo su propio riesgo.

Cualquier pregunta o comentario, no dude en ponerse en contacto conmigo utilizando el formulario de contacto en mi sitio web en www.cgdesign.net

-Chris

cglavan
fuente
Hace un buen trabajo al revelar su afiliación con el producto. Tenga cuidado, generalmente no apreciamos las sesiones de ventas.
Scott Pack
0

Debería restringir los intentos de inicio de sesión, por lo que si el mismo usuario intenta iniciar sesión más de 5 veces, no podrá realizar más intentos durante algunas horas o un día. Al menos, entonces no pueden forzar un inicio de sesión bruto después de un millón de intentos.

Y como otros han dicho, no permita el acceso público si no es necesario. Puede restringir el acceso a un conjunto de IP conocidas si algunas personas necesitan acceso externo.

Cabra descontento
fuente
1
La cuenta ya está deshabilitada, no se puede deshabilitar mucho más.
mrdenny
@mrdenny: Estaba pensando más en las cuentas no deshabilitadas para el primer párrafo. Si alguien es una fuerza bruta 'sa', podría comenzar fácilmente con otra cuenta. Después de 5 intentos en una cuenta deshabilitada, simplemente bloquéelos por completo.
DisgruntledGoat
Los gatitos de script generalmente solo atacarán la cuenta sa ya que ya conocen el nombre de usuario. De lo contrario, también deben forzar el nombre de usuario, lo que lleva el doble de tiempo y no tienen forma de saber si el nombre de usuario existe o no.
mrdenny