Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Informations générales

Accès

Requêtes personnalisées

1. Éléments de démarrage

2.Sha256 Hachages des processus en cours d'exécution

3.Processus avec les connexions réseau

4.Processus privilégié avec connexion réseau non-localhost

5.Sauvegarde/restauration de la surveillance du registre

6. Recherche de fichiers

7.Surveillance de l'historique Powershell

8.Requête de prérécupération

9.Inspection du cache ARP (Address Resolution Protocol)

Introduction

Ce document décrit les requêtes de recherche orbitale de base pour l'analyse des menaces.

Conditions préalables

Exigences

Cisco vous recommande de bien connaître l'intérêt que vous portez à la compréhension des menaces et des programmes malveillants, ainsi que les bases des tables SQL (Structured Query Language).

Composants utilisés

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- Connecteur Secure Endpoint Connector version 7.1.5 ou ultérieure pour Windows

- Connecteur de terminal sécurisé version 1.16 ou ultérieure pour Mac

- Connecteur de terminal sécurisé version 1.17 ou ultérieure pour Linux

- Le rôle d'administrateur doit être attribué à l'utilisateur Secure Endpoint pour déployer Orbital

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Informations générales

Les requêtes personnalisées sont exploitées, ce qui doit vous aider à apprendre rapidement la puissance d'Orbital et d'osquery pour la chasse aux menaces.

Orbital utilise les tables de stock osquerys en plus des tables spécifiques à Orbital. Les résultats renvoyés via Orbital peuvent être envoyés à d'autres applications, telles que Secure Endpoint, Secure Malware Analytics et SecureX Threat Response, et peuvent être stockés dans des magasins de données distants (RDS), tels qu'Amazon S3, Microsoft Azure et Splunk.

Utilisez la page Orbital Investigate afin de créer et d'exécuter des requêtes en direct sur des terminaux afin d'en collecter davantage d'informations. Orbital utilise osquery, qui vous permet d'interroger vos périphériques comme une base de données avec des commandes SQL de base.

Voici un exemple simple : SELECT column1, column2 FROM table1, table2 WHERE column2='valeur'.

Dans cet exemple, column1 et column2 sont les noms de champ de la table dans laquelle vous souhaitez sélectionner des données. Afin de choisir tous les champs disponibles dans la table, utilisez cette syntaxe : SELECT * FROM table1.

Accès

Ouvrez Orbital directement sur ces sites :

Amérique du Nord - https://orbital.amp.cisco.com

Europe - https://orbital.eu.amp.cisco.com

Asie-Pacifique - https://orbital.apjc.amp.cisco.com

OU

Sur la console Secure Endpoint, sélectionnez le système hôte concerné et cliquez sur Investigate in Orbital.

Il existe des options pour utiliser le catalogue orbital (cliquez sur Parcourir) ou entrez les requêtes personnalisées sous SQL personnalisé section comme mentionné :

Requêtes personnalisées

Remarque : Le système hôte se trouve sur le réseau des travaux pratiques et on tente de le maintenir intact.

1. Éléments de démarrage

Les éléments de démarrage peuvent être exploités par les pirates pour maintenir la persistance sur un système compromis, ce qui signifie que le logiciel malveillant continuera à s'exécuter ou à être relancé automatiquement à chaque redémarrage du système. Dans l'exemple suivant, Qakbot.exe s'exécute dans le système hôte.

SELECT name, path, args, source, type, status, username

FROM startup_items;

2. Sha256 Hachages des processus en cours d'exécution

Les hachages SHA256 ne sont pas associés de manière inhérente à l'exécution de processus dans leur état naturel. Cependant, les logiciels de sécurité et les outils de surveillance du système peuvent calculer le hachage SHA256 d'un processus en cours d'exécution du fichier exécutable afin de vérifier son intégrité et son authenticité.

SELECT

p.pid, p.name, p.path, p.cmdline, p.state, h.sha256

FROM processes p

INNER JOIN hash h

ON p.path=h.path;

si le hachage associé d'un fichier est malveillant, vous pourrez vous identifier avec cette requête.

3. Processus avec les connexions réseau

Les processus avec des connexions réseau sont des programmes ou des services système qui utilisent activement l'interface réseau afin de communiquer avec d'autres périphériques sur un réseau ou sur Internet.

SELECT

DISTINCT pos.pid, p.name, p.cmdline, pos.local_address, pos.local_port, pos.remote_address, pos.remote_port

FROM processes p

JOIN process_open_sockets pos USING (pid)

WHERE

pos.remote_address NOT IN ("", "0.0.0.0", "127.0.0.1", "::", "::1", “0");

4. Processus privilégié avec une connexion réseau non locale

Exécution d'un programme ou d'un service disposant d'autorisations élevées (comme celles d'un administrateur ou d'un compte système) et communiquant sur le réseau avec un périphérique ou un service externe, ce qui signifie toute adresse IP autre que 127.0.0.1 (localhost) ou ::1 (IPv6 localhost).

SELECT DISTINCT p.name, p.cmdline, pos.pid, pos.local_address, pos.local_port, pos.remote_address, pos.remote_port

FROM processes p JOIN process_open_sockets pos USING (pid)

WHERE pos.remote_address NOT IN ("", "0.0.0.0", "127.0.0.1", "::", "::1")

Une fois que vous avez la liste PID (Packet Identifier), vous pouvez l'ajouter en conséquence dans les requêtes personnalisées.

SELECT DISTINCT p.name, p.cmdline, pos.pid, pos.local_address, pos.local_port, pos.remote_address, pos.remote_port

FROM processes p JOIN process_open_sockets pos USING (pid)

WHERE pos.remote_address NOT IN ("", "0.0.0.0", "127.0.0.1", "::", "::1") and p.uid=1436

5. Sauvegarde/restauration de la surveillance du registre

Suivi des événements au cours desquels des modifications sont apportées au Registre Windows par le biais d'opérations de sauvegarde ou de restauration. Le Registre Windows est une base de données hiérarchique qui stocke les paramètres et les options de configuration sur les systèmes d'exploitation Microsoft Windows.

SELECT key AS reg_key, path, name, data, DATETIME(mtime, "unixepoch") as last_modified

FROM registry

WHERE key LIKE "HKEY_LOCAL_MACHINE\system\currentcontrolset\control\backuprestore\filesnottosnapshot";

SELECT data, path FROM registry

WHERE key LIKE 'HKEY_USERS\%\Control Panel\Accessibility\StickyKeys’;

SELECT username, data, split(path, '\', 1) AS sid

FROM

(SELECT data, path FROM registry

WHERE key LIKE 'HKEY_USERS\%\Control Panel\Accessibility\StickyKeys’)

JOIN users ON users.uuid = sid;

6. Recherche de fichiers

Permet aux utilisateurs de localiser des fichiers et des dossiers sur leur ordinateur en utilisant divers critères tels que le nom de fichier, le contenu, les propriétés ou les métadonnées.

SELECT

f.directory, f.filename, f.uid, f.gid,

f.mode, f.device, f.size,

f.atime,

f.mtime,

f.ctime,

f.btime,

f.hard_links, f.symlink, f.file_id, h.sha256

FROM file f

LEFT JOIN hash h on f.path=h.path

WHERE

f.path LIKE (SELECT v from __vars WHERE n="file_path") AND

f.path NOT LIKE (SELECT v from __vars WHERE n=“not_file_path");

Accédez à PARAMETERS > File Path et cliquez sur %.dll ou %.exe ou %.png.

7. Surveillance de l'historique Powershell

Pratique consistant à effectuer le suivi des commandes qui ont été exécutées dans les sessions PowerShell. La surveillance de l'historique PowerShell peut s'avérer particulièrement importante pour des raisons de sécurité et de conformité.

SELECT time, datetime, script_block_id, script_block_count, script_text, script_name, script_path

FROM orbital_powershell_events

ORDER BY datetime DESC

LIMIT 500;

8. Requête de prérécupération

Fonction de performance qui accélère le chargement des applications. La préextraction consiste à analyser la façon dont le logiciel est chargé et exécuté sur un système, puis à stocker des informations à ce sujet dans des fichiers spécifiques.

select datetime(last_run_time, "unixepoch", "UTC") as last_access_time,*

from prefetch

ORDER BY last_access_time DESC;

Prefetch est un mécanisme avec lequel SQL Server peut lancer de nombreuses requêtes d'E/S en parallèle pour une jointure par boucle imbriquée.

9. Inspection du cache ARP (Address Resolution Protocol)

Comprend l'examen du contenu du cache ARP sur un ordinateur ou un périphérique réseau. Le cache ARP est une table qui stocke les mappages entre les adresses IP et leurs adresses MAC correspondantes.

SELECT address, mac, count(*) as count

FROM arp_cache GROUP BY mac,address;

L'exemple suivant calcule l'adresse MAC suspecte et son nombre à partir du cache ARP.

SELECT address, mac, count(*) as count

FROM arp_cache GROUP BY mac,address

HAVING COUNT(mac) >= (SELECT count FROM arp_cache WHERE count>=1)

AND mac LIKE (SELECT mac FROM arp_cache WHERE mac=“52:54:00:12:35:02");