Entrez vos identifiants

x
OU
Vous avez oublié votre mot de passe ?
Utilisateur wiki : vous n'aviez pas d'email ?

Korben - Site d'actualité geek et tech

Go Top


Comment mettre en place une limite de connexion par ip avec Memcached

twitededibox Comment recevoir des alertes systèmes via Twitter

Pour faire suite à l'affaire du vol de mots passe sur Twitter, et afin de limiter le nombre de tentatives de login erronées sur leur service web, l'équipe technique de Twitter a mis en place une stratégie plutôt intéressante pour limiter les requêtes à l'API.

On peut facilement bloquer des tentatives d'intrusion par bruteforce mais cela demande beaucoup de ressource serveur car il faut surveiller chaque tentative de log et l'écrire dans la base de données, ce qui est un peu chaud en terme de performance sur de gros sites comme Twitter. Du coup, la technique que Twitter a adopté se passe au niveau du gestionnaire de cache Memcached.

Avec Memcached, il est en effet possible de surveiller le nombre de requêtes par IP sur vos formulaires ou vos scripts et de bloquer celles-ci, si les hits sont trop rapprochés. (Donc dans une logique de bruteforce)

Tout se passe au niveau du compteur ratelimit de memcached qui s'incrèmente jusqu'à atteindre 10 par exemple...  Au dela de 10 tentatives, l'attaquant n'a plus accès au site. Pas con, le Jean-Pierre, hein ?

C'est un peu technique, il y a du code en python et un bout de perl en exemple et je n'ai malheureusement pas encore trouvé l'exemple qui me permettrait de brancher ça avec du PHP mais tout est là... Je me suis dit que ça en intéresserait certains.

+ d'infos ici


Facebook Twitter Email Copier Url

15 Responses to “Comment mettre en place une limite de connexion par ip avec Memcached”

  1. Siko dit :

    Suffit de mettre une varaible $_SESSION qui s’incrémente a chaque fois qu’un utilisateur remplis un mots de passe faux. Coupler avec une autre session qui enregistre le timestamp de la dérnière tentative pour limiter la fréquence et en ajoutant a cela les cookies. On arrive certes pas au même niveau que le script de twitter mais en 15 sec on peut faire chier plusieurs heure un hacker pas très doué. Si a chaque fois ils doit fermer et relancer son navigateur pour relancer les sessions.

    D’autant plus qu’on peut une fois la limite atteinte, cette fois ci ajouter a la bdd.

  2. bb dit :

    ba ouais, mai si on sait faire un prog de brute force, on sait quand meme changer son ip nan ? c ptetre plus long mais cest faisable Dites moi si jme trompe

  3. Siko dit :

    Oui mais en même temps rien n’est inviolable, cette méthodes prend a tout peter 10 min a mettre en place, et c’est toujours intéressant de sécuriser un peu plus son site même avec des truc futiles… de toutes façon un vraie hacker n’as pas besoin d’utiliser du bruteforce en général.. un “man in the middle” est plus dur a mettre en place et requiert plus de connaissance mais a mon avis 95% des sites ne sont pas protéger contre.

  4. Ludo42 dit :

    @bb: Le brutforce c’est des milliers de requêtes, je pense pas que tu puisse trouver des milliers d’IP d’un petit claquement de doigt ;)
    Et puis ça serait super long.

    C’est un problème récurent, les pirates assomment souvent les serveurs de requêtes pour arriver à leurs fins. C’est pour ça que des IDS sont utilisés dans les gare, les aéroports etc… pour surveiller entre autre le nombre de requêtes par IP

  5. @Siko: Un cookie ne sert pas trop dans le cas d’un bruteforce. Le gars script et ne fais pas ca avec son navigateur. Et s’il y a des cookies, il sont scriptées aussi ;)
    Donc la sessions c’est mort amha

  6. Paganel dit :

    Ils sont gentils, chez Twitter, mais un brevet existe depuis déjà dix ans pour cette méthode, et qui n’a même pas besoin de connaitre l’IP !

    Cela étant, il fait peut-être partie de ceux qu’IBM a mis dans le domaine public, vu que ce brevet (US) a probablement été pris par précaution histoire de ne pas se faire chiper la méthode par un concurrent (il n’y a en effet pas de pognon à y gagner) n’y a mais ça n’interdit pas de rendre à César la paternité ce qui a été inventé par César :

    http://www.wikipatents.com/6587032.html

  7. Armetiz dit :

    @Billyboylindien: La variable session n’est pas stocké dans un cookie sur le client, mais sur le serveur dans un fichier par défaut, et déportable vers un BDD suite à une conf d’apache (il me semble).

    Concernant la sécurité en général.. Rien n’est inviolable, tout n’est qu’une question de temps, et comme le temps c’est de l’argent. Une bonne sécurité revient à dire qu’il faut beaucoup de temps pour la violer :)

  8. kane dit :

    @Armetiz: je dirais même plus, tu peux déporter la sauvegarde de la session en bdd avec juste une petite fonction PHP, voir la doc pour plus de détails ;D .

    Edit: http://a-pellegrini.developpez.com/tutoriels/php/session-db/

  9. Myst dit :

    @Siko: Si ce que dit Armetiz est juste, l’optique d’amélioration des performances est perdu.
    Mais sinon, le module Memcache existe avec PHP et n’a pas l’air difficile à mettre en place.

  10. coolmic dit :

    @Armetiz : certes, les données sont stockés sur le serveur, mais un cookie est tout de même stocker sur ton navigateur. Il contient l’id de la session, afin de pouvoir associer à tel visiteur le fichier de session correspondant!

  11. coolmic dit :

    Moi aussi je pense que c’est la meilleur solution. Et ils sont pas obliger de stocker tous les ip, une file LRU devrait suffire.

  12. hihi ! en plus si je dit pas de connerie je crois que memcache est en lru par defaut

  13. Toto dit :

    Ne serait-il-pas possible de rajouter une pause d’une demi-seconde à la vérification du mot de passe coté serveur ?

    Ainsi, pour tester séquentiellement beaucoup de mot de passe, ça rallongerait considérablement le temps d’exécution de toutes les tentatives et pourrait limiter cette pratique, non ?

  14. demarcq dit :

    Un module bien pratique pour apache qui fait bien le boulot : http://www.zdziarski.com/projects/mod_evasive/

  15. Anonyme dit :

    @Siko: “Suffit de mettre une varaible $_SESSION qui s’incrémente a chaque fois qu’un utilisateur remplis un mots de passe faux”

    Mauvais, le bot login n’a qu’à supprimer le cookie entre chaque tentative …

A gagner – Des codes abonnement pour F-Secure Key

bigstock

Aujourd'hui je vous propose de gagner des codes pour des abonnements d'un an pour Key, le gestionnaire de mot de passe de F-Secure.

Si vous êtes adeptes des ouvertures de comptes en ligne à tout-va, ce petit soft peut vous être d'une grande utilité, voir pour ceux qui décideraient de renforcer tous leurs mots de passe en cours d'utilisation.

Avec Key vous pouvez stocker tous vos mots de passe et y accéder facilement, sur n'importe quel appareils, desktop ou mobile et même générer des mots de passe renforcés et uniques chaque fois que vous en avez besoin.

Pratique pour ceux qui ont tendance à aller au plus vite en mettant la date de naissance du dernier né ;)

Pour jouer ça se passe tranquillou avec Kontest:

Toutes les fonctionnalités de Key sont listées ici

Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :

Twitter Facebook Google Plus Linkedin email
Rejoignez les 57004 korbenautes
et réveillez le bidouilleur qui est en vous
abonnez-vous en savoir plus
"Vous aimez bidouiller ?" Oui j'adore l'informatique et la technologie
Suivez Korben Un jour ça vous sauvera la vie.. Ou celle d'un(e) ami(e)
  • Rejoignez les 57004 bidouilleurs de la grande famille des Korbenautes
    «Je considère que votre email est aussi important que le mien.»
    Korben
  • Les Derniers Articles du Blog

  • Inscrivez vous aux bon plans

  •  
  • Site hébergé par
    Agarik Sponsor Korben
  • DANS TON CHAT (BASHFR)

    <Duoman> avec les meufs....
    <Duoman> t'es plutot carte réseau gigabyte ?
    <Duoman> ou plutot port parallèle ?
    <Metalman> ... j'en suis encore à mon propre server
    <Metalman> en localhost ^^

    -- http://danstonchat.com/3122.html
  • Un boitier externe pour booter des ISO à

    gogo sans se prendre la tête

    Il s'agit d'un boitier externe pour disque dur 2,5" fabriqué par la société Zalman, qui a la particularité d'avoir un petit écran de contrôle et qui permet de choisir l'ISO sur laquelle vous souhaitez booter...lire la suite

    Microsoft récupère vos clés de chiffrement.

    Voici comment les en empêcher

    Si vous avez acheté un appareil sous Windows 10 équipé d'une puce qui chiffre par défaut le disque, ne vous pensez pas en sécurité pour autant : La clé de récupération qui vous permet de déchiffrer vos données...lire la suite

    En ce moment dans l'univers "Raspberry Pi"

    Voir tous les articles »