Patterns d'indicateurs STIX 2.1 et développement de détections
La Cyber Threat Intelligence (CTI) joue un rôle critique dans la cybersécurité proactive. Elle permet aux organisations d'identifier, de détecter et de répondre aux menaces émergentes avant qu'elles ne causent des dommages significatifs. L'un des standards les plus puissants pour représenter et partager la threat intelligence est Structured Threat Information eXpression (STIX).
STIX 2.1 introduit un framework d'Indicateur flexible, qui utilise des règles de détection basées sur des patterns pour décrire un comportement malveillant. Ce billet de blog explique comment construire des patterns STIX efficaces, les mapper à des scénarios de détection réels et les utiliser dans votre workflow de cybersécurité.
Ce billet de blog a été inspiré par cet excellent article de David Greenwood, qui fournit un aperçu fondamental des patterns d'Indicateurs STIX et de leur application dans le detection engineering. En nous appuyant sur cette base, notre objectif ici est d'élargir la conversation avec un contexte supplémentaire, des exemples pratiques et des conseils d'intégration pour les environnements opérationnels.
Qu'est-ce qu'un indicateur STIX ?
Dans STIX 2.1, un Indicateur est un objet qui définit des patterns pour détecter une activité potentiellement malveillante. Chaque Indicateur contient une propriété pattern, qui contient la règle de détection proprement dite. Ce pattern peut décrire différents comportements malveillants, tels que des hash de fichiers, des adresses IP, des noms de domaine et des clés de registre.
La propriété pattern_type spécifie le type de pattern utilisé. Les valeurs pattern_type courantes incluent :
- stix : langage de patterns STIX (couvert en détail ci-dessous)
- sigma : règles de détection Sigma pour les SIEMs
- snort : règles Snort pour la détection d'intrusion réseau
- yara : règles YARA pour l'analyse de fichiers
Aperçu du langage de patterns STIX

La structure générale d'un Pattern STIX, reproduction de l'article de David Greenwood sur Dogesec
Le langage de patterns STIX fournit un moyen structuré de décrire des observables, tels que des adresses IP, des noms de domaine et des hash de fichiers. Un pattern STIX de base suit le format :
Copied!
1[object-path:property='value']
Expressions de comparaison
Une expression de comparaison évalue si une propriété spécifique d'un objet observable cyber correspond à une valeur donnée. Exemples :
1. Détection d'une adresse IP spécifique :
Copied!
1[ipv4-addr:value = '68.183.68.83']
2. Détection d'un fichier avec un hash SHA-256 connu :
Copied!
1[file:hashes.'SHA-256' = '52c329f593760c616c906c34cd122f7ecd48128a139e547b976349904b209863']

Opérateur dans un Pattern STIX, reproduction de l'article de David Greenwood sur Dogesec
Opérateurs dans les patterns STIX
Vous pouvez combiner plusieurs expressions de comparaison en utilisant des opérateurs logiques tels que :
- AND : les deux conditions doivent être vraies.
- OR : au moins une condition doit être vraie.
- FOLLOWEDBY : un événement doit survenir après un autre.
- REPEATS : un événement doit survenir un nombre spécifique de fois.
- WITHIN : les événements doivent survenir dans une fenêtre temporelle spécifiée.
Exemple combinant plusieurs expressions :
Copied!
1[ipv4-addr:value = '68.183.68.83'] AND [file:hashes.'SHA-256' = '52c329f593760c616c906c34cd122f7ecd48128a139e547b976349904b209863']
Précédence et parenthèses
La précédence des opérateurs est une considération importante à garder à l'esprit lors de l'écriture de Patterns.
Considérez le Pattern suivant :
Copied!
1[ipv4-addr:value='68.183.68.83/32'] FOLLOWEDBY ([ipv4-addr:value='176.113.115.149/32'] REPEATS 5 TIMES)
Ici, la première Observation Expression nécessite une correspondance sur un ipv4-addr:value égal à 68.183.68.83/32 qui précède 5 occurrences de l'Observation Expression où ipv4-addr:value est égal à 176.113.115.149/32.
Considérez maintenant le Pattern suivant (presque identique au précédent, mais remarquez les parenthèses) :
Copied!
1([ipv4-addr:value='68.183.68.83/32'] FOLLOWEDBY [ipv4-addr:value='176.113.115.149/32']) REPEATS 5 TIMES
La première Observation Expression nécessite une correspondance sur un ipv4-addr:value égal à 68.183.68.83/32 suivi d'une correspondance sur la deuxième Observation Expression pour un ipv4-addr:value égal à 176.113.115.149/32, ce pattern doit être observé 5 fois pour correspondre.
Créer des patterns STIX pour des scénarios réels
Scénario 1 : tentatives de connexion SSH échouées
Supposons que vous souhaitiez détecter des tentatives de connexion SSH échouées répétées depuis une adresse IP spécifique. Voici un exemple de log :
Copied!
12024-01-14 09:07:25:647 type=USER_LOGIN msg=audit user pid=2314 uid=0 username=admin addr=176.113.115.149 res=failed
Un pattern STIX correspondant pour détecter cela pourrait ressembler à :
Copied!
1[ipv4-addr:value = '176.113.115.149'] FOLLOWEDBY [user-account:account_login = 'admin'] WITHIN 1 MINUTE
Scénario 2 : détection de malware par hash de fichier
Pour détecter un malware en utilisant un hash SHA-256 connu, utilisez un pattern simple comme :
Copied!
Bien que cela identifie simplement un seul hash, en réalité il existe plusieurs types de hash qui pourraient représenter un seul Fichier/menace.
Copied!
1[file:hashes.'SHA-256' = '52c329f593760c616c906c34cd122f7ecd48128a139e547b976349904b209863' AND file:hashes.MD5 = 'c10327ebe3830b4ec35fbecc2eb3af52']
Outils pour le développement de patterns STIX
Plusieurs outils peuvent vous aider à écrire, valider et utiliser efficacement les patterns STIX :
1. STIX 2 Pattern Validator
Utilisez cet outil pour vous assurer que vos patterns sont syntaxiquement corrects selon la spécification STIX 2.1.
Copied!
1pip install stix2-patterns2validate-patterns3Enter a pattern to validate: [file:hashes.md5 = 'c10327ebe3830b4ec35fbecc2eb3af52']4PASS: [file:hashes.md5 = 'c10327ebe3830b4ec35fbecc2eb3af52']
2. STIX Shifter
STIX Shifter est un outil puissant qui convertit les patterns STIX en requêtes compatibles avec les SIEMs et les EDRs (par exemple, Splunk, Elastic, QRadar).
Exemple de traduction d'un pattern STIX en requête Splunk :
Copied!
1stix-shifter translate splunk query "{}" "[url:value = '<http://malicious.com>']"
Le résultat pourrait ressembler à :
Copied!
1{2 "queries": [3 "search url='<http://malicious.com>'"4 ]5}
Représenter les détections au format STIX
Une fois que vous détectez une activité malveillante en utilisant un pattern STIX, vous pouvez représenter le résultat de la détection sous forme d'Observed Data SDO et d'un Sighting SRO au format STIX. Voici un exemple :
Copied!
1{2 "type": "observed-data",3 "id": "observed-data--699546f4-6d73-4a35-a961-181a34fa3b14",4 "created": "2025-01-14T12:00:00Z",5 "first_observed": "2025-01-14T09:00:00Z",6 "last_observed": "2025-01-14T09:01:00Z",7 "number_observed": 2,8 "object_refs": [9 "ipv4-addr--dc63603e-e634-5357-b239-d4b562bc5445",10 "user-account--dd686e37-6889-53bd-8ae1-b1a503452613"11 ]12}
Bonnes pratiques pour les patterns STIX
Bonne pratique | Description
Utiliser des champs de log normalisés | Assurez-vous que vos champs de log sont cohérents entre les différentes sources de données pour une correspondance de pattern précise
Valider fréquemment les patterns | Utilisez des outils comme STIX 2 Pattern Validator pour détecter les erreurs tôt dans le développement
Gérer les cas limites | Concevez des patterns qui tiennent compte des variations dans les formats de log et les fuseaux horaires
Pourquoi les patterns d'indicateurs STIX sont importants
Bien que les détails techniques de STIX puissent sembler abstraits au premier abord, l'adoption de patterns d'Indicateurs STIX a un impact direct et significatif sur l'efficacité de la cybersécurité de votre organisation. En standardisant la façon dont les menaces sont décrites et partagées, STIX offre des avantages concrets qui vont bien au-delà de la simple correspondance de patterns :
Avantage | Description
Collaboration améliorée | Un langage commun pour la threat intelligence permet aux équipes et aux organisations partenaires d'échanger rapidement des règles de détection et des observables sans mauvaise interprétation
Détection et réponse rationalisées | STIX fournit une source unique de vérité au lieu de multiples ensembles de règles propriétaires, simplifiant le workflow et réduisant les risques d'erreur
Efficacité opérationnelle | Les règles de détection standardisées réduisent la surcharge de traduction de format, assurant une détection de menaces cohérente et fiable dans tout l'écosystème de sécurité
Pérennité | Soutenu par une communauté active et des standards en évolution, STIX s'adapte aux menaces et technologies émergentes, maintenant des défenses robustes
Les pièges de la non-adoption d'un framework standardisé
Ne pas mettre en œuvre une approche standardisée pour construire la cyber threat intelligence peut exposer les organisations à plusieurs risques :
Défi | Impact
Intelligence fragmentée | Différentes équipes interprètent les données de menace de manière incohérente, entravant la communication et les efforts de défense coordonnés
Complexité accrue | Plusieurs ensembles de règles disparates augmentent la surcharge, retardant la détection et créant des failles de sécurité
Risque accru de mauvaise interprétation | Les formats variables augmentent le risque de mauvaise interprétation des menaces, entraînant des réponses retardées ou des faux positifs
Utilisation inefficace des ressources | Le temps et l'effort supplémentaires consacrés à la traduction des données de menace détournent les ressources de la sécurité proactive
Conclusion
Les patterns d'Indicateurs STIX 2.1 sont un moyen puissant de représenter et de partager la threat intelligence. Avec des outils comme STIX Shifter et STIX 2 Pattern Validator, les organisations peuvent automatiser le développement de détections et améliorer leur posture de cybersécurité.
Essayez de créer vos propres patterns STIX pour la détection, et explorez des outils comme txt2stix et cve2stix pour des cas d'usage plus complexes. Bon patterning !
Lire la suite
Explorez des sujets et analyses associés
Votre SOC n'a pas de problème de données. Il a un problème de coordination.

Workflows d'approbation de l'intelligence : garantir la qualité des données et rationaliser les processus
