Перейти к основному содержимому

Меню команд

Перейти на страницу или искать в каталоге

ИИ-инструменты и скрипты

Проверка user-data для cloud-init

Проверьте user-data для cloud-init до запуска серверов: пароли открытым текстом, вход по SSH с паролем, вход под root, приватные ключи и токены, curl | bash по http, неподписанные репозитории, рискованные права доступа к файлам и заголовок, который cloud-init игнорирует.

$5.00

Что вы получите: 1 файл · 52.27 KB · ZIP

Варианты покупки

Описание товара

chpasswd с ubuntu:changeme и ssh_pwauth: true дают каждому новому серверу пароль для входа, который другие пользователи и процессы на нём часто могут прочитать из сервиса метаданных, и открывают SSH для подбора паролей. А "# cloud-config" с одним лишним пробелом заставляет cloud-init пропустить весь файл без ошибки, так что ни ваши пользователи, ни ключи, ни настройки безопасности не применяются. Этот навык находит такие и другие ошибки cloud-init, перечисленные ниже, до запуска и объясняет, как исправить каждую из них.

Ваш агент запускает сканер для файлов #cloud-config, файлов cloud.cfg.d, файлов автоустановки Ubuntu (autoinstall), файлов с именами вроде user-data, а также cloud-config, встроенного в heredoc Terraform, UserData CloudFormation, KubeVirt, профили LXD и Vagrantfile. Он знает значения cloud-init по умолчанию (пароли заблокированы, вход под root выключен, тип chpasswd hash), форматы хешей, которые принимает устаревший список chpasswd, устаревшие ключи через дефис и части cloudinit_config в Terraform, которым заголовок не нужен; он декодирует содержимое write_files в base64 и gzip и считает плейсхолдеры шаблонов заданными, но неизвестными. Он никогда не запускает cloud-init или команды. Он возвращает BLOCK, REVIEW или NOT FLAGGED с указанием файла, строки, причины и более безопасного подхода. Секреты никогда не выводятся.

Что проверяется

BLOCK (исправьте до выпуска)

  • C01: пароли открытым текстом (plain_text_passwd, chpasswd в виде текста или устаревшего списка, password, обычное значение там, где должен быть хеш, пароль identity в autoinstall, а также команды вроде echo или printf в chpasswd или passwd, chpasswd <<< и openssl passwd с литералом)
  • C02: включён вход по SSH с паролем (ssh_pwauth, PasswordAuthentication yes), при этом у учётной записи есть рабочий пароль (пароль только для root учитывается лишь при PermitRootLogin yes, поскольку в OpenSSH по умолчанию prohibit-password)
  • C03: код, выполняемый от root, который загружается по обычному HTTP или с отключённой проверкой сертификатов: curl или wget с передачей в оболочку (в том числе через tee) или сохранённый и затем запущенный, сделанный исполняемым или установленный через dpkg, rpm или apt, установки rpm или dnf с http-адресов, apt trusted=yes или gpgcheck off для yum/zypper по http, исполняемые источники write_files, URL установщиков Ansible, Puppet и Chef
  • C04: приватные ключи и учётные данные в user-data: ключи PEM (в том числе в содержимом base64 или gzip и в ssh_keys), известные форматы токенов, пароли в URL, заголовки Authorization, ключи WireGuard, настройки с секретными именами и секреты в командной строке (docker или az login -p, --token, htpasswd -b, rabbitmqctl add_user и другие)

REVIEW (проверьте перед релизом)

  • C11: скрипты или пакеты, загружаемые по https и запускаемые или устанавливаемые без проверки контрольной суммы или подписи
  • C12: разрешён вход под root (disable_root: false, запись root в users или пароль, PermitRootLogin yes)
  • C13: sudo NOPASSWD для всех пользователей, группы, системной учётной записи или пользователя, у которого также есть пароль, в записях users или файлах sudoers, записанных через write_files или echo/tee (администраторы, входящие только по ключу, не сообщаются)
  • C14: lock_passwd: false для пользователя, которому задан пароль
  • C15: проверки TLS или подписи отключены при работе по https (curl -k, apt trusted=yes, gpgcheck off, --allow-unauthenticated, snap --dangerous, pip --trusted-host и другие)
  • C16: права write_files, позволяющие запись всем, или права без кавычек, например 644, которые YAML читает как десятичное число
  • C17: файлы, которые cloud-init не прочитает как cloud-config (заголовок с опечаткой, в том числе внутри heredoc, комментарий или --- перед ним, отсутствие заголовка, метка порядка байтов (BOM) или UTF-16)

Что входит в комплект

  • Сканер (Python 3.9+, только стандартная библиотека)
  • Руководство по правилам с причиной, более безопасным подходом и ссылкой на официальную документацию для каждого правила
  • Рискованный и безопасный примеры проектов (cloud-config, Terraform и seed NoCloud), а также реальный отчёт сканера по рискованному примеру

Ограничения

Он читает каждый файл в том виде, в каком он написан. Значения, подставляемые шаблоном (Terraform, Jinja, Helm), неизвестны; многочастные MIME user-data, URL #include, сжатые user-data, shell-скрипты в user-data и vendor-data не читаются, а cloud-config, сохранённый как строка JSON, не обнаруживается. Команды оболочки сопоставляются по шаблону, а не разбираются. Токены Ubuntu Pro и ключи активации Red Hat не сообщаются. Некоторые официальные примеры cloud-init отмечаются намеренно, поскольку в них показаны обычный пароль, пароль учётной записи, заголовок Basic auth, демонстрационный приватный ключ или приватный ключ хоста в user-data. NOT FLAGGED не является гарантией.

Содержимое

Один ZIP-файл с 16 файлами: SKILL.md, сканер в scripts/ (7 файлов Python), references/rules.md (каждое правило с причиной и более безопасным подходом) и examples/ (6 файлов примеров плюс report.md, реальный вывод сканера для рискованного примера).

Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами Python, которые может запускать ИИ-агент для программирования, например Claude Code, Cursor или Codex CLI. Распакуйте его в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить ваш проект. Скрипты также работают самостоятельно с Python 3.9 или новее, ничего устанавливать не нужно. Они только читают ваши файлы: без доступа к сети, никакие данные никуда не отправляются.

Что вы получите

1 файл · 52.27 KB

  • cloud-init-userdata-check-1.0.0.zipZIP · 52.27 KB
ЛицензияКоммерческое использование разрешено
Проверка пакетаПройдена

Getly открыл загруженные файлы и не нашёл ничего, что помешало бы их открыть. Это не проверка на вирусы и не оценка качества.

Опубликовано12 нояб. 2026 г.
Размер файла52.27 KB
Формат файлаZIP
Версияv1.0

Теги

cloud-inituser-dataclouddevopssecurityai agent skill
R
RR HH

Частые вопросы

Доступ открывается сразу?

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

Можно ли использовать в коммерческих проектах?

Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.

Какие условия возврата?

Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.

Какие форматы и размеры файлов я получу?

Вы скачаете 1 файл - ZIP - всего 52.27 KB.

Обновления бесплатны?

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

Цена

$5.00