MISP¶
Rôle¶
Plateforme de threat intelligence (MISP — Malware Information Sharing Platform) : agrégation, corrélation et partage d'indicateurs de compromission (IOC), destinée à être interrogée en API par Cortex et TheHive.
État réel : VM nue, rien d'installé
La VM INDSOC018 existe (provisionnée par Terraform + configuration de
base /root/baseline) mais aucune application MISP n'y est
installée au moment de la rédaction. L'exploitant a demandé une
reconstruction en VM nue le 2026-07-14 pour une installation manuelle
qu'il compte réaliser lui-même — voir « Points d'attention » pour le
contexte complet. Ne pas présenter ni supposer ce composant comme
opérationnel sur la seule base du code Ansible ci-dessous.
Architecture¶
VM unique Rocky 9.6 durci (tmpl-rocky96-hardened), segment seg-soc.
| Documenté (README/MANUEL_INSTALLATION, périmé) | Réel (Terraform/inventaire actuel) | |
|---|---|---|
| Hostname | INDSOC001 | INDSOC018 |
| IP | 10.100.20.130 | 10.100.20.147 |
Le README Ansible et MANUEL_INSTALLATION.md du projet décrivent encore une
itération précédente (INDSOC001). La source de vérité actuelle est
ansible/inventory.ini et variables.tf (INDSOC018 / 10.100.20.147) —
voir Historique des décommissionnements.
- Déploiement prévu via la stack officielle Docker Compose
MISP/misp-docker : MySQL/MariaDB +
Redis +
misp-core+misp-modules. - Docker CE (pas Podman) : seule méthode officiellement maintenue/testée par le projet MISP — le reste de l'infra Indio préfère Podman (voir NetBox), exception assumée ici pour rester sur un chemin supporté en amont.
- Accès HTTPS direct sur l'IP de la VM (pas de FQDN public au moment de l'écriture), certificat auto-signé généré par le conteneur au premier démarrage.
Intégrations prévues (non actives — voir avertissement ci-dessus)¶
flowchart LR
MISP["MISP -- INDSOC018<br/>10.100.20.147<br/>VM nue, rien d'installe"]
Cortex["Cortex -- INDSOC021<br/>10.100.20.150"]
TheHive["TheHive -- INDSOC020<br/>10.100.20.149"]
MISP -.->|"IOC via API REST<br/>prevu, non actif"| Cortex
MISP -.->|"IOC via API REST<br/>prevu, non actif"| TheHive
classDef planned stroke-dasharray: 4 4
class MISP,Cortex,TheHive planned
Traits pointillés : aucune de ces intégrations n'existe aujourd'hui, les trois VM étant nues. Schéma conservé pour référence de la topologie cible une fois l'installation manuelle réalisée.
Provisioning Terraform¶
Fichiers : main.tf, variables.tf, versions.tf, terraform.tfvars.example.
- VM unique (
vsphere_virtual_machine.misp), 2 vCPU / 4096 Mo RAM par défaut,vm_namepar défautINDSOC018, réseauseg-soc, réservation IP via NetBox. - Mêmes providers/conventions que les autres dépôts VM de l'infra
(
hashicorp/vsphere,e-breuninger/netbox).
Configuration Ansible¶
site.yml: rôlesdockerpuismisp.docker: installe Docker CE + plugin compose depuis le dépôt officieldownload.docker.com, configure le proxy sortant du démondockerd.misp: clone le dépôt officielmisp-docker(branchemaster, pas de tag de version disponible en amont), génère le fichier.envde la stack, ouvre le port 443 en firewalld, lancedocker compose up -d.- Secrets (mot de passe root MySQL, mot de passe applicatif MySQL,
passphrase admin) chiffrés ansible-vault, déchiffrement via
/root/.misp_vault_pass(référencé dansansible.cfg) — voir Gestion des secrets. - Sortie réseau (clone GitHub, pull Docker Hub) via le proxy Squid
10.100.10.4:3128— domaines déjà whitelistés (.github.com,.githubusercontent.com,.docker.io,.docker.com,.cloudflare.docker.com).
Procédure de déploiement¶
cd /root/misp/ansible
ansible-galaxy collection install -r requirements.yml
ansible-playbook --syntax-check site.yml
ansible-playbook site.yml -e @/root/.hap_secrets.yml
Actions manuelles obligatoires après déploiement (non automatisées) :
- Connexion initiale (
admin@infra.indio+ passphrase vault) puis changement immédiat du mot de passe. - Récupération de la clé API admin (Global Actions > My Profile > Auth Keys) pour les intégrations Cortex/TheHive.
- Remplacement du certificat auto-signé par un certificat interne si exposition au-delà d'un usage de test.
- Activation des flux de threat intelligence souhaités (Sync Actions > Feeds).
Points d'attention¶
Contexte : VM redéployée nue, installation manuelle prévue
Ce rôle Ansible a été débogué en profondeur puis la VM a été
entièrement redéployée nue (2026-07-14) à la demande explicite de
l'exploitant, qui prévoit une installation manuelle de MISP. Le code
reste conservé sur GitLab à titre de référence, mais n'est probablement
plus le mécanisme réellement utilisé pour (re)déployer ce composant
aujourd'hui — le README du projet le confirme lui-même : rôle écrit et
validé en --syntax-check uniquement, aucune connexion SSH, aucun
paquet installé, aucun conteneur démarré. Ne pas supposer que MISP est
opérationnel sur la base de ce seul code ; vérifier l'état réel de la
VM avant toute action.
- Le fichier
.envgénéré liste les variables connues au moment de l'écriture du rôle (réalignées le 2026-07-14 sur le vraitemplate.envdu dépôt officiel —BASE_URL/UUID/GPG_PASSPHRASE,CORE_TAG/MODULES_TAG/GUARD_TAGrequis même sans build local) ; le dépôt officiel évolue, à comparer avant tout rejeu. - Zone
seg-socsans sortie Internet directe : tout accès externe passe obligatoirement par le proxy Squid whitelisté.