Nell'ambito del progetto un modulo per l'interprete PHP7, progettato per aumentare la sicurezza dell'ambiente e bloccare errori comuni che possono portare a vulnerabilità nelle applicazioni PHP in esecuzione. Il modulo consente anche di creare patch virtuali per risolvere problemi specifici senza modificare i testi sorgente dell'applicazione vulnerabile, il che è utile per l'uso in sistemi di hosting condiviso, dove non è possibile mantenere aggiornate tutte le applicazioni degli utenti. Il modulo è scritto in C, viene collegato come una libreria condivisa ("extension=snuffleupagus.so" in php.ini) e è sotto licenza LGPL 3.0.
Snuffleupagus offre un sistema di regole che consente di utilizzare sia modelli comuni per aumentare 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] oder ')").drop();" permette di limitare l'uso di caratteri speciali negli argomenti della funzione system() senza modificare l'applicazione. In modo simile, è possibile creare per bloccare vulnerabilità conosciute.
Dai test condotti dagli sviluppatori, Snuffleupagus riduce quasi a zero le prestazioni. Per garantire la propria sicurezza (le vulnerabilità nella protezione possono servire come ulteriore vettore per attacchi), il progetto applica un'accurata verifica di ogni commit su diverse distribuzioni, utilizzando sistemi di analisi statica, e il codice è formattato e documentato per facilitare l'audit.
Vengono forniti metodi integrati per bloccare classi di vulnerabilità come i problemi, l'uso non sicuro phar sostituzione Le modalità di aumento della sicurezza PHP fornite in Snuffleupagus sono:
Tra le modalità per aumentare la protezione PHP sono supportate:
- cifratura Un set di regole integrate per rilevare tracce di attacchi e compromissione delle applicazioni;
- Forzatura dell'attivazione globale della modalità "
- strictmanipolazioni dei tipi ;
- per le wrapper dei protocolli Divieto di esecuzione di file che sono scrivibili;
- Liste nere e bianche per eval;
- Liste nere e liste bianche per eval;
- L'attivazione della verifica obbligatoria dei certificati TLS durante l'uso
curl; - Aggiunta dell'HMAC agli oggetti serializzati per garantire che durante la deserializzazione si ottengano i dati salvati dall'applicazione originale;
- Modalità di registrazione delle richieste;
- Blocco del caricamento di file esterni in libxml tramite collegamenti in documenti XML;
- Possibilità di connessione di gestori esterni (upload_validation) per controllare e scansionare i file caricati;
Il progetto è stato creato e utilizzato per proteggere gli utenti nell'infrastruttura di uno dei principali operatori di hosting francesi. , il che significa che la semplice integrazione di Snuffleupagus potrebbe proteggere contro molte vulnerabilità pericolose rilevate quest'anno in Drupal, WordPress e phpBB. Le vulnerabilità in Magento e Horde potrebbero essere state bloccate attivando la modalità
"sp.readonly_exec.enable()".
Fonte: opennet.ru
