2.1.11. Moteur Beacon detect

2.1.11.1. Introduction

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

Le moteur Beacon detect permet de détecter les communications avec un serveur malveillant lors d'une attaque Command and Control (C&C).
Ces communications sont établies à partir d'un beacon : un logiciel malveillant implanté sur l'hôte compromis qui établit des connexions avec le serveur C&C à intervalles réguliers.
Les beacons sont également appelées implant ou agent.
Après s'être exécutée sur l'hôte compromis, le beacon sera en mesure de transmettre des informations au serveur C&C et de recevoir des commandes à exécuter.
Cobalt Strike et Brute Ratel font partie des cadres C&C fréquemment utilisés pour ce type d'attaques.
Cette menace est particulièrement subtile car elle ressemble à un flux Internet standard et n'est donc pas nécessairement bloquée par un pare-feu.
../../_images/beacon_detect_C2.png

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

Le moteur Beacon detect détecte les menaces C&C grâce à différentes analyses des métadonnées HTTP et HTTPS :

  • identification des distributions statistiques indiquant une périodicité dans les métadonnées

  • la présence d'anomalies caractérisant l'exécution des commandes

  • heuristique pour identifier spécifiquement certains logiciels C&C

Selon la configuration utilisée, les algorithmes de détection peuvent résister aux méthodes d'évasion suivantes :

  • chiffrement ou surchiffrement des données

  • temps aléatoire entre chaque communication

  • taille des données aléatoire

  • usurpation de noms de domaine connus

Certains C&C sont spécifiquement identifiés :

  • Cobalt Strike

  • BruteRatel

  • Caldera

  • Powershell Empire

  • Sliver

La configuration se fait avec plusieurs options qui empêchent l'analyse des communications saines.
Ces options filtrent notamment :
  • les domaines fréquemment utilisés au sein de l'infrastructure

  • les domaines communément connus

  • les domaines spéciaux génériques utilisés dans les endpoints internes (par exemple : .local)

La désactivation de ces options augmente la sensibilité de la détection et peut nécessiter l'ajout de domaines à la liste des destinations ignorées.


2.1.11.1.3. Comment fonctionne le moteur Beacon detect dans le GCenter ?

Le moteur :


2.1.11.1.3.1. Données saisies du moteur Beacon detect

Les sessions (ou événements) HTTP ou HTTPS reconstituées par le GCap sont régulièrement envoyées au moteur Beacon detect, qui effectue ensuite des analyses statistiques.
Selon la configuration utilisée, les requêtes DNS reconstruites par le GCap peuvent également être exploitées.
Pour le fonctionnement de base du moteur :
  • la journalisation HTTP et la journalisation TLS doivent être activées dans la section `Base variables` du menu `Detection strategy/Sigflow engine/Gcaps profiles`
    Pour plus de détails sur ces fonctions et leurs activations, voir la Partie `Base variables` de l'écran `Gcaps profiles`.
  • le limiteur de débit des métadonnées doit être désactivé pour les protocoles HTTP et TLS dans le menu `Detection strategy/Sigflow engine/Metadata rate limiter`
    Pour plus de détails sur sa fonction et les activations des protocoles, voir l'Ecran `Metadata rate limiter`.

Important

Activer le protocole HTTP ou TLS désactive la détection du moteur Beacon detect pour ces protocoles.

Pour un fonctionnement optimal du moteur :

  • La journalisation DNS doit être activée dans la section `Base variables` du menu `Detection strategy/Sigflow engine/Gcaps profiles`
    Pour plus de détails sur ces fonctions et leurs activations, voir la rubrique Partie `Base variables` de l'écran `Gcaps profiles`.

Note


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

Les événements générés par le moteur Beacon detect sont des alertes.
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 :
    • Cliquer sur l'icône `Hunting` de la `WebUI`
      L'interface affichée est l'interface Kibana UI (décrite dans l'Interface graphique Kibana).
    • Cliquer sur l'icône puis sur `Discover`

    • Sélectionner `engines_alerts*` dans Data View

    • Dans le champ de recherche, entrer le filtre `event.module :"beacon_detect"` pour n'afficher que les alertes du moteur Beacon detect

      ../../_images/GCE103_BEACON-ALERTS-1.PNG
    • Cliquer sur l'icône (1) à gauche de l'alerte.
      Le document développé (2) s'affiche.
      ../../_images/GCE103_BEACON-ALERTS-3.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 Beacon detect).
      Les compteurs affichés sont données dans l'annexe Structure des données du journal de bord du moteur.

2.1.11.2.1. Exemple d'alerte Beacon detect dans Kibana

../../_images/GCE103_BEACON-ALERTS-3.PNG
La présentation des détails de l'écran `Alert details` est disponible dans la Fenêtre `Alert details`.
Les compteurs sont détaillés dans la Structure des données des logs Beacon detect.

2.1.11.2.2. Structure des données des logs Beacon detect

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

  • la partie en-tête

  • la partie source définie par "_source"

  • la partie champs définie par "_fields"

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


2.1.11.2.2.1. La partie en-tête des logs Beacon detect

La partie en-tête contient :

"_index": "engines_alerts-,
"_id": "-a9H1JMBe7Sz",
"_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.11.2.2.2. La partie source des logs Beacon 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.

"tls": {
  "client": {
    "server_name": "cisco-update.com"
  }
},
"@version": "1",
"event": {
  "created": "2024-09-09T13:02:34.254441+00:00",
  "end": "2024-09-09T11:52:25.666000+00:00",
  "severity": 3,
  "module": "beacon_detect",
  "start": "2024-09-09T11:47:44.012000+00:00",
  "category": [
    "network",
    "intrusion_detection"
  ],
  "kind": "alert",
  "id": "5e7bb104-6493-43b2-be4d-f7c28ce79e85",
  "dataset": "alert"
},
"source": {
  "ip": "10.0.0.60",
  "mac": "60:57:18:e9:4f:5d"
},
"beacon": {
  "mean_time_interval": 1,
  "active": true,
  "possible_cnc": "not_recognized",
  "session_count": 260,
  "type": "constant",
  "id": "c4c886b4ad",
  "hostname_resolution": "not_analyzed"
},
"destination": {
  "ip": "157.230.93.100",
  "port": 443
},
"observer": {
  "product": "gcenter",
  "uuid": "78f4fed1-c9ad-52b9-b509-6b87767f501f",
  "log_format_version": "1.0.0",
  "hostname": "gcenter-clelyo-01.gatewatcher.com",
  "gcap": {
    "hostname": "gcap-clement-l.gatewatcher.fr",
    "version": "2.5.4.0-rc1"
  },
  "version": "2.5.3.103",
  "vendor": "gatewatcher"
},
"ecs": {
  "version": "8.6.0"
},
"@timestamp": "2024-09-09T13:02:59.354490664Z",
"url": {
  "domain": "cisco-update.com"
},
"network": {
  "protocol": "tls",
  "timestamp": "2024-09-09T11:47:44.012000+00:00",
  "transport": "tcp"
}

2.1.11.2.2.3. Liste des compteurs de l'alerte Malcore

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.11.3. Gestion du moteur

2.1.11.3.1. Visualisation de l'état du moteur

L'état du moteur est affiché dans l'Ecran `Health checks` si le moteur a été activé : pour vérifier, voir Ecran `Beacon detect` (commande Beacon).
Le moteur peut être activé si la licence installée le permet ; voir l'Ecran `Licensing`.

2.1.11.3.2. Mise à jour du moteur

Il existe des mises à jour pour le moteur.
Ces mises à jour peuvent être effectuées manuellement ou programmées via la commande '''Threat DB update'''.

2.1.11.3.3. Configuration du moteur Beacon detect et gestion de la liste des destinations ignorées

L'interface de gestion est utilisée :


2.1.11.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 Beacon detect est décrite dans l'Analyse des alertes Beacon detect.