Shuffle SOAR Platform
Plateforme open source d'orchestration et d'automatisation des opérations de sécurité
Qu'est-ce que Shuffle ?
Shuffle est une plateforme SOAR (Security Orchestration, Automation and Response) open source conçue pour automatiser et orchestrer les workflows de cybersécurité. Elle permet aux équipes SOC de créer des playbooks automatisés sans nécessiter de compétences en programmation avancées.
Grâce à son interface visuelle drag-and-drop, Shuffle simplifie la création de workflows complexes intégrant des dizaines d'outils de sécurité. La plateforme excelle dans l'enrichissement automatique des IOCs, la réponse aux incidents et l'analyse de malware.
Points clés
- 100% Open Source - Code accessible, communauté active, pas de coûts cachés
- 300+ Intégrations - Compatible avec tous les outils CTI majeurs
- No-Code - Interface visuelle intuitive, accessible à tous
- Scalable - Architecture distribuée pour grandes infrastructures
Fonctionnalités principales
Découvrez les capacités avancées qui font de Shuffle la référence en matière d'automatisation SOAR
Orchestration SOAR
Créez des workflows d'automatisation complexes sans programmation avec une interface drag-and-drop intuitive
- Visual workflow builder
- Drag & drop interface
- Conditional logic
- Loop & iteration support
Intégrations natives
Plus de 300 intégrations prêtes à l'emploi avec les principaux outils de cybersécurité
- VirusTotal, MISP, TheHive
- Cortex, Splunk, ELK
- Slack, Teams, Email
- Custom REST APIs
Open Source
Solution 100% open source, gratuite et auto-hébergée avec communauté active
- MIT License
- Self-hosted
- Active community
- Regular updates
Scalabilité
Architecture distribuée capable de gérer des milliers d'exécutions parallèles
- Distributed execution
- Load balancing
- Queue management
- High availability
Analyse temps réel
Monitoring en direct des workflows avec logs détaillés et métriques de performance
- Real-time execution
- Detailed logs
- Performance metrics
- Error tracking
Sécurité avancée
Gestion sécurisée des credentials, RBAC et audit complet des actions
- Encrypted secrets
- RBAC support
- Audit logging
- API authentication
Installation et configuration
Déployez Shuffle en quelques minutes avec Docker
Prérequis système
Installation rapide avec Docker
Cloner le dépôt
git clone https://github.com/Shuffle/Shuffle cd Shuffle
Configurer l'environnement
# Copier le fichier d'environnement cp .env.example .env # Générer une clé secrète export SHUFFLE_APP_HOTLOAD_SECRET=$(openssl rand -hex 32)
Lancer Shuffle
docker-compose up -d # Vérifier les logs docker-compose logs -f
Accéder à l'interface
Ouvrez votre navigateur et accédez à :
Compte par défaut : admin@shuffler.io / Password123
Configuration recommandée
- Changez immédiatement le mot de passe par défaut
- Configurez HTTPS avec un reverse proxy (Nginx, Traefik)
- Activez la persistance des données avec des volumes Docker
- Configurez des backups réguliers de la base de données
Cas d'usage CTI
Exemples pratiques d'automatisation pour vos opérations de Cyber Threat Intelligence
Enrichissement IOCs
Automatisez l'enrichissement des indicateurs de compromission
Réception automatique d'alertes (SIEM, EDR)
Extraction des IOCs (IPs, hashes, domaines)
Enrichissement multi-sources (VT, MISP, AbuseIPDB)
Corrélation avec threat intelligence
Scoring et priorisation automatique
Création de ticket TheHive enrichi
Notification équipe avec contexte complet
Réponse aux incidents
Orchestrez la réponse automatisée aux incidents de sécurité
Détection d'incident critique
Création automatique de case
Collecte des artefacts et logs
Isolation automatique si nécessaire
Analyse forensique préliminaire
Notification escalade selon criticité
Documentation timeline complète
Analyse malware
Pipeline complet d'analyse de fichiers suspects
Upload fichier suspect (email, API)
Calcul hash et recherche VirusTotal
Détonation en sandbox (Cuckoo, Any.run)
Extraction IOCs et comportements
Génération signature YARA
Partage IOCs vers MISP
Rapport d'analyse détaillé
Intégrations disponibles
Plus de 300 applications intégrées nativement
Threat Intelligence
Case Management
Communication
Analysis & Sandbox
Exemple de workflow JSON
Structure d'un workflow d'enrichissement d'IOCs
{
"name": "IOC Enrichment Workflow",
"description": "Automated IOC enrichment with multi-source intelligence",
"start": "webhook",
"triggers": [
{
"name": "Webhook Trigger",
"app": "webhook",
"function": "webhook_trigger",
"parameters": {
"url": "/api/v1/hooks/ioc-enrichment"
}
}
],
"actions": [
{
"name": "Parse IOC",
"app": "shuffle_tools",
"function": "parse_ioc",
"input": "$exec.webhook_trigger.body"
},
{
"name": "VirusTotal Lookup",
"app": "virustotal",
"function": "get_report",
"input": "$exec.parse_ioc.ioc_value",
"authentication": "virustotal_api_key"
},
{
"name": "MISP Search",
"app": "misp",
"function": "search_attributes",
"input": {
"value": "$exec.parse_ioc.ioc_value",
"type": "$exec.parse_ioc.ioc_type"
}
},
{
"name": "AbuseIPDB Check",
"app": "abuseipdb",
"function": "check_ip",
"input": "$exec.parse_ioc.ioc_value",
"conditions": [
{
"field": "$exec.parse_ioc.ioc_type",
"operator": "equals",
"value": "ip"
}
]
},
{
"name": "Aggregate Results",
"app": "shuffle_tools",
"function": "merge_reports",
"input": [
"$exec.virustotal_lookup.result",
"$exec.misp_search.attributes",
"$exec.abuseipdb_check.data"
]
},
{
"name": "Calculate Threat Score",
"app": "shuffle_tools",
"function": "calculate_score",
"input": "$exec.aggregate_results.merged_data"
},
{
"name": "Create TheHive Alert",
"app": "thehive",
"function": "create_alert",
"input": {
"title": "IOC Enrichment: $exec.parse_ioc.ioc_value",
"description": "$exec.aggregate_results.summary",
"severity": "$exec.calculate_score.severity",
"tags": ["shuffle", "automated", "ioc-enrichment"],
"artifacts": "$exec.aggregate_results.artifacts"
}
},
{
"name": "Notify Team",
"app": "slack",
"function": "send_message",
"input": {
"channel": "#threat-intel",
"text": "🚨 New IOC Alert",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*IOC:* `$exec.parse_ioc.ioc_value`\n*Score:* $exec.calculate_score.score/100"
}
}
]
}
}
],
"branches": [
{
"name": "High Severity Branch",
"condition": "$exec.calculate_score.score > 75",
"actions": ["create_thehive_alert", "notify_team"]
},
{
"name": "Low Severity Branch",
"condition": "$exec.calculate_score.score <= 75",
"actions": ["log_to_database"]
}
]
}Bonnes pratiques
Recommandations pour optimiser vos workflows Shuffle
À Faire
- Tester en développementValidez vos workflows dans un environnement de test avant la prod
- Versionner vos workflowsExportez et versionnez avec Git pour tracer les modifications
- Documenter les actionsAjoutez des descriptions claires pour chaque étape du workflow
- Gestion d'erreurs robusteImplémentez des fallbacks et retry pour chaque action critique
- Monitorer les performancesSuivez les métriques d'exécution et temps de réponse
- Sécuriser les credentialsUtilisez le gestionnaire de secrets intégré, jamais en dur
À Éviter
- Workflows monolithiquesÉvitez les workflows trop complexes, privilégiez la modularité
- Credentials en clairNe stockez jamais de clés API directement dans les workflows
- Absence de timeoutsDéfinissez toujours des timeouts pour éviter les blocages
- Logs insuffisantsSans logs détaillés, le debugging devient impossible
- Déploiement sans testNe déployez jamais directement en production
- Ignorer les limites APIRespectez les rate limits pour éviter les blocages
Ressources et documentation
Liens utiles pour approfondir vos connaissances
Documentation officielle
Guide complet, tutoriels et exemples de workflows sur shuffler.io
Dépôt GitHub
Code source, issues, contributions et community workflows
Discord Community
Rejoignez la communauté pour poser vos questions et partager vos workflows
API Documentation
Documentation complète de l'API REST pour intégrations personnalisées
Prêt à automatiser vos workflows ?
Explorez nos cas pratiques CTI et mettez en application vos connaissances avec des exercices concrets