Перейти к содержанию

AI - сканирования

Примечание

Раздел доступен при наличии лицензии на модуль AI. После получения расширенной лицензии необходимо пересохранить фид с тем же токеном на странице Состояние системы в разделе «Сервис данных».

Для просмотра раздела требуется право Просмотр AI-сканирований. Управление записями (изменение приоритета, перескан, удаление) требует прав Редактирование AI-сканирований и Удаление AI-сканирований соответственно. Права выдаются администратором через раздел Права и роли (см. раздел «Права доступа»).

Раздел AI - сканирования предназначен для контроля проверок безопасности ML-моделей, распространяемых через менеджер репозиториев. Проверка выполняется инструментом ModelScan и дополняет практики OSA (Open Source Analysis) и SCA (Software Composition Analysis), которые AppSec.Track применяет к OSS-компонентам.

ModelScan обрабатывает по одной модели за раз, а сами модели могут иметь значительный размер и требовать длительной проверки. Поэтому запросы на сканирование выстраиваются в очередь, а раздел AI - сканирования позволяет наблюдать за её состоянием и управлять порядком обработки.

Чтобы открыть раздел, выберите в меню слева пункт AI - сканирования. На экране появится страница со списком сканирований.

Запуск сканирования ML-модели

Сканирование запускается автоматически: когда разработчик через Track.Plugin запрашивает артефакт из репозитория с типом huggingface, AppSec.Track ставит модель в очередь на проверку и временно блокирует доступ к артефакту. Доступ открывается после завершения проверки безопасности.

Артефакты других типов репозиториев обрабатываются стандартным потоком OSA без постановки в очередь ModelScan.

При постановке в очередь разработчик немедленно получает уведомление о блокировке с идентификатором записи (ID) и текущей позицией в очереди — ждать завершения сканирования для получения ответа не требуется.

Повторные запросы того же артефакта дедуплицируются: если модель уже находится в очереди или сканируется, новая запись не создаётся, а запрос сопоставляется с существующей записью.

Поддерживаемые форматы моделей

Инструмент ModelScan анализирует не любые файлы ML-моделей. В таблице ниже приведены форматы и признак их поддержки. Форматы с признаком Нет инструментом ModelScan не проверяются.

Формат Сканируется
pytorch_model.bin Да
pickle, .pkl Да
h5 Да (при установленном h5py)
SavedModel Да
safetensors Нет
gguf Нет

Примечание

Перечень поддерживаемых форматов определяется версией инструмента ModelScan (в текущем релизе — 0.8.8) и может измениться при её обновлении.

Вкладки

Список сканирований разделён на две вкладки:

  • Планируемые — записи, ожидающие обработки (статус Ожидает), и запись, которая сканируется в данный момент (статус В процессе).

  • Завершённые — записи, по которым сканирование завершилось: успешно (статус Завершено) или с ошибкой (статус Ошибка).

Сведения о сканированиях

Каждая строка таблицы соответствует одному сканированию и содержит следующие поля:

  • # — порядковый номер записи в списке. На вкладке Планируемые отражает очередь обработки: сканирование под номером 1 будет выполнено следующим.
  • Модель — назвение ML-модели.
  • Файл — имя файла (артефакта).
  • Объект — репозиторий-источник, из которого запрошена модель.
  • Статус — текущее состояние сканирования, отображается цветной меткой (см. раздел «Статусы сканирования»).
  • Запрос — дата и время поступления запроса на сканирование.
  • Начало — дата и время начала сканирования. Для записей в статусе Ожидает отображается прочерк.
  • Завершение — дата и время завершения сканирования. Для записей в статусах Ожидает и В процессе отображается прочерк.
  • Длительность — продолжительность сканирования. Для записи в статусе В процессе отображается таймер, который обновляется в режиме реального времени; для завершённых записей — итоговая длительность в формате чч:мм:сс; для записей в статусе Ожидает — прочерк.
  • Действия — кнопки управления записью в зависимости от её статуса и прав пользователя (см. раздел «Действия над записями»).

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

Статусы сканирования

На вкладке Планируемые:

  • Ожидает — запись находится в очереди и ожидает обработки.
  • В процессе — модель сканируется в данный момент.

На вкладке Завершённые:

  • Завершено — сканирование завершено успешно.
  • Ошибка — сканирование завершилось с ошибкой.

Поиск и фильтрация

Над таблицей со списком сканирований расположена панель поиска и фильтрации. Доступны следующие параметры:

  • Поиск — поиск по записям очереди.
  • Модель — фильтр по имени модели (артефакта).
  • Объект — фильтр по репозиторию-источнику.
  • Статус — фильтр по статусу сканирования (Ожидает, В процессе, Завершено, Ошибка).
  • Дата запроса — фильтр по периоду поступления запроса.
  • Дата начала — фильтр по периоду начала сканирования.
  • Дата завершения — фильтр по периоду завершения сканирования (доступен на вкладке Завершённые).

Просмотр лога сканирования

Для записей в статусах Завершено и Ошибка доступен просмотр лога сканирования. Нажмите на строку, чтобы раскрыть её: под строкой отобразится содержимое лога ModelScan. Для успешного сканирования лог содержит сведения о проверке и итоговый отчёт, для завершившегося с ошибкой — описание причины прерывания. Просмотр лога доступен пользователям с правом Просмотр AI-сканирований.

Действия над записями

Операции над записями выполняются кнопками в колонке Действия и доступны в зависимости от выбранной вкладки, статуса записи и прав пользователя. При доступе только на чтение (право Просмотр AI-сканирований без прав на редактирование и удаление) кнопки управления не отображаются.

Изменение приоритета

Примечание

Действие доступно только для записей в статусе Ожидает и требует права Редактирование AI-сканирований.

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

Перескан

Примечание

Действие доступно только для записей в статусах Завершено и Ошибка и требует права Редактирование AI-сканирований.

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

  1. На вкладке Завершённые нажмите на кнопку Перескан в строке записи.
  2. В появившемся окне Перезапуск сканирования нажмите на кнопку Перезапустить.

Будет создана новая запись в конце очереди со статусом Ожидает; исходная запись сохраняется без изменений.

Удаление

Внимание

Действие доступно для записей в статусах Ожидает, Завершено и Ошибка и требует права Удаление AI-сканирований. Удалить запись в статусе В процессе нельзя.

Нажмите на кнопку Удалить в строке записи, чтобы убрать её из списка. Удалённая запись перестаёт отображаться и не учитывается при расчёте позиций в очереди.

Данные на странице информации о компоненте

На странице информации о компоненте (в контексте результатов OSA) актуальные результаты сканирования ModelScan не отображаются. Там фиксируется только решение, принятое в момент запроса модели из плагина:

  • факт блокировки доступа к артефакту;
  • статус на момент запроса — модель поставлена в очередь сканирования;
  • идентификатор записи в очереди (ID);
  • порядковый номер в очереди на момент запроса.

Актуальный статус сканирования и результаты проверки ModelScan доступны только в разделе AI - сканирования (при наличии права Просмотр AI-сканирований).