Dopo un anno di sviluppo il rilascio del progetto , fornisce un modulo per l'interprete PHP7 che aumenta la sicurezza dell'ambiente e blocca errori comuni che portano a vulnerabilità nelle applicazioni PHP in esecuzione. Il modulo consente anche di creare per affrontare problemi specifici senza modificare i codici sorgente delle applicazioni vulnerabili, il che è utile nei sistemi di hosting condiviso, dove non è possibile garantire che tutte le applicazioni degli utenti siano sempre aggiornate. I costi operativi del modulo sono considerati minimi. Il modulo è scritto in C, si connette come una libreria condivisa ("extension=snuffleupagus.so" in php.ini) e è sotto licenza LGPL 3.0.
Snuffleupagus offre un sistema di regole che permette di utilizzare sia modelli standard per migliorare la protezione, sia di creare regole personalizzate per controllare i dati in ingresso e i parametri delle funzioni. Ad esempio, la regola "sp.disable_function.function(«system»).param(«command»).value_r(«[$|;&`\\n]»).drop();" consente di limitare l'uso di caratteri speciali negli argomenti della funzione system() senza modificare l'applicazione. Sono forniti metodi integrati per bloccare classi di vulnerabilità come problemi, alla serializzazione dei dati, utilizzando la funzione PHP mail(), perdite di contenuto dei Cookie durante attacchi XSS, problemi derivanti dal caricamento di file con codice eseguibile (ad esempio, in formato ), generazione inadeguata di numeri casuali e di costruzioni XML non valide.
Modalità di protezione PHP fornite da Snuffleupagus:
- L'attivazione automatica dei flag «secure» e «samesite» (protezione contro CSRF) per i Cookie, dei Cookie;
- Un set integrato di regole per rilevare tracce di attacchi e compromissioni delle applicazioni;
- Forzatura dell'attivazione globale della modalità «» (ad esempio, blocca il tentativo di specificare una stringa quando ci si aspetta un valore intero come argomento) e protezione da ;
- Blocco predefinito (ad esempio, divieto di «phar://») con il loro esplicito permesso tramite una lista bianca;
- Divieto di eseguire file che sono accessibili in scrittura;
- Liste nere e bianche per eval;
- Attivazione obbligatoria del controllo dei certificati TLS durante l'utilizzo di
curl; - Aggiunta di HMAC agli oggetti serializzati per garantire che durante la deserializzazione i dati siano quelli salvati dall'applicazione originale;
- Modalità di registrazione delle richieste;
- Blocco del caricamento di file esterni in libxml tramite collegamenti in documenti XML;
- Possibilità di collegare gestori esterni (upload_validation) per controllare e scansionare i file caricati;
Tra nella nuova versione: Migliorato il supporto per PHP 7.4 e implementata la compatibilità con il ramo attualmente in sviluppo di PHP 8. Aggiunta la possibilità di registrare eventi tramite syslog (per attivarla è stata proposta la direttiva sp.log_media, che può assumere i valori php o syslog). Aggiornato il set di regole proposto di default, includendo nuove regole per vulnerabilità e tecniche di attacco recentemente scoperte sulle applicazioni web. Migliorato il supporto per macOS ed estesa l'applicazione della piattaforma di integrazione continua basata su GitLab.
Fonte: opennet.ru
