Após um ano de desenvolvimento lançamento do projeto , 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 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 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 problemas com a serialização de dados, 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 ), geração deficiente de números aleatórios e 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, 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 "" (por exemplo, bloqueia tentativas de enviar uma string ao invés de um valor inteiro como argumento) e proteção contra ;
- Bloqueio por padrão (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 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
