L'analyse de malwares

Communication avec le Command and Control

Introduction

La plupart des malwares présentés précédemment vont tenter de communiquer avec l'attaquant.
C'est le cas par exemple des keyloggers appartenant à la famille des stealer qui vont transmettre des informations dérobées de la victime au pirate.

Dans le domaine de l'analyse, l'équipement de l'attaquant en communication avec le malware est nommé Command and Control.
Les canaux de communication entre le malware et son Command and Control sont le plus souvent le point faible de l'infection. En effet, il suffirait de rendre la liaison inactive à l'aide d'équipement spécialisé comme un pare feu pour rendre le malware inopérationel.
Pour empêcher cela, les créateurs de malwares mettent en place des systèmes et des mécanismes de plus en plus sophistiqués pour communiquer avec leur malware.
La plupart de ces méthodes sont basées sur le principe du DNS.
Nous allons présenter les trois méthodes les plus connues et les plus utilisées par ordre de complexité.

Transmission des noms de domaines

Dans cette première technique, le Command and Control transmet régulièrement une nouvelle liste de noms de domaine aux victimes. La plupart du temps, les malwares disposent de plusieurs noms de domaine pour contacter leur Command and Control.
De cette façon, en cas d'adresse inacessible d'autres adresses sont utilisables.

Fast flux

Ici, la communication entre les malwares et le serveur central va utiliser un des principes de base du fonctionnement du protocole DNS.
Il s'agit simplement d'associer à un nom de domaine plusieurs adresses IP.

Domain Generation Algorithm

Cette dernière méthode est la plus évoluée des techniques présentées dans ce document.
A l'opposé des deux méthodes décrites précédement, les malwares vont générer localement les adresses DNS permettant de contacter les C&C.
Par exemple, le malware Conficker générait des milliers de noms de domaines chaque jour et tentait de contacter les adresses pour trouver d'éventuels C&C.
La difficulté de mise en place de cette méthode est de trouver un algorithme de génération efficace avec un mécanisme suffisamment aléatoire pour éviter d'être détecté.