Storm-3068 использовала сброс пароля для захвата Azure DevOps и Kubernetes
Microsoft DART раскрыла атаку Storm-3068, начавшуюся с обычного сброса пароля. Злоумышленник зарегистрировал свои методы аутентификации, закрепился в Azure DevOps и через доверенные пайплайны собрал учетные данные Kubernetes, получив доступ к облачной инфраструктуре организации. Инцидент затрагивает компании, где идентификация, исходный код и production-среды тесно связаны.
Подробности
Проникновение началось с того, что Storm-3068 получила доступ к пользовательской учетной записи через процедуру самостоятельного сброса пароля, а затем полностью завладела идентичностью, зарегистрировав собственные методы аутентификации. Закрепившись в системе, злоумышленник переключился на Azure DevOps, используя легитимные административные инструменты и автоматизированные скрипты для перечисления репозиториев, проектов, конвейеров и сред развертывания. Azure DevOps оказалась целью высокой ценности: она находится на стыке идентификации, разработки ПО и облачных операций. Сопоставив доверенные пути развертывания и связанные ресурсы, атакующий нашел возможности для расширения доступа за пределы первоначального компромисса. Расследование показало, что Storm-3068 создала вредоносный пайплайн, предназначенный для массового сбора учетных данных Kubernetes. Конвейер развертывал kube-агент и запускал множество задач для сбора файлов kubeconfig, содержащих сведения о подключении к кластерам и данные аутентификации. Используя права скомпрометированной учетной записи, злоумышленник развернул пайплайн, авторизованный для доступа более чем к 50 ресурсам и сервисам аутентификации. Помимо kube-агента, атакующий модифицировал скрипты конвейера для установки агента удаленного управления Atera и загрузки туннельной утилиты Chisel. Эти инструменты должны были обеспечить альтернативные механизмы удаленного доступа и открыть Kubernetes API-сервер. Команды Chisel выполнялись для создания обратного туннеля на внешний IP-адрес, что позволяло удаленно взаимодействовать с кластерами Kubernetes. Для обнаружения активности использовались журналы аудита Azure DevOps. Таким образом, атака не потребовала ни malware, ни уязвимостей: злоумышленник обошел защиту за счет доверенных механизмов — сброса пароля, регистрации методов MFA-аутентификации, легитимных пайплайнов и встроенных инструментов доступа.Что делать
- Ограничьте и контролируйте самостоятельный сброс пароля: требуйте MFA, проверяйте регистрацию новых методов аутентификации и отслеживайте подозрительные изменения в профилях пользователей. - Включите и централизованно собирайте журналы аудита Azure DevOps, настройте оповещения на создание и изменение пайплайнов, развертывание агентов и обращение к файлам kubeconfig. - Применяйте принцип наименьших привилегий к учетным записям, сервисным подключениям и пайплайнам: ограничьте число ресурсов, доступных конвейеру, и избегайте переиспользования привилегированных идентичностей. - Контролируйте установку средств удаленного управления и туннелирования (Atera, Chisel и аналоги) в сборочных средах; блокируйте исходящие соединения на неизвестные IP-адреса. - Защищайте доступ к Kubernetes API-серверу, ротируйте кластерные учетные данные и проверяйте kubeconfig на предмет несанкционированного распространения. - Проверьте, не связаны ли ваши пайплайны и сервисные подключения с production-средами, и ограничьте эту связь там, где она не необходима. Итог: инцидент показывает, что при тесной связке идентичностей, исходного кода, конвейеров и production-средств одна скомпрометированная учетная запись открывает путь к значительно более широкому доступу. Защита доверенных пайплайнов и контроль методов аутентификации становятся критичными элементами обороны.Источник: Microsoft Security Blog

