CLI · бесплатно · без регистрации

Проверка сайта одной командой

Ставите бинарь, пишете домен — получаете разбор прямо в терминале: что нашли, чем это грозит и что делать. Аккаунт не нужен, данные никуда не уходят: сканирует ваша машина.

scanops — установка
терминал
curl -fsSL https://scanops.ru/install.sh | sh
powershell
irm https://scanops.ru/install.ps1 | iex
и сразу проверка
scanops example.ru

Бинарь кладётся в пользовательский каталог и прописывается в PATH — права администратора не нужны. Можно и скачать .exe напрямую.

  1. 1 Установить — одна команда, без зависимостей
  2. 2 Указали домен — сканирует ваша машина
  3. 3 Читаете разбор — что нашли и что делать

Отчёт понятным языком

Никаких «CVE-2024-…» без объяснений. Для каждой находки — что произошло, почему это важно и что конкретно сделать.

scanops example.ru
example.com Высокий риск оценка риска 52/100
ВЫСОКИЙ
Сайт не защищён от внедрения чужих скриптов
В ответах сервера нет политики Content-Security-Policy.
→ Начните с политики, которая разрешает загрузку только с вашего домена.
СРЕДНИЙ
HTTP не перенаправляет на HTTPS
Открытие сайта по http:// не перенаправляется на https://.
→ Настройте постоянный редирект с HTTP на HTTPS.
СРЕДНИЙ
Соединение можно понизить до незащищённого HTTP
Нет заголовка Strict-Transport-Security.
→ Включите HSTS, когда весь сайт работает по HTTPS.
серьёзных 1 средних 4 в норме 6 проверок 18

Что смотрит

Проверка пассивная: сканер смотрит на сайт глазами обычного посетителя. Никаких атак, подбора паролей и нагрузки — только то, что сайт и так отдаёт публично.

Заголовки и куки

CSP, HSTS, X-Frame-Options, nosniff, Referrer-Policy, флаги куки.

TLS и сертификат

Версия протокола, шифры, срок действия и соответствие домену, редирект на HTTPS.

DNS и почта

Записи домена, SPF, DMARC, DKIM — подделать письмо от вашего домена или нет.

CMS и раскрытие версий

Видно ли снаружи, на чём работает сайт и какой версии.

Формы и приватность

Отправка данных без HTTPS, защита форм, трекеры и следы 152-ФЗ.

Репутация домена

Публичные списки блокировок и признаки, по которым домен могли пометить.

Внутренняя сеть: режим агента

Обычный запуск проверяет только публичные адреса — локальные и приватные он отклоняет намеренно. Чтобы проверить то, что доступно лишь изнутри периметра, тот же бинарь запускается там, где эти адреса видны, и присылает отчёты в ваш аккаунт. Из них складывается инвентарь: список внутренних адресов с оценкой каждого и историей по нему.

Что нужно до старта

  1. 1 Платный тариф — Start, Pro или Enterprise. Пробный период тоже подходит.
  2. 2 Токен: Кабинет → Настройки → «Токены агента». Токен принадлежит команде, а не человеку: на каждую площадку выпускается свой, и любой можно отозвать отдельно — остальные продолжат работать.
  3. 3 Тот же бинарь на машине внутри сети — отдельный агент ставить не нужно.

Токен позволяет отправлять отчёты в вашу команду — храните его как пароль. Показывается он один раз, при выпуске: у нас хранится только его хэш.

внутри периметра
один прогон, несколько адресов
scanops agent 10.0.0.5 intranet --token sa-…
список адресов файлом
scanops agent --targets-file hosts.txt --concurrency 8
hosts.txt — подсети и метки
10.0.0.0/24     tag:dc-msk
intranet.corp   tag:legacy
# строку можно закомментировать
через переменные — для systemd и cron
SCANOPS_AGENT_TOKEN=sa-…
SCANOPS_TARGETS=10.0.0.5,intranet
SCANOPS_WATCH_SECONDS=3600

Что увидите

ok 10.0.0.5 score=34 https://scanops.ru/app/reports/1f2e…
ok intranet score=61 https://scanops.ru/app/reports/9ab7…
прогон завершён · 2/2 ок · ошибок 0 · 1 мин 12 с

На каждый адрес — оценка риска и ссылка на разбор. Проверенные адреса собираются в разделе «Внутренние активы»: там видно оценку каждого, насколько она изменилась с прошлого прогона и когда адрес отчитывался в последний раз. Метки из файла адресов становятся фильтрами — по площадке, по контуру, по чему угодно. Список выгружается в CSV.

Что агент делает и чего не делает

Внутренние имена остаются внутри

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

Свой удостоверяющий центр

Если внутренние хосты выпущены корпоративным УЦ, передайте его корни через --ca-bundle — иначе каждый такой хост получит замечание о недоверенном сертификате, и это будет шум, а не находка.

Прокси — только наружу

К целям агент обращается напрямую, в обход HTTPS_PROXY. Прокси нужен, чтобы отчёт вышел наружу, а не чтобы попасть внутрь: маршрута до 10.0.0.5 у него нет.

Отчёт не теряется

Если кабинет недоступен, отчёт ложится на диск и уходит в начале следующего прогона. Ночной обход не пропадает из-за пятиминутного перерыва в связи.

Флага «не проверять сертификат» нет намеренно. Механизма удалённого управления и автообновления — тоже: новую версию ставите вы, агент лишь печатает подсказку, что она вышла.

Проверка при каждой выкладке

Добавьте один шаг в пайплайн — и сборка упадёт, если на сайте появилась серьёзная проблема. Так регрессия не доедет до продакшена: заметите вы, а не посетители.

Как это работает

  1. 1 Шаг ставит бинарь — одной командой, без зависимостей.
  2. 2 Запускает проверку с порогом: --fail-on high — «падать, если нашлось высокое или хуже».
  3. 3 Код возврата решает судьбу сборки — CI останавливает выкладку сам, ничего дополнительно настраивать не нужно.

Коды возврата

  • 0 Порог не превышен — сборка идёт дальше
  • 1 Есть находка не ниже порога — сборка падает
  • 2 Ошибка запуска: неверный домен или флаг

Нужен сам отчёт, а не только вердикт — добавьте --json и сохраните вывод артефактом. Цвета в логи не попадают: они включаются только в терминале. Для адресов внутри периметра — режим агента.

.github/workflows/deploy.yaml
- name: Проверка безопасности сайта
  run: |
    curl -fsSL https://scanops.ru/install.sh | sh
    scanops example.ru --fail-on high
.gitlab-ci.yml
security-scan:
  stage: test
  image: alpine:latest
  before_script:
    - apk add --no-cache curl
  script:
    - curl -fsSL https://scanops.ru/install.sh | sh
    - scanops example.ru --fail-on high

Порог выбирается по вкусу: critical — падать только на самом опасном, medium — на любой заметной находке.

Разовая проверка — это только начало

CLI показывает срез на сегодня. Сайты меняются: истекают сертификаты, обновляется CMS, появляются новые формы. Мониторинг проверяет каждый день и пишет, когда что-то изменилось.

Частые вопросы

Данные уходят к вам на сервер?

Нет. Сканирует та машина, на которой запущена команда: бинарь сам ходит к сайту и сам печатает отчёт. Нам ничего не отправляется, аккаунт не нужен.

Это безопасно для сайта? Не сломает ли проверка что-нибудь?

Проверка пассивная: сканер смотрит на то, что сайт и так отдаёт публично — заголовки ответов, сертификат, DNS-записи, разметку страницы. Никакого подбора паролей, эксплуатации уязвимостей и нагрузки.

Чем CLI отличается от проверки на сайте?

Набор проверок тот же — публичный пассивный тир. Отличие в том, что в CLI отчёт показывается целиком и его удобно встроить в CI. Более глубокие проверки требуют подтверждения владения доменом и работают в личном кабинете.

Можно проверить сайт во внутренней сети?

Обычный запуск — только публичные адреса, локальные и приватные он отклоняет. Для внутренней сети есть режим scanops agent: он запускается на машине внутри периметра, требует токен из кабинета (Настройки → «Токены агента») и платный тариф. Список адресов можно задать файлом, включая подсети вида 10.0.0.0/24. Проверенные адреса собираются в разделе «Внутренние активы»: оценка каждого, изменение с прошлого прогона и когда он отчитывался в последний раз. Проверки, которые спрашивают о хосте третьи стороны, в этом режиме не выполняются — имена внутренних узлов не покидают вашу сеть.

Как использовать в CI?

Поставьте бинарь (curl … | sh на Linux/macOS, irm … | iex на Windows) и добавьте шаг с флагом --fail-on high — команда вернёт ненулевой код, если найдётся проблема такого уровня или серьёзнее, и сборка упадёт. Флаг --json отдаёт весь отчёт машиночитаемо.

Сколько это стоит?

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