En el marco del proyecto un módulo para conectarse al intérprete PHP7, diseñado para aumentar la seguridad del entorno y bloquear errores típicos que pueden dar lugar a vulnerabilidades en las aplicaciones PHP en ejecución. El módulo también permite crear parches virtuales para solucionar problemas específicos sin modificar el código fuente de la aplicación vulnerable, lo cual es conveniente para su uso en sistemas de alojamiento masivo, donde no es posible mantener todas las aplicaciones de los usuarios actualizadas. El módulo está escrito en C, se conecta en forma de biblioteca compartida ("extension=snuffleupagus.so" en php.ini) y bajo la licencia LGPL 3.0.
Snuffleupagus proporciona un sistema de reglas que permite utilizar tanto plantillas estándar para mejorar la protección como crear reglas personalizadas para el control de 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 limitar el uso de caracteres especiales en los argumentos de la función system() sin modificar la aplicación. De manera similar, se pueden crear para bloquear vulnerabilidades conocidas.
Según las pruebas realizadas por los desarrolladores, Snuffleupagus prácticamente no reduce el rendimiento. Para garantizar su propia seguridad (las posibles vulnerabilidades en la capa de protección pueden ser un vector adicional para ataques), el proyecto somete a un exhaustivo proceso de prueba cada commit en diferentes distribuciones, empleando sistemas de análisis estático, y el código se documenta y se presenta de forma clara para facilitar la auditoría.
Se proporcionan métodos integrados para bloquear clases de vulnerabilidades como problemas, con la serialización de datos, de la función PHP mail(), fuga de contenido de Cookies durante ataques XSS, problemas derivados de la carga de archivos con código ejecutable (por ejemplo, en formato ), generación deficiente de números aleatorios y de construcciones XML incorrectas.
Entre los modos para mejorar la seguridad de PHP se incluyen:
- Activación automática de las banderas "secure" y "samesite" (protección contra CSRF) para Cookies, de Cookies;
- Conjunto de reglas incorporado para identificar huellas de ataques y compromisos de aplicaciones;
- Activación global obligatoria del modo "" (por ejemplo, bloquea intentos de pasar una cadena cuando se espera un valor entero como argumento) y protección contra ;
- Bloqueo por defecto por ejemplo, prohibición de "phar://" con su autorización explícita en una lista blanca;
- Prohibición de la ejecución de archivos que son escribibles;
- Listas negras y blancas para eval;
- Activación obligatoria de la verificación de certificados TLS al usar
curl; - Añadir HMAC a los objetos serializados para garantizar que al deserializar se obtienen los datos guardados por la aplicación original;
- Modo de registro de solicitudes;
- Bloquear la carga de archivos externos en libxml a través de enlaces en documentos XML;
- Posibilidad de conectar controladores externos (upload_validation) para validar y escanear los archivos cargados;
El proyecto fue creado y se utiliza para proteger a los usuarios en la infraestructura de uno de los grandes operadores de alojamiento francés. , lo que simplemente con la conexión de Snuffleupagus permitiría protegerse de muchas vulnerabilidades peligrosas identificadas este año en Drupal, WordPress y phpBB. Las vulnerabilidades en Magento y Horde podrían ser bloqueadas al activar el modo
"sp.readonly_exec.enable()".
Fuente: opennet.ru
