
Тестирование безопасности на проникновение с использованием ИИ и автономных агентов — прямо в вашем терминале.
<h1 align="center">Pensar Apex</h1> <p align="center"> Пентестинг на основе ИИ с использованием автономных агентов — прямо в вашем терминале. Запускайте blackbox- и whitebox-пентесты, которые исследуют, анализируют и выявляют реальные уязвимости. </p> <p align="center"> Хотите запускать из облака или интегрировать с CI/CD? См. <a href="https://docs.pensar.dev/console">Pensar Console</a>. </p> <p align="center"> <a href="https://www.npmjs.com/package/@pensar/apex"><img src="https://img.shields.io/npm/v/@pensar/apex?label=latest" alt="npm version"></a> <a href="https://www.npmjs.com/package/@pensar/apex"><img src="https://img.shields.io/npm/v/@pensar/apex/canary?label=prerelease&color=yellow" alt="npm prerelease version"></a> <!-- <a href="https://www.npmjs.com/package/@pensar/apex"><img src="https://img.shields.io/npm/dm/@pensar/apex" alt="npm downloads"></a> --> <a href="https://github.com/pensarai/apex/blob/canary/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue" alt="Apache 2.0 License"></a> <a href="https://docs.pensar.dev/apex"><img src="https://img.shields.io/badge/docs-docs.pensar.dev/apex-purple?logo=readthedocs&logoColor=white" alt="Documentation"></a> <a href="https://discord.gg/pensar"><img src="https://img.shields.io/badge/Discord-Join%20Us-5865F2?logo=discord&logoColor=white" alt="Discord"></a> </p> <!-- <p align="center"> <img src="https://raw.githubusercontent.com/pensarai/apex/canary/screenshot.png" alt="Pensar Apex Screenshot" width="800"> </p> --> ## Сценарии использования ### Разработчики - Запускайте `/pentest` перед слиянием PR — выявляйте уязвимости так же естественно, как запускаете тесты - Получайте практические результаты с оценками серьёзности, доказательствами и предлагаемыми исправлениями — без необходимости в опыте в области безопасности - Интегрируйте в CI/CD через headless CLI-команды или Pensar Console ### Инженеры по безопасности - Разворачивайте управляемое агентами swarm-тестирование на больших поверхностях атаки - Используйте режим `/operator` для ручного исследования, построения цепочек эксплойтов и валидации - Автоматизируйте повторяющиеся рабочие процессы тестирования с постоянной памятью, накапливающейся между проектами - Масштабируйте на команды и проекты через Pensar Console ## Установка | Способ | Команда | | ------------------------------- | ---------------------------------------------------- | | **Быстрая установка** (macOS/Linux) | `curl -fsSL https://pensarai.com/install.sh \| bash` | | **Homebrew** | `brew tap pensarai/tap && brew install apex` | | **npm** | `npm install -g @pensar/apex` | | **Windows** (PowerShell) | `irm https://www.pensarai.com/apex.ps1 \| iex` | ## Использование Откройте TUI Apex: ```bash pensar ``` ### Headless CLI Запускайте пентесты без TUI для скриптов, CI или интеграции с evalgate: ```bash # Basic pentest pensar pentest --target https://example.com # With extended thinking and task-driven mode pensar pentest --target https://example.com --extended-thinking --task-driven # Whitebox (with source code access) pensar pentest --target https://example.com --cwd ./my-app # Targeted pentest with specific objectives pensar targeted-pentest --target https://example.com --objective "Test authentication bypass" ``` | Флаг | Команда | Описание | | ------------------------------ | ------------------------- | ---------------------------------------------- | | `--target <url>` | pentest, targeted-pentest | Целевой URL (обязательно) | | `--cwd <path>` | pentest | Путь к исходному коду для whitebox-режима | | `--mode <mode>` | pentest | `exfil` для пивотинга и извлечения флагов | | `--model <model>` | pentest, targeted-pentest | Модель ИИ (по умолчанию: выбирается автоматически) | | `--extended-thinking` | pentest | Включить расширенное мышление для поддерживаемых моделей | | `--task-driven` | pentest | Включить архитектуру, управляемую задачами (экспериментально) | | `--prompt <text\|@file>` | pentest | Пользовательские указания для агента | | `--threat-model <text\|@file>` | pentest | Модель угроз для управления тестированием | | `--objective <text>` | targeted-pentest | Цель тестирования (можно повторять) | ### Инференс Hoonify Подключите **Hoonify** в `/providers` или задайте `HOONIFY_API_KEY`, затем выберите обнаруженную модель в `/models`. Headless-команды принимают `--model-provider hoonify --model <catalog-model-id>`. См. [настройка Hoonify](https://github.com/pensarai/apex/blob/canary/docs/hoonify.md) для обнаружения моделей, бюджетов токенов и живых проверок. ### Пользовательские эндпоинты инференса Подключите OpenAI-совместимый эндпоинт и bearer-токен через конфигурацию `customProviders` или переменную окружения воркера `APEX_CUSTOM_PROVIDERS`. Выберите его с помощью `--model-provider <id> --model <model>` или выберите объявленные модели в средстве выбора `/models` оператора. См. [настройка пользовательского инференса](https://github.com/pensarai/apex/blob/canary/docs/custom-inference.md) для настроек GLM, конфигурации headless-задач и живого теста соединения. ### Логирование Apex направляет диагностическое/операционное логирование через централизованный структурированный логгер (`src/core/logger`). Он записывает однострочный JSON в **stderr**, когда вывод не является TTY — сохраняя его отдельно от stdout программы и упрощая отправку в конвейер логов (например, CloudWatch) — и красиво отформатированный, цветной вывод в интерактивном терминале. Пользовательский вывод CLI/TUI остаётся в stdout. Задайте уровень (от наиболее → к наименее подробному: `debug` < `info` < `warn` < `error`, по умолчанию `info`): ```bash pensar pentest --target https://example.com --log-level debug # or --verbose / --quiet PENSAR_LOG_LEVEL=debug pensar ... # via environment PENSAR_DEBUG=1 pensar ... # back-compat alias for debug ``` Порядок разрешения: флаг CLI → `PENSAR_LOG_LEVEL` → `PENSAR_DEBUG` → по умолчанию `info`. `PENSAR_LOG_FORMAT=json|pretty` принудительно задаёт формат вывода. Когда Apex работает как управляемый агент, `PENSAR_LOG_LEVEL` предоставляется хост-окружением. ### Трассировка W&B Weave Передавайте пошаговые трассировки агента в Weights & Biases Weave для анализа и тонкой настройки: ```bash export WANDB_API_KEY=your-key export WANDB_ENTITY=your-entity # WANDB_PROJECT defaults to "apex-traces" pensar pentest --target https://example.com ``` Трассировки включают шаги рассуждения, вызовы инструментов, использование токенов и контрольные точки состояния. Когда учётные данные не заданы, трассировка молча отключается. ### OpenTelemetry (наблюдаемость) Apex создаёт спаны OpenTelemetry для запусков агентов, вызовов LLM и выполнения инструментов через `@opentelemetry/api`. Спаны являются no-op, если ваш процесс не регистрирует OpenTelemetry SDK в качестве глобального провайдера трассировки; Apex не поставляет SDK. Зарегистрируйте SDK перед импортом кода Apex: - **Sentry**: установите `@sentry/node` ≥ 9.27 и добавьте `Sentry.vercelAIIntegration()` в ваши интеграции `Sentry.init`. - **Любой бэкенд OTel** (Honeycomb, Tempo, Datadog и т. д.): зарегистрируйте `@opentelemetry/sdk-node` с экспортёром OTLP. Спаны следуют [семантическим конвенциям OTel GenAI](https://opentelemetry.io/docs/specs/semconv/gen-ai/). По умолчанию фиксируется только форма спана (модель, количество токенов, задержка, имена инструментов); задайте `AI_TRACE_RECORD_PAYLOADS=true`, чтобы также записывать промпты, ввод/вывод инструментов и результаты. ## Контейнер Kali Linux (опционально) Для **наилучшей производительности** запускайте Apex во включённом контейнере Kali Linux с предварительно настроенными инструментами пентеста: ```bash cd container cp env.example .env # add your API keys docker compose up --build -d docker compose exec kali-apex bash ``` Внутри контейнера выполните: ```bash pensar ``` --- ### ⚠️ Ответственное использование Этот репозиторий содержит инструменты только для **авторизованного тестирования безопасности**. Перед использованием, пожалуйста, прочитайте и примите [Раскрытие об ответственном использовании](https://github.com/pensarai/apex/blob/canary/RESPONSIBLE_USE.md).