2.1.6. Moteur DGA detect

2.1.6.1. Introduction

2.1.6.1.1. Pour quels types de menaces ce moteur est-il conçu ?

Le GCenter intègre un moteur capable de détecter la technique du Domain Generating Algorithm (algorithme de génération de domaine), souvent utilisée par les acteurs de menaces avancées dans leurs logiciels malveillants.
Le moteur DGA detect :
  • fonctionne sur le DNS (protocole en clair) et fonctionnera même si le logiciel malveillant utilise par la suite un protocole chiffré comme HTTPS

  • peut détecter des DGA qui n'ont jamais été vus auparavant. Par exemple, il aurait pu détecter solarwind même s'il a été formé avant que solarwind n'existe

La présence de noms de domaine générés par la DGA sur un réseau est un indicateur fort de compromission.
En effet, les logiciels malveillants peuvent utiliser des requêtes HTTP vers des noms de domaine générés automatiquement pour contacter leurs serveurs de commande et de contrôle. Ils sont également appelés CnC, C&C ou C2.

2.1.6.1.2. Comment ce moteur détecte-t-il les menaces ?

Les noms de domaine générés par les DGA ont des propriétés différentes de celles des noms de domaine légitimes.
Les approches de détection conventionnelles telles que les listes noires ne sont pas pertinentes dans le cas de domaines constamment renouvelés.
Les simples calculs d'entropie génèrent un grand nombre de faux positifs.
La détection de domaines suspects est basée sur un modèle Machine Learning supervisé et pré-entraîné.
La détection de comportement « DGA » est basée sur l'analyse du domaine ET l'analyse comportementale.
DGA detect combine plusieurs approches hybrides pour obtenir le meilleur de chaque technique :
  • Un algorithme d'apprentissage automatique supervisé pour détecter les domaines DGA probables. Le modèle est basé sur plusieurs modèles, l'un utilisant le deep learning (LSTM) et l'autre utilisant des caractéristiques spécifiques au domaine.

  • Une analyse du comportement basée sur l'agrégation dans le temps


2.1.6.1.3. Comment fonctionne le moteur DGA detect dans le GCenter ?

  • Sur le GCap, les réponses DNS sont enregistrées et envoyées au GCenter.

  • Un algorithme d'apprentissage automatique détecte les domaines qui semblent avoir été produits par une DGA.

  • Une analyse comportementale est effectuée pour détecter les hôtes associés à un nombre inhabituel de réponses DNS NXDOMAIN (= hôtes qui produisent beaucoup de requêtes pour des domaines qui n'existent pas).

  • Les résultats de l'analyse comportementale et de chaque domaine individuel sont combinés pour produire une alerte agrégée.

Quels sont les exemples concrets de DGA ?

  • Conficker :

    • L'un des exemples les plus anciens et les plus connus de DGA est celui du ver Conficker, qui a infecté des millions d'ordinateurs dans le monde entier.

    • La DGA de Conficker générait 250 domaines par jour, ce qui rendait difficile pour les défenseurs de bloquer les domaines assez rapidement.

  • Zeus Gameover : le logiciel malveillant Zeus Gameover a également utilisé un DGA pour générer des noms de domaine, ce qui lui a permis d'échapper à la détection et de prendre le contrôle des machines infectées à des fins de vol financier.

Comment fonctionne la DGA ?

Génération algorithmique de domaines : le logiciel malveillant utilise un algorithme prédéfini pour générer une liste de noms de domaines. L'algorithme peut prendre diverses entrées, telles que la date et l'heure actuelles, une valeur de départ ou d'autres paramètres dynamiques, pour produire un ensemble unique de noms de domaine à chaque fois qu'il s'exécute.
Tentative de connexion : le logiciel malveillant tente de se connecter aux domaines générés dans l'ordre ou de manière aléatoire jusqu'à ce qu'il réussisse à communiquer avec un serveur C2 actif. Le serveur C2 connaîtra également le même algorithme et les mêmes paramètres, de sorte qu'il enregistrera à l'avance un ou plusieurs des domaines générés.
Résistance au blocage : étant donné qu'un DGA peut créer des milliers, voire des millions de noms de domaine potentiels, il est difficile pour les équipes de cybersécurité de bloquer tous les domaines possibles à l'avance. Même si certains domaines sont détectés et mis sur liste noire, la DGA peut rapidement passer à de nouveaux domaines, ce qui permet au logiciel malveillant de continuer à communiquer avec ses opérateurs.

Pourquoi un attaquant utiliserait-il la DGA ?

Échapper à la détection : les systèmes de sécurité traditionnels qui reposent sur le blocage de domaines ou d'adresses IP spécifiques ont du mal à s'adapter à la création et à l'utilisation rapides de nouveaux domaines.
Résilience et redondance : si un domaine est fermé ou bloqué, le logiciel malveillant peut simplement utiliser un autre domaine généré par l'algorithme.
Flexibilité : elle permet aux cybercriminels de déplacer leur infrastructure C2 rapidement et facilement, ce qui rend plus difficile l'interruption de leurs opérations par les forces de l'ordre ou les équipes de sécurité.

Quels sont les différents types de DGA ?

Les DGA basés sur le temps : ils utilisent la date ou l'heure actuelle pour générer des domaines.
Par exemple : a1b2c3d4.com, e5f6g7h8.net, ijklmnop.org, qrs8tuv9.biz, wxyz1234.inf.
Les DGA basées sur une liste de mots : ils utilisent une liste prédéfinie de mots pour créer des noms de domaine, en les combinant de différentes manières.
Par exemple : blueelephantapple.com, silverfoxbanana.net, quickmonkeytree.org, redcherrybunny.biz, happykoalaplanet.info
Les DGA basés sur le hachage : ils utilisent des fonctions cryptographiques telles que le hachage pour générer des domaines, ce qui donne l'impression que les domaines sont plus aléatoires.
Par exemple : 4d2ffg71f65d.com, a9c4d3b6f12e.net, 7f8a9bcd0342.org, 0f9b8a7cd45e.biz, d5c6b7a8e9f0.info
Les DGA basées sur le Machine Learning (apprentissage automatique) : les nouveaux types de DGA peuvent utiliser des modèles d'apprentissage automatique pour créer des domaines difficiles à distinguer des domaines légitimes.
Par exemple : secureloginservice.com, mailverifytool.net, updateauthenticator.org, dataexchangeserver.biz, clientaccessmanager.info
Une liste d'exceptions peut être établie pour forcer le moteur à déclarer les noms de domaine comme sains (Ignore list).
Elle supprime les alertes liées aux faux positifs récurrents.

2.1.6.2. Événements générés

Celles-ci sont affichées :
  • Dans l’interface principale nommée Web UI du GCenter, dans l’écran `Alerts`
    L’interface principale nommée Web UI est décrite dans la Présentation de la WebUI.
  • Dans l'interface nommée Kibana UI
    • Pour visualiser les alertes, sélectionner le filtre moteur `DGA`.
      Voir la présentation de l'Ecran `Alerts` de la WebUI.
      L'écran n'affiche que la liste des alertes DGA.
      ../../_images/GCE103_DGA_21.PNG
    • Après avoir sélectionné l'alerte, cliquer sur la commande `Open DGA activity` du menu `Actions`.
      L'interface Kibana est ouverte dans l'onglet `Overview`, la catégorie `DGA` de la section `Alerts `.
      La base de données est filtrée sur le paramètre `source.ip:` qui envoie une requête DGA.
      L'interface affichée est l'interface nommée Kibana UI (décrite dans l'Interface graphique Kibana).
      ../../_images/GCE103_DGA_03.PNG
      Cette page affiche toutes les alertes de cette adresse IP détectées par DGA.
    • Cliquer sur l'icône (1) à gauche de l'alerte.
      Le document développé (2) s'affiche.
      ../../_images/GCE103_DGA_04.PNG
      Les informations détaillées de cette alerte peuvent être consultées sous forme de tableau ou au format json (voir la Structure des données des logs DGA detect).
      Les compteurs affichés sont donnés dans l'annexe Structure des données du journal de bord du moteur.

Note

Si un GCap supervise plusieurs réseaux ou si plusieurs GCaps supervisent plusieurs réseaux, il est possible qu'un nom de domaine qui apparaît plusieurs fois ne génère qu'une seule alerte.


2.1.6.2.1. Exemple d'alerte DGA detect dans la WebUI

../../_images/GCE103_DGA_22.PNG
La présentation des détails de l'écran `Alert details` est disponible dans la Fenêtre `Alert details`.
Les compteurs affichés sont donnés dans l'annexe Structure des données du journal de bord du moteur.

2.1.6.2.2. Structure des données des logs DGA detect

Les logs sont composés de différentes parties :

  • la partie en-tête

  • la partie source définie par "_source"

  • la partie champ définie par "_fields"

Ces informations sont affichées dans l'écran `Expanded document` de Kibana.


2.1.6.2.2.1. La partie en-tête des logs DGA detect

La partie en-tête contient :

"_index": "engines_alerts-2024.12.17-000043",
"_id": "-a9H1JMBe7GX5B2fgaSz",
"_version": 1,
"_score": 0,

Les informations détaillées sont données dans le tableau (Compteurs de la partie en-tête des journaux).


2.1.6.2.2.2. La partie source des logs DGA detect

La partie source est définie par "_source" dans les logs.

Note

Les données affichées dans la WebUI (fenêtre de détails des alertes) font partie des données affichées dans le document étendu de l'interface Kibana.
Toutes les données peuvent être exportées vers un SIEM via syslog (un exemple d'alerte exportée est présenté).
Les informations détaillées sont données dans le tableau (Compteurs de la partie en-tête des journaux).

L'exemple donné ici est un exemple de Kibana.

  "event": {
    "created": "2024-12-17T11:01:15.955324+00:00",
    "dataset": "alert",
    "end": "2024-12-17T11:00:05.717000+00:00",
    "module": "dga_detect",
    "severity": 1,
    "kind": "alert",
    "category": [
      "network",
      "intrusion_detection"
    ],
    "start": "2024-12-17T10:59:59.513000+00:00",
    "id": "113dfa89-3b96-4e93-af67-e11df6446ff0"
  },
  "dga": {
    "malware_behavior_confidence": 50,
    "nx_domain_count": 29,
    "dga_ratio": 1,
    "top_DGA": [
      "tjzjyiheo.com",
      "nvtcvimt.com",
      "vmfyaxnse.com",
      "htjykhvta.com",
      "csmanuivsrlx.com",
      "sbxsgfddr.com",
      "oyttwuyshcgxxaenbit.com",
      "seklusaprnkwhvybzc.com",
      "xxcnirvbqivbucfsbliu.com",
      "jgjvgfetpammdrxwn.com"
    ],
    "dga_count": 29
  },
  "source": {
    "ip": "192.168.56.104"
  },
  "ecs": {
    "version": "8.6.0"
  },
  "destination": {
    "port": 53,
    "ip": "78.46.218.253"
  },
  "observer": {
    "log_format_version": "1.0.0",
    "hostname": "gcenter.domain.local",
    "vendor": "gatewatcher",
    "gcap": {
      "hostname": "gcap-int-129-dag.gatewatcher.com",
      "version": "2.5.4.0-rc5"
    },
    "product": "gcenter",
    "uuid": "fc1e66e3-a397-5eb4-9277-754be778f317",
    "version": "2.5.3.103"
  },
  "@version": "1",
  "@timestamp": "2024-12-17T11:01:15.955Z",
  "network": {
    "protocol": "dns",
    "transport": "udp",
    "timestamp": "2024-12-17T11:00:05.434623+00:00",
    "flow_id": 2110172624313946
  }
},
Le moteur DGA detect enrichit les informations déjà fournies par le module Sigflow.
Ainsi, pour un domaine non détecté comme domaine généré, le champ `dga_probability` sera ajouté.
Une valeur proche de 0 indique une faible probabilité que le domaine ait été généré.
A l'inverse, une valeur proche de 1 indique qu'il y a de fortes chances que ce domaine soit le résultat d'une génération aléatoire.

2.1.6.2.2.3. Liste des compteurs de l'alerte

Note

Les compteurs de l'alerte sont visibles :

  • dans l'écran `Alert details` de la WebUI

  • dans l'écran `Expanded document` de Kibana

  • dans l'export vers le SIEM

Les informations détaillées sont données dans le tableau (Compteurs de la partie source des journaux).


2.1.6.3. Gestion du moteur

2.1.6.3.1. Visualisation de l'état du moteur

L'état courant du moteur est donné dans l' Ecran `Health checks`.


2.1.6.3.2. Mise à jour du moteur

Le moteur est mis à jour à chaque nouvelle version du GCenter.


2.1.6.3.3. Configuration du moteur DGA detect et gérer la liste des fichiers ignorés

L'interface de gestion permet :

L'interface de gestion est décrite dans l' Ecran `DGA detect` (commande DGA).


2.1.6.4. Analyse des alertes

Les alertes sont affichées sur un écran spécifique décrit dans l' Ecran `Alerts` de la WebUI.
La procédure générale de l’analyse des alertes est décrite dans l' Utilisation des tableaux de bord NDR.
La procédure spécifique de l’analyse des alertes DGA est décrite dans l'Analyse des alertes DGA detect.