Retour aux mises à jour
New releaseSep 7, 2026

xalgorix v4.6.72

Agents de pentest IA autonomes — reconnaissance en temps réel, détection de vulnérabilités et orchestration de l'exploitation. Go + TypeScript.

Partager
Xalgorix — Plateforme de tests d'intrusion autonome basée sur l'IA

Go License Platform Hosted GitHub stars GitHub forks GitHub release

Ask DeepWiki

xalgorix/xalgorix | Trendshift

Xalgorix — Pentester IA open source qui prouve les vulnérabilités

La plupart des scanners détectent. Xalgorix prouve. Un agent LLM autonome applique une méthodologie de pentest complète, puis un vérificateur indépendant ré-exploite chaque découverte avant qu'elle ne soit signalée — vous obtenez ainsi une preuve, et non une pile de « peut-être » à trier. Auto-hébergé, privé, et avec votre propre LLM. Conçu en Go + TypeScript.

🚀 Démarrage rapide · 💡 Pourquoi Xalgorix · ✨ Fonctionnalités · 🎯 Cas d'usage · ☁️ Cloud hébergé · 📖 Documentation


📸 Captures d'écran

🖥️ Tableau de bord auto-hébergé — s'exécute localement sur 127.0.0.1:9137

Tableau de bord d'aperçuDétail du scanDécouvertes
Xalgorix overview dashboardXalgorix scan detailXalgorix findings

☁️ Tableau de bord cloud hébergé — la version entièrement gérée sur www.xalgorix.com

Tableau de bord cloud hébergé Xalgorix montrant le score de sécurité, les tendances des vulnérabilités, les métriques de remédiation et les problèmes ouverts par catégorie

🚀 Démarrage rapide

Installation (une seule ligne) :```bash curl -sSL https://www.xalgorix.com/install | bash

Ceci télécharge le binaire précompilé pour votre plateforme (Linux ou macOS, amd64/arm64) depuis la dernière version. Ensuite, exécutez l'assistant de configuration interactif :```bash
xalgorix --setup

Choisissez votre fournisseur, confirmez un modèle, puis saisissez la clé API lorsque vous y êtes invité. Pour de meilleurs résultats, utilisez un modèle frontal actuel doté d'un raisonnement solide, de bonnes performances sur les contextes longs et d'un appel d'outils fiable—comme le dernier GPT, Claude ou Gemini capable disponible pour vous. Les modèles plus petits ou locaux restent pris en charge, mais peuvent nécessiter davantage de supervision lors de scans autonomes prolongés. Xalgorix stocke la clé en privé dans ~/.xalgorix.env (mode 0600) et peut lancer le tableau de bord pour vous. Ollama local ne nécessite aucune clé API.

Si vous choisissez de ne pas lancer immédiatement, démarrez plus tard avec xalgorix --web et ouvrez http://127.0.0.1:9137. Vous pouvez changer de fournisseur ou modifier les options avancées à tout moment sous Paramètres → LLM, ou relancer xalgorix --setup.

Ou exécutez avec Docker — batteries incluses, aucune chaîne d'outils requise :```bash docker run --rm -p 9137:9137
--privileged
-v xalgorix-data:/data
xalgord/xalgorix:latest

`--privileged` donne à la boîte à outils le même accès de type hôte qu'elle a lorsqu'elle est exécutée nativement en tant que root. Le sandbox par défaut de Docker supprime les capacités (comme `NET_ADMIN`) et applique un filtre seccomp, ce qui casse les outils de bas niveau (iptables/changements de route, ARP-spoof/MITM, VPN tun/tap, débogueurs basés sur ptrace, réglage d'interface masscan). Comme une image ne peut pas s'accorder ces privilèges elle-même, ils doivent être définis au moment de l'exécution. Le conteneur est un sandbox d'analyse jetable et isolé du réseau fonctionnant en root — privilégié est la posture prévue ; n'exposez jamais le tableau de bord publiquement sans authentification. Vous préférez le moindre privilège ? Remplacez `--privileged` par `--cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined`.

Ouvrez `http://localhost:9137`. Vous **n'avez pas besoin d'une clé LLM pour démarrer** — le tableau de bord se lance sans elle ; définissez le modèle + la clé API sous **Settings → LLM** (elle persiste dans le volume `/data`). Si vous ne passez pas `XALGORIX_USERNAME`/`XALGORIX_PASSWORD`, un mot de passe administrateur aléatoire est généré et imprimé dans les journaux du conteneur au premier démarrage.

**Le plus simple — Docker Compose** (mappe le port + un volume persistant pour vous) :```bash
curl -sSLO https://raw.githubusercontent.com/xalgorix/xalgorix/main/docker-compose.yml
docker compose up -d
docker compose logs -f   # shows the generated admin password on first start

L'image embarque une suite offensive de sécurité préinstallée et complète (nmap, nuclei, httpx, subfinder, katana, ffuf, gobuster, sqlmap, masscan, dalfox, feroxbuster, et plus encore) et conserve tous les gestionnaires de paquets (apt, go, cargo, pipx, npm) disponibles afin que l'agent puisse toujours auto-installer tout élément manquant à l'exécution. Elle s'exécute en tant que root à l'intérieur du conteneur par conception — traitez le conteneur comme un bac à sable d'analyse jetable et isolé du réseau et n'exposez jamais le tableau de bord sans authentification. Les images sont publiées pour amd64 et arm64.

Ou compilez à partir des sources (nécessite Go 1.26+ et Node.js) :```bash git clone https://github.com/xalgorix/xalgorix.git cd xalgorix make build sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix

> [!TIP]
> Vous préférez une configuration zéro ? Une version entièrement gérée est disponible sur [www.xalgorix.com](https://www.xalgorix.com/) — scan en un clic, sans installation ni clés API requises.

### 🤖 Examinez automatiquement les pull requests — application GitHub gratuite

Vous voulez une revue de sécurité sur chaque pull request sans configuration ? Installez l'**[application GitHub Xalgorix](https://github.com/apps/xalgorix)**. Elle lit le diff de chaque PR et commente une revue de sécurité — injections, auth/IDOR cassés, SSRF, secrets, schémas non sûrs — directement sur la pull request. Mise à jour sur place à chaque nouveau commit, et vous pouvez commenter **`@xalgorix review`** pour relancer à la demande. Aucun fichier de workflow, aucune clé API, aucun compte — et c'est gratuit.

<div align="center">

[**➕ Ajouter Xalgorix à GitHub →**](https://github.com/apps/xalgorix/installations/new)

</div>

Pour le contrôle des fusions et les pentests complets vérifiés par exploitation en CI, utilisez le [scanner hébergé](https://www.xalgorix.com/) ou l'action GitHub.

> [!IMPORTANT]
> Utilisez Xalgorix uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de test.

> [!TIP]
> Vous préférez ne pas auto-héberger ? Une version entièrement gérée est disponible sur [www.xalgorix.com](https://www.xalgorix.com/) — scan en un clic, sans installation ni clés API requises.

## 📚 Sommaire

| | | |
| --- | --- | --- |
| 📸 [Captures d'écran](#-captures-décran) | 🔩 [Configuration](#-configuration) | 🧾 [Variables d'environnement](#-variables-denvironnement) |
| 🚀 [Démarrage rapide](#-démarrage-rapide) | 🆙 [Mise à niveau](#-mise-à-niveau-depuis-les-versions-précédentes) | 🔤 [Préfixes de fournisseurs](#-préfixes-de-fournisseurs) |
| 🔎 [Vue d'ensemble](#-vue-densemble) | 🏃 [Exécution](#-exécution) | 💻 [Référence CLI](#-référence-cli) |
| 💡 [Pourquoi Xalgorix](#-pourquoi-xalgorix) | 🧰 [Mode service](#-mode-service) | 📡 [Résumé de l'API](#-résumé-de-lapi) |
| 🎯 [Cas d'utilisation](#-cas-dutilisation) | 🔁 [Flux de travail de l'interface Web](#-flux-de-travail-de-linterface-web) | 💾 [Stockage des données](#-stockage-des-données) |
| ✨ [Fonctionnalités](#-fonctionnalités) | 🔀 [Modes de scan](#-modes-de-scan) | 🧪 [Développement](#-développement) |
| 📥 [Installation](#-installation) | 📂 [Analysez votre code](#-analysez-votre-code-aucune-cible-requise) | 🚨 [Notes de sécurité](#-notes-de-sécurité) |
| 🧭 [Méthodologie](#-méthodologie) | 📄 [Rapports](#-rapports) | 📜 [Licence](#-licence) |
| 🔧 [Paramètres](#-paramètres) | 🔗 [Liens](#-liens) | |

## 🔎 Vue d'ensemble

Xalgorix est une plateforme d'IA de tests d'intrusion auto-hébergée pour les tests de sécurité autorisés, l'évaluation des vulnérabilités et les flux de chasse aux bugs. Elle combine un agent autonome piloté par LLM, l'automatisation de navigateur, des outils de terminal, une méthodologie de test complète en 22 phases, la télémétrie WebSocket en direct, la gestion des constats avec notation CVSS, la génération de rapports PDF personnalisés, ainsi que des intégrations pour AgentMail, Discord et Telegram.

Contrairement aux scanners DAST exclusivement cloud, Xalgorix s'exécute entièrement sur votre machine. Vous apportez votre propre fournisseur LLM (OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama, MiniMax) et contrôlez le modèle, l'effort de raisonnement, les limites de débit et la configuration du proxy. Aucune donnée de scan, clé API ou information sur la cible ne quitte votre infrastructure.

L'expérience par défaut est l'interface Web. Depuis un tableau de bord local unique, vous pouvez lancer des scans, surveiller les exécutions actives, inspecter les constats, configurer les paramètres du modèle/fournisseur, gérer les variables d'environnement, générer des rapports PDF personnalisés et supprimer ou reprendre les scans historiques.

## 💡 Pourquoi Xalgorix

La plupart des scanners **détectent**. Xalgorix **prouve**. Un agent autonome travaille selon une méthodologie en 22 phases, puis un vérificateur indépendant re-teste chaque constat candidat avant qu'il ne soit signalé — vous obtenez ainsi des résultats vérifiés par exploitation avec preuves, et non un mur de « peut-être » à trier.

- 🧠 **Un agent IA, pas un moteur de modèles** — raisonne sur les flux d'authentification, la logique métier, les IDOR/BOLA et les exploits en chaîne que les scanners à signatures manquent.
- ✅ **Constats vérifiés par exploitation** — un vérificateur distinct reproduit indépendamment chaque constat ; les cas non concluants sont signalés pour examen, jamais présentés comme confirmés.
- 🔒 **Auto-hébergé et privé** — s'exécute sur votre machine avec votre propre clé LLM ; aucune donnée cible, clé ou constat ne quitte votre infrastructure.
- 🧩 **Apportez votre propre LLM** — OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama ou MiniMax — ou toute passerelle compatible OpenAI comme [LiteLLM](#-litellm--passerelles-compatibles-openai-github-copilot-claude-opus-codex-openrouter-azure-modèles-locaux) (GitHub Copilot, Codex, OpenRouter, Azure). Vous contrôlez le modèle, l'effort de raisonnement et le coût.
- 📄 **Rapports prêts pour l'audit** — PDF personnalisés avec scores CVSS, preuve de concept et remédiation.

### 📊 Comparaison

|                                              | **Xalgorix**             | Scanners à modèles (ex. Nuclei) | Scanners par exploration (ex. OWASP ZAP) | DAST commerciaux      |
| -------------------------------------------- | ------------------------ | ------------------------------- | ---------------------------------------- | --------------------- |
| Approche                                     | Agent IA autonome        | Signatures / modèles            | Spider + règles actives                  | Signatures + heuristiques |
| Couverture logique métier / IDOR / contournement d'auth | ✅                       | Limitée                         | Limitée                                  | Partielle             |
| Vérifié par exploitation (prouve l'impact)   | ✅ vérificateur indépendant | ❌                              | ❌                                       | Partielle             |
| Charge de faux positifs                      | Faible (prouvé)          | Dépendante du modèle            | Élevée                                    | Moyenne               |
| Auto-hébergé / données locales               | ✅                       | ✅                              | ✅                                       | Généralement cloud    |
| Apportez votre propre LLM                    | ✅                       | —                               | —                                        | ❌                     |
| Rapports PDF personnalisés                   | ✅                       | ❌                              | Basique                                  | ✅                     |
| Coût                                         | Open source + votre LLM  | Gratuit                         | Gratuit                                  | $$$                   |

> Comparaison indicative — Nuclei et ZAP sont excellents dans ce qu'ils font. Xalgorix ajoute par-dessus la couche de découverte à raisonnement intensif et de vérification par exploitation.

### ☁️ Auto-hébergé vs cloud hébergé

Xalgorix est gratuit et open source — auto-hébergez-le pour toujours, sans aucune condition. Le [cloud hébergé](https://www.xalgorix.com/) exécute le **même** moteur vérifié par exploitation ; il existe pour ceux qui préfèrent ne pas gérer les clés API, l'infrastructure et les factures LLM imprévisibles. Les deux sont de première classe — choisissez ce qui vous convient.

|                                    | **Auto-hébergé** (ce dépôt)              | **[Cloud hébergé](https://www.xalgorix.com/)**   |
| ---------------------------------- | ---------------------------------------- | ------------------------------------------------ |
| Prix de départ                     | Gratuit, Apache-2.0                      | Niveau gratuit · un scan complet à partir de 1 $ |
| Clé API LLM                        | Apportez et gérez la vôtre               | Incluse — rien à gérer                           |
| Coût par scan                      | Jetons LLM bruts — variables, peuvent grimper | 1 crédit par hôte en direct — prévisible          |
| Configuration et exploitation      | Vous installez, mettez à jour et exécutez la chaîne d'outils | Rien à exécuter — scan en ~60 s                  |
| Infrastructure hors bande (SSRF/RCE aveugle) | Montez votre propre serveur OOB        | OOB géré inclus                                  |
| Planification · équipe · RBAC      | À faire vous-même                        | Intégré                                          |
| Mises à jour                       | `git pull` + reconstruction              | Toujours sur le moteur le plus récent            |
| Résidence des données / hors ligne | ✅ reste sur votre infra · air-gap OK     | S'exécute sur notre infra (DPA disponible)       |

**Auto-hébergez si** les données doivent rester sur votre réseau, vous voulez un contrôle total, ou vous fonctionnerez hors ligne/air-gapped — c'est exactement à cela que cela sert. **Utilisez le cloud si** vous préférez éviter les clés API, l'infrastructure et les factures de jetons surprises, et payer uniquement pour les hôtes en direct que vous scannez réellement.

<div align="center">

[**☁️ Essayez le cloud hébergé — gratuit →**](https://www.xalgorix.com/) &nbsp;·&nbsp; [**⚖️ Comparez le coût réel (calculatrice) →**](https://www.xalgorix.com/hosted-vs-self-hosted)

</div>

Si Xalgorix vous fait gagner un cycle de triage, merci de **[⭐ mettre une étoile au dépôt](https://github.com/xalgorix/xalgorix)** — cela aide réellement d'autres personnes à le trouver.

## 🎯 Cas d'utilisation

| Cas d'utilisation | Comment Xalgorix aide |
| -------- | ------------------ |
| **Tests d'intrusion** | Exécute une méthodologie complète en 22 phases contre des cibles autorisées. L'agent IA gère la reconnaissance, la découverte de vulnérabilités, les tests d'injection, le SSRF, l'IDOR, le contournement d'authentification, les conditions de course, et plus encore — puis vérifie les constats avant de les signaler. |
| **Chasse aux bugs** | Pointez Xalgorix sur une cible dans le périmètre et laissez l'agent énumérer la surface d'attaque, tester les classes de vulnérabilités courantes et remonter des constats vérifiés avec scores CVSS et preuves de concept. |
| **Opérations d'équipe rouge** | Utilisez les modes de scan par joker et multi-cibles pour cartographier la surface d'attaque externe d'une organisation. Le DAST assisté par navigateur gère les flux d'authentification, les formulaires et le comportement d'exécution que les scanners statiques manquent. |
| **Recherche en sécurité** | La phase de découverte de vulnérabilités nouvelles pousse l'agent au-delà de la correspondance de modèles connus. Apportez votre propre LLM (OpenAI, Anthropic, DeepSeek, Gemini, Ollama, MiniMax) pour contrôler la profondeur de raisonnement et le coût. |
| **Tests de sécurité continus** | Exécutez comme service système avec `xalgorix --start`. Planifiez des scans, diffusez les constats vers Discord ou Telegram et générez des rapports PDF personnalisés pour les parties prenantes. |
| **Automatisation DAST** | Tests pilotés par navigateur pour les applications web — flux d'authentification, formulaires, contenu rendu en JavaScript et comportement d'exécution. Intégration avec Caido pour l'inspection du trafic proxy. |

## ✨ Fonctionnalités

| Domaine           | Capacités                                                                                                                |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| 📊 Tableau de bord      | Interface Web locale sur `127.0.0.1:9137` par défaut, gestion des scans, statut en direct, actions de scan groupées et récupération des scans historiques. |
| 🔍 Analyse       | Flux à cible unique, DAST, joker et multi-cibles avec phases de méthodologie sélectionnables.                                   |
| 📡 Télémétrie en direct | Appels d'outils, messages de l'agent, constats, erreurs, activité HTTP et activité LLM via WebSockets.                              |
| 🐞 Constats       | Pages de détail des scans, filtres de sévérité, détails CVSS, index des constats et flux de travail des constats vérifiés.                           |
| 📄 Rapports      | Rapports PDF personnalisés avec nom de la cible/entreprise, logo téléchargé, liste des rapports, actions d'ouverture/téléchargement/suppression.                     |
| 🔔 Intégrations   | Boîtes de réception de test AgentMail, e-mails de vérification, flux OTP, événements de triage des e-mails, notifications Discord et Telegram.            |
| ⚙️ Configuration  | Paramètres du tableau de bord pour LLM, AgentMail, Discord, Telegram, proxy, exécution, navigateur, authentification, limites de débit et ressources.       |
| 🛡️ Sécurité d'exécution | Limites d'instances sensibles aux ressources et liaison en boucle locale uniquement, sauf si un accès externe est explicitement configuré avec authentification.         |

## 📥 Installation

Les chemins les plus rapides ne nécessitent aucune chaîne d'outils.

### ⚡ Installation en une ligne (binaire précompilé)```bash
curl -sSL https://www.xalgorix.com/install | bash

Télécharge le binaire de la dernière version pour ta plateforme (Linux ou macOS, amd64/arm64) et l'installe dans /usr/local/bin (ou ~/.local/bin sans sudo). Remplace avec XALGORIX_INSTALL_DIR ou épingle une version avec XALGORIX_VERSION=vX.Y.Z.

Effectue la configuration initiale complète de manière interactive—aucune modification manuelle du fichier d'environnement n'est requise :```bash xalgorix --setup

L'assistant préserve les paramètres existants lorsqu'il est relancé, masque la saisie de la clé API dans un terminal et lance éventuellement l'interface Web une fois terminé.

### 🐳 Docker```bash
docker run --rm -p 9137:9137 \
  --privileged \
  -e XALGORIX_LLM=openai/gpt-5.6 \
  -e XALGORIX_API_KEY=your_openai_api_key \
  -v xalgorix-data:/data \
  ghcr.io/xalgord/xalgorix:latest

--privileged (ou la variante plus restreinte --cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined) donne à la boîte à outils un accès comparable à celui de l'hôte. Le sandbox par défaut de Docker supprime les capacités et filtre les appels système, ce qui casse les outils de bas niveau (iptables/route/modifications d'interfaces, ARP-spoof/MITM, VPN tun/tap, débogueurs basés sur ptrace). Une image ne peut pas s'accorder ces privilèges elle-même — c'est une décision prise à l'exécution — donc passez le flag, ou utilisez le docker-compose.yml fourni, qui le configure pour vous.

L'image est tout-en-un : une vaste boîte à outils offensive est préinstallée (nmap, nuclei, httpx, subfinder, dnsx, naabu, katana, ffuf, gobuster, dalfox, feroxbuster, sqlmap, masscan, nikto, whatweb, hydra, et bien plus), ainsi que Chromium pour le DAST assisté par navigateur. Elle conserve également l'ensemble complet des gestionnaires de paquets (apt, go, cargo, pipx, npm), afin que l'agent installe automatiquement tout ce qui manque à l'exécution. Les données de scan sont conservées sur le volume /data, et le serveur écoute sur 0.0.0.0 dans le conteneur — définissez XALGORIX_USERNAME/XALGORIX_PASSWORD avant de l'exposer au-delà de localhost.

Le conteneur s'exécute en root par conception (le moteur n'active l'auto-installation à l'exécution que pour l'uid 0, et les installations apt/go/cargo nécessitent un accès en écriture système). Traitez-le comme un sandbox de scan jetable et isolé du réseau. Les mêmes tags publient un manifeste multi-plateforme pour linux/amd64 et linux/arm64, donc Docker sélectionne automatiquement l'image native.

Au premier lancement, si vous ne définissez pas l'authentification du tableau de bord, le conteneur génère un mot de passe admin aléatoire et l'affiche dans les logs (l'image écoute sur 0.0.0.0, ce que le moteur ne fait pas sans authentification). Définissez XALGORIX_USERNAME + XALGORIX_PASSWORD (ou XALGORIX_PASSWORD_HASH) pour utiliser vos propres identifiants. Le binaire ne se met jamais à jour automatiquement dans le conteneur (XALGORIX_NO_AUTO_UPDATE=1) — tirez un nouveau tag d'image pour mettre à niveau. Le moteur nuclei et ses modèles de vulnérabilités sont actualisés à la dernière version à chaque build d'image (le CI de release et redeploy.sh le forcent) ; passez --build-arg NUCLEI_VERSION=vX.Y.Z pour épingler le moteur, ou NUCLEI_REFRESH=0 ./redeploy.sh pour réutiliser le cache de Docker.

📋 Prérequis (build depuis les sources)

PrérequisNotes
OSLinux ou macOS (amd64/arm64).
Go1.26 ou plus récent.
Node.js + npmRequis lors du build de l'interface Web React fournie depuis les sources.
Outils de sécuritéInstallés à la demande uniquement lorsque l'auto-installation est activée.

Vérifiez votre version de Go :```bash go version

### 🔨 Compilation depuis les sources```bash
git clone https://github.com/xalgorix/xalgorix.git
cd xalgorix
make build
sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix

make build compile l'interface Web React dans internal/web/static, puis compile le binaire Go.

📦 Installation avec Go```bash

GOPROXY=direct GOSUMDB=off go install github.com/xalgord/xalgorix/v4/cmd/xalgorix@latest

## 🔩 Configuration

Xalgorix charge la configuration dans cet ordre. Les sources ultérieures remplacent les précédentes.

| Ordre | Source                                                         |
| ----- | -------------------------------------------------------------- |
| 1     | `/etc/xalgorix.env`                                            |
| 2     | `/home/<sudo-user>/.xalgorix.env` lorsqu'il est lancé via `sudo` |
| 3     | `~/.xalgorix.env`                                              |
| 4     | Variables d'environnement déjà présentes dans le processus     |

Créez le fichier d'environnement local :```bash
nano ~/.xalgorix.env

🧩 Configuration minimale

Pour obtenir les résultats de scan autonome les plus performants, sélectionnez un modèle frontal actuel. L'ID de modèle ci-dessous est un exemple concret ; des ID de modèles compatibles plus récents peuvent être saisis sans attendre une version de Xalgorix.```bash XALGORIX_LLM=openai/gpt-5.6 XALGORIX_API_KEY=your_openai_api_key

### 🔌 Exemples de fournisseurs

OpenAI :```bash
XALGORIX_LLM=openai/gpt-5.6
XALGORIX_API_KEY=sk-...

Custom provider compatible with OpenAI :```bash XALGORIX_LLM=custom/security-model XALGORIX_API_BASE=https://your-provider.example/v1 XALGORIX_API_KEY=your_provider_api_key

#### 🌉 Passerelles LiteLLM / compatibles OpenAI (GitHub Copilot, Claude Opus, Codex, OpenRouter, Azure, modèles locaux)

Comme `XALGORIX_API_BASE` accepte n'importe quel point de terminaison `/v1/chat/completions` compatible OpenAI,
Xalgorix fonctionne avec un proxy [LiteLLM](https://docs.litellm.ai/) sans configuration supplémentaire — aucune
modification côté Xalgorix n'est nécessaire. LiteLLM gère l'authentification du fournisseur en amont (connexion
d'appareil Copilot, clés Azure, OpenRouter, Ollama, etc.) ; Xalgorix se contente de parler OpenAI à la passerelle.

Exécutez LiteLLM (exemple de `config.yaml`) :```yaml
model_list:
  - model_name: claude-opus-5
    litellm_params:
      model: github_copilot/claude-opus-5   # or openrouter/…, azure/…, ollama/…
general_settings:
  master_key: sk-local-litellm-key

Pointez Xalgorix dessus — utilisez le préfixe custom/ afin que le nom du modèle soit envoyé tel quel et que le protocole OpenAI chat-completions soit utilisé :```bash XALGORIX_LLM=custom/claude-opus-5 # the LiteLLM model_name XALGORIX_API_BASE=http://localhost:4000/v1 # your LiteLLM proxy XALGORIX_API_KEY=sk-local-litellm-key # LiteLLM master_key / virtual key

Le même schéma couvre GitHub Copilot Business/CLI, Claude Opus, les modèles de type Codex,
OpenRouter, Azure OpenAI et les modèles Ollama locaux — tout ce que LiteLLM peut router. Conservez le
préfixe `custom/` (ou `openai/`) et un `XALGORIX_API_BASE` non-Anthropic/Gemini afin que Xalgorix
utilise le format de requête OpenAI standard attendu par LiteLLM.

### 🔔 Intégrations optionnelles```bash
GEMINI_API_KEY=AIza...
AGENTMAIL_POD=am_us_pod_47
AGENTMAIL_API_KEY=ak_...
XALGORIX_DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
XALGORIX_DISCORD_MIN_SEVERITY=high

🔐 Authentification du tableau de bord```bash

XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this-password

> [!TIP]
> Privilégiez `XALGORIX_PASSWORD_HASH` pour les déploiements en production.

## 🆙 Mise à niveau depuis les versions précédentes

Cette version apporte une passe de stabilité et d'isolation de l'espace de travail, avec un changement cassant et quelques nouveaux réglages à connaître.

### 💥 Changement cassant : l'espace de travail par défaut est déplacé vers `~/.xalgorix/data/`

Les résultats d'analyse, notes, planifications et autres artefacts générés se trouvent désormais sous `~/.xalgorix/data/` au lieu de `$CWD` (le répertoire depuis lequel le binaire a été lancé).

Pour conserver le comportement précédent, pointez `XALGORIX_DATA_DIR` vers votre répertoire de travail actuel :```bash
export XALGORIX_DATA_DIR=$(pwd)

Un avertissement [MIGRATION] est émis au démarrage lorsque des marqueurs hérités (notes.json, _schedules/, vulnerabilities.json ou des répertoires YYYY-MM-DD/scan-*) sont détectés dans $CWD et que XALGORIX_DATA_DIR n'est pas défini. Xalgorix ne lit, ne copie ni ne supprime jamais automatiquement ces fichiers hérités ; l'avertissement est informatif et ne se déclenche qu'une fois par processus.

🆕 Nouvelle variable d'environnement

VariableDéfautDescription
XALGORIX_LLM_MAX_INFLIGHT4 × EffectiveMaxInstancesLimite les appels LLM sortants simultanés sur toutes les analyses en cours. Minimum 1. Les demandes en attente annulées ne consomment pas de slot.

🩺 Nouveaux compteurs de point de terminaison de santé

GET /api/status expose désormais :

ChampSignification
panics_recoveredPaniques de goroutine, de gestionnaire HTTP et d'outil récupérées sans plantage.
path_rejectionsÉcritures du système de fichiers refusées par Path_Policy (hors data_dir / ~/.xalgorix/ / /tmp).
watchdog_killsSous-processus terminés par le chien de garde à délai d'attente strict par outil.
admission_refusalsDemandes d'admission d'analyse refusées en raison du plafond de concurrence.
llm_inflight_capValeur effective de XALGORIX_LLM_MAX_INFLIGHT pour ce processus.
data_dirData_Dir résolu en cours d'utilisation.
allow_listRacines du système de fichiers acceptées par Path_Policy.

🏃 Exécution

🪟 Interface Web```bash

xalgorix --web

Ouvrir :```text
http://127.0.0.1:9137

Utilisez un port différent :```bash xalgorix --web --port 8080

### 🌐 Accès externe

Ne liez à une autre interface qu’après avoir activé l’authentification du tableau de bord :```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this xalgorix --web --bind 0.0.0.0

[!WARNING] Le serveur refuse toute liaison externe sans authentification au tableau de bord.

🏹 Analyse CLI```bash

xalgorix --target https://example.com

Avec des instructions personnalisées :```bash
xalgorix --target https://app.example.com --instruction "Focus on SQL injection, IDOR, and auth bypass. Avoid destructive tests."

🧰 Mode Service

Installer et démarrer en tant que service système :```bash sudo xalgorix --start

Gérez le service :```bash
sudo xalgorix --restart
sudo xalgorix --stop
sudo xalgorix --uninstall

Voir les journaux :```bash journalctl -u xalgorix -f

### 🌍 Accès au service à distance

N'exposez le service aux navigateurs distants qu'après avoir activé l'authentification du tableau de bord :```bash
sudo tee -a /root/.xalgorix.env >/dev/null <<'EOF'
XALGORIX_BIND=0.0.0.0
XALGORIX_USERNAME=admin
XALGORIX_PASSWORD=change-this
EOF

sudo xalgorix --restart

Ensuite, ouvrez http://<server-ip>:9137.

Si le processus écoute mais que la page ne se charge toujours pas à distance, autorisez le port TCP 9137 dans le pare-feu du serveur ou le groupe de sécurité cloud.

🏠 Analyse des cibles locales/internes

Par défaut, Xalgorix refuse d'analyser les adresses loopback, localhost, les plages privées ou ses propres adresses d'interface — ce sont les machines sur lesquelles Xalgorix s'exécute, pas une cible. Sur une machine auto-hébergée, mono-tenant, vous pouvez choisir d'analyser une application de démonstration/de préproduction hébergée localement :```bash echo 'XALGORIX_ALLOW_LOCAL_TARGETS=true' | sudo tee -a /root/.xalgorix.env sudo xalgorix --restart

Le propre écouteur du tableau de bord est **toujours** protégé, même avec cette option activée.

> **⚠️ Déploiements partagés / multi-tenant / hébergés : gardez cette option DÉSACTIVÉE.** L'activer
> permettrait au scan d'un utilisateur d'atteindre la machine de l'opérateur et son réseau interne.
> Elle est désactivée par défaut, donc aucune action n'est nécessaire pour rester en sécurité — ne définissez pas
> `XALGORIX_ALLOW_LOCAL_TARGETS` (ou fixez `XALGORIX_ALLOW_LOCAL_TARGETS=false`),
> et n'exposez pas la page Settings du moteur à des utilisateurs non fiables.

## 🔁 Workflow de l'interface Web

1. Ouvrez le tableau de bord à `http://127.0.0.1:9137`.
2. Allez dans Settings et confirmez le fournisseur LLM, la clé API, les limites de débit et les intégrations optionnelles.
3. Créez un scan depuis New Scan.
4. Choisissez un mode de scan.
5. Sélectionnez les phases de méthodologie lorsque vous souhaitez une exécution ciblée.
6. Définissez des filtres de sévérité lorsque seules certaines sévérités doivent être signalées en direct. Le filtre n'affecte que le flux du tableau de bord en temps réel et les notifications ; le rapport PDF et `/api/findings` incluent toujours toutes les vulnérabilités découvertes par l'agent.
7. Ajoutez le nom de l'entreprise et téléversez un logo pour des rapports personnalisés.
8. Surveillez la progression depuis Overview, Scan Detail ou Live Feed.
9. Ouvrez les détails des findings, téléchargez les rapports ou gérez les scans historiques depuis Scans and Reports.

## 🔀 Modes de scan

| Mode             | Idéal pour                                                                      |
| ---------------- | ------------------------------------------------------------------------------- |
| 🎯 Cible unique    | Tester une URL ou un hôte connu.                                                |
| 🌐 Wildcard / multi | Énumérer les cibles associées et scanner la surface d'attaque découverte.       |
| 🧭 DAST             | Tests assistés par navigateur pour les applications web, les flux d'authentification, les formulaires et le comportement à l'exécution. |

## 📂 Scannez votre code (aucune cible requise)

Pointez Xalgorix vers une base de code — une URL Git, un chemin local ou un zip téléversé — et
il scanne directement la source. Aucune URL déployée, aucune infrastructure à mettre en place.```bash
# Source review (SAST): audit the code, no running target required
xalgorix --source ./my-app --code-scan review

# Provision + DAST: build & run the app locally, then pentest the running instance
xalgorix --source https://github.com/org/app.git --code-scan provision
Mode analyse de codeCe qu'il faitNiveau de vérification
reviewLit le code source, trace les entrées utilisateur du point d'entrée → sink dangereux, et signale les vulnérabilités atteignables. Aucune cible en direct.Vérifié par le code source — prouvé atteignable dans le code (clairement étiqueté comme non exploité à l'exécution).
provisionInspecte le dépôt, construit et exécute l'application sur un port de bouclage, puis lance un DAST guidé par boîte blanche contre l'instance en cours d'exécution. Retombe sur review si l'application ne peut pas être construite.Vérifié par exploitation — reproduit contre l'application en cours d'exécution.
  • --source accepte une URL Git (clone superficiel), un répertoire local, ou un chemin vers une archive téléchargée/extraite. Dans l'interface Web / l'application hébergée, vous pouvez également téléverser un .zip de votre codebase (POST /api/upload-source).
  • Vous pouvez toujours combiner un dépôt et une cible en direct pour une augmentation classique en boîte blanche — ce chemin est inchangé. Les modes d'analyse de code sont destinés aux cas où la codebase est le sujet entier.

Le mode provision exécute les commandes de construction/démarrage de votre application dans le bac à sable de l'agent et ne penteste que le seul port de bouclage sur lequel il a démarré l'application — le tableau de bord et tout le reste sur la machine restent hors de portée.

🧭 Méthodologie

Xalgorix organise les tests autonomes en 22 phases.

PhaseFocus
1Reconnaissance
2Découverte manuelle de vulnérabilités
3Découverte de répertoires et de fichiers
4Analyse CORS et des cookies
5Test d'authentification et de session
6Test d'injection
7Test SSRF
8IDOR et contrôle d'accès cassé
9Test API et GraphQL
10Test de téléversement de fichiers
11Désérialisation et RCE
12Conditions de course et logique métier
13Reprise de sous-domaine
14Test de redirection ouverte
15Test de sécurité des e-mails
16Cloud et infrastructure
17Test WebSocket
18Test spécifique au CMS
19Détournement de liens cassés et usurpation de contenu
20Vérification d'exploitation
21Découverte de vulnérabilités nouvelles
22Rapport final

La sélection des phases dans l'interface Web vous permet d'exécuter chaque phase ou uniquement le sous-ensemble nécessaire pour un engagement spécifique.

📄 Rapports

Les rapports sont générés sous forme de fichiers PDF et peuvent inclure :

SectionContenu inclus
📌 RésuméRésumé exécutif, métadonnées de la cible, métadonnées de l'analyse et aperçu de la gravité.
🐞 RésultatsRésultats vérifiés, détails CVSS, analyse technique et preuve d'exploitation.
🔬 PreuvesCommandes de preuve de concept, scripts, notes de payload et observations de soutien.
🩹 RemédiationConseils de correction et prochaines étapes priorisées.
🎨 MarqueNom de l'entreprise/cible et logo téléversé.

Les rapports sont disponibles depuis la page de détail de l'analyse et la page Rapports. Les lignes de rapport prennent en charge l'ouverture, le téléchargement et la suppression.

🔧 Paramètres

La plupart des paramètres opérationnels peuvent être modifiés depuis l'interface Web sous Paramètres.

ZoneExemples
🤝 EngagementLimites de débit des requêtes du tableau de bord
🧠 LLMModèle, clé API, base API, effort de raisonnement, nouvelles tentatives, itérations maximales
📬 AgentMailPod et clé API
🔔 NotificationsWebhook Discord et gravité minimale, jeton de bot Telegram, ID de chat, gravité minimale et résumés de fin d'analyse sur option
🕵️ ProxyURL du proxy, fichier proxy, rotation, vérification TLS
🧱 ExécutionEspace de travail, chemin du navigateur, contrôles d'installation automatique
🔐 SécuritéNom d'utilisateur du tableau de bord, mot de passe, hachage du mot de passe, adresse de liaison
📈 RessourcesSeuils CPU/RAM/disque et budget de concurrence d'analyse

Certains paramètres nécessitent un redémarrage car ils affectent le démarrage du processus ou la liaison du serveur. L'interface marque ces champs.

🧾 Variables d'environnement

🧱 Noyau

VariableDéfautDescription
XALGORIX_LLMaucunID de modèle natif du fournisseur utilisé pour les requêtes LLM.
XALGORIX_LLM_PROVIDERaucunFournisseur sélectionné par le tableau de bord, stocké séparément de l'ID du modèle.
XALGORIX_API_KEYaucunClé API requise du fournisseur LLM.
XALGORIX_API_BASEdéfaut du fournisseurURL de base API personnalisée compatible OpenAI.
XALGORIX_REASONING_EFFORThighEffort de raisonnement : none, low, medium, high ou xhigh (xhigh correspond à high pour Ollama).
XALGORIX_LANGUAGEenLangue de sortie pour la prose générée par IA (raisonnement de l'agent, notes, résultats, contenu du rapport, chat post-analyse). en ou zh-CN. Les jetons techniques (payloads, commandes, URL, ID CVE/CWE) restent toujours dans leur forme originale. Les langues non latines s'affichent automatiquement dans le tableau de bord et le rapport HTML.
XALGORIX_PDF_CJK_FONTaucunChemin absolu vers une police TrueType (.ttf) avec des glyphes CJK, utilisée pour rendre les langues non latines (par ex. chinois simplifié) dans le rapport PDF exporté. Seul .ttf est pris en charge (pas .ttc/.otf). Sans elle, le PDF retombe sur les polices de base et les glyphes non latins ne seront pas rendus (le rapport HTML n'est pas affecté).
XALGORIX_OLLAMA_COMPATIBLEfalseApplique la sémantique de raisonnement Ollama à un point de terminaison personnalisé sur un port non standard. Le port 11434 est détecté automatiquement.
XALGORIX_LLM_MAX_RETRIES5Nombre de nouvelles tentatives pour les échecs LLM transitoires.
XALGORIX_MEMORY_COMPRESSOR_TIMEOUT30Délai d'expiration en secondes pour la compression du contexte.
XALGORIX_MAX_ITERATIONS0Plafond d'itérations de l'agent. 0 signifie illimité.
XALGORIX_PPROF_ADDRaucunProfileur Go sur option. Lorsqu'il est défini (par ex. 127.0.0.1:6060), démarre un serveur pprof autonome à /debug/pprof/ sur cette adresse pour le diagnostic CPU/tas. Désactivé par défaut. Expose les internes du processus — liez le bouclage et atteignez-le via un tunnel SSH ; ne l'exposez jamais publiquement.
GEMINI_API_KEYaucunClé Gemini optionnelle pour l'enrichissement par recherche web.

🔒 Web et sécurité

VariableDéfautDescription
XALGORIX_BIND127.0.0.1Adresse d'écoute du serveur web.
XALGORIX_ALLOW_LOCAL_TARGETSfalseAutorise l'analyse d'applications hébergées localement (localhost / 127.0.0.1 / IP privées) sur une installation auto-hébergée. L'écouteur propre du tableau de bord est toujours protégé. Laissez désactivé sur les déploiements partagés/hébergés.
XALGORIX_USERNAMEaucunNom d'utilisateur du tableau de bord.
XALGORIX_PASSWORDaucunMot de passe du tableau de bord.
XALGORIX_PASSWORD_HASHaucunHachage de mot de passe bcrypt préféré.
XALGORIX_WORKSPACErépertoire courantRacine de l'espace de travail pour l'exécution des analyses.

🤝 Intégrations

VariableDéfautDescription
AGENTMAIL_PODaucunIdentifiant du pod AgentMail.
AGENTMAIL_API_KEYaucunClé API AgentMail.
XALGORIX_DISCORD_WEBHOOKaucunWebhook Discord global.
XALGORIX_DISCORD_MIN_SEVERITYaucunGravité minimale envoyée à Discord.
XALGORIX_TELEGRAM_BOT_TOKENaucunJeton de bot Telegram de @BotFather.
XALGORIX_TELEGRAM_CHAT_IDaucunID de chat/canal Telegram (numérique ou @nomutilisateur).
XALGORIX_TELEGRAM_MIN_SEVERITYaucunGravité minimale envoyée à Telegram.
XALGORIX_NOTIFY_SCAN_COMPLETEfalseEnvoie des résumés de fin d'analyse aux destinations Discord/Telegram configurées. Ceci est sur option et n'affecte pas les alertes par vulnérabilité.
CAIDO_PORT0Port du proxy Caido. 0 signifie détection automatique.
CAIDO_API_TOKENaucunJeton API Caido.

🚦 Limites de débit, proxy et exécution

VariableDéfautDescription
XALGORIX_RATE_LIMIT_REQUESTS60Requêtes du tableau de bord par fenêtre.
XALGORIX_RATE_LIMIT_WINDOW60Fenêtre de limite de débit du tableau de bord en secondes.
XALGORIX_RATE_RPS10Débit soutenu des requêtes sortantes.
XALGORIX_RATE_BURST20Taille de rafale sortante.
XALGORIX_USE_PROXYfalseActive le routage par proxy.
XALGORIX_PROXY_URLaucunURL de proxy unique. Remplace le fichier proxy.
XALGORIX_PROXY_FILEaucunFichier contenant un proxy par ligne.
XALGORIX_PROXY_ROTATIONroundrobinStratégie de rotation des proxys : roundrobin ou random.
XALGORIX_TLS_SKIP_VERIFYfalseIgnore la vérification TLS pour le trafic de test.
XALGORIX_DISABLE_BROWSERfalseDésactive l'automatisation du navigateur.
XALGORIX_BROWSER_PATHautoChemin d'exécutable Chrome/Chromium personnalisé.
XALGORIX_ALLOW_AUTO_INSTALLracine uniquementAutorise l'installation automatique de paquets.
XALGORIX_AUTO_INSTALL_SUDOfalseAutorise les installations automatiques préfixées par sudo.

🔤 Préfixes de fournisseurs

Lorsque XALGORIX_API_BASE est vide, Xalgorix déduit les défauts du fournisseur à partir du préfixe du modèle.

PréfixeBase API par défaut
openai/https://api.openai.com/v1
anthropic/https://api.anthropic.com
deepseek/https://api.deepseek.com/v1
groq/https://api.groq.com/openai/v1
google/https://generativelanguage.googleapis.com/v1
gemini/https://generativelanguage.googleapis.com/v1
ollama/http://localhost:11434/v1
minimax/https://api.minimax.io/v1

Les noms de modèles ne sont pas codés en dur dans cette liste. La page Paramètres accepte les ID de modèles saisis afin que les modèles plus récents du fournisseur puissent être utilisés sans attendre une mise à jour du menu déroulant de l'interface.

💻 Référence CLI

IndicateurAliasDescription
--web-wDémarre l'interface Web.
--port <port>-pPort de l'interface Web. Défaut : 9137.
--bind <addr>aucunAdresse de liaison. Défaut : 127.0.0.1.
--target <target>-tURL, hôte, IP ou chemin cible. Répétable.
--instruction <text>-iInstructions d'analyse personnalisées.
--model <model>-mRemplace XALGORIX_LLM pour cette exécution.
--update-upMet à jour vers la dernière version.
--version-vAffiche la version.
--startaucunInstalle et démarre le service système.
--stopaucunArrête le service système.
--restartaucunRedémarre le service système.
--uninstallaucunSupprime le service système.
--help-hAffiche l'aide.

📡 Résumé de l'API

MéthodePoint de terminaisonObjectif
POST/api/scanDémarre ou enregistre une analyse.
POST/api/stopArrête toutes les analyses en cours.
GET/api/statusStatut global actuel.
GET/api/scansListe les analyses.
GET/api/scans/:idObtient le détail d'une analyse.
DELETE/api/scans/:idSupprime une analyse et ses données de rapport.
GET/api/findingsListe tous les résultats (dédupliqués entre les analyses).
GET/api/findings/summaryTotal de gravité sur toutes les analyses.
GET/api/report/:idTélécharge un rapport PDF.
GET/api/instancesListe les instances en direct et historiques.
GET/api/instances/:id/eventsObtient l'historique des événements mis en mémoire tampon.
POST/api/instances/:id/stopArrête une instance spécifique.
POST/api/instances/:id/startDémarre une analyse enregistrée ou terminée comme nouvelle exécution.
POST/api/instances/:id/restartRedémarre avec la même configuration.
POST/api/instances/:id/pauseMet en pause une analyse en cours.
POST/api/instances/:id/resumeReprend une analyse en pause.
POST/api/upload-logoTéléverse un logo de rapport.
POST/api/upload-targetsTéléverse une liste de cibles.
GET/api/settings/environmentListe les paramètres d'environnement modifiables.
POST/api/settings/environmentEnregistre les paramètres d'environnement.
GET/api/settings/llmObtient les paramètres LLM.
POST/api/settings/llmEnregistre les paramètres LLM.
GET/api/settings/agentmailObtient les paramètres AgentMail.
POST/api/settings/agentmailEnregistre les paramètres AgentMail.
GET/wsFlux d'événements en direct WebSocket.

💾 Stockage des données

Les données d'analyse en mode Web sont stockées sous :```text ~/xalgorix-data/ |-- _saved/ |-- logos/ |-- queue_state.json -- <target>/ -- / -- <scan-id>/ |-- scan.json -- report.pdf

Le serveur conserve les enregistrements historiques des scans sur le disque afin que l'interface puisse se rétablir après un rafraîchissement ou un redémarrage.

## 🧪 Développement

| Tâche                        | Commande                       |
| --------------------------- | ----------------------------- |
| 📦 Installer les dépendances de l'interface Web | `make webui-install`          |
| 🔨 Tout compiler            | `make build`                  |
| ✅ Exécuter les tests       | `go test ./...`               |
| 🖥️ Exécuter l'interface Web depuis la source | `go run ./cmd/xalgorix --web` |
| ⚡ Exécuter le serveur de développement frontend | `make webui-dev`              |

## 🚨 Notes de sécurité

- Utilisez Xalgorix uniquement contre des cibles autorisées.
- N'effectuez pas de tests actifs contre des systèmes tiers sans autorisation.
- Examinez les instructions de scan avant de lancer.
- Configurez les limites de débit et les paramètres de proxy pour respecter les règles d'engagement.
- L'exposition du tableau de bord à l'extérieur nécessite une authentification.
- L'installation automatique est désactivée par défaut pour les utilisateurs non root et ne doit être activée que lorsque vous faites confiance à l'environnement.

## 📜 Licence

Xalgorix est publié sous la licence Apache 2.0. Voir [LICENSE](https://github.com/xalgord/xalgorix/blob/main/LICENSE).

## 🔗 Liens

| Ressource      | Lien                                                                             |
| ------------- | -------------------------------------------------------------------------------- |
| ☁️ Hébergé (Cloud) | [www.xalgorix.com](https://www.xalgorix.com/)                                   |
| 📖 Documentation | [docs.xalgorix.com](https://docs.xalgorix.com)                                   |
| 🐛 Problèmes        | [github.com/xalgorix/xalgorix/issues](https://github.com/xalgorix/xalgorix/issues) |
| ☕ Support       | [buymeacoffee.com/xalgord](https://buymeacoffee.com/xalgord)                     |

Catégories