Analyse du botnet MIRAI avec un honeypot : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
m (ajout des listes)
Ligne 30 : Ligne 30 :
  
 
Les objets infectés (ou ordinateurs de l’attaquant au tout début) scanne internet à la recherche d’autres machines vulnérables (identifiant et mot de passe par défaut connu de l’attaquant).
 
Les objets infectés (ou ordinateurs de l’attaquant au tout début) scanne internet à la recherche d’autres machines vulnérables (identifiant et mot de passe par défaut connu de l’attaquant).
Une des caméras parvient à se connecter par telnet à la cible. Quand cette machine du réseau MIRAI détecte la vulnérabilité après une série de question (suites commandes linux pour identifier l’objet trouvé et sa version linux), elle le signale au serveur Scan Receiver qui s’occupe de récupérer les résultats des scannes du botnet.
+
#Une des caméras parvient à se connecter par telnet à la cible. Quand cette machine du réseau MIRAI détecte la vulnérabilité après une série de question (suites commandes linux pour identifier l’objet trouvé et sa version linux), elle le signale au serveur Scan Receiver qui s’occupe de récupérer les résultats des scannes du botnet.
Ce dernier donne l’adresse de la machine à attaquer au loader.
+
#Ce dernier donne l’adresse de la machine à attaquer au loader.
Le loader contact la caméra cible et télécharge le virus sur cette dernière, le lance. La machine est alors infecté et fait partie du botnet MIRAI.
+
#Le loader contact la caméra cible et télécharge le virus sur cette dernière, le lance. La machine est alors infecté et fait partie du botnet MIRAI.
  
 
== Controle ==
 
== Controle ==
Ligne 58 : Ligne 58 :
 
==== Kippo Graph ====
 
==== Kippo Graph ====
 
Kippo est un honeypot tout comme Cowrie, il en est même son ancêtre. Il dispose de la fonctionnalité d’envoyer les logs vers une base de données MySQL, et Kippo-Graph est donc l’application PHP qui permet de visualiser les données récoltées sous forme de graphiques. Voici quelques fonctionnalités de Kippo-Graph :
 
Kippo est un honeypot tout comme Cowrie, il en est même son ancêtre. Il dispose de la fonctionnalité d’envoyer les logs vers une base de données MySQL, et Kippo-Graph est donc l’application PHP qui permet de visualiser les données récoltées sous forme de graphiques. Voici quelques fonctionnalités de Kippo-Graph :
Répartition géographique des attaquants
+
*Répartition géographique des attaquants
Commandes les plus essayées
+
*Commandes les plus essayées
Mots de passe essayés
+
*Mots de passe essayés
Nombre de requêtes reçues sur l’honeypot suivant l’heure.
+
*Nombre de requêtes reçues sur l’honeypot suivant l’heure.
 
Cowrie étant basé sur Kippo, il permet d’envoyer les logs sur une DB MySQL avec le même format que Kippo, il est donc possible d’utiliser Kippo-Graph pour visualiser les logs de Cowrie (avec quelques manipulations néanmoins).
 
Cowrie étant basé sur Kippo, il permet d’envoyer les logs sur une DB MySQL avec le même format que Kippo, il est donc possible d’utiliser Kippo-Graph pour visualiser les logs de Cowrie (avec quelques manipulations néanmoins).
  

Version du 23 janvier 2017 à 12:10

Projet Réseau Avancé - 3a ISI Ensimag

Maxime DADOUA - Bastien JEUBERT


Introduction

La sécurité a toujours été un problème en informatique, la protection des données et du système est essentielle. Les attaquants visent souvent la disponibilité du système, que ce soit pour des raisons personnelles, politiques, ou économique. Le déni de service distribué (DDOS) est une des attaques efficaces, souvent utilisé pour faire chanter la victime car il est dur de s’en protéger. L’attaque classique est devenu chère à mettre en place : il faut énormément de machines pour passer outre l’efficacité des bannissements ip. L’utilisation de botnets est devenu trop coûteuse, mais les attaquants n’en sont pas restés là et les attaques de déni de service ont bien évolué ces dernières années jusqu’aux attaques de MIRAI fin 2016.


Le changement principal vient de l’explosion du nombre d’objets connectés à internet. Le monde des objets connectés comporte des milliards de système dont une bonne partie connectés sur internet comme les caméras de surveillance IP. Si les ordinateurs sont protégés par des anti-virus, ces objets connectés ne le sont pas du fait de leur fonction bien spécifique. Pourtant, la plupart dérivent de Linux, ils devraient être sécurisés puisque ce système l’est, mais certains sont mal conçus, en particulier certaines caméras IP vendues avec un unique mot de passe par défaut, accessible à tous. Mirai est un botnet classique, ciblant particulièrement ces systèmes en exploitant une liste de mots de passe prédéfinis.


Comment fonctionne MIRAI ? Comment détecter et analyser ce genre de botnet ? Comment se protéger ? La meilleur technique est la défense active aux travers de honeypots. Cette approche vise à comprendre et analyser le comportement du virus, jusqu’à le récupérer, pour mieux s’en protéger. Nous expliquons ici comment mettre en place le honeypot Cowrie pour se faire passer pour une cible et récupérer une partie de l’activité de MIRAI visible sur internet.


MIRAI

Le code source de MIRAI est disponible sur github depuis Octobre 2016. C’est un virus qui prend contrôle du système vulnérable et l’utilise pour chercher d’autres objets connectés vulnérables, se propageant et créant un botnet. La propagation est basée sur un scan de l’internet, la plupart des adresses sont utilisés et une partie atteignable non négligeable est vulnérable.

Techniquement, un participant de botnet teste la connection telnet vers un client visible sur internet. Plus de la moitié des adresses ip existent, il suffit donc de tomber sur un objet connecté vulnérable. Avec une vitesse de scan en centaines de machine par seconde pour chaque client infecté, cela est réaliste, et le réseau se propage jusqu’à toucher une grande partie des machines vulnérables.


Lors de l’attaque de Mirai du 21 octobre 2016, ce sont des centaines de milliers de machine infectées qui étaient utilisées et des centaines nouvellement infectées chaque seconde.

Propagation

Botnet mirai propagation.jpg

Schéma 1. Propagation de MIRAI

Les objets infectés (ou ordinateurs de l’attaquant au tout début) scanne internet à la recherche d’autres machines vulnérables (identifiant et mot de passe par défaut connu de l’attaquant).

  1. Une des caméras parvient à se connecter par telnet à la cible. Quand cette machine du réseau MIRAI détecte la vulnérabilité après une série de question (suites commandes linux pour identifier l’objet trouvé et sa version linux), elle le signale au serveur Scan Receiver qui s’occupe de récupérer les résultats des scannes du botnet.
  2. Ce dernier donne l’adresse de la machine à attaquer au loader.
  3. Le loader contact la caméra cible et télécharge le virus sur cette dernière, le lance. La machine est alors infecté et fait partie du botnet MIRAI.

Controle

Le serveur à la tête du réseau (le CNC) utilise la communication point à point : chaque bot interroge occasionnellement ce serveur. Le CNC stocke les informations dans la base de données pour les statistiques et s’il faut contacter les membres du botnet, mais pour rester discret la communication est initialisée par les machines infectées. Le CNC contrôle le réseau, par exemple il donne l’ordre de DDOS une cible.


Honeypot

Comment lutter contre ces botnets ? Le meilleur moyen est la défense active qui consiste à identifier et comprendre leur fonctionnement pour les filtrer (Anti-virus et Parefeu principalement). Le problème est qu’il est difficile de mettre la main sur le virus : il faut récupérer une machine infecté puis sa mémoire. Une solution est alors de se faire passer pour une machine vulnérable et de se faire attaquer pour récupérer le virus directement. C’est le principe des honeypot.

Pratique

Botnet mirai configuration.png

Schéma 2. Configuration

Outils utilisés

Cowrie

Cowrie est un honeypot SSH/Telnet. Il propose un environnement similaire à celui de SSH ou Telnet, dupant ainsi les attaquants qui croient accéder à la machine cible alors qu’ils se trouvent en fait sur l’environnement du honeypot, isolé du reste de la machine. L’attaquant va tenter d’y installer le virus MIRAI jusqu’à ce qu’il se rende compte qu’il se trouve en fait sur un honeypot (le plus souvent lorsqu’il essaye d’exécuter une commande que l’environnement de Cowrie ne peut pas traiter). Toutes les actions ainsi que les adresses IP des attaquants sont loguées pour un traitement futur (analyses et statistiques des botnets, blacklist IP…).


Kippo Graph

Kippo est un honeypot tout comme Cowrie, il en est même son ancêtre. Il dispose de la fonctionnalité d’envoyer les logs vers une base de données MySQL, et Kippo-Graph est donc l’application PHP qui permet de visualiser les données récoltées sous forme de graphiques. Voici quelques fonctionnalités de Kippo-Graph :

  • Répartition géographique des attaquants
  • Commandes les plus essayées
  • Mots de passe essayés
  • Nombre de requêtes reçues sur l’honeypot suivant l’heure.

Cowrie étant basé sur Kippo, il permet d’envoyer les logs sur une DB MySQL avec le même format que Kippo, il est donc possible d’utiliser Kippo-Graph pour visualiser les logs de Cowrie (avec quelques manipulations néanmoins).

Tutoriel

A venir

Résultats

A venir