Qué son los web shell y cómo proteger tu sistema de ellos

Qué son los web shell y cómo proteger tu sistema de ellos

Lorena Fernández

Las aplicaciones web están en permanente auge. Millones de usuarios se valen de las mismas a diario para entretenerse, estudiar y trabajar. A pesar de que las aplicaciones tradicionales siguen vigentes y también muchas personas las utilizan, se mantiene la tendencia del uso de sus versiones web. Son livianas, eficientes y consumen mucho menos recursos en general. Sin embargo, ¿estamos protegiendo a los servidores de manera adecuada? Esta guía te explicará todo sobre una de las grandes amenazas: los web shells.

¿Qué es un web shell?

Es un script malicioso que se introduce en los sistemas que son atacados. En la mayoría de los casos, los servidores web forman parte del objetivo. Una vez que dichos sistemas cuentan con el web shell, el cibercriminal puede tener control remoto del mismo. En consecuencia, tendrá acceso persistente al sistema y podrá manejarlo como quiera. Esto significa que los web shells tienen la capacidad de crear backdoors en los sistemas vulnerados para tener cierto control e incluso el control total.

Además, los web shells tienen un alcance mucho mayor. También pueden vulnerar a interfaces de gestión de dispositivos en red. Por lo que es sumamente importante tener buenas prácticas de gestión segura en redes. Sobre todo, si se trata de aquellas que cuentan con cientos y miles de dispositivos conectados a diario. El auge del teletrabajo trae consigo riesgos de seguridad, que, si bien son ya conocidos, estos merecen especial atención, debido a que, evidentemente, no es lo mismo trabajar en un entorno de red «seguro» de una empresa, que desde casa. Sin embargo, podrías preguntarte si no es suficiente utilizar servicios de VPN para que podamos conectarnos con total seguridad a nuestros recursos de la organización, esa es tan sólo una parte de lo que un administrador de red debe hacer.

Una de las ventajas que tienen los ataques web shell es que son polivalentes y difíciles de detectar. Además son peligrosos y los podrían usar para:

  • El robo de datos.
  • La infección de los visitantes de una web.
  • El lanzamiento de ataques DDoS
  • La modificación de archivos con intenciones dañinas.
  • Para su utilización como un bot que forma parte de una botnet.

Detección de un web shell

La principal dificultad que se presenta a la hora de detectar este tipo de malware es que los atacantes pueden aplicar métodos de cifrado para cubrir su actividad maliciosa. Esto es consecuencia directa de la facilidad en que se pueden introducir los scripts. Como sabemos, para los ciberataques hay posibilidades infinitas y el escudo de protección de las redes debe reforzarse cada vez más. Algunos de los métodos de detección eficaz son los siguientes:

  • Comparar una versión de la aplicación web distinta a la que se encuentra en producción. Esto último se refiere a la aplicación que está disponible para los usuarios. Esta comparación servirá para analizar las diferencias ante cualquier señal de actividad inusual.
  • Buscar anomalías en el tráfico de la aplicación web mediante herramientas de monitorización.
  • Aplicar detección basada en firmas, es decir, verificar todas las web shells que hayan sido modificadas. Aunque estas hayan sufrido una modificación mínima.
  • Buscar flujos de tráfico en la red que tengas características inusuales.

¿Qué herramientas y qué procedimientos debo aplicar para el proceso de detección de estos scripts maliciosos? A continuación, compartimos recomendaciones fundamentales para protegerte eficazmente.

Cómo proteger tus sistemas y redes de los web shells

Este tipo de malware se introduce mediante vulnerabilidades presentes en:

  • Aplicaciones web
  • Malas prácticas de configuraciones de seguridad para servidores

Como hemos comentado anteriormente, estos web shells también se introducen directamente a los sistemas y redes que son víctimas, esto se da principalmente porque las aplicaciones web (en su mayoría) y su infraestructura vulnerable tienen permisos para realizar modificaciones de forma directa a un directorio web accesible, o bien, a piezas de código web. Sin embargo, este tipo de permisos no debería concederse.

En consecuencia, los propios sistemas abren la puerta sin inconveniente alguno a los cibercriminales para llevar a cabo los ataques. Por lo que se recomienda bloquear los permisos de modificación. Ahora bien, si es que no existe esa posibilidad, se cuenta con una alternativa.

Los ataques shell web pueden permitir a los actores de amenazas ejecutar comandos de forma remota en un servidor y pueden causar graves prejuicios a las organizaciones. Una cosa a tener en cuenta es que el malware basado en scripts eventualmente se canaliza en algunos puntos como cmd.exe, powershell.exe y cscript.exe.

En ese sentido la prevención es fundamental y Microsoft nos recomienda seguir una serie de pautas:

  • Hay que identificar y corregir vulnerabilidades o configuraciones incorrectas en aplicaciones web y servidores web.
  • Debemos implementar la segmentación adecuada de su red perimetral. El objetivo es que un servidor web comprometido de nuestra organización no ponga en riesgo al resto.
  • Tenemos que habilitar la protección antivirus en los servidores web. Además debemos activar la protección proporcionada en la nube para obtener las últimas defensas contra las nuevas amenazas.
  • En cuanto a los usuarios sólo deben poder cargar archivos en directorios que puedan ser escaneados por un antivirus. Por otra parte también deben estar configurados para no permitir la ejecución o secuencias de comandos del lado del servidor.
  • Hay que auditar y revisar los registros de los servidores web con frecuencia. Tenemos que conocer que sistemas exponemos directamente a Internet.
  • Debemos utilizar el Firewall de Windows Defender, los dispositivos de prevención de intrusiones y su firewall de red para evitar la comunicación del servidor de comando y control entre los puntos finales siempre que sea factible.
  • Tenemos que verificar el firewall perimetral y el proxy para restringir el acceso innecesario a los servicios.
  • Necesitamos una buena política de cuentas y de credenciales. Aquí es importante limitar el uso de las cuentas de administrador local o de dominio a las estrictamente necesarias.

Sistemas IDS/IPS y firewall de aplicaciones web

Esta alternativa consiste en poner en marcha un esquema de monitoreo de integridad de los archivos que están alojados en la infraestructura de las aplicaciones. De esta manera, los administradores contarán con la visibilidad necesaria ante cualquier eventualidad de cambios que puedan ocurrir en los directorios web y las piezas de código.

Por otro lado, un firewall especial para aplicaciones web. La misma está orientada a aquellas aplicaciones basadas en HTTP. Aplica una serie de reglas cuando se da una conversación HTTP. Un beneficio adicional y muy destacable es que estas reglas propias de estos firewalls también pueden proteger de otros ataques más letales como el Cross-Site Scripting y las inyecciones SQL, entre otros. De acuerdo a la organización OWASP, este tipo de firewall está orientado a la protección a servidores. Así como los proxies protegen a los hosts (a los usuarios). De hecho, los Firewalls de Aplicaciones Web también se lo considera como un tipo de proxy reverso.

Recursos de la NSA

Esta reconocida agencia de los EEUU ha puesto a disposición un completo repositorio en Github. En este repositorio podemos encontrar un amplio listado de métodos y herramientas que ayudarán a que tu sistema esté protegido del malware de tipo web shell. Un punto interesante es que no será necesario realizar mayores inversiones en cuanto a soluciones de seguridad se refiere.

Ponemos como ejemplo a PowerShell de Microsoft. En el repositorio que hemos compartido, encontrarás soporte para realizar detección de web shells mediante un esquema de comparación «Known Good». Además, podrás realizar detección de solicitudes sospechosas en los logs de los servidores web.

Como vemos, es importante estar al tanto de las principales vulnerabilidades que se presentan no sólo a los servidores de aplicaciones web, sino también aquellos que están ligados a aplicaciones tradicionales e incluso, las propias redes de datos. En cuanto a ciberataques, hay posibilidades infinitas y el escudo de protección debe ser lo más robusto posible. Por fortuna, los recursos en línea y las herramientas sumamente accesibles nos pueden ayudar como administradores a prevenir más de una tragedia.

Sin duda, se trata de una buena forma de bloquear amenazas de este tipo que incluyen entre otros:

  • Secuencias de comandos para la comparación de archivos conocidos buenos con WinDiff, PowerShell y Linux Diff.
  • Detección de solicitudes anómalas en los registros del servidor web con consultas de Splunk para registros del servidor web, Script de PowerShell para registros de Microsoft IIS y Script de Python para registros httpd de Apache
  • Reglas YARA para detectar shells web comunes
  • Reglas HIPS para permitir que el sistema de seguridad basado en host de McAfee bloquee directorios web.

El informe de Microsoft sobre el aumento de los ataques web shell

Esta situación no viene de ahora, hace un año ya se informaba del gran aumento en la utilización de shells web en ataques por todo el mundo. En un informe del equipo de investigación de Microsoft 365 Defender ha desvelado que esa tendencia además de continuar también se aceleró. Así, desde agosto de 2020 hasta enero de 2021 se pudieron detectar un promedio de 140.000 de ataques con shell web. Si lo compramos con el año pasado podemos apreciar que son casi el doble ya que entonces la media mensual era de 77.000 ataques.

Aquí tenéis un gráfico en el que se aprecia de cómo se han casi duplicado los ataques shell web.

Los ciberdelincuentes instalan shells web en los servidores aprovechando los fallos de seguridad. Habitualmente son vulnerabilidades en las aplicaciones web o en los servidores conectados a Internet. La forma de actuar de estos cibercriminales es escaneando Internet. Un practica habitual suele ser utilizar interfaces de escaneo públicas como shodan.io para localizar los servidores a los que atacar.

Una herramienta con capacidades de contención y bloqueo basadas en el comportamiento como Microsoft Defender for Endpoint puede identificar y detener los ataques de shell web. Así, genera alertas para estas intrusiones para que los equipos de seguridad utilizando esta herramienta puedan realizar investigaciones adicionales y buscar amenazas relacionadas o similares. Este sería un ejemplo en el que un comportamiento sospechoso ha sido bloqueado.

No obstante, como veremos a continuación, se pueden tomar una serie de mediadas preventivas para proteger los servidores.

¡Sé el primero en comentar!