1933129497
Enlightn abandoned (Packagist) + no Laravel 13 support. User chose to find a replacement. Ward (Eljakani/ward, Go, MIT, 316★) — same niche, Go binary so no Laravel-version dependency. infosec-vet.md §ПЕРЕСМОТР #70 + spec/plan amendment notes. Node #70 keeps number/niche; tool + type change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
351 lines
28 KiB
Markdown
351 lines
28 KiB
Markdown
# Провенанс-вет внешних инструментов A8 infosec-tooling (IS9)
|
||
|
||
**Дата:** 2026-05-21
|
||
**Вет-код:** IS9 (согласно ADR-003 + spec §8)
|
||
**Инструменты:** #68 OWASP ZAP MCP, #69 Nuclei MCP, #70 Enlightn
|
||
**Статус:** ЗАВЕРШЁН
|
||
|
||
---
|
||
|
||
## Назначение документа
|
||
|
||
Перед установкой любого внешнего инструмента в раздел A8 «Информационная безопасность» выполнен обязательный провенанс-вет (IS9). Основание: ~13 % security-скилов из маркетплейсов несут критичные дефекты, часть пытается красть учётные данные (исследование ToxicSkills, Snyk + SentinelOne 2025). ADR-003 закрепляет принцип: community-инструменты с непроверенным происхождением — defer (именно так были отложены «Claude Code Canary» и «Plugin Security Auditor» в D3).
|
||
|
||
Документ является артефактом IS9 и читается в Tasks 2–4 плана как единственный авторитетный источник «какой репозиторий/версию устанавливать».
|
||
|
||
---
|
||
|
||
## Методология вета
|
||
|
||
Для каждого инструмента:
|
||
|
||
1. Прочитан README + ключевые исходники через GitHub API / WebFetch (факты, не память).
|
||
2. Проверены: репозиторий, владелец/организация, лицензия, звёзды, активность коммитов, дата последнего релиза.
|
||
3. Оценено: что инструмент **исполняет** (методы, сетевые вызовы, телеметрия, аутентификация).
|
||
4. Для кандидатов с неприемлемым провенансом — зафиксирована причина отклонения.
|
||
|
||
Все данные получены из GitHub API (`gh api`) и WebFetch на дату 2026-05-21. Ссылки указывают на конкретные SHA/теги там, где пин-версия зафиксирована.
|
||
|
||
---
|
||
|
||
## #68 — OWASP ZAP MCP (слот DAST)
|
||
|
||
### Кандидат A: официальный ZAP «MCP Integration» add-on
|
||
|
||
**Репозиторий:** `zaproxy/zap-extensions` (org: `zaproxy`, Apache-2.0)
|
||
**Родительский проект:** `zaproxy/zaproxy` — OWASP ZAP by Checkmarx
|
||
|
||
| Параметр | Значение |
|
||
|---|---|
|
||
| Владелец | Организация `zaproxy` (OWASP-проект, под управлением Checkmarx с 2022) |
|
||
| Лицензия | Apache-2.0 |
|
||
| Звёзды (zaproxy/zaproxy) | **15 152** (2026-05-21) |
|
||
| Последний коммит в zaproxy | 2026-05-20 (вчера) |
|
||
| Статус add-on MCP | v0.1.0, alpha, опубликован 2026-04-02 |
|
||
| Релиз zap-extensions | непрерывный (20.05.2026 — webdriver-related releases, 08.05.2026 — automation-v0.60.0) |
|
||
|
||
**Что исполняет (код прочитан):**
|
||
|
||
Источники: `addOns/mcp/src/main/java/org/zaproxy/addon/mcp/tools/`
|
||
|
||
Add-on экспонирует 15 MCP-инструментов, все — обращения к локальному ZAP-инстансу по API:
|
||
|
||
- `ZapStartScanTool`, `ZapStartActiveScanTool`, `ZapStartSpiderTool`, `ZapStartAjaxSpiderTool` — запускают сканирование указанного URL.
|
||
- `ZapGetActiveScanStatusTool`, `ZapGetPassiveScanStatusTool`, `ZapGetSpiderStatusTool`, `ZapGetAjaxSpiderStatusTool` — читают статус.
|
||
- `ZapStopActiveScanTool`, `ZapStopAjaxSpiderTool`, `ZapStopSpiderTool` — останавливают сканирование.
|
||
- `ZapCreateContextTool` — создаёт контекст сканирования.
|
||
- `ZapGenerateReportTool` — генерирует отчёт.
|
||
- `ZapInfoTool`, `ZapVersionTool` — информационные.
|
||
|
||
Весь трафик идёт **только к локальному ZAP-инстансу** (ZAP API). Никаких внешних URL, токенов или телеметрии в исходниках нет. Это add-on к самому ZAP — не standalone-сервер.
|
||
|
||
**Особенности:**
|
||
|
||
- Статус «alpha» (v0.1.0) — API будет меняться. Официальный блог-пост Simon Bennetts (автора ZAP) от 02.04.2026 предупреждает: «alpha release».
|
||
- Устанавливается как ZAP add-on через Marketplace ZAP, не как отдельный MCP-сервер.
|
||
- Требует запущенного ZAP-демона (`zaproxy -daemon -port 8080 -config api.key=<key>`).
|
||
- Конфигурация `.mcp.json` будет направлять Claude к локальному ZAP API (не к внешнему сервису).
|
||
|
||
**Провенанс-вывод:** Провенанс МАКСИМАЛЬНО ЧИСТЫЙ. OWASP + Checkmarx — индустриально признанный security-проект с 15 000+ звёзд и непрерывной активностью. Add-on разработан теми же людьми что и сам ZAP. Код исполняет ТОЛЬКО локальные ZAP API-вызовы.
|
||
|
||
---
|
||
|
||
### Кандидат B: `dtkmn/mcp-zap-server`
|
||
|
||
| Параметр | Значение |
|
||
|---|---|
|
||
| Владелец | `dtkmn` — физическое лицо (Daniel Tse, см. ссылки в README на `danieltse.org`) |
|
||
| Лицензия | Apache-2.0 |
|
||
| Звёзды | **54** (2026-05-21) |
|
||
| Последний коммит | 2026-05-21 (вчера), v0.8.0 от 10.05.2026 |
|
||
| Стек | Java / Spring Boot + Docker Compose |
|
||
|
||
**Что исполняет (README прочитан):**
|
||
|
||
- Отдельный Spring Boot–сервис (Docker Compose), обёртывающий ZAP через HTTP.
|
||
- Запускается через `./dev.sh` → Docker Compose стек (ZAP + Spring Boot + Open WebUI + Juice Shop + Petstore).
|
||
- MCP-endpoint: `http://localhost:7456/mcp`.
|
||
- **Требует Docker** — несовместимо с native-Windows без Docker Desktop/WSL2. Проект использует native-Windows без Docker (strategy: `project_phase1_strategy.md`).
|
||
- README явно: «This project is not affiliated with or endorsed by OWASP or the OWASP ZAP project».
|
||
- Ряд коммитов вида «docs: add sponsorship information to README» (3 из 5 последних), 6 открытых issues.
|
||
|
||
**Провенанс-вывод:** Один разработчик, не аффилирован с OWASP, требует Docker. Для нашего native-Windows стека **технически несовместим**. Дополнительно: провенанс значительно слабее кандидата A.
|
||
|
||
---
|
||
|
||
### Решение для #68
|
||
|
||
**ПРИНЯТ Кандидат A — официальный ZAP MCP add-on (`zaproxy/zap-extensions`, addOns/mcp)**
|
||
|
||
| Поле | Значение |
|
||
|---|---|
|
||
| Источник | `zaproxy/zap-extensions`, путь `addOns/mcp/` |
|
||
| Текущая версия | v0.1.0 (alpha), выпущен 2026-04-02 |
|
||
| Pin | add-on устанавливается через ZAP Marketplace — pin по текущей версии в `.zap/` конфиге |
|
||
| Лицензия | Apache-2.0 |
|
||
| Ограничение | alpha-статус: API ещё нестабильно; задокументировать в `docs/security/zap-setup.md` |
|
||
| Кандидат B | ОТКЛОНЁН (Docker-зависимость несовместима с native-Windows; провенанс слабее) |
|
||
|
||
---
|
||
|
||
## #69 — Nuclei MCP (слот широкого сканирования)
|
||
|
||
### Движок: `projectdiscovery/nuclei`
|
||
|
||
| Параметр | Значение |
|
||
|---|---|
|
||
| Владелец | Организация `projectdiscovery` (специализированная security-компания) |
|
||
| Лицензия | MIT |
|
||
| Звёзды | **28 777** (2026-05-21) |
|
||
| Последний коммит | 2026-05-20 |
|
||
| Последний релиз | v3.8.0 от 2026-04-18 |
|
||
| Телеметрия | Нет по умолчанию; `-dashboard` флаг для опциональной загрузки результатов в PD Cloud — не активируем |
|
||
|
||
Движок — чистый провенанс. MIT, активно разрабатывается, 28k+ звёзд.
|
||
|
||
---
|
||
|
||
### Кандидат A: `cyproxio/mcp-for-security` (nuclei-mcp)
|
||
|
||
| Параметр | Значение |
|
||
|---|---|
|
||
| Владелец | `cyproxio` — организация, но... |
|
||
| Статус | **DEPRECATED** — последний коммит 2026-03-30 с сообщением «deprecate: migrate to Bolt. This repository is no longer actively maintained» |
|
||
| Лицензия | MIT |
|
||
| Звёзды | 611 |
|
||
|
||
**Провенанс-вывод:** Репозиторий **официально заброшен** автором 30.03.2026. Устанавливать депрекированный wrapper-сервер в раздел безопасности — нарушение принципа ADR-003 («community-инструменты с непроверенным происхождением — defer»). **ОТКЛОНЁН.**
|
||
|
||
---
|
||
|
||
### Кандидат B: `addcontent/nuclei-mcp`
|
||
|
||
| Параметр | Значение |
|
||
|---|---|
|
||
| Владелец | `addcontent` — физическое лицо, 34 публичных репозитория, аккаунт создан 2020-01-11, bio/company/location не заполнены |
|
||
| Лицензия | MIT |
|
||
| Звёзды | **47** (2026-05-21) |
|
||
| Последний коммит | 2025-08-04 (~9 месяцев назад) |
|
||
| Последний релиз | v0.1.0 (alpha), 2025-08-04 |
|
||
|
||
**Анализ кода (прочитан go.mod + README):**
|
||
|
||
- Зависит от `projectdiscovery/nuclei/v3 v3.4.7` (не самая свежая, v3.8.0 вышла в апреле 2026).
|
||
- README содержит placeholder `github.com/your-org/nuclei-mcp` в Install-инструкциях — признак того, что репозиторий собран по шаблону и не дорабатывался.
|
||
- Владелец анонимен: нет bio, нет company, нет location, нет признаков профессиональной security-деятельности.
|
||
- Последняя активность — 9 месяцев назад (alpha-статус, неполный README).
|
||
|
||
**Провенанс-вывод:** Анонимный владелец + заброшенный (9 месяцев без активности) + остатки placeholder-текста в README = непрозрачный провенанс. **ОТКЛОНЁН по критерию ADR-003.**
|
||
|
||
---
|
||
|
||
### Решение для #69: собственная тонкая обвязка (self-authored wrapper)
|
||
|
||
Оба сторонних wrapper'а отклонены (один — deprecated, другой — анонимный/заброшенный). Движок `projectdiscovery/nuclei` (MIT, 28k+ звёзд) — чистый. Доступен как Go-бинарь `nuclei.exe`.
|
||
|
||
**Решение:** Запускать `nuclei.exe` напрямую через тонкую self-authored обвязку в `.mcp.json` — простой `command`/`args` MCP-блок, вызывающий бинарь с нужными флагами. Этот подход:
|
||
|
||
- Минимизирует attack surface (нет чужого обёрточного кода между Claude и `nuclei.exe`).
|
||
- Является стандартной практикой для CLI-инструментов без готового MCP-сервера.
|
||
- Не требует установки дополнительного npm/go-пакета.
|
||
- Nuclei.exe — чистый MIT-бинарь от projectdiscovery (известная security-компания).
|
||
|
||
| Поле | Значение |
|
||
|---|---|
|
||
| Источник движка | `projectdiscovery/nuclei`, релиз `v3.8.0` |
|
||
| URL | https://github.com/projectdiscovery/nuclei/releases/tag/v3.8.0 |
|
||
| Pin | `v3.8.0` (Windows бинарь: `nuclei_3.8.0_windows_amd64.zip`) |
|
||
| Лицензия | MIT |
|
||
| Wrapper | Self-authored (`.mcp.json` блок с `command: "nuclei.exe"`, `args: [...]`) |
|
||
| Оба кандидата-wrapper | ОТКЛОНЕНЫ (deprecated / анонимный провенанс) |
|
||
|
||
---
|
||
|
||
## #70 — Enlightn (слот Laravel security-конфигурации)
|
||
|
||
### `enlightn/enlightn`
|
||
|
||
| Параметр | Значение |
|
||
|---|---|
|
||
| Владелец | Организация `enlightn` (Enlightn Software, Paras Malhotra) |
|
||
| Лицензия | LGPL-3.0 (основной пакет), MIT (security-checker sub-dep) |
|
||
| Звёзды | **987** (2026-05-21) |
|
||
| Последний релиз | v2.10.0 от 2024-04-05 (~13 месяцев назад) |
|
||
| Последний коммит | 2024-04-05 (~13 месяцев без коммитов) |
|
||
| Статус на Packagist | **«abandoned and no longer maintained»** |
|
||
|
||
**Что проверяет (код прочитан, Security-анализаторы):**
|
||
|
||
22 Security-анализатора в `src/Analyzers/Security/`:
|
||
|
||
- `AppDebugAnalyzer.php` — APP_DEBUG не включён в продакшне
|
||
- `AppKeyAnalyzer.php` — APP_KEY установлен
|
||
- `CSRFAnalyzer.php` — CSRF-защита активна
|
||
- `EncryptedCookiesAnalyzer.php` — куки зашифрованы
|
||
- `HSTSHeaderAnalyzer.php` — HSTS-заголовок установлен
|
||
- `HttpOnlyCookieAnalyzer.php` — HttpOnly flag на куках
|
||
- `LoginThrottlingAnalyzer.php` — rate-limit на форме входа
|
||
- `MassAssignmentAnalyzer.php` — защита от mass-assignment
|
||
- `XSSAnalyzer.php` — XSS-защита
|
||
- `FilePermissionsAnalyzer.php`, `PHPIniAnalyzer.php`, `EnvAccessAnalyzer.php`
|
||
- `VulnerableDependencyAnalyzer.php` — CVE в зависимостях
|
||
- `FrontendVulnerableDependencyAnalyzer.php` — CVE во frontend-зависимостях
|
||
- И другие (FillableForeignKey, HashingStrength, UnguardedModels и пр.)
|
||
|
||
Плюс 19 Performance + 29 Reliability анализаторов (итого 70 в OSS; README заявляет «66» — расхождение несущественно).
|
||
|
||
**Телеметрия:** Пакет использует `guzzlehttp/guzzle` — HTTP-клиент. Sub-dep `enlightn/security-checker` (MIT) обращается к Security Advisories Database для получения актуальных данных CVE (кэширует локально). Это **не телеметрия**, а функциональный запрос (как Dependabot). Запрос ограничен базой advisory-данных, не содержит идентификаторов проекта. Outbound: ТОЛЬКО к `advisory-db`.
|
||
|
||
**Критическое ограничение — совместимость с Laravel 13:**
|
||
|
||
`composer.json` объявляет `"laravel/framework": "^9.0|^10.0|^11.0"`. Laravel 13 вне объявленного диапазона.
|
||
|
||
- PR на Laravel 12 ([#200](https://github.com/enlightn/enlightn/pull/200), открыт 2025-02-17) — **не смержен** спустя 3 месяца активных просьб.
|
||
- Мейнтейнер не отвечает на issues и PR — множественные жалобы пользователей.
|
||
- Packagist: пакет помечен «abandoned».
|
||
- Последний коммит: 2024-04-05. Laravel 13 вышел в 2025.
|
||
|
||
**Обходной путь:** Composer позволяет установить с `--ignore-platform-reqs` или через форк. Существуют unofficial forks (напр. `ivqonsanada/enlightn`, `exin/enlightn`), но их провенанс — частные лица без верификации.
|
||
|
||
**Провенанс самого пакета:** Достаточный. Enlightn Software — реальная компания, Paras Malhotra — публичная личность, пакет с 987 звёздами и 3+ млн установок. Провенанс ПРИНЯТ.
|
||
|
||
**Но функциональность заблокирована**: несовместимость с Laravel 13 — технический блок.
|
||
|
||
---
|
||
|
||
### Решение для #70
|
||
|
||
**ПРИНЯТ С БЛОКЕРОМ — `enlightn/enlightn v2.10.0`, с условием по Laravel 13**
|
||
|
||
| Поле | Значение |
|
||
|---|---|
|
||
| Источник | `enlightn/enlightn` |
|
||
| Pin-версия | `v2.10.0` (последний стабильный) |
|
||
| Лицензия | LGPL-3.0 (совместима с проприетарным использованием) |
|
||
| Телеметрия | Нет; security-checker делает outbound к advisory-db (только CVE-данные) |
|
||
| Провенанс | Принят (Enlightn Software, публичный мейнтейнер) |
|
||
| **Блокер** | `composer.json` ограничивает `laravel/framework ^9\|^10\|^11` — Laravel 13 НЕ входит |
|
||
| **Путь установки** | `composer require enlightn/enlightn --dev --ignore-platform-reqs` ИЛИ переключиться на форк `exin/enlightn` (Task 4 spike) |
|
||
| Альтернативные форки | `ivqonsanada/enlightn`, `exin/enlightn` — оба неверифицированы; провенанс NOT VETTED |
|
||
| Рекомендация | Task 4 — проверить `--ignore-platform-reqs` на реальной установке; если не работает — оценить форк или принять ограниченный subset работающих проверок |
|
||
|
||
**Примечание для Task 4:** Несмотря на объявленный диапазон, многие Laravel-пакеты фактически работают на версиях выше заявленного (особенно если Laravel 13 является minor evolution от 11). Задача Task 4 — подтвердить эмпирически. Если установка и `php artisan enlightn` работают — блокер снимается практически. Если нет — зафиксировать как IS-BLOCKED и рассмотреть форк `exin/enlightn` (отдельный провенанс-вет).
|
||
|
||
---
|
||
|
||
## Итоговая таблица
|
||
|
||
| # | Инструмент | Репозиторий / источник | Лицензия | Провенанс-заметка | Вердикт | Pin-версия |
|
||
|---|---|---|---|---|---|---|
|
||
| 68 | OWASP ZAP MCP add-on | `zaproxy/zap-extensions`, `addOns/mcp/` | Apache-2.0 | OWASP + Checkmarx, 15k+ звёзд, непрерывная активность, код исполняет только локальные ZAP API-вызовы | **ПРИНЯТ** | v0.1.0 (alpha, устанавливается через ZAP Marketplace) |
|
||
| 68 | ~~dtkmn/mcp-zap-server~~ | `dtkmn/mcp-zap-server` | Apache-2.0 | Физ. лицо, 54 звезды, не аффилирован с OWASP; требует Docker (несовместим с native-Windows) | **ОТКЛОНЁН** | — |
|
||
| 69 | Nuclei (self-authored wrapper) | `projectdiscovery/nuclei` v3.8.0 + own `.mcp.json` wrapper | MIT | ProjectDiscovery org, 28k+ звёзд, активна; self-authored wrapper минимизирует attack surface | **ПРИНЯТ** | v3.8.0 |
|
||
| 69 | ~~cyproxio/mcp-for-security~~ | `cyproxio/mcp-for-security` | MIT | **Официально deprecated** 30.03.2026: «no longer actively maintained» | **ОТКЛОНЁН** | — |
|
||
| 69 | ~~addcontent/nuclei-mcp~~ | `addcontent/nuclei-mcp` | MIT | Анонимный владелец (нет bio/company/location), заброшен 9+ мес, placeholder в README | **ОТКЛОНЁН** | — |
|
||
| 70 | ~~Enlightn~~ | `enlightn/enlightn` | LGPL-3.0 | Провенанс чистый, НО пакет abandoned (Packagist), `composer.json` не поддерживает Laravel 13, мейнтейнер не отвечает 3+ мес | **ОТКЛОНЁН → ЗАМЕНЁН на Ward** (см. пересмотр ниже, 2026-05-21) | — |
|
||
| 70 | **Ward** | `Eljakani/ward` | MIT | El Jakani Yassine (named, 43 followers), 316★/19 forks, Laravel-News-featured; **Go-бинарь → не зависит от версии Laravel** (проблема Enlightn снята); локально (OSV.dev только для deps). Caveat: молодой (фев 2026), single-maintainer, без тегов-релизов | **ПРИНЯТ** (замена #70) | pin по commit SHA (релизов нет) |
|
||
|
||
---
|
||
|
||
## Отклонённые провенанс-случаи — сводка
|
||
|
||
| Кандидат | Причина отклонения |
|
||
|---|---|
|
||
| `dtkmn/mcp-zap-server` | Docker-зависимость несовместима с native-Windows; провенанс — физ. лицо, 54 звезды |
|
||
| `cyproxio/mcp-for-security` | Официально deprecated автором 30.03.2026 |
|
||
| `addcontent/nuclei-mcp` | Анонимный владелец + 9 мес. без активности + placeholder-README = непрозрачный провенанс (ADR-003 критерий) |
|
||
|
||
---
|
||
|
||
## Примечания к Task 2–4 (исполнитель)
|
||
|
||
- **Task 2 (ZAP):** Установить ZAP v2.17.0 (`zaproxy/zaproxy` → latest: v2.17.0, 2025-12-15) + MCP add-on через ZAP Marketplace → `Tools > Add-ons > Search: MCP`. Потребуется Java 17+. Задокументировать в `docs/security/zap-setup.md`.
|
||
- **Task 3 (Nuclei):** Скачать `nuclei_3.8.0_windows_amd64.zip` из https://github.com/projectdiscovery/nuclei/releases/tag/v3.8.0. Написать `.mcp.json` блок `"nuclei"` с `command: "path/to/nuclei.exe"`. Задокументировать в `docs/security/nuclei-setup.md`.
|
||
- **Task 4 (Enlightn):** `composer require enlightn/enlightn:^2.10 --dev --ignore-platform-reqs`. Проверить, что `php artisan enlightn` запускается и возвращает отчёт. Если работает — блокер практически снят. Если нет — зафиксировать в `docs/security/enlightn-setup.md` как DEFERRED и провести отдельный вет для `exin/enlightn`.
|
||
- **Форки Enlightn** (`ivqonsanada/enlightn`, `exin/enlightn`): не прошли вет в рамках этой задачи. Если нужны — провести отдельный IS9-вет как новый sub-артефакт.
|
||
|
||
---
|
||
|
||
## ПЕРЕСМОТР #70: Enlightn → Ward (2026-05-21, решение заказчика)
|
||
|
||
Заказчик выбрал «подобрать замену на GitHub и Anthropic» вместо установки заброшенного Enlightn или неверифицированного форка.
|
||
|
||
**Рассмотрены кандидаты-замены:**
|
||
|
||
| Кандидат | Источник | Вердикт | Причина |
|
||
|---|---|---|---|
|
||
| **Ward** | `Eljakani/ward` (Go, MIT) | **ПРИНЯТ** | Прямая замена ниши Enlightn; Go-бинарь → нет зависимости от версии Laravel |
|
||
| Larafence | larafence.com | ОТКЛОНЁН | Не выпущен (Q2 2026) + TALL/Livewire-стек (у нас Vue) |
|
||
| Psalm + plugin-laravel taint | `vimeo/psalm` (MIT) | НЕ для этого слота | Отличный, но это код-SAST (taint) — пересекается с Semgrep #25 (IS3); не config-сканер |
|
||
| `laravel/agent-skills` | `laravel/agent-skills` (official) | НЕ scanner | Официальный (Taylor Otwell, 622★) и чистый, но это общий Laravel-скил (`laravel`/`laravel-cloud`/`laravel-nightwatch`), не security-сканер. Опциональное доп. позже, не замена #70 |
|
||
| `sickn33/laravel-security-audit`, `netresearch/security-audit-skill`, `edulazaro/laraclaude` | community-скилы | НЕ взяты | Риск ToxicSkills + individual-провенанс; для чувствительного слота не берём |
|
||
|
||
**Ward — провенанс-вет (live `gh api`, 2026-05-21):**
|
||
|
||
| Параметр | Значение |
|
||
|---|---|
|
||
| Репозиторий | `Eljakani/ward` |
|
||
| Описание | «Security scanner built for Laravel, detects misconfigurations, vulnerabilities, and exposed secrets with a beautiful TUI» |
|
||
| Лицензия | **MIT** (есть `LICENSE`) |
|
||
| Звёзды / форки | 316 / 19 |
|
||
| Язык | Go (бинарь) |
|
||
| Создан / последний коммит | 2026-02-15 / 2026-03-07 |
|
||
| Релизы | нет тегов → **pin по commit SHA** |
|
||
| Владелец | El Jakani Yassine (named, 43 followers, аккаунт с 2019) |
|
||
| Что сканирует | .env (8 проверок) + config/*.php (13) + deps (OSV.dev live) + код (7 категорий: secrets/injection/XSS/debug-артефакты/crypto/config CORS-CSRF-mass-assignment/auth) |
|
||
| Сеть | Локально; OSV.dev только для deps (как Enlightn security-checker — не телеметрия) |
|
||
|
||
**Почему Ward лучше Enlightn для нашего случая:**
|
||
|
||
1. **Go-бинарь** (как Nuclei #69) → НЕТ ограничения `composer.json` по версии Laravel → работает на Laravel 13 без хаков (`--ignore-platform-reqs` не нужен).
|
||
2. MIT, named author, активно рекомендуется (Laravel News, 2026), 316★.
|
||
3. Покрытие шире Enlightn: env + config + deps + код.
|
||
|
||
**Caveat (зафиксирован):** молодой проект (3 мес), single-maintainer, без тегов-релизов. Митигация: pin по commit SHA; MIT → можно форкнуть при забрасывании. Записать в `docs/security/ward-setup.md` (Task 4).
|
||
|
||
**Эффект на план:** слот #70 меняет инструмент Enlightn → Ward. Номер #70 и ниша (Laravel config security scanner) сохраняются. Тип меняется: было «Composer dev-dep + `php artisan enlightn`», стало «Go-бинарь CLI `ward` (как Nuclei/gitleaks/Trivy)». Граница IS3 (config-сканер vs Larastan #12 типы / Semgrep #25 generic-паттерны) сохраняется. Task 4 переписывается под Ward.
|
||
|
||
---
|
||
|
||
## Верификация данных
|
||
|
||
Все факты получены из live-запросов GitHub API и WebFetch на 2026-05-21:
|
||
|
||
- `gh api repos/zaproxy/zaproxy` — stars=15152, pushed_at=2026-05-20
|
||
- `gh api repos/zaproxy/zap-extensions/contents/addOns/mcp/CHANGELOG.md` — v0.0.1 released 2026-04-02; v0.1.0 current
|
||
- `gh api repos/zaproxy/zap-extensions/contents/addOns/mcp/src/main/java/org/zaproxy/addon/mcp/tools/` — 15 tool files listed
|
||
- `gh api repos/dtkmn/mcp-zap-server` — stars=54, Docker-зависимость подтверждена README
|
||
- `gh api repos/projectdiscovery/nuclei` — stars=28777, pushed_at=2026-05-20, license=MIT
|
||
- `gh api repos/projectdiscovery/nuclei/releases/latest` — v3.8.0, 2026-04-18
|
||
- `gh api repos/cyproxio/mcp-for-security/commits` — последний коммит 2026-03-30 «deprecate: migrate to Bolt»
|
||
- `gh api repos/addcontent/nuclei-mcp` — stars=47, pushed_at=2025-08-04; README содержит `your-org` placeholder
|
||
- `gh api users/addcontent` — bio=null, company=null, location=null
|
||
- `gh api repos/enlightn/enlightn` — stars=987, pushed_at=2024-06-15, license=NOASSERTION (LGPL)
|
||
- `gh api repos/enlightn/enlightn/releases/latest` — v2.10.0, 2024-04-05
|
||
- `gh api repos/enlightn/enlightn/contents/composer.json` — laravel/framework `^9.0|^10.0|^11.0`
|
||
- `gh api repos/enlightn/enlightn/issues/200` — Laravel 12 PR открыт 2025-02-17, не смержен
|
||
- WebFetch `zaproxy.org/blog/2026-04-02-zap-mcp-server/` — alpha announcement, Simon Bennetts
|
||
- WebFetch `raw.githubusercontent.com/enlightn/enlightn/master/README.md` — 66 OSS checks, abandoned status
|
||
- WebFetch `raw.githubusercontent.com/enlightn/enlightn/master/LICENSE.md` — LGPL-3.0, Copyright Enlightn Software / Paras Malhotra
|
||
- WebFetch `raw.githubusercontent.com/projectdiscovery/nuclei/main/README.md` — MIT, optional cloud dashboard, no default telemetry
|