En el marco del proyecto. Módulo para la conexión con el intérprete de PHP 7, diseñado para mejorar la seguridad del entorno y bloquear errores comunes que generan vulnerabilidades en aplicaciones PHP. El módulo también permite la creación de parches virtuales para solucionar problemas específicos sin modificar el código fuente de la aplicación vulnerable, lo que resulta conveniente para sistemas de alojamiento masivo donde es imposible mantener actualizadas todas las aplicaciones de los usuarios. El módulo está escrito en C y se incluye como biblioteca compartida («extension=snuffleupagus.so» en php.ini). con licencia LGPL 3.0.
Snuffleupagus proporciona un sistema de reglas que permite usar plantillas estándar para mejorar la seguridad y crear reglas propias para controlar los datos de entrada y los parámetros de las funciones. Por ejemplo, la regla "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();" permite restringir el uso de caracteres especiales en los argumentos de la función system() sin modificar la aplicación. De forma similar, se pueden crear para bloquear vulnerabilidades conocidas.
Según las pruebas realizadas por los desarrolladores, Snuffleupagus prácticamente no afecta al rendimiento. Para garantizar su propia seguridad (ya que posibles vulnerabilidades en la capa de seguridad podrían servir como vectores de ataque adicionales), el proyecto prueba exhaustivamente cada cambio en múltiples distribuciones, utiliza sistemas de análisis estático y formatea y documenta el código para facilitar la auditoría.
Se proporcionan métodos integrados para bloquear este tipo de vulnerabilidades como problemas, con serialización de datos, uso de la función PHP mail(), filtración del contenido de las Cookies durante ataques XSS, problemas al cargar archivos con código ejecutable (por ejemplo, en el formato ), generación de números aleatorios de mala calidad y construcciones XML incorrectas.
Para mejorar la seguridad de PHP, se admiten los siguientes modos:
- Habilite automáticamente los indicadores "seguros" y "mismo sitio" (protección CSRF) para cookies, Galleta;
- Conjunto integrado de reglas para identificar rastros de ataques y compromiso de aplicaciones;
- Activación global forzada del "" (por ejemplo, bloquea un intento de especificar una cadena cuando se espera un valor entero como argumento) y protección contra ;
- Bloqueo por defecto (por ejemplo, prohibir "phar://") con su lista blanca explícita;
- Prohibición de ejecutar archivos que se puedan escribir;
- Listas blancas y negras para evaluación;
- Requerido para habilitar la verificación del certificado TLS cuando se usa
rizo; - Agregar HMAC a los 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 a través de enlaces en documentos XML;
- Capacidad para conectar controladores externos (upload_validation) para verificar y escanear archivos cargados;
El proyecto fue creado y se utiliza para proteger a los usuarios en la infraestructura de uno de los principales operadores de alojamiento web franceses. , que simplemente habilitar Snuffleupagus protegería contra muchas de las peligrosas vulnerabilidades descubiertas este año en Drupal, WordPress y phpBB. Vulnerabilidades en Magento y Horda podría bloquearse activando el modo
"sp.readonly_exec.enable()".
Fuente: opennet.ru
