Intégration MITRE ATT&CK¶
Stentor comprend une base de connaissances MITRE ATT&CK intégrée avec 85 définitions de techniques (62 techniques MITRE officielles + 23 techniques internes personnalisées). La base de connaissances alimente les fonctions de reporting technique, de conseils OPSEC et de script CNA.
Base de connaissances¶
Les définitions de techniques sont stockées sous forme de fichiers YAML dans server/knowledge_base/techniques/. Chaque fichier contient :
- ID technique (MITRE ou interne)
- Nom et description
- Cartographie tactique (séparés par des virgules pour les techniques multi-tactiques)
- Méthodes d'exécution avec schémas de paramètres
- Conseils OPSEC – niveau de risque, indicateurs de détection et mesures d'atténuation
- Artefacts médico-légaux attendus : sources du journal des événements, ID d'événement et descriptions
- Techniques associées
Couverture¶
La base de connaissances couvre les techniques de toutes les principales tactiques ATT&CK :
| Tactique | Exemples de techniques |
|---|---|
| Exécution | T1059.001 (PowerShell), T1059.003 (Cmd Shell), T1047 (WMI), T1106 (API native) |
| Persistance | T1547.001 (clés d'exécution du registre), T1543.003 (service Windows) |
| Augmentation des privilèges | T1134.001 (Vol de jetons), T1134.002 (Créer un processus avec un jeton) |
| Évasion défensive | T1055.003 (Injection de processus), T1562.001 (Défenses d'altération), T1027.006 (Obfuscation) |
| Accès aux informations d'identification | T1003.001-006 (LSASS/SAM/NTDS/LSA/Cached/DCSync), T1558.001-004 (Kerberos) |
| Découverte | T1046 (analyse de port), T1018 (énumération de réseau), T1482 (approbations de domaine) |
| Mouvement latéral | T1021.002 (SMB), T1021.003 (DCOM), T1021.006 (WinRM), T1047 (WMI) |
| Collection | T1115 (Données du Presse-papiers) |
Fonctions de script CNA¶
Six fonctions attack_* fournissent un accès par programmation à la base de connaissances :
| Fonction | Signature | Retours |
|---|---|---|
attack_describe | attack_describe($technique_id) | Description complète de la technique |
attack_name | attack_name($technique_id) | Nom d'affichage de la technique |
attack_detect | attack_detect($technique_id) | Indicateurs de détection (séparés par des sauts de ligne) |
attack_mitigate | attack_mitigate($technique_id) | Conseils d'atténuation (séparés par des sauts de ligne) |
attack_tactics | attack_tactics($technique_id) | Tableau de noms de tactiques |
attack_url | attack_url($technique_id) | URL directe MITRE ATT&CK |
Exemples¶
# Look up a technique
println("Name: " . attack_name("T1003.001"));
# → OS Credential Dumping: LSASS Memory
println("URL: " . attack_url("T1003.001"));
# → https://attack.mitre.org/techniques/T1003/001/
# Get detection guidance
println("Detection:\n" . attack_detect("T1003.001"));
# → Suspicious API calls detected
# → Unusual memory allocation patterns
# Get associated tactics
@tactics = attack_tactics("T1003.001");
println("Tactics: " . join(", ", @tactics));
# → Tactics: credential-access
# Use in a custom report
report("TTP Analysis");
page("Technique Details");
h2(attack_name("T1055.003"));
p(attack_describe("T1055.003"));
h3("Detection Guidance");
p(attack_detect("T1055.003"));
report_save("/tmp/ttp-analysis.pdf");
Méthodes de recherche¶
Les techniques peuvent être recherchées soit par leur ID MITRE, soit par leur ID interne :
# By MITRE ID
attack_name("T1003.001"); # → "OS Credential Dumping: LSASS Memory"
# By internal ID
attack_name("BOF_EXECUTE"); # → "BOF Execution (Native API)"
Suivi TTP automatique¶
Lorsque les beacons exécutent des tâches, le rapport chronologique d'activité mappe automatiquement les types de tâches connus aux ID de technique MITRE ATT&CK :
| Type de tâche | Technique MITRE |
|---|---|
| Exécution PowerShell | T1059.001 |
| Interpréteur de commande | T1059.003 |
| Mouvement latéral WMI | T1047 |
| Exécution DCOM | T1021.003 |
| Exécution WinRM | T1021.006 |
| Injection de processus | T1055.003 |
| Vol de jetons | T1134.001 |
| Création de jetons | T1134.002 |
| Décharge SAM | T1003.002 |
| Accès LSASS | T1003.001 |
| Décharge NTDS | T1003.003 |
| Secrets LSA | T1003.004 |
| Informations d'identification mises en cache | T1003.005 |
| Synchronisation DC | T1003.006 |
| Analyse des ports | T1046 |
| Énumération du réseau | T1018 |
| Découverte de l'approbation de domaine | T1482 |
| Persistance du registre | T1547.001 |
Ce mappage alimente le rapport TTP (type=ttp), qui fournit des statistiques au niveau tactique et des décomptes d'utilisation par technique.
Suivi des artefacts¶
Stentor enregistre automatiquement les artefacts générés pendant les opérations. Chaque tâche de beacon, génération de payload et action post-exploitation crée un enregistrement d'artefact avec sa technique MITRE ATT&CK associée.
Comment ça marche¶
Le ArtifactRecorderInterface (défini dans server/internal/c2/) enregistre les artefacts en temps réel :
- Inférence : Lorsqu'une tâche est exécutée, l'enregistreur déduit la technique MITRE du type de tâche à l'aide de la table de mappage
taskTypeToMitreci-dessus. - Enregistrement : Les enregistrements d'artefacts sont écrits via des goroutines non bloquantes avec le lot
INSERTpour les performances. - Suivi de le payload : Les artefacts au moment de la construction (par exemple, « Mutation du code » lorsque la mutation est activée) sont enregistrés à côté des artefacts d'exécution.
Champs d'enregistrement d'artefact¶
| Champ | Description |
|---|---|
technique_id | ID de la technique MITRE ATT&CK (par exemple, T1055.003) |
technique_name | Nom de la technique lisible par l'homme |
tactic | Catégorie tactique ATT&CK |
beacon_id | Beacon qui a généré l'artefact |
task_type | Type de tâche qui a déclenché l'artefact |
timestamp | Quand l'artefact a été enregistré |
details | Contexte supplémentaire (arguments de commande, PID cible, etc.) |
Interroger des artefacts¶
API REST :
# List all artifacts (paginated)
curl -s "https://stentor.app/api/v1/artifacts?page=1&per_page=50" \
-H "Authorization: Bearer $TOKEN"
# Filter by technique
curl -s "https://stentor.app/api/v1/artifacts?technique=T1055.003" \
-H "Authorization: Bearer $TOKEN"
# Filter by task type
curl -s "https://stentor.app/api/v1/artifacts?type=inject" \
-H "Authorization: Bearer $TOKEN"
Exportation du navigateur ATT&CK¶
Exportez la couverture technique de votre opération sous forme de fichier JSON de couche ATT&CK Navigator. La couche Navigateur fournit une carte thermique visuelle des techniques utilisées lors d'un engagement, avec une intensité de couleur basée sur la fréquence d'utilisation.
Exporter le point de terminaison¶
GET /api/v1/artifacts/navigator
# Download Navigator layer JSON
curl -s "https://stentor.app/api/v1/artifacts/navigator" \
-H "Authorization: Bearer $TOKEN" \
--output navigator-layer.json
# Preview in browser (no Content-Disposition header)
curl -s "https://stentor.app/api/v1/artifacts/navigator?preview=true" \
-H "Authorization: Bearer $TOKEN"
Filtrage¶
| Paramètre | Description |
|---|---|
technique | Filtrer sur des identifiants de techniques spécifiques |
type | Filtrer par type de tâche |
from | Date de début (ISO 8601) |
to | Date de fin (ISO 8601) |
Cartographie des couleurs¶
Le calque Navigateur utilise une interpolation de couleurs (du blanc au rouge) en fonction de la fréquence d'utilisation de la technique :
| Nombre d'utilisations | Couleur | Interprétation |
|---|---|---|
| 0 | Blanc | Non utilisé |
| 1-5 | Rose clair | Faible utilisation |
| 6-20 | Rouge moyen | Utilisation modérée |
| 21+ | Rouge foncé | Usage intensif |
Utilisation avec le navigateur ATT&CK¶
- Exporter la couche JSON depuis Stentor
- Ouvrez ATT&CK Navigator dans un navigateur
- Cliquez sur "Ouvrir la couche existante" et téléchargez le fichier JSON
- La carte thermique montre quelles techniques ont été utilisées et leur fréquence
Ceci est précieux pour les rapports d'engagement : il fournit un résumé visuel de la couverture technique de l'opération qui correspond directement au cadre MITRE ATT&CK.
Accès à l'interface utilisateur¶
L'exportation Navigator est également disponible à partir de l'interface utilisateur de Stentor :
- Accédez à Rapports > Artefacts.
- Appliquez des filtres de type/technique selon vos besoins (sélectionnez « tout » pour effacer les filtres)
- Cliquez sur Exporter la couche du navigateur.
- Le fichier JSON se télécharge automatiquement
L'interface utilisateur utilise un filtrage côté serveur : les filtres de type ou de technique de commutation actualisent l'intégralité de la requête.