2010-01-28 8 views
0

Existe-t-il une gemme ou un code qui signale le comportement des utilisateurs malveillants en temps réel? Par exemple, aujourd'hui, j'ai remarqué des demandes comme celle-ci dans le journal. Par exemple, aujourd'hui, j'ai remarqué des demandes comme celles-ci dans le journal.Rails gem ou code pour signaler le comportement des utilisateurs malveillants en temps réel?

ActionController :: RoutingError (Aucun itinéraire correspond "///scripts/setup.php" avec {: method =>: get}):

J'aimerais savoir en temps réel via des alertes ou e-mails si quelqu'un recherche des vulnérabilités sur le site - c'est-à-dire pour différencier les 404 anodines des 404 malveillantes, pour signaler l'injection SQL ou les injections js, etc.

Existe-t-il des gemmes ou du code pour cela ou dois-je lancer le mien?

Merci pour vos commentaires.

Répondre

0

S'il existait un tel système et que votre site était même modérément peuplé, vous obtiendriez un lot de mises à jour en temps réel.

La réalité est que vous allez probablement faire en sorte que les gens essaient de mettre js dans leur profil, soumettant des trucs bizarres à votre site par curiosité et malice. Vous pouvez analyser régulièrement vos fichiers journaux pour vous assurer que vos actions et vos vues sont protégées contre de telles attaques, mais cela n'est pas gérable à long terme. Le problème est, comment savez-vous si votre entrée est malveillante? Selon votre site, l'entrée que vous venez de mentionner pourrait être parfaitement valide.

Si vous êtes préoccupé par l'injection sql, vous devez documenter et tester soigneusement vos déclarations find_by_sql.

Si vous êtes inquiet au sujet d'une entrée d'utilisateur non échappée, vous pouvez envisager de passer à Erubis et d'activer l'échappement par défaut. Un problème plus urgent pour la plupart des sites est l'utilisation abusive des fonctionnalités que vous fournissez, par exemple envoyer trop de messages, poser trop de questions, voter trop souvent, gratter votre contenu, etc ... pour cela, vous pouvez configurer votre serveur web pour Arrêtez un utilisateur qui fait trop de demandes (vous pouvez très facilement configurer ceci avec nginx) et limitez la vitesse dans votre code d'application.

+0

Merci pour vos commentaires. Ce sont de bonnes choses à garder à l'esprit. – rhh

+0

A la réflexion, mes questions vont plus loin. Pour tester, je configure un serveur "honeypot" sur une tranche Amazon. J'ai utilisé une adresse IP sans domaine pointant vers elle et pas de résultats Google pour l'IP (sauf à partir de certains sites qui répertorient tous les blocs IP Amazon). c'est-à-dire que ceci devrait être une adresse IP inconnue pour les utilisateurs non malveillants. Les journaux ont aujourd'hui de nombreux accès. ie ActionController :: RoutingError (Aucune route ne correspond "/xmlrpc.php" avec {: method =>: get}): J'aimerais connaître les tentatives d'exploitation comme celle-ci sans avoir à utiliser un honeypot pour surveiller les intrus malveillants tentatives ou journaux grep sur mon site de production pour 404s. – rhh

+0

Si vous le souhaitez, vous pouvez configurer quelque chose comme exceptionnel ou hoptoad pour enregistrer toutes les erreurs de routage. Il est probable que quelqu'un analyse simplement les adresses IP des serveurs vulnérables. Ils savent que la plupart des serveurs dans la gamme IP Amazon pour EC2 sont des serveurs Web, donc ils ne font que jouer les cotes. – jonnii