Lançamento do Snuffleupagus 0.5.1, um módulo para bloquear vulnerabilidades em aplicações PHP

Após um ano de desenvolvimento foi publicado lançamento do projeto Snuffleupagus 0.5.1, que fornece um módulo para o interpretador PHP7, aumentando a segurança do ambiente e bloqueando erros típicos que levam a vulnerabilidades em aplicações PHP executadas. O módulo também permite criar patches virtuais para resolver problemas específicos sem modificar os códigos fonte da aplicação vulnerável, o que é conveniente para uso em sistemas de hospedagem em massa, onde não é possível manter todas as aplicações dos usuários atualizadas. O overhead gerado pelo módulo é considerado mínimo. O módulo é escrito em C, e é carregado como uma biblioteca compartilhada ("extension=snuffleupagus.so" no php.ini) e é distribuído sob a licença LGPL 3.0.

Snuffleupagus fornece um sistema de regras que permite usar modelos padrão para aumentar a proteção, bem como criar regras personalizadas para controlar a entrada de dados e parâmetros de funções. Por exemplo, a regra "sp.disable_function.function('system').param('command').value_r('[$|;&`\\n]').drop();" permite, sem modificar a aplicação, restringir o uso de caracteres especiais nos argumentos da função system(). Métodos integrados são oferecidos para bloquear classes de vulnerabilidades, como relacionadas problemas com a serialização de dados, inseguro uso da função PHP mail(), vazamento de conteúdo de cookies durante ataques XSS, problemas devido ao upload de arquivos com código executável (por exemplo, no formato phar), geração deficiente de números aleatórios e substituição de construções XML incorretas.

Os modos de aumento de proteção PHP fornecidos pelo Snuffleupagus:

  • Ativação automática das flags "secure" e "samesite" (proteção contra CSRF) para cookies, criptografia de cookies;
  • Um conjunto integrado de regras para detectar vestígios de ataques e comprometimento de aplicações;
  • A ativação forçada do modo "strict" (por exemplo, bloqueia tentativas de enviar uma string ao invés de um valor inteiro como argumento) e proteção contra manipulação de tipos;
  • Bloqueio por padrão de wrappers para protocolos (por exemplo, proibição de "phar://") permitindo sua utilização apenas através de uma lista branca;
  • Proibição de execução de arquivos que são graváveis;
  • Listas negras e listas brancas para eval;
  • Obrigatoriedade de verificação de certificados TLS ao usar
    curl;
  • Adição de HMAC a objetos serializados para garantir que, durante a desserialização, os dados recebidos sejam os armazenados pelo aplicativo original;
  • Modo de registro de solicitações;
  • Bloqueio do carregamento de arquivos externos no libxml através de links em documentos XML;
  • Possibilidade de conectar manipuladores externos (upload_validation) para verificar e escanear arquivos carregados;

Entre mudanças na nova versão: Melhorado o suporte ao PHP 7.4 e implementada a compatibilidade com a versão do PHP 8 em desenvolvimento. Adicionada a capacidade de registro de eventos via syslog (a diretiva sp.log_media foi proposta para ativação, podendo aceitar os valores php ou syslog). O conjunto de regras padrão foi atualizado, incluindo novas regras para vulnerabilidades e técnicas de ataque recentes em aplicativos web. Melhorado o suporte ao macOS e ampliada a utilização da plataforma de integração contínua baseada no GitLab.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster