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

prismor v1.44.0

Самостоятельно размещаемая панель управления средой выполнения для ИИ-агентов. Наблюдайте, одобряйте через HITL или блокируйте вредоносные вызовы инструментов до их выполнения: утечки секретов, prompt-инъекции, цепочки поставок и т. д. — всё в локальной панели мониторинга. Не зависит от конкретного агента (Claude, codex, langchain и др.).

Поделиться

Prismor

PyPI License PRs Welcome X DeepWiki Discord

Runtime-безопасность для Claude Code, Codex, Langchain и других фреймворков/обвязок AI-агентов.

Prismor легко настраивается на основе собственных политик пользователя. Режим наблюдения или принудительного применения позволяет видеть активность агента в локальной self-serve панели мониторинга

Сайт • Онбординг через Skill

Claude Code   Codex CLI   Gemini CLI   Cursor   GitHub Copilot   OpenCode   Pi Agent   Kiro   Kimi Code   Trae / Trae CN   Google Antigravity

А также Grok Build, Crush, OpenHands, Qwen Code, Continue CLI, Goose, Hermes, OpenClaw, Devin CLI, Factory Droid, Aider и другие — полную матрицу покрытия см. в AGENT_INTEGRATIONS.md


Prismor demo


Проблема

AI-агенты выполняют shell-команды, читают и записывают файлы, получают доступ к учётным данным и вызывают внешние API. Они делают это автономно, зачастую на протяжении множества шагов, с ограниченным числом контрольных точек.

Это создаёт риски, для которых традиционные средства безопасности не предназначены:

  • Prompt injection — вредоносное содержимое в файле, issue или веб-странице может перенаправить агента прямо во время выполнения задачи
  • Непреднамеренные разрушительные действия — агент неверно истолковывает инструкцию и запускает что-то необратимое
  • Эксфильтрация секретов — агент читает .env или файлы с учётными данными в рамках задачи по отладке и отправляет их содержимое наружу
  • Отсутствие видимости и идентичности — агент может порождать субагентов, и у конечного пользователя нет полной картины происходящего
  • Повышение привилегий — агент изменяет sudoers, CI-пайплайны или права доступа к файлам, чтобы устранить ошибку прав
  • Манипуляция зависимостями — агент устанавливает или переписывает пакет по указанию из внедрённого ввода
  • Риски цепочки поставок — агент устанавливает уязвимый пакет или пакет с 0-day, оптимизируя скорость разработки

Стандартные средства безопасности уровня ОС и конечных точек отслеживают ядро и файловую систему. Но им не хватает контекста, чтобы сделать AI пригодным для использования


Быстрый старт (30 с)```bash

pip install prismor prismor setup

Для альтернатив Skill, curl и git-clone, а также для систем PEP 668 и настройки сокрытия секретов см. [полное руководство по установке](https://github.com/prismorsec/prismor/blob/main/docs/installation.md).

---

## Возможности<a name="capabilities" />

![Архитектура Prismor](https://assets.kitploit.com/production/public/readmes/13903/0e84c7211b3275de581182b7f69c44d8224142323b43220dd1234eee17616757.png)

- 🛡️ [Prismor](https://github.com/prismorsec/prismor/blob/main/docs/prismor-runtime.md) охватывает движок политик, журналы сессий, аудит безопасности и справочник по CLI
- 📦 [Цепочка поставок](https://github.com/prismorsec/prismor/blob/main/docs/supply-chain.md) охватывает принудительные меры во время установки, сопоставление IOC и оценку рисков
- 🛜 [Сетевая изоляция](https://github.com/prismorsec/prismor/blob/main/docs/network-isolation.md) охватывает управление исходящим трафиком на основе политик, обнаружение необработанных IP и блокировку туннелей
- 🔍 [Сканер навыков](https://github.com/prismorsec/prismor/blob/main/docs/skill-scanner.md) охватывает сканирование рисков серверов MCP и навыков по поддерживаемым агентам
- 🚦 [Ограничения MCP](https://github.com/prismorsec/prismor/blob/main/docs/prismor-runtime.md#custom-guardrails-for-mcp-tools) позволяют заблокировать конкретный сервер или инструмент MCP либо потребовать одобрения человеком перед вызовом агентом с помощью правила политики, которое вы пишете сами
- 🛰️ [Шлюз MCP](https://github.com/prismorsec/prismor/blob/main/docs/mcp-gateway.md) — это единый коннектор MCP, который стоит перед всеми остальными используемыми вами серверами MCP: каждый `tools/call` проходит оценку политики перед перенаправлением, а каждый ответ сканируется на инъекции до того, как его увидит модель, поэтому отравленный результат инструмента никогда не становится контекстом. `prismor mcp-gateway install` переносит существующий `.mcp.json` за него
- 🛤️ [Прокси LLM](https://github.com/prismorsec/prismor/blob/main/docs/llm-proxy.md) управляет агентом, который Prismor не может перехватить, через то единственное, что есть у каждого агента: его трафик к модели. Направьте его на `prismor proxy` с помощью `ANTHROPIC_BASE_URL`, `OPENAI_BASE_URL` или `HttpOptions(base_url=...)` из Google Gen AI SDK, и больше ничего в агенте не меняется. Каждый вызов инструмента, который модель *предлагает* — Anthropic `tool_use`, OpenAI `tool_calls`, Gemini `functionCall` — преобразуется в то же событие, которое порождает хук `Bash`, и оценивается по тому же правилу, при этом потоковые вызовы удерживаются до тех пор, пока их можно будет оценить
- [Хуки вывода Claude](https://github.com/prismorsec/prismor/blob/main/docs/inference-hook.md) делают Prismor сервером безопасности ИИ за Claude Enterprise: Anthropic отправляет каждый управляемый запрос из claude.ai, Claude Code и Cowork в `prismor inference-hook serve`, который применяет вашу политику к транскрипту и отвечает allow/deny до запуска модели — подписанные запросы (Standard Webhooks), fail-closed, теневой режим, ничего не нужно устанавливать на устройства пользователей. `prismor inference-hook test` отправляет подписанные образцы кадров для проверки связки
- 🏷️ [Теги инструментов](https://github.com/prismorsec/prismor/blob/main/docs/tool-tags.md) классифицируют инструменты по возможностям (чтение, запись, сеть, выполнение), чтобы правило могло гласить «ничто, читающее приватные данные, не должно также иметь доступ к сети» вместо перечисления каждого инструмента по отдельности — инструменты MCP самообъявляются через `_meta`, а `prismor tags` выводит список, тестирует и проверяет выражения правил
- 🔐 [Sweep и Cloak](https://github.com/prismorsec/prismor/blob/main/docs/sweep-and-cloak.md) охватывает предотвращение утечек секретов на границах инструментов, практическую настройку, лучшие практики, модель угроз и очистку утёкших секретов
- 🦞 [Интеграция с OpenClaw](https://github.com/prismorsec/prismor/blob/main/docs/openclaw.md) охватывает хуки времени выполнения, сканирование на инъекции в промпты и настройку области проекта или пользователя для OpenClaw
- 🤖 [Сокрытие агента Hermes](https://github.com/prismorsec/prismor/blob/main/docs/hermes.md) охватывает сокрытие секретов, специфичное для Hermes, с автообнаружением точек входа pip, установкой в файловую систему и защитой вставки pre_gateway_dispatch
- ☁️ [Виртуальные машины размещённых агентов](https://github.com/prismorsec/prismor/blob/main/docs/cloud-agents.md) управляет агентами, работающими на машине, в которую вы никогда не входите (Claude Code в вебе, облачные агенты Cursor, агент программирования Copilot, OpenHands Cloud, Codex cloud, Replicas): скрипт настройки платформы устанавливает бинарник, а `install-hooks --portable` записывает конфигурацию хуков, безопасную для коммита
- 🧠 [Семантический страж](https://github.com/prismorsec/prismor/blob/main/docs/semantic-guard.md): опциональный гибридный слой, добавляющий проверку намерения с помощью LLM для перефразированных попыток инъекции в промпты, которые не могут поймать правила на регулярных выражениях
- 🪤 [Canary](https://github.com/prismorsec/prismor/blob/main/docs/canary.md) размещает файлы учётных данных-приманок, которые вызывают находку уровня CRITICAL в момент, когда агент их читает, выявляя поведение разведки
- 🪪 [IAM](https://github.com/prismorsec/prismor/blob/main/docs/iam.md) даёт каждому агенту именованную идентичность и профиль разрешений с наименьшими привилегиями, когда несколько агентов используют одно рабочее пространство
- 🧩 [Агенты фреймворков](https://github.com/prismorsec/prismor/blob/main/docs/frameworks-overview.md) защищает продакшн-агентов (OpenAI Agents SDK, LangChain/LangGraph на Python и JS, CrewAI, browser-use, Pydantic AI, AutoGen Core, Agno, Semantic Kernel, Google ADK, BeeAI, Claude Agent SDK, Vercel AI SDK, Mastra) одним вызовом — оберните каждый запрос в `use_subject("user:alice")`, и мультитенантный агент получит атрибуцию по пользователям, профили IAM по пользователям и приостановку по пользователям
- 🎯 [Ограниченный агент](https://github.com/prismorsec/prismor/blob/main/docs/scoped-agent.md) синтезирует минимальные, специфичные для задачи правила для каждой сессии, чтобы внедрённый уход от задачи был заблокирован
- 🧬 [Обучение](https://github.com/prismorsec/prismor/blob/main/docs/learning.md) анализирует историю сессий, чтобы предлагать новые правила, отмечать ложные срабатывания и обнаруживать обход
- ⚖️ [Многослойная политика и исключения](https://github.com/prismorsec/prismor/blob/main/docs/policy-layers-and-exemptions.md) охватывает режимы observe/enforce для каждого правила, неотменяемый нижний уровень и предоставляемые администратором ограниченные по времени исключения на уровнях организации / проекта / репозитория
- 🔐 [Явный выбор enforce и окно разблокировки](https://github.com/prismorsec/prismor/blob/main/docs/cli-reference.md#choosing-what-blocks) — настройка enforce начинается с того, что ничего не блокируется, и вы выбираете набор; `prismor allow` создаёт узкие исключения, а `prismor unlock` открывает защищённое паролем, ограниченное по времени окно, в котором агент может редактировать политику (но никогда — правила самозащиты, охраняющие сам Prismor)
- 📡 [Живая телеметрия](https://github.com/prismorsec/prismor/blob/main/docs/live-telemetry.md) охватывает опциональное подключение к корпоративной панели управления — регистрацию устройств, подписанную удалённую политику и отредактированную телеметрию, передаваемую в самостоятельно размещённую панель организации
- 🔌 [Приёмники телеметрии](https://github.com/prismorsec/prismor/blob/main/docs/telemetry-sinks.md) пересылают каждую находку в то, что вы уже используете — коллектор OpenTelemetry (логи OTLP/HTTP), Splunk HEC, Datadog, syslog, вебхук или локальный файл в формате JSON/CEF/OCSF — отправка происходит до решения о блокировке и никогда не может задержать вызов инструмента
- 📊 [Панель управления](https://github.com/prismorsec/prismor/blob/main/docs/dashboard.md) охватывает терминальную и локальную веб-панели, а также форензику сессий, при этом `prismor tokens` показывает, куда на самом деле ушли контекст и расход токенов сессии
- 🩺 [Работоспособность и восстановление](https://github.com/prismorsec/prismor/blob/main/docs/cli-reference.md) — `prismor doctor` проверяет работоспособность каждой подсистемы (хуки, подпись политики, регистрация, приёмник телеметрии, состояние цепочки), а `prismor pause` / `pause-hard` приостанавливает *только принудительные меры* для человека во время инцидента, пока ведение журнала в режиме наблюдения продолжается
- 🧾 [Подписанный журнал аудита](https://github.com/prismorsec/prismor/blob/main/docs/audit-trail.md) связывает хеш-цепочкой и подписывает Ed25519 каждое действие агента локально, поэтому `prismor trail verify` доказывает, что история не была отредактирована, удалена или перезаписана
- 🔖 [Подписанные квитанции телеметрии](https://github.com/prismorsec/prismor/blob/main/docs/telemetry-receipts.md) — это схема передачи для записей, которые сообщает устройство: канонические байты, два слоя целостности и эталонный верификатор без зависимостей, чтобы SIEM или аудитор могли проверить квитанцию без Prismor
- 📑 [Пакет аттестации](https://github.com/prismorsec/prismor/blob/main/docs/attestation-bundle.md) упаковывает состояние защищённости, инвентаризацию агентов, обнаружение хостов, покрытие контроля фреймворков (OWASP LLM/Agentic, NIST AI RMF, EU AI Act) и якорь журнала в один подписанный Ed25519 файл, который аудитор перепроверяет с помощью `prismor attest verify`
- 🔦 [Обнаружение хостов](https://github.com/prismorsec/prismor/blob/main/docs/attestation-bundle.md#host-discovery) сканирует машину с помощью `prismor discover` и отмечает любого ИИ-агента, работающего без хуков Prismor (теневой ИИ)
- ⏪ [Загрузка транскриптов](https://github.com/prismorsec/prismor/blob/main/docs/transcript-ingest.md) восстанавливает, что делали ваши агенты *до* установки Prismor — `prismor ingest --discover` воспроизводит транскрипты сессий с диска через живой движок политик, поэтому панель управления заполняется в первый же день, и вы можете точно увидеть, что заблокировало бы переключение правила в режим enforce, плюс `--coverage` для сессий, работавших без мониторинга
- 🗺️ [Обзор архитектуры агентного ИИ](https://github.com/prismorsec/prismor/blob/main/docs/agentic-architecture-review.md) — это контрольный список на этапе проектирования для мультиагентных систем и систем с использованием инструментов: область разрешений, целостность памяти, доверие между агентами, размещение человеческого надзора — каждый пункт сопоставлен с реальным ID контроля и, где он существует, с правилом Prismor, которое его подстраховывает
- 🐳 [Docker и контейнеры](https://github.com/prismorsec/prismor/blob/main/docs/docker.md) охватывает укрепление контейнеров, предварительные требования и известные ограничения

Полная карта команд по всем возможностям: [Справочник по CLI](https://github.com/prismorsec/prismor/blob/main/docs/cli-reference.md).

Эти возможности соответствуют [OWASP Top 10 для приложений LLM](https://genai.owasp.org/llm-top-10/) — охватывая инъекции в промпты (LLM01), раскрытие конфиденциальной информации (LLM02), цепочку поставок (LLM03), ненадлежащую обработку вывода (LLM05) и чрезмерную автономность (LLM06).

---

## Сценарии и варианты использования<a name="scenarios-and-use-cases" />

Реальные рабочие процессы с командами и конфигурацией, которые заставляют их работать — подключение команды в режиме наблюдения, атрибуция IAM по пользователям для мультиагентных и фреймворковых конвейеров, обнаружение теневого ИИ, ступенчатое одобрение для операций с высокими ставками и генерация подписанного пакета аттестации для аудита соответствия. См. [USE_CASES.md](https://github.com/prismorsec/prismor/blob/main/USE_CASES.md).

---

## Конфигурация<a name="configuration" />

### Справочник команд

Полная карта команд: [docs/cli-reference.md](https://github.com/prismorsec/prismor/blob/main/docs/cli-reference.md).

### Режимы управления

`prismor setup` просит вас выбрать одну позицию вместо ручной настройки шести осей политики. Каждая компилируется в `.prismor/policy.yaml` — принудительные меры, исходящий трафик, доступ к инструментам, правила тегов, песочница и граница данных вместе.

![Режимы управления Prismor](https://raw.githubusercontent.com/prismorsec/prismor/main/assets/prismor-modes.png)

| Режим | Для | Покрытие | Трение |
|---|---|---|---|
| `dev-safe` | Работа над функциональностью в коде, который вы не читали | 31% | 9% |
| `trusted-workspace` | Доверенные внутренние репозитории, локальная работа с Docker | 34% | 9% |
| `regulated-airgap` | PII/PHI, SOC 2, EU AI Act — без сети, без оболочки | 100% | 90% |```bash
prismor mode list                            # compare the three
prismor mode explain dev-safe                # the trade, including what it does NOT stop
prismor mode apply dev-safe                  # compile it into this workspace
prismor mode apply regulated-airgap --observe   # what it would block, blocking nothing

Каждый режим указывает свой остаточный риск. Полная расшифровка: docs/modes.md.

Observe / Enforce (для каждого правила, на основе политики)

Применение определяется для каждого правила вашей политикой, а не единым глобальным переключателем. Каждое правило несёт mode, а settings.default_mode (по умолчанию observe) покрывает любое правило, которое его не задаёт:

РежимПоведение
observe (по умолчанию)Логирует вызов инструмента и обнаружение. Никогда не блокирует. Безопасен для адаптации и аудита.
enforceБлокирует действие в реальном времени до того, как агент его выполнит.

Из коробки всё работает в режиме observe — ничего не блокируется, пока вы не переключите правила (или default_mode) на enforce в вашей политике:```yaml

.prismor/policy.yaml

settings: default_mode: observe # global default for rules without their own mode rules:

  • id: destructive-rm-rf mode: enforce # this rule blocks; the rest still just observe
Политика является авторитетной: правило, установленное в `enforce`, блокирует **независимо от того, как был установлен хук** (`--mode`), поэтому администратор, который переключает правило в enforce через [control plane](https://github.com/prismorsec/prismor/blob/main/docs/live-telemetry.md), блокирует даже на устройствах, установленных в режиме observe. См. [Layered Policy & Exemptions](https://github.com/prismorsec/prismor/blob/main/docs/policy-layers-and-exemptions.md) для приоритета org / project / repo и неотменяемого минимума.

`prismor setup` делает выбор явным, а не подразумеваемым: установка в режиме **observe** поставляется с включёнными настройками по умолчанию, тогда как установка в режиме **enforce** начинается с *ничего не выбранного* и просит вас выбрать, что блокирует (нижняя граница безопасности предварительно помечена как *рекомендуемая* — нажмите `a`, чтобы принять её). Ваш выбор записывается в `.prismor/policy.yaml` как `settings.selection: explicit` плюс одна строка на правило, так что то, что блокирует, читаемо в файле. Когда правило затем блокирует что-то легитимное, сообщение об отказе выводит точную команду `prismor allow <rule> --pattern '<literal>'`, которая это исправляет — для выполнения человеком; агентам запрещено редактировать собственную конфигурацию Prismor всегда включёнными правилами самозащиты, если только человек не откроет короткое окно, защищённое паролем, с помощью `prismor unlock`. См. [Choosing what blocks](https://github.com/prismorsec/prismor/blob/main/docs/cli-reference.md#choosing-what-blocks) и [Making exceptions](https://github.com/prismorsec/prismor/blob/main/docs/cli-reference.md#making-exceptions).

Флаг установки по-прежнему задаёт начальную позицию, и установка в режиме observe в сочетании с `PRISMOR_LOCAL_DRY_RUN=1` действует как локальный выключатель пробного запуска, который подавляет всё блокирование:```bash
prismor install-hooks --agent all --mode observe    # start in observe everywhere
prismor install-hooks --agent all --mode enforce    # honor policy enforce rules

Обновляетесь с релиза до появления mode? Обратная совместимость сохранена: политика, созданная до появления режимов для отдельных правил (в ней задан settings.block_categories, но нет default_mode и нет mode на уровне правил), сохраняет своё исходное поведение — эти категории по-прежнему блокируются при установке с --mode enforce. Как только ваша политика переходит на модель с режимами для отдельных правил (любой mode/default_mode), она становится полностью определяемой политикой, как описано выше.


Архитектура

Каждый вызов инструмента проходит один и тот же путь: он входит через поверхность интеграции (этап 1), оценивается до своего выполнения (этап 2), выдаёт вердикт allow/warn/block и попадает в защищённые от подмены доказательства (этап 3). Этап 4 необязателен — это самостоятельно размещаемый управляющий слой, подписанная политика которого становится определяющей для этапа 2 после регистрации устройства.```mermaid flowchart TD

%% ── sources ──────────────────────────────────────────────── subgraph SRC["Agents Prismor protects"] direction LR AC["Coding agents
Claude Code · Codex · Cursor · Windsurf · Copilot
OpenClaw · Hermes · Grok · Kiro · Crush
OpenHands · Qwen · Continue · Goose"] AF["Production frameworks
OpenAI Agents · LangChain / LangGraph · CrewAI · browser-use
Pydantic AI · AutoGen Core · Agno · Semantic Kernel · Google ADK
BeeAI · Claude Agent SDK · Vercel AI SDK · Mastra"] end

%% ── stage 1 ──────────────────────────────────────────────── subgraph ENTRY["Stage 1 · Integration surface"] direction LR H(["Runtime hooks
pre / post tool-call
per-agent config"]) G(["MCP gateway
fronts every MCP server
injection-scans responses"]) F(["Framework adapters
in-process + HTTP eval server
per-user via use_subject"]) end

%% ── stage 2 ──────────────────────────────────────────────── subgraph EVAL["Stage 2 · Evaluated before the call executes"] direction TB D(["Tool-call dispatcher"]) P["Policy engine
YAML rules · per-rule observe / enforce
layered org → project → repo · non-overridable floor"] CHK["Pre-execution checks
Semantic guard · Egress control · MCP guardrails · Tool tags
IAM and agent controls · Scoped session rules
Script-content inspection · Docker sandbox"] SEC["Secret and supply-chain protection
Cloak placeholders + output scrub · Env guard · Sweep
Canary tripwires · Skill scanner
Supply-chain scoring → npm · pip · cargo · go"] end

FEED[/"Signed advisory feed · Prismor intel + NVD"/] V{"Allow · Warn · Block
every block prints narrowest-first unblock steps"}

%% ── stage 3 ──────────────────────────────────────────────── subgraph EV["Stage 3 · Evidence and feedback"] direction LR ST[("Session store
SQLite + JSONL
session forensics")] VIEW["Views
Web + terminal dashboard
Status · Tokens · Audit · Doctor"] PROOF["Tamper-evident
Signed trail — hash chain + Ed25519
Attestation bundle · Host discovery"] LEARN["Learning
propose rules · flag false
positives · detect evasion"] end

PAST[/"Transcript ingest · replays pre-install history through the live policy"/]

%% ── stage 4 ──────────────────────────────────────────────── subgraph ORG["Stage 4 · Optional self-hosted control plane"] direction LR RP["Signed remote policy
layered rules · time-boxed
exemptions · pause / resume"] TEL["Live telemetry
redacted events
offline spool"] OD["Org dashboard
policy · devices
sessions · approvals"] end

%% ── flow ─────────────────────────────────────────────────── AC --> ENTRY AF --> ENTRY ENTRY --> D D --> P P --> CHK P --> SEC FEED -.-> SEC CHK --> V SEC --> V V --> ST PAST -.-> ST ST --> VIEW ST --> PROOF ST --> LEARN LEARN -.->|"proposed rules"| P RP ==>|"authoritative once enrolled"| P ST -->|"redacted"| TEL TEL --> OD

### Один движок политик, все поверхности принудительного применения

У этапа 1 больше одной двери, и это сделано намеренно: ни одна точка перехвата не покрывает всех агентов. Хуки — самые широкие, но не каждый хост их предоставляет; MCP — единственное место, где некоторых агентов вообще можно перехватить; агенты production-фреймворков работают там, где нет хоста для подключения хуков.

Поэтому каждая поверхность нормализует увиденное в одно каноническое событие и запрашивает вердикт у одного и того же оценщика. Правило, написанное один раз, покрывает одно и то же действие независимо от того, как оно приходит.

| поверхность | чем управляет | отклонить | переписать ввод | редактировать вывод |
|---|---|:--:|:--:|:--:|
| Хуки кодинг-агентов | вся поверхность инструментов агента | да | Claude/Qwen | нет |
| Шлюз MCP | каждый MCP-сервер за одним коннектором | да | да | да |
| Зеркалированные встроенные инструменты | собственные Bash/Read/Write агента, через MCP | да | да | да |
| Адаптеры SDK фреймворков | внутрипроцессные агенты (13 фреймворков) | да | нет | нет |
| `prismor eval-server` | не-Python вызывающие стороны, внешние прокси | да | да | да |
| Канал inference-хуков | вебхук хостируемого хода транскрипта | да | нет | нет |

«Редактировать вывод» — вот почему существует зеркало: хук перед действием может только *отклонить* чтение файла, тогда как поверхность, несущая ответ, может вернуть файл с замаскированными учётными данными.

Это проверяется, а не утверждается — `tests/test_surface_conformance.py` воспроизводит одно действие через собственный нормализатор каждой поверхности и завершается ошибкой, если они расходятся в вердикте или правиле.

См. [контракт решений](https://github.com/prismorsec/prismor/blob/main/docs/decision-contract.md) для формы события и словаря вердиктов, и [поверхности управления](https://github.com/prismorsec/prismor/blob/main/docs/governance-surfaces.md) для того, какую поверхность использовать для каждого агента.

---

## Избранные возможности с пояснениями<a name="selected-capabilities-walked-through" />

Три модуля из [Возможностей](#capabilities), с настройкой, выводом и результатами.

### Гибридная семантическая защита от промпт-инъекций<a name="hybrid-semantic-prompt-injection-defense" />

Правила на регулярных выражениях ловят известные формы инъекций. Семантический страж добавляет слой, учитывающий намерение: эвристический предварительный фильтр обрабатывает очевидные случаи за <1 мс, а неопределённые входные данные эскалируются к LLM-судье, который в любом случае выносит вердикт — он подтверждает перефразированные атаки, которые регулярное выражение увидело лишь наполовину, и снимает подозрения с безобидного текста, который задел сигнал притязания на авторитет. Протестировано на 800+ случаях — **+30% полноты** без добавления ложных срабатываний, включая перефразированные инъекции и инъекции внутри файлов, обходящие регулярные выражения.

![Результаты семантического стража](https://assets.kitploit.com/production/public/readmes/13903/a32297d3549c5ff60690c8dca14490f1d53a17a253d912bcb2187414dea3d018.png)

Судья работает на логине, который у вас уже есть — API-ключ не нужен. `prismor setup` спрашивает об этом на шаге **LLM judge**; в скриптовом режиме:```bash
prismor setup --non-interactive --judge claude   # Claude Code CLI, your Claude login
prismor setup --non-interactive --judge codex    # Codex CLI, your ChatGPT login
prismor setup --non-interactive --judge api --judge-model gpt-4o-mini   # any litellm model + key

| -s | --server | Server mode | | -c | --client | Client mode | | -p | --port | Порт | | -h | --host | Хост | | -v | --verbose | Подробный вывод | | -d | --debug | Режим отладки | | -l | --log | Файл журнала | | -o | --output | Выходной файл | | -i | --input | Входной файл | | -t | --timeout | Тайм-аут | | -r | --retry | Количество повторов | | -n | --threads | Количество потоков | | -q | --quiet | Тихий режим | | -f | --force | Принудительное выполнение | | -y | --yes | Автоматическое подтверждение | | -a | --all | Все элементы | | -e | --exclude | Исключить элементы | | -k | --keep | Сохранить файлы | | -m | --mode | Режим работы | | -g | --generate | Сгенерировать | | -x | --execute | Выполнить | | -z | --compress | Сжать | | -u | --update | Обновить | | -w | --write | Записать | | -b | --backup | Резервное копирование | | -j | --json | Вывод в формате JSON | | -V | --version | Показать версию | | -H | --help | Показать справку |

Примеры

# Базовое использование
tool -s -p 8080

# С подробным выводом
tool -c -h example.com -v

# С пользовательским тайм-аутом
tool -t 30 -r 3

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

server:
  host: 0.0.0.0
  port: 8080
  timeout: 30

client:
  host: localhost
  port: 8080
  retry: 3

logging:
  level: info
  file: /var/log/tool.log

Устранение неполадок

ПроблемаРешение
Ошибка подключенияПроверьте настройки брандмауэра
Тайм-аутУвеличьте значение тайм-аута
Отказано в доступеЗапустите с правами администратора
Порт занятИзмените номер порта
Файл не найденПроверьте путь к файлу
Недостаточно памятиУвеличьте лимит памяти
Ошибка конфигурацииПроверьте синтаксис файла конфигурации
Неизвестная ошибкаВключите режим отладки

Часто задаваемые вопросы

В: Как изменить порт по умолчанию?

О: Используйте флаг -p или --port:

tool -p 9090

В: Как включить подробный вывод?

О: Используйте флаг -v или --verbose:

tool -v

В: Как сохранить вывод в файл?

О: Используйте флаг -o или --output:

tool -o output.txt

В: Как запустить в фоновом режиме?

О: Используйте & или nohup:

nohup tool -s &

В: Как обновить инструмент?

О: Используйте флаг -u или --update:

tool -u

В: Как создать резервную копию конфигурации?

О: Используйте флаг -b или --backup:

tool -b

В: Как экспортировать результаты в JSON?

О: Используйте флаг -j или --json:

tool -j

В: Как проверить версию?

О: Используйте флаг -V или --version:

tool -V

В: Как получить справку?

О: Используйте флаг -H или --help:

tool -H

Ссылки

Лицензия

Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.

Благодарности

  • Спасибо всем участникам проекта
  • Спасибо сообществу открытого исходного кода
  • Спасибо всем, кто сообщает об ошибках
  • Спасибо всем, кто предлагает новые функции

Контакты


Отказ от ответственности: Этот инструмент предназначен только для законного использования. Пользователи несут ответственность за соблюдение всех применимых законов и нормативных актов. Авторы не несут ответственности за любое неправомерное использование или ущерб, причинённый этим программным обеспечением.```yaml

.prismor/policy.yaml

settings: semantic_guard: provider: codex # api | claude | codex model: "" # "" = that CLI's default model

| `-s` | `--server` | Server URL (default: `http://localhost:8080`) |
| `-t` | `--token` | API token for authentication |
| `-o` | `--output` | Output format: `text`, `json`, `yaml` (default: `text`) |
| `-v` | `--verbose` | Enable verbose output |
| `-q` | `--quiet` | Suppress non-essential output |
| `-h` | `--help` | Show help message |
| `-V` | `--version` | Show version information |

### Примеры

```bash
# Проверка подключения к серверу
kitploit-cli --server http://localhost:8080 health

# Список всех доступных инструментов
kitploit-cli tools list

# Получение информации о конкретном инструменте
kitploit-cli tools get nmap

# Поиск инструментов по ключевому слову
kitploit-cli tools search "network scanner"

# Экспорт списка инструментов в формате JSON
kitploit-cli tools list --output json > tools.json

# Запуск сканирования с указанным токеном
kitploit-cli scan start --token YOUR_API_TOKEN --target example.com

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

CLI можно настроить с помощью файла конфигурации или переменных окружения.

Файл конфигурации

По умолчанию CLI ищет файл конфигурации в следующих местах:

  1. ./.kitploit.yaml
  2. ~/.config/kitploit/config.yaml
  3. /etc/kitploit/config.yaml

Пример файла конфигурации:

server: http://localhost:8080
token: YOUR_API_TOKEN
output: json
verbose: false
timeout: 30s

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

Все параметры конфигурации можно переопределить с помощью переменных окружения с префиксом KITPLOIT_:

ПеременнаяОписание
KITPLOIT_SERVERURL сервера
KITPLOIT_TOKENAPI-токен
KITPLOIT_OUTPUTФормат вывода
KITPLOIT_VERBOSEВключить подробный вывод
KITPLOIT_TIMEOUTТаймаут запроса

Пример использования:

export KITPLOIT_SERVER=http://localhost:8080
export KITPLOIT_TOKEN=YOUR_API_TOKEN
kitploit-cli tools list

Разработка

Требования

  • Go 1.21 или выше
  • Make (опционально)

Сборка из исходного кода

# Клонирование репозитория
git clone https://github.com/kitploit/kitploit-cli.git
cd kitploit-cli

# Сборка бинарного файла
make build

# Или напрямую с помощью go
go build -o kitploit-cli ./cmd/kitploit-cli

Запуск тестов

# Запуск всех тестов
make test

# Запуск тестов с покрытием
make test-coverage

# Запуск линтера
make lint

Структура проекта

kitploit-cli/
├── cmd/
│   └── kitploit-cli/
│       └── main.go
├── internal/
│   ├── api/
│   ├── config/
│   └── output/
├── pkg/
│   └── client/
├── Makefile
├── go.mod
└── README.md

Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения подробной информации.

Вклад в проект

Мы приветствуем вклад в развитие проекта! Пожалуйста, ознакомьтесь с руководством CONTRIBUTING.md перед отправкой pull request.

Поддержка

Только эвристики, пока вы не выберете судью. Смотрите [docs/semantic-guard.md](https://github.com/prismorsec/prismor/blob/main/docs/semantic-guard.md) для полной настройки и записей работы судьи внутри живых сессий Claude Code и Codex.

### Самостоятельно размещаемая панель управления<a name="self-hosted-dashboard" />```bash
prismor dashboard            # opens http://127.0.0.1:7070 in your browser
prismor dashboard --port 8080
prismor dashboard --no-open  # headless server only (was: prismor serve)

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

Самостоятельно размещаемая панель управления

image

Контроль цепочки поставок

prismor оборачивает ваш менеджер пакетов и оценивает каждую установку по актуальной информации об угрозах до её запуска — возраст, количество мейнтейнеров, установочные скрипты и известные IOC. Поставляется с покрытием для mini-shai-hulud (май 2026) и атаки AntV hijacked-maintainer (май 2026).```bash prismor supplychain npm install express # passes, runs npm prismor supplychain npm install @tanstack/react-router # BLOCK: IOC match (score 100) prismor supplychain pip install requests numpy prismor supplychain pnpm add lodash

Вердикты: `< 30` разрешить · `30–59` предупредить · `≥ 60` заблокировать. Совпадение с IOC всегда блокирует. Настройте псевдонимы для ваших менеджеров пакетов, чтобы автоматически контролировать каждую установку.

`prismor supplychain harden` записывает настройки блокировки в `.npmrc` / `.yarnrc.yml` / `pip.conf` / `.cargo/config.toml`, чтобы менеджер пакетов применял их даже при обходе псевдонима (CI, плагины IDE).```bash
prismor supplychain harden           # apply to current directory
prismor supplychain harden --dry-run

Полную таблицу оценки, поддержку экосистем и формат IOC см. в docs/supply-chain.md.


Отключение Prismor

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

1. Полное удаление хуков

Удаляет записи hook-dispatch из конфигурации хуков агента, так что Prismor перестаёт получать события PreToolUse/PostToolUse/UserPromptSubmit вообще.```bash prismor uninstall-hooks --agent claude --scope project # this workspace only prismor uninstall-hooks --agent claude --scope user # global (all workspaces) prismor uninstall-hooks --agent all --scope project # every supported agent, this workspace

`--scope` по умолчанию имеет значение `project`. **Project и user scope редактируют разные файлы** — запуск только с `--scope user` *не* затрагивает локальные хуки рабочего пространства, и наоборот:

| Агент | Project scope | User scope |
|---|---|---|
| Claude Code | `<workspace>/.claude/settings.json` | `~/.claude/settings.json` |
| Cursor | `<workspace>/.cursor/hooks.json` | `~/.cursor/hooks.json` |
| Windsurf | `<workspace>/.windsurf/hooks.json` | `~/.codeium/windsurf/hooks.json` |
| OpenClaw | `<workspace>/.openclaw/plugins.json` | `~/.openclaw/config.json` |
| Hermes | `<workspace>/.hermes/plugins.json` | `~/.hermes/config.json` |
| Codex | `<workspace>/.codex/hooks.json` | `~/.codex/hooks.json` |
| Copilot | `<workspace>/.github/copilot/hooks.json` | `~/.copilot/hooks.json` |
| Grok Build | `<workspace>/.grok/hooks/prismor.json` | `~/.grok/hooks/prismor.json` |
| Kiro CLI | `<workspace>/.kiro/agents/kiro_default.json` | `~/.kiro/agents/kiro_default.json` |
| Crush | `<workspace>/crush.json` | `~/.config/crush/crush.json` |
| OpenHands | `<workspace>/.openhands/hooks.json` | `~/.openhands/hooks.json` |
| Qwen Code | `<workspace>/.qwen/settings.json` | `~/.qwen/settings.json` |
| Continue CLI | `<workspace>/.continue/settings.json` | `~/.continue/settings.json` |
| Goose | `<workspace>/.agents/plugins/prismor/hooks/hooks.json` | `~/.agents/plugins/prismor/hooks/hooks.json` |

Если вы запускаете только один scope, хуки другого (если они установлены) продолжат срабатывать. Запустите оба, если хотите полностью убрать Prismor из картины для агента.

Запущенная сессия уже загрузила свою конфигурацию хуков — удаление в середине сессии не вступит в силу, пока вы не запустите новую сессию.

Если `prismor uninstall-hooks` сообщает об успехе, но хуки всё ещё срабатывают, вероятно, у вас устаревшая установка — например, копия, установленная через `pipx`, которая является устаревшим снимком dev-версии. Проверьте `which immunity` и, если он указывает на `pipx` venv, переустановите из текущего исходного кода (`pipx install --force <path-or-package>`) перед повторным запуском удаления. В крайнем случае отредактируйте файл конфигурации хуков вручную.

### 2. Мягкое отключение: режим наблюдения + dry-run

Оставьте хуки установленными, но не давайте им блокировать:```bash
prismor install-hooks --agent all --scope project --mode observe
PRISMOR_LOCAL_DRY_RUN=1   # set in your shell/session env

--mode observe регистрирует находки без блокировки. PRISMOR_LOCAL_DRY_RUN=1 дополнительно подавляет блокировку для любой находки, которая иначе была бы заблокирована при установленных в режиме observe хуках (prismor/runtime/cli.py, проверяется при args.mode == "observe"). Это правильный рычаг, если вы хотите, чтобы телеметрия/логирование Prismor продолжали работать, пока вы временно останавливаете принудительное применение.

Это не влияет на правила политики, установленные в mode: enforce в .prismor/policy.yaml — они остаются политически авторитетными независимо от того, как был установлен хук (см. Observe / Enforce выше).

3. Очистка правил scoped-agent для сессии

Scoped Agent синтезирует список allowed_tools/deny_tools для каждой сессии в .prismor/scoped/{session_id}.json. Эта проверка не зависит от --mode хука — инструмент в deny_tools жёстко задан как action: block / mode: enforce в prismor/runtime/scoped_agent.py, поэтому он блокируется даже когда хуки установлены с --mode observe. Удаление хуков или переключение в режим observe не снимет scoped-запрет.```bash prismor scope list # find the session ID prismor scope show ID # inspect its allowed_tools / deny_tools (latest works too) prismor scope clear ID # remove the scoped rules for that session prismor scope edit ID # or hand-edit deny_tools in $EDITOR

Массовой очистки нет — каждая сессия очищается по ID отдельно. Если сессия была ограничена областью до того, как вы выполнили `scope clear`, самое чистое решение — обычно начать новую сессию, а не гоняться за кэшированным состоянием существующей.

---

## Бенчмарки<a name="benchmarks" />

Измеренные накладные расходы составляют 0,8 мс на вызов инструмента по 10 000 смоделированных сессий агента, что ниже порога в 1 мс для каждой протестированной категории задач.

![Результаты симуляции Prismor](https://assets.kitploit.com/production/public/readmes/13903/9709be2f3ab32acf58f2d4d872290dda89d0515e595b7c42b7cddf7cbbcef036.png)

Полную методологию, разбивку по категориям и анализ задержек см. в [benchmark.md](https://github.com/prismorsec/prismor/blob/main/benchmark.md).

---

## Участие в разработке<a name="contributing" />

PR приветствуются. Прочитайте [CONTRIBUTING.md](https://github.com/prismorsec/prismor/blob/main/CONTRIBUTING.md) перед началом — там объясняется самое важное здесь: **переиспользуйте уже существующие механизмы и решайте задачу минимальным числом строк.** Меньшие диффы вливаются быстрее.

Кратко:

- Новые правила обнаружения добавляются в `prismor/runtime/default_policy.yaml` в соответствии со схемой в `prismor/runtime/policy_schema.json` — шаблоны обнаружения никогда не размещаются в Python
- Проверьте [таблицу точек расширения](https://github.com/prismorsec/prismor/blob/main/CONTRIBUTING.md#before-you-write-code-check-whether-the-seam-already-exists) перед добавлением нового модуля; большинство изменений — это конфигурация, а не код
- Тесты находятся в `tests/` — запустите `bash scripts/run_security_tests.sh` перед открытием PR
- Сначала откройте issue, если не уверены, куда что-то подходит

Участвуя, вы соглашаетесь с [Кодексом поведения](https://github.com/prismorsec/prismor/blob/main/CODE_OF_CONDUCT.md).

---

- [Prismor.dev](https://prismor.dev)

Категории