2.1.4. Machine Learning
2.1.4.1. Présentation de l'algorithme DGA
2.1.4.1.1. Activation
ML Management
dans l'interface web du GCenter (Ecran `Admin-GCenter- ML Management` de la legacy web UI).Note
En v102, seules des alertes sont générées par le moteur, contrairement en v101 où uniquement des métadonnées DNS étaient générées.
2.1.4.1.2. Listes d'exceptions White List / Black List
2.1.4.1.3. Affichage des alertes DGA
Les alertes DGA sont affichées dans l'interface web NDR ainsi dans les tableaux de bord Kibana dans la section ML.
Note
Le moteur de Machine Learning est nommé C&C
dans l'interface web NDR.
`dga_probability`
sera ajouté.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.4.2. Événements générés
- Dans l'interface principale nommée WEB UI du GCenter dans l'éran
`Alerts`
(l'interface principale nommée WEB UI est décrite dans la Présentation de l'interface graphique WEB UI).Pour visualiser les alertes; il faut sélectionner le filtre`C&C`
et ainsi visualiser la liste des alertes : voir la présentation de l'Ecran `Alerts` de la web UI.En cliquant sur une alerte, les informations détaillées de cette alerte sont affichées : voir Exemple d'alerte DGA dans la webui. - Dans l'interface Kibana UIPour visualiser les alertes; il faut sélectionner le filtre
`C&C`
et ainsi visualiser la liste des alertes : voir la présentation de l'Ecran `Alerts` de la web UI.En cliquant sur une alerte, il faut sélectionner sur la commande`Alert details`
puis sélectionner la flèche à gauche de l'alerte.L'interface affiché est l'interface nommée Kibana UI (décrite dans la Présentation de l'interface graphique Kibana).Les informations détaillées de cette alerte sont visualisables en format tableau ou jason (voir Exemple de log Machine Learning).
2.1.4.2.1. Exemple d'alerte DGA dans la webui
Les compteurs sont détaillées dans la Structure des données des logs Machine learning.
2.1.4.2.2. Exemple de log Machine Learning
{
"_index": "machine_learning-2023.10.16-000169",
"_type": "_doc",
"_id": "UQ0COYsBeBoubSyguUoF",
"_version": 1,
"_score": 1,
"_source": {
"dest_port": 53,
"@version": "1",
"domain_name": "nvtcvimt.com",
"flow_id": 2099102182782245,
"timestamp_detected": "2023-10-16T15:00:09.568Z",
"@timestamp": "2023-10-16T15:02:41.646Z",
"type": "machine_learning",
"dest_ip": "78.46.218.253",
"gcenter": "gcenter-int-128-dag.gatewatcher.com",
"probability": 0.9998979282169229,
"timestamp_analyzed": "2023-10-16T15:02:41.646Z",
"src_ip": "192.168.56.104",
"src_port": 1025,
"event_type": "dga",
"severity": 1,
"gcap": "gcap-int-129-dag.gatewatcher.com",
"matched_event": "0ebe7d76-ce3b-4623-bdd1-6aa4838b4149",
"uuid": "819423ea-d328-4c40-a998-eb022e813b19"
},
"fields": {
"severity": [
1
],
"probability": [
0.99989796
],
"gcenter": [
"gcenter-int-128-dag.gatewatcher.com"
],
"matched_event": [
"0ebe7d76-ce3b-4623-bdd1-6aa4838b4149"
],
"type": [
"machine_learning"
],
"uuid": [
"819423ea-d328-4c40-a998-eb022e813b19"
],
"timestamp_detected": [
"2023-10-16T15:00:09.568Z"
],
"src_ip": [
"192.168.56.104"
],
"src_port": [
1025
],
"domain_name": [
"nvtcvimt.com"
],
"event_type": [
"dga"
],
"@timestamp": [
"2023-10-16T15:02:41.646Z"
],
"flow_id": [
2099102182782245
],
"dest_ip": [
"78.46.218.253"
],
"@version": [
"1"
],
"gcap": [
"gcap-int-129-dag.gatewatcher.com"
],
"timestamp_analyzed": [
"2023-10-16T15:02:41.646Z"
],
"dest_port": [
53
]
}
}
2.1.4.2.3. Structure des données des logs Machine learning
Les logs sont composés de différentes parties :
la partie entête
la partie source définie par "_source"
la partie champs définie par "_fields"
2.1.4.2.3.1. La partie entête des logs Machine learning
La partie entête contient :
{ "_index": "machine_learning-2023.10.16-000169", "_type": "_doc", "_id": "UQ0COYsBeBoubSyguUoF", "_version": 1, "_score": 1,
Champ |
Requis |
Description |
Valeurs ou exemple |
---|---|---|---|
_index |
Oui |
Index interne |
machine_learning-2023.10.16-000169 |
_type |
Oui |
type par défault |
_doc |
_id |
Oui |
identifiant interne |
UQ0COYsBeBoubSyguUoF |
_version |
Oui |
version interne |
1 |
_score |
Oui |
pertinence de la réponse par rapport à la requête |
1 |
2.1.4.2.3.2. La partie source des logs Machine learning
La partie source définie par "_source" contient :
"_source": {
"dest_port": 53,
"@version": "1",
"domain_name": "nvtcvimt.com",
"flow_id": 2099102182782245,
"timestamp_detected": "2023-10-16T15:00:09.568Z",
"@timestamp": "2023-10-16T15:02:41.646Z",
"type": "machine_learning",
"dest_ip": "x.x.x.x",
"gcenter": "gcenter-xxx.domain.local",
"probability": 0.9998979282169229,
"timestamp_analyzed": "2023-10-16T15:02:41.646Z",
"src_ip": "x.x.x.x",
"src_port": 1025,
"event_type": "dga",
"severity": 1,
"gcap": "gcap-xxx.domain.local",
"matched_event": "0ebe7d76-ce3b-4623-bdd1-6aa4838b4149",
"uuid": "819423ea-d328-4c40-a998-eb022e813b19"
},
Champ |
Requis |
Description |
Valeurs ou exemple |
---|---|---|---|
@timestamp |
Oui |
Timestamp du traitement de l'alerte par le GCenter (correspond au passage dans logstash) |
2023-10-16T15:02:41.646Z |
@version |
oui |
version du document |
1 |
Alert Type dans webui |
Oui |
type d'alerte |
C&C |
Description (dans webui) |
oui |
Champ description sur la menace. Uniquement présent dans la web ui |
Les adversaires peuvent établir dynamiquement des connexions avec l’infrastructure de commandement et de contrôle pour échapper aux détections et aux correctifs courants. ... |
dest_ip (ou IP dans webui) |
Oui |
Adresse IP de destination |
x.x.x.x |
dest_port (ou PORTs dans webui) |
Non |
Port de destination |
53 |
domain_name |
oui |
Nom de domaine |
nvtcvimt.com |
event_type |
Oui |
Type d’événement |
dga |
flow_id |
Oui |
Identifiant unique du flux. Permet de retrouver le fileinfo associé |
2,099,102,182,782,245 |
gcap |
Oui |
Nom du gcap associé à l’alerte |
gcap-xxx.domain.local |
gcenter |
Oui |
Nom du GCenter associé à l’alerte. |
gcenter-xxx.domain.local |
Hostname (webui) |
oui |
Nom de l’hôte de l’émetteur de la menace |
en cas absence du hostname, c'est son IP qui est affiché |
matched_event |
oui |
0ebe7d76-ce3b-4623-bdd1-6aa4838b4149 |
|
MITRE ASSOCIATIONS |
oui |
Catégorie MITRE de la menace |
Command and Control : Dynamic Resolution |
Name dans webui |
Oui |
somme des informations des champs event_type + domain_name |
DGA:vmfyaxnse.com |
probability |
oui |
Probabilité que cela soit la menace indiquée |
0.9998979282169229 |
severity |
Oui |
Code du résultat de l’analyse. |
Compris entre 0 et 3.
0=clean, 1=infected, 2=suspicious, 3=Other
|
src_ip (ou IP dans webui) |
Oui |
Adresse IP source détectée par Sigflow |
X.X.X.X |
src_port (ou PORTs dans webui) |
Oui |
Port source détecté par Sigflow |
1025 |
timestamp analyzed |
Oui |
Date et heure de la dernière analyse du fichier |
2023-10-16T15:02:41.646Z |
timestamp detected |
Oui |
Timestamp de la capture du fichier par le Gcap |
Oct 16, 2023 @ 17:00:09.568 |
type |
Oui |
Type d’événement |
machine_learning |
uuid ou id |
Oui |
Identifiant unique de l’alerte |
819423ea-d328-4c40-a998-eb022e813b19 |
2.1.4.2.3.3. La partie champs des logs Machine learning
La partie champs définie par "fields" contient les même compteurs que dans la partie source: se référer à la section partie source.
2.1.4.3. Visualisation de l'état de Machine Learning
La visualisation de l'état courant du moteur est donnée dans l'Ecran `Health checks` de la web UI.
2.1.4.4. Mise à jour de Machine Learning
Le moteur ne reçoit pas de mise à jour.
2.1.4.5. Configuration de Machine Learning
Le moteur n'est pas configurable mais ce moteur doit être activé pour détecter des DGA (C&C) (voir l'Ecran `Admin-GCenter- ML Management` de la legacy web UI).