Una webshell normalmente aparece cuando una aplicación web permite subir o ejecutar algo que no debería.
También prospera cuando la detección es lenta y las cuentas de administración no tienen fricción.
La prevención nace en tres capas: código, configuración e inventario operativo.
Capas de prevención
1) Capa de aplicación
- Valida tipo MIME real, no solo extensión.
- Restringe directorios de carga y elimina ejecución donde no la necesitas.
- Usa listas blancas de extensiones y bibliotecas autorizadas.
- Sanitiza archivos, metadatos y entradas de usuarios antes de procesarlas.
No dejes la validación “solo en frontend”; debe existir también en backend.
2) Capa de servidor y red
- Coloca los directorios de contenido y ejecución en ubicaciones separadas.
- Configura WAF para bloquear patrones de ejecución y carga anómala.
- Implementa reglas de salida (egress) para limitar destinos desde servidores web.
- Segmenta servicios de frontend, base de datos y administración.
3) Capa operativa
- Control estricto de cuentas administrativas: no reutilices contraseñas y aplica MFA.
- Rotación de credenciales y acceso temporal para terceros.
- Registra cambios de configuración, despliegues y tareas de mantenimiento.
- Centraliza logs en una sola fuente con alertas accionables.
Controles de detección temprana
- Baseline de cambios de archivos por ruta y propietario.
- Alertas por comandos inusuales de shell en procesos del servidor web.
- Alerta por inicios de sesión administrativos fuera de patrón.
- Revisiones semanales de alertas críticas con evidencias y responsables.
Ciclo de endurecimiento continuo
Semana 1: higiene base
- Revisar endpoints de carga y tamaño máximo permitido.
- Corregir permisos de escritura y ejecución.
Semana 2: visibilidad
- Habilitar logs de integridad y de acceso.
- Definir umbrales de alerta por criticidad.
Semana 3: contención y pruebas
- Aplicar endurecimiento de controles en entorno de pruebas.
- Ejecutar pruebas de revisión de carga e integridad.
Semana 4: consolidación
- Documentar el plan de respuesta.
- Entrenar al equipo técnico para ejecución repetible.
Lista de verificación rápida
- Límite de cargas por rol y función.
- MFA en paneles administrativos.
- Sin ejecución de scripts en directorios públicos.
- Alertas de cambios de archivo con revisión diaria.
- Procedimiento de respuesta ya documentado.