Назад к обновлениям
New releaseSep 7, 2026

xalgorix v4.6.72

Автономные ИИ-агенты для пентеста — разведка в реальном времени, обнаружение уязвимостей и оркестрация эксплуатации. Go + TypeScript.

Поделиться
Xalgorix — AI Autonomous Penetration Testing Platform

Go License Platform Hosted GitHub stars GitHub forks GitHub release

Ask DeepWiki

xalgorix/xalgorix | Trendshift

Xalgorix — пентестер с открытым исходным кодом на базе ИИ, который доказывает уязвимости

Большинство сканеров обнаруживают. Xalgorix доказывает. Автономный LLM-агент проходит полную методологию пентеста, после чего независимый верификатор повторно эксплуатирует каждую находку до того, как она будет включена в отчёт — так вы получаете доказательства, а не груду «возможно» для разбора. Self-hosted, приватный, с поддержкой собственного LLM. Написан на Go + TypeScript.

🚀 Быстрый старт · 💡 Почему Xalgorix · ✨ Возможности · 🎯 Сценарии использования · ☁️ Облако · 📖 Документация


📸 Скриншоты

🖥️ Self-hosted панель управления — работает локально на 127.0.0.1:9137

Обзорная панельДетали сканированияНаходки
Xalgorix overview dashboardXalgorix scan detailXalgorix findings

☁️ Облачная панель управления — полностью управляемая версия на www.xalgorix.com

Xalgorix hosted cloud dashboard showing security score, vulnerability trends, remediation metrics, and open issues by category

🤝 Спонсоры

Спасибо Swiftproxy за спонсорство Xalgorix.

Swiftproxy sponsors Xalgorix — residential proxies for authorized testing across locations

Поведение вашего приложения может различаться в зависимости от того, откуда приходит запрос. Для пользователей Xalgorix, проверяющих собственные приложения в разных регионах, Swiftproxy предлагает таргетинг по местоположению для анализа регионального поведения и sticky-сессии, помогающие сохранять постоянный IP во время тестовой сессии. Поддерживаются HTTP(S) и SOCKS5 — те же прокси-протоколы, что поддерживает Xalgorix.

Резидентные прокси от $0.70/GB. Доступно бесплатное тестирование, а пользователи Xalgorix получают скидку 10% по промокоду PROXY90.

Ознакомьтесь со Swiftproxy и запросите бесплатный тест →


🚀 Быстрый старт

Установка (одной строкой):```bash curl -sSL https://www.xalgorix.com/install | bash

Скачивается предварительно собранный бинарный файл для вашей платформы (Linux или macOS, amd64/arm64) из последнего релиза. Затем запустите интерактивный мастер настройки:```bash
xalgorix --setup

Выберите провайдера, подтвердите модель и введите API-ключ, когда появится запрос. Для лучших результатов используйте актуальную фронтир-модель с сильными способностями к рассуждению, производительностью на длинном контексте и надёжным вызовом инструментов — например, последнюю доступную вам мощную модель GPT, Claude или Gemini. Меньшие или локальные модели по-прежнему поддерживаются, но могут требовать большего контроля во время длительных автономных сканирований. Xalgorix хранит ключ приватно в ~/.xalgorix.env (режим 0600) и может запустить дашборд за вас. Локальному Ollama API-ключ не нужен.

Если вы решите не запускать сразу, запустите позже с помощью xalgorix --web и откройте http://127.0.0.1:9137. Вы можете изменить провайдеров или расширенные параметры в любое время в разделе Settings → LLM или повторно запустить xalgorix --setup.

Или запустите с Docker — всё включено, инструментарий не нужен:```bash docker run --rm -p 9137:9137
--privileged
-v xalgorix-data:/data
xalgord/xalgorix:latest

`--privileged` даёт набору инструментов тот же доступ к хосту, что и при нативном запуске от имени root. Стандартная песочница Docker отбрасывает возможности (например, `NET_ADMIN`) и применяет фильтр seccomp, что ломает низкоуровневые инструменты (изменения iptables/route, ARP-spoof/MITM, tun/tap VPN, отладчики на основе ptrace, настройка интерфейсов masscan). Поскольку образ не может сам предоставить себе эти возможности, их необходимо задать во время выполнения. Контейнер — это одноразовая, изолированная по сети песочница для сканирования, работающая от имени root — привилегированный режим является предполагаемой конфигурацией; никогда не выставляйте дашборд в публичный доступ без аутентификации. Предпочитаете минимальные привилегии? Замените `--privileged` на `--cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined`.

Откройте `http://localhost:9137`. Вам **не нужен ключ LLM для запуска** — дашборд запускается без него; задайте модель + API-ключ в разделе **Settings → LLM** (он сохраняется в томе `/data`). Если вы не передадите `XALGORIX_USERNAME`/`XALGORIX_PASSWORD`, при первом запуске будет сгенерирован случайный пароль администратора и выведен в логи контейнера.

**Самый простой способ — Docker Compose** (пробрасывает порт + постоянный том за вас):```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

Образ поставляется с обширным предустановленным набором инструментов для наступательной безопасности (nmap, nuclei, httpx, subfinder, katana, ffuf, gobuster, sqlmap, masscan, dalfox, feroxbuster и другие) и сохраняет доступность всех менеджеров пакетов (apt, go, cargo, pipx, npm), чтобы агент мог автоматически устанавливать всё недостающее во время выполнения. По замыслу он работает как root внутри контейнера — рассматривайте контейнер как одноразовую, изолированную от сети песочницу для сканирования и никогда не выставляйте панель управления без аутентификации. Образы публикуются как для amd64, так и для arm64.

Или соберите из исходного кода (требуется Go 1.26+ и 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]
> Предпочитаете нулевую настройку? Полностью управляемая версия работает на [www.xalgorix.com](https://www.xalgorix.com/) — сканирование в один клик, без установки и API-ключей.

### 🤖 Автоматический обзор pull request'ов — бесплатное приложение GitHub

Хотите проверку безопасности для каждого pull request'а без настройки? Установите **[Xalgorix GitHub App](https://github.com/apps/xalgorix)**. Оно читает diff каждого PR и оставляет комментарий с обзором безопасности — инъекции, сломанная аутентификация/IDOR, SSRF, секреты, небезопасные паттерны — прямо в pull request'е. Обновляется на месте при новых коммитах, и вы можете написать **`@xalgorix review`**, чтобы перезапустить по требованию. Без workflow-файла, без API-ключа, без аккаунта — и это бесплатно.

<div align="center">

[**➕ Добавить Xalgorix в GitHub →**](https://github.com/apps/xalgorix/installations/new)

</div>

Для блокировки слияний и полноценных пентестов с подтверждением эксплойтов в CI используйте [hosted scanner](https://www.xalgorix.com/) или GitHub Action.

> [!IMPORTANT]
> Используйте Xalgorix только на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение.

> [!TIP]
> Не хотите разворачивать самостоятельно? Полностью управляемая версия доступна на [www.xalgorix.com](https://www.xalgorix.com/) — сканирование в один клик, без установки и API-ключей.

## 📚 Содержание

| | | |
| --- | --- | --- |
| 📸 [Скриншоты](#-screenshots) | 🔩 [Конфигурация](#-configuration) | 🧾 [Переменные окружения](#-environment-variables) |
| 🚀 [Быстрый старт](#-quick-start) | 🆙 [Обновление](#-upgrading-from-previous-versions) | 🔤 [Префиксы провайдеров](#-provider-prefixes) |
| 🔎 [Обзор](#-overview) | 🏃 [Запуск](#-running) | 💻 [Справочник CLI](#-cli-reference) |
| 💡 [Почему Xalgorix](#-why-xalgorix) | 🧰 [Режим сервиса](#-service-mode) | 📡 [Сводка по API](#-api-summary) |
| 🎯 [Сценарии использования](#-use-cases) | 🔁 [Рабочий процесс Web UI](#-web-ui-workflow) | 💾 [Хранение данных](#-data-storage) |
| ✨ [Возможности](#-features) | 🔀 [Режимы сканирования](#-scan-modes) | 🧪 [Разработка](#-development) |
| 📥 [Установка](#-installation) | 📂 [Сканирование кода](#-scan-your-code-no-target-needed) | 🚨 [Замечания по безопасности](#-safety-notes) |
| 🧭 [Методология](#-methodology) | 📄 [Отчёты](#-reports) | 📜 [Лицензия](#-license) |
| 🔧 [Настройки](#-settings) | 🔗 [Ссылки](#-links) | 🤝 [Спонсоры](#-sponsors) |

## 🔎 Обзор

Xalgorix — это самостоятельно размещаемая платформа AI-пентестинга для авторизованного тестирования безопасности, оценки уязвимостей и рабочих процессов bug bounty. Она объединяет автономного агента на базе LLM, автоматизацию браузера, терминальные инструменты, комплексную 22-фазную методологию тестирования, телеметрию в реальном времени через WebSocket, управление находками с оценкой CVSS, генерацию брендированных PDF-отчётов и интеграции с AgentMail, Discord и Telegram.

В отличие от облачных DAST-сканеров, Xalgorix работает полностью на вашей машине. Вы используете собственного LLM-провайдера (OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama, MiniMax) и контролируете модель, глубину рассуждений, лимиты запросов и конфигурацию прокси. Никакие данные сканирования, API-ключи или информация о целях не покидают вашу инфраструктуру.

По умолчанию используется Web UI. Из одной локальной панели управления вы можете запускать сканирования, отслеживать активные запуски, изучать находки, настраивать параметры модели/провайдера, управлять переменными окружения, генерировать брендированные PDF-отчёты, а также удалять или возобновлять прошлые сканирования.

## 💡 Почему Xalgorix

Большинство сканеров **обнаруживают**. Xalgorix **доказывает**. Автономный агент проходит 22-фазную методологию, после чего независимый верификатор повторно проверяет каждую потенциальную находку перед её отчётом — так вы получаете результаты с подтверждёнными эксплойтами и доказательствами, а не стену «возможно» для разбора.

- 🧠 **AI-агент, а не шаблонный движок** — рассуждает о потоках аутентификации, бизнес-логике, IDOR/BOLA и цепочках эксплойтов, которые пропускают сигнатурные сканеры.
- ✅ **Находки с подтверждёнными эксплойтами** — отдельный верификатор независимо воспроизводит каждую находку; неубедительные помечаются для проверки и никогда не выдаются за подтверждённые.
- 🔒 **Самостоятельное размещение и приватность** — работает на вашей машине с вашим собственным LLM-ключом; никакие данные о целях, ключи или находки не покидают вашу инфраструктуру.
- 🧩 **Свой собственный LLM** — OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama или MiniMax — либо любой OpenAI-совместимый шлюз, например [LiteLLM](#-litellm--openai-compatible-gateways-github-copilot-claude-opus-codex-openrouter-azure-local-models) (GitHub Copilot, Codex, OpenRouter, Azure). Вы контролируете модель, глубину рассуждений и стоимость.
- 📄 **Отчёты, готовые к аудиту** — брендированные PDF-файлы с оценками CVSS, proof-of-concept и рекомендациями по устранению.

### 📊 Сравнение

|                                              | **Xalgorix**             | Шаблонные сканеры (например, Nuclei) | Сканеры с обходом (например, OWASP ZAP) | Коммерческие DAST        |
| -------------------------------------------- | ------------------------ | ------------------------------- | ---------------------------------- | ---------------------- |
| Подход                                       | Автономный AI-агент      | Сигнатуры / шаблоны             | Паук + активные правила            | Сигнатуры + эвристики  |
| Покрытие бизнес-логики / IDOR / обхода аутентификации | ✅                       | Ограниченное                    | Ограниченное                       | Частичное              |
| Подтверждение эксплойтов (доказывает воздействие) | ✅ независимый верификатор | ❌                              | ❌                                 | Частичное              |
| Уровень ложных срабатываний                  | Низкий (доказано)        | Зависит от шаблона              | Высокий                            | Средний                |
| Самостоятельное размещение / данные остаются локально | ✅                       | ✅                              | ✅                                 | Обычно облако          |
| Свой собственный LLM                         | ✅                       | —                               | —                                  | ❌                     |
| Брендированные PDF-отчёты                    | ✅                       | ❌                              | Базовые                            | ✅                     |
| Стоимость                                    | Открытый исходный код + ваш LLM | Бесплатно                       | Бесплатно                          | $$$                    |

> Ориентировочное сравнение — Nuclei и ZAP отлично справляются со своими задачами. Xalgorix добавляет поверх этого слой обнаружения, требующий глубоких рассуждений, и верификации эксплойтов.

### ☁️ Самостоятельное размещение vs облако

Xalgorix бесплатен и имеет открытый исходный код — размещайте его самостоятельно навсегда, без каких-либо условий. [Облако](https://www.xalgorix.com/) запускает **тот же** движок с подтверждением эксплойтов; оно существует для тех, кто предпочёл бы не управлять API-ключами, инфраструктурой и непредсказуемыми счетами за LLM. Оба варианта первоклассны — выбирайте подходящий.

|                                    | **Самостоятельное размещение** (этот репозиторий) | **[Облако](https://www.xalgorix.com/)**   |
| ---------------------------------- | ---------------------------------------- | ----------------------------------------------- |
| Цена для старта                    | Бесплатный движок, Apache-2.0            | Бесплатный аккаунт · разовая оценка за $1       |
| LLM API-ключ                       | Свой собственный, вы им управляете       | Включён — не нужно возиться                     |
| Стоимость за сканирование          | Сырые токены LLM — переменная, может взлететь | 1 кредит за живой хост — предсказуемо       |
| Установка и эксплуатация           | Вы устанавливаете, обновляете и запускаете инструментарий | Ничего запускать не нужно — сканирование за ~60 с |
| Out-of-band инфраструктура (SSRF/blind RCE) | Разворачиваете свой OOB-сервер    | Управляемый OOB включён                         |
| Планирование                       | Встроенный планировщик на вашей инфраструктуре | Управляемые расписания ежедневно / ежечасно |
| Команда · RBAC · общие кредиты     | Экземпляр для одного оператора           | Рабочие пространства организации на Team        |
| Обновления                         | `git pull` + пересборка                  | Всегда на последнем движке                      |
| Размещение данных / офлайн         | ✅ остаются на вашей инфраструктуре · air-gap OK | Работает на нашей инфраструктуре (доступно DPA) |

**Размещайте самостоятельно, если** данные должны оставаться в вашей сети, вы хотите полный контроль или будете работать офлайн/в изолированной среде — именно для этого это и предназначено. **Используйте облако, если** предпочитаете пропустить API-ключи, инфраструктуру и неожиданные счета за токены и платить только за живые хосты, которые вы действительно сканируете.

<div align="center">

[**☁️ Оценить облако — пробный период за $1 →**](https://www.xalgorix.com/pricing) &nbsp;·&nbsp; [**⚖️ Сравнить облако и самостоятельное размещение →**](https://www.xalgorix.com/hosted-vs-self-hosted)

</div>

Если Xalgorix сэкономил вам цикл разбора, пожалуйста, **[⭐ поставьте звезду репозиторию](https://github.com/xalgorix/xalgorix)** — это действительно помогает другим его найти.

## 🎯 Сценарии использования

| Сценарий | Как помогает Xalgorix |
| -------- | ------------------ |
| **Пентестинг** | Запустите полную 22-фазную методологию против авторизованных целей. AI-агент выполняет разведку, поиск уязвимостей, тестирование инъекций, SSRF, IDOR, обход аутентификации, состояния гонки и многое другое — а затем верифицирует находки перед отчётом. |
| **Bug bounty hunting** | Направьте Xalgorix на цель в рамках программы, и пусть агент перечислит поверхность атаки, протестирует распространённые классы уязвимостей и выявит подтверждённые находки с оценками CVSS и доказательствами proof-of-concept. |
| **Операции red team** | Используйте режимы сканирования wildcard и multi-target для картирования внешней поверхности атаки организации. Браузерный DAST обрабатывает потоки аутентификации, формы и поведение во время выполнения, которые пропускают статические сканеры. |
| **Исследование безопасности** | Фаза обнаружения новых уязвимостей выводит агента за пределы сопоставления известных шаблонов. Используйте собственный LLM (OpenAI, Anthropic, DeepSeek, Gemini, Ollama, MiniMax), чтобы контролировать глубину рассуждений и стоимость. |
| **Непрерывное тестирование безопасности** | Запускайте как системный сервис с помощью `xalgorix --start`. Сканируйте по расписанию, транслируйте находки в Discord или Telegram и генерируйте брендированные PDF-отчёты для заинтересованных сторон. |
| **Автоматизация DAST** | Браузерное тестирование веб-приложений — потоки аутентификации, формы, контент, отрендеренный JavaScript, и поведение во время выполнения. Интегрируется с Caido для инспекции прокси-трафика. |

## ✨ Возможности

| Область           | Возможности                                                                                                                |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| 📊 Панель управления      | Локальный Web UI по умолчанию на `127.0.0.1:9137`, управление сканированиями, статус в реальном времени, массовые действия со сканированиями и восстановление прошлых сканирований. |
| 🔍 Сканирование       | Одиночная цель, DAST, wildcard и multi-target потоки с выбираемыми фазами методологии.                                   |
| 📡 Телеметрия в реальном времени | Вызовы инструментов, сообщения агента, находки, ошибки, HTTP-активность и активность LLM через WebSocket.                              |
| 🐞 Находки       | Страницы деталей сканирования, фильтры по критичности, детали CVSS, индекс находок и рабочие процессы верифицированных находок.                           |
| 📄 Отчётность     | Брендированные PDF-отчёты с названием цели/компании, загруженным логотипом, списком отчётов, действиями открытия/скачивания/удаления.                     |
| 🔔 Интеграции   | Тестовые почтовые ящики AgentMail, письма верификации, потоки OTP, события разбора почты, уведомления Discord и Telegram.            |
| ⚙️ Конфигурация  | Настройки панели для LLM, AgentMail, Discord, Telegram, прокси, среды выполнения, браузера, аутентификации, лимитов запросов и ресурсов.       |
| 🛡️ Безопасность среды выполнения | Ограничения экземпляров с учётом ресурсов и привязка только к loopback, если внешний доступ явно не настроен с аутентификацией.         |

## 📥 Установка

Самые быстрые пути вообще не требуют инструментария.

### ⚡ Установка одной строкой (готовый бинарник)```bash
curl -sSL https://www.xalgorix.com/install | bash

Загружает бинарный файл последнего релиза для вашей платформы (Linux или macOS, amd64/arm64) и устанавливает его в /usr/local/bin (или ~/.local/bin без sudo). Переопределите с помощью XALGORIX_INSTALL_DIR или зафиксируйте версию с помощью XALGORIX_VERSION=vX.Y.Z.

Выполните первоначальную настройку в интерактивном режиме — ручное редактирование файла окружения не требуется:```bash xalgorix --setup

Мастер сохраняет существующие настройки при повторном запуске, скрывает ввод API-ключа в терминале и по завершении опционально запускает веб-интерфейс.

### 🐳 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 (или более узкий --cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined) даёт набору инструментов доступ, близкий к хосту. Песочница Docker по умолчанию отбрасывает capabilities и фильтрует системные вызовы, что ломает низкоуровневые инструменты (изменения iptables/route/интерфейсов, ARP-spoof/MITM, tun/tap VPN, отладчики на основе ptrace). Образ не может выдать их сам себе — это решение времени выполнения — поэтому передайте флаг или используйте предоставленный docker-compose.yml, который устанавливает его за вас.

Образ включает всё необходимое: предустановлен обширный набор инструментов для наступательной безопасности (nmap, nuclei, httpx, subfinder, dnsx, naabu, katana, ffuf, gobuster, dalfox, feroxbuster, sqlmap, masscan, nikto, whatweb, hydra и другие), а также Chromium для DAST с поддержкой браузера. Он также сохраняет полный набор менеджеров пакетов (apt, go, cargo, pipx, npm), поэтому агент автоматически устанавливает всё отсутствующее во время выполнения. Данные сканирования сохраняются в томе /data, а сервер привязывается к 0.0.0.0 внутри контейнера — задайте XALGORIX_USERNAME/XALGORIX_PASSWORD перед тем, как открывать его за пределы localhost.

Контейнер по замыслу работает от root (движок включает автоматическую установку во время выполнения только для uid 0, а установки через apt/go/cargo требуют доступа на запись в систему). Относитесь к нему как к одноразовой, изолированной по сети песочнице для сканирования. Те же теги публикуют мультиплатформенный манифест для linux/amd64 и linux/arm64, поэтому Docker автоматически выбирает нативный образ.

При первом запуске, если вы не настроили аутентификацию для панели управления, контейнер генерирует случайный пароль администратора и выводит его в логи (образ привязывается к 0.0.0.0, чего движок не сделает без аутентификации). Задайте XALGORIX_USERNAME + XALGORIX_PASSWORD (или XALGORIX_PASSWORD_HASH), чтобы использовать свои. Бинарный файл никогда не самообновляется внутри контейнера (XALGORIX_NO_AUTO_UPDATE=1) — для обновления загрузите новый тег образа. Движок nuclei и его шаблоны уязвимостей обновляются до последней версии при каждой сборке образа (CI релиза и redeploy.sh принудительно это делают); передайте --build-arg NUCLEI_VERSION=vX.Y.Z, чтобы зафиксировать версию движка, или NUCLEI_REFRESH=0 ./redeploy.sh, чтобы использовать кэш Docker.

📋 Требования (сборка из исходников)

ТребованиеПримечания
ОСLinux или macOS (amd64/arm64).
Go1.26 или новее.
Node.js + npmТребуется при сборке встроенного React Web UI из исходников.
Инструменты безопасностиУстанавливаются по требованию только при включённой автоустановке.

Проверьте вашу версию Go:```bash go version

### 🔨 Сборка из исходного кода```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 собирает React Web UI в internal/web/static, затем собирает бинарный файл Go.

📦 Установка с помощью Go```bash

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

## 🔩 Конфигурация

Xalgorix загружает конфигурацию в следующем порядке. Более поздние источники переопределяют более ранние.

| Порядок | Источник                                                       |
| ------- | -------------------------------------------------------------- |
| 1       | `/etc/xalgorix.env`                                            |
| 2       | `/home/<sudo-user>/.xalgorix.env` при запуске через `sudo`     |
| 3       | `~/.xalgorix.env`                                              |
| 4       | Переменные окружения, уже присутствующие в процессе            |

Создайте локальный файл окружения:```bash
nano ~/.xalgorix.env

🧩 Минимальная конфигурация

Для получения наилучших результатов автономного сканирования выберите актуальную фронтирную модель. Приведённый ниже идентификатор модели — конкретный пример; более новые совместимые идентификаторы моделей можно вводить, не дожидаясь выпуска Xalgorix.```bash XALGORIX_LLM=openai/gpt-5.6 XALGORIX_API_KEY=your_openai_api_key

### 🔌 Примеры провайдеров

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

Пользовательский OpenAI-совместимый провайдер:```bash XALGORIX_LLM=custom/security-model XALGORIX_API_BASE=https://your-provider.example/v1 XALGORIX_API_KEY=your_provider_api_key

#### 🌉 LiteLLM / OpenAI-совместимые шлюзы (GitHub Copilot, Claude Opus, Codex, OpenRouter, Azure, локальные модели)

Поскольку `XALGORIX_API_BASE` принимает любой OpenAI-совместимый эндпоинт `/v1/chat/completions`,
Xalgorix работает с прокси [LiteLLM](https://docs.litellm.ai/) из коробки — без
изменений на стороне Xalgorix. LiteLLM обрабатывает аутентификацию у вышестоящего провайдера (вход через устройство Copilot,
ключи Azure, OpenRouter, Ollama и т. д.); Xalgorix просто общается с шлюзом по протоколу OpenAI.

Запустите LiteLLM (пример `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

Направьте Xalgorix на него — используйте префикс custom/, чтобы имя модели передавалось дословно и использовался протокол OpenAI chat-completions:```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

Тот же шаблон охватывает GitHub Copilot Business/CLI, Claude Opus, модели в стиле Codex,
OpenRouter, Azure OpenAI и локальные модели Ollama — всё, что LiteLLM может маршрутизировать. Сохраняйте
префикс `custom/` (или `openai/`) и не-Anthropic/Gemini `XALGORIX_API_BASE`, чтобы Xalgorix
использовал стандартную форму запроса OpenAI, которую ожидает LiteLLM.

### 🔔 Опциональные интеграции```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

🔐 Аутентификация в панели управления```bash

XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this-password

> [!TIP]
> Для production-развёртываний предпочитайте `XALGORIX_PASSWORD_HASH`.

## 🆙 Обновление с предыдущих версий

Этот релиз включает проход по стабильности и изоляции рабочего пространства с одним критическим изменением и несколькими новыми настройками, о которых стоит знать.

### 💥 Критическое изменение: рабочее пространство по умолчанию перемещено в `~/.xalgorix/data/`

Результаты сканирования, заметки, расписания и другие сгенерированные артефакты теперь находятся в `~/.xalgorix/data/` вместо `$CWD` (каталога, из которого был запущен бинарный файл).

Чтобы сохранить прежнее поведение, укажите `XALGORIX_DATA_DIR` на ваш текущий рабочий каталог:```bash
export XALGORIX_DATA_DIR=$(pwd)

При запуске выводится предупреждение [MIGRATION], когда в $CWD обнаружены устаревшие маркеры (notes.json, _schedules/, vulnerabilities.json или каталоги YYYY-MM-DD/scan-*), а XALGORIX_DATA_DIR не задан. Xalgorix никогда не читает, не копирует и не удаляет эти устаревшие файлы автоматически; предупреждение носит информационный характер и срабатывает только один раз за процесс.

🆕 Новая переменная окружения

ПеременнаяПо умолчаниюОписание
XALGORIX_LLM_MAX_INFLIGHT4 × EffectiveMaxInstancesОграничивает количество одновременных исходящих вызовов LLM во всех запущенных сканированиях. Минимум 1. Отменённые ожидающие не занимают слот.

🩺 Новые счётчики в эндпоинте проверки состояния

GET /api/status теперь предоставляет:

ПолеЗначение
panics_recoveredПаники горутин, HTTP-обработчиков и инструментов, которые были восстановлены без сбоя.
path_rejectionsЗаписи в файловую систему, отклонённые Path_Policy (вне data_dir / ~/.xalgorix/ / /tmp).
watchdog_killsПодпроцессы, завершённые сторожевым таймером жёсткого тайм-аута для каждого инструмента.
admission_refusalsЗапросы на допуск сканирования, отклонённые из-за ограничения параллелизма.
llm_inflight_capДействующее значение XALGORIX_LLM_MAX_INFLIGHT для этого процесса.
data_dirРазрешённый Data_Dir, который используется.
allow_listКорни файловой системы, принимаемые Path_Policy.

🏃 Запуск

🪟 Веб-интерфейс```bash

xalgorix --web

Открыть:```text
http://127.0.0.1:9137

Используйте другой порт:```bash xalgorix --web --port 8080

### 🌐 Внешний доступ

Привязывайтесь к другому интерфейсу только после включения аутентификации в панели управления:```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this xalgorix --web --bind 0.0.0.0

[!WARNING] Сервер отказывает во внешнем связывании без аутентификации в панели управления.

🏹 Сканирование через CLI```bash

xalgorix --target https://example.com

С пользовательскими инструкциями:```bash
xalgorix --target https://app.example.com --instruction "Focus on SQL injection, IDOR, and auth bypass. Avoid destructive tests."

🧰 Режим службы

Установка и запуск в качестве системной службы:```bash sudo xalgorix --start

Управление сервисом:```bash
sudo xalgorix --restart
sudo xalgorix --stop
sudo xalgorix --uninstall

Просмотр логов:```bash journalctl -u xalgorix -f

### 🌍 Удалённый доступ к сервису

Открывайте доступ к сервису для удалённых браузеров только после включения аутентификации в дашборде:```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

Затем откройте http://<server-ip>:9137.

Если процесс прослушивает порт, но страница всё ещё не загружается удалённо, разрешите TCP-порт 9137 в брандмауэре сервера или группе безопасности облака.

🏠 Сканирование локальных/внутренних целей

По умолчанию Xalgorix отказывается сканировать loopback, localhost, адреса из приватных диапазонов или адреса собственных интерфейсов — это машина, на которой работает Xalgorix, а не цель. На self-hosted, single-tenant машине вы можете включить сканирование локально размещённого демо/staging-приложения:```bash echo 'XALGORIX_ALLOW_LOCAL_TARGETS=true' | sudo tee -a /root/.xalgorix.env sudo xalgorix --restart

Собственный слушатель дашборда **всегда** защищён, даже при включённой этой опции.

> **⚠️ Общие / мультитенантные / хостинговые развёртывания: оставьте эту опцию ВЫКЛЮЧЕННОЙ.** Её включение
> позволило бы сканированию пользователя достичь собственной машины оператора и внутренней сети.
> По умолчанию она выключена, поэтому для безопасности ничего делать не нужно — не устанавливайте
> `XALGORIX_ALLOW_LOCAL_TARGETS` (или закрепите `XALGORIX_ALLOW_LOCAL_TARGETS=false`),
> и не открывайте страницу Settings движка недоверенным пользователям.

## 🔁 Рабочий процесс веб-интерфейса

1. Откройте дашборд по адресу `http://127.0.0.1:9137`.
2. Перейдите в Settings и подтвердите LLM-провайдера, API-ключ, лимиты запросов и дополнительные интеграции.
3. Создайте сканирование через New Scan.
4. Выберите режим сканирования.
5. Выберите фазы методологии, когда нужен сфокусированный запуск.
6. Настройте фильтры по уровню критичности, когда в реальном времени должны отображаться только определённые уровни. Фильтр влияет только на ленту дашборда в реальном времени и уведомления; PDF-отчёт и `/api/findings` всегда включают все уязвимости, обнаруженные агентом.
7. Добавьте название компании и загрузите логотип для брендированных отчётов.
8. Отслеживайте прогресс через Overview, Scan Detail или Live Feed.
9. Открывайте детали находок, скачивайте отчёты или управляйте историей сканирований через Scans и Reports.

## 🔀 Режимы сканирования

| Режим             | Лучше всего подходит для                                                                        |
| ---------------- | ------------------------------------------------------------------------------- |
| 🎯 Одна цель    | Тестирование одного известного URL или хоста.                                                  |
| 🌐 Wildcard / multi | Перечисление связанных целей и сканирование обнаруженной поверхности атаки.         |
| 🧭 DAST             | Тестирование веб-приложений с помощью браузера: потоки аутентификации, формы и поведение во время выполнения. |

## 📂 Сканируйте свой код (цель не нужна)

Укажите Xalgorix на кодовую базу — Git URL, локальный путь или загруженный zip — и
он просканирует исходный код напрямую. Ни развёрнутого URL, ни инфраструктуры для поднятия.```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
Режим сканирования кодаЧто делаетУровень верификации
reviewЧитает исходный код, отслеживает пользовательский ввод от точки входа → опасный sink и сообщает о достижимых уязвимостях. Без живого таргета.Подтверждено исходным кодом — доказана достижимость в коде (явно помечено как не эксплуатируемое во время выполнения).
provisionИзучает репозиторий, собирает и запускает приложение на loopback-порту, затем запускает whitebox-guided DAST против работающего экземпляра. Откатывается к review, если приложение не удаётся собрать.Подтверждено эксплуатацией — воспроизведено на работающем приложении.
  • --source принимает Git URL (shallow-клонирование), локальную директорию или путь к загруженному/распакованному архиву. В Web UI / hosted-приложении вы также можете загрузить .zip вашей кодовой базы (POST /api/upload-source).
  • Вы по-прежнему можете комбинировать репозиторий и живой таргет для классического whitebox дополнения — этот путь не изменился. Режимы сканирования кода предназначены для случаев, когда кодовая база является всем предметом.

Режим provision запускает команды сборки/запуска вашего приложения в песочнице агента и проводит пентест только того единственного loopback-порта, на котором он поднял приложение — дашборд и всё остальное на машине остаются вне области охвата.

🧭 Методология

Xalgorix организует автономное тестирование в 22 фазы.

ФазаНаправление
1Разведка
2Ручной поиск уязвимостей
3Обнаружение директорий и файлов
4Анализ CORS и cookie
5Тестирование аутентификации и сессий
6Тестирование инъекций
7Тестирование SSRF
8IDOR и нарушение контроля доступа
9Тестирование API и GraphQL
10Тестирование загрузки файлов
11Десериализация и RCE
12Состояния гонки и бизнес-логика
13Захват поддоменов
14Тестирование открытых редиректов
15Тестирование безопасности электронной почты
16Облако и инфраструктура
17Тестирование WebSocket
18Тестирование, специфичное для CMS
19Захват битых ссылок и подмена контента
20Верификация эксплуатации
21Поиск новых уязвимостей
22Итоговый отчёт

Выбор фаз в Web UI позволяет запустить все фазы или только подмножество, необходимое для конкретного проекта.

📄 Отчёты

Отчёты генерируются в виде PDF-файлов и могут включать:

РазделВключаемое содержимое
📌 СводкаРезюме для руководства, метаданные таргета, метаданные сканирования и обзор серьёзности.
🐞 НаходкиПодтверждённые находки, детали CVSS, технический анализ и доказательство эксплуатации.
🔬 ДоказательстваКоманды proof of concept, скрипты, заметки о payload и подтверждающие наблюдения.
🩹 УстранениеРекомендации по исправлению и приоритизированные дальнейшие шаги.
🎨 БрендингНазвание компании/таргета и загруженный логотип.

Отчёты доступны со страницы деталей сканирования и со страницы Reports. Строки отчётов поддерживают открытие, скачивание и удаление.

🔧 Настройки

Большинство операционных настроек можно изменить в Web UI в разделе Settings.

ОбластьПримеры
🤝 ПроектЛимиты частоты запросов дашборда
🧠 LLMМодель, API-ключ, API base, reasoning effort, повторы, максимальные итерации
📬 AgentMailPod и API-ключ
🔔 УведомленияDiscord webhook и минимальная серьёзность, токен Telegram-бота, chat ID, минимальная серьёзность и опциональные сводки о завершении сканирования
🕵️ ПроксиURL прокси, файл прокси, ротация, проверка TLS
🧱 Среда выполненияРабочая область, путь к браузеру, управление автоустановкой
🔐 БезопасностьИмя пользователя дашборда, пароль, хеш пароля, адрес привязки
📈 РесурсыПороги CPU/RAM/диска и бюджет параллелизма сканирования

Некоторые настройки требуют перезапуска, поскольку влияют на запуск процесса или привязку сервера. UI помечает такие поля.

🧾 Переменные окружения

🧱 Ядро

ПеременнаяПо умолчаниюОписание
XALGORIX_LLMнетНативный для провайдера ID модели, используемый для LLM-запросов.
XALGORIX_LLM_PROVIDERнетПровайдер, выбранный в дашборде, хранится отдельно от ID модели.
XALGORIX_API_KEYнетОбязательный API-ключ LLM-провайдера.
XALGORIX_API_BASEпо умолчанию провайдераПользовательский OpenAI-совместимый API base URL.
XALGORIX_REASONING_EFFORThighReasoning effort: none, low, medium, high или xhigh (xhigh сопоставляется с high для Ollama).
XALGORIX_LANGUAGEenЯзык вывода для генерируемого ИИ текста (рассуждения агента, заметки, находки, содержимое отчёта, чат после сканирования). en или zh-CN. Технические токены (payload, команды, URL, ID CVE/CWE) всегда остаются в исходной форме. Нелатинские языки автоматически отображаются в дашборде и HTML-отчёте.
XALGORIX_PDF_CJK_FONTнетАбсолютный путь к шрифту TrueType (.ttf) с CJK-глифами, используемому для отображения нелатинских языков (например, упрощённого китайского) в экспортируемом PDF-отчёте. Поддерживается только .ttf (не .ttc/.otf). Без него PDF откатывается к базовым шрифтам, и нелатинские глифы не будут отображаться (на HTML-отчёт это не влияет).
XALGORIX_OLLAMA_COMPATIBLEfalseПрименять семантику reasoning Ollama к пользовательскому endpoint на нестандартном порту. Порт 11434 определяется автоматически.
XALGORIX_LLM_MAX_RETRIES5Количество повторов для временных сбоев LLM.
XALGORIX_MEMORY_COMPRESSOR_TIMEOUT30Таймаут в секундах для сжатия контекста.
XALGORIX_MAX_ITERATIONS0Ограничение итераций агента. 0 означает неограниченно.
XALGORIX_PPROF_ADDRнетОпциональный Go-профайлер. При установке (например, 127.0.0.1:6060) запускает отдельный pprof-сервер по адресу /debug/pprof/ на этом адресе для диагностики CPU/heap. Отключён по умолчанию. Раскрывает внутренности процесса — привязывайте к loopback и подключайтесь через SSH-туннель; никогда не выставляйте публично.
GEMINI_API_KEYнетОпциональный ключ Gemini для обогащения веб-поиска.

🔒 Веб и безопасность

ПеременнаяПо умолчаниюОписание
XALGORIX_BIND127.0.0.1Адрес прослушивания веб-сервера.
XALGORIX_ALLOW_LOCAL_TARGETSfalseРазрешить сканирование локально размещённых приложений (localhost / 127.0.0.1 / приватные IP) при self-hosted установке. Собственный listener дашборда всегда защищён. Оставляйте выключенным на общих/hosted развёртываниях.
XALGORIX_USERNAMEнетИмя пользователя дашборда.
XALGORIX_PASSWORDнетПароль дашборда.
XALGORIX_PASSWORD_HASHнетПредпочтительный bcrypt-хеш пароля.
XALGORIX_WORKSPACEтекущая директорияКорень рабочей области для выполнения сканирования.

🤝 Интеграции

ПеременнаяПо умолчаниюОписание
AGENTMAIL_PODнетИдентификатор pod AgentMail.
AGENTMAIL_API_KEYнетAPI-ключ AgentMail.
XALGORIX_DISCORD_WEBHOOKнетГлобальный Discord webhook.
XALGORIX_DISCORD_MIN_SEVERITYнетМинимальная серьёзность, отправляемая в Discord.
XALGORIX_TELEGRAM_BOT_TOKENнетТокен Telegram-бота от @BotFather.
XALGORIX_TELEGRAM_CHAT_IDнетID чата/канала Telegram (числовой или @username).
XALGORIX_TELEGRAM_MIN_SEVERITYнетМинимальная серьёзность, отправляемая в Telegram.
XALGORIX_NOTIFY_SCAN_COMPLETEfalseОтправлять сводки о завершении сканирования в настроенные назначения Discord/Telegram. Это опционально и не влияет на оповещения по отдельным уязвимостям.
CAIDO_PORT0Порт прокси Caido. 0 означает автоопределение.
CAIDO_API_TOKENнетAPI-токен Caido.

🚦 Лимиты частоты, прокси и среда выполнения

ПеременнаяПо умолчаниюОписание
XALGORIX_RATE_LIMIT_REQUESTS60Запросов к дашборду за окно.
XALGORIX_RATE_LIMIT_WINDOW60Окно лимита частоты дашборда в секундах.
XALGORIX_RATE_RPS10Устойчивая исходящая частота запросов.
XALGORIX_RATE_BURST20Размер исходящего всплеска.
XALGORIX_USE_PROXYfalseВключить маршрутизацию через прокси.
XALGORIX_PROXY_REQUIREDfalseТребовать один upstream-прокси для HTTP/браузерных путей таргета без прямого отката.
XALGORIX_PROXY_URLнетURL одного прокси. Переопределяет файл прокси.
XALGORIX_PROXY_FILEнетФайл, содержащий по одному прокси на строку.
XALGORIX_PROXY_ROTATIONroundrobinСтратегия ротации прокси: roundrobin или random.
XALGORIX_TLS_SKIP_VERIFYfalseПропускать проверку TLS для тестового трафика.
XALGORIX_DISABLE_BROWSERfalseОтключить автоматизацию браузера.
XALGORIX_BROWSER_PATHавтоПользовательский путь к исполняемому файлу Chrome/Chromium.
XALGORIX_ALLOW_AUTO_INSTALLтолько rootРазрешить автоматическую установку пакетов.
XALGORIX_AUTO_INSTALL_SUDOfalseРазрешить автоустановку с префиксом sudo.

🔤 Префиксы провайдеров

Когда XALGORIX_API_BASE пуст, Xalgorix выводит значения по умолчанию для провайдера из префикса модели.

ПрефиксAPI base по умолчанию
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

Имена моделей не жёстко привязаны к этому списку. Страница Settings принимает вводимые вручную ID моделей, поэтому более новые модели провайдеров можно использовать, не дожидаясь обновления выпадающего списка в UI.

💻 Справочник CLI

ФлагПсевдонимОписание
--web-wЗапустить Web UI.
--port <port>-pПорт Web UI. По умолчанию: 9137.
--bind <addr>нетАдрес привязки. По умолчанию: 127.0.0.1.
--target <target>-tURL, хост, IP или путь таргета. Можно повторять.
--instruction <text>-iПользовательские инструкции сканирования.
--model <model>-mПереопределить XALGORIX_LLM для этого запуска.
--update-upОбновить до последнего релиза.
--version-vВывести версию.
--startнетУстановить и запустить системную службу.
--stopнетОстановить системную службу.
--restartнетПерезапустить системную службу.
--uninstallнетУдалить системную службу.
--help-hПоказать справку.

📡 Сводка API

МетодEndpointНазначение
POST/api/scanЗапустить или сохранить сканирование.
POST/api/stopОстановить все запущенные сканирования.
GET/api/statusТекущий глобальный статус.
GET/api/scansСписок сканирований.
GET/api/scans/:idПолучить детали сканирования.
DELETE/api/scans/:idУдалить сканирование и его данные отчёта.
GET/api/findingsСписок всех находок (дедуплицированных по сканированиям).
GET/api/findings/summaryПодсчёт по серьёзности по всем сканированиям.
GET/api/report/:idСкачать PDF-отчёт.
GET/api/instancesСписок живых и исторических экземпляров.
GET/api/instances/:id/eventsПолучить буферизованную историю событий.
POST/api/instances/:id/stopОстановить конкретный экземпляр.
POST/api/instances/:id/startЗапустить сохранённое или завершённое сканирование как новый запуск.
POST/api/instances/:id/restartПерезапустить с той же конфигурацией.
POST/api/instances/:id/pauseПриостановить запущенное сканирование.
POST/api/instances/:id/resumeВозобновить приостановленное сканирование.
POST/api/upload-logoЗагрузить логотип отчёта.
POST/api/upload-targetsЗагрузить список таргетов.
GET/api/settings/environmentСписок редактируемых настроек окружения.
POST/api/settings/environmentСохранить настройки окружения.
GET/api/settings/llmПолучить настройки LLM.
POST/api/settings/llmСохранить настройки LLM.
GET/api/settings/agentmailПолучить настройки AgentMail.
POST/api/settings/agentmailСохранить настройки AgentMail.
GET/wsWebSocket-поток живых событий.

💾 Хранение данных

Данные сканирования в веб-режиме хранятся в:```text ~/xalgorix-data/ |-- _saved/ |-- logos/ |-- queue_state.json -- <target>/ -- / -- <scan-id>/ |-- scan.json -- report.pdf

Сервер хранит исторические записи сканирований на диске, чтобы UI мог восстановиться после обновления или перезапуска.

## 🧪 Разработка

| Задача                        | Команда                       |
| --------------------------- | ----------------------------- |
| 📦 Установить зависимости Web UI | `make webui-install`          |
| 🔨 Собрать всё            | `make build`                  |
| ✅ Запустить тесты                   | `go test ./...`               |
| 🖥️ Запустить Web UI из исходников      | `go run ./cmd/xalgorix --web` |
| ⚡ Запустить dev-сервер фронтенда     | `make webui-dev`              |

## 🚨 Примечания по безопасности

- Используйте Xalgorix только против авторизованных целей.
- Не запускайте активное тестирование против сторонних систем без разрешения.
- Просмотрите инструкции сканирования перед запуском.
- Настройте ограничения скорости и параметры прокси в соответствии с правилами взаимодействия.
- Внешнее размещение панели управления требует аутентификации.
- Автоустановка отключена по умолчанию для пользователей без прав root и должна включаться только при доверии к окружению.

## 📜 Лицензия

Xalgorix выпускается под лицензией Apache License 2.0. См. [LICENSE](https://github.com/xalgord/xalgorix/blob/main/LICENSE).

## 🔗 Ссылки

| Ресурс      | Ссылка                                                                             |
| ------------- | -------------------------------------------------------------------------------- |
| ☁️ Хостинг (облако) | [www.xalgorix.com](https://www.xalgorix.com/)                                   |
| 📖 Документация | [docs.xalgorix.com](https://docs.xalgorix.com)                                   |
| 🐛 Проблемы        | [github.com/xalgorix/xalgorix/issues](https://github.com/xalgorix/xalgorix/issues) |
| ☕ Поддержка       | [buymeacoffee.com/xalgord](https://buymeacoffee.com/xalgord)                     |

Категории