Mod_security est-il une bonne chose?


9

J'ai récemment été fréquenté par des messages d'erreur erronés de mod_security. Ses ensembles de filtres couvrent les exploits PHP obsolètes, et je dois réécrire mes trucs parce que Wordpress & Co avait des bugs il y a des années.

Est-ce que cela arrive à quelqu'un d'autre?

Apache mod_security bloque les requêtes HTTP potentiellement dangereuses avant qu'elles n'atteignent les applications (PHP en particulier). Il utilise divers ensembles de filtres, principalement basés sur des expressions rationnelles.

J'ai donc un bon hébergeur mutualisé, techniquement apte et tout ça. Mais cela m'a dérangé:

La semaine dernière, j'ai dû changer le nom d'un paramètre &src=dans l'une de mes applications, car mod_security bloque TOUTES les demandes avec cela. Je n'ai pas recherché ses détails, mais cette règle de filtrage empêchait l'exploitabilité d'une autre application que je n'utilise pas et dont je n'avais probablement jamais entendu parler. J'ai quand même dû réécrire mon code (renommer un paramètre suffit souvent à tromper mod_security) qui n'avait rien à voir ou en commun avec ça!

Et aujourd'hui, un regex stupide bloque les soumissions de formulaires, parce que je voulais soumettre un exemple de code php. Étant donné que c'est le truc simple contre lequel mod_security est là pour se protéger. Mais je ne crois pas que mod_security puisse détecter du code sérieusement obscurci, et se déclenche simplement à des extraits de php évidents (et dans ce cas totalement triviaux).

Fondamentalement, je suis pénalisé par mod_security parce que d'autres personnes ont publié des applications sujettes aux bogues. (Je ne dis pas que mes applications sont ultra sécurisées - je suis plutôt méfiant en matière de sécurité, mais je ne fais aucune déclaration hyperbolique.)
J'ai déjà demandé à mon fournisseur de le désactiver de toute façon, les avantages sont trop minuscules IMO et pour mes applications.


Qu'est-ce que tu penses? Mod_security a-t-il beaucoup de sens en dehors de l'hébergement WP? Ou est-ce vraiment juste un tas de listes noires de bogues de sécurité passés depuis longtemps? Lesquelles de ses règles sont réellement utiles? Existe-t-il un niveau d'application équivalent?


1
Cette soumission de code PHP est idiote car même l'impression d'une chaîne avec <?php doBadStuff(); ?>ne lancera pas cette fonction. (Sauf si vous utilisez evalbien sûr ce qui est mal de toute façon.)
DisgruntledGoat

@DisgruntledGoat: Ou peut-être que j'ai été trop grincheux à cause de deux fausses alarmes. En fin de compte, mod_security est comme un antivirus qui porte toujours des signatures de virus MS-DOS. Surtout pas utile, mais attrape le scanner d'exploits aléatoires et les potentiels badstuff potentiels ()? Ou alors:}
mario

Réponses:


3

Personnellement, je vois mod_security comme un patch. Je l'utilise sur certains de nos serveurs où nous ne pouvons pas contrôler le code qui est téléchargé (serveurs d'hébergement partagé, par exemple), mais cela ne m'a jamais vraiment semblé être une bonne solution. Basé sur son approche large et très générale de la liste noire, il s'agit plus d'un correctif pour couvrir les failles de sécurité que d'une bonne politique de sécurité.

Il peut également fournir un faux sentiment de sécurité. mod_security peut révéler certaines attaques courantes mais ne peut en aucun cas empêcher toute attaque. Encore une fois, il s'agit d'une liste noire d'attaques connues courantes. Si vous installez simplement mod_security et pensez que vous êtes sécurisé par magie, vous vous trompez horriblement.

J'ai trouvé une bien meilleure politique pour mes serveurs gérés où mon équipe examine tout le code qui y est placé, combiné à de nombreux journaux, analyse de fichiers journaux, systèmes de rapports et systèmes de détection / prévention des intrusions (IPS). Chaque fois que des tiers ou un logiciel open-source est installé (je regarde vous , WordPress!) Nous gardons un journal où il a été installé, et lorsque de nouvelles versions sont publiées nous mettons à jour chaque copie qui a été installé.

Encore une fois, vous êtes plus susceptible de trouver mod_security sur un serveur d'hébergement partagé, comme vous le faites maintenant. Au fur et à mesure que vous grandissez, vous pouvez passer à un fournisseur d'hébergement basé sur VPS ou clod où vous obtenez votre propre environnement géré et pouvez contrôler plus étroitement les logiciels disponibles.


C'est ce que ça me fait. Pour sécuriser les comptes d'hébergement partagé les uns contre les autres, suexec + fastcgi semble généralement plus applicable. Sur un VPS et avec un code entièrement personnalisé, mod_security aide rarement (il effectue cependant quelques vérifications de conformité HTTP). +1 journaux complets.
mario

0

À mon avis, si vous êtes un novice en programmation, mod_security est une bonne idée, mais si vous prenez le temps d'écrire vos applications correctement et d'éviter d'écrire du code non sécurisé qui utilise eval ou concatène des chaînes GET directement dans SQL, vous devriez être bien sans il. mod_security n'arrêtera jamais les pirates informatiques sérieux, et si vous avez une bonne application, les script kiddies abandonneront et passeront à la prochaine application vraiment faible et non sécurisée.


Manière de ne pas expliquer votre vote
négatif
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.