Si los ciberdelincuentes quieren infiltrarse en su sistema, tienen bastantes opciones.
Podrían atacar usando vulnerabilidades y exploits para evitar las medidas de seguridad que tiene y engañar a sus servidores para que ejecuten un software que no deberían.
O podrían descubrir cómo entrar sin ningún tipo de truco de bajo nivel, usando la entrada oficial y empleando los comandos oficiales del sistema.
Eso es un poco como tomar un taxi para robar un banco en lugar de usar un coche robado, no es algo muy de gánster, pero no disparará ninguna cámara al leer la matrícula por el camino.
Como sabrán los lectores habituales, una de las fórmulas más populares para lo ciberdelincuentes en este momento es Windows RDP, abreviatura de Remote Desktop Protocol.
Lamentablemente, en los últimos años hemos escrito muchas veces sobre las bechas de seguridad de RDP que permiten que los delincuentes ingresen en su red como si fueran verdaderos administradores de sistemas…
… excepto que en lugar de arreglar las cosas, las rompen y luego exigen dinero para reparar el daño.
Pero RDP no es la única forma popular entre los delincuentes.
Recientemente hemos publicado un informe sobre honeypot centrado en los ataques SSH, donde SSH significa Secure Shell, un sistema de acceso remoto que se usa aún más extendidamente en Linux y Unix que RDP en Windows.
(SSH también es popular en los servidores de Windows, pero no tiene la adopción cercana al 100% que tiene en sus primos de Unix).
Nuestra investigación, dibujó una imagen clara de los esfuerzos que los ciberdelincuentes están dispuestos a realizar para entrar en su red utilizando métodos no aceptables.
El uso de herramientas legítimas para la entrada ilegal, no solo abre a los ciberdelincuentes un conjunto mucho más amplio de ataques, sino que también evita el riesgo de que los exploits sea detectados o causar un fallo del servidor.
Desafortunadamente, los delincuentes no están satisfechos con el uso de SSH y RDP como herramientas de ataque de propósito general.
Hay muchos otros servicios en línea, incluidos algunos que puede que no sospeches, que son tan buenos como una línea de comandos, si puedes conectarte a ellos en primer lugar.
Por ejemplo, un servidor MySQL inseguro no es solo el camino hacia un robo de datos.
También es una alternativa altamente efectiva, aunque poco ortodoxa, a RDP o SSH para ejecutar software de forma remota.
Aquí hay un ejemplo fascinante capturado recientemente por un honeypot de SophosLabs que estaba escuchando en el puerto TCP 3306, el puerto de acceso predeterminado para MySQL.
El servidor simulado pretendía ser una instancia insegura de MySQL que los hackers podían encontrar, probar y conectar.
Los honeypots atraen a los piratas informáticos deliberadamente para realizar un seguimiento de las técnicas de ataque que los ciberdelincuentes están utilizando actualmente, dentro de ciertos límites, por supuesto, porque el honeypot no debe permitir que los ladrones hagan ningún daño real.
Los operadores de Honeypot deben tener cuidado de ser parte de la solución sin convertirse en parte del problema. Por ejemplo, si estás tratando de atraer a los spammers con lo que parece una computadora zombie que está lista y esperando para enviar correos electrónicos no deseados, debes ir lo suficientemente lejos como para permitir que los ladrones construyan los mensajes que desean enviar, para agregar la archivos adjuntos que desean distribuir, y para revelar cuántas personas desean enviar correo no deseado. Pero no debes permitir que salga ninguno de los mensajes dudosos o, de lo contrario, le estás dando a los estafadores un servicio gratuito de spam.
En el ataque basado en SQL capturado por SophosLabs, los estafadores intentaron convertir el servidor MySQL del honeypot en un robot de ejecución remota de código, utilizando una secuencia como esta:
- Conéctate al servidor.
- Adivina las credenciales de un usuario autorizado e inicia sesión.
- Cree una tabla de base de datos de apariencia inocente y agregue un registro de texto que consiste en texto que en realidad es un archivo ejecutable de Windows en formato hexadecimal.
- Decodifique los datos hexadecimales y guárdelos como un archivo local llamado cna12.dll. Una DLL es un tipo especial de programa de Windows diseñado para ser cargado por una aplicación que ya se está ejecutando para agregar características adicionales.
- Indique al servidor que cargue la nueva DLL como un complemento de MySQL conocido como función definida por el usuario (UDF),
- Llame a una función en el nuevo complemento para buscar y ejecutar malware utilizando HTTP.
En pocas palabras, los ciberdelincuentes utilizaron MySQL como un zombi de ejecución remota de código de propósito general, gracias al sistema de plugin UDF oficial de MySQL que permite que funciones adicionales sean absorbidas por el servidor en tiempo de ejecución.
El ataque no fue particularmente sofisticado porque los ladrones no se dieron cuenta de que el honeypot estaba ejecutando Linux, y cargó un código ejecutable específico para la versión de MySQL para Windows.
Sin embargo, si el servidor estuviera ejecutando Windows, la descarga HTTP en el paso 6 anterior habría desatado un ransomware conocido como GandCrab.
Para obtener un desglose detallado de las técnicas utilizadas en este ataque, y para IoC (indicadores de compromiso) que puede utilizar para verificar sondas similares en sus propios servidores, lea el análisis técnico en nuestro sitio asociado, Sophos News.
¿Qué hacer?
No debes ser vulnerable a este tipo de ataque.
El brote global masivo del virus SQL Slammer en 2003 debería habernos enseñado a mantener a nuestros servidores SQL aislados de Internet, y el potencial de abuso de la función UDF de MySQL ha sido bien documentado durante casi todo el tiempo.
Pero el hecho de que sigamos capturando intentos no sofisticados y automatizados de ingresar a través de puertos SQL orientados a Internet es un recordatorio de que todavía estamos cometiendo viejos errores.
Así que aquí está lo que hay que hacer:
- Asegúrese de que no se pueda acceder directamente a sus servidores SQL desde Internet. Si lo son, es casi seguro que es un error. Si no es un error, es tan mala idea que necesita encontrar otra forma de acceder a ellos de forma remota. Considere utilizar una VPN o SSH como el primer punto de entrada en su lugar, e insista en 2FA para todos sus usuarios.
- Elija las contraseñas robustas. El ataque descrito aquí no puede ser realizado por un usuario no autenticado, así que no se arriesgue con contraseñas débiles. Incluso si solo se puede acceder a su servidor SQL internamente, no desea que cualquiera pueda iniciar sesión fácilmente, especialmente como un usuario privilegiado.
- Compruebe su configuración de control de acceso de MySQL. Solo los usuarios con derechos INSERT en la base de datos mysql pueden cargar nuevas UDF, por lo que cualquiera que pueda montar este ataque ya tiene suficiente poder para hacer muchas otras cosas. (Sería bueno tener la opción de desactivar las UDF si nunca las usas, pero no podemos encontrar la manera de hacerlo. El único truco que podemos encontrar para inhibir la carga de UDF es construir tu propia versión estática de mysqld desde el código fuente).
- Considere la posibilidad de pruebas de penetración. Probablemente conozca todas las estrategias defensivas enumeradas anteriormente e intente seguirlas, pero vale la pena verificar que las haya aplicado correctamente. Los errores suceden, y si no los cuidas, seguramente lo hará otra persona.
Manténgase seguro: cierre las escotillas y luego verifique que todo este ajustado correctamente.
Para manteneros al día de las últimas amenazas haceros fans de nuestra página de Facebook o síguenos en Twitter para intercambiar experiencias en torno al mundo de la seguridad. Si deseas recibir nuestro boletín de seguridad en tu correo electrónico, suscríbete en la siguiente aplicación: