← ScantelioПокрытие / Coverage
Каждый отчёт разделяет выполненные проверки, пропуски и неопределённые результаты. Отсутствие находок не означает отсутствие всех уязвимостей. / Reports distinguish executed checks, skips and inconclusive results.
Что проверяем и что нужно от вас
Покрытие зависит от профиля, согласованных сценариев и доступных данных. Завершённый запуск не гарантирует обнаружение всех уязвимостей.
Что проверяется автоматически
После подтверждения адреса и вашего разрешения запускаем внешние проверки: HTTPS/TLS, заголовки, CORS, утечки конфигурации, debug-страницы и проверенный набор Nuclei: 40 правил полного профиля, 9 короткого. В карточке адреса можно указать стек; неподходящие специализированные правила не отправляют запросы. Для исключения SPA используется контрольный неизвестный путь. Дополнительно обнаруживаем ссылки и поля форм: до 3 HTML-страниц в коротком запуске, до 10 в полном. Формы автоматически не отправляем. В полной проверке выполняем согласованные GET/HEAD с конкретными путями. Расписание нужно включить; мониторинг зависимостей работает после загрузки списка пакетов и включения функции.
Что предоставляет владелец
Адрес сайта/API, подтверждение владения файлом или DNS-записью и разрешение на проверку. Для API — OpenAPI или конкретные операции. Для контроля доступа — отдельные тестовые аккаунты, роли, известные тестовые объекты, уникальные маркеры и ожидаемый результат «разрешить/запретить». Для зависимостей — точные версии в package-lock npm, CycloneDX SBOM или ручном списке. Импорт схемы сам по себе не разрешает запросы и не доказывает проверку бизнес-логики.
Какие проверки требуют staging
SQLi, XSS, активные CVE-сценарии, изменение защищённых полей (Mass Assignment) и диагностика ограничения частоты — только в отдельной тестовой среде staging на Pro/Business, с разрешением на каждый сценарий. Для изменения данных нужен тестовый объект и возможность проверить его восстановление. Обычные внешние проверки и согласованные проверки чтения доступны на production. SQLi/XSS поддерживают query, POST-формы и выбранные вложенные JSON-поля. XSS можно подтвердить воспроизведением HTML-ответа в Chromium с исходным CSP, без внешних ресурсов. Автоматического перебора всех CVE нет.
Что означает частичное покрытие
Часть проверок выполнена, но по остальным нет достаточных данных: например, истекла сессия, не настроен сценарий, ответ заблокирован WAF, адрес недоступен или закончился бюджет. «Пропущено» означает, что проверка не выполнялась; «неопределённо» — что попытка не дала надёжного вывода; «неприменимо» — что проверка не подходит к ответу или технологии. Найденные проблемы остаются действительными. Отсутствие находок при неполном покрытии не означает, что проект безопасен. Исправьте указанную причину и повторите проверку; смотрите покрытие каждого сценария, а не только общий статус.
Какая авторизация поддерживается
Bearer token, API key в заголовке, Cookie и JSON login с получением токена и настроенным refresh. Укажите путь проверки сессии и нажмите «Проверить доступ». Для JWT доступны дополнительные параметры issuer/audience и доверенный JWKS. Секреты сохраняются зашифрованными и не возвращаются в интерфейс. Вход в сам Scantelio через GitHub OAuth — отдельная функция. Браузерный вход с CAPTCHA/MFA и автоматический обход приложения не поддерживаются.
Какие уведомления доступны
Колокольчик в кабинете: просмотр, прочтение и архив. Внешние уведомления — только личные сообщения Telegram-бота после привязки и при доступности в тарифе. Можно настроить категории: важные находки, итоги проверок, уязвимые зависимости, информационные и маркетинговые сообщения. Уведомления о зависимостях относятся только к пакетам и затронутым версиям вашего проекта; неизвестная версия не становится подтверждённой Telegram-тревогой. Email-уведомлений нет. Администратор может отправлять сообщения выбранным клиентам или всей согласованной аудитории.
Внешняя конфигурация / External configuration
- EXT-01: TLS trust, hostname, срок сертификата; HTTP → HTTPS redirect в подтверждённом scope.
- EXT-02: HSTS, CSP для HTML, frame protection, nosniff, Referrer-Policy, атрибуты session cookie.
- EXT-03: внешний Origin; credentialed cookie CORS отмечается как suspected, без доказательства браузерной эксплуатации. Public wildcard сам по себе не является уязвимостью.
- EXT-04: .env и .git/HEAD, только структурные признаки без сохранения секретов.
- EXT-05: stack trace, debug pages, directory listing.
- EXT-06: опциональные SPF / DKIM / DMARC TXT. Без DKIM selector — unknown. Реальная подпись исходящей почты не проверяется.
DAST · Nuclei
Nuclei 3.11.1: проверенный HTTP-набор Scantelio, GET-запросы только в подтверждённом scope. Новый набор содержит 9 правил короткой проверки и 40 полной: конфигурации и резервные копии, Git/SVN, PHP, Spring, Apache, Laravel/Symfony, Go, WordPress, Drupal, Joomla, Magento, Rails, ASP.NET, npm и служебные endpoints. Выбор стека в настройках адреса исключает неподходящие специализированные проверки; без выбора применяется широкий профиль. Контрольный неизвестный путь помогает исключить SPA. Страницы входа и WAF дают ограничение покрытия. Pro и Business получают одинаковое качество проверок в рамках своих бюджетов.
Обнаружение публичной диагностики — suspected: необходимо проверить назначение ресурса и чувствительность данных. Оно не означает доказанную эксплуатацию CVE. Повторная проверка запускает только правило выбранной находки. Недоступность движка, перенаправление, обрезанный ответ или исчерпанный бюджет дают неполный результат. Произвольный код, браузерные сценарии, OAST и произвольные community templates не запускаются. Новые шаблоны добавляются после проверки и тестов.
MinIO CVE-2023-28432: только staging-кластер с уникальной MINIO_SCANTELIO_FIXTURE, указанной владельцем. Значения окружения не сохраняются. Для cPanel XSS используется также изолированное браузерное подтверждение.
Обнаружение маршрутов и параметров
Читаем до 3 HTML-страниц в коротком запуске и до 10 в полном, внутри подтверждённого адреса и общего бюджета. Собираем ссылки, query-параметры и имена полей форм; до 40 описаний входов. Пароли, значения полей и секретные параметры не сохраняются. Формы автоматически не отправляются. Для активной проверки перенесите выбранный путь и тестовые значения в staging-сценарий. Динамические JavaScript-маршруты, скрытые адреса и страницы за авторизацией не обходятся. Отчёт отделяет найденные входы от выполненных проверок.
Активный DAST · только staging
Pro и Business: одинаковые SQLi/XSS-сценарии и 6 CVE-модулей, внутри бюджета полного запуска. Нужны подтверждённая цель, тестовые данные и отдельное согласие на каждый сценарий. SQLi: два повторяемых true/false AND-контроля и проверка SQL-ошибок для выбранного query-параметра, поля POST-формы или вложенного JSON-поля. Без UNION, извлечения БД и задержек. XSS: ограниченный набор маркеров для HTML-контекстов; отражение в исполняемом контексте отмечается как suspected. При включённом подтверждении два независимых маркера проверяются в Chromium: HTML-ответ воспроизводится с исходным CSP и блокировкой дополнительных сетевых запросов. Исполнение в таком воспроизведении — confirmed; это не проверка полного пользовательского пути в браузере. Подходит для HTTP-приложений на PHP, Java, Node.js, Python, .NET, Ruby, Go и других стеках.
CVE-2025-29927 (Next.js): контроль доступа к приватному тестовому маркеру. CVE-2017-9841 (PHPUnit): два вычисления хеша в PHP. CVE-2022-26134 (Confluence): две арифметические OGNL-пробы с ответом в заголовке. CVE-2018-20062 (ThinkPHP): два вычисления хеша через dispatcher. CVE-2023-29489 (cPanel): отражение в HTML-контексте. Запускается только явно выбранный модуль для технологии компонента; нет массовой отправки всех CVE. Никаких системных команд, чтения файлов, извлечения данных, сохранения payload или произвольных скриптов. Для первых четырёх модулей confirmed требует контрольных доказательств; cPanel остаётся suspected.
DOM/stored XSS, blind/time-based SQLi, multipart/загрузка файлов, произвольный перебор JSON-полей и цепочки эксплуатации не поддерживаются. Проверяются только выбранное поле и утверждённое тестовое тело POST-запроса. Неприменимый ответ, блокировка WAF, изменившийся baseline, ошибка или исчерпанный бюджет не превращаются в «исправлено».
Авторизованный API / Authenticated API
Bearer, API key, Cookie, JSON login и refresh. AUTH-01: BOLA / tenant по двум известным fixtures и уникальным маркерам. AUTH-02: роль / поле; Mass Assignment — только staging с отдельным согласием и проверяемым восстановлением. AUTH-03: JWT signature tampering, alg:none, exp и настроенный публичный JWKS; независимая проверка срока требует ранее действовавшего истёкшего токена. AUTH-04: не более 20 запросов в согласованном staging-сценарии, 1 запрос/с. Отсутствие 429 — Info/suspected, не доказательство обхода.
Зависимости / Dependencies
package-lock v2/v3 для npm и CycloneDX 1.5/1.6 с точными версиями и purl для npm, PyPI, Maven, Go, crates.io, Packagist, NuGet, RubyGems, Hex и Pub. OSV version ranges, NVD context, CISA KEV. Unknown version остаётся unknown. Withdrawal и изменение исправленной версии обновляют карточку. Advisory не означает подтверждённую эксплуатацию. SCA-advisory сам по себе не запускает активную эксплуатацию; активные CVE-сценарии настраиваются отдельно в staging.
За границами / Out of scope
SAST, бинарники, GraphQL, gRPC, WebSocket, private networks, stress tests, brute force, перебор идентификаторов и произвольные скрипты.
Безопасность / Safety
Отдельное подтверждение каждого host и префикса пути. Повторная проверка proof перед запуском; DNS validation и IP pinning с Host/SNI. Между origin не передаются credentials. Проверка TLS включена, тело ответа ограничено 256 КБ после распаковки. Все запросы ограничены бюджетом и проверкой worker lease.
Контакт / Contact
Оператор задаёт адрес для жалоб через SCANNER_CONTACT перед публичным запуском. В локальной версии активную проверку можно остановить в кабинете.