
snuffleupagus v0.14.0
Módulo de seguridad para php7 y php8 - Eliminando bugclasses y virtual-patching el resto!
Snuffleupagus
Módulo de seguridad para php7 y php8: ¡eliminando clases de bugs y aplicando parches virtuales al resto!
Características principales • Descarga • Ejemplos • Documentación • Licencia • Agradecimientos
Snuffleupagus es un módulo de PHP 7+ y 8+ diseñado para aumentar drásticamente el coste de los ataques contra sitios web, eliminando clases de bugs completas. También proporciona un potente sistema de parcheo virtual que permite a los administradores corregir vulnerabilidades específicas y auditar comportamientos sospechosos sin tener que tocar el código PHP.
Características principales
- Sin impacto notable en el rendimiento
- Reglas de parcheo virtual potentes pero sencillas de escribir
- Eliminación de varias clases de vulnerabilidades
- Ejecución de código basada en Unserialize
- Ejecución de código basada en
mail - XSS por robo de cookies
- Ejecución de código basada en subida de archivos
- PRNG débil
- XXE
- Ejecución remota de código basada en filtros y otras artimañas
- Varias funciones de endurecimiento
- Marcado automático de cookies con
secureysamesite - Conjunto de reglas integrado para detectar comportamientos posteriores a una compromisión
- Modo estricto global y prevención de manipulación de tipos
- Lista blanca de stream wrappers
- Prevención de la ejecución de archivos escribibles
- Lista blanca/negra para
eval - Aplicación de la validación de certificados TLS al usar curl
- Capacidad de volcado de solicitudes
- Marcado automático de cookies con
- Una base de código relativamente sensata:
- Un completo conjunto de pruebas cercano al 100% de cobertura
- Cada commit se prueba en varias distribuciones
- Un estilo de código impuesto por
clang-format - Una documentación completa
- Uso de coverity, codeql, scan-build, …
Descarga
Tenemos una página de descarga
donde puedes encontrar paquetes para tu distribución, pero por supuesto también
puedes hacer git clone de este repositorio o consultar las versiones en
github.
Ejemplos
Proporcionamos varios ejemplos de reglas que tienen este aspecto:
# Endurecer la función `chmod`
sp.disable_function.function("chmod").param("mode").value_r("^[0-9]{2}[67]$").drop();
# Mitigar la inyección de comandos en `system`
sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();
Ante una violación de una regla, deberías ver líneas como estas en tus registros:
[snuffleupagus][0.0.0.0][disabled_function][drop] The execution has been aborted in /var/www/index.php:2, because the return value (0) of the function 'strpos' matched a rule.
Documentación
Tenemos un sitio web completo con toda la documentación que puedas desear. Por supuesto, también puedes compilarla tú mismo.
Agradecimientos
Muchas gracias a:
- El proyecto Suhosin por ser una enorme fuente de inspiración
- NBS System por patrocinar inicialmente el desarrollo
- Suhosin-ng por sus experimentaciones y contribuciones, así como NLNet por patrocinarlo
- Todos nuestros colaboradores