
L'exfiltration de données demeure l'une des menaces les plus pernicieuses auxquelles font face les organisations modernes. Les adversaires ne cessent de faire évoluer leurs tactiques, dissimulant les tentatives d'exfiltration dans le trafic légitime. En utilisant des outils comme la pile ELK (Elasticsearch, Logstash, Kibana), les équipes de sécurité peuvent découvrir ces activités clandestines. Dans ce guide complet, nous couvrirons tout, des fondamentaux de l'exfiltration de données aux techniques de détection avancées avec les outils modernes de SIEM (Gestion des informations et événements de sécurité), complétées par des exemples réels et des exemples de code exploitables.
L'exfiltration de données est le transfert intentionnel non autorisé et clandestin de données d'un ordinateur ou appareil, souvent par un acteur malveillant ayant infiltré un réseau (IBM - Exfiltration de données). Le but est de dérober des informations sensibles ou confidentielles telles que la propriété intellectuelle, les identifiants, les données financières ou les informations personnelles sans être détecté.
L'exfiltration de données peut être:
Une fois exfiltrées, ces données peuvent être vendues, utilisées pour du chantage, pour permettre des attaques futures ou pour causer du tort à la réputation.
La plupart des organisations déploient des outils de prévention de pertes de données (DLP) et de périmètre. Cependant, les techniques d'exfiltration de données clandestine sont conçues pour se fondre dans le trafic réseau normal, ce qui les rend difficiles à identifier. Les attaquants peuvent se faire passer pour :
Défi : Les contrôles de sécurité reposent souvent sur des signatures connues ou des anomalies de volume, mais de nombreux canaux clandestins exfiltrent les données à des volumes paraissant normaux et évitent de déclencher des alertes immédiates.
Les attaquants envoient des données encodées dans des requêtes DNS à un serveur externe qu'ils contrôlent. Étant donné que le DNS est souvent autorisé à traverser les pare-feux et surveillé moins rigoureusement que le HTTP ou le FTP, c’est un favori pour l'exfiltration clandestine.
Données envoyées via des POST HTTP apparemment légitimes, des uploads sur pastebin, ou cachées dans User-Agent/headers. Le chiffrement HTTPS rend l'inspection approfondie difficile sans interception SSL.
Les données sont cachées dans des fichiers image, vidéo ou audio avant d'être exfiltrées par des canaux légitimes, comme les pièces jointes de courrier électronique ou les publications sur les réseaux sociaux.
Exfiltration de fichiers via un stockage Cloud personnel ou non sanctionné (ex : Google Drive, Dropbox), des applications de messagerie instantanée ou des outils de synchronisation de fichiers.
La technique MITRE ATT&CK T1048 - Exfiltration via un protocole alternatif fait référence à des attaquants utilisant des protocoles peu communs ou moins surveillés pour transférer des données hors de l'environnement cible, tels que DNS, SMB ou même des protocoles développés sur-mesure via des ports autorisés. Reconnaître et chasser les activités liées à T1048 est essentiel pour une défense proactive contre les menaces.
Surveiller les flux de données réseau, identifier les anomalies et inspecter les charges utiles pour déceler les motifs suspects.
Détecte l'organisation de données, l'exécution de scripts et les tentatives suspectes de connexion sortante directement sur les endpoints.
La pile ELK (Elasticsearch, Logstash, Kibana) est une suite open-source puissante pour agréger, indexer, rechercher et visualiser les logs et la télémétrie des endpoints, pare-feux, dispositifs réseau et sources cloud. Lorsqu’elle est enrichie avec des contenus de sécurité, ELK peut :
Passons en revue la configuration pratique pour détecter les tentatives d'exfiltration de données avec ELK.
Sources de données :
input {
file {
path => "/var/log/dns_queries.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{IPV4:client_ip} %{WORD:query_type} %{HOSTNAME:query}" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "dns-queries-%{+YYYY.MM.dd}"
}
}
Élaborer des règles de détection pour découvrir des schémas tels que :
Rechercher des requêtes DNS avec des longueurs de sous-domaines anormales (typique pour le tunneling) :
GET dns-queries-*/_search
{
"query": {
"script": {
"script": {
"source": "doc['query.keyword'].value.length() > 60"
}
}
}
}
Créer des tableaux de bord pour :
Scénario : Un endpoint d'un employé est compromis. Un malware code des fichiers sensibles en base32 et les envoie, morceau par morceau, via de faux sous-domaines dans des requêtes DNS.
Supposons que /var/log/dns.log contient :
2024-05-01T10:02:35Z 10.0.0.5 IN Q example.abcd3lk21j23lkj4lkj2lk34.external.com
2024-05-01T10:02:37Z 10.0.0.5 IN Q example.a9f8a7f98e7a6f87.external.com
Extraire et lister les requêtes inhabituellement longues :
awk '{ if (length($4) > 60) print $0 }' /var/log/dns.log
Vérifier les IP clients générant >1000 requêtes en une heure :
awk '{print $2}' /var/log/dns.log | sort | uniq -c | awk '$1 > 1000'
Dans Kibana, visualiser les comptes de sous-domaines uniques par IP au fil du temps. Un pic pourrait indiquer une activité de tunneling.
Scénario : Un poste de travail compromis envoie des données sensibles via des requêtes POST HTTP à un hôte internet aléatoire, jamais vu auparavant.
GET http-logs-*/_search
{
"query": {
"bool": {
"must": [
{ "match": { "method": "POST" } },
{ "range": { "content_length": { "gte": 1000000 } } } // Plus de 1Mo
],
"must_not": [
{ "terms": { "dest_domain.keyword": ["approved-api.example.com", "known-good.com"] } }
]
}
}
}
Analyser les logs pour des POST excessifs vers des hôtes rares :
import csv
from collections import Counter
with open('http_logs.csv') as f:
rows = csv.DictReader(f)
hosts = [row['dest_domain'] for row in rows if row['method'] == "POST"]
for host, count in Counter(hosts).most_common():
if count > 50:
print(f"Suspicious high volume POSTs to {host}: {count}")
La plupart des solutions SIEM peuvent automatiser les alertes, mais la corrélation et le traitement bénéficient souvent de scripts personnalisés.
Détecter des requêtes DNS anormalement longues :
grep -E '.{60,}' /var/log/dns_queries.log
Trouver les principaux clients générant le maximum de connexions sortantes :
awk '{print $2}' /var/log/firewall_outbound.log | sort | uniq -c | sort -nr | head
Analyser les sous-domaines encodés en base64 (tunneling DNS) :
import base64
import re
def is_base64(s):
try:
return base64.b64encode(base64.b64decode(s)).decode() == s
except Exception:
return False
dns_queries = ['abcd3lk21j23lkj4lkj2lk34.external.com', 'normal.example.com']
for q in dns_queries:
subdomain = q.split('.')[0]
if is_base64(subdomain):
print(f"Possible exfiltration: {q}")
La détection de l'exfiltration de données clandestine exige des défenses en couches, une veille sur les menaces et des analyses robustes :
Souvenez-vous : Les attaquants comptent sur la discrétion et sur votre ignorance de leurs techniques. La surveillance, l'automatisation, et l'amélioration continue des processus de détection sont indispensables pour stopper l'exfiltration clandestine dans son élan.
Intéressé par la mise en œuvre de ces stratégies ? Envisagez de déployer un environnement de test ELK Stack et commencez par ingérer des logs DNS, de pare-feu et de proxy web. Créez vos propres détections et voyez combien de techniques d'exfiltration clandestine vous pouvez détecter !
Si vous avez trouvé ce contenu utile, imaginez ce que vous pourriez accomplir avec notre programme de formation élite complet de 47 semaines. Rejoignez plus de 1 200 étudiants qui ont transformé leur carrière grâce aux techniques de l'Unité 8200.