Vous êtes sur la page 1sur 20

GOOGLE RAPID RESPONSE

M211 - Analyser les attaques et les incidents de Cybersécurité

MARCH 25, 2024


OUMESSAOUD OMAR
OURRAISS MOHAMED
INTRODUCTION :
Dans ce document, nous allons se familiariser avec les frameworks de
réponse aux incidents ‘GRR’, afin d'effectuer des activités IR plus rapides et
plus efficaces.

GRR Rapid Response est un cadre de réponse aux incidents axé sur
l’investigation direct à distance.

L'objectif de GRR est de prendre en charge la criminalistique et les


investigations de manière rapide et évolutive afin de permettre aux
analystes de trier rapidement les attaques et d'effectuer des analyses à
distance.

GRR se compose de 2 parties : client et serveur.

GRR client est déployé sur des systèmes que l'on pourrait vouloir examiner.
Sur chacun de ces systèmes, une fois déployé, le client GRR interroge
périodiquement les serveurs frontaux GRR pour le travail. « Travail »
désigne l'exécution d'une action spécifique : téléchargement d'un fichier,
référencement d'un répertoire, etc.

L'infrastructure de serveur GRR se compose de plusieurs composants


(frontends, workers, serveurs d'interface utilisateur, fleetspeak) et fournit
une interface utilisateur graphique basée sur le Web et un point de
terminaison d'API qui permet aux analystes de planifier des actions sur les
clients et d'afficher et de traiter les données collectées.
Imaginons un scénario impliquant Google Rapid Response (GRR) pour gérer un incident
où un employé télécharge accidentellement une pièce jointe malveillante et compromet
son ordinateur.

I. SCENARIO D’INCIDENT :
Mohamed, un employé consciencieux du service financier, s'ennuie pendant une longue
réunion. Il sort son ordinateur portable pour passer le temps. Habituellement prudent
avec les emails et les pièces jointes, il se laisse tenter en naviguant sur un site web
non officiel.

Le site propose une calculatrice gratuite, un petit logiciel téléchargeable qui promet
d'être plus performante que la calculatrice basique de son système. Intrigué par la
nouveauté, Mohamed décide de la télécharger sans trop y réfléchir.

Erreur fatale ! Le site internet est en réalité une source malveillante qui diffuse des
logiciels piégés. La calculatrice téléchargée par Mohamed, en apparence inoffensive,
cache en réalité un programme malveillant.

II. DETECTION :

▪ Détection initiale des anomalies : le système de surveillance de la sécurité de


l'organisation signale l'ordinateur de Mohamed pour des activités suspecte après
avoir détecté des modèles de trafic réseau inhabituels et des comportements
indiquant une infection potentielle par un logiciel malveillant.

▪ Analyse du système de fichiers : Après un examen approfondi de l'ordinateur de


Mohamed à l'aide de GRR. Malgré une analyse approfondie du système de fichiers,
le logiciel malveillant reste insaisissable car il s'est intégré dans le programme
de calculatrice.

▪ Surveillance du trafic réseau : Conscients des limites de l'analyse du système de


fichiers seul, nous devons concentrer notre attention sur la surveillance du trafic
réseau. En analysant les connexions réseau sortantes de l'ordinateur de
Mohamed, nous découvrons un trafic anormal provenant du programme de
calcul.
▪ Remarque d'une activité malveillante : La découverte d'une exfiltration de
données non autorisée nous incite à approfondir le comportement du programme
de calcul utilisant GRR. Nous observons que le programme compromis envoie
non seulement des données à l'extérieur, mais reçoit également des instructions
du serveur distant, ce qui indique une attaque coordonnée orchestrée par des
acteurs malveillants.

III. Response Plan:

En tant qu'intervenant chargé de gérer cette situation à l'aide de Google Rapid Response
(GRR), notre objectif principal est de contenir la menace, de recueillir des informations
sur l'incident et d'atténuer les dommages potentiels. Voici un plan étape par étape :

1. Isolez le système infecté : déconnectez immédiatement l'ordinateur de Mohamed du


réseau pour empêcher la propagation du logiciel malveillant.

2. Lancer la collecte de données d’investigation : Utilisez GRR pour collecter des


données pertinentes à partir de l'ordinateur de Mohamed, notamment :

• Meta data du système de fichiers permettant d'identifier les fichiers


récemment modifiés et les exécutables suspects.
• Exécution de processus et de leurs connexions réseau associées pour
identifier les activités malveillantes.
• Entrées de registre pour la preuve des mécanismes de persistance utilisés par
le logiciel malveillant.

3. Analyse de la mémoire : effectuez une analyse de la mémoire à l'aide de GRR pour


identifier les artefacts en mémoire associés au programme malveillant, tels que les
processus injectés ou les extraits de code malveillants.
4. Analyse du trafic réseau : Surveillez le trafic réseau de l'ordinateur de Mohamed en
temps réel, à la recherche de toute communication suspecte avec des adresses IP
externes ou des domaines associés à des serveurs de commande et de contrôle.

5. Analyse comportementale : utilisez GRR pour exécuter des scripts d'analyse


comportementale afin d'identifier tout comportement anormal présenté par le
logiciel malveillant, tel que les tentatives de chiffrement de fichiers ou les tentatives
d'élévation des privilèges.

6. Confinement et remédiation : sur la base des informations recueillies dans le cadre


du GRR, élaborez une stratégie pour contenir le logiciel malveillant et remédier au
système compromis. Il peut s'agir de :
• Mise en quarantaine des fichiers infectés et suppression des processus
malveillants.
• Éduquer les employés sur les meilleures pratiques en matière de
cybersécurité afin de prévenir des incidents similaires à l'avenir.

7. Analyse post-incident : Effectuez une analyse post-incident approfondie à l'aide du


GRR pour identifier les lacunes dans les contrôles de sécurité et les domaines à
améliorer. Documenter les leçons apprises et mettre à jour les procédures
d'intervention en cas d'incident en conséquence.
GRR INSTALLATION

Il est recommandé dans la documentation du guide d'installation GRR, d'installer le


serveur GRR sur Ubuntu 22.04 Jammy (x86-64).

1. INSTALLATION DE MYSQL :
MySQL est la base de données par défaut de GRR, et doit être opérationnel avant
l'installation de GRR.
apt install -y mysql-server

Une fois l'installation terminée, vous devez modifier le paramètre max_allowed_packet,


sinon GRR aura des problèmes pour écrire de gros morceaux de données dans la base
de données. Mettez ce qui suit dans /etc/mysql/my.cnf :
[mysqld]
max_allowed_packet=40M
log_bin_trust_function_creators=1

Redémarrez ensuite le serveur MySQL :


service mysql restart
Vous devez créer un nouvel utilisateur de base de données pour GRR et lui donner accès
à une base de données vide que l'installation du serveur GRR utilisera :
mysql -u root -p

mysql> CREATE USER 'grr'@'localhost' IDENTIFIED BY 'password';

mysql> CREATE DATABASE grr;

mysql> GRANT ALL ON grr.* TO 'grr'@'localhost';

mysql> CREATE USER 'fleetspeak'@'localhost' IDENTIFIED BY 'password';

mysql> CREATE DATABASE fleetspeak;

mysql> GRANT ALL ON fleetspeak.* TO 'fleetspeak'@'localhost';

NOTE : La création d'un nouvel utilisateur est facultative puisque GRR peut utiliser les
informations d'identification de l'utilisateur root pour se connecter à MySQL.
2. TÉLÉCHARGER LA DERNIÈRE VERSION DE SERVER DEB:

Wget https://storage.googleapis.com/releases.grr-response.com/grr-server_3.4.7-1_amd64.deb

3. INSTALLEZ LE SERVEUR DEB :


sudo apt install -y ./grr-server_3.4.7-1_amd64.deb

Le programme d’installation vous demandera quelques informations pour la


configuration.
J'ai choisi d'utiliser grr.server.cmc comme nom d'hôte, donc lorsque les clients sont
compilés, ils auront ceci comme adresse de serveur, je l'ai fait parce que si je spécifie
une adresse IP, cela pourrait causer des problèmes à l'avenir car l'adresse IP pourrait
changer.

Une fois l'installation terminée, nous vérifions si le serveur est en cours d’exécution :
systemctl status grr-server
Nous avons choisi « grr.server.cmc » comme adresse de serveur GRR, maintenant nous
devons ajouter ce domaine au fichier « hosts » de chaque client et associez-le à
l'adresse IP du serveur GRR.
Après cela, nous pouvons accéder à l'interface web du serveur en utilisant l'adresse IP
ou le nom de domaine et le port 8000.

4. INSTALLATION DES CLIENS :


Nous devons utiliser l'ancienne interface utilisateur pour télécharger les binaires :
Nous allons installer un binaire Windows dans une machine virtuelle Windows pour le
tester.
Configuration réseau et identifiants :
Addresse GRR : grr.server.cmc
Sous-réseau des terminaux sous-investigués : 172.16.200.0/24

Pour installer un client dans une machine waindows, nous devons d'abord le télécharger
depuis le serveur grr:

Après avoir téléchargé un exécutable sur une machine Windows, tout ce que nous avons
à faire est de l’exécuter :

Et s'il n'y a pas d'erreurs de configuration, l'agent apparaîtra dans notre serveur GRR:
COLLECTE D'INFORMATIONS :
Pour collecter des informations sur l'hôte, nous pourrions sélectionner l'interogate dans
la page client :

« L'interrogation » est un processus GRR qui collecte efficacement un trésor


d'informations sur les terminaux.
Pour obtenir des informations détaillées sur la machine cliente, nous devons cliquer sur
full details:

Pour commencer à collecter des informations importantes sur ce point de terminaison,


telles que les communications avec d'autres points de terminaison, les ports d'écoute,
etc., vous pouvez utiliser les GRR flows. Pour cela, cliquez sur Start new flows.
Par exemple, pour répertorier toutes les connexions réseau actives sur ce point de
terminaison, vous devez aller dans Network ➔ Netstat et appuyer sur Launch.
Pour collecter les résultats, vous devez cliquer sur Manage launched flows puis cliquer
sur le flux lancé.

Voyons maintenant notre cas


1. Nous avons détecté un trafic inhabituel entre la machine de Mohamed et la machine
de l’attaquant :
Comme nous le voyons dans la capture de trafic que nous avons effectuée à l'aide de
WIRESHARK, il y avait une communication entre la machine de Mohamed et l'adresse IP
de l'attaquant.

Nous avons suivi le flux TCP à l'aide de WIRESHARK et nous avons trouvé ceci :

Maintenant, il est très clair pour nous que l'attaquant a une shell inversée à la machine
de Mohamed.
Pour détecter l'application source de se reverse shell, nous utiliserons GRR.

2. L’extraction des connexions réseau de cette machine à l'aide de GRR :


Tout comme nous l'avons fait avant d'aller à « Start a new flow », puis « Network », puis
« Netstat »
Après cela on attend que le processus se termine et on va dans « Manage launched
flows » puis « Results »

Comme nous le voyons sur l'image, le programme de calcul a une connexion établie
avec la machine de l'attaquant.

3. Exporter l'application depuis la machine de Mohamed :


Pour ce faire, sélectionnez Browse virtual file system
Nous avons trouvé l'application sur le bureau de l’utilisateur, nous pouvons sélectionner
collect from the client, puis download
4. L'analyse et le Reverse Engineering de l’application :
Une fois que nous avons obtenu l'application, nous pouvons la tester dans une machine
virtuelle, Et voici à quoi ressemble l’application :
Nous avons empêché la machine de faire des demandes de connexion en la
déconnectant du réseau et après avoir exécuté l'application et l'avoir fermée, nous
avons constaté qu'elle reste en arrière-plan même après l'avoir fermée, elle a essayé
d'établir une connexion réseau mais elle n'a pas pu et cela a provoqué une erreur que
nous avons vue après la fermeture de l'application :

Maintenant que nous avons une idée de ce qu'il fait, nous allons maintenant reverse
engineer cette application using Pyinstxtractor and Pycdc :
Après avoir extrait l'application à l'aide de Pyinstxtractor, nous allons décompiler le
fichier calculator.pyc à l'aide de pycdc:

Après avoir analysé le code source, nous avons remarqué quelque chose dans la
variable « based »

C'est un texte encodé en Base64, nous l'avons décodé et nous l'avons trouvé :
Il s'agit d'un texte codé en base64 intégré dans le code source de l'application de calcul
qui ouvre un shell pour la machine de l'attaquant en utilisant son adresse IP et le port
4545.

Vous aimerez peut-être aussi