ИИ-инструменты и скрипты
Проверка realm Keycloak
Проверка экспорта realm и конфигурации сервера Keycloak перед импортом или развёртыванием: redirect URI с подстановочными знаками, sslRequired none, секреты клиентов и ключи подписи в экспорте, пароли администратора в виде литералов, start-dev в развёртываниях и слабые настройки входа.
Что вы получите: 1 файл · 50.95 KB · ZIP
Варианты покупкиОписание товара
Клиент со значением "*" в Valid Redirect URIs позволяет Keycloak отправлять коды авторизации на любой сайт, выбранный злоумышленником. Файл realm, созданный командой kc.sh export, содержит все секреты клиентов и закрытые ключи подписи realm в открытом виде, поэтому, закоммитив его, вы позволите кому угодно подписывать собственные токены. Манифест Kubernetes, запускающий start-dev с KC_BOOTSTRAP_ADMIN_PASSWORD: admin, обслуживает realm master по обычному HTTP с известным паролем. Этот навык находит такие ошибки и другие ошибки Keycloak из списка ниже и объясняет, как исправить каждую из них.
Ваш агент запускает сканер для вашего проекта: экспорт и импорт realm (JSON realm, файлы пользователей из kc.sh export, ресурсы KeycloakRealmImport, YAML для keycloak-config-cli и JSON realm внутри ConfigMap), файлы адаптера keycloak.json, keycloak.conf и настройки Keycloak, где бы они ни были записаны: переменные KC_ и аргументы kc.sh в файлах Compose, манифестах и Secrets Kubernetes, значениях Helm, ресурсе оператора Keycloak, Dockerfile, юнитах systemd и файлах .env. Он знает значения Keycloak по умолчанию и встроенных клиентов, считает плейсхолдеры хранилища секретов и переменных окружения, а также замаскированные значения экспорта хранящимися вне файла и отличает локальную установку start-dev от развёртывания. Файлы realm и настройки в путях для тестов, фикстур, разработки или локального запуска (src/test/resources, integration-tests, e2e, кластеры kind) получают REVIEW вместо BLOCK. Сканер никогда не обращается к Keycloak и не использует сеть. Он возвращает BLOCK, REVIEW или NOT FLAGGED с указанием файла, строки, причины и более безопасного подхода. Секреты никогда не выводятся.
Что проверяется
BLOCK (исправить до выпуска)
- K01: realm с sslRequired, установленным в none
- K02: redirect URI, принимающие другие хосты: "*", "https://*" или подстановочный знак сразу после хоста (также redirect URI после выхода); подстановочные знаки порта loopback для нативных приложений не попадают в отчёт
- K03: учётные данные в файлах realm и адаптера: секреты клиентов, секреты клиентов поставщиков удостоверений, пароли привязки SMTP и LDAP, пароли пользователей, начальные значения OTP, секреты клиентов в keycloak.json
- K04: ключевой материал realm в файле: закрытые ключи и секреты поставщиков ключей, пароли хранилищ ключей, закрытые ключи клиентов SAML
- K05: пароли сервера в виде литералов: пароль начального администратора (а также устаревший KEYCLOAK_ADMIN_PASSWORD), пароль базы данных (в том числе внутри KC_DB_URL), пароли хранилища ключей, хранилища доверенных сертификатов и другие параметры паролей или секретов Keycloak, заданные как переменные KC_, аргументы kc.sh, строки keycloak.conf или параметры оператора
- K06: start-dev в манифесте Kubernetes, значениях Helm, юните systemd, а также в файле Compose или Dockerfile, названном для продакшена или staging (для установок kind, minikube и k3d вместо этого выдаётся K20)
REVIEW (проверить перед релизом)
- K11: клиенты с включённым implicit flow
- K12: публичные клиенты с Direct Access Grants (password grant)
- K13: отключённое обнаружение атак перебора
- K14: отсутствие политики паролей, минимальной длины или минимальная длина меньше 8
- K15: "*" в Web Origins клиента
- K16: публичные клиенты, которые не требуют PKCE с S256, при отсутствии включённой клиентской политики для публичных клиентов, которая бы это обеспечивала
- K17: время жизни токенов доступа больше одного часа
- K18: самостоятельная регистрация в realm master или без подтверждения email
- K19: отключённый hostname-strict без указания имени хоста в том же файле
- K20: start-dev в сервисе Compose, который публикует порт за пределы 127.0.0.1, или в Dockerfile, название которого не указывает на локальное использование
- K21: redirect URI с подстановочным знаком в пути на нелокальном хосте (в Keycloak до версии 26.6.2 также есть уязвимость CVE-2026-7504 для redirect URI с подстановочными знаками)
- K22: пароли Keycloak в виде литералов в файлах .env, которые не покрыты ни одним .gitignore
Что входит в комплект
- Сканер (Python 3.9+, только стандартная библиотека)
- Руководство по правилам с причиной, более безопасным подходом и ссылкой на документацию для каждого правила (документация Keycloak и RFC 9700)
- Рискованный и безопасный примеры (экспорт realm магазина, файл Compose, Deployment Kubernetes, keycloak.conf и файл env), а также реальный отчёт сканера по рискованному примеру
Ограничения
Сканер читает каждый файл отдельно и в том виде, в каком он записан. Имя хоста, заданное в другом файле, значения из файлов .env, используемых файлом Compose, шаблоны Helm-чартов, ключи Helm, специфичные для чарта, Terraform, а также изменения, сделанные позже в Admin Console или через Admin REST API, не учитываются. Пароли в виде литералов в файлах .env попадают в отчёт, только если файл не покрыт ни одним .gitignore, а пароли в локальных установках start-dev и CI-процессах не попадают в отчёт. Среда разработки, тестирования или продакшена определяется по именам файлов, папкам, start-dev и опубликованным портам, поэтому сверяйте K06, K20 и находки REVIEW в тестовых путях с тем, как файлы используются на самом деле. Собственные демонстрационные realm Keycloak и манифест Kubernetes из quickstart попадают в отчёт там, где они небезопасны за пределами ноутбука, а полный экспорт со значениями Keycloak по умолчанию получает K13 и K14, поскольку документация Keycloak рекомендует изменить оба параметра. NOT FLAGGED не является гарантией.
Содержимое
Один ZIP-файл с 20 файлами: SKILL.md, сканер в scripts/ (7 файлов Python), references/rules.md (каждое правило с причиной и более безопасным подходом) и examples/ (10 файлов примеров плюс report.md, реальный вывод сканера для рискованного примера).
Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами на Python, которые может запускать ИИ-агент для программирования, например Claude Code, Cursor или Codex CLI. Распакуйте архив в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить ваш проект. Скрипты работают и самостоятельно на Python 3.9 или новее, ничего устанавливать не нужно. Они только читают ваши файлы: никакого доступа к сети, ничего никуда не отправляется.
Что вы получите
1 файл · 50.95 KB
- keycloak-realm-check-1.0.0.zipZIP · 50.95 KB
ИИ-инструменты и скрипты
Проверка realm Keycloak
Проверка экспорта realm и конфигурации сервера Keycloak перед импортом или развёртыванием: redirect URI с подстановочными знаками, sslRequired none, секреты клиентов и ключи подписи в экспорте, пароли администратора в виде литералов, start-dev в развёртываниях и слабые настройки входа.
Getly открыл загруженные файлы и не нашёл ничего, что помешало бы их открыть. Это не проверка на вирусы и не оценка качества.
Теги
Частые вопросы
Доступ открывается сразу?
Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.
Можно ли использовать в коммерческих проектах?
Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.
Какие условия возврата?
Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.
Какие форматы и размеры файлов я получу?
Вы скачаете 1 файл - ZIP - всего 50.95 KB.
Обновления бесплатны?
Да - когда продавец выпускает новую версию, вы можете бесплатно скачать актуальные файлы из своей библиотеки. Последние изменения смотрите в истории версий.
Цена
$5.00



