Snuffleupagus, un excelente módulo para bloquear vulnerabilidades en aplicaciones PHP
Si eres desarrollador web, tal vez este articulo sea de tu interés ya que en el hablaremos un poco sobre el proyecto Snuffleupagus, el cual proporciona un módulo al intérprete de PHP para aumentar la seguridad del entorno y bloquear los errores típicos que conducen a vulnerabilidades en la ejecución de aplicaciones PHP.
Este modulo esta diseñado de una forma bastante interesante, ya que aumenta drásticamente el trabajo que se tiene que realizar para poder tener éxito en los ataques contra sitios web, al eliminar clases completas de errores. También proporciona un potente sistema de parches virtuales, que permite al administrador corregir vulnerabilidades específicas y auditar comportamientos sospechosos sin tener que tocar el código PHP.
Sobre Snuffleupagus
Snuffleupagus se caracteriza por proporciona un sistema de reglas que permite usar ambas plantillas estándar para aumentar la protección y crear sus propias reglas para controlar los datos de entrada y los parámetros de función.
Ademas, proporciona métodos incorporados para bloquear clases de vulnerabilidades como problemas relacionados con la serialización de datos, uso inseguro de la función PHP mail (), pérdida de contenido de cookies durante ataques XSS, problemas debido a la descarga de archivos con código ejecutable (por ejemplo, en formato phar ) ,Sustitución de construcciones XML incorrectas.
El módulo también le permite crear parches virtuales al administrador del sitio web para solucionar problemas específicos sin cambiar el código fuente de la aplicación vulnerable, lo cual es conveniente para su uso en sistemas de alojamiento masivo donde es imposible mantener actualizadas todas las aplicaciones de los usuarios.
Los gastos generales de recursos derivados del funcionamiento del módulo se estiman como mínimos. El módulo está escrito en lenguaje C, está conectado en forma de una biblioteca compartida en el fichero “php.ini”.
De las opciones de seguridad que ofrece Snuffleupagus, se destacan las siguientes:
- Inclusión automática de banderas «seguras» y «samesite» (protección contra CSRF) para cookies, cifrado de cookies.
- Conjunto incorporado de reglas para identificar rastros de ataques y aplicaciones comprometedoras.
- La inclusión global forzada del modo estricto «strict» que por ejemplo, bloquea el intento de especificar una cadena mientras se espera un valor entero como argumento y la protección contra la manipulación de tipos.
- El bloqueo predeterminado de envoltorios para protocolos (por ejemplo, la prohibición «phar://») con su permiso explícito para la lista blanca.
- Prohibición de la ejecución de archivos que se pueden escribir.
- Listas en blanco y negro para eval.
- Habilitación de la validación obligatoria del certificado TLS cuando se usa curl.
- Agregar HMAC a objetos serializados para garantizar que la deserialización recupere los datos almacenados por la aplicación original.
- Solicitar modo de registro.
- Bloquear la carga de archivos externos en libxml usando enlaces en documentos XML.
- Posibilidad de conectar controladores externos (upload_validation) para verificar y escanear archivos descargados.
- Hacer cumplir la validación del certificado TLS cuando se usa curl
- Solicitar capacidad de descarga
- Una base de código relativamente sana
- Un completo paquete de pruebas con una cobertura cercana al 100%
- Cada confirmación se prueba en varias distribuciones
Información adicional
Actualmente este modulo se encuentra en su versión 0.5.1 y en ella se destaca un mejor soporte para PHP 7.4 y compatibilidad implementada con la rama PHP 8 (que actualmente sigue en desarrollo).
Ademas de que el conjunto de reglas predeterminado se ha actualizado y al que se han agregado nuevas reglas para vulnerabilidades y técnicas recientemente descubiertas para atacar aplicaciones web.
¿Cómo instalar Snuffleupagus en Linux?
Finalmente para quienes estén interesados en poder probar este modulo en pruebas de pentest de sus aplicaciones con la finalidad de mejorar la seguridad de ellas o con la finalidad de aumentar la seguridad de sus aplicaciones.
Lo que deben hacer es dirigirse al sitio web oficial del modulo y en su sección de descargas podrán encontrar instrucciones para algunas de las diferentes distribuciones de Linux, el enlace es este.
Aun que, también pueden optar por una instalación desde el código fuente, para ello pueden seguir las instrucciones que se detallan en este enlace.
Por ultimo y no menos importante, si quieren conocer mas al respecto, leer la documentación o obtener el código fuente para su revisión, podrán hacerlo desde este enlace.