Artefacts¶
Les artefacts sont des enregistrements IOC structurés que Stentor crée automatiquement chaque fois qu'un beacon exécute une tâche. Chaque artefact capture ce qui s'est passé (création de processus, opération de fichier, modification du registre, connexion réseau), quelle technique MITRE ATT&CK a été utilisée et quelle beacon l'a produit. Les artefacts alimentent l'exportation du navigateur ATT&CK, les rapports IOC et la chronologie de l'engagement.
Comment les artefacts sont collectés¶
Le ArtifactRecorder s'exécute dans le pipeline des résultats de la tâche et produit des enregistrements d'artefacts à partir de deux sources :
- Artéfacts signalés par l'implant (
source: "implant") : l'implant signale explicitement les artefacts dans sa payload de résultat de tâche, notamment le type, le chemin, la valeur et l'ID de technique facultatif. - Artefacts auto-inférés (
source: "auto") -- Lorsque l'implant ne signale pas d'artefacts explicites, l'enregistreur les déduit du type de tâche à l'aide de la table de mappage MITRE ATT&CK intégrée.
L'enregistrement des artefacts n'est pas bloquant : il s'exécute dans une routine goroutine en arrière-plan et insère des enregistrements par lots pour les performances. Les échecs sont enregistrés mais ne bloquent jamais le pipeline des résultats de la tâche.
sequenceDiagram
participant Implant
participant Relay
participant Backend
participant ArtifactRecorder
participant Database
Implant->>Relay: Task result (with optional artifacts)
Relay->>Backend: Forward result via WebSocket
Backend->>Backend: Process task result
Backend->>ArtifactRecorder: RecordFromResult(beaconID, taskID, taskType, result)
alt Implant reported artifacts
ArtifactRecorder->>ArtifactRecorder: Use explicit artifacts (source="implant")
else No explicit artifacts
ArtifactRecorder->>ArtifactRecorder: Infer from task type (source="auto")
end
ArtifactRecorder->>Database: Batch INSERT c2_artifacts Objet artefact¶
| Champ | Type | Description |
|---|---|---|
id | UUID | Identifiant unique de l'artefact |
beacon_id | UUID | Beacon qui a produit l'artefact |
task_id | UUID | Tâche qui a déclenché l'artefact (facultatif) |
artifact_type | chaîne | Catégorie : process, file, registry, network, event_log, service |
path | chaîne | Chemin d'accès au fichier, clé de registre, nom du processus ou adresse réseau |
value | chaîne | Valeur associée (valeur de registre, hachage de fichier, etc.) |
technique_id | chaîne | ID de la technique MITRE ATT&CK (par exemple, T1055.003) |
tactic | chaîne | Tactique MITRE ATT&CK (par exemple, defense-evasion) |
description | chaîne | Description lisible par l'homme de l'artefact |
source | chaîne | implant (explicite) ou auto (déduit) |
created_at | horodatage | Quand l'artefact a été enregistré |
Types d'artefacts¶
| Type | Description | Exemple |
|---|---|---|
process | Création ou injection de processus | cmd.exe, powershell.exe |
file | Opérations du système de fichiers | Chemins de chargement/téléchargement, fichiers déposés |
registry | Modifications de la clé de registre | Clés de persistance, entrées de service |
network | Connexions réseau | Scans de ports, mouvements latéraux, tunnels |
event_log | Entrées du journal des événements Windows | Indicateurs du journal de sécurité |
service | Opérations des services Windows | Création, modification de services |
Cartographie automatique MITRE¶
Lorsqu'aucun artefact explicite n'est signalé par l'implant, l'enregistreur mappe automatiquement les types de tâches aux techniques MITRE ATT&CK :
| Type de tâche | Type d'artefact | Technique MITRE |
|---|---|---|
exec, shell | process | T1059.003 (shell de commande) |
powershell, powershell_import, powerpick | process | T1059.001 (PowerShell) |
inject, fork_run | process | T1055 (Injection de procédé) |
persist | registry | T1547.001 (Clés d'exécution du registre) |
creds, STEAL_TOKEN, MAKE_TOKEN | credential | Techniques d'accès aux informations d'identification |
file_upload | file | Opérations de transfert de fichiers |
file_download | file | Opérations de transfert de fichiers |
PORTSCAN | network | T1046 (analyse des ports) |
lateral | network | Techniques de mouvement latéral |
socks, rportfwd | network | Techniques de tunneling/proxy |
Types de tâches non mappés
Les types de tâches sans mappage MITRE sont ignorés silencieusement : aucun artefact n'est enregistré. Cela permet à la table d'artefacts de se concentrer sur les IOC pertinents pour la sécurité.
Interroger des artefacts¶
Tous les points de terminaison des artefacts se trouvent sous /api/v1/artifacts et prennent en charge la pagination via les paramètres de requête limit et offset.
Paramètres de pagination¶
| Paramètre | Type | Par défaut | Max. | Description |
|---|---|---|---|---|
limit | int | 50 | 500 | Résultats par page |
offset | int | 0 | -- | Décalage de pagination |
Répertorier tous les artefacts¶
curl -s "https://stentor.app/api/v1/artifacts?limit=50&offset=0" \
-H "Authorization: Bearer $TOKEN" | jq
Réponse :
{
"artifacts": [
{
"id": "artifact-uuid",
"beacon_id": "beacon-uuid",
"task_id": "task-uuid",
"artifact_type": "process",
"path": "cmd.exe",
"value": "",
"technique_id": "T1059.003",
"tactic": "execution",
"description": "Process created: cmd.exe (command shell)",
"source": "auto",
"created_at": "2026-02-21T14:30:00Z"
}
],
"total": 1247
}
Filtrer par beacon¶
curl -s "https://stentor.app/api/v1/artifacts/by-beacon/$BEACON_ID?limit=100" \
-H "Authorization: Bearer $TOKEN" | jq
Filtrer par tâche¶
Renvoie tous les artefacts pour une tâche spécifique (pas de pagination - renvoie l'ensemble complet).
curl -s "https://stentor.app/api/v1/artifacts/by-task/$TASK_ID" \
-H "Authorization: Bearer $TOKEN" | jq
Filtrer par type¶
Types valides : process, file, registry, network, event_log, service.
Filtrer par Technique MITRE¶
curl -s "https://stentor.app/api/v1/artifacts/by-technique/T1059.001?limit=50" \
-H "Authorization: Bearer $TOKEN" | jq
Filtrer par plage horaire¶
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
start | RFC3339 | Oui | Heure de début de plage |
end | RFC3339 | Non | Heure de fin de plage (par défaut : maintenant) |
curl -s "https://stentor.app/api/v1/artifacts/by-time?start=2026-02-20T00:00:00Z&end=2026-02-21T23:59:59Z&limit=100" \
-H "Authorization: Bearer $TOKEN" | jq
Résumé technique¶
Données d'utilisation des techniques agrégées pour tous les artefacts, regroupées par ID de technique et tactique.
Réponse¶
{
"techniques": [
{
"technique_id": "T1059.001",
"tactic": "execution",
"count": 47,
"first_seen": "2026-02-19T08:12:00Z",
"last_seen": "2026-02-21T16:45:00Z"
},
{
"technique_id": "T1055.003",
"tactic": "defense-evasion",
"count": 12,
"first_seen": "2026-02-19T10:30:00Z",
"last_seen": "2026-02-21T14:00:00Z"
}
]
}
Ce point de terminaison alimente l’export de la couche ATT&CK Navigator et la répartition technique dans le rapport IOC.
Exportation de la couche de navigateur ATT&CK¶
Exportez la couverture technique de votre engagement sous forme de fichier JSON de couche ATT&CK Navigator v4.5. Le calque utilise une interpolation de couleur (du blanc au rouge) en fonction de la fréquence d'utilisation.
Couche standard¶
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
name | chaîne | Stentor Engagement - YYYY-MM-DD | Nom du calque personnalisé |
preview | bool | false | Lorsque true, omet l'en-tête Content-Disposition (pour l'aperçu dans le navigateur) |
Couche par opération¶
Un deuxième mode d'exportation colore les techniques par lesquelles l'hôte/le beacon les a utilisées, ce qui facilite la visualisation de la couverture opérationnelle tout au long de l'engagement. Chaque hôte reçoit une couleur distincte et une légende mappe les noms d'hôtes aux couleurs.
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
name | chaîne | Stentor Operation - YYYY-MM-DD | Nom du calque personnalisé |
preview | bool | false | Omettre l'en-tête de téléchargement pour l'aperçu dans le navigateur |
curl -s "https://stentor.app/api/v1/artifacts/navigator-layer/by-operation" \
-H "Authorization: Bearer $TOKEN" \
-o navigator-layer-operation.json
Schémas de couleurs¶
Interpolation de couleur du blanc (#ffffff) au rouge (#ff6666) basée sur count / maxCount :
| Utilisation | Couleur | Signification |
|---|---|---|
| 0 | Blanc | Non observé |
| Faible | Rose clair | Utilisation occasionnelle |
| Élevé | Rouge foncé | Utilisation fréquente |
Chaque hôte se voit attribuer une couleur distincte de la palette :
| Indice | Couleur | Hex |
|---|---|---|
| 0 | Rouge | #ff6666 |
| 1 | Bleu | #66b3ff |
| 2 | Vert | #99ff99 |
| 3 | Orange | #ffcc66 |
| 4 | Rose | #ff99cc |
| 5+ | Parcourt 10 couleurs | ... |
Utilisation avec le navigateur ATT&CK¶
- Téléchargez la couche JSON à partir de l'un ou l'autre point de terminaison
- Ouvrez le Navigateur ATT&CK
- Cliquez sur Ouvrir la couche existante et téléchargez le fichier JSON.
- La carte thermique restitue la couverture technique de votre engagement
Voir Intégration MITRE ATT&CK pour la documentation complète de la base de connaissances.
Rapport du CIO¶
Générez un rapport structuré sur les indicateurs de compromission à partir de tous les artefacts enregistrés. Le rapport regroupe les artefacts par hôte et comprend une section sur la répartition des techniques, idéale pour le transfert du défenseur après un engagement.
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
format | chaîne | json | Format d'exportation : json, pdf ou html |
Structure du rapport du CIO¶
{
"generated_at": "2026-02-21T15:00:00Z",
"total_artifacts": 523,
"hosts": [
{
"hostname": "DC01",
"ip": "10.10.10.10",
"artifacts": [
{
"type": "process",
"path": "powershell.exe",
"value": "",
"technique_id": "T1059.001",
"tactic": "execution",
"description": "Process created: powershell.exe",
"source": "auto",
"created_at": "2026-02-20T09:15:00Z"
}
]
}
],
"technique_breakdown": [
{
"technique_id": "T1059.001",
"technique_name": "PowerShell",
"tactic": "execution",
"artifact_count": 47,
"hosts": ["DC01", "WS01", "WS02"]
}
]
}
| Section | Description |
|---|---|
hosts | Artefacts regroupés par nom d'hôte cible et adresse IP |
technique_breakdown | Utilisation de techniques agrégées avec les listes d'hôtes concernées |
total_artifacts | Nombre total d'artefacts sur tous les hôtes |
Détection de hachage de fichier
Pour les artefacts de type file, si le champ value contient une chaîne hexadécimale de 64 caractères, le rapport IOC remplit automatiquement le champ hash avec le hachage SHA256 pour faciliter le partage IOC.
Chronologie des fiançailles¶
Une vue chronologique de tous les artefacts associés aux métadonnées de beacon, prenant en charge le filtrage multidimensionnel. La chronologie est classée par ordre croissant (croissant) et est conçue pour la reconstruction de l'engagement et l'analyse post-opératoire.
Paramètres de filtre¶
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
host | chaîne | Non | Filtrer par nom d'hôte de beacon (correspondance exacte) |
operator | chaîne | Non | Filtrer par nom d'utilisateur de beacon (correspondance exacte) |
technique | chaîne | Non | Filtrer par ID de technique MITRE |
start | RFC3339 | Non | Début de la plage de dates |
end | RFC3339 | Non | Fin de la plage de dates |
limit | int | Non | Nombre maximum d'entrées (200 par défaut, 5 000 maximum) |
offset | int | Non | Décalage de pagination |
format | chaîne | Non | Format de sortie : json (par défaut), pdf ou html |
Réponse chronologique¶
{
"timeline": {
"generated_at": "2026-02-21T15:30:00Z",
"total_entries": 834,
"filters": {
"hostname": "DC01",
"technique_id": "T1059.001"
},
"entries": [
{
"timestamp": "2026-02-19T08:12:00Z",
"beacon_id": "beacon-uuid",
"hostname": "DC01",
"username": "CORP\\jdoe",
"ip": "10.10.10.10",
"artifact_type": "process",
"path": "powershell.exe",
"value": "",
"technique_id": "T1059.001",
"tactic": "execution",
"description": "Process created: powershell.exe",
"source": "auto"
}
]
}
}
Limites d'exportation
Lors de l'exportation au format PDF ou HTML, la limite est automatiquement augmentée à 5 000 entrées pour capturer la chronologie complète de l'engagement. Les réponses JSON respectent la limite fournie par l'appelant.
Référence API¶
| Méthode | Point de terminaison | Description |
|---|---|---|
GET | /api/v1/artifacts | Répertorier tous les artefacts (paginés) |
GET | /api/v1/artifacts/by-beacon/:beaconId | Artefacts pour un beacon spécifique |
GET | /api/v1/artifacts/by-task/:taskId | Artefacts pour une tâche spécifique |
GET | /api/v1/artifacts/by-type/:type | Artefacts filtrés par type |
GET | /api/v1/artifacts/by-technique/:techniqueId | Artefacts filtrés par la technique MITRE |
GET | /api/v1/artifacts/by-time | Artefacts dans une plage de temps |
GET | /api/v1/artifacts/summary | Résumé technique agrégé |
GET | /api/v1/artifacts/navigator-layer | Exportation de la couche Navigateur ATT&CK |
GET | /api/v1/artifacts/navigator-layer/by-operation | Couche Navigateur par opération |
GET | /api/v1/artifacts/ioc-report | Rapport du CIO (JSON, PDF, HTML) |
GET | /api/v1/artifacts/timeline | Chronologie de l'engagement (JSON, PDF, HTML) |
Voir aussi¶
- Intégration MITRE ATT&CK -- Base de connaissances, fonctions de script CNA et recherche de techniques
- Rapports de campagne – Rapports sur la campagne dans 6 formats
- Campagnes C2 -- Gestion de campagne et association de beacons
- Journal d'audit -- Piste d'audit des actions de l'opérateur