Идентификаторы, полученные не от людей — ключи API, токены, учетные записи служб, идентификаторы рабочих нагрузок — теперь являются одним из самых простых способов проникновения в современные облачные среды. Не потому, что злоумышленники внезапно стали гениями, а потому, что организации все чаще работают на основе доверия между машинами, и это доверие часто бывает чрезмерным, долговременным и плохо контролируемым.
Новый анализ, освещенный в отчете, указывает на знакомую закономерность в огромных масштабах: тысячи образов контейнеров и репозиториев случайно раскрывают секреты, которые незаметно предоставляют доступ к производственным системам. Проблема не только в том, что разработчики иногда совершают ошибки. Проблема в том, что стандартные инструменты и стимулы приводят к этому.легкийк морским секретам ижесткийчтобы доказать, что вы этого не делали.
Это история о «незаметном взломе». Многие компрометации начинаются не с эксплойта или громкого вредоносного ПО. Они начинаются с токена, который проходит проверку подлинности — поэтому всё выглядит нормально — пока вы не поймёте, что его использует не тот субъект.
Что такое «нечеловеческие идентичности» (проще говоря)?
Идентификатор, не являющийся человеческим, — это любой учетный документ, позволяющий программному обеспечению аутентифицироваться как доверенный субъект:
- Ключи доступа к облаку и токены сеанса
- служебные учетные записи и идентификаторы рабочих нагрузок
- Учетные данные CI/CD, используемые конвейерами сборки.
- Токены для SaaS-инструментов (GitHub, GitLab, Slack, платформы мониторинга)
- API-ключи для сторонних сервисов (платежные системы, почтовые сервисы, API для моделей ИИ)
Важное отличие от входа в систему человеком заключается в том, что системы NHI обычно:
- работать непрерывно
- встроены в код или конфигурацию
- и часто не используют MFA
Это делает их привлекательными.
Если злоумышленник получит рабочий токен, ему не нужно будет «взламывать систему». Он просто пройдет аутентификацию.
Почему ситуация сейчас ухудшается
Три тенденции переводят немедицинские страховые полисы из разряда «важных» в разряд «доминирующих рисков»:
1) Цепочки поставок программного обеспечения стали масштабнее, чем когда-либо.
Современные приложения создаются из:
- контейнеры
- зависимости с открытым исходным кодом
- инфраструктура как код
- десятки интеграций SaaS
Каждая интеграция добавляет еще одни учетные данные.
2) Автоматизация повсюду
Организации хотят:
- более быстрые развертывания
- инфраструктура самообслуживания
- эфемерные среды
Автоматизация — это хорошо, но она осуществляется с помощью учетных записей, обладающих привилегиями.
3) Учетные данные сохраняются дольше, чем люди, которые их создали.
Люди меняют роли и уходят.
Но токен в репозитории или контейнере может:
- продолжаются месяцами или годами
- копировать в новые сборки
- и остаются актуальными ещё долго после того, как кто-либо вспомнит об их существовании.
Таким образом, поверхность атаки незаметно расширяется.
Как в реальной жизни утекают секреты (не всегда это происходит из-за того, что «кто-то спрятал ключ»).
Стереотипный образ — это разработчик, который вносит изменения в код.AWS_SECRET_ACCESS_KEYна GitHub.
Такое всё ещё случается. Но многие утечки менее очевидны:
- токены, встроенные в слои контейнера
- Файлы конфигурации копируются в образы во время сборки.
- отладочные журналы, содержащие секреты
- «Временные» ключи, которыми обмениваются в чате, а затем вставляют в код.
- Переменные CI, выводимые неправильно настроенными конвейерами.
А образы контейнеров особенно опасны, потому что:
- они зеркально отображаются
- они кэшируются
- Они копируются между командами.
Даже если вы удалите ключ из репозитория, он может остаться в старых слоях образа.
Почему утечки токенов опаснее многих эксплойтов
Эксплойты создают много шума. Они часто вызывают срабатывание оповещений.
Утекшие токены не содержат никаких утечек. Зачастую они выглядят как обычное использование:
- успешная аутентификация
- корректные вызовы API
- легитимные конечные точки
Это меняет суть проблемы защитника.
Вместо обнаружения «злоумышленника» вам необходимо обнаружить:
- неожиданныйглавныйиспользуя действительные учетные данные
- из необычных мест
- в необычное время
- совершение необычных действий
Именно поэтому немедицинские идентификационные данные представляют собой пробел в системе выявления нарушений здоровья для многих организаций.
Проблема привилегий: токены зачастую слишком сильны.
Многие секреты создаются как бы для того, чтобы "заставить всё работать":
- широкие облачные разрешения
- Доступ к API на уровне администратора
- долговечные ключи
А как только система заработает, люди не захотят к ней прикасаться.
Это создает опасную асимметрию:
- В учетной записи, созданной человеком, могут быть предусмотрены многофакторная аутентификация и мониторинг.
- Идентификатор машины может иметь широкий доступ и не подвергаться тщательному контролю.
Когда происходит утечка информации о личности машины, радиус взрыва может быть больше.
Как выглядит эффективная стратегия национального медицинского страхования (конкретные примеры)
Это решаемо, но только если рассматривать немедицинские данные как первоклассные активы безопасности.
1) Предпочтение отдается сертификатам с кратковременным сроком действия.
По возможности:
- использовать временные учетные данные сессии
- часто меняйте токены
- Избегайте ключей с пометкой «срок действия не ограничен».
Кратковременные токены снижают отдачу от утечек информации.
2) Замените статические ключи идентификаторами рабочих нагрузок там, где это возможно.
В современных облачных средах аутентификацию рабочих нагрузок часто можно осуществлять следующим образом:
- идентификатор экземпляра
- федерация OIDC
- управляемая идентификация
Это снижает необходимость хранения статических ключей.
3) Строго разделяйте рабочие среды.
Распространенная ошибка — использование одного и того же лексемы во всех случаях:
- дев
- постановка
- производство
Токены должны иметь область действия в рамках среды.
Если образ для разработчиков попадёт в сеть, это не должно разблокировать доступ к продакшену.
4) Инвентаризация и право собственности
Каждый значимый токен должен обладать следующими характеристиками:
- владелец
- цель
- ожидаемая модель использования
Если у токена нет владельца, это технический долг, который может перерасти в инцидент.
5) Отслеживайте поведение медицинских работников так же, как вы отслеживаете поведение людей.
К числу хороших сигналов относятся:
- Невозможные путешествия / необычные географические регионы
- необычные последовательности вызовов API
- всплески доступа к данным
- предоставлены новые разрешения
- созданы новые токены
Цель состоит не в идеальном обнаружении, а в раннем выявлении.
6) Рассматривайте CI/CD как фабрику по производству идентификационных данных с высоким риском.
Системы CI часто содержат следующие утверждения:
- ключи развертывания
- ключи для подписи
- облачные учетные данные
Заблокируйте их:
- наименьшие привилегии
- разделились бегуны
- Скрытая маскировка и предотвращение утечек данных из журналов.
- строгие согласования этапов развертывания в производственной среде
Где команды обычно терпят неудачу (и как этого избежать)
«Иногда мы меняем ключи» — это не план.
Если вращение происходит вручную и причиняет боль, оно не произойдет под давлением.
Сделайте ротацию рутинной и автоматизированной.
Инструменты безопасности без надлежащего контроля превращаются в «театрализованное наблюдение».
Сканирование хранилищ на предмет секретов полезно, но этого недостаточно.
Вам также потребуется:
- быстрая отмена
- оповещения об использовании
- и предотвращение в конвейерах сборки
Ловушка слоя контейнера
Если секреты когда-либо попадали в контекст сборки контейнера, предположите, что они могут находиться в:
- старые изображения
- кэшированные слои
- артефакты CI
Решение заключается не только в «удалении ключа репозитория». А в следующем:
- повернуть секрет
- восстановить и повторно опубликовать изображения
- По возможности очищайте кэш.
Что посмотреть дальше
Если вы хотите отслеживать, улучшаются ли показатели NHI в организациях, обратите внимание на следующие факторы:
- внедрение кратковременной идентификации (OIDC/идентификатор рабочей нагрузки)
- широкомасштабные программы ротации токенов
- более строгий контроль границ CI/CD
- В отчетах об инцидентах в качестве основной причины указывается «использование действительных учетных данных».
Также обратите внимание на инструментарий: лучшие инструменты будут переходить от «обнаружения скрытых строк» к «уменьшению количества существующих статических секретов».
Экономика: почему злоумышленники любят охоту за токенами
Весы для охоты за жетонами.
Злоумышленник, укравший одни рабочие учетные данные, часто может:
- доступ к нескольким системам (облако + система контроля версий + CI)
- повторно использовать одну и ту же методику во многих организациях
- и продавать доступ на торговых площадках, если они не хотят управлять ими самостоятельно.
Для специалистов по защите это означает, что угроза заключается не просто в том, что «хакер нацелен на нас». Это «машинная экономика, которая извлекает выгоду из любых повторно используемых учетных данных».
Поэтому в данном случае профилактика важнее реагирования. Если ключ никогда не существовал в статическом виде, его нельзя будет использовать позже.
Идеи для обнаружения бетона (на что следует обращать внимание)
Если вы разрабатываете системы обнаружения нежелательных явлений, сосредоточьтесь на изменениях в поведении, а не на волшебных ключевых словах.
Примеры с высоким уровнем сигнала:
- Служебный аккаунт, используемый изновая страна/ASNЕго никогда раньше не использовали.
- Токен, который обычно вызывает только один API, внезапно начинает перечислять ресурсы или загружать большие объемы данных.
- Идентификатор CI, выполняющий действия вне обычного окна выпуска.
- Секреты, используемые из интерактивных пользовательских конечных точек, когда они предназначались только для серверных нагрузок.
Даже самые простые оповещения об аномалиях могут выявить схему «скрытой кражи учетных данных» на ранней стадии.
Идеи для затвердевания бетона (малые усилия, большой рычаг)
Это практические изменения, которые большинство команд могут внести без масштабной переработки дизайна:
- Уменьшить область действия токена: разделить один общий токен на несколько токенов с более узкой областью действия.
- Посменная работа по графикуВращение происходит даже тогда, когда всё «в порядке», поэтому вращение становится частью мышечной памяти.
- Производство ворот: требуется явное подтверждение для идентификаторов развертывания в производственной среде.
- Блокировка секретных данных в открытом виде в сборкахСистема непрерывной интеграции (CI) должна завершать сборку с ошибкой при обнаружении очевидных скрытых закономерностей.
Каждое перемещение уменьшает радиус поражения взрывной волной, даже если утечка всё ещё происходит.
Простая внутренняя политика, которая предотвращает множество проблем.
Если вам нужна политика, которая заставит людей вести себя лучше, то это вот она:
- В ноутбуках разработчиков и в контексте сборки контейнеров нет никаких секретов, пригодных для использования в производственных условиях.
Это правило приводит к таким изменениям, как:
- идентификация рабочей нагрузки для служб
- учетные данные для тестирования в процессе разработки
- и явные разрешения на этапы развертывания в производственной среде.
Поначалу это раздражает, но зато перекрывает самые лёгкие пути утечки.
Итог
Идентификаторы, не являющиеся людьми, составляют основу современной автоматизации, а также являются одним из основных факторов, способствующих утечкам данных, поскольку они часто обходят защиту, созданную нами для людей.
Если вам нужен практический критерий: как только вы сможете ответить на вопросы «где хранятся наши долгосрочные токены, кому они принадлежат и как быстро мы можем их аннулировать/обменять», вы перейдете от мечтаний к реальной программе защиты.
Практическое решение — это не один волшебный сканер. Это программа: минимизировать статические секреты, уменьшить привилегии, сделать ротацию регулярной и отслеживать идентификаторы машин так же, как вы отслеживаете учетные записи пользователей.