
snuffleupagus v0.14.0
Módulo de segurança para php7 e php8 - Eliminando classes de bugs e aplicando patches virtuais no restante!
Snuffleupagus
Módulo de segurança para php7 e php8 - Eliminando classes de bugs e aplicando virtual-patching no restante!
Principais Recursos • Download • Exemplos • Documentação • Licença • Agradecimentos
O Snuffleupagus é um módulo para PHP 7+ e 8+ projetado para aumentar drasticamente o custo de ataques contra sites, eliminando classes inteiras de bugs. Ele também fornece um poderoso sistema de virtual-patching, permitindo que administradores corrijam vulnerabilidades específicas e auditem comportamentos suspeitos sem precisar alterar o código PHP.
Principais Recursos
- Sem impacto perceptível no desempenho
- Regras de virtual-patching poderosas, porém simples de escrever
- Eliminação de várias classes de vulnerabilidades
- Execução de código baseada em Unserialize
- Execução de código baseada em
mail - XSS para roubo de cookies
- Execução de código baseada em upload de arquivos
- PRNG fraco
- XXE
- Execução remota de código baseada em filtros e outras artimanhas
- Vários recursos de endurecimento
- Flags automáticas
secureesamesitepara cookies - Conjunto de regras integrado para detectar comportamentos pós-comprometimento
- Modo estrito global e prevenção de type-juggling
- Lista de permissões de stream wrappers
- Prevenção da execução de arquivos graváveis
- Lista de permissões/negações para
eval - Validação obrigatória de certificados TLS ao usar curl
- Capacidade de despejo de requisições
- Flags automáticas
- Uma base de código relativamente sã:
- Uma suíte de testes abrangente com cobertura próxima de 100%
- Cada commit é testado em várias distribuições
- Um estilo de código imposto por
clang-format - Uma documentação abrangente
- Uso de coverity, codeql, scan-build, …
Download
Temos uma página de
download, onde você pode
encontrar pacotes para sua distribuição, mas é claro que você também pode fazer
git clone deste repositório ou verificar os lançamentos no github.
Exemplos
Fornecemos vários exemplos de regras, que se parecem com isto:
# Endurecer a função `chmod`
sp.disable_function.function("chmod").param("mode").value_r("^[0-9]{2}[67]$").drop();
# Mitigar injeção de comandos em `system`
sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();
Ao violar uma regra, você deve ver linhas como estas em seus logs:
[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.
Documentação
Temos um site abrangente com toda a documentação que você poderia desejar. Você pode, é claro, compilá-lo você mesmo.
Agradecimentos
Muitos agradecimentos a:
- O projeto Suhosin por ser uma enorme fonte de inspiração
- A NBS System por patrocinar inicialmente o desenvolvimento
- O Suhosin-ng por suas experimentações e contribuições, bem como a NLNet por patrociná-lo
- Todos os nossos contribuidores