Un framework OSINT (Open Source Intelligence) moderne et modulaire conçu pour l'orchestration intelligente via Claude Code et le Model Context Protocol (MCP).
Ce framework implémente une architecture microservices complète pour la collecte, l'analyse et la corrélation d'informations OSINT. Chaque module fonctionne dans son propre conteneur Docker, orchestré par Claude via MCP pour une intelligence adaptative.
- 🌐 Interface Web Moderne - Dashboard responsive avec monitoring temps réel
- 🤖 Orchestration Claude - Intégration native avec Claude Code via MCP
- 🐳 Architecture Docker - Modules isolés et scalables
- ⚡ Traitement asynchrone - Queues Redis pour la performance
- 🔐 Sécurité renforcée - XSS protection, CSP headers, authentification JWT
- 📊 Monitoring complet - Métriques Prometheus, logs structurés, alertes
- 🔄 Découverte dynamique - Registry automatique des modules
- 🛡️ Mode dégradé - Fonctionnement gracieux avec fallback mémoire
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Code │ │ API Gateway │ │ WebSocket Server│
│ (MCP) │◄──►│ (FastAPI) │◄──►│ (Temps réel) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ Infrastructure Redis │
│ Cache, Queues, Pub/Sub, Métriques │
└─────────────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Module DNS │ │ Module GitHub │ │ Module Shodan │
│ (Container) │ │ (Container) │ │ (Container) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
▼
┌─────────────────────┐
│ PostgreSQL │
│ (Métadonnées) │
└─────────────────────┘
- Docker & Docker Compose
- Python 3.11+
- Claude Desktop (pour l'intégration MCP)
- Clonage et configuration
git clone <repository>
cd osint-framework
cp .env.example .env
# Éditez .env avec vos configurations
- Démarrage complet
./scripts/start-framework.sh
- Interface Web
# Lancer l'interface web
cd frontend
python3 -m venv venv
source venv/bin/activate # Linux/Mac
pip install fastapi uvicorn aiohttp asyncpg redis pydantic python-multipart jinja2
python web_interface.py
- Vérification
curl http://localhost:8080/health
- Interface Web : http://localhost:8090 (Dashboard principal)
- API Gateway : http://localhost:8080 (API REST)
- MCP Server : http://localhost:8081 (Serveur de modules)
Ajoutez cette configuration à votre claude_desktop_config.json
:
{
"mcpServers": {
"osint-framework": {
"command": "python",
"args": ["-m", "modules.mcp.server"],
"cwd": "/path/to/osint-framework",
"env": {
"POSTGRES_HOST": "localhost",
"REDIS_HOST": "localhost",
"MCP_SERVER_PORT": "8081"
}
}
}
}
L'interface web offre une expérience utilisateur complète :
Pages disponibles :
- Dashboard - Monitoring système temps réel, métriques, graphiques
- Investigation - Lancer des analyses OSINT interactives
- Modules - Gérer et configurer les modules actifs
- Historique - Consulter toutes les investigations passées
- Documentation - Guide complet d'utilisation
Comptes de démonstration :
- Admin :
admin / osint2024
- Analyste :
analyst / analyst123
- Démo :
demo / demo
Une fois configuré, vous pouvez utiliser Claude pour orchestrer les investigations :
Analyse le domaine example.com avec tous les modules disponibles
Claude utilisera automatiquement le framework via MCP pour :
- Créer une nouvelle investigation
- Lancer les modules appropriés (DNS, WHOIS, GitHub, etc.)
- Collecter et corréler les résultats
- Présenter un rapport consolidé
# Lancer une investigation
curl -X POST http://localhost:8080/api/v1/investigations \
-H "Content-Type: application/json" \
-d '{
"name": "Investigation example.com",
"targets": [
{"value": "example.com", "type": "domain"}
]
}'
# Vérifier le statut
curl http://localhost:8080/api/v1/investigations/1/status
Module | Description | Cibles supportées | API requise |
---|---|---|---|
DNS | Analyse DNS complète | domain | Non |
WHOIS | Informations de domaine | domain, ip | Non |
GitHub | Reconnaissance GitHub | username, email | Oui |
Shodan | Scan d'infrastructure | ip, domain | Oui |
- Créer le répertoire
mkdir modules/osint/monmodule
- Dockerfile du module
FROM osint/base:latest
LABEL osint.module.display_name="Mon Module"
LABEL osint.module.target_types='["domain"]'
# ... configuration spécifique
- Enregistrement automatique Le Module Registry découvrira automatiquement le nouveau module au redémarrage.
# Gestion de l'infrastructure
make up # Démarrer tous les services
make down # Arrêter tous les services
make restart # Redémarrer
make status # Statut des services
make logs # Voir les logs
# Développement
make test # Lancer les tests
make lint # Vérifier le code
make format # Formater le code
# Nettoyage
make clean # Nettoyer les containers
make clean-all # Nettoyage complet (⚠️ supprime les données)
# Monitoring
make up-monitoring # Démarrer Prometheus/Grafana
make ports # Afficher les ports utilisés
make up-monitoring
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (admin/admin)
- Nombre d'investigations par statut
- Performance des modules OSINT
- Métriques de l'API Gateway
- Santé des queues Redis
Le framework utilise JWT pour l'authentification :
# Connexion (demo)
curl -X POST http://localhost:8080/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "demo", "password": "demo123"}'
- Docker Secrets pour les clés API
- HashiCorp Vault (optionnel)
- Chiffrement Fernet pour les données sensibles
- Réseau interne pour les communications inter-services
- Réseau externe pour l'accès public
- Pas d'exposition directe des modules
# Tests unitaires
pytest tests/unit/
# Tests d'intégration
pytest tests/integration/
# Tests end-to-end
pytest tests/e2e/
# Tests avec Docker
make test-docker
- Swagger UI: http://localhost:8080/docs
- ReDoc: http://localhost:8080/redoc
- Fork le projet
- Créer une branche (
git checkout -b feature/nouvelle-fonctionnalite
) - Commit (
git commit -am 'Ajout nouvelle fonctionnalité'
) - Push (
git push origin feature/nouvelle-fonctionnalite
) - Pull Request
- Black pour le formatage
- Ruff pour le linting
- MyPy pour le type checking
- Tests obligatoires pour les nouvelles fonctionnalités
Services non accessibles
make health # Vérifier la santé des services
make logs # Examiner les logs
Problèmes de base de données
make db-shell # Accès PostgreSQL
make db-migrate # Relancer les migrations
Problèmes Docker
docker system prune -f # Nettoyer Docker
make build # Reconstruire les images
Tous les logs sont en JSON structuré pour faciliter l'analyse :
make logs | jq '.level == "ERROR"' # Filtrer les erreurs
MIT License - voir le fichier LICENSE
pour plus de détails.
- Anthropic pour Claude Code et MCP
- FastAPI pour le framework web
- Docker pour la containerisation
- La communauté OSINT pour l'inspiration
🚀 Le framework est prêt pour l'orchestration intelligente via Claude Code !