openctithreat-intelligencestix
MDstable
NoteSnippetChecklistPlaybook
OpenCTI — Threat Intelligence Platform
Déploiement et utilisation d'OpenCTI : graphe de connaissance cyber, gestion des acteurs/TTP/IOC, intégration MISP et connecteurs
snippetintermediate 2026-06-19 4 min read
openctithreat-intelligencestixtaxiisociocttp
OpenCTI vs MISP
MISP Partage dIOC indicateurs bruts IP hash domaineOpenCTI Graphe de connaissance Acteurs TTP Campagnes IOCRpondre "QUI attaque COMMENT" plutt que "QUOI bloquer"
OpenCTI modélise les données en STIX 2.1 nativement :
Threat Actor utilise Malware dploie InfrastructureCampaign attribue Threat Actor cible Identity org paysAttack Pattern TTP ATT&CK lie Indicator IOC
Déploiement Docker
yaml
# docker-compose.ymlversion: '3'services:redis:image: redis:7restart: alwayselasticsearch:image: elasticsearch:8.12.1environment:- discovery.type=single-node- xpack.security.enabled=false- "ES_JAVA_OPTS=-Xms2g -Xmx2g"volumes:- esdata:/usr/share/elasticsearch/dataminio:image: minio/minio:latestcommand: server /dataenvironment:- MINIO_ROOT_USER=opencti- MINIO_ROOT_PASSWORD=changeme123volumes:- miniodata:/datarabbitmq:image: rabbitmq:3.12-managementenvironment:- RABBITMQ_DEFAULT_USER=opencti- RABBITMQ_DEFAULT_PASS=changeme123opencti:image: opencti/platform:6.2.0ports:- "8080:8080"environment:- APP__PORT=8080- APP__BASE_URL=http://localhost:8080- APP__ADMIN__EMAIL=admin@opencti.io- APP__ADMIN__PASSWORD=ChangeMe!2026- APP__ADMIN__TOKEN=UUID_TOKEN_ICI- REDIS__HOSTNAME=redis- ELASTICSEARCH__URL=http://elasticsearch:9200- MINIO__ENDPOINT=minio- MINIO__ACCESS_KEY=opencti- MINIO__SECRET_KEY=changeme123- RABBITMQ__HOSTNAME=rabbitmq- RABBITMQ__USERNAME=opencti- RABBITMQ__PASSWORD=changeme123- PROVIDERS__LOCAL__STRATEGY=LocalStrategydepends_on:- redis- elasticsearch- minio- rabbitmq# Connecteur MITRE ATT&CKconnector-mitre:image: opencti/connector-mitre:6.2.0environment:- OPENCTI_URL=http://opencti:8080- OPENCTI_TOKEN=UUID_TOKEN_ICI- CONNECTOR_ID=CONNECTOR_MITRE_UUID- CONNECTOR_TYPE=EXTERNAL_IMPORT- CONNECTOR_NAME=MITRE ATT&CK- CONNECTOR_SCOPE=marking-definition,identity,attack-pattern,course-of-action,intrusion-set,campaign,malware,tool,vulnerability,x-mitre-data-source- MITRE_INTERVAL=7 # jours entre chaque importvolumes:esdata:miniodata:
bash
# Accès : http://localhost:8080# Login : admin@opencti.io / ChangeMe!2026
Connecteurs essentiels
yaml
# MISP — import IOC depuis MISP vers OpenCTIconnector-misp:image: opencti/connector-misp:6.2.0environment:- CONNECTOR_NAME=MISP- MISP_URL=https://misp.local- MISP_KEY=MISP_API_KEY- MISP_SSL_VERIFY=false- MISP_DATETIME_ATTRIBUTE=timestamp- MISP_IMPORT_FROM_DATE=2024-01-01# Abuse.ch URLhausconnector-urlhaus:image: opencti/connector-urlhaus:6.2.0environment:- CONNECTOR_NAME=Abuse.ch URLhaus- URLHAUS_CSV_URL=https://urlhaus.abuse.ch/downloads/csv_recent/# AlienVault OTXconnector-alienvault:image: opencti/connector-alienvault:6.2.0environment:- CONNECTOR_NAME=AlienVault OTX- ALIENVAULT_BASE_URL=https://otx.alienvault.com- ALIENVAULT_API_KEY=OTX_API_KEY- ALIENVAULT_PULSE_START_TIMESTAMP=2024-01-01T00:00:00# Shodan — enrichissement IPconnector-shodan:image: opencti/connector-shodan:6.2.0environment:- SHODAN_TOKEN=SHODAN_API_KEY
Interface — Navigation
AnalyseRapports Threat reports imports/crsRegroupements Campagnes Intrusion SetsMalwares Familles de malware TTPsMenacesActeurs Groupes APT Lazarus APT28Campagnes Oprations identifiesModes opratoires Techniques ATT&CKArsenalMalwares Outils malveillantsCanaux dattaque Vecteurs initiauxVulnrabilits CVE lies aux acteursObservationsIndicateurs IOC IP hash domain URLArtefacts observs Fichiers rseauGraphe de connaissanceVue graphique des relations entre entits
API OpenCTI (GraphQL)
bash
BASE_URL"http://localhost:8080"TOKEN"UUID_TOKEN_ICI"# Liste des acteurs de menacecurl -X POST "$BASE_URL/graphql"-H "Authorization: Bearer $TOKEN"-H "Content-Type: application/json"-d '{"query": "{ threatActors { edges { node { id name description } } } }"}'# Chercher un IOCcurl -X POST "$BASE_URL/graphql"-H "Authorization: Bearer $TOKEN"-H "Content-Type: application/json"-d '{"query": "{ indicators(filters: {key: value, operator: eq}) { edges { node { id name pattern } } } }"}'
python
# pycti — client Python officielfrom pycti import OpenCTIApiClientapi = OpenCTIApiClient("http://localhost:8080", "UUID_TOKEN_ICI")# Créer un indicateurapi.indicator.create(name="Suspicious IP C2",pattern="[ipv4-addr:value = '185.220.101.45']",pattern_type="stix",x_opencti_score=85,labels=["c2", "apt"],)# Lister les groupes APTactors = api.threat_actor.list()for actor in actors:print(actor["name"], actor.get("description", ""))
Intégration avec ton SOC
Wazuh alerte TheHive case OpenCTI enrichissement IOCPivot qui dautre cible ces IOCActeur ATT&CK mappingMISP Export IOC validsOpenCTI Wazuh export liste IP/domaines malveillantsIngrer dans les rgles SuricataMise jour blacklists pfSense
Dashboard recommandé
Widgets utiles sur le tableau de bord OpenCTIActeurs actifs ce moisIOC ingrs par source MISP OTX AbusechTTPs les plus utilises ATT&CK heatmapRapports ajouts cette semaineScore moyen des indicateurs
OPS·BRAIN v1.092 notes · Securitylocal