1. Présentation
Les moteurs de détection MALCORE et RETROACT permettent:
La détection des malwares par une analyse statique et heuristique multi-moteurs en temps réel des fichiers.
L'analyse via 16 moteurs Anti-Virus.
Une performance d’analyse à plus de 6 millions de fichiers par 24h.
La détection des malwares par une ré-analyse des fichiers à potentiel malicieux, après leur passage, avec de nouvelles signatures et méthodes heuristiques.
2. Configuration
Menu : Administrators > GCenter > Malcore Management
L'interface de management MALCORE permet de modifier les paramètres d'analyse du GCENTER. Depuis cette section, l'administrateur pourra ajuster les paramètres globaux de détection du GCENTER :
2.1. Global settings
Menu : Administrators > GCenter > Malcore Management > Global Settings
Le moteur d'analyse RETROACT permet une détection en post compromission en réanalysant a posteriori les fichiers dont le potentiel malicieux a été suspecté par l'analyse heuristique de MALCORE. Ces analyses ultérieures se font sur une période paramétrable, plusieurs jours/semaines/mois après le passage du fichier, avec les nouvelles signatures et méthodes heuristiques.
Number of days between rescans : Cela correspond au nombre de jours passés entre chaque réanalyse de fichiers.
Number of rescans : correspond au nombre de rescans à effectuer.
Par exemple, si Number of days between rescans est fixé à 3 et Number of rescans à 3, le fichier suspicieux sera réanalysé à J+3, J+6 et J+9.
Enable automatic GBOX analysis : permet à l'administrateur d'activer l'envoi automatique de tous les fichiers infectés ou suspicieux à l'équipement GBOX si le lien est opérationnel.
2.2. Profiles
Menu : Administrators > GCenter > Malcore Management > Profiles
L'ensemble des profils MALCORE apparaît sur cette vue.
Chaque profil peut cependant être modifié selon les besoins via le bouton Configure.
Le profil Default sera utilisé pour traiter des fichiers envoyés pour analyse par les gcaps.
Le profil Gscan sera utilisé pour l'analyse des fichiers soumis par l'interface gscan
Enable archive handling : permet d'activer le scan de tous types d'archive par MALCORE (.zip, .rar, .upx).
Max recursion level : indique le niveau de profondeur maximum dans lequel MALCORE va continuer à scanner les fichiers. Par exemple, un .zip contient un dossier, qui contient un dossier, qui contient des fichiers. Dans ce cas, il y trois niveaux de profondeur d'archives. Si on indique deux dans le niveau maximum de récursion possible, alors tous les fichiers dans des niveaux supérieurs ne seront pas scannés par MALCORE. Définir une limite ici permet de ne pas surcharger MALCORE mais en contrepartie il n'analysera pas tous les niveaux de fichiers. Par défaut cette valeur est à 5.
Number of files : il s'agit du nombre maximum de fichiers que MALCORE peut analyser par archive. Si ce nombre est dépassé, alors MALCORE suspectera quelque chose. Le nombre par défaut est de 50 fichiers.
Scan Original Un-extracted File : demande à MALCORE que l'archive soit considérée en elle-même en tant que fichier.
Microsoft Office Documents : demande à MALCORE de considérer les documents Office comme des documents Office (.docx, .xlsx) et non comme une archive.
Detect file type mismatch : si cette option est cochée, lorsqu'il y aura un décalage entre le type de fichier et son extension, le fichier apparaîtra en Mismatch au niveau des dashboards dans l'interface WEB GCENTER.
Maximum size of scanned files (in MB): : correspond à la taille maximale des fichiers qui sont analysés par MALCORE.
Chacune de ces informations sont prises en compte après que l'administrateur ait sauvegardé les modifications en appuyant sur 'Save'.
2.3. Liste d'exceptions
Menu : Administrators > GCenter > Malcore Management > White list / Black List
Il est possible, dans les paramètres de Malcore, de gérer des listes d'exceptions nommées Whitelist (pour les hash autorisés) et Blacklist (pour les hash interdit).
Dans le cas où un fichier qui doit être analysé a un hash SHA256 présent dans la Blacklist, le résultat de l'analyse apparaitra comme ceci:
Dans le cas d'une Whitelist:
Il est possible d'ajouter un hash dans ces listes soit unitairement via l'interface du GCenter soit par lot, en injectant un fichier CSV.
En cliquant sur Add a single file, il est possible d'ajouter un hash de manière unitaire en renseignant le champ Sha256 et un commentaire (optionnel) pour davantage de détails dans le champ Comment.
Chacune de ces informations est prise en compte après que l'administrateur ait sauvegardé les modifications en appuyant sur Save.
En cliquant sur Add a set of files, l'administrateur peut, en sélectionnant sur son poste un fichier en csv, ajouter une liste de hash en cliquant sur le bouton du champ List of SHA256. Il faudra utiliser des ';' pour séparer les différents éléments de la liste.
L'administrateur peut décider de supprimer la liste précédente en cochant la case Clean previous list? et sauvegarder toutes les modifications en cliquant sur Save.
Tous les ajouts et modifications faits depuis les sections White List et Black List des paramètres de configuration du moteur MALCORE seront pris en compte dans l'analyse du flux ainsi que pour les fichiers scannés via le GScan.
3. Détection
3.1. Inspectra
Menu : Operators > Inspectra > Malcore
Depuis la section 'OPERATORS - Inspectra - Malcore', l'opérateur accède à un tableau recensant les fichiers vus comme étant suspicieux ou infectés au travers du moteur de détection MALCORE.
Le module RETROACT sera chargé de mettre en évidence, si la fonctionnalité est activée, les fichiers suspicieux.
L'état suspicieux est dû aux moteurs heuristiques. Ces derniers arrivent à détecter des éléments anormaux. Dans le cas de fichiers suspicieux, ces derniers seront reanalysés par RETROACT.
Les fichiers suspicieux sont détectés grâce aux différents moteurs antiviraux ( 1 en version CIE et 16 dans les autres versions ) fonctionnant en parallèle. Ces moteurs ont été sélectionnés pour leur complémentarité et la pertinence de leur détection commune, leur technologie de détection, et l'origine des informations de sécurité utilisées.
De la fenêtre au-dessus de ce tableau, l'opérateur peut cliquer dans le champ 'From - To' pour définir la plage de temps (au format jj/mm/aaaa HH:MM) des données qui s'affichent.
'Number of results max:' est le nombre maximum de fichiers (lignes) affichés dans le tableau.
'State' permet de sélectionner l'état des alertes affichées en fonction de la recherche souhaitée.
État | Description |
---|---|
All but Clean | Tous les résultats, aucune menace. |
All | Tous les résultats, toutes menaces. |
Infected | Infecté, connu. |
Suspicious | Suspect, classé comme menace possible mais non identifié comme menace spécifique. |
Failed to Scan | Échec du scan, la numérisation n'est pas entièrement effectuée (par exemple, fichier non valide ou lecture non permise). Si aucun moteur n'est inclus et que l'analyse est activée, ce sera le résultat final. |
Cleaned / Deleted | Nettoyé, supprimé. La menace est trouvée et le fichier est réparé ou supprimé. |
Unknown | Signature inconnue, utilisé dans la recherche de hash multiple. Pour le hashage unique, les réponses de scan ne sont pas retournées. |
Quaranted | Le fichier est mis en quarantaine. |
Skipped Clean | L'analyse est ignorée car ce type de fichier est en liste blanche. |
Skipped Dirty | L'analyse est ignorée car ce type de fichier est en liste noire. |
Exceeded Archive Depth | Pas de menace détectée mais le niveau d'archive dépasse le seuil fixé. L'archive na pas été entièrement analysée. |
Not Scanned / No scan results | Pas de résultat, le scan est ignoré par les moteurs en raison d'une mise à jour d'un moteur pour une raison spécifique. Si l'analyse est désactivée, ce sera le résultat final. |
Aborted | L'analyse en cours a été arrêtée par le serveur |
Encrypted | Le fichier n'est pas analysé car le type de fichier est détecté chiffré (protégé par un mot de passe). Si la bibliothèque d'archives interne est activée, Malcore ne retournera pas de résultat puisque les moteurs n'effectuent plus aucun scan. Si la bibliothèque d'archive interne est désactivée, Malcore passera les fichiers cryptés aux moteurs directement en contournant la détection. |
Exceeded Archive Size | La taille de l'archive ou du fichier est trop volumineux pour être analysé. |
Exceeded Archive File Number | Dépassement du nombre de fichiers présents dans l'archive par rapport au nombre configuré dans le serveur. |
Password Protected Document | Document protégé par un mot de passe (par exemple, les documents Office ou PDFs nécessitant un mot de passe pour afficher son contenu). Si un fichier est un document protégé par un mot de passe, aucune désinfection ne sera appliquée. Malcore prend en charge la détection de document protégé par un mot de passe. Les extensions dont la détection fonctionne PDF, DOCX, DOC, DOCM, DOTX, DOTM, POINT, PPTX, PPT, POT, POTM, POTX, PPS, PPSM, PPSX, PPTM, PPTX, XLSX, XLS, XLSM, XLSB, XLS, XLTX, XLTM, XLT, XLAM, XLA. |
Mismatch | L'extension du fichier ne correspond pas au type de fichier détecté. Seulement applicable lors de l'utilisation des flux de travail. |
Potentially Vulnerable File | Potentiellement un fichier vulnerable. |
Les colonnes du tableau sont déplaçables et des recherches dynamiques peuvent être faites sur chacune d'entre elles:
L'opérateur peut choisir la visibilité des colonnes dans le tableau en cliquant sur le bouton Column visibility:
De plus, une vision verticale de l'alerte s'affiche grâce à un clic droit de la souris.
Une exportation rapide en CSV des données en fonction de la date de décision sélectionnée:
Une analyse interactive de l'élément est possible grâce à un clic droit de la souris. Avec 'Download malware' il est possible de télécharger le malware et l'enregistrer sur le poste dans un fichier protégé par un mot de passe au format .zip
. Ce mot de passe est modifiable ici.
TRACKWATCH est capable de fournir une analyse plus approfondie du malware détecté grâce à la fonctionnalité de Remote analysis'. Si la configuration est préalablement faite, l'opérateur peut décider que l'échantillon soit analysé dans la plateforme https://intelligence.gatewatcher.com/, soit un serveur GBOX.
Le rapport d'analyse résultant de l'envoi du fichier infecté pour une analyse plus approfondie peut être téléchargé avec 'Download analysis report'.
Les paramètres d'analyse du moteur MALCORE sont modifiables dans les paramètres du profil par défaut.
3.2. Dashboards
Menu : Operators > Dashboards > Malcore
En plus des informations déjà présentes dans le tableau Inspectra, les données collectées par Malcore sont également disponibles dans le dashboard Kibana de Malcore.
On y retrouvera les données mises en forme
4. Événements générés
attention:: Les id des moteurs sont susceptibles de changer au cours du temps.
4.1. Exemple de log
json
{
"engine_id": {
"714eca0a6475fe7d2bf9a24bcae343f657b230ff68acd544b019574f1392de77": "Trojan.Win32.Vebzenpak.iwgiuz",
"312a189607571ec2c7544636be405f10889e73d061e0ed77ca0eca97a470838d": "Gen:Variant.Graftor.961641",
"054a20c51cbe9d2cc7d6a237d6cd4e08ab1a67e170b371e632995766d3ba81af": "Trojan/Win.Generic",
"0ff95ddb1117d8f36124f6eac406dbbf9f17e3dd89f9bb1bd600f6ad834c25db": "Trojan.Multi",
"ecc47e2309be9838d6dc2c5157be1a840950e943f5aaca6637afca11516c3eaf": "W32/VBKrypt.AVU.gen!Eldorado",
"fe665976a02d03734c321007328109ab66823b260a8eea117d2ab49ee9dfd3f1": "Trojan.Win32.Injector",
"b14014e40c0e672e050ad9c210a68a5303ce7facabae9eb2ee07ddf97dc0da0e": "Trojan.Wacatac",
"527db072abcf877d4bdcd0e9e4ce12c5d769621aa65dd2f7697a3d67de6cc737": "Trojan.Vebzenpak.Win32.4817",
"32f2f45e6d9faf46e6954356a710208d412fac5181f6c641e34cb9956a133684": "a variant of Win32/Injector.EPML trojan",
"038e407ba285f0e01dd30c6e4f77ec19bad5ed3dc866a2904ae6bf46baa14b74": "Trojan.Agent (A)",
"4ca73ae4b92fd7ddcda418e6b70ced0481ac2d878c48e61b686d0c9573c331dc": "Trojan ( 0057dc101 )",
"3bfeb615a695c5ebaac5ade948ffae0c3cfec3787d4625e3abb27fa3c2867f53": "Trojan.Win32.Vebzenpak.afnw",
"af6868a2b87b3388a816e09d2b282629ccf883b763b3691368a27fbd6f6cd51a": "TR/Injector.vdnis",
"ad05e0dc742bcd6251af91bd07ef470c699d5aebbb2055520b07021b14d7380c": "TR/Injector.vdnis"
},
"@version": "1",
"detail_scan_time": 289,
"timestamp_detected": "2021-07-05T18:14:45.354Z",
"SHA256": "9f07b7d90dc159c18619741bbbe05a2eb512a53865ba5101ba9f5668ec01c427",
"timestamp_last_malcore_analysis": "2021-07-05T18:15:35.546Z",
"file": "1198",
"detail_scan_result_i": 1,
"retroact": "None",
"app_proto": "http",
"src_port": "80",
"type": "malcore",
"detail_wait_time": 88,
"@timestamp": "2021-07-05T18:15:48.857Z",
"event_type": "malware",
"filename": "/Im/HBB.exe",
"total_found": "14/15",
"scans_history": [
{
"code": 1,
"total_found": "14/15",
"timestamp_analyzed": "2021-07-05T18:15:35.542Z",
"state": "Infected"
}
],
"size": "110592",
"meta": "CLOSED",
"MD5": "31bbac78b447abc5a1138f5b0f3bb1ae",
"uuid": "857a9a3f-99e6-4b28-abdd-32a7c28f0295",
"magic": "PE32 executable (GUI) Intel 80386, for MS Windows",
"reporting_token": "",
"severity": 1,
"detail_threat_found": "Infected : Trojan/Win.Generic, TR/Injector.vdnis, Gen:Variant.Graftor.961641, W32/VBKrypt.AVU.gen!Eldorado, a variant of Win32/Injector.EPML trojan, Trojan.Agent (A), Trojan.Win32.Injector, Trojan ( 0057dc101 ), Trojan.Win32.Vebzenpak.afnw, Trojan.Win32.Vebzenpak.iwgiuz, Trojan.Multi, Trojan.Wacatac, Trojan.Vebzenpak.Win32.4817",
"detail_def_time": "2021-06-23T00:43:00.000Z",
"nb_rescans": "Not reanalyzed",
"dest_ip": "10.7.0.15",
"replica": false,
"timestamp_analyzed": "2021-07-05T18:15:48.857Z",
"code": 1,
"src_ip": "192.185.92.26",
"gcap": "gcap-int-ppo-164.domain.local",
"host": "gcap-int-ppo-164.domain.local",
"state": "Infected",
"GCenter": "gcenter-int-ppo-237.domain.local",
"dest_port": "54325",
"_internal_doc_id": "qPzhd3oBnng1PLWX9yKE",
"flow_id": 1191592708119283,
"try_count": 0
}
4.2. Tableau récapitulatif des champs
Champs | Requis | Description | Valeurs |
---|---|---|---|
MD5 | Oui | Hash MD5 du fichier analysé. | - |
SHA256 | Oui | Hash SHA256 du fichier analysé. | - |
app_proto | Oui | Protocole applicatif du flux de provenance du fichier. | http, ftp, smtp, smb |
code | Oui | Code de retour de l’analyse malcore. | 0, 1, 2, 3, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 255 |
dest_ip | Oui | Adresse IP de destination. | - |
dest_port | Oui | Port de destination. | - |
detail_def_time | Non | Date de mise à jour de la base de signature malcore. Ce champ doit apparaître pour toutes les analyses | - |
detail_scan_result_i | Non | Code de retour de l’analyse malcore. | 0, 1, 2, 3, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 255 |
detail_scan_time | Non | Temps d’analyse du fichier (ms) par les moteurs malcore. | - |
detail_threat_found | Oui | Type de menace. | - |
engine_id | Non | Liste des moteurs malcore qui ont analysé le fichier avec le résultat associé. | - |
event_type | Oui | Type d’évènement. | malware |
file | Oui | Identifiant du fichier. | - |
fileinfo_potentially_involved | Non | Ce champ apparaît seulement dans le cas de retroact - il indique la liste des _id de doc de moins de 24h qui sont concernés par le rescan. | - |
filename | Oui | Nom du fichier. | - |
flow_id | Non | Identifiant unique du flux. Permet de retrouver le fileinfo associé. | - |
gcap | Oui | Nom du gcap associé à l’alerte. | - |
gcenter | Oui | Nom du GCenter associé à l’alerte. | - |
host | Oui | Nom du gcap associé à l’alerte. | - |
magic | Oui | Type de payload. | - |
nb_rescans | Oui | Nombre d’analyse par retroact | "Not reanalyzed", 1, 2 .. n |
replica | Oui | Champ à False si le fichier est vu pour la première fois et True si c’est un réplica. | True, False |
reporting_token | Oui | Token utilisé avec la Gbox. | - |
retroact | Oui | Résultat de l’analyse par retroact. Par défaut ce champ est à NONE. Seul les fichiers suspicious seront réanalysés par retroact. | None ou advanced malware (si retroact déclare le fichier comme infecté) |
severity | Oui | Code du résultat de l’analyse malcore. Dois être compris entre 0 et 3. | 0=clean, 1=infected, 2=suspicious, 3=Other |
size | Oui | Taille du fichier. | - |
src_ip | Oui | Adresse IP source. | - |
src_port | Oui | Port source. | - |
state | Oui | Résultat de l’analyse par les moteurs malcore. | No Threat Detected Infected Suspicious Failed Scan Skipped - Whitelisted Scan Skipped – Blacklisted Not Scanned Exceeded Archive Depth Encrypted Archive Exceeded Archive Size Exceeded Archive File Number Exceeded Archive Timeout Filetype Mismatch Potentially Vulnerable File In Progress 0 dans le cas d'un fichier whitelisté 1 dans le cas d'un fichier blacklisté |
timestamp_analyzed | Oui | Timestamp du traitement de l'alerte par le GCenter (correspond au passage dans logstash) | - |
timestamp_detected | Oui | Timestamp de la capture du fichier par le gcap | - |
timestamp_last_malcore_analysis | Oui | Timestamp de la dernière analyse du fichier par malcore. Les replicas ne sont pas réanalysés, donc le "timestamp_last_malcore_analysis" peut être plus ancien que le "timestamp_analyzed" | - |
total_found | Oui | Nombre de moteurs qui ont détecté le fichier comme infecté. | - XX/YY avec YY entre 0 et 16 et XX entre 0 et YY. YY=nombre de moteurs qui ont analysé le fichier. XX: nombre de moteurs dont le résultat était différent de "clean". - "File size exceeded the maximum size" si le fichier était trop gros pour être analysé par malcore. (cf. Administrators > malcore management > profile > Default > Maximum size of scanned files) - "Black list", ou "White list" dans le cas des blacklist/whitelist de malcore (cf. Administrators > malcore management > whitelist/blacklist) |
try_count | Non | Tentatives d'enrichissement. Champ interne au fonctionnement du GCenter | - |
type | Oui | Type d’évènement. | malcore |
detail_wait_time | Non | wait_time: time elapsed between sending file to node and receiving the result from the engine in milliseconds | - |
meta | Oui | Complétude du fichier analysé (CLOSED) sinon TRUNCATED. | CLOSED, TRUNCATED |
scan_time_average | Non | Temps d’analyse du fichier (ms) par les moteurs malcore. Ce champ est sensé apparaitre systématiquement | - |
scans_history.code | Oui | Code du résultat de l’analyse malcore. | 0, 1, 2, 3, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 255 |
scans_history.state | Oui | Résultat de l’analyse par les moteurs malcore. | No Threat Detected Infected Suspicious Failed Scan Skipped - Whitelisted Scan Skipped – Blacklisted Not Scanned Exceeded Archive Depth Encrypted Archive Exceeded Archive Size Exceeded Archive File Number Exceeded Archive Timeout Filetype Mismatch Potentially Vulnerable File In Progress |
scans_history.timestamp_analyzed | Oui | Timestamp de l’analyse du fichier. | - |
scans_history.total_found | Oui | Nombre de moteurs qui ont détecté le fichier comme infecté. | identique à total_found |
_internal_doc_id | Non | Champ utilisé pour le fonctionnement interne du Gcenter | _id de documents elasticsearch |
L'export syslog possède des champs additionnels :
smtp.mail_from,
smtp.rcpt_to,
email.from, email.to,
email.cc,
email.bcc,
email.in_reply_to,
http.hostname,
http.url,
http.http_refer,
http.http_user_agent.
Avertissement
Ces champs sont affectés par un bug connu (voir release note.)
Avertissement
L'enrichissement à l'origine de ces champs sera déprécié en v2.5.3.102.
5. Détection par gscan
Menu : Operators > GScan > Malware Scanning
Note
Dans le cas d'un déploiement dans un environnement soumis à la LPM, la fonctionnalité GScan est désactivée
Gscan permet à un opérateur de soumettre un fichier via l'interface web du GCenter afin qu'il soit analysé par malcore
Afin de lancer l'analyse d'un fichier, il suffit de glisser le fichier dans la zone DRAG and DROP or SELECT FILES TO SCAN ou de cliquer sur cette zone afin d'envoyer vos exécutables suspects.
Attention la taille maximale du fichier ne doit pas dépasser les 10MB. Il n'y a pas de limitation du nombre d'analyses de fichiers. Le résultat du scan montre quasi instantanément le statut de l'échantillon après analyse. Ce résultat peut-être à l'état : Clean ou Infected au travers des 16 moteurs.