2.1.6. Moteur CTI, moteur RetroHunt et moteur ActiveHunt
2.1.6.1. Présentation
Le moteur CTI comprend les parties :
L'interface de configuration est décrite dans l'Ecran `Admin-GCenter- CTI Configuration` de la legacy web UI.
2.1.6.2. Module CTI
de rechercher à posteriori parmi les métadonnées si les indices de compromission de la base CTI correspondent à des mouvements malveillants
de générer des règles Suricata dans le module Sigflow sur la base des indices de compromission afin de lever des alertes
Note
Il est nécessaire d'avoir une licence supplémentaire pour activer ce module. Il n'est donc pas activé nativement dans la solution.
2.1.6.3. Configuration du moteur CTI
2.1.6.4. Moteur RetroHunt
Note
La corrélation des indices et des métadonnées dépendra du temps de rétention des données configuré sur le GCenter.
mise à jour manuelle avec le package cti.gwp
mise à jour Online : la récupération des indices de compromissions est effectuée toutes les heures en se basant sur le package mis en ligne par Gatewatcher
mise à jour Local : la récupération des indices de compromissions est effectuée toutes les heures en se basant sur le package présent dans le dépôt local.
Note
2.1.6.5. Moteur ActiveHunt
Note
Contrairement au moteur RetroHunt, les alertes générées sont de type Suricata et seront donc disponible dans les tableaux de bord Sigflow.
2.1.6.6. Événements générés générés par le moteur RetroHunt
- 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 l'interface graphique WEB UI).Pour visualiser les alertes; il faut sélectionner le filtre`APT`
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 RetroHunt 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.6.6.1. Exemple d'alerte RetroHunt dans la webui
Les compteurs sont détaillées dans la Structure des données des logs RetroHunt.
2.1.6.7. Exemple d’événement RetroHunt
{
"_index": "retrohunt-2023.10.18-000171",
"_type": "_doc",
"_id": "6BESQ4sBeBoubSygpp1s",
"_version": 1,
"_score": 1,
"_source": {
"flow_id": 1540796205479447,
"@timestamp": "2023-10-18T13:56:14.789Z",
"kill_chain_phases": [],
"gcenter": "gcenter-xxx.domain.local"
"signature": "RetroHunt - Host - malware/Unknown - Hajime - GW Lab Test - 00135350-1810-2023-34db-1319151da1fd",
"src_ip": "X.X.X.X",
"event_type": "retrohunt",
"case_id": "00135350-1810-2023-edb7-7f8f1e4fccb9",
"ioc_tags": [
"trojan.generickd.34055387 (b)",
"linux/hajime.a trojan",
"e32/agent.cd",
"linux.hajime.bc",
"backdoor.hajime.linux.129",
"linux/hajime.75930",
"unix.malware.agent-6626471-0",
"linux/hajime.nsnlw",
"hajime",
"elf.mirai.43048.gc",
"trojan.elfarm32.hajime.fbhtfi",
"trojan.linux.hajime",
"trojan.generickd.34055387"
],
"families": [
"Hajime"
],
"targeted_platforms": [
"linux"
],
"risk": "Suspicious",
"categories": [
"malware"
],
"campaigns": [],
"@version": "1",
"threat_actor": [
"GW Lab Test"
],
"timestamp_detected": "2023-10-18T08:08:31.112Z",
"ioc_value": "im.a.very.bad.doma.in",
"external_links": [
{
"source_name": "URLHaus Abuse.ch",
"url": "https://urlhaus.abuse.ch/url/2269068/"
}
],
"gcap": "gcap-xxxxxxxxx.domain.local",
"uuid": "19fe0b3d-05fb-433a-ada0-f246e284d9bd",
"dest_port": 80,
"ioc_id": "00135350-1810-2023-34db-1319151da1fd",
"ttp": [],
"targeted_sectors": [],
"meta_data": {
"cwe": [],
"ssdeep": "1536:87vbq1lGAXSEYQjbChaAU2yU23M51DjZgSQAvcYkFtZTjzBht5:8D+CAXFYQChaAUk5ljnQssL",
"descriptions": [],
"usageMode": "hunting",
"filetype": "ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux)",
"size": 78.3984375,
"tslh": "T16D7312E017B517CC1371A8353BED205E9128223972AE35302E97528DF957703BAB2DBE"
},
"type": "cti",
"ioc_creation_date": "2023-10-18T13:53:50+00:00",
"timestamp_analyzed": "2023-10-18T13:56:14.789Z",
"targeted_organizations": [],
"matched_event_type": "http",
"ioc_updated_date": "2023-10-18T13:53:50+00:00",
"severity": 1,
"matched_event": "cf7cf312-883b-4b84-a530-fea8d49b294c",
"community_id": "1:oPgJrwIH53r44+0TfDB+7uhzL50=",
"vulnerabilities": [],
"targeted_countries": [],
"timestamp_package": "2023-10-18T13:53:50.696659+0000",
"description": "IOC matching first tests",
"relations": [
"0e3cc27b-7999-48ce-8484-dc12b325a355"
],
"": 0.5,
"dest_ip": "X.X.X.X",
"src_port": 59338,
"tlp": "green",
"usage_mode": "hunting",
"ioc_type": "Host"
},
"fields": {
"signature": [
"RetroHunt - Host - malware/Unknown - Hajime - GW Lab Test - 00135350-1810-2023-34db-1319151da1fd"
],
"usage_mode": [
"hunting"
],
"description": [
"IOC matching first tests"
],
"type": [
"cti"
],
"uuid": [
"19fe0b3d-05fb-433a-ada0-f246e284d9bd"
],
"meta_data.ssdeep": [
"1536:87vbq1lGAXSEYQjbChaAU2yU23M51DjZgSQAvcYkFtZTjzBht5:8D+CAXFYQChaAUk5ljnQssL"
],
"src_ip": [
"172.17.0.6"
],
"ioc_updated_date": [
"2023-10-18T13:53:50.000Z"
],
"community_id": [
"1:oPgJrwIH53r44+0TfDB+7uhzL50="
],
"event_type": [
"retrohunt"
],
"ioc_tags": [
"trojan.generickd.34055387 (b)",
"linux/hajime.a trojan",
"e32/agent.cd",
"linux.hajime.bc",
"backdoor.hajime.linux.129",
"linux/hajime.75930",
"unix.malware.agent-6626471-0",
"linux/hajime.nsnlw",
"hajime",
"elf.mirai.43048.gc",
"trojan.elfarm32.hajime.fbhtfi",
"trojan.linux.hajime",
"trojan.generickd.34055387"
],
"flow_id": [
1540796205479447
],
"case_id": [
"00135350-1810-2023-edb7-7f8f1e4fccb9"
],
"@version": [
"1"
],
"external_links.url": [
"https://urlhaus.abuse.ch/url/2269068/"
],
"categories": [
"malware"
],
"meta_data.usageMode": [
"hunting"
],
"matched_event_type": [
"http"
],
"dest_port": [
80
],
"severity": [
1
],
"targeted_platforms": [
"linux"
],
"meta_data.filetype": [
"ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux)"
],
"": [
0.5
],
"meta_data.size": [
78.39844
],
"gcenter": [
"gcenter-int-128-dag.gatewatcher.com"
],
"meta_data.tslh": [
"T16D7312E017B517CC1371A8353BED205E9128223972AE35302E97528DF957703BAB2DBE"
],
"matched_event": [
"cf7cf312-883b-4b84-a530-fea8d49b294c"
],
"ioc_value": [
"im.a.very.bad.doma.in"
],
"ioc_id": [
"00135350-1810-2023-34db-1319151da1fd"
],
"ioc_type": [
"Host"
],
"families": [
"Hajime"
],
"timestamp_detected": [
"2023-10-18T08:08:31.112Z"
],
"external_links.source_name": [
"URLHaus Abuse.ch"
],
"src_port": [
59338
],
"threat_actor": [
"GW Lab Test"
],
"@timestamp": [
"2023-10-18T13:56:14.789Z"
],
"ioc_creation_date": [
"2023-10-18T13:53:50.000Z"
],
"dest_ip": [
"172.17.0.4"
],
"tlp": [
"green"
],
"risk": [
"Suspicious"
],
"gcap": [
"gcap-int-129-dag.gatewatcher.com"
],
"timestamp_analyzed": [
"2023-10-18T13:56:14.789Z"
],
"timestamp_package": [
"2023-10-18T13:53:50.696Z"
],
"relations": [
"0e3cc27b-7999-48ce-8484-dc12b325a355"
],
"description.keyword": [
"IOC matching first tests"
]
}
}
2.1.6.7.1. Structure des données des logs RetroHunt
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.6.7.1.1. La partie entête des logs RetroHunt
La partie entête contient :
{
"_index": "retrohunt-2023.10.18-000171",
"_type": "_doc",
"_id": "6BESQ4sBeBoubSygpp1s",
"_version": 1,
"_score": 1,
Champ |
Requis |
Description |
Valeurs ou exemple |
---|---|---|---|
_index |
Oui |
Index interne |
retrohunt-2023.10.18-000171 |
_type |
Oui |
type par défault |
_doc |
_id |
Oui |
identifiant interne |
6BESQ4sBeBoubSygpp1s |
_version |
Oui |
version interne |
1 |
_score |
Oui |
pertinence de la réponse par rapport à la requête |
1 |
2.1.6.7.1.2. La partie source des logs Machine learning
La partie source définie par "_source" contient :
"flow_id": 1540796205479447, "@timestamp": "2023-10-18T13:56:14.789Z", "kill_chain_phases": [], "gcenter": "gcenter-xxx.domain.local" "signature": "RetroHunt - Host - malware/Unknown - Hajime - GW Lab Test - 00135350-1810-2023-34db-1319151da1fd", "src_ip": "X.X.X.X", "event_type": "retrohunt", "case_id": "00135350-1810-2023-edb7-7f8f1e4fccb9", "ioc_tags": [ "trojan.generickd.34055387 (b)", "linux/hajime.a trojan", "e32/agent.cd", "linux.hajime.bc", "backdoor.hajime.linux.129", "linux/hajime.75930", "unix.malware.agent-6626471-0", "linux/hajime.nsnlw", "hajime", "elf.mirai.43048.gc", "trojan.elfarm32.hajime.fbhtfi", "trojan.linux.hajime", "trojan.generickd.34055387" ], "families": [ "Hajime" ], "targeted_platforms": [ "linux" ], "risk": "Suspicious", "categories": [ "malware" ], "campaigns": [], "@version": "1", "threat_actor": [ "GW Lab Test" ], "timestamp_detected": "2023-10-18T08:08:31.112Z", "ioc_value": "im.a.very.bad.doma.in", "external_links": [ { "source_name": "URLHaus Abuse.ch", "url": "https://urlhaus.abuse.ch/url/2269068/" } ], "gcap": "gcap-xxxxxxxxx.domain.local", "uuid": "19fe0b3d-05fb-433a-ada0-f246e284d9bd", "dest_port": 80, "ioc_id": "00135350-1810-2023-34db-1319151da1fd", "ttp": [], "targeted_sectors": [], "meta_data": { "cwe": [], "ssdeep": "1536:87vbq1lGAXSEYQjbChaAU2yU23M51DjZgSQAvcYkFtZTjzBht5:8D+CAXFYQChaAUk5ljnQssL", "descriptions": [], "usageMode": "hunting", "filetype": "ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux)", "size": 78.3984375, "tslh": "T16D7312E017B517CC1371A8353BED205E9128223972AE35302E97528DF957703BAB2DBE" }, "type": "cti", "ioc_creation_date": "2023-10-18T13:53:50+00:00", "timestamp_analyzed": "2023-10-18T13:56:14.789Z", "targeted_organizations": [], "matched_event_type": "http", "ioc_updated_date": "2023-10-18T13:53:50+00:00", "severity": 1, "matched_event": "cf7cf312-883b-4b84-a530-fea8d49b294c", "community_id": "1:oPgJrwIH53r44+0TfDB+7uhzL50=", "vulnerabilities": [], "targeted_countries": [], "timestamp_package": "2023-10-18T13:53:50.696659+0000", "description": "IOC matching first tests", "relations": [ "0e3cc27b-7999-48ce-8484-dc12b325a355" ], "": 0.5, "dest_ip": "X.X.X.X", "src_port": 59338, "tlp": "green", "usage_mode": "hunting", "ioc_type": "Host" },
Champ |
Requis |
Description |
Valeurs ou exemple |
---|---|---|---|
@timestamp |
Oui |
Timestamp du traitement de l'alerte par le GCenter (correspond au passage dans logstash) |
"2023-10-18T13:56:14.789Z" |
"@version" |
oui |
version du document |
1 |
@"case_id" |
oui |
Numéro d’identification interne |
"00135350-1810-..." |
Alert type dans webui |
Oui |
Type de menace |
APT |
"campaigns" |
oui |
Nom de la campagne |
|
"categories" |
oui |
catégorie de la menace |
malware |
"community_id" |
oui |
Id unique pour correler l'élèment entre les différents équipements de sécurité |
1:oPgJrwIH53r44+0TfDB+7uhzL50= |
"description" |
oui |
champ description sur la menace |
IOC matching first test |
"dest_ip" |
Oui |
Adresse IP de destination |
x.x.x.x |
"dest_port" |
Non |
Port de destination |
80 |
"event_type" |
Oui |
type d’évènement |
retrohunt |
"external_links" |
Non |
voir le Tableau récapitulatif des compteurs de catégorie "external_links" |
|
"families" |
oui |
famille de la menace |
Hajime |
"flow_id" |
Oui |
Identifiant unique du flux. Permet de retrouver le fileinfo associé |
1540796205479447 |
"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 ou nom domaine qui est affiché |
"ioc_creation_date" |
oui |
Indice of Compromission ; date de création dans la base |
"2023-10-18T13:53:50+00:00" |
"ioc_id" |
oui |
Indice of Compromission : identifiant |
"00135350-1810-2023-34db-1319151da1fd" |
"ioc_tags" |
oui |
Indice de Compromission : étiquette |
"trojan.generickd.34055387 (b)"
"linux/hajime.a trojan"
"e32/agent.cd"
|
"ioc_type" |
oui |
Indice de Compromission : type |
"Host" |
"ioc_updated_date" |
oui |
Indice de Compromission : date de mise à jour |
"2023-10-18T13:53:50+00:00" |
"ioc_value" |
oui |
Indice de Compromission : valeur |
"im.a.very.bad.doma.in" |
"kill_chain_phases" |
oui |
phases de la chaîne de frappe |
|
"matched_event" |
oui |
événement qui a correspondu |
cf7cf312-883b-4b84... |
"matched_event_type" |
oui |
type d'événement qui a correspondu |
http |
"meta_data" |
oui |
voir le Tableau récapitulatif des compteurs : catégorie "meta_data" |
NA |
"probability" |
oui |
probabilité |
0.5 |
"relations" |
oui |
relations |
0e3cc27b-7999-... |
"risk" |
oui |
résultat de l’évaluation du risque de la menace |
Suspicious |
"severity" |
Oui |
Code du résultat de l’analyse |
Compris entre 0 et 3
0=clean, 1=infected, 2=suspicious, 3=Other
|
"signature" (ou Signature ou Description dans Webui) |
oui |
intitulé de la menace |
"RetroHunt - Host - malware/Unknown - Hajime - GW Lab Test - 00135350-1810-2023-34db-1319151da1fd" |
"src_ip" |
Oui |
Adresse IP source |
X.X.X.X |
"src_port" |
Oui |
Port source |
59338 |
"targeted_countries" |
oui |
Pays ciblés |
|
"targeted_organizations" |
oui |
organisations ciblées |
|
"targeted_platforms" |
oui |
plateformes visées |
linux |
"targeted_sectors" |
oui |
Secteurs d’activité ciblés |
|
"threat_actor" |
oui |
Acteurs de cette menace |
|
"timestamp analyzed" |
Oui |
Date et heure de la dernière analyse du fichier |
2023-10-18T13:56:14.789Z |
"timestamp detected" |
Oui |
Date et heure de la première capture du fichier |
2022-09-08T09:21:22.223Z |
"timestamp_package" |
Oui |
Date et heure de la mise a jour des sources CTI |
2023-10-18T13:53:50.696659+0000 |
"tlp" |
oui |
Traffic Light Protocol (4 couleurs suivant la limitation de la divulgation) |
green. cela signifie "La divulgation limitée, les bénéficiaires peuvent la diffuser au sein de leur communauté." |
"ttp" |
oui |
Trusted Third-Party, tiers de confiance |
|
"type" |
Oui |
Type d’événement |
"cti" |
"usage_mode" |
oui |
mode d'utilisation |
hunting |
"uuid" |
Oui |
Identifiant unique de l’alerte |
19fe0b3d-05fb-433a... |
"vulnerabilities" |
oui |
vulnérabilités |
Champ |
Requis |
Description |
Valeurs ou exemple |
---|---|---|---|
"source_name" |
oui |
Nom de la source |
"URLHaus Abuse.ch" |
"descriptions" |
oui |
description |
|
"url" |
oui |
URL |
Champ |
Requis |
Description |
Valeurs ou exemple |
---|---|---|---|
"cwe" |
oui |
Common weakness enumeration |
|
"Descriptions" |
oui |
description |
oui |
"usageMode" |
oui |
Usage de cet IOC |
hunting |
"filetype": |
oui |
Type de fichier |
ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux) |
"size" |
oui |
Taille |
78.3984375 |
"ssdeep" |
oui |
Hash calculé par ssdeep |
1536:87vbq1lGAXSEYQjbChaAU.. |
"s" |
oui |
T16D7312E017B517CC1371A8... |
2.1.6.7.1.3. La partie champs des logs RetroHunt
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.6.8. Visualisation de l'état de CTI
La visualisation de l'état courant du moteur est donnée dans l'Ecran `Health checks` de la web UI.