![]() |
https://forum.antichat.xyz/attachmen...1496c187d8.png
Когда речь заходит об identity-атаках, security-инженеры рефлекторно думают о фишинге и краже паролей сотрудников. А зря. Реальная поверхность атаки давно сместилась: по данным Obsidian Security, 68% SaaS-инцидентов связаны с non-human identities - OAuth-токенами, сервисными аккаунтами, API-ключами и CI/CD-секретами. IBM X-Force Threat Intelligence Index фиксирует: identity-based атаки - 30% всех компрометаций. А отчёт BI.ZONE за 2025 год добивает: 57% инцидентов с привилегированными учётками проходят через легитимные действующие credentials - технику Valid Accounts (T1078, Initial Access / Persistence / Privilege Escalation / Defense Evasion). Как человек, который в рамках red team-кампаний лично угонял GitHub Actions OIDC-токены и эксплуатировал кривые OAuth client credentials в Azure AD, скажу прямо: атаки на сервисные аккаунты и токены - самый «тихий» и при этом разрушительный вектор. Ниже - практический разбор трёх TTP-цепочек (OAuth abuse, CI/CD hijacking, Kubernetes SA compromise) с готовыми правилами детектирования, которые можно внедрять сразу. Non-Human Identities как главная цель атакующего Non-Human Identities (NHI) - цифровые идентичности, которые аутентифицируют машины, приложения и автоматизированные процессы: OAuth-токены, API-ключи, сервисные аккаунты, сертификаты, workload identities и - всё чаще - AI-агенты. По разным оценкам, NHI превосходят человеческие идентичности в 25–50 раз (Obsidian Security) и до 92:1 (IBM). Каждый микросервис, каждая интеграция, каждый CI/CD-пайплайн плодит новые machine credentials, которые живут вне контуров классического IAM. Почему традиционный IAM не работает для NHI Управление идентификацией и доступом строится на допущениях, которые к машинным идентичностям просто неприменимы: Допущение IAMДля человекаДля NHIЖизненный цикл привязан к HR-событиямДаНет - нет менеджера, нет увольненияMFA при аутентификацииДаНевозможн о - bearer-токен = доступПоведенческий baseline (рабочие часы, геолокация)ДаНет - работает 24/7 отовсюдуКвартальный access reviewПрименимФормален - никто не знает, что делает конкретный SAРотация credentialsЧерез парольную политикуЧасто отсутствует - токены живут годами Именно этот governance gap делает NHI идеальной мишенью. OWASP выделяет отдельный NHI Top 10, где в тройке лидеров: improper offboarding (неотозванные токены после деактивации интеграций), secret leakage (утечка секретов в репозитории и логи) и overprivileged access - избыточные права, выданные «чтобы работало» (знакомо, да?). OAuth client credential abuse - пошаговый разбор атаки OAuth 2.0 Client Credentials Flow - механизм machine-to-machine аутентификации, при котором приложение получает access token напрямую от authorization server, используя client_id и client_secret. Никакого пользовательского согласия, никакого MFA - только секрет. Если атакующий получает эту пару, он получает все права, делегированные приложению. Вот так просто. Как ломается Client Credentials Flow TTP-цепочка в типичной red team-кампании:
Bash: Код:
# Получение OAuth access token через Client Credentials FlowДля разведки OAuth-приложений в Azure AD использую ROADtools: Bash: Код:
# Установка и аутентификация ROADtoolsSalesloft-Drift (август 2025). Атакующие скомпрометировали SaaS-платформу Salesloft и украли OAuth access-токены интеграции чат-бота Drift с Salesforce. Используя эти токены как trusted NHI между Drift и Salesforce, злоумышленники имперсонировали интеграцию и получили доступ к CRM-данным более чем 700 компаний. Десять дней они спокойно выгружали записи клиентов, включая хранящиеся в тикетах поддержки AWS-ключи и Snowflake-токены. Один OAuth-токен - каскадная компрометация через всю SaaS supply chain. Microsoft Midnight Blizzard (январь 2024). APT29 эксплуатировала legacy test tenant account без MFA в инфраструктуре Microsoft. Забытый тестовый аккаунт - классический пример improper offboarding из OWASP NHI Top 10 - дал начальный доступ к внутренним системам. У Microsoft. Вдумайтесь. Okta (октябрь 2023). Supply chain-компрометация через сервисный аккаунт, который должен был быть деактивирован за месяцы до инцидента. Последствия затронули Cloudflare: из 5000 ротированных credentials после инцидента один API-токен сервисного аккаунта остался активным, и через него атакующие зашли в Atlassian-инфраструктуру (Jira, Confluence, Bitbucket). Один из пяти тысяч - и этого хватило. Практика поиска уязвимых OAuth-конфигураций Для обнаружения кривых OAuth-приложений в периметре атаки я использую комбинацию инструментов: Bash: Код:
# Получение OAuth-токена через Client Credentials и парсинг JWTКод:
# Semgrep - поиск захардкоженных client_secret в кодеCI/CD-пайплайны - концентраторы секретов. Они хранят cloud credentials, API-ключи, SSH-приватники и токены доступа к registry. Компрометация одного workflow-action может открыть доступ к тысячам репозиториев и их секретам. Одного. Каскадная компрометация через GitHub Actions В марте 2025 года произошла одна из самых масштабных supply chain-атак на CI/CD. По данным Mitiga и Kaspersky, цепочка выглядела так:
Bash: Код:
# Декодированный payload из tj-actions/changed-filesПараллельно фиксировались OAuth-фишинговые кампании на GitHub. По данным Mitiga, атакующие использовали поддельные OAuth-приложения под видом «Security Alert» и «GitHub Notification», затронув более 8000 репозиториев. Разработчики кликали на поддельное уведомление и отдавали атакующим полный доступ к своим репозиториям и секретам. Социальная инженерия в чистом виде, только жертва - не человек-пользователь, а OAuth-flow. CVE-2024-37051: утечка GitHub-токенов через JetBrains IDE Критическая уязвимость CVE-2024-37051 (CVSS 9.3, CRITICAL) позволяла раскрывать GitHub access token третьим сторонам при использовании GitHub-плагина в JetBrains IDE. Вектор CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N: атака по сети, низкая сложность, не нужны привилегии, но нужно действие пользователя (UI:R), при этом scope меняется (S:C) - скомпрометированный токен открывает доступ к ресурсам за пределами IDE. CWE-522 (Insufficiently Protected Credentials) - токены хранились и передавались без должной защиты. Затронуты все JetBrains IDE после версии 2023.1: IntelliJ IDEA, CLion, GoLand, PhpStorm, DataGrip, DataSpell, Aqua и MPS. Показательный случай: разработчик просто работал в IDE, а его GitHub-токен утекал на сторонний сайт, давая атакующему полный доступ к приватным репозиториям. Никаких фишинговых писем, никаких вредоносных ссылок - просто открытая IDE. Поиск утечек секретов в CI/CD-пайплайнах Практический workflow для аудита CI/CD-секретов: Bash: Код:
# Шаг 1: Сканирование всех репозиториев организации на секретыКомпрометация сервисных аккаунтов в Kubernetes В Kubernetes каждый pod автоматически получает ServiceAccount-токен, монтируемый в Код:
/var/run/secrets/kubernetes.io/serviceaccount/tokenLateral movement через украденный ServiceAccount-токен TTP-цепочка эксплуатации Kubernetes ServiceAccount:
Bash: Код:
# Внутри скомпрометированного пода:Код:
kubectl create clusterrolebindingДля пост-эксплуатации в Kubernetes - kubectl с украденным токеном: Bash: Код:
# Использование украденного токена вне кластераДетектирование атак на сервисные аккаунты и токены требует покрытия трёх плоскостей: cloud IAM (OAuth abuse), CI/CD (GitHub/GitLab) и инфраструктура (Kubernetes). Ниже - конкретные правила. Копируйте и внедряйте. Sigma-правила для OAuth и service account abuse YAML: Код:
# Sigma-правило: аномальный OAuth Client Credentials GrantКод:
# Threat hunting запрос: service account используется впервые за 90 днейSQL: Код:
// KQL: Обнаружение OAuth-токенов, запрошенных из нетипичных локацийКод:
// KQL: Обнаружение нового OAuth-приложения с высокими привилегиямиYAML: Код:
# Falco: обнаружение чтения ServiceAccount токена внутри контейнераКод:
# Falco: обнаружение обращений к Kubernetes API из пода через curl/wgetПо методологии Mitiga, для threat hunting по GitHub нужно анализировать audit logs на следующие IoA (Indicators of Attack): Bash: Код:
# Проверка публичных репозиториев (наиболее уязвимых к утечкам)СобытиеОписаниеУровень рискаoauth_application.createСоздание нового OAuth-приложенияВысокийintegration_inst allation.createУстановка интеграции с широкими permissionsВысокийrepo.download_zipМасс овая загрузка репозиториевСреднийpersonal_acc ess_token.createСоздание PAT с широкими scopeСреднийworkflows.completed_workflow_ru nWorkflow использует скомпрометированный actionКритический Практический чеклист: hardening Non-Human Identities По итогам десятков red team-кампаний и параллельной работы на стороне blue team - пошаговый чеклист, закрывающий основные вектора атак на machine identities. Делай раз - инвентаризация:
Вопрос на засыпку: вы знаете все machine credentials в своей инфраструктуре? И когда каждый из них использовался последний раз? Если нет - начните с Код:
trufflehog github --org=your-org_________________________________________________ Meta-Title: Атаки на сервисные аккаунты и токены: TTP и детект Meta-Description: 68% инцидентов связаны с machine identities. Разбираем OAuth abuse, угон CI/CD-токенов, SA в Kubernetes — с Sigma и Falco-правилами для детекта. Теги: атаки на сервисные аккаунты и токены, OAuth client credential abuse, угон токенов CI/CD, non-human identities, компрометация сервисных аккаунтов, CI/CD pipeline security, детектирование компрометации токенов, Kubernetes service account security |
Очень классный разбор, реально многое закрывает по теме. Особенно цепочки с OAuth abuse — просто демонстрация, как легко можно выдать полный доступ через один утёкший секрет. У меня почти всегда подозрения на CI/CD, там масса всего хранится и ротация почти всегда хромает. В общем, с сервисными аккаунтами надо быть на постоянном контроле, иначе «тишина» там обманчивая и ломают тихо, но надолго.
|
Читая тему, понял, что с сервисными аккаунтами и токенами реально не стоит расслабляться. Даже один забытый или плохо защищённый секрет — и можно получить полный доступ. Особенно после примеров с CI/CD и Kubernetes становится понятно, что автоматизация часто оставляет лазейки, если не держать это под контролем постоянно. В общем, грамотный мониторинг и ротация — это сейчас must-have.
|
Хороший разбор, реально цепляет важные моменты с токенами и сервисными аккаунтами. Особенно понравился акцент на том, что забытые креды — это как дыра в заборе, через которую всё летит мимо контроля. Самое больное — что многие даже не знают, сколько всего у них висит и как этим управлять, а время идёт, и риск растёт. Sigma и Falco правила — прям находка для того, чтобы хоть что-то отследить без бешеного саппорта.
|
Отличный разбор, реально зашёл по теме! Особенно зацепило про то, что большинство сервисных аккаунтов живут сами по себе, и никто толком не контролирует их жизненный цикл. Часто забываешь, что токен без срока годности — это просто билет для злоумышленников. И да, Sigma и Falco — очень выручают, чтобы хотя бы попытаться отлавливать такие скрытые атаки.
|
Отличный разбор, полностью согласен что именно сервисные аккаунты и токены — настоящие дырки в безопасности. Особенно цепляет, что их жизненный цикл никто толком не контролирует, и ротация зачастую отсутствует. Правила для Sigma и Falco — полезный инструмент для реального детекта, без них эти атаки могут пройти мимо незаметно. Все равно, мониторинг таких неочевидных vector’ов — сейчас must-have.
|
Наконец-то кто-то подробно разобрал проблему с сервисными аккаунтами и токенами. Самое главное — это не расслабляться и контролировать их жизненный цикл, потому что одна забытая ротация может стоить всего доступа. Правила Sigma и Falco реально помогают поймать подозрительные действия, даже если атака идёт тихо. Вот так и надо работать с современными угрозами, а не ждать беды.
|
Вот это тема! Забыл про ротацию — считай, впустую всех впустил. Sigma и Falco — как бабки у подъезда, кто не следит, тот попал. Держись под контролем, а то токены сами по себе — почти как ключи от квартиры, забытые в замке.
|
Ага, понял теперь, почему ротация токенов — это не просто рекомендация, а прям необходимость. Если не обновлять эти штуки, реально можно пару шагов к сливу доступа сделать. Правила Sigma с Falco смотрятся как нормальный щит, чтобы ловить всё подозрительное, а не ждать пока кто-то уже взломал. Надо себе тоже как-то настроить, чтобы не было проблем потом.
|
| Время: 19:59 |