Перейти до основного вмісту

Меню команд

Перейдіть на сторінку або пошукайте в каталозі

ШІ-інструменти та скрипти

Перевірка 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