
Modélisation du monde de la défense contre les cybermenaces
Système de modélisation mondiale de la défense contre les cybermenaces
Bandjacks est un système complet de renseignement sur les cybermenaces (CTI) qui :
| Guide | Description |
|---|---|
| Démarrage rapide | Lancez-vous en 5 minutes |
| Configuration complète | Configuration complète de l'environnement |
| Utilisation CLI | Guide de l'interface en ligne de commande |
| Référence API | Documentation de l'API REST |
| Analytiques de co-occurrence | Documentation des analytiques |
| Génération AttackFlow | Guide de génération de flux |
| Système de révision | Révision avec intervention humaine |
git clone https://github.com/yourusername/bandjacks.git cd bandjacks
uv sync
pip install -e .
cd ui && npm install && cd ..
### Configuration de l'environnement
**IMPORTANT :** Vous devez configurer les variables d'environnement avant de démarrer l'application. L'application nécessite que `NEO4J_PASSWORD` soit défini.
Créez un fichier `.env` à la racine du projet :```bash
# Copy the sample file
cp infra/env.sample .env
# Edit .env and set your actual passwords
nano .env
Configuration requise dans .env :```bash
NEO4J_URI=bolt://localhost:7687 NEO4J_USER=neo4j NEO4J_PASSWORD=your-actual-neo4j-password # MUST BE SET - no default provided
OPENSEARCH_URL=http://localhost:9200 OPENSEARCH_USER=admin OPENSEARCH_PASSWORD=your-opensearch-password # Optional if security is disabled
LOCAL_LLM_API_BASE=http://192.168.1.100:8080/v1 # Base URL of your local server LOCAL_LLM_MODEL=mistral-nemo # Model name as the server reports it LOCAL_LLM_API_KEY=no-key # Most local servers accept any value
PRIMARY_LLM=gemini GOOGLE_API_KEY=your-gemini-api-key
OPENAI_API_KEY=your-openai-api-key
ATTACK_INDEX_URL=https://raw.githubusercontent.com/mitre-attack/attack-stix-data/master/index.json ATTACK_COLLECTION=enterprise-attack ATTACK_VERSION=latest
REDIS_URL=redis://localhost:6379
**Note:** L'application ne démarrera pas si `NEO4J_PASSWORD` n'est pas défini. Consultez [Environment Variables Fix](https://github.com/blevene/bandjacks/blob/main/ENV_VARIABLES_FIX.md) pour plus de détails.
### Démarrage des services```bash
# Start the FastAPI backend server
uv run uvicorn bandjacks.services.api.main:app --reload --port 8000
# In another terminal, start the Next.js frontend
cd ui && npm run dev
# Access the applications
open http://localhost:8000/docs # API documentation
open http://localhost:3000 # Frontend UI
Bandjacks comprend une CLI complète pour les opérations de renseignement sur les menaces :```bash
uv run python -m bandjacks.cli.main --help
> **Note :** La CLI nécessite que les variables d'environnement soient définies (NEO4J_PASSWORD, etc.). Exécutez depuis la racine du projet où se trouve `.env`.
### Commandes de requête```bash
# Search for threat intelligence
uv run python -m bandjacks.cli.main query search "ransomware encryption techniques" --top-k 10
# Explore graph relationships
uv run python -m bandjacks.cli.main query graph "attack-pattern--abc123" --depth 2
uv run python -m bandjacks.cli.main review queue --status pending --limit 20
uv run python -m bandjacks.cli.main review approve "candidate-123" --reviewer analyst-1
uv run python -m bandjacks.cli.main review reject "candidate-456" --reviewer analyst-1 --reason "False positive"
### Extraction de documents```bash
# Extract CTI from a document
uv run python -m bandjacks.cli.main extract document ./report.pdf --confidence-threshold 80 --show-evidence
Note : Les commandes d'analyse nécessitent des données
AttackEpisodedans Neo4j pour renvoyer des résultats.```bash
uv run python -m bandjacks.cli.main analytics top-cooccurrence --limit 25 --min-episode-size 2
uv run python -m bandjacks.cli.main analytics conditional "attack-pattern--abc123" --limit 25
uv run python -m bandjacks.cli.main analytics actor "intrusion-set--xyz789" --metric npmi
uv run python -m bandjacks.cli.main analytics bundles --min-support 3 --min-size 3 --max-size 5 --format json --output bundles.json
uv run python -m bandjacks.cli.main analytics global --min-support 2 --limit 50 --format csv --output pairs.csv
### Commandes de workflow```bash
# Process a directory of reports with analytics
uv run python -m bandjacks.cli.main workflow process-reports ./reports/ --workers 3 --analyze --export-dir ./results/
# Bulk export all analytics data
uv run python -m bandjacks.cli.main workflow bulk-export --export-dir ./analytics_export/
uv run python -m bandjacks.cli.main admin health
uv run python -m bandjacks.cli.main admin cache-stats
uv run python -m bandjacks.cli.main admin cache-clear --pattern "search:*"