Code Velocity
Безопасность ИИ

Безопасность на базе ИИ: Открытая платформа GitHub для сканирования уязвимостей

·7 мин чтения·GitHub·Первоисточник
Поделиться
Диаграмма, иллюстрирующая рабочий процесс Taskflow Agent для сканирования уязвимостей на базе ИИ от GitHub Security Lab

Революция в сканировании уязвимостей с помощью потоков задач на базе ИИ

В постоянно меняющемся ландшафте разработки программного обеспечения безопасность остается важнейшей задачей. Традиционные методы сканирования уязвимостей, хотя и необходимы, часто сталкиваются с огромным объемом кода и тонким характером современных эксплойтов. Решая эту проблему, GitHub Security Lab представила свою открытую платформу на базе ИИ: Taskflow Agent. В течение нескольких месяцев эта инновационная система играла ключевую роль в выявлении критических уязвимостей безопасности в различных проектах с открытым исходным кодом, знаменуя собой значительный прорыв в безопасности на базе ИИ.

Taskflow Agent, наряду со своими специализированными потоками задач для аудита, позволил исследователям безопасности переключить свое внимание с трудоемкого обнаружения уязвимостей на эффективную проверку и отчетность. Фреймворк постоянно выявляет критические проблемы, такие как обход авторизации и раскрытие информации, что позволяет получать несанкционированный доступ или раскрывать конфиденциальные данные. На сегодняшний день с использованием этой системы было сообщено о более чем 80 уязвимостях, многие из которых уже публично раскрыты. В этой статье подробно рассматривается, как работает эта новаторская открытая платформа, ее практическое применение и как вы можете использовать ее для своих собственных проектов для повышения безопасности программного обеспечения.

Развертывание сканера уязвимостей GitHub на базе ИИ в ваших проектах

Начать работу с GitHub Security Lab Taskflow Agent довольно просто, что позволяет разработчикам и специалистам по безопасности интегрировать этот мощный инструмент безопасности на базе ИИ в свой рабочий процесс. Важным предварительным условием для запуска потоков задач является активная лицензия GitHub Copilot, поскольку базовые промты используют запросы к премиум-моделям от сложных LLM, таких как openai-gpt-5-2-codex и claude-opus-4-6.

Вот краткое руководство по запуску сканирования:

  1. Доступ к репозиторию: Перейдите в репозиторий GitHub seclab-taskflows.
  2. Запустите Codespace: Запустите Codespace непосредственно из репозитория. Это предоставит предварительно настроенную среду, готовую к выполнению.
  3. Инициализируйте среду: Дайте Codespace несколько минут для полной инициализации.
  4. Выполните аудит: В терминале выполните команду: ./scripts/audit/run_audit.sh myorg/myrepo. Замените myorg/myrepo на конкретную организацию GitHub и репозиторий, который вы хотите проверить.

Типичное сканирование репозитория среднего размера может занять 1-2 часа. По завершении откроется просмотрщик SQLite, отображающий результаты в таблице audit_results. Ищите строки, отмеченные галочкой в столбце has_vulnerability, чтобы выявить потенциальные проблемы.

Совет профессионала: Из-за недетерминированной природы больших языковых моделей (LLM) запуск потоков задач аудита несколько раз на одной и той же кодовой базе может давать различные, ценные результаты. Рассмотрите возможность использования разных моделей для последовательных запусков, таких как gpt-52-in-chatgpt или claude-and-codex-now-available-for-copilot-business-pro-users, чтобы максимизировать охват обнаружения.

Фреймворк также поддерживает приватные репозитории, хотя это требует изменения конфигурации Codespace для предоставления необходимых прав доступа.

Деконструкция потоков задач: Механизм аудита на базе ИИ

В основе безопасности на базе ИИ фреймворка GitHub лежат потоки задач (Taskflows) – YAML-файлы, которые организуют серию задач для LLM. Этот структурированный подход позволяет выполнять сложные, многоэтапные операции, которые были бы громоздкими или невозможными с помощью одного, массивного промта. seclab-taskflow-agent управляет последовательным выполнением этих задач, обеспечивая бесшовную передачу вывода одной задачи в следующую.

Рассмотрим типичный аудит кода: система сначала разбивает репозиторий на функциональные компоненты. Для каждого компонента она собирает критически важную информацию, такую как точки входа, предполагаемые уровни привилегий и общее назначение. Эти данные затем сохраняются в базе данных repo_context.db, служащей жизненно важным контекстом для последующих задач аудита.

Этот модульный дизайн критически важен, поскольку LLM имеют присущие ограничения окна контекста. Хотя новые модели обладают большими окнами, разбиение задач на более мелкие, взаимосвязанные шаги значительно повышает надежность, упрощает отладку и позволяет выполнять более обширные проекты по аудиту кода. seclab-taskflow-agent еще больше повышает эффективность, выполняя шаблонные задачи асинхронно для нескольких компонентов, динамически подставляя специфичные для компонентов детали по мере необходимости.

Эволюция от специфических оповещений к общим аудитам безопасности

Изначально seclab-taskflow-agent оказался весьма эффективным для целенаправленных задач, таких как сортировка оповещений CodeQL, где инструкции были строгими, а критерии хорошо определены. Расширение его полезности до более общих исследований безопасности и аудита представляло собой проблему: как предоставить LLM свободу исследовать различные типы уязвимостей, не поддаваясь галлюцинациям и увеличению количества ложных срабатываний.

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

Стратегический дизайн для улучшенного обнаружения уязвимостей

Чтобы минимизировать склонность LLM к галлюцинациям и ложным срабатываниям, Taskflow Agent включает в себя надежный этап моделирования угроз. Этот критически важный начальный шаг гарантирует, что LLM работает в четко определенном контексте безопасности, что является распространенной ловушкой для многих автоматизированных инструментов статического анализа.

Задачи этапа моделирования угроз

ЗадачаОписаниеПреимущества для аудита безопасности
Идентификация приложенийОпределяет отдельные компоненты внутри репозитория, поскольку один репозиторий может содержать несколько отдельных приложений или модулей, каждый со своими границами безопасности и проблемами. Эта задача помогает определить объем.Гарантирует, что усилия по аудиту сосредоточены на логических единицах, предотвращая размывание объема и позволяя проводить индивидуальный анализ безопасности на основе уникальных функций каждого компонента и потенциальной поверхности атаки.
Сбор контекста компонентаСобирает существенную информацию для каждого идентифицированного компонента, включая его точки входа (куда он получает ненадежный ввод), предполагаемый уровень привилегий и общее назначение.Предоставляет LLM глубокое понимание роли каждого компонента и потенциальных уязвимостей. Этот контекст имеет решающее значение для различения предполагаемой функциональности и законных недостатков безопасности, например, для определения, является ли инъекция команд в инструменте CLI уязвимостью или ожидаемым поведением в его дизайне.
Определение границы безопасностиУстанавливает периметр безопасности для каждого компонента на основе собранного контекста. Это помогает определить, что является проблемой безопасности, а что — особенностью дизайна. Например, «уязвимость» в песочнице, не имеющая возможности выхода из нее, может не быть риском безопасности.Предотвращает ложное срабатывание LLM по безобидным проблемам как по уязвимостям, значительно сокращая количество ложных срабатываний. Это согласует аудит с реальной моделью угроз, гарантируя, что сообщаемые проблемы действительно эксплуатируемы и представляют риск в контексте работы приложения.
Предложение уязвимостейНа первом шаге аудита LLM анализирует каждый компонент, используя его контекст, чтобы предложить типы уязвимостей, наиболее вероятно встречающиеся в этом конкретном компоненте (например, SQL-инъекция, XSS, обход аутентификации).Сужает объем для последующего, более детального анализа. Он действует как интеллектуальный предварительный фильтр, направляя LLM на сосредоточение внимания на распространенных или контекстно релевантных классах уязвимостей, повышая эффективность и релевантность результатов.
Строгий аудит и сортировкаВторой шаг аудита берет предложения с предыдущего этапа и подвергает их строгим критериям. Затем LLM с новым контекстом и специфическими промтами определяет, представляет ли каждое предложение действительную, эксплуатируемую уязвимость. Этот этап имитирует процесс сортировки, выполняемый исследователем безопасности.Выступает в качестве критического уровня валидации, значительно увеличивая показатель истинно положительных результатов. Разделяя предложение и строгую проверку, он снижает галлюцинации LLM и гарантирует, что только подтвержденные, критически важные проблемы передаются на рассмотрение человека, тем самым оптимизируя общий рабочий процесс сканирования уязвимостей.

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

        You need to take into account of the intention and threat model of the component in component notes to determine if an issue
        is a valid security issue or if it is an intended functionality. You can fetch entry points, web entry points and user actions
        to help you determine the intended usage of the component.

Реальное влияние: Выявление критических недостатков с помощью ИИ

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

Еще одной примечательной находкой стал критический недостаток в чат-приложении, где пользователи могли входить в систему с любым паролем. Это фактически делало механизм аутентификации бесполезным, открывая дверь для полного захвата учетной записи. Эти примеры подчеркивают способность Taskflow Agent выходить за рамки поверхностных проверок и выявлять глубоко укоренившиеся логические ошибки и недостатки авторизации, обнаружение которых часто требует значительных ручных усилий.

Сделав этот фреймворк безопасности на базе ИИ открытым исходным кодом, GitHub способствует созданию совместной среды, где сообщество безопасности может совместно улучшать и использовать эти инструменты. Чем больше команд внедряют и вносят вклад в этот фреймворк, тем быстрее будет расти коллективная способность выявлять и устранять уязвимости, делая цифровую экосистему безопаснее для всех. Это отражает дух сотрудничества, наблюдаемый в других инициативах, таких как github-agentic-workflows, стимулируя непрерывные инновации в инструментах безопасности на базе ИИ.

Часто задаваемые вопросы

What is the GitHub Security Lab Taskflow Agent and how does it enhance vulnerability scanning?
The GitHub Security Lab Taskflow Agent is an open-source, AI-powered framework designed to automate and improve the process of identifying security vulnerabilities in software projects. It leverages Large Language Models (LLMs) to perform structured security audits by breaking down complex tasks into manageable steps, enabling more precise analysis. This framework significantly enhances traditional vulnerability scanning by reducing false positives and focusing on high-impact issues, such as authorization bypasses and information disclosure. By integrating threat modeling and prompt engineering, it guides LLMs to understand context and intended functionality, leading to more accurate and actionable vulnerability reports, allowing security researchers to spend more time on verification rather than initial discovery.
What are the core components of the Taskflow Agent's design for accurate vulnerability detection?
The core design of the Taskflow Agent emphasizes minimizing hallucinations and increasing true positive rates through a multi-stage approach. It begins with a comprehensive threat modeling stage where a repository is divided into components, and crucial information like entry points, intended privilege, and purpose is gathered. This context is then used to define security boundaries and inform subsequent tasks. The auditing process itself is bifurcated: first, the LLM suggests potential vulnerability types for each component, and then a second, more rigorous task audits these suggestions against strict criteria. This two-step validation, combined with meticulous prompt engineering, ensures a high level of accuracy, simulating a human-like triage process for identified issues.
What specific types of vulnerabilities has the Taskflow Agent been successful in identifying?
The Taskflow Agent has proven exceptionally effective at identifying high-impact vulnerabilities that often elude traditional scanning methods. Examples include authorization bypasses, which allow unauthorized users to gain access to restricted functionalities, and information disclosure vulnerabilities, enabling access to private or sensitive data. Specifically, it has uncovered cases like accessing personally identifiable information (PII) in e-commerce shopping carts and critical weaknesses allowing users to sign in with arbitrary passwords in chat applications. These findings highlight the framework's capability to pinpoint subtle yet severe security flaws that could have significant real-world consequences for affected projects and their users.
What are the prerequisites for running GitHub Security Lab's Taskflow Agent on a project?
To utilize the GitHub Security Lab Taskflow Agent for vulnerability scanning on your own projects, there is a primary prerequisite: a GitHub Copilot license. The underlying LLM prompts and advanced capabilities of the framework rely on GitHub Copilot's infrastructure, specifically utilizing premium model requests. Users also need a GitHub account to access and initialize a Codespace from the `seclab-taskflows` repository. While the framework is designed to be user-friendly, familiarity with command-line operations and basic understanding of repository structures will be beneficial for effective deployment and interpretation of audit results, especially when dealing with private repositories requiring additional Codespace configuration.
How does the Taskflow Agent address the limitations of Large Language Models (LLMs) in security auditing?
The Taskflow Agent addresses inherent LLM limitations, such as restricted context windows and susceptibility to hallucinations, through an intelligent taskflow design and prompt engineering. Instead of using one large prompt, it breaks down complex auditing into a series of smaller, interdependent tasks described in YAML files. This modular approach allows for better control, debugging, and sequential execution, passing results from one task to the next. Threat modeling helps provide strict context and guidelines to the LLM, enabling it to differentiate between true security vulnerabilities and intended functionalities, significantly reducing false positives. By iterating through components and applying templated prompts, the agent maximizes LLM efficiency and accuracy even for extensive codebases, overcoming challenges related to LLM's non-deterministic nature through multiple runs.

Будьте в курсе

Получайте последние новости ИИ на почту.

Поделиться