Инструменты и эксплойтыКритический

GitHub Security Lab использует ИИ для автоматизированной триажи уязвимостей

3 мин чтенияИсточник: GitHub Blog - Security
Diagram of GitHub Security Lab's AI-powered taskflow for vulnerability triage showing sequential tasks and data flow

GitHub Security Lab внедрил ИИ-систему для автоматической обработки уязвимостей, сократив ложные срабатывания и повысив эффективность анализа кода. Узнайте о технических деталях и результатах.

GitHub Security Lab внедряет ИИ для автоматизации триажи уязвимостей

Команда GitHub Security Lab разработала фреймворк на базе искусственного интеллекта для автоматизации триажи оповещений о безопасности. Это позволило значительно сократить количество ложных срабатываний и повысить эффективность работы. С августа текущего года с помощью GitHub Security Lab Taskflow Agent удалось выявить около 30 реальных уязвимостей в коде, используя большие языковые модели (LLM) для анализа оповещений, генерируемых CodeQL.

Как ИИ улучшает процесс триажи уязвимостей

Традиционная триажа уязвимостей часто носит повторяющийся характер, а ложные срабатывания возникают из-за шаблонов, которые легко распознаются человеком, но сложно формализуются в инструментах статического анализа. Большие языковые модели эффективно выявляют такие «нечёткие» шаблоны, что делает их идеальными для автоматизации процессов триажи.

Фреймворк Taskflow Agent использует YAML-основанные taskflows (потоки задач) для декомпозиции сложных процессов триажи на более мелкие и управляемые задачи. Каждая задача выполняет следующие функции:

  • Сбор и анализ результатов сканирования кода
  • Аудит оповещений на предмет типичных ложных срабатываний
  • Генерация подробных отчётов об ошибках с точными ссылками на код
  • Валидация результатов перед созданием Issues в GitHub

Благодаря такой структуре система минимизирует вероятность «галлюцинаций» (ошибочных выводов) и обеспечивает согласованность результатов.

Техническая реализация

Архитектура Taskflow

Потоки задач разделены на несколько этапов:

  1. Сбор информации – собираются необходимые данные (например, триггеры рабочих процессов, разрешения, санитайзеры) и сохраняются в структурированных заметках.
  2. Этап аудита – применяются проверки на базе LLM для фильтрации ложных срабатываний (например, отключённые рабочие процессы, ограничения прав доступа).
  3. Генерация отчёта – результаты компилируются в стандартизированный отчёт об ошибке с фрагментами кода и ссылками на строки.
  4. Валидация и создание Issues – проверяется полнота отчётов перед созданием Issues в GitHub для дальнейшего рассмотрения.

Ключевые особенности

  • Модульная архитектура – задачи независимы, что снижает ограничения по контекстному окну и упрощает отладку.
  • Асинхронная обработка – поддерживает пакетную обработку большого количества оповещений.
  • Интеграция с MCP-серверами – передача детерминированных задач (например, API-вызовы) традиционным инструментам программирования для повышения точности.
  • Повторно используемые компоненты – промпты и задачи могут использоваться в различных рабочих процессах триажи.

Результаты и влияние

С момента внедрения GitHub Security Lab использовал эти потоки задач для триажи оповещений в следующих областях:

  • GitHub Actions (например, недоверенная загрузка кода, инъекции кода)
  • JavaScript/TypeScript (например, клиентский межсайтовый скриптинг через js/xss)

Система доказала свою эффективность в:

  • Сокращении ложных срабатываний за счёт выявления типичных паттернов отклонения (например, отключённые рабочие процессы, проверки прав доступа).
  • Повышении эффективности благодаря автоматизации повторяющихся проверок (например, событий-триггеров, санитизации).
  • Улучшении точности за счёт структурированных промптов и этапов валидации.

Рекомендации для команд безопасности

  1. Внедряйте модульные ИИ-процессы – декомпозируйте триажу на дискретные, повторно используемые задачи для повышения масштабируемости.
  2. Сочетайте LLM с традиционными инструментами – используйте большие языковые модели для распознавания шаблонов, а детерминированные задачи передавайте статическому анализу или API.
  3. Используйте открытые фреймворки – репозитории seclab-taskflow-agent и seclab-taskflows доступны для кастомизации.
  4. Валидируйте выводы ИИ – всегда проверяйте отчёты, сгенерированные LLM, перед принятием мер по устранению уязвимостей.
  5. Контролируйте использование ресурсов – выполнение потоков задач может потреблять значительные квоты LLM, планируйте затраты заранее.

Будущие направления

GitHub Security Lab продолжает совершенствовать ИИ-ассистированную триажу, проводя эксперименты в области аудита кода и поиска уязвимостей. Командам безопасности рекомендуется изучить открытый фреймворк и адаптировать его под свои рабочие процессы.

Более подробную информацию можно найти в репозитории GitHub Security Lab Taskflow Agent.

Поделиться

TwitterLinkedIn