1. Moteurs d'analyses

1.1. Présentation

1.1.1. Grip

Le moteur d'analyses Grip permet une analyse statique et caractéristique du fichier. Il ne fournit pas d'information de dangerosité ou de score de menace. Il est cependant utile pour analyser rapidement les métadonnées d'un fichier qualifié comme suspicious ou malicious. Il est utilisé pour avoir des informations sur le fichier en amont d'analyses plus approfondies.

Taille maximum de fichier 50Mo 
Timeout d'analyse 2 minutes
Type léger

1.1.2. Goasm

Ce moteur d'analyse permet la détection et l'analyse de shellcode. Il permet l'identification de certains encodages et permet de détailler les appels système effectués.

Taille maximum de fichier 50Mo
Timeout d'analyse 4-6 minutes
Type léger

Goasm il peut être considéré comme "type léger" pour des petits fichiers (< 5Mo), en cas de gros fichiers texte (> 5 Mo) on peut vite atteindre le timeout d'analyse interne à goasm : 4 min. Le timeout externe à l'analyseur lui est fixé à 6 min. En cas de timeout interne, on ne retourne pas d'erreur, on arrete juste de parcourir octet par octet le fichier. En cas de timeout externe (une erreur est survenu ou goasm est resté bloqué) une erreur sera présente dans le rapport mentionnant un timeout.

1.1.3. GMalcore

Le moteur d'analyses GMalcore effectue une analyse heuristique avec des antivirus. Il permet d'obtenir le ou les noms de la menace ainsi qu'un score de menace. Il permet une identification rapide des menaces.

Taille maximum de fichier 50Mo 
Timeout d'analyse 2 minutes
Type léger

Remarque

Pour certains fichiers malveillants,le module GMalcore ne retourne pas de noms de menace et ce champ est laissé vide. Cependant, le champ total detection est incrémenté pour chaque moteur antivirus ayant détecté le fichier comme malveillant.

1.1.4. GDGADetect

Le moteur d'analyses GDGADetect analyse les noms de domaine pour détecter des domaines générés par un Domain Generation Algorithm.

Taille maximum de fichier N/A 
Timeout d'analyse N/A
Type léger

1.1.5. GNest

Le moteur d'analyses GNest permet une analyse dynamique. Il exécute le fichier dans une machine virtuelle et analyse son comportement.

Suite à cela, il est possible d'obtenir un score de menace, et également d'extraire les données générées lors de l'analyse comme un dump de la mémoire, les chaînes de caractères extraites, ou une capture des communications réseau (pcap).

Ce moteur est utile pour analyser en profondeur un fichier qualifié de suspicious ou malicious, lors d'une seconde analyse d'un fichier.

Cette analyse est plus lente et requiert un opérateur de niveau confirmé afin d'analyser les résultats produits.

Taille maximum de fichier 50Mo 
Timeout d'analyse 1 heure
Type lourd

L'ajout / suppression de VMs pour GNest attend que les analyses GNest en courts soient finies et bloque les prochaines analyses. Cependant, si le template d'une VM GNest est supprimé alors que des jobs sont en attentes, ceux-ci passeront en erreur.

2. Administration

2.1. Status des moteurs d'analyses

_images/admin_required.png

Menu : Administrators > GBox > Analysers

Les états des différents moteurs d'analyses sont disponibles directement dans la liste des moteurs. Différents badges indiquent l'état du moteur (up/down) , sa capacité à effectuer des analyses (ready / not ready), et le nombre de tâches en attente de traitement par ce moteur.

_images/gbox_analysers_status.png

Up/Down : L'api de l'analyser est en écoute

Ready/Not Ready : toutes les conditions sont réunies pour effectuer une analyse.

Si un moteur est à l'état Not Ready et qu'un job est soumis, celui-ci est mis en file d'attente.

Remarque:

L'état Not Ready pour le moteur gmalcore ne signifie pas forcément que ce dernier n'est pas en capacité d'effectuer des analyses, mais indique qu'au moins un des 16 moteurs antivirus n'est pas à jour ou hors service.

2.2. Configuration des moteurs d'analyses

_images/admin_required.png

Menu : Administrators > GBox > Analysers

2.2.1. GNest

Actuellement, le moteur d'analyses GNest est configurable. Pour cela il suffit de cliquer sur le bouton Configure dans la liste des moteurs.

_images/gbox_gnest_configure.png

La configuration de GNest consiste en la création de machines virtuelles servant de sandbox pour l'analyse.

_images/gbox_vm_add.png

Afin de créer des machines virtuelles (permettant de multiples analyses en parallèle), il faut renseigner le nom de la machine à créer dans le champ Machine(s) base name et le nombre de machines à créer.

Dans le cas de création de multiples machines, le nom est suffixé du numéro de la machine.

Il n'est pas possible de créer plus de 5 machines virtuelles.

L'avancée de la création des machines est visible dans la liste des dernières actions. Il en va de même pour la destruction de celles-ci.

Tout comme la création de plusieurs machines est possible, la suppression par lot l'est également. Pour cela, il faut sélectionner les machines à supprimer en cliquant sur la case Mark for deletion, puis une fois toutes les machines à supprimer sélectionnées, cliquer sur le bouton DELETE SELECTED MACHINES.

Une liste des machines à supprimer apparaît afin de confirmer l'action. Une fois confirmée, la suppression des machines est lancée.

La suppression est séquentielle, si une erreur survient, le processus est stoppé (et les machines suivantes ne sont pas supprimées).

2.3. Cas particuliers : la gestion des archives

La GBox extrait les archives soumises pour analyse.
Le fonctionnement est le suivant :

  1. Soumission d'une archive de - de 50Mo (l'utilisateur peut fournir le mot de passe de l'archive via le front end ou l'api).

  2. La GBox tente d'extraire l'archive avec le mot de passe ;

  • avec une protection contre les zipbomb,

  • avec une protection contre les archives malicieuses,

  • si l'archive extraite fait plus de 50Mo, l'extraction est stoppée et un message d'erreur est retourné indiquant un fichier trop gros. Rien ne sera analysé,

  • si l'archive est trop profonde par rapport à la profondeur configurée dans la GBox l'analyse porte sur les fichiers correspondants à la profondeur, configurée (3 niveaux max : zip de zip au maximum),

  • si le mot de passe ne correspond pas, un message d'erreur est retourné,

  • si l'archive contient trop de fichiers par rapport à ce qui a été configuré dans la GBox (10 fichiers max), un message d'erreur est retourné, rien n'est analysé.

  1. Une analyse "parente" est créée, elle représente le fichier d'archive (avec son empreinte et l'empreinte de l'analyse) et pointe vers les analyses "enfant" (image de rapport de parent plus bas).

  • Elle n'a pas de "status" de moteur d'analyse, car rien n'est analysé

  • Elle a juste un résultat global

  • Elle n'affiche pas le contenu des erreurs des enfants

  1. Une analyse "enfant" est créée par fichier enfant trouvé dans l'archive, elle est liée à l'analyse parente (image de rapport d'analyse enfant plus bas).

  2. Quand toutes les analyses "enfant" sont finies, l'analyse parente est mise à jour

  • son score équivaut au maximum du score des "enfants"

  • son statut équivaut au statut global des "enfants"

    • si 1 ou + "enfant" "en cours", alors l'analyse parente est "en cours"

    • si 1 ou + "enfant" "en erreur", alors "en erreur"

    • si tous les "enfants" sont "finis" sans erreurs alors "fini"

  1. Il n'y a pas de PDF ou de rapport regroupant tous les enfants, il faut regarder sur chaque analyse enfant pour avoir le rapport

Formats supportés:

7zfile

extension = [".7z", ".iso", ".udf", ".xz"] magic = ["7-zip archive", "ISO 9660", "UDF filesystem data", "XZ compressed data"]

gzipgile

extension = [".gzip", ".gz"] magic = ["gzip compressed data, was"]

lzhfile

extension = [".lzh", ".lha"] magic = ["LHa ("]

tarfile

extension = [".tar"] magic = ["POSIX tar archive"]

tarbz2file

extension = [".tar.bz2"]

zipfile

extension = [".zip"] magic = ["Zip archive data"]

gbox_arch_analysis.png