
snuffleupagus v0.14.0
Modulo di sicurezza per php7 e php8 - Eliminare le classi di bug e applicare virtual-patching al resto!
Snuffleupagus
Modulo di sicurezza per php7 e php8 - Elimina le classi di bug e applica virtual-patch al resto!
Funzionalità principali • Download • Esempi • Documentazione • Licenza • Ringraziamenti
Snuffleupagus è un modulo per PHP 7+ e 8+ progettato per aumentare drasticamente il costo degli attacchi contro i siti web, eliminando intere classi di bug. Fornisce inoltre un potente sistema di virtual-patching, che consente agli amministratori di correggere vulnerabilità specifiche e monitorare comportamenti sospetti senza dover modificare il codice PHP.
Funzionalità principali
- Nessun impatto prestazionale percepibile
- Regole di virtual-patching potenti ma semplici da scrivere
- Eliminazione di diverse classi di vulnerabilità
- Esecuzione di codice basata su Unserialize
- Esecuzione di codice basata su
mail - XSS per il furto di cookie
- Esecuzione di codice basata sull'upload di file
- PRNG debole
- XXE
- Esecuzione remota di codice basata su filtri e varie altre diavolerie
- Diverse funzionalità di hardening
- Impostazione automatica dei flag
secureesamesiteper i cookie - Set di regole integrato per rilevare comportamenti post-compromissione
- Modalità strict globale e prevenzione del type-juggling
- Whitelist degli stream wrapper
- Prevenzione dell'esecuzione di file scrivibili
- Whitelist/blacklist per
eval - Applicazione della validazione dei certificati TLS quando si utilizza curl
- Capacità di dump delle richieste
- Impostazione automatica dei flag
- Una base di codice relativamente sana:
- Una suite di test completa con copertura vicina al 100%
- Ogni commit viene testato su diverse distribuzioni
- Uno stile di codice imposto da
clang-format - Una documentazione completa
- Utilizzo di coverity, codeql, scan-build, …
Download
Abbiamo una pagina di download,
dove puoi trovare i pacchetti per la tua distribuzione, ma puoi ovviamente anche fare
git clone di questo repository, oppure controllare le release su github.
Esempi
Forniamo diverse regole di esempio, che si presentano così:
# Rafforza la funzione `chmod`
sp.disable_function.function("chmod").param("mode").value_r("^[0-9]{2}[67]$").drop();
# Mitiga l'iniezione di comandi in `system`
sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();
In caso di violazione di una regola, dovresti vedere righe come queste nei tuoi log:
[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.
Documentazione
Abbiamo un sito web completo con tutta la documentazione che potresti desiderare. Puoi ovviamente anche crearla da solo.
Ringraziamenti
Un grande ringraziamento a:
- Il progetto Suhosin per essere stata una enorme fonte di ispirazione
- NBS System per aver inizialmente sponsorizzato lo sviluppo
- Suhosin-ng per i loro esperimenti e contributi, così come NLNet per averlo sponsorizzato
- Tutti i nostri contributori