Lanzamento de Snuffleupagus 0.5.1, un módulo para bloquear vulnerabilidades en aplicacións PHP

Despois dun ano de desenvolvemento publicado lanzamento do proxecto Snuffleupagus 0.5.1, que proporciona un módulo para o intérprete PHP7 para mellorar a seguridade do ambiente e bloquear erros comúns que levan a vulnerabilidades na execución de aplicacións PHP. O módulo tamén permite crear parches virtuais para eliminar problemas específicos sen cambiar o código fonte da aplicación vulnerable, o que é conveniente para o seu uso en sistemas de hospedaxe masiva onde é imposible manter actualizadas todas as aplicacións dos usuarios. Estímase que os custos xerais do módulo son mínimos. O módulo está escrito en C, está conectado en forma de biblioteca compartida ("extensión=snuffleupagus.so" en php.ini) e distribuído por licenciado baixo LGPL 3.0.

Snuffleupagus ofrece un sistema de regras que che permite utilizar modelos estándar para mellorar a seguridade ou crear as túas propias regras para controlar os datos de entrada e os parámetros das funcións. Por exemplo, a regra “sp.disable_function.function(“sistema”).param(“comando”).value_r(“[$|;&`\\n]”).drop();” permítelle limitar o uso de caracteres especiais nos argumentos da función system() sen cambiar a aplicación. Ofrécense métodos integrados para bloquear clases de vulnerabilidades como problemas, relacionado con serialización de datos, inseguro uso da función PHP mail(), fuga de contido de cookies durante ataques XSS, problemas debido á carga de ficheiros con código executable (por exemplo, no formato phar), xeración de números aleatorios de mala calidade e substitución construcións XML incorrectas.

Modos de mellora da seguridade de PHP proporcionados por Snuffleupagus:

  • Activa automaticamente as marcas "segura" e "mesmo sitio" (protección CSRF) para as cookies, cifrado galleta;
  • Conxunto de regras incorporado para identificar rastros de ataques e compromiso de aplicacións;
  • Activación global forzada do "estrito" (por exemplo, bloquea un intento de especificar unha cadea cando se espera un valor enteiro como argumento) e protección contra manipulación de tipos;
  • Bloqueo predeterminado envoltorios de protocolo (por exemplo, prohibindo "phar://") coa súa lista branca explícita;
  • Prohibición de executar ficheiros que sexan escribibles;
  • Listas brancas e negras para eval;
  • Necesario para activar a comprobación do certificado TLS ao usar
    rizo;
  • Engadir HMAC aos obxectos serializados para garantir que a deserialización recupere os datos almacenados pola aplicación orixinal;
  • Solicitar o modo de rexistro;
  • Bloquear a carga de ficheiros externos en libxml mediante ligazóns en documentos XML;
  • Capacidade de conectar controladores externos (upload_validation) para comprobar e escanear ficheiros cargados;

entre cambios na nova versión: soporte mellorado para PHP 7.4 e compatibilidade implementada coa rama PHP 8 en desenvolvemento actualmente. Engadida a posibilidade de rexistrar eventos a través de syslog (proponse para incluír a directiva sp.log_media, que pode tomar valores php ou syslog). Actualizouse o conxunto predeterminado de regras para incluír novas regras para as vulnerabilidades identificadas recentemente e as técnicas de ataque contra aplicacións web. Compatibilidade mellorada para macOS e uso ampliado da plataforma de integración continua baseada en GitLab.

Fonte: opennet.ru

Engadir un comentario