Search
Write a publication
Pull to refresh
108.67
Yandex Cloud & Yandex Infrastructure
Строим публичное облако и инфраструктуру Яндекса

Топ OWASP Non-human identities: как обезопасить свои облака

Reading time10 min
Views849

С ростом автоматизации владельцы облачных инфраструктур всё чаще сталкиваются с угрозами, которые исходят от ботов, парсеров, агентов, сервисных и других подобных автоматизированных аккаунтов. По данным Google Cloud Threat Horizons Report, эксплуатация злоумышленниками таких непользовательских сущностей (или non‑human identities, NHI) остаётся в топе угроз, при этом тактики атак постоянно усложняются.

В ответ на это некоммерческая организация OWASP в 2025 году выпустила отдельный рейтинг по топ-10 атак для NHI: OWASP Non‑Human Identities Top 10.

Меня зовут Дмитрий Лютов, я занимаюсь продуктами безопасности в Yandex Cloud и в этой статье я пройдусь по основным угрозам из рейтинга OWASP. Покажу, каким образом владельцы облаков могут позаботиться о безопасности инфраструктуры.

NHI1:Improper Offboarding

В чём угроза. NHI часто создаются внутри организации, например, в виде системных агентов или сервисных аккаунтов, от имени которых управлять ресурсами можно посредством скриптов и других программных средств. И если для пользовательских аккаунтов есть понятные правила управления жизненным циклом учётных записей, то для сервисных аккаунтов это сложный и часто дорогой процесс.

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

Как защититься?

  1. Эксперты OWASP рекомендуют включить в процесс увольнения сотрудников обязательный шаг, на котором проверяются все связанные с уходящим специалистом сервисные аккаунты. На практике это не всегда реализуемо в таком виде. Но для снижения риска можно, например, автоматически отслеживать дату последней аутентификации сервисного аккаунта и через определённое время удалять неиспользуемые.

  2. Вести учёт и проводить аудит имеющихся NHI, мониторить их использование и следить, чтобы у каждой такой сущности был свой владелец.

  3. Регулярно проводить ротацию ключей или использовать короткоживущие токены — об этом мы ещё поговорим дальше.

Наш опыт. В нашем облаке разработан Стандарт по защите облачной инфраструктуры Yandex Cloud, который содержит рекомендации по конкретным мерам защиты от существующих угроз. Для упрощения аудита NHI пользователям облака в консоли мы предоставляем дополнительную информацию о времени последнего использования сервисных аккаунтов и ключей для них. 

NHI2:Secret Leakage

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

Как защититься? Здесь правила те же, что и с другими секретами:

  1. Использовать временные учётные данные — секреты, которые можно сгенерировать по требованию на короткий срок.

  2. Хранить в секретницах. Для контейнерных сред себя зарекомендовал HashiCorp Vault (а для нашего облака мы, конечно же, напомним про Yandex Lockbox).

  3. Автоматизировать обнаружение учётных данных с помощью сканеров секретов.

  4. Ограничить области действия и права доступа к секретам. Поможет принцип наименьших привилегий (PoLP), а также управление доступом на основе ролей (RBAC) для обеспечения гранулярного контроля прав.

  5. Регулярно ротировать секреты.

Наш опыт. Пользователям нашего облака доступен сервис, который ищет утечки ключей и токенов и автоматически уведомляет об этом — коллеги уже писали подробнее, как устроен такой поиск в этой статье. Также сканер секретов доступен в модуле контроля данных (DSPM) в рамках сервиса для комплексного управления безопасностью Security Deck.

Механизмы IAM (Identity and Access Management) позволяют заменить долгоживущие креды для сервисных аккаунтов сразу несколькими способами:

Подробнее все способы получения IAM‑токена для сервисных аккаунтов Yandex Cloud описаны в документации.

NHI3:Vulnerable Third-Party NHI

В чём угроза. В мире разработки многие решения переиспользуются, и программисты могут применять сторонние расширения для своих IDE. Часто это требует значительных прав на машине разработчика — включая возможность читать исходный код, получать доступ к переменным окружения, взаимодействовать с другими системными ресурсами, в том числе с помощью чувствительных данных. Соответственно, любая уязвимость в таком расширении повышает риск атак на цепочку поставки.

Как защититься?

  1. Проверять и ограничивать сторонние интеграции в IDE. Предоставляйте доступ только к необходимым ресурсам и отзывайте его при завершении работы.

  2. Мониторить активность сторонних сервисов. Поможет инвентаризация всех интеграций и выданных им разрешений, а также регулярный аудит.

  3. Использовать ротируемые учётные данные. Так, в нашем стандарте мы рекомендуем ротировать ключи минимум раз в 90 дней.

NHI4:Insecure Authentication

В чём угроза. Некоторые методы аутентификации устарели, уязвимы к известным атакам или считаются ненадёжными из‑за использования устаревших практик обеспечения безопасности. Например, OAuth Implicit Flow и Authorization Code Flow без PKCE, которые сейчас считаются deprecated и содержат серьёзные уязвимости.

Как защититься?

  1. Использовать современные стандарты аутентификации: OAuth 2.1 и OpenID Connect (OIDC).

  2. Использовать ограниченные по времени и скоупу учётные данные.

  3. Избегать кастомных реализаций протокола OAuth, отклоняющихся от спецификации.

  4. Проводить регулярные аудиты безопасности, чтобы выявлять и устранять устаревшие конфигурации.

Наш опыт. В Yandex Cloud используется несколько типов аккаунтов и соответственно несколько методов аутентификации:

  • Сервисные аккаунты, у которых есть несколько видов ключей: API‑ключи, авторизованный ключ для обмена на IAM‑токен, статический ключ для AWS‑совместимых API. Первое, что мы рекомендуем здесь пользователям — использовать методы получения IAM‑токенов, не требующие создания ключей.

  • Федеративный аккаунт — это рекомендованный способ аутентификации пользователей, при котором используется сторонний Identity Provider.

  • Федерация сервисных аккаунтов (Workload Identity Federation), которая по умолчанию не предусматривает создания долгоживущих ключей. Этот метод основан на протоколе OpenID Connect (OIDC) и может быть использован, когда необходимо обращение к API облака из внешних сервисов, таких как GitHub/k8s или других облаков. Он предполагает обмен JWT‑токена на IAM‑токен, всегда имеющий ограниченный срок и скоуп. Этот вариант считается наиболее безопасным.

Также мы используем PKCE для аутентификации в наших публичных OAuth‑клиентах (например, Yandex Cloud CLI) и DPoP для дополнительной защиты refresh‑токенов.

NHI5:Overprivileged NHI

В чём угроза. Сервисные аккаунты с правами доступа шире, чем это необходимо для выполнения функций, несут угрозу расширения потенциального масштаба ущерба в случае компрометации. Злоумышленники могут использовать избыточные привилегии для:

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

  • Эскалации привилегий: получения более высокого уровня доступа, вплоть до административного или root‑доступа.

  • Горизонтального перемещения: доступа к другим системам и сервисам внутри корпоративной инфраструктуры.

  • Развёртывания вредоносного ПО: установки шифровальщиков и инструментов удалённого доступа (RAT).

  • Полного захвата облачного аккаунта: в случае утечки NHI, связанного с root‑учётной записью или облачным администратором, возможен полный захват управления над облачной инфраструктурой.

Как защититься?

  1. Использовать принцип наименьших привилегий (PoLP): в особенности избегать административных прав, если в них нет обоснованной необходимости.

  2. Внедрять защитные ограничения (guardrails): запрещающие политики на уровне организации для исключения избыточных конфигураций.

  3. Использовать доступ по требованию (Just‑in‑Time, JIT): инструменты, обеспечивающие временное и контролируемое повышение привилегий.

Наш опыт. Для аудита прав сервисных аккаунтов в Yandex Cloud в Security Deck реализован CIEM‑модуль «Диагностика доступа».

В одном окне можно сразу скорректировать настройки доступа
В одном окне можно сразу скорректировать настройки доступа

С его помощью можно анализировать пользовательские роли в одном месте, в разрезе конкретных пользователей и групп. 

В нашем стандарте мы также обращаем внимание пользователей на принцип минимальных привилегий для сервисных аккаунтов, а также даём рекомендации для защиты root-учётной записи. 

NHI6:Insecure Cloud Deployment Configurations

В чём угроза. Инструменты CI/CD позволяют командам разработки автоматизировать процессы сборки, тестирования и развёртывания кода — но для интеграции CI/CD‑конвейерам требуется аутентификация в облачных сервисах. Небезопасной практикой считается использование в CI/CD‑конвейерах сервисных аккаунтов со статическими учётными данными.

Как защититься?

  1. Использовать OIDC для безопасной аутентификации: заменить долгоживущие секреты на временные, динамически генерируемые токены с помощью OIDC и обеспечить строгую валидацию токенов, включая проверку issuer, audience и claims.

  2. Соблюдать принцип наименьших привилегий: в том числе ограничивать доверительные отношения в IAM‑ролях и конфигурациях OIDC.

  3. Избегать хардкодинга чувствительных данных.

Наш опыт. Для безопасного подключения к API Yandex Cloud из CI/CD‑систем мы также рекомендуем переходить на федерацию сервисных аккаунтов (Workload Identity Federation). Для пользователей популярных платформ разработки мы создали детальные рекомендации: для интеграции с GitHub, а также GitLab.

NHI7:Long-Lived Secrets

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

Как защититься?

  1. Включить автоматическую ротацию ключей. Это в том числе снизит человеческий фактор.

  2. Использовать короткоживущие учётные данные: подойдут механизмы для создания учётных данных, которые автоматически истекают и обновляются после выполнения конкретной задачи.

  3. Применять принципы Zero Trust: требовать повторной аутентификации для NHI, получающих доступ к чувствительным ресурсам или выполняющих действия повышенного риска.

  4. Придерживаться принципа наименьших привилегий (PoLP).

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

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

NHI8:Environment Isolation NHI

В чём угроза. Общепринятая практика в разработке — использование разделённых окружений: dev, тестирование, предпродакшн и продакшн. Однако если при этом повторно используются одни и те же сервисные аккаунты в нескольких средах — особенно между тестовой и продакшн‑окружением, — это может привести к серьёзным инцидентам. Если сервисный аккаунт, применяемый в менее защищённой тестовой среде, также имеет доступ к продакшн‑ресурсам, то в случае компрометации тестовой среды злоумышленник сможет использовать NHI для проникновения в продакшн‑среду.

Как защититься?

  1. Использовать уникальные NHI для каждой среды: cервисные аккаунты, ключи и т. п. Назначайте отдельные идентификаторы для каждой среды (dev‑, test‑, prod‑), чтобы исключить случайности.

  2. Применять принцип наименьших привилегий (PoLP): минимально необходимые права должны соответствовать задачам в конкретной среде.

  3. Реализовать средоспецифичные политики доступа: явно запретить сервисным аккаунтам вне прода иметь доступ к продакшн‑ресурсам.

  4. Проводить периодический аудит и мониторинг: отслеживать активность сервисных аккаунтов на предмет несанкционированных попыток доступа или аномального поведения.

  5. Дополнительно изолировать инфраструктуру для чувствительных ресурсов: использовать отдельные ресурсные группы, подписки или аккаунты для изоляции от других сред. Это позволяет ограничить «радиус поражения» даже в случае компрометации одного из аккаунтов.

Наш опыт. CIEM‑модуль для диагностики доступа в Security Deck может помочь и в этом случае. С его помощью можно определить, к каким ресурсам имеют доступ сервисные аккаунты, и отозвать их, если это необходимо.

NHI9:NHI Reuse

В чём угроза. Помимо уже перечисленных проблем, связанных с повторным использованием сервисных аккаунтов в разных средах, можно также столкнуться с переиспользованием их для разных приложений. Ко всему сказанному добавим то, что повторное использование сервисного аккаунта затрудняет реагирование на инциденты и может усложнить проведение аудита безопасности.

Изоляция NHI позволяет локализовать потенциальные инциденты и предотвратить горизонтальное перемещение злоумышленника внутри инфраструктуры.

Как защититься?

  1. Использовать уникальные NHI в каждом приложении и в каждой среде. Аутентификация с использованием этого NHI должна быть возможна только из соответствующего компонента.

  2. Применять принцип наименьших привилегий (PoLP).

  3. Проводить аудит и ревизию использования NHI, включая предоставленные им права доступа и назначенные системные компоненты.

NHI10:Human Use of NHI

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

  • Превышение уровня привилегий, необходимого для выполнения задачи.

  • Отсутствие детализированного аудита действий.

  • Смешение активности людей и автоматизированных процессов.

  • Усложнение выявления действий злоумышленников.

Как защититься?

  1. Использовать персональные учётные записи с ограниченными правами. Для отладки и обслуживания лучше использовать персональные учётные записи с чётко определёнными ролями и правами.

  2. Анализировать и отслеживать активность NHI. Использовать инструменты и платформы, обеспечивающие мониторинг использования NHI, чтобы различать и фиксировать случаи ручного доступа к ним.

  3. Применять контекстно‑зависимые политики доступа. Условные политики доступа способны обнаруживать и блокировать попытки доступа к NHI с признаками ручного использования (например, доступ из браузера, отсутствие автоматизации).

  4. Обучать разработчиков и администраторов по поводу рисков ручного использования. А также предоставлять альтернативные методы доступа, соответствующие требованиям безопасности.

Наш опыт. С помощью сервиса Audit Trails мы можем мониторить активность сервисных аккаунтов и отслеживать подозрительные сценарии, когда они используются не по назначению.

Tags:
Hubs:
+11
Comments2

Articles

Information

Website
yandex.ru
Registered
Employees
over 10,000 employees
Location
Россия
Representative
Вера Сомова