Skip to main content

Chapitre 1.2 - Renseignement sur les menaces et taxonomie des attaques

Module 1 : Fondamentaux et paysage des menaces Niveau : Intermediaire a Avance | Temps de lecture estime : 50-65 min


Table des matieres

  1. Qu'est-ce que le renseignement sur les menaces ?
  2. Taxonomie des acteurs de menaces
  3. Frameworks d'attaque - MITRE ATT&CK, Kill Chain, Modele Diamant
  4. Indicateurs de compromission (IoC) et indicateurs d'attaque (IoA)
  5. Plateformes de renseignement sur les menaces et sources OSINT
  6. Operationnalisation du renseignement - Workflows pratiques
  7. Diagramme d'architecture

1. Qu'est-ce que le renseignement sur les menaces ?

Le renseignement sur les menaces (RM) est une connaissance basee sur des preuves concernant les menaces existantes ou emergentes - incluant le contexte, les mecanismes, les indicateurs, les implications et les conseils exploitables - qui peut etre utilisee pour prendre des decisions eclairees sur la reponse a ces menaces.

Le mot cle est exploitable. Les donnees brutes (une liste d'IPs) ne sont pas du renseignement. Le renseignement repond aux questions : Qui attaque ? Que cherche-t-il ? Comment opere-t-il ? A quoi ressemble la detection ?

La pyramide du renseignement

              ┌─────────────────┐
│ Strategique │ <- Qui, Pourquoi - pour les dirigeants, la politique
│ Intelligence │ (activite etatique, risque geopolitique)
└────────┬────────┘

┌────────┴────────┐
│ Operationnel │ <- Campagnes, TTPs - pour les responsables securite
│ Intelligence │ (campagnes actives d'acteurs de menaces)
└────────┬────────┘

┌────────┴────────┐
│ Tactique │ <- TTPs, familles de malware - pour les analystes
│ Intelligence │ (comment l'attaquant opere)
└────────┬────────┘

┌────────┴────────┐
│ Technique │ <- IoCs - pour les outils de securite
│ Intelligence │ (IPs, hachages, domaines, regles YARA)
└─────────────────┘
NiveauConsommateursDuree de vieExemples
StrategiqueRSSI, Direction, JuridiqueMois-AnneesEvaluation des menaces etatiques, tendances de ciblage sectoriel
OperationnelResponsable SOC, Responsable RISemaines-Mois"APT29 cible activement le secteur energetique avec du harponnage"
TactiqueChasseurs de menaces, AnalystesJours-SemainesTTPs de malwares specifiques, patterns d'infrastructure C2
TechniqueSIEM, Pare-feu, EDRHeures-JoursListes de blocage d'IPs, hachages de fichiers, regles YARA, signatures Snort

Le cycle de vie du renseignement

1. Planification et direction
└── Quelles questions necessitent des reponses ? Quelles sont les exigences prioritaires en matiere de renseignement (PIR) ?

2. Collecte
└── OSINT, HUMINT, flux techniques, honeypots, surveillance du dark web

3. Traitement
└── Normaliser, dedoublonner, enrichir, correlater (ex. IP -> ASN -> acteur de menace)

4. Analyse
└── Appliquer des frameworks analytiques (ATT&CK, Modele Diamant) pour produire des evaluations

5. Diffusion
└── Pousser vers le SIEM, partager via STIX/TAXII, briefer les parties prenantes

6. Retour d'information
└── Les consommateurs signalent l'utilite - affine la collecte future

2. Taxonomie des acteurs de menaces

Comprendre qui vous attaque est le fondement d'une defense informee par les menaces. Differents acteurs ont des motivations, des capacites et des niveaux de persistance differents - et necessitent des reponses defensives differentes.

2.1 Categories d'acteurs

CategorieMotivationCapacitePersistanceExemples de groupes
Etat-nation (APT)Espionnage, sabotage, politiqueTres eleveeTres elevee (mois-annees)APT29 (Cozy Bear), APT41, Lazarus Group
CybercriminelGain financierEleveeMoyenne (jusqu'au paiement)FIN7, Evil Corp, Conti
HacktivisteIdeologie, protestationFaible-MoyenneFaible-MoyenneAnonymous, KillNet
Menace interneVengeance, financier, coercitionVariableElevee (acces legitime)Employes mecontents, taupes
Script KiddieRenommee, curiositeFaibleFaibleAttaquants opportunistes
Mercenaire cyberCapacite a louerEleveeVariableNSO Group, Hacking Team

2.2 Analyse approfondie des APT (Advanced Persistent Threat)

APT est une categorie, pas un seul groupe. Le terme decrit un acteur de menace qui :

  • Dispose de capacites sophistiquees et ciblees (pas opportunistes)
  • Maintient une persistance a long terme dans un reseau compromis
  • Poursuit des objectifs specifiques et de haute valeur (vol de propriete intellectuelle, perturbation d'infrastructure critique)
  • Utilise des outils personnalises aux cotes d'outils standards pour se fondre

Cycle de vie APT (intrusion etatique typique) :

Phase 1 : Acces initial
Harponnage, compromission de la chaine d'approvisionnement, exploitation 0-day
Exemple : SolarWinds - pipeline de build trojanise

Phase 2 : Etablissement d'une tete de pont
Porte derobee legere / implant deploye
Communication via C2 chiffre sur des protocoles legitimes (HTTPS, DNS)

Phase 3 : Escalade de privileges
Kerberoasting, pass-the-hash, usurpation de jetons, escalade de privileges locaux

Phase 4 : Reconnaissance interne
Enumeration AD BloodHound, scan reseau, collecte d'identifiants

Phase 5 : Mouvement lateral
Execution WMI, PsExec, pivotage RDP, partages SMB

Phase 6 : Persistence et maintien de l'acces
Plusieurs portes derobees redondantes, binaires vivant hors du pays (LOLBins)

Phase 7 : Exfiltration / Effet
Donnees preparees, compressees, chiffrees, exfiltrees via C2
Ou : payload destructeur (wipeur), rancongiciel, perturbation OT

2.3 Profilage d'acteurs de menaces : attributs cles

Lors de la construction d'un profil de menace, capturer ces attributs :

AttributDescriptionExemple
AttributionEvaluation pays/groupe (faible/moy/haute confiance)"Haute confiance : GRU russe"
CiblageSecteurs, geographies, types d'organisationsEnergie, Finance, membres OTAN
Acces initialComment ils entrent typiquementHarponnage, chaine d'approvisionnement
TTPs preferesTechniques caracteristiquesCobalt Strike, implants personnalises
Infrastructure C2Comment ils communiquentFronting de domaine, Tor, stockage cloud
Securite operationnelleComment ils evitent la detectionConscience des fuseaux horaires, LOLBins
Campagnes historiquesOperations passees connuesOperation Aurora, Sunburst

3. Frameworks d'attaque

Les frameworks nous donnent un vocabulaire partage pour decrire le comportement des attaquants. Ils permettent une meilleure ingenierie de detection, la chasse aux menaces et le travail en equipe violette.

3.1 MITRE ATT&CK

MITRE ATT&CK (Adversarial Tactics, Techniques, and Common Knowledge) est une base de connaissances mondialement accessible de tactiques et techniques adversariales basee sur des observations du monde reel.

Structure : Organisee sous forme de matrice de Tactiques (le "pourquoi" - ce que l'attaquant cherche a accomplir) et de Techniques (le "comment" - methodes specifiques utilisees).

Tactiques ATT&CK pour Enterprise (dans l'ordre d'attaque)

IDTactiqueDescriptionExemples de techniques
TA0043ReconnaissanceCollecter des infos avant l'attaqueT1595 Scan actif, T1598 Hameconnage pour info
TA0042Developpement de ressourcesConstruire/acquerir de l'infrastructureT1583 Acquerir de l'infrastructure, T1587 Developper des capacites
TA0001Acces initialPenetrer dans le reseauT1566 Hameconnage, T1190 Exploiter app exposee publiquement
TA0002ExecutionExecuter du code malveillantT1059 Interpreteur de commandes/scripts, T1203 Exploiter pour execution
TA0003PersistenceMaintenir une tete de pontT1053 Tache planifiee, T1078 Comptes valides
TA0004Escalade de privilegesObtenir des permissions superieuresT1055 Injection de processus, T1068 Exploiter pour PrivEsc
TA0005Evasion de defenseEviter la detectionT1070 Suppression d'indicateurs, T1562 Entraver les defenses
TA0006Acces aux identifiantsVoler des identifiantsT1003 Extraction d'identifiants OS, T1558 Voler tickets Kerberos
TA0007DecouverteComprendre l'environnementT1018 Decouverte de systemes distants, T1087 Decouverte de comptes
TA0008Mouvement lateralSe deplacer dans le reseauT1021 Services distants, T1550 Utiliser materiau d'auth alternatif
TA0009CollecteRassembler les donnees ciblesT1005 Donnees du systeme local, T1039 Donnees du partage reseau
TA0011Commande et controleCommuniquer avec l'implantT1071 Protocole de couche applicative, T1095 Protocole non-applicatif
TA0010ExfiltrationVoler des donneesT1041 Exfil via canal C2, T1048 Exfil via protocole alternatif
TA0040ImpactCauser des dommagesT1486 Donnees chiffrees pour impact, T1485 Destruction de donnees

Utiliser ATT&CK pour l'ingenierie de detection :

# Exemple : Detecter T1059.001 (PowerShell) - Interpreteur de commandes et scripts
# Dans votre SIEM, rechercher ces patterns :

# 1. Commandes PowerShell encodees (evasion courante)
# Event ID 4104 (Journalisation des blocs de scripts) + commandes encodees base64
# Pattern : powershell.exe -enc <base64>

# 2. Berceau de telechargement (courant pour la livraison de payload stage-2)
# IEX (Invoke-Expression) + telechargement
# Pattern : IEX(New-Object Net.WebClient).DownloadString

# Regle Sigma pour PowerShell encode (YAML) :
# title: PowerShell encode suspect
# detection:
# selection:
# CommandLine|contains:
# - ' -enc '
# - ' -encodedcommand '
# - ' -e '
# condition: selection

# Activer la journalisation des blocs de scripts PowerShell (GPO / Registre)
# HKLM\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging
# EnableScriptBlockLogging = 1

3.2 La Cyber Kill Chain

Developpee par Lockheed Martin, la Kill Chain decrit les etapes d'une attaque ciblee comme une sequence lineaire. Perturber n'importe quelle etape brise la chaine.

┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│ 1 │ │ 2 │ │ 3 │ │ 4 │
│Reconnaissance│───>│ Armement │───>│ Livraison │───>│Exploitation │
│ │ │ │ │ │ │ │
│ Scan OSINT │ │ Forger │ │ Email │ │ Declencher │
│ Scan ports │ │ exploit + │ │ hameconnage │ │ vulnerab. │
│ Offres emp. │ │ payload │ │ Depot USB │ │ sur cible │
└─────────────┘ └─────────────┘ └─────────────┘ └──────┬──────┘

┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ 7 │ │ 6 │ │ 5 │<──────────┘
│ Actions sur│<───│ Commande │<───│ Installation│
│ objectifs │ │ et controle │ │ │
│ │ │ │ │ Porte derob.│
│ Vol donnees │ │ Balise C2 │ │ RAT │
│ Rancongiciel│ │ etablie │ │ Persistence │
└─────────────┘ └─────────────┘ └─────────────┘

Correspondance Kill Chain - Controles defensifs :

EtapeActivite de l'attaquantControle defensif
ReconnaissanceScan, OSINTMinimiser la surface exposee, jetons de piege
ArmementFabrication d'exploitRien a detecter - se produit hors reseau
LivraisonEmail, web, USBPasserelle email, proxy web, AV, formation utilisateurs
ExploitationDeclenchement de vuln.Correctifs, EDR, attenuation d'exploit (ASLR, DEP)
InstallationPorte derobee/RATEDR, liste blanche d'applications, FIM
C2Balise sortanteFiltrage DNS, inspection proxy, anomalie reseau
ActionsExfil, chiffrementDLP, segmentation reseau, honeypots, sauvegarde

Critique de la Kill Chain : Elle a ete concue pour les intrusions APT ciblees. Elle gere mal les menaces internes, ne modelise pas bien les attaques cloud-native, et son modele lineaire ne capture pas avec precision les campagnes multi-etapes. ATT&CK est plus complet pour les menaces modernes.

3.3 Le Modele Diamant d'analyse d'intrusion

Le Modele Diamant fournit un framework pour analyser des evenements d'intrusion individuels (pas des campagnes). Chaque evenement a quatre caracteristiques fondamentales formant un diamant :

                    ┌──────────────┐
│ Adversaire │
│ (Qui ?) │
└──────┬───────┘

utilise │ contre

┌──────────────────┼──────────────────┐
│ │ │
┌───────┴──────┐ │ ┌──────┴───────┐
│ Capacite │ │ │ Victime │
│ (Quoi ?) │<──────────┼──────────>│ (Qui ?) │
│ │ │ │ │
│ Malware │ via │ │ Org/Personne │
│ Exploit │ │ │ Actif │
└───────┬──────┘ │ └──────┬───────┘
│ │ │
└──────────────────┼──────────────────┘

┌──────┴───────┐
│Infrastructure│
│ (Comment/Ou?)│
│ │
│ IP/domaine C2│
│ Serveur email│
└──────────────┘

Les meta-caracteristiques etendent le modele : horodatages, phase (etape de la Kill Chain), resultat (succes/echec), direction.

Pourquoi c'est important operationnellement : Le Modele Diamant permet le pivotement - depuis un attribut connu pour decouvrir les autres. Si vous connaissez le hachage du malware (capacite), vous pouvez pivoter pour trouver l'infrastructure C2. Depuis le domaine C2, vous pivotez pour trouver d'autres victimes. Depuis les victimes, vous identifiez l'adversaire.


4. Indicateurs de compromission et indicateurs d'attaque

4.1 Indicateurs de compromission (IoC)

Les IoC sont des artefacts forensiques qui indiquent qu'un systeme a ete compromis. Ils sont la preuve de ce qui s'est deja produit.

Type d'IoCExemplesDuree de vie
Hachage de fichier (MD5/SHA256)Hachage de binaire malveillantCourte - trivial a changer
Adresse IPIP du serveur C2Courte - frequemment rotee
Domaineevil-update[.]comCourte-Moyenne
URLhttp://evil.com/payload.exeCourte
Sujet/expediteur emailModele de hameconnageCourte
Cle de registreHKCU\Software\MalwareKeyMoyenne
MutexGlobal\MalwareMutex_v2Moyenne-Longue
Pattern de trafic reseauIntervalle de balise, User-AgentLongue
Regle YARAPattern d'octets dans le malwareLongue

La Pyramide de la Douleur (David Bianco) - plus on monte dans la pyramide, plus cela fait mal a l'attaquant lorsque vous le detectez/bloquez :

                 ╔═══════════════════╗
║ TTPs ║ <- Le plus difficile a changer pour l'attaquant
╚═══════════════════╝
╔═══════════════════════╗
║ Outils ║
╚═══════════════════════╝
╔═══════════════════════════╗
║ Artefacts reseau/hote ║
╚═══════════════════════════╝
╔═══════════════════════════════╗
║ Noms de domaine ║
╚═══════════════════════════════╝
╔═══════════════════════════════════╗
║ Adresses IP ║ <- Trivial a changer pour l'attaquant
╚═══════════════════════════════════╝
╔═══════════════════════════════════════╗
║ Valeurs de hachage ║ <- Inutile apres la premiere detection
╚═══════════════════════════════════════╝

Implication : Bloquer les IPs et les hachages est une detection de faible valeur. L'ingenierie de detection doit cibler les comportements et TTPs - des elements couteux pour l'attaquant a modifier.

4.2 Indicateurs d'attaque (IoA)

Les IoA se concentrent sur l'intention et le comportement - les actions de l'attaquant, pas les artefacts laisses derriere. Les IoA detectent les attaques en cours plutot que de confirmer la compromission apres coup.

IoACe qu'il detecteCorrespondance ATT&CK
Scan de ports depuis un hote interneReconnaissance interneT1046 Decouverte de services reseau
PowerShell lance par Word.exeExecution de macro malveillanteT1059.001 + T1566.001
Lecture memoire LSASSExtraction d'identifiantsT1003.001
Nouvelle tache planifiee creee par non-adminTentative de persistenceT1053.005
Requete DNS vers domaine DGABalise C2T1568 Resolution dynamique
Grand transfert sortant a 3h du matinExfiltration de donneesT1041
Net user /add depuis un compte de servicePreparation de mouvement lateralT1136
# Exemples de detection IoA avec le framework d'audit Linux

# Detecter les lectures LSASS sur l'equivalent Linux (lecture /proc/*/mem ou /etc/shadow)
auditctl -w /etc/shadow -p r -k lecture_shadow
auditctl -w /etc/passwd -p r -k lecture_passwd

# Surveiller la creation de nouvelles taches cron (IoA de persistence)
auditctl -w /etc/cron.d -p wa -k modification_cron
auditctl -w /var/spool/cron -p wa -k modification_cron

# Detecter les connexions sortantes inhabituelles (C2 potentiel)
# Surveiller les connexions vers des pays rares ou sur des ports non standard
auditctl -a always,exit -F arch=b64 -S connect -k connexion_sortante

# Afficher le journal d'audit
ausearch -k lecture_shadow
ausearch -k modification_cron --start today

4.3 STIX et TAXII - Partage du renseignement

STIX (Structured Threat Information eXpression) : Format JSON pour representer les objets de renseignement sur les menaces (malware, campagnes, IoC, TTPs) de maniere lisible par machine.

TAXII (Trusted Automated eXchange of Intelligence Information) : Protocole de transport pour partager le contenu STIX entre organisations.

# Exemple Python : interroger un serveur TAXII pour le renseignement sur les menaces
from taxii2client.v21 import Server

# Se connecter au serveur TAXII MITRE ATT&CK (public)
server = Server('https://cti-taxii.mitre.org/taxii/',
user='guest', password='')

# Lister les collections disponibles (flux de renseignement sur les menaces)
api_root = server.api_roots[0]
for collection in api_root.collections:
print(f"Collection: {collection.title} | ID: {collection.id}")

# Recuperer les objets d'une collection specifique (ex. Enterprise ATT&CK)
from taxii2client.v21 import Collection
collection = Collection(
'https://cti-taxii.mitre.org/stix/collections/95ecc380-afe9-11e4-9b6c-751b66dd541e/'
)
tc_source = TAXIICollectionSource(collection)

# Interroger tous les groupes (acteurs de menaces)
from stix2 import Filter
groups = tc_source.query([Filter("type", "=", "intrusion-set")])
for group in groups[:5]:
print(f"Groupe: {group.name} | Alias: {group.get('aliases', [])}")

5. Plateformes de renseignement sur les menaces et sources OSINT

5.1 Plateformes RM commerciales et open source

PlateformeTypeMeilleur pour
MISP (Malware Information Sharing Platform)Open sourcePartage collaboratif d'IoC, STIX/TAXII
OpenCTIOpen sourceRM base sur des graphes avec integration ATT&CK
ThreatConnectCommercialGestion complete du cycle de vie RM
Recorded FutureCommercialRenseignement en temps reel, dark web
VirusTotal IntelligenceCommercialAnalyse de malware, reputation fichier/URL
AlienVault OTXGratuit/CommercialFlux de menaces communautaires
MITRE ATT&CK NavigatorGratuitCartographie RM sur la matrice ATT&CK

5.2 Sources OSINT critiques pour le renseignement sur les menaces

# ── DNS PASSIF ET REPUTATION IP ─────────────────────────────────────────────

# Shodan : moteur de recherche pour les appareils connectes a internet
# Trouver tous les serveurs Apache 2.4.49 (CVE-2021-41773 - traversee de chemin)
shodan search 'apache/2.4.49'

# Censys : similaire a Shodan, donnees TLS/certificats solides
# Interroger via CLI
censys search 'services.http.response.headers.server: "nginx/1.14"' --index hosts

# ── INVESTIGATION DOMAINE ET IP ──────────────────────────────────────────────

# Recherche WHOIS (infos d'enregistrement, contacts d'abus)
whois evil-domain.com

# DNS passif - voir les enregistrements de resolution historiques
# (curl vers SecurityTrails, RiskIQ ou Mnemonic PassiveDNS)
curl "https://api.securitytrails.com/v1/domain/evil-domain.com/history/a" \
-H "APIKEY: votre_cle"

# Journaux de transparence des certificats - trouver des sous-domaines
# crt.sh est une base de donnees publique de journaux CT
curl 'https://crt.sh/?q=%.target.com&output=json' | \
python3 -c "import sys,json; [print(r['name_value']) for r in json.load(sys.stdin)]" | \
sort -u

# ── RECHERCHE DE MALWARE ET HACHAGE ──────────────────────────────────────────

# Recherche de hachage VirusTotal via API
curl "https://www.virustotal.com/api/v3/files/<hash_sha256>" \
-H "x-apikey: VOTRE_CLE_VT_API"

# MalwareBazaar (abuse.ch) - base de donnees gratuite d'echantillons de malware
curl -d 'query=get_info&hash=<sha256>' \
'https://mb-api.abuse.ch/api/v1/'

# ── OSINT D'ACTEURS DE MENACES ────────────────────────────────────────────────

# Page des groupes MITRE ATT&CK
# https://attack.mitre.org/groups/

# Traqueur de groupes APT ETDA Thailande (liste ouverte complete)
# https://apt.etda.or.th/cgi-bin/listgroups.cgi

# Malpedia - familles de malware et acteurs de menaces associes
# https://malpedia.caad.fkie.fraunhofer.de/

5.3 Honeypots et collecte de renseignement active

Les honeypots sont des systemes leurres concus pour attirer les attaquants. Ils generent un renseignement sur les menaces de haute fidelite car toute interaction est suspecte par definition.

# Deployer un honeypot SSH simple en utilisant Cowrie
# Cowrie journalise les commandes des attaquants, capture les fichiers televerses, enregistre les identifiants

# Installer Cowrie
git clone https://github.com/cowrie/cowrie.git
cd cowrie
pip install -r requirements.txt
cp etc/cowrie.cfg.dist etc/cowrie.cfg

# Configurer : ecouter sur le port 2222, rediriger le vrai SSH vers 2222 et exposer 22
# /etc/cowrie.cfg
# [ssh]
# listen_port = 2222
# hostname = srv04

# Rediriger le vrai SSH vers 2222, exposer le port 22 sur internet pour le honeypot
iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222

# Demarrer Cowrie
bin/cowrie start

# Surveiller les sessions des attaquants en temps reel
tail -f var/log/cowrie/cowrie.json | python3 -c "
import sys, json
for line in sys.stdin:
event = json.loads(line)
if event.get('eventid') in ['cowrie.command.input', 'cowrie.login.success']:
print(f\"[{event['eventid']}] {event.get('input', event.get('username',''))}\")
"

Ce que les honeypots revelent :

  • Boites a outils des attaquants et commandes utilisees immediatement apres l'acces initial
  • Listes d'identifiants en cours de bruteforce (vrais mots de passe utilises)
  • Infrastructure C2 (URLs de telechargement de malware)
  • Techniques zero-day avant divulgation publique

6. Operationnalisation du renseignement

6.1 Le pipeline RM-vers-Detection

Le renseignement brut doit etre converti en regles de detection, blocages de pare-feu et requetes de chasse pour avoir une valeur operationnelle.

Flux STIX / Rapport RM

v
Extraire IoC / TTPs
(IPs, domaines, hachages, techniques)

v
Enrichir et valider
(Cette IP est-elle encore malveillante ? Le domaine resout-il encore ? Le hachage est-il sujet aux FP ?)

├──────────────────────────────────────────────────────────┐
v v
IoC techniques TTPs / Comportements
(IP, hachage, domaine) (techniques ATT&CK)
│ │
v v
Bloquer / Alerter Ecrire des regles de detection
(Pare-feu, sinkhole DNS, (Sigma, YARA, Suricata)
blocage de hachage endpoint) │
v
Deployer vers SIEM / EDR / NDR

v
Alerte -> Triage -> Confirmation

6.2 Ecriture de regles YARA pour la detection de malware

YARA est le langage de correspondance de patterns pour les analystes de malware. Les regles decrivent les caracteristiques des familles de malware pour les detecter sur disque ou en memoire.

// Exemple de regle YARA : detecter la balise Cobalt Strike
// Cobalt Strike est l'outil d'equipe rouge le plus souvent abuse, utilise par les APTs et cybercriminels

rule CobaltStrike_Beacon_Indicators
{
meta:
description = "Detecte la balise Cobalt Strike basee sur les chaines et patterns caracteristiques"
author = "EquipeSecurite"
date = "2024-01-15"
severity = "critique"
mitre_attack = "T1071.001, T1055"

strings:
// Chaine de masque de sommeil par defaut Cobalt Strike
$cs_str1 = "%s (admin)" wide ascii
// Tube nomme par defaut pour la balise SMB
$cs_pipe = "\\\\.\\pipe\\msagent_" wide ascii
// User-agents par defaut du C2 malleable
$cs_ua1 = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; 123)" ascii
// Pattern d'URL de staging Cobalt Strike
$cs_url = "/submit.php" ascii
// Marqueur de bloc de configuration encode XOR
$cs_config = { 2e 2f 2e 2f 2e 2c } // Octets hexa courants dans la config CS

condition:
// Detecter si 2 des chaines ci-dessus sont presentes
uint16(0) == 0x5A4D // En-tete MZ - c'est un fichier PE
and filesize < 2MB
and 2 of ($cs_str1, $cs_pipe, $cs_ua1, $cs_url, $cs_config)
}

// Executer YARA sur un repertoire
// yara -r cobalt_strike.yar /chemin/vers/scan
// yara -r cobalt_strike.yar --scan-list liste_fichiers.txt

6.3 Ecriture de regles Sigma pour la detection SIEM

Sigma est un format de regle de detection generique et independant du fournisseur pour les systemes SIEM. Les regles sont ecrites une fois et converties en Splunk SPL, Elastic DSL, QRadar AQL, etc.

# Regle Sigma : detecter l'extraction d'identifiants LSASS par Mimikatz
title: Extraction d'identifiants LSASS par Mimikatz
id: 5ef9853e-4d0e-4a70-846f-a9ca37d876da
status: stable
description: Detecte l'extraction d'identifiants depuis la memoire LSASS en utilisant Mimikatz ou des outils similaires
references:
- https://attack.mitre.org/techniques/T1003/001/
author: EquipeSecurite
date: 2024/01/15
tags:
- attack.credential_access
- attack.t1003.001
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\lsass.exe'
GrantedAccess|contains:
- '0x1010' # PROCESS_VM_READ + PROCESS_QUERY_INFORMATION
- '0x1410'
- '0x147a'
- '0x143a'
condition: selection
falsepositives:
- Logiciels de securite, scanners antivirus
- Windows Defender credential guard
level: critical

# Convertir la regle Sigma en Splunk SPL
# sigma convert -t splunk -p splunk_windows cobalt_strike.yml

# Convertir en Elastic Query DSL
# sigma convert -t es-qs -p ecs_windows mimikatz_lsass.yml

6.4 Chasse aux menaces avec le renseignement

La chasse aux menaces est une recherche proactive, guidee par des hypotheses de menaces qui ont echappe a la detection automatisee.

# Hypothese de chasse : "APT29 est connu pour utiliser WMI pour le mouvement lateral (T1021.006)"
# Chasser les evenements de creation de processus WMI inhabituels

# Chasse dans les journaux d'evenements Windows avec PowerShell
# Rechercher WMI lancant cmd.exe ou PowerShell (abus courant de LOLBin)
Get-WinEvent -LogName "Microsoft-Windows-WMI-Activity/Operational" |
Where-Object { $_.Message -match "cmd.exe|powershell.exe" } |
Select-Object TimeCreated, Message

# Chasser l'abus de LOLBin : certutil telechargement de payloads (T1105)
# Certutil est legitime mais souvent abuse pour telecharger des malwares
Get-WinEvent -LogName Security |
Where-Object { $_.Message -match "certutil" -and $_.Message -match "urlcache" }

# Chasser les domaines DGA dans les journaux DNS (noms de domaine d'aspect aleatoire)
# Les domaines DGA ont typiquement une entropie elevee et ne suivent aucun pattern de dictionnaire
# Exemple en Python + entropie de Shannon
python3 -c "
import math
def entropie(s):
p = [s.count(c)/len(s) for c in set(s)]
return -sum(x*math.log2(x) for x in p)

domaines = ['google.com', 'xkjhdf.net', 'update.microsoft.com', 'asjklhdf.biz']
for d in domaines:
nom = d.split('.')[0]
e = entropie(nom)
flag = 'DGA?' if e > 3.5 else 'OK'
print(f'{d:35s} entropie={e:.2f} {flag}')
"

7. Diagramme d'architecture