### 🎯 Filtres de base
#### Rechercher des événements sur une période spécifique
```sql
SELECT * FROM events
WHERE startTime > '2024-02-01 00:00:00'
AND startTime < '2024-02-07 23:59:59'
```
Affiche tous les événements entre le **1er et le 7 février 2024**.
#### Filtrer par adresse IP source
```sql
SELECT * FROM events WHERE sourceip = '192.168.1.10'
```
Affiche **tous les événements générés par l'IP source** `192.168.1.10`.
#### Filtrer par type d’événement spécifique
```sql
SELECT * FROM events WHERE eventCategory = 'Authentication Failure'
```
Affiche **tous les échecs d’authentification**.
#### Filtrer par niveau de gravité
```sql
SELECT * FROM events WHERE magnitude > 6
```
Affiche uniquement les **événements avec une gravité supérieure à 6**.
---
### 🔥 Filtres avancés
#### Rechercher des connexions suspectes
```sql
SELECT * FROM events WHERE sourceIP != destinationIP
AND destinationPort IN (3389, 22, 445)
AND magnitude > 5
```
Détecte **les connexions anormales** sur des ports sensibles comme **RDP (3389), SSH (22) et SMB (445)**.
#### Détecter des balayages de ports
```sql
SELECT sourceIP, COUNT(DISTINCT destinationPort) AS scanned_ports
FROM events
WHERE destinationPort IS NOT NULL
GROUP BY sourceIP
HAVING COUNT(DISTINCT destinationPort) > 10
```
Identifie les **adresses IP ayant scanné plus de 10 ports différents**.
#### Lister les tentatives de connexion échouées par utilisateur
```sql
SELECT username, COUNT(*) AS failed_attempts
FROM events
WHERE eventName = 'Failed Login'
GROUP BY username
ORDER BY failed_attempts DESC
```
Affiche la **liste des utilisateurs avec le plus grand nombre d’échecs de connexion**.
#### Identifier des connexions à des pays suspects
```sql
SELECT * FROM events
WHERE destinationGeographicLocation IN ('Russia', 'China', 'North Korea')
```
Liste les **connexions vers des pays sensibles**.
---
### 📜 Requêtes spécifiques aux logs réseau
#### Identifier des transferts de fichiers volumineux
```sql
SELECT sourceIP, destinationIP, bytes
FROM flows
WHERE bytes > 100000000
ORDER BY bytes DESC
```
Affiche les **transferts de plus de 100 Mo**.
#### Identifier les connexions entre un poste et plusieurs destinations
```sql
SELECT sourceIP, COUNT(DISTINCT destinationIP) AS connections
FROM flows
GROUP BY sourceIP
HAVING COUNT(DISTINCT destinationIP) > 5
```
Identifie les **postes établissant des connexions vers plus de 5 destinations différentes** (potentiel **beaconing**).
---
### 🛠 Autres requêtes utiles
#### Rechercher un processus spécifique dans les logs
```sql
SELECT * FROM events WHERE eventName LIKE '%powershell%'
```
Filtre les **événements contenant le mot `powershell`**, souvent utilisé dans des attaques.
#### Rechercher des exécutions de Mimikatz
```sql
SELECT * FROM events
WHERE eventName LIKE '%mimikatz%'
OR eventDescription LIKE '%sekurlsa%'
```
Détecte les **exécutions suspectes de l’outil Mimikatz**.
#### Détecter des connexions anormales d’un compte privilégié
```sql
SELECT username, sourceIP, destinationIP, eventName
FROM events
WHERE username IN ('admin', 'administrator', 'root')
AND eventName = 'Successful Login'
AND sourceIP NOT IN ('192.168.1.0/24')
```
Détecte les connexions **réussies sur un compte admin depuis une IP hors du réseau interne**.
#### Trouver les événements les plus fréquents
```sql
SELECT eventName, COUNT(*) AS occurrences
FROM events
GROUP BY eventName
ORDER BY occurrences DESC
```