RU EN

Как я сократила разбор скана с 6–8 до 2–3 часов с помощью AI в CoPilot

CoPilot прогоняет отчёт сканера безопасности через три движка — RL-модель, LLM и Advice service — и помогает аналитику быстро отделить реальные уязвимости от ложных срабатываний. Я спроектировала продукт от задачи до передачи в разработку.

2025 · Product Designer · В проде · Корпоративная платформа AppSec

Роль
Разбирала рабочие сценарии с аналитиками и PM. Спроектировала настройку AI-проверки, мониторинг обработки и разбор находок, включая состояния, ошибки и действия эксперта; передала дизайн в разработку.
Команда
9 человек: я (дизайнер), PM, аналитик, 2 фронтендера, 2 бэкендера, 2 QA
Продукт
AppSec Solutions, cybersecurity, B2B SaaS, веб
Результат
≈ −60% времени на разбор большого скана (с 6–8 до 2–3 часов); ≈ 2 из 3 находок закрываются без открытия кода
CoPilot в тёмной теме: список отчётов и разбор уязвимости CoPilot в светлой теме: список отчётов и разбор уязвимости Светлая Тёмная
Двигайте ползунок, чтобы сравнить светлую и тёмную тему. Остальные экраны ниже переключаются вместе с темой сайта.

Контекст

После каждого скана аналитик получал сотни находок, и разбор одного скана занимал 6–8 часов.

AI мог ускорить работу, но только если интерфейс в любой момент отвечает на три вопроса:

01Что сейчас происходит?
02Насколько результату можно доверять?
03Что мне делать дальше?

Исследование

Я регулярно созванивалась с аналитиками и разбирала сценарии с PM. Главные выводы:

  • Без статуса нет доверия. Эксперту нужно видеть, на каком этапе проверка и где сбой.
  • Прогноз легко принять за вердикт. Оценку AI и решение человека нужно явно разделить.
  • Находок сотни, а время эксперта ограничено. Доказательства для решения должны быть в одном месте.

Ключевые решения

Несколько сигналов, а не один бейдж. Prediction, Match и результаты каждого движка показаны раздельно, чтобы аналитик проверял логику, а не верил выводу на слово. Расхождение сигналов видно сразу.

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

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

Модель сценария

Сценарий разделён на два режима: мониторинг и разбор.

Мониторинг
01Выбрать отчёт
02Настроить проверку
03Следить за обработкой
Разбор
04Оценить результат
05Изучить находку
06Принять решение

01Контроль до запуска проверки

Всё, что влияет на результат, собрано в одном окне: формат отчёта, сам отчёт и глубина проверки — от полной (RL → LLM → Advice) до отдельных движков. У каждого режима есть короткое пояснение, поэтому выбор понятен без документации.

Окно Check report: формат, выбор отчёта и режим проверки Окно Check report: формат, выбор отчёта и режим проверки

02Прозрачная фоновая обработка

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

Waiting · In progress · Completed · Skipped · Failed · Broken

Список отчётов CoPilot со статусами обработки Список отчётов CoPilot со статусами обработки
Состояния обработки: ожидание, RL, LLM, Advice service, завершено, сбой Состояния обработки: ожидание, RL, LLM, Advice service, завершено, сбой
Одна модель состояний показывает и текущий этап, и статус каждой стадии.

03От итога к разбору находки

Отчёт открывается рядом со списком, поэтому аналитик не теряет контекст. В панели у информации чёткая иерархия:

  • итог проверки: Prediction, Match и число находок по типам
  • находка и её технические параметры
  • статус проверки и правило, по которому принято решение
  • следующее действие эксперта
Отчёт CoPilot: метрики, список уязвимостей и раскрытая находка Отчёт CoPilot: метрики, список уязвимостей и раскрытая находка
Параметры находки и правило Параметры находки и правило
Все доказательства и история решения собраны в одном месте.

04Последнее слово за человеком

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

Разбор уязвимости с действиями Confirm, Reject и Ignore Разбор уязвимости с действиями Confirm, Reject и Ignore

05Действия с последствиями для будущих сканов

«Игнорировать» исключает объект из следующих сканов, поэтому это не просто «скрыть»: последствие показано до подтверждения, а после действия система сообщает, что правило применится дальше.

Подтверждение игнорирования в контексте продукта Подтверждение игнорирования в контексте продукта
Модальное окно подтверждения игнорирования Модальное окно подтверждения игнорирования
Последствие видно до подтверждения.
Уведомление об успешном игнорировании Уведомление об успешном игнорировании
Система подтверждает, что правило применится к следующим сканам.

06Сбой — это не тупик

Если один из движков падает, аналитик видит, на каком этапе, почему и что уже готово. Результаты RL и LLM остаются доступны, а проверку можно перезапустить прямо из карточки ошибки.

Причина сбоя Advice service и таймлайн движков Причина сбоя Advice service и таймлайн движков

Система состояний

Я описала 8 состояний — от «ожидает» и «в работе» до «сбой», «пусто» и «ноль находок» — и применила одну логику на всех уровнях: обработка, отчёт, находка. Так сложность растёт без новых правил для каждого экрана.

Система статусов отчёта: пайплайн, статус и значение Система статусов отчёта: пайплайн, статус и значение
Переиспользуемые состояния вместо решений под каждый экран.
Пустое состояние: отчётов пока нет Пустое состояние: отчётов пока нет
Пусто: первый запуск объясняет, с чего начать.
Отчёт без уязвимостей Отчёт без уязвимостей
Ноль находок — это результат, а не пустой экран.
Загрузка списка отчётов Загрузка списка отчётов
Загрузка повторяет структуру таблицы, поэтому экран не прыгает.
Ошибка загрузки отчётов Ошибка загрузки отчётов
Ошибка сети: понятная причина и один следующий шаг.

Светлая и тёмная тема

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

Результат

  • ≈ −60% времени на разбор большого скана: с 6–8 до 2–3 часов.
  • ≈ 2 из 3 находок закрываются без открытия кода: очевидные случаи решаются прямо по результатам проверки.
  • 100% решений прослеживаемы: разбор можно защитить на аудите.
  • Единая система из 8 состояний: одна спецификация для разработки вместо макетов под каждый случай.

Чему я научилась

Сложность не исчезает, когда упрощаешь интерфейс. Её нужно структурировать. Разбор ускорился не потому, что AI решает за человека, а потому, что аналитик видит, на чём основан вывод.