¡Hola, chicos!
En el artículo número 350 de este blog, me gustaría compartir con vosotros mi experiencia durante varias pruebas que realicé sobre Ransomware en servidores de bases de datos SQL Server, como WannaCry, que descargué e “infecté” mi VM solo para realizar estas pruebas, entender cómo actúa y cómo podemos protegernos contra este tipo de ataques que, por increíble que parezca, todavía son comunes en el día a día de los DBA que trabajan en empresas de consultoría.

Ejecutemos el Ransomware para iniciar el análisis.

Para crear este artículo, me basé en valiosos consejos de MVP André Ruschel lo cual me ayudó a comprender mejor cómo opera este Ransomware en general, recordando que el propio WannaCry tiene varias variaciones, por lo que existe la posibilidad de que otra variante del mismo actúe de formas ligeramente diferentes a las que explicaré aquí.

¿Qué es el ransomware?

Haga clic para ver el contenido
Según el Manual de seguridad en Internet, El ransomware es un tipo de código malicioso que hace que los datos almacenados en un dispositivo sean inaccesibles, generalmente mediante cifrado, y que exige el pago de un rescate (rescate) para restaurar el acceso al usuario, donde el pago del rescate generalmente se realiza mediante bitcoins u otras criptomonedas.

El Ransomware más conocido hasta la fecha es WannaCry, el cual fue considerado el mayor ataque de este tipo jamás registrado hasta la fecha, comenzando el 12/05/2017, atacando alrededor de 150 países e infectando más de 230 mil sistemas, aunque hay varios otros ejecutándose en la red.

El comportamiento del ransomware suele ser muy similar:

  • Intentos de ataque de fuerza bruta a RDP, SSH y otras conexiones para obtener el control de la máquina host. También se puede infectar de forma tradicional: archivos adjuntos en correos electrónicos y enlaces de Internet.
  • Una vez ejecutado, el programa comenzará a cifrar archivos de ciertas extensiones en discos, unidades extraíbles y unidades de red accesibles (SMB). Durante mis pruebas en una máquina virtual (VM), dejé un disco en la máquina física compartido con la VM y se cifraron varios archivos en ese disco.
  • El ransomware cifrará archivos silenciosamente en segundo plano
  • Una vez completado el proceso, cambiará el fondo de pantalla del escritorio, dejando en claro que la máquina ha sido comprometida y generalmente requiere una pantalla para informarle que la máquina ha sido atacada e instrucciones para realizar el pago.

¿Cómo funciona WannaCry en mi computadora?

Haga clic para ver el contenido

WannaCry: ejemplo de un entorno atacado

Hablando específicamente de WannaCry, podemos hacer algunas observaciones interesantes al respecto:

  • Este Ransomware explota una vulnerabilidad de Windows que fue reparada 2 meses antes (Marzo 2017 – MS-17-010) del ataque masivo realizado, es decir, si todos mantuvieran el sistema operativo actualizado, este ataque no habría ocurrido.
  • Determina qué archivos cifrará según la extensión de esos archivos. Aunque técnicamente es completamente posible analizar los archivos según su tipo Mime, esta verificación de los archivos llevaría mucho más tiempo y consumiría muchos recursos de la máquina, lo que facilitaría identificar que se está produciendo un ataque y facilitaría al usuario detener la acción del cracker.
  • A pesar de mostrar la ventana de pago todo el tiempo, el sistema operativo es completamente funcional, ya que si no estuviera allí no sería posible realizar el pago.
  • Si se elimina esta plaga virtual, ya sea manualmente o mediante herramientas de protección (como un antivirus), el token generado por WannaCry durante el inicio se modificará y ya no se permitirá realizar pagos.
  • Analizando los procesos en ejecución, el que consume más CPU durante el cifrado es diskpart.exe

  • Si el archivo no puede leerse, el ransomware no puede cifrarlo. Ej: archivo de base de datos de SQL Server, donde ni siquiera se puede copiar el archivo MDF con el banco en línea. Pero si tienes una foto abierta en Paint, por ejemplo, como no aplica un bloqueo al archivo, WannaCry puede cifrar la foto normalmente.
  • Wannacry realiza una elevación de privilegios y ejecuta el virus con cada sesión RDP que encuentra en el sistema operativo.
  • Durante mis pruebas, incluso con el servicio SQL Server detenido, WannaCry no pudo cifrar los archivos MDF, ya que para acceder a la carpeta DATOS de SQL Server (directorio predeterminado), Windows me pide confirmación (aunque mi usuario es Administrador). Sólo pudo cifrar los archivos cuando los moví a otro directorio sin políticas de seguridad NTFS (C:\Data). Más tarde descubrí que esto ocurre porque ignora los archivos en el directorio “C:\Program Files\”.

  • WannaCry corrompe el Servicio de instantáneas de volumen (VSS) para dificultar la recuperación de archivos cifrados
  • El ataque masivo sólo se detuvo cuando un experto en seguridad analizó el código del ransomware y descubrió que si registraba el dominio www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com, el virus abortaba nuevas infecciones en las máquinas en las que se ejecutaba.

Algún tiempo después del WannaCry Boom, estuvo disponible una posible solución que promete descifrar archivos cifrados por WannaCry en algunos sistemas operativos, siempre y cuando la máquina no se haya apagado/reiniciado desde la infección y el segmento de memoria de una información específica no se haya reasignado a otro proceso en la máquina.

Quién recuerda aquella época, era un verdadero CAOS en las empresas. En los grupos de Whatsapp circulaban varias imágenes e impresiones de grandes empresas siendo atacadas por esta plaga virtual y provocando ataques devastadores. Muchos incluso terminaron pagando el rescate para evitar perder datos importantes.

Las extensiones que WannaCry buscó cifrar fueron:
.doc, .docx, .xls, .xlsx, .ppt, .pptx, .pst, .ost, .msg, .eml, .vsd, .vsdx, .txt, .csv, .rtf, .123, .wks, .wk1, .pdf, .dwg, .onetoc2, .snt, .jpeg, .jpg, .docb, .docm, .dot, .dotm, .dotx, .xlsm, .xlsb, .xlw, .xlt, .xlm, .xlc, .xltx, .xltm, .pptm, .pot, .pps, .ppsm, .ppsx, .ppam, .potx, .potm, .edb, .hwp, .602, .sxi, .sti, .sldx, .sldm, .sldm, .vdi, .vmdk, .vmx, .gpg, .aes, .ARC, .PAQ, .bz2, .tbk, .bak, .tar, .tgz, .gz, .7z, .rar, .zip, .backup, .iso, .vcd, .bmp, .png, .gif, .raw, .cgm, .tif, .tiff, .nef, .psd, .ai, .svg, .djvu, .m4u, .m3u, .mid, .wma, .flv, .3g2, .mkv, .3gp, .mp4, .mov, .avi, .asf, .mpeg, .vob, .mpg, .wmv, .fla, .swf, .wav, .mp3, .sh, .class, .jar, .java, .rb, .asp, .php, .jsp, .brd, .sch, .dch, .dip, .pl, .vb, .vbs, .ps1, .bat, .cmd, .js, .asm, .h, .pas, .cpp, .c, .cs, .suo, .sln, .ldf, .mdf, .ibd, .myi, .myd, .frm, .odb, .dbf, .db, .mdb, .accdb, .sql, .sqlitedb, .sqlite3, .asc, .lay6, .lay, .mml, .sxm, .otg, .odg, .uop, .std, .sxd, .otp, .odp, .wb2, .slk, .dif, .stc, .sxc, .ots, .ods, .3dm, .max, .3ds, .uot, .stw, .sxw, .ott, .odt, .pem, .p12, .csr, .crt, .key, .pfx, .der

Y tenía un mecanismo para NO cifrar los siguientes directorios (manteniendo así el sistema operativo en ejecución):

  • “Contenido.IE5”
  • “Archivos temporales de Internet”
  • "Esta carpeta protege contra ransomware. Modificarla reducirá la protección"
  • “\Configuración local\Temperatura”
  • “\Datos de aplicación\Local\Temp”
  • “\Archivos de programa (x86)”
  • “\Archivos de programa”
  • "\VENTANAS"
  • “\Datos de programa”
  • “\Intel”
  • “$”

Los archivos MDF y LDF en C:\Program Files\ no se ven afectados por WannaCry

Ejemplos de directorios atacados por WannaCry:

Diagrama de rendimiento de WannaCry:

Si desea especializarse en cómo opera este Ransomware, comprenda técnicamente cómo funciona, qué llamadas realiza en el sistema operativo, consulte los archivos que incluí como referencia, ya que son muy ricos en detalles más técnicos que no son el foco de este artículo.

¿Cómo puede DBA protegerse contra ataques de Ransomware?

Haga clic para ver el contenido
Después de toda esta explicación técnica sobre cómo funciona el Ransomware, quizás te preguntes cómo el DBA y la empresa pueden protegerse contra este tipo de ataques sofisticados y complejos, pero existen varias soluciones que harán mucho más difícil que este ataque tenga éxito:
  • Evite que los servidores queden expuestos y publicados en Internet. En los casos en que el servidor de aplicaciones deba estar disponible para el acceso desde cualquier IP, asegúrese de que al menos la base de datos esté en otro servidor, aislado, inaccesible a través de Internet, al que solo se acceda a través de la red interna o VPN.
  • Gestiona bien las reglas del Firewall del servidor de bases de datos. Asegúrese de que solo los servidores de aplicaciones y máquinas específicas tengan acceso a estos servidores.
  • Mantenga Windows y SQL Server actualizados con las últimas actualizaciones disponibles, especialmente cuando la actualización dice que está solucionando un agujero de seguridad. El caso WannaCry podría haberse evitado si el sistema operativo de estas máquinas hubiera estado actualizado.
  • Windows Server debe utilizar Windows Server. Nunca consideres la posibilidad de utilizar versiones de Windows distintas a la versión Server, como Windows Starter, Professional, Home Premium, etc.
  • Mantenga siempre el sistema operativo y SQL Server con las versiones más recientes posibles. SQL Server 2008, por ejemplo, perderá soporte en junio/2019 y ya no recibirá actualizaciones ni actualizaciones de seguridad. Lo mismo sucede con Windows Server.
  • Proteja su base de datos contra ataques de fuerza bruta. Como ya mencioné, WannaCry no puede cifrar archivos en uso por la base de datos, pero si el atacante logra acceder a su base de datos, puede detener el servicio SQL o desconectar las bases de datos y luego iniciar el ataque, cifrando así sus datos.
  • Como dije anteriormente, el ransomware generalmente apunta a extensiones específicas en lugar de analizar todos los archivos mediante MIMETYPE. Lo hace para optimizar la búsqueda de archivos y el tiempo de cifrado. Debido a esto, Es una buena práctica utilizar extensiones no tradicionales en archivos de datos, registros y copias de seguridad. Evite MDF, LDF y BAK. Usa tu imaginación.

    Los archivos MDF y LDF en USE no estaban cifrados. Se cifraron los archivos MDF y LDF que NO estaban en uso. Archivos con extensiones que inventé en el acto, WannaCry no cifró

  • Hablando de copias de seguridad, ¿dónde guarda las copias de seguridad de su empresa? No está en la red ni en el mismo servidor, ¿verdad? Un paso MUY importante para garantizar que puedas recuperar los datos originales de forma segura, incluso si este ataque llega a tu empresa y cifra tus datos, el BACKUP en la nube es fundamental para ello.

    No necesariamente tiene que ser por la nube, aunque es una opción muy práctica, segura y muy económica. Se puede realizar una copia de seguridad de su copia de seguridad en cinta, disco Blu-ray, etc. Pero la copia de seguridad debe almacenarse físicamente fuera del mismo servidor de origen. Esto es muy importante para garantizar que, en un escenario de invasión total de la red, sus copias de seguridad tampoco se vean comprometidas.

    Recuerde: Si pierde los datos de su empresa y la copia de seguridad, la empresa se acaba.

  • Asegúrese de que exista una política de pruebas de respaldo periódicas en su empresa. Si no sabes cómo hacer esto, lee los artículos. Automatización de pruebas de restauración: implementación, SQL Server: restauración automática de copias de seguridad y en el artículo Restauración automatizada de bases de datos.

    No hay nada peor que el DBA esté seguro de que puede recuperarse de cualquier problema de corrupción de datos en su entorno y, cuando intenta restaurar una copia de seguridad anterior al problema, descubre que las copias de seguridad están corruptas.

    ¡La copia de seguridad sin restauración de prueba no es garantía de nada!

  • Deshabilite el inicio de sesión y cambie el nombre de los usuarios que son estándar en todas las instancias de SQL Server, como sa (que también es sysadmin), sysdba y otros. Estos son los usuarios más utilizados por ataques de fuerza bruta, como el atacante ya conoce el nombre de usuario, lo único que necesita es la contraseña.
  • Asegúrese de que ningún usuario con permisos de administrador del servidor local tenga acceso a la base de datos, ni siquiera de lectura. Y también asegurarse de que el usuario local que tiene acceso al banco tenga los permisos mínimos disponibles en el servidor.

    Si tienes dos usuarios en el servidor debido a esto (1 para administrar el servidor y otro para el banco), ¡¡usa contraseñas diferentes!! Esto hará que los ataques exitosos que utilicen a su usuario sean muy difíciles.

  • Mantenga siempre una política estricta para controlar y auditar a los usuarios administradores locales. Mantenga a estos usuarios lo más restringidos posible.
  • Tal como lo hice en el artículo. SQL Server: cómo evitar ataques de fuerza bruta a su base de datos, donde superviso el registro de SQL Server para detectar fallas de conexión, implemento este mismo control en el registro de aplicaciones y seguridad de Windows para intentos de conexión utilizando RDP, SSH y otros protocolos.
  • Bloquee o desactive el protocolo SMB cuando sea posible: puertos UDP 137 y 138 y TCP 139 y 445.

Referencias:

¿Y tú? ¿Alguna vez ha experimentado un ataque de Ransomware en su empresa? Comparte tu experiencia conmigo en los comentarios y dame tu opinión si te gustó el artículo. Acepto preguntas, sugerencias y críticas también 🙂

Realmente espero que os haya gustado, un fuerte abrazo y nos vemos en el próximo artículo.