Автономный AI-агент безопасности, разработанный компанией Wiz, специализирующейся на облачной безопасности, обнаружил и использовал критическую уязвимость в конвейере GitHub Actions Snowflake, в то время как GitHub Copilot ранее проверял изменения кода, не выявив проблемы.
Уязвимый код был частью pull request (PR), в котором участвовал GitHub Copilot, хотя Wiz уточнила, что неясно, был ли сам ассистент по кодированию источником уязвимости. «Copilot был соавтором, который проверил объединенный PR и изменение кода и признал его безопасным, не заметив критических уязвимостей», — сообщили исследователи Wiz в блог-посте.
Вектор атаки был выявлен и использован с помощью автономного инструмента исследования безопасности Wiz «Red Agent», который в итоге получил доступ к внутренним учетным данным Jira компании Snowflake.
Wiz изначально столкнулась с критическими замечаниями, поскольку раскрытие информации, казалось, указывало на то, что Copilot помог написать ошибочный код, что компания позже уточнила. «В мире, где множество агентов работают с каждым PR, сканируют и обновляют его, четкое разграничение между человеком и ИИ становится сложнее установить; простого взгляда на соавторов PR недостаточно», — заявил CSO сооснователь и технический директор Wiz Ами Луттвак.
Snowflake устранила уязвимость 23 июня, в тот же день, когда Wiz сообщила о ней компании через свою программу на HackerOne программу. «Уязвимость была немедленно исследована и устранена, и наше расследование не выявило признаков несанкционированного доступа», — сообщил CSO представитель Snowflake.
Уязвимость, использованная, несмотря на защиту
Red Agent от Wiz обнаружил ошибку в рабочем процессе «jira_issue.yml» в репозитории «snowflake-connector-net» компании Snowflake.
Рабочий процесс запускался при открытии issue на GitHub и использовал заголовок issue как часть команды shell. Изменение, внесенное в PR#1218, изменило способ обработки этих входных данных, что позволило злоумышленнику внедрять и выполнять собственные команды через рабочий процесс, объяснили исследователи.
Рабочий процесс также содержал защиту, предназначенную для предотвращения эксплуатации недоверенными пользователями. Однако эта проверка была неэффективной, поскольку она была создана для pull request, но эксплуатация включала обработку «issues». В результате проверка не сработала должным образом, что позволило любому пользователю GitHub обойти ее.
Уязвимость стала активной 18 июня, когда PR#1218 был объединен. Wiz сообщила, что GitHub Advanced Security просканировал финальную ревизию и извлек уязвимый рабочий процесс, но не смог выявить инъекцию.
Red Agent взломал учетные данные
Red Agent от Wiz обнаружил уязвимость при автономном сканировании GitHub-организации Snowflake. Затем он создал вредоносный заголовок issue, предназначенный для выхода из оператора «echo» shell и отправки учетных данных Jira внешнему слушателю.
Исследователи отметили, что первая попытка эксплуатации Red Agent провалилась из-за синтаксической ошибки, но агент проанализировал ошибку, изменил свою полезную нагрузку и успешно провел эксплуатацию со второй попытки, полностью самостоятельно.
Успешная эксплуатация заставила исполнитель GitHub Actions отправить out-of-band callback, содержащий учетные данные Jira в кодировке base64. Wiz использовала учетные данные для аутентификации во внутренней среде Atlassian компании Snowflake, получив доступ на чтение к проектам разработки, безопасности и bug bounty.
Уязвимость была активна в течение пяти дней, когда Red Agent ее обнаружил, сообщила Wiz. Snowflake исправила рабочий процесс 23 июня, восстановив более безопасный шаблон обработки входных данных, и на следующий день заменила скомпрометированные учетные данные Jira. Криминалистическое расследование Snowflake не выявило признаков доступа кого-либо, кроме Wiz, в период раскрытия уязвимости. Wiz также подтвердила, что все данные, полученные в ходе тестирования концепции, были безопасно удалены.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Shweta Sharma




