Itinai.com it company office background blured chaos 50 v 41eae118 fe3f 43d0 8564 55d2ed4291fc 0

Найдите и устраните уязвимости AI‑моделей NVIDIA SkillSpector

Itinai.com it company office background blured chaos 50 v 41eae118 fe3f 43d0 8564 55d2ed4291fc 0

Что делает скрипт и зачем он нужен?

Представленный ниже кусок кода – это «батч‑сканер» статического анализа кода для набора skill (т.е. модулей, функций или микросервисов). Он без вызова LLM проходит по всему корпусу файлов, собирает уязвимости и формирует готовые визуальные отчёты.

Основные шаги процесса

  • Инициализация: вывод приветствия и подготовка контейнеров для итогов.
  • Сканирование: для каждой skill вызывается scan() без LLM, результат сохраняется в JSON.
  • Сбор метрик: из результата извлекаются risk_score, risk_severity, рекомендации, наличие исполняемых скриптов и количество найденных проблем.
  • Агрегация находок: каждое нарушение сохраняется в таблицу all_findings с деталями (правило, уровень, категория, файл, строка, уверенность).
  • Формирование DataFrame‑ов: два Pandas‑фрейма – сводка по навыкам и детальная таблица находок.
  • Вывод в консоль: таблица рисков, количество всех находок, распределение по категориям и уровням.
  • Визуализация: три графика (риск‑баллы, распределение по уровню, топ‑категории) сохраняются в PNG‑файл и показываются пользователю.

Как адаптировать под свои проекты

  • Определите «skill». Это может быть набор микросервисов, репозиториев или отдельных компонентов.
  • Настройте функцию scan(). Подключите нужный статический анализатор (Bandit, Semgrep, ESLint и т.п.) и укажите формат вывода json.
  • Добавьте свои правила. В JSON‑ответе должны быть поля rule_id, severity, category, message, file, start_line, confidence.
  • Подгоните шкалу риска. Функция _normalize_sev уже приводит уровни к «CRITICAL», «HIGH», «MEDIUM», «LOW», но вы можете включить свои префиксы.
  • Сохраните графики. Путь WORKDIR / "skillspector_dashboard.png" можно заменить на любую директорию CI‑pipeline.

Типичные ошибки и как их избежать

  • Отсутствие полей в JSON. Если ваш анализатор не возвращает, например, confidence, добавьте безопасный fallback (None).
  • Неоднородные уровни тяжести. Некоторые инструменты используют ERROR вместо HIGH. Расширьте _normalize_sev, включив дополнительные сопоставления.
  • Переполнение консоли. При большом количестве навыков вывод может «залипнуть». Используйте to_string(index=False, max_rows=20) или сохраняйте CSV‑файлы.
  • Неправильные цвета графиков. Если добавляются новые уровни, обновите словарь colors, иначе будет использован синий по умолчанию.

Полезные ссылки

Запустите свой ИИ проект бесплатно

ИИ-агенты искусственный интеллект онлайн для бизнеса

Лучший ИИ онлайн