Mod_security è una buona cosa?


9

Recentemente sono stato frequentato da messaggi di errore errati da mod_security. I suoi set di filtri coprono exploit PHP obsoleti e devo riscrivere le mie cose perché Wordpress & Co ha avuto bug anni fa.

Questo succede a qualcun altro?

Apache mod_security blocca le richieste HTTP potenzialmente pericolose prima che raggiungano le applicazioni (in particolare PHP). Utilizza vari set di filtri, principalmente basati su regex.

Quindi ho un bel provider di hosting condiviso, tecnicamente adatto e cose del genere. Ma questo mi ha infastidito:

Proprio la scorsa settimana ho dovuto cambiare il nome di un parametro &src=in una delle mie app perché mod_security blocca QUALSIASI richiesta con quello. Non ho cercato i dettagli, ma questa regola di filtro stava impedendo la sfruttabilità di un'altra app che non uso e di cui probabilmente non avevo mai sentito parlare. Tuttavia, ho dovuto riscrivere il mio codice (spesso è sufficiente rinominare il parametro per ingannare mod_security) che non aveva nulla a che fare o in comune con quello!

E oggi, un regex sciocco blocca le presentazioni, perché volevo inviare il codice di esempio php. Dato, questa è la roba semplice da cui mod_security è lì per proteggere. Ma non credo che mod_security sia in grado di rilevare codice seriamente offuscato, e si spegne semplicemente a frammenti di php ovvi (e in questo caso totalmente banali).

Fondamentalmente sto venendo penalizzato da mod_security perché altre persone hanno rilasciato app soggette a bug. (Non sto dicendo che le mie app sono ultra sicure - sono piuttosto diffidente nei confronti della sicurezza, ma non
ho pretese iperboliche.) Ho già chiesto al mio provider di disabilitarla comunque, i vantaggi sono IMO troppo piccoli e per le mie app.


Cosa ne pensi? Mod_security ha molto senso al di fuori dell'hosting WP? O è davvero solo un mucchio di liste nere di bug di sicurezza passati? Quali delle sue regole sono effettivamente utili? Esiste un equivalente a livello di applicazione?


1
L'invio del codice PHP è sciocco perché anche la stampa di una stringa con <?php doBadStuff(); ?>non eseguirà quella funzione. (A meno che tu non usi evalovviamente ciò che è male comunque.)
DisgruntledGoat

@DisgruntledGoat: O forse sono stato di nuovo troppo scontroso solo a causa di due falsi allarmi. Alla fine mod_security è proprio come uno scanner di virus che porta ancora in giro firme di virus MS-DOS. Per lo più non utile, ma cattura lo scanner di exploit casuale e il potenzialebadstuff occasionale ()? O almeno:}
mario,

Risposte:


3

Personalmente vedo mod_security come una patch. Lo uso su alcuni dei nostri server in cui non possiamo controllare il codice caricato (server di hosting condiviso, ad esempio), ma non mi è mai sembrato davvero una buona soluzione. Basato sul suo approccio alla lista nera ampio e molto generale, è più una patch per coprire i buchi di sicurezza che una buona politica di sicurezza.

Può anche fornire un falso senso di sicurezza. mod_security può rivelare alcuni attacchi comuni ma non può assolutamente impedire alcun attacco. Ancora una volta, è una lista nera di attacchi noti comuni. Se installi mod_security e pensi di essere magicamente sicuro, ti sbagli orribilmente.

Ho trovato una politica molto migliore per me server gestiti in cui il mio team rivede tutto il codice che viene inserito su di essi, combinato con molti registri, analisi dei file di log, sistemi di reportistica e sistemi di rilevamento / prevenzione delle intrusioni (IPS). Ogni volta che di terze parti o software open-source è installato (sto guardando te , WordPress!) Teniamo un registro di cui è stato installato, e quando vengono rilasciate nuove versioni si aggiornano ogni copia che è stato installato.

Ancora una volta, hai maggiori probabilità di trovare mod_security su un server di hosting condiviso, come stai vivendo ora. Man mano che cresci, puoi passare a un provider di hosting basato su VPS o clod dove ottieni il tuo ambiente gestito e puoi controllare più strettamente il software disponibile.


Ecco come mi sento. Per proteggere gli account di hosting condiviso l'uno contro l'altro, suexec + fastcgi sembrano generalmente più applicabili. Su un VPS e con codice tutto personalizzato, mod_security aiuta raramente (esegue alcuni controlli di conformità HTTP). +1 registri completi.
mario,

0

Secondo me, se sei un principiante in programmazione, mod_security è una buona idea, ma se ti prendi il tempo per scrivere correttamente le tue applicazioni ed eviti di scrivere codice insicuro che utilizza eval o concatena stringhe GET direttamente in SQL, dovresti stare bene senza esso. mod_security non fermerà mai gli hacker seri e, se hai una buona applicazione, gli script kiddie si arrenderanno e passeranno alla prossima app davvero debole e insicura là fuori.


Modo di non spiegare il tuo voto
negativo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.