CLI-сканер безопасности, созданный для эпохи агентного ИИ. Обнаруживает ошибки конфигурации CI/CD, риски разрешений агентов, внедрение MCP-инструментов, захардкоженные секреты и AI-зависимости, помеченные по DMCA.
Находите рискованный код, уязвимости ИИ-агентов и проблемы цепочки поставок до того, как они попадут в продакшн.
Веб-сайт · Документация · Безопасность и потоки данных · Бенчмарки · Цены · Блог · Участие
Ship Safe — это ИИ-сканер безопасности для современных команд разработчиков. Он запускается локально в вашем репозитории, находит проблемы в коде приложения, ИИ-агентах, конфигурациях MCP, промптах, зависимостях, CI/CD, секретах и облачных конфигурациях, а затем помогает просмотреть и применить безопасные исправления.
Запустите сканирование одной командой:
npx ship-safe
Без регистрации. Для сканирования не требуется API-ключ. Базовые проверки работают офлайн. Режимы red-team с поддержкой ИИ используют вашего настроенного провайдера, когда он доступен.
Используйте --no-ai, чтобы гарантировать полностью локальное сканирование. Классификация на основе провайдера, глубокий анализ и GPT-Red отправляют ограниченный контекст напрямую вашему выбранному провайдеру после маскировки учётных данных с максимальными усилиями. Точные границы и лимиты контекста см. в разделе Безопасность и потоки данных.
# Интерактивный REPL: сканирование, исправление и вопросы в одном сеансе
npx ship-safe
# Полный аудит: секреты + 29 агентов + зависимости + план исправлений
npx ship-safe audit .
# Сценарии red-team для ИИ-агентов для контента, читаемого агентами
npx ship-safe red-team . --gpt-red
# Интерактивный агент исправлений: план, diff, одобрение, проверка
npx ship-safe agent .
npx ship-safe agent . --severity critical # только критические находки
npx ship-safe agent . --branch --pr # исправление в ветке + открытие PR
# Отменить последнее исправление
npx ship-safe undo
# Режим CI/CD — завершается с ошибкой при любой критической находке
npx ship-safe ci . --sarif results.sarif
npx ship-safe ci . --fail-on high # строже: критическая или высокая
| Область | Примеры |
|---|---|
| Безопасность ИИ и LLM | Инъекции промптов, захват агента, чрезмерные полномочия, отравление памяти, отравление RAG, небезопасные вызовы инструментов |
| Конфигурации MCP и агентов | Чрезмерно широкие разрешения инструментов, отравленные реестры, ненадёжные транспорты, опасные списки разрешений |
| Безопасность приложений | SQL/NoSQL-инъекции, XSS, SSRF, обход аутентификации, path traversal, небезопасные API-маршруты |
| Секреты и соответствие требованиям | API-ключи, токены, учётные данные, PII, утёкшие секреты в истории git |
| Цепочка поставок | Typosquatting, путаница зависимостей, рискованные скрипты установки, незакреплённые ИИ-действия |
| CI/CD | Отравление пайплайнов, незакреплённые GitHub Actions, логирование секретов, небезопасные триггеры рабочих процессов |
ship-safe ci, чтобы блокировать рискованные сборки и загружать SARIF в сканирование кода GitHub.
CLI с открытым исходным кодом — это самый быстрый способ сканировать любой репозиторий локально. Обновитесь, когда вам понадобится хостинговый рабочий процесс вокруг того же сканера:
| Потребность | Использование |
|---|---|
| Локальные сканирования, аудиты и исправления с помощью агентов | Бесплатный CLI |
| История сканирований, облачная панель и PDF-отчёты | Pro |
| Общее рабочее пространство, PR Guardian, командные отчёты и совместная работа | Team |
Сравните тарифы на shipsafe.sh/pricing.
Ship Safe Cloud, хостинговая панель для истории сканирований, PR Guardian, биллинга и командных рабочих процессов, разрабатывается в приватном репозитории, поскольку содержит коммерческий код продукта и инфраструктурные рабочие процессы. Публичный репозиторий ship-safe остаётся сосредоточенным на CLI под лицензией MIT, агентах безопасности, правилах, фикстурах, интеграциях CI и документации. Границы репозитория см. в Ship Safe Cloud.
Все агенты работают параллельно. Каждый автоматически пропускает неподходящие проекты.
| Агент | Категория | Что обнаруживает |
|---|---|---|
| InjectionTester | Уязвимости кода | SQL/NoSQL-инъекции, инъекции команд, XSS, path traversal, XXE, ReDoS, загрязнение прототипов |
| AuthBypassAgent | Аутентификация | Ошибки JWT (alg:none, слабые секреты), CSRF, ошибки конфигурации OAuth, BOLA/IDOR, обход TLS |
| SSRFProber | SSRF | Пользовательский ввод в fetch/axios, метаданные облачных эндпоинтов, внутренние IP |
| SupplyChainAudit | Цепочка поставок | Typosquatting, версии с подстановочными знаками, подозрительные скрипты установки, путаница зависимостей |
| ConfigAuditor | Конфигурация | Docker (root-пользователь, :latest), Terraform, Kubernetes, CORS, CSP, Firebase, Nginx |
| SupabaseRLSAgent | Аутентификация | Ключ service_role в клиентском коде, таблицы без RLS, вставки с анонимным ключом |
| LLMRedTeam | AI/LLM | OWASP LLM Top 10: инъекции промптов, чрезмерные полномочия, утечка системного промпта |
| MCPSecurityAgent | AI/LLM | Неправильное использование MCP-серверов, отравление инструментов, typosquatting, непроверенные входные данные |
| AgenticSecurityAgent | AI/LLM | OWASP Agentic AI Top 10: захват агента, повышение привилегий, неправильное использование вызовов инструментов Kimi K3/OpenAI-совместимых |
| RAGSecurityAgent | AI/LLM | Инъекции контекста, отравление документов, контроль доступа к векторным БД |
| MemoryPoisoningAgent | AI/LLM | Инъекции инструкций в файлы памяти агентов, скрытые Unicode-полезные нагрузки (ASI-01, ASI-05) |
| PIIComplianceAgent | Соответствие требованиям | SSN, кредитные карты, email, номера телефонов в исходном коде |
| VibeCodingAgent | Уязвимости кода | Анти-паттерны ИИ-сгенерированного кода: отсутствие валидации, пустые catch, TODO-аутентификация |
| ExceptionHandlerAgent | Уязвимости кода | Пустые catch, необработанные отклонения, утёкшие стектрейсы (OWASP A10:2025) |
| AgentConfigScanner | AI/LLM |
Пост-процессоры: ScoringEngine · VerifierAgent (проверка активности секретов) · DeepAnalyzer (LLM-анализ потоков данных)
$ ship-safe
███████╗██╗ ██╗██╗██████╗ ███████╗ █████╗ ███████╗███████╗
...
v9.4.1 · DeepSeek · ~/my-project
/scan для поиска проблем · /agent для их исправления · /help для справки
shipsafe ›
| Команда | Что делает |
|---|---|
/scan | Повторное сканирование проекта |
/agent | Запуск интерактивного цикла исправлений |
/findings | Список находок из последнего сканирования |
/show <n> | Полная информация о находке n |
/plan <n> | Предпросмотр плана исправления для находки n (без записи) |
/undo [--all] | Отмена последнего исправления (или всех исправлений) |
/share | Публикация отчёта сканирования как публичного URL (7 дней) |
/diff | Показать diff рабочего дерева git |
/provider <name> | Смена LLM-провайдера в середине сеанса |
/quit | Выход (также Ctrl-D или Ctrl-C) |
Всё, что не начинается с /, отправляется LLM как свободный вопрос с вашими последними результатами сканирования в качестве контекста.
# .github/workflows/security.yml
name: Security Audit
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Security gate
run: npx ship-safe ci . --sarif results.sarif
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: results.sarif
Версия для GitLab CI находится в docs/examples/gitlab-security-workflow.yml.
Используйте Action из рабочего процесса pull_request, когда вы хотите, чтобы критические и высокие находки прикреплялись к изменённым строкам. Держите pull_request_target подальше от этого пути для форк-контрибуций: Ship Safe отказывается от этой привилегированной комбинации, потому что checkout может содержать ненадёжный код.
name: Ship Safe
on:
pull_request:
permissions:
contents: read
pull-requests: write
security-events: write
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: asamassekou10/[email protected]
with:
fail-on: high
inline: true
Инлайн-комментарии включаются по желанию и публикуют только критические/высокие находки. Повторный запуск задания обновляет сводку без создания дублирующих инлайн-комментариев.
Работает с любым провайдером — автоматически определяется из переменных окружения. Используйте --provider <name> для переопределения.
Anthropic · OpenAI · Google · DeepSeek · Kimi K3 / Moonshot · Groq · Together · Mistral · xAI · Perplexity · Ollama · LM Studio · любой OpenAI-совместимый эндпоинт
Kimi по умолчанию использует kimi-k3 через MOONSHOT_API_KEY или KIMI_API_KEY. Используйте --provider kimi --model kimi-k3 для длинноконтекстных GPT-Red и глубоких анализов.
Для длинноконтекстного red teaming с Kimi K3:
npx ship-safe red-team . --gpt-red --provider kimi --model kimi-k3 --k3-long-context
Ship Safe также проверяет реализации вызовов инструментов Kimi K3 / OpenAI-совместимых на динамическую загрузку инструментов из контекста промпта, отсутствие списков разрешений инструментов, принудительные вызовы инструментов на ненадёжном вводе и повторные результаты инструментов без исходного сообщения вызова инструмента ассистента.
Для базового сканирования API-ключ не требуется. ИИ-классификация и red-team --gpt-red используют вашего настроенного провайдера, когда он доступен, с детерминированным офлайн-фолбэком для проверок GPT-Red.
password = get_password() # ship-safe-ignore
Критические находки всегда сообщаются. Инлайн-комментарий не может скрыть их, и попытка подавить такую находку фиксируется в сканировании. Комментарий предназначен для человека, исключающего ложное срабатывание, и всё, что может записать строку вашего исходного кода — включая ИИ-агента — также может записать этот комментарий, поэтому самые высокие уровни серьёзности его не учитывают. Каждое подавление подсчитывается, поэтому сканирование, которое заглушило находки, никогда не выглядит как сканирование без них.
# .ship-safeignore
tests/fixtures/
docs/
Полнота — это лёгкая половина сканера. Инструмент, который помечает всё, ловит всё и бесполезен, поэтому мы измеряем другую половину: что Ship Safe говорит о коде, который почти наверняка в порядке.
Снижение с 1031 находки по тем же четырём проектам до версии v9.6.3, проверено на NodeGoat и DVWA, чтобы снижение было уменьшением шума, а не потерей обнаружения. Оставшаяся 1 критическая находка — ложное срабатывание, и бенчмарк указывает, какая именно и почему.
Корпус закреплён по коммиту, воспроизводим одной командой, лимиты задокументированы: benchmarks/false-positives/
Запускайте Ship Safe вместе с ними, а не вместо них. CodeQL выполняет межпроцедурный анализ потоков данных, который Ship Safe не пытается делать, Gitleaks — специалист по секретам, а Trivy имеет реальную базу CVE за собой.
Ship Safe покрывает более узкий вопрос: что ИИ-агент кодирования только что сделал с вашим репозиторием, вашим CI и вашей локальной конфигурацией инструментов. Конфигурация MCP-клиентов, отравление памяти агентов, импорты галлюцинированных пакетов и AIBOM — это области, где мы не нашли эквивалентных публичных правил в остальных четырёх.
Полная матрица покрытия, проверенная по их публичным реестрам, включая то, где они нас превосходят: docs/comparison.md
[](https://shipsafe.sh)
10.0 — это покрытие Hermes Agent. Ship Safe уже сканирует развёртывания Hermes, но против v0.13.0, тогда как Hermes находится на v0.20.0 — ACP-адаптер, TUI-шлюз, серверless терминальные бэкенды, cron-шаблоны и манифесты плагинов — всё это вышло в промежутке без покрытия.
См. дорожную карту для того, что запланировано и что намеренно не запланировано, и веху 10.0 для задач, доступных к выполнению. Всё в ней открыто для контрибьюторов.
Ship Safe — это открытый исходный код, и лучшие контрибуции — это небольшие, сфокусированные улучшения, которые делают ИИ-ассистированную разработку безопаснее.
Хорошие первые области:
Начните здесь:
Ship Safe распространяется под лицензией MIT и бесплатен навсегда.
Релиз быстро. Релиз безопасно. — shipsafe.sh
| Инъекции промптов в .cursorrules, CLAUDE.md, вредоносные хуки Claude Code |
| MobileScanner | Мобильные приложения | OWASP Mobile Top 10 2024: небезопасное хранение, инъекции WebView, режим отладки |
| GitHistoryScanner | Секреты | Утёкшие секреты в истории коммитов git |
| CICDScanner | CI/CD | Отравление пайплайнов, незакреплённые действия, логирование секретов (OWASP CI/CD Top 10) |
| APIFuzzer | API | Маршруты без аутентификации, массовое присваивание, интроспекция GraphQL, отладочные эндпоинты |
| ManagedAgentScanner | AI/LLM | Ошибки конфигурации Claude Managed Agent: политики always_allow, неограниченный сетевой доступ (ASI-03–ASI-07) |
| HermesSecurityAgent | AI/LLM | Отравление реестра инструментов, инъекции вызовов функций, дрейф разрешений навыков (ASI-01–ASI-10) |
| AgentAttestationAgent | Цепочка поставок | Незакреплённые версии агентов, отсутствующие хеши целостности, неподписанные манифесты (ASI-10, SLSA L0) |
| AgenticSupplyChainAgent | Цепочка поставок | ИИ-действия CI с чрезмерными привилегиями, расширение областей OAuth, неподписанные приёмники ИИ-вебхуков (ASI-02, ASI-06) |
| RobloxSecurityAgent | Цепочка поставок | Вредоносные активы Roblox/Luau Toolbox (инъекции активов во время выполнения, загрузчики rbxassetid://, HttpEnabled, полезные нагрузки, скрытые в атрибутах экземпляров) |
| ModelScanAgent | Цепочка поставок | Полезные нагрузки выполнения кода в весах ML-моделей (opcode pickle в .pt/.pkl/.ckpt), torch.load без weights_only, архивы, обходящие сканеры (CWE-502, CWE-506) |
| TrustBoundaryAgent | Agentic | Симлинк-атаки GhostApproval (ссылки с именами конфигов в ~/.ssh/~/.aws/.env), симлинки репозитория, выходящие за пределы дерева, и инструкции Friendly Fire run-on-review в документах, читаемых агентами (CWE-59, CWE-61) |
| SlopSquatAgent | Цепочка поставок | Галлюцинированные / фантомные импорты пакетов (slopsquatting) — голые импорты, не объявленные, не установленные или не встроенные, плюс известные ИИ-галлюцинированные имена (CWE-1357) |
| ClickFixAgent | Цепочка поставок | Приманки ClickFix / фейковый CAPTCHA «вставь и запусти» (фейковая ошибка + нажатия Win+R/Ctrl+V/командной строки, PowerShell-загрузчики) и npm-скрипты жизненного цикла фейковых установщиков (CWE-1357, CWE-506) |
| InstallGuardAgent | Цепочка поставок | Поведение npm-червей в скриптах жизненного цикла (сбор учётных данных, эксфильтрация env, разрушительный rm -rf, обфусцированный node -e) и вооружённые действия node-gyp в binding.gyp (CWE-506, CWE-829) |