Резюме для руководства
Многоагентные фреймворки наступательной безопасности, такие как ARTEX и Cairn, не оставляют камня на камне перед лицом задачи по поиску путей проникновения в целевую организацию.
В последние месяцы специалисты Okta Threat Intelligence фиксируют взрывной рост числа агентов, выполняющих пассивную и активную разведку целей. Мы наблюдали, как операторы поручают агентам проверять списки известных имен пользователей на конечных точках регистрации, входа и восстановления целевых тенантов, что позволяет агентам узнать, где и как аутентифицируются пользователи. Там, где это возможно, агенты регистрируют фиктивные тестовые учетные записи для проверки этих потоков аутентификации на предмет потенциальных ошибок конфигурации. Агенты неутомимы, и во время этих атак они не оставляют «непроверенным» ни один поток.
Теперь ошибки конфигурации стало гораздо проще обнаруживать. Агенты быстро выявляют и эксплуатируют избыточные токены, URL-адреса обратного вызова с подстановочными знаками, слабые типы предоставления доступа или отсутствие проверки подписи. Эти многоагентные фреймворки могут работать столько времени, сколько злоумышленник готов платить за токены. Мы наблюдали атаки, в которых рабочие агенты выполняли такие тесты более 390 часов.
Этот всплеск активности в рамках разведки требует от каждой организации выявлять и устранять неправильные конфигурации клиентов до того, как их обнаружат и используют агенты. Для этого доступно множество инструментов, описанных ниже. Организациям следует провести аудит как сторонних приложений, использующих Okta для управления идентификацией, так и собственных клиентских приложений, используемых для выполнения конфиденциальных операций. Okta Workflows — это собственное клиентское приложение с разрешениями и областями видимости, позволяющими выполнять привилегированные операции с API управления, что делает его приоритетной целью для защиты.
Workflows: ни один поток не остается непроверенным
Команды по обеспечению безопасности и управлению доступом все чаще полагаются на инструменты без кода или с низким уровнем кодирования, такие как Workflows, Auth0 Actions, и сторонние альтернативы, для автоматизации процессов приема на работу, увольнения, запросов на доступ и уведомлений, а также для интеграции с кадровыми системами, ITSM и инструментами безопасности. Эти средства автоматизации часто работают с большими привилегиями и могут дополнительно вызываться из-за пределов границ приложения посредством HTTP-запросов. Учитывая текущую ландшафт угроз, при котором агенты исследуют каждый возможный поток, защитникам необходимо подумать о том, как автоматизация может привести к непреднамеренному раскрытию конфиденциальной информации. Ниже мы рассмотрим ключевые аспекты обеспечения безопасности Workflows.
Защита URL-адресов вызова
URL-адрес вызова создается, когда администратор Workflows настраивает поток, который может быть запущен («вызван») внешним клиентом с помощью карточки конечной точки API. URL-адреса вызова можно защитить с помощью OAuth 2.0 или секретов клиента, но администраторы также могут выбрать уровень безопасности «Нет» (общедоступная служба). В этом случае любой, у кого есть доступ к URL-адресу вызова, может как запустить поток, так и просмотреть его результат, даже если он не аутентифицирован. В консоли Workflows компания Okta приводит следующее предупреждение о рисках этого параметра:
«Этот поток может быть запущен любым лицом или службой, имеющими доступ к URL-адресу. Для рабочих потоков рекомендуется использовать другой параметр безопасности».
Это предупреждение выдается потому, что URL-адреса вызова предназначены для запуска внешними клиентами. Безопасность потока зависит как от защиты клиента, настроенного на его использование, так и от защиты способов возможного доступа к URL-адресу. Например, URL-адрес вызова может передаваться в тикетах или чатах, копироваться в буфер обмена либо сохраняться в истории браузера и журналах клиентского приложения.
Злоумышленник, имеющий доступ к общедоступному URL-адресу вызова, не требующему аутентификации, может использовать его для вызова («запуска») потоков. В некоторых сценариях использования вызов потока может не представлять угрозы. Некоторые системы могут отправлять запрос, но не могут пройти аутентификацию (например, вебхук от инструмента, не поддерживающего ни OAuth 2.0, ни секрет клиента), поэтому общедоступный URL-адрес вызова — это единственный способ связаться с потоком. Открытые формы регистрации — еще один пример, поскольку любой желающий, в том числе люди без учетной записи, должен иметь возможность отправлять их. Поток, который возвращает только неконфиденциальные данные только для чтения и не использует подключения с существенными привилегиями, также несет минимальный риск в общедоступном режиме. Вызов потока становится рискованным, когда он изменяет данные учетных записей или возвращает конфиденциальные данные в выводе клиента, поэтому администраторы должны тщательно проверять, к чему может получить доступ каждый поток с общедоступным URL-адресом вызова.
Мы рекомендуем администраторам:
- Выбирать вариант «Защищено с помощью OAuth 2.0» для любого потока, который затрагивает данные идентификации или выполняет привилегированные действия.
- Оставлять вариант «Нет» (общедоступная служба) только для потоков, которые были проверены, и для которых подтверждено отсутствие доступа к конфиденциальным данным или привилегированным действиям.
Не передавать токены клиентов в URL-адресах
Если администратор Workflows решает защитить поток с помощью клиентского токена, Okta генерирует случайный уникальный статический токен API, который можно передать либо в качестве параметра запроса clientToken, либо в заголовке HTTP x-api-client-token. Администраторы могут в любой момент пересоздать этот токен.
Существуют известные risks associated with passing a long-lived token in a query string. URL-адреса могут записываться в журналы веб-серверов и прокси-серверов, кэшироваться браузерами, передаваться на скриншотах и перехватываться инструментами мониторинга. Это делает их уязвимыми для обнаружения и анализа агентами с искусственным интеллектом, которые обычно умеют составлять легитимные запросы с использованием такого токена.
Мы рекомендуем администраторам:
- Передавать клиентские токены в заголовке x-api-client-token, но никогда — в URL.
- Пересоздавать токен клиента всякий раз, когда поток изменяется так, что это меняет его модель угроз, или всякий раз, когда токен мог быть скомпрометирован.
Применять принцип наименьших привилегий к доступу к консоли
Учетные записи, имеющие доступ к консолям инструментов автоматизации, таких как Workflows, высоко ценятся злоумышленниками. По этой причине мы рекомендуем применять принцип наименьших привилегий, назначая роль администратора Workflows (Workflows Administrator) вместо супер администратора (Super Administrator) для управления Workflows. Администратор Workflows, в свою очередь, может при необходимости назначать конкретные роли и разрешения пользователям Workflows.
27 октября 2026 года компания Okta объявила о доступности RBAC на уровне папок и подключений с ограничением по папкам для Workflows. Теперь роли и разрешения можно назначать по папкам (группам рабочих процессов), сегментируя доступ для конкретных отделов или проектов. Администраторы также могут создавать дифференцированный набор подключений для каждой из этих папок в зависимости от требуемых им областей видимости.
Мы рекомендуем администраторам:
- Использовать новые роли папок для создания уникальных подключений для каждой «папки» (группы) Workflows. Это ограничивает «радиус поражения» в случае компрометации секрета клиента или общедоступного URL-адреса вызова.
Применять принцип наименьших привилегий к подключениям
С точки зрения авторизации доступ Workflows к ресурсам Okta управляется как на уровне приложений, так и на уровне коннекторов.
Во-первых, когда Workflows необходимо получить доступ к ресурсам Okta, это происходит через OAuth-приложение Okta Workflows. Это глобальная настройка, которую может изменять только Супер-администратор. Для обеспечения наименьших привилегий администратор, использующий эту роль для предоставления областей видимости (scopes) API, должен знать все области видимости API, необходимые для использования Workflows в организации. Если ни один из потоков (flows) в организации не требует определенной области видимости, в ней следует отказать на глобальном уровне.
Область видимости также должна быть ограничена на уровне подключения Workflows, которое может быть настроено администратором Workflows или Менеджером подключений.
Мы рекомендуем администраторам:
- Использовать области видимости по умолчанию только для тестирования новых потоков в среде Preview. Переходите на использование настраиваемых областей видимости (customize scopes), чтобы ограничить каждое подключение необходимыми ему областями до установления подключения в рабочей (production) организации.
- Проверяйте и отзывайте неиспользуемые области видимости, предоставленные OAuth-приложению Okta Workflows.
- Повторно авторизуйте подключения после любых изменений в области видимости. Изменения предоставленных областей видимости вступают в силу только после повторной авторизации подключения.
Проверяйте входящие данные и минимизируйте исходящие
Проверка ненадежных входных данных имеет решающее значение для безопасности приложений. Потоки, принимающие данные от внешнего клиента, должны быть готовы к злоупотреблениям и, следовательно, проверять ожидаемые входные данные.
Администраторы также должны проверять, какие значения передаются обратно вызывающей стороне потока. Workflows возвращает вызывающей стороне полный вывод последней карточки в потоке независимо от того, какой вывод выбран в этой последней карточке. (Примечание: поле «вывод» в карточке управляет только тем, что передается следующей карточке в потоке.)
Мы рекомендуем администраторам:
- Вставлять карточку Return в конце потока, чтобы контролировать, какие значения возвращаются вызывающему клиенту.
- Проверять входные данные на соответствие ожиданиям потока перед их использованием и отклонять все, что не соответствует.
- Явно формировать ответы, возвращая только те поля, которые необходимы вызывающему клиенту. Используйте карточку Return, чтобы точно контролировать, какие значения вы хотите вернуть вызывающему клиенту. По возможности возвращайте общие сообщения об ошибках внешним вызывающим абонентам.
Не храните секреты в карточках, таблицах и истории выполнения
Workflows позволяет легко вызывать любой HTTP-API. Разработчики потоков должны избегать любых сценариев, при которых токен API или токен носителя (bearer token) вводится непосредственно в карточку или сохраняется в таблице.
Мы рекомендуем пользователям:
- Ограничивать учетные данные настройкой коннектора, а не вставлять их в карточки.
- Проводить аудит истории выполнения и таблиц на предмет наличия секретов или конфиденциальных данных, а также отключать историю в потоках, которые обрабатывают их, за исключением случаев активного устранения неполадок.
- Требовать экспертной проверки (peer review) перед импортом потоков в рабочую организацию, включая проверку на наличие зашитых в код (hard-coded) секретов.
Заключение
Учитывая текущую ландшафт угроз, при котором злоумышленники легко обнаруживают любые неправильные конфигурации, организации должны использовать все возможности при защите инструментов в своей среде. Лучшие практики безопасности, применимые к разработке программного обеспечения, в равной степени применимы и к инструментам с низким уровнем кодирования (low-code) и без кода (no-code). Мы рекомендуем применять те же принципы, описанные выше, ко всем инструментам автоматизации, используемым в вашей организации.
Следующие инструменты с открытым исходным кодом могут использоваться для выявления раскрытых секретов и неправильных конфигураций:
Инструмент
Назначение
Разработчики Auth0 могут запускать проверки конфигурации, которые обнаруживают распространенные ошибки безопасности клиентов.
Threat Exposure Analyzer
Этот инструмент может сканировать тенант Okta на предмет распространенных ошибок конфигурации и выявлять любые рабочие процессы, в которых от внешних вызывающих абонентов не требуется аутентификация.
Этот инструмент с открытым исходным кодом выполняет поиск в репозиториях кода, хранилищах, системах тикетов и приложениях обмена сообщениями строк, соответствующих структуре раскрытого клиентского секрета.
Эта утилита сканирует репозитории кода GitHub на наличие зашитых в код секретов.
Инструмент с открытым исходным кодом для обнаружения секретов в GitHub и других средах.












