La question est souvent posée: comment ASIP détecte des attaques ?
Il existe plusieurs outils pour cela, en fonction du type d’attaque. Il y en a deux plus fréquentes que les autre: les attaques sur les sites web et les attaques sur le service de courriel.
Pour le service de courriel
Les attaquants tentent de trouver des mots de passe. Ils ont obtenu votre email par diverse méthodes, à partir de celui-ci, ils retrouvent le serveur et il ne leur manque plus que le mot de passe. Du coup, il suffit de surveiller les erreurs de mot de passe pour détecter une attaque. Un humain « normal » mémorise ses identifiants dans son logiciel, donc il n’y a pas d’erreur de mot de passe. On peux toutefois tolérer 1 erreur coté serveur, mais à la seconde, nous considérons qu’il s’agit d’un pirate et on bloque son IP. Si c’était un vrai client, tant pis, il lui suffit de nous contacter par téléphone pour que son IP soit débloquée. Un pirate n’appelle jamais.
Pour les sites web
Vos sites ne sont pas, en général, ciblés par les pirates, ils sont attaqués « par hasard ». L’une des technique consiste donc à vérifier qu’une même IP n’accède pas à plusieurs sites du serveur en même temps. La probabilité qu’une personne connaisse plusieurs clients d’ASIP et surfe en même temps sur leurs site est très faible.
Une autre technique consiste à analyser le « comportement » des visiteurs. Si un navigateur demande une page qui n’existe pas, ça arrive si vous avez supprimé une page et que le visiteur l’avait mise dans ses favoris, on lui renvoi un code d’erreur. Mais s’il demande des dizaines de pages qui n’existent pas, alors on est certain qu’il ne navigue pas, car les liens sur vos sites renvoient vers des pages valides. donc c’est un comportement louche, une recherche de vulnérabilités, on bloque l’IP.
Une technique efficace consiste à attirer les pirates vers une cible, un « pot de miel« . C’est le cas de vos pages d’identification pour ceux qui sont sous wordpress. Par défaut, la page se nomme « wp-login.php ». La première chose qui est faites lorsqu’un site est géré par ASIP, c’est de renommer cette page. Du coup, il suffit de surveiller les IP qui continuent de demander la page « wp-login.php » pour savoir qu’elles ne sont pas légitimes.
Un exemple d’attaque
Voici un extrait de logs du serveur:
adequation-web.fr:80 204.12.198.90 - - [24/Oct/2017:05:12:03 +0200] "GET /wp-login.php HTTP/1.1" 301 478 "http://adequation-web.fr/wp-login.php" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)" "**0/200**" adequation-web.fr:80 204.12.198.90 - - [24/Oct/2017:05:12:04 +0200] "GET /wp-login.php HTTP/1.1" 301 478 "http://adequation-web.fr/wp-login.php" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)" "**0/159**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:06:56 +0200] "GET / HTTP/1.1" 301 479 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/188**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:06:56 +0200] "GET / HTTP/1.1" 301 550 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/3199**" procal-industrie.com:443 204.12.198.90 - - [28/Oct/2017:07:06:56 +0200] "GET / HTTP/1.1" 200 38141 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**2/2013629**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:06:59 +0200] "GET /readme.html HTTP/1.1" 301 501 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/209**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:06:59 +0200] "POST /wp-content/plugins/Login-wall-etgFB/login_wall.php?login=cmd&z3=c2ZuLnBocA%3D%3D&z4=L3dwLWNvbnRlbnQvcGx1Z2lucy8%3d HTTP/1.1" 301 727 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/184**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:06:59 +0200] "GET /wp-content/plugins/sfn.php HTTP/1.1" 301 531 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/177**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:06:59 +0200] "POST / HTTP/1.1" 301 479 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/186**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:07:00 +0200] "GET /wp-content/uploads/sfn.php HTTP/1.1" 301 531 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/181**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:07:00 +0200] "POST /wp-admin/admin-ajax.php HTTP/1.1" 301 525 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/144**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:07:00 +0200] "GET /wp-content/plugins/revslider/temp/update_extract/sfn.php HTTP/1.1" 301 591 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/153**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:07:00 +0200] "GET /wp-content/plugins/revslider/sfn.php HTTP/1.1" 301 551 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/121**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:07:00 +0200] "POST /license.php HTTP/1.1" 301 501 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/109**" procal-industrie.com:80 204.12.198.90 - - [28/Oct/2017:07:07:01 +0200] "GET /sfn.php HTTP/1.1" 301 493 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "**0/186**"
On remarque que l’IP 204.12.198.90 a accédé à 2 clients: Adequation et Procal. Ça peut arriver, avec un moteur de recherche, par exemple. Sauf qu’ici, l’IP tente d’ouvrir les pages « wp-login.php », « license.php », « admin-ajax.php » et d’autres pages bien étranges, le tout à un rythme plus rapide qu’un humain. Ce n’est pas le comportement d’un visiteur normal, du coup on lui retourne un code d’erreur « 301 » (page déplacée). On pourrait lui répondre « 404 » (page introuvable), mais cela lui donnerait des pistes sur le logiciel utilisé (WordPress, Joomla, etc..) et il pourrait adapter son attaque. On lui fait plutôt une réponse vague, et on le bloque.
Et ensuite ?
Nous utilisons de nombreuses autres méthodes de protection. La plupart des attaques sont détectées dans les secondes qui suivent, certaines nécessite un peu de patience (certains pirates testent un mot de passe toutes les 5 minutes, pensant passer inaperçu). La plupart du temps, ce n’est pas votre site qui intéresse les pirates mais la machine, afin, par exemple, d’installer un malware pour miner des crypto-monnaies ou de lancer des campagnes de spam. Il y a environ 40 points de sécurité sur vos sites et le serveur.
Au final, lorsqu’une attaque est détectée, l’IP est bloquée, et le gestionnaire de cette IP est averti par mail, via son service de gestion des abus. Dans notre exemple, l’IP 204.12.198.90 appartient à « wholesaleinternet.net », aux Etats-Unis. Et un simple « WhoIs » nous permet d’obtenir l’email de contact: abuse@wholesaleinternet.net.