
Une application simple qui extrait vos IoCs à partir d’entrées indésirables et vérifie leur réputation en utilisant plusieurs services CTI.

Une application simple qui extrait vos IoCs à partir d'entrées non structurées et vérifie leur réputation via plusieurs services.
🌐 demo.cyberbro.net
Inspiré de Cybergordon et IntelOwl.
Ce projet vise à fournir un moyen simple et efficace de vérifier la réputation de vos observables via plusieurs services, sans avoir à déployer une solution complexe. Consultez la documentation sur https://docs.cyberbro.net/
[!TIP] Pour créer des rapports personnalisés, utilisez Cyberbro avec votre LLM préféré (Claude, OpenAI gpt-5...) via MCP (Model Context Protocol)
Consultez Cyberbro MCP pour plus d'informations.

[!TIP] Si vous êtes paresseux, vous avez besoin de Docker.
Faites ungit clone; copiez.env.samplevers.env;docker compose uppuis allez surlocalhost:5000. Oui, c'est tout !
git clone https://github.com/stanfrbd/cyberbro
cd cyberbro
cp .env.sample .env
[!NOTE] Vous n'avez pas de clés API ? Pas de problème, copiez simplement
.env.samplevers.envet laissez les valeurs optionnelles vides. Soyez prudent si un proxy est utilisé.
Vous pourrez utiliser tous les moteurs gratuits !
.env.[!WARNING]
.envcontient des secrets sensibles et ne doit jamais être commité. Pour les déploiements en production/équipe, utilisez SOPS, Vault, ou un gestionnaire de secrets équivalent.
ABUSEIPDB=token_here
ALIENVAULT=token_here
CRIMINALIP_API_KEY=token_here
CROWDSTRIKE_CLIENT_ID=client_id_here
CROWDSTRIKE_CLIENT_SECRET=client_secret_here
DFIR_IRIS_API_KEY=token_here
DFIR_IRIS_URL=https://dfir-iris.local
GOOGLE_CSE_CX=cx_here
GOOGLE_CSE_KEY=key_here
GOOGLE_SAFE_BROWSING=token_here
HISTER_TOKEN=token_here
HISTER_BASE_URL=https://hister.example.com
IPAPI=token_here
IPINFO=token_here
MDE_CLIENT_ID=client_id_here
MDE_CLIENT_SECRET=client_secret_here
MDE_TENANT_ID=tenant_here
MISP_API_KEY=token_here
MISP_URL=https://misp.local
MISP_FEEDBACK_SERVER_URL=https://misp-feedback.local
MISP_FEEDBACK_TOKEN=token_here
OPENCTI_API_KEY=token_here
OPENCTI_URL=https://demo.opencti.io
PROXY_URL=
RANSOMWARE_LIVE_API_KEY=token_here
RL_ANALYZE_API_KEY=token_here
RL_ANALYZE_URL=https://spectra_analyse_url_here
ROSTI_API_KEY=token_here
SHODAN=token_here
SPUR_US=token_here
THREATFOX=token_here
VIRUSTOTAL=token_here
WEBSCOUT=token_here
[!IMPORTANT] À partir de la version
v0.13.0, Cyberbro ne supporte plussecrets.jsonet la page/config. Cf. discussion 165.
Si vous avez déjà unsecrets.jsonexistant, convertissez-le en.envavec :python3 scripts/secrets_json_to_env.py
Voir les Options avancées pour le déploiement dans la documentation.
[!WARNING] Assurez-vous d'installer le plugin
composeen tant quedocker composeet nondocker-compose. Dans Docker, l'application se lie à0.0.0.0dans le conteneur même si votre.envlocal définitFLASK_HOST=127.0.0.1.
docker compose up # utilisez -d pour lancer en arrière-plan et --build pour reconstruire l'image
N'oubliez pas de modifier
.envavant de construire l'image.
Voir les Options avancées pour le déploiement dans la documentation pour toutes les options de déploiement Docker.
Vous pouvez créer un venv avant d'installer les dépendances.
pip install -r requirements.txt
gunicorn (mode propre).gunicorn -c prod/gunicorn.conf.py app:app
python3 app.py
[!CAUTION] Si vous avez l'intention d'utiliser ceci dans un environnement de production, utilisez un Reverse Proxy et WAF bien configurés pour éviter les problèmes de sécurité.
/api/ et est accessible via l'interface graphique ou la ligne de commande.Il y a actuellement 3 endpoints :
/api/analyze – Analyser un texte et retourner un ID d'analyse (JSON)./api/is_analysis_complete/<analysis_id> – Vérifier si l'analyse est terminée (JSON)./api/results/<analysis_id> – Récupérer les résultats d'une analyse précédente (JSON).curl -X POST "http://localhost:5000/api/analyze" -H "Content-Type: application/json" -d '{"text": "cyberbro.net", "engines": ["reverse_dns", "rdap_whois"]}'
{
"analysis_id": "e88de647-b153-4904-91e5-8f5c79174854",
"link": "/results/e88de647-b153-4904-91e5-8f5c79174854"
}
curl "http://localhost:5000/api/is_analysis_complete/e88de647-b153-4904-91e5-8f5c79174854"
{
"complete": true
}
curl "http://localhost:5000/api/results/e88de647-b153-4904-91e5-8f5c79174854"
[
{
"observable": "cyberbro.net",
"rdap_whois": {
"abuse_contact": "[email protected]",
"creation_date": "2024-12-20",
"data_source": "rdap",
"emails": [
"[email protected]"
],
"expiration_date": "2026-12-20",
"link": "https://rdap.verisign.com/net/v1/domain/CYBERBRO.NET",
"name_servers": [
"anderson.ns.cloudflare.com",
"lisa.ns.cloudflare.com"
],
"organization": null,
"registrant": null,
"registrant_country": null,
"registrant_email": null,
"registrar": "Cloudflare, Inc.",
"update_date": "2025-11-20"
},
"reverse_dns": {
"reverse_dns": [
"172.67.197.226",
"104.21.42.7"
]
},
"reversed_success": true,
"type": "FQDN"
}
]
[!NOTE] La page de documentation dédiée donne tous les noms des moteurs utilisables.
[!NOTE] Des questions ? Consultez https://docs.cyberbro.net ou ouvrez un problème
Pour la configuration avancée (réglage desupervisord.confavant déploiement, sélection des moteurs visibles, changement du préfixe/api/...), consultez la page de documentation dédiée.
Un immense merci à tous les merveilleux contributeurs qui ont soumis des pull requests et contribué à améliorer ce projet :
Vos contributions sont grandement appréciées !
Licence MIT
Copyright (c) 2024-2026 stanfrbd
L'autorisation est par la présente accordée, gratuitement, à toute personne obtenant une copie
de ce logiciel et des fichiers de documentation associés (le « Logiciel »), de traiter
le Logiciel sans restriction, y compris, sans s'y limiter, les droits d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre des copies du Logiciel, et de permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de copyright ci-dessus et cette autorisation doivent être inclus dans toutes les copies ou parties substantielles du Logiciel.
LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU DÉTENTEURS DE DROITS D'AUTEUR NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION EN RESPONSABILITÉ CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE OU EN LIEN AVEC LE LOGICIEL OU SON UTILISATION OU D'AUTRES INTERACTIONS AVEC LE LOGICIEL.
Le logo utilisé dans ce projet est libre pour un usage personnel et commercial et peut être trouvé ici.