Saltar al contenido principal

Menú de comandos

Ve a una página o busca en el catálogo

Herramientas y scripts de IA

Comprobación de user-data de cloud-init

Revisa el user-data de cloud-init antes de lanzar servidores: contraseñas en texto plano, inicio de sesión SSH con contraseña, acceso como root, claves privadas y tokens, curl | bash por http, repositorios sin firmar, permisos de archivo arriesgados y una cabecera que cloud-init ignora.

$5.00

Qué recibes: 1 archivo · 52.27 KB · ZIP

Ver opciones de compra

Descripción del producto

chpasswd con ubuntu:changeme y ssh_pwauth: true da a cada servidor nuevo una contraseña de acceso que otros usuarios y procesos del servidor a menudo pueden leer desde el servicio de metadatos, y abre SSH a ataques de adivinación de contraseñas. Y "# cloud-config" con un espacio de más hace que cloud-init omita el archivo entero sin ningún error, de modo que no se aplica ninguno de tus usuarios, claves ni ajustes de seguridad. Esta skill detecta esos errores y los demás errores de cloud-init que se indican abajo antes de lanzar, y te explica cómo corregir cada uno.

Tu agente ejecuta un escáner sobre archivos #cloud-config, archivos de cloud.cfg.d, archivos de autoinstalación de Ubuntu (autoinstall), archivos con nombres como user-data y cloud-config incrustado en heredocs de Terraform, UserData de CloudFormation, KubeVirt, perfiles de LXD y Vagrantfiles. Conoce los valores predeterminados de cloud-init (contraseñas bloqueadas, acceso root desactivado, tipo de chpasswd hash), los formatos de hash que acepta la lista heredada de chpasswd, las claves heredadas con guion y las partes de cloudinit_config de Terraform que no necesitan cabecera; decodifica el contenido base64 y gzip de write_files y trata los marcadores de plantilla como definidos pero desconocidos. Nunca ejecuta cloud-init ni los comandos. Devuelve BLOCK, REVIEW o NOT FLAGGED, con el archivo, la línea, el motivo y un enfoque más seguro. Los secretos nunca se muestran.

Qué comprueba

BLOCK (corregir antes de publicar)

  • C01: contraseñas en texto plano (plain_text_passwd, chpasswd en texto o en lista heredada, password, un valor plano donde debería ir un hash, la contraseña de identity de autoinstall y comandos como echo o printf hacia chpasswd o passwd, chpasswd <<< y openssl passwd con un literal)
  • C02: inicio de sesión SSH con contraseña activado (ssh_pwauth, PasswordAuthentication yes) mientras una cuenta recibe una contraseña utilizable (una contraseña solo para root cuenta únicamente con PermitRootLogin yes, ya que OpenSSH usa prohibit-password por defecto)
  • C03: código ejecutado como root que se descarga por HTTP simple o con la verificación de certificados desactivada: curl o wget canalizados a una shell (también a través de tee) o guardados y luego ejecutados, hechos ejecutables o instalados con dpkg, rpm o apt, instalaciones de rpm o dnf desde URL http, apt trusted=yes o gpgcheck off en yum/zypper por http, fuentes ejecutables de write_files, URL de instaladores de Ansible, Puppet y Chef
  • C04: claves privadas y credenciales en user-data: claves PEM (también en contenido base64 o gzip y en ssh_keys), formatos de token conocidos, contraseñas en URL, cabeceras Authorization, claves de WireGuard, ajustes con nombres de secretos y secretos en líneas de comandos (docker o az login -p, --token, htpasswd -b, rabbitmqctl add_user y otros)

REVIEW (revisar antes del lanzamiento)

  • C11: scripts o paquetes descargados por https y ejecutados o instalados sin comprobar suma de verificación ni firma
  • C12: acceso como root permitido (disable_root: false, entrada root en users o contraseña, PermitRootLogin yes)
  • C13: sudo NOPASSWD para todos los usuarios, un grupo, una cuenta del sistema o un usuario que además tiene contraseña, en entradas de users o archivos sudoers escritos con write_files o echo/tee (no se informa de administradores que solo usan clave)
  • C14: lock_passwd: false para un usuario que recibe contraseña
  • C15: verificación TLS o de firmas desactivada por https (curl -k, apt trusted=yes, gpgcheck off, --allow-unauthenticated, snap --dangerous, pip --trusted-host y otros)
  • C16: permisos de write_files que permiten escribir a cualquiera, o un permiso sin comillas como 644 que YAML lee como decimal
  • C17: archivos que cloud-init no leerá como cloud-config (cabecera mal escrita, también dentro de un heredoc, un comentario o --- antes de ella, sin cabecera, una marca de orden de bytes o UTF-16)

Qué incluye

  • El escáner (Python 3.9+, solo biblioteca estándar)
  • Una guía de reglas con el motivo, un enfoque más seguro y un enlace a la documentación oficial para cada regla
  • Un proyecto de ejemplo arriesgado y otro seguro (cloud-config, Terraform y una semilla NoCloud), y el informe real que genera el escáner sobre el arriesgado

Limitaciones

Lee cada archivo tal como está escrito. Los valores que rellena una plantilla (Terraform, Jinja, Helm) son desconocidos; no se leen el user-data MIME multiparte, las URL de #include, el user-data comprimido, los scripts de shell en user-data ni el vendor-data, y no se detecta el cloud-config guardado como cadena JSON. Los comandos de shell se comparan por patrones, no se analizan sintácticamente. No se informa de los tokens de Ubuntu Pro ni de las claves de activación de Red Hat. Algunos ejemplos oficiales de cloud-init se marcan a propósito porque muestran una contraseña en texto plano, una contraseña de cuenta, una cabecera de Basic auth, una clave privada de demostración o una clave privada de host en user-data. NOT FLAGGED no es una garantía.

Contenido

Un archivo ZIP con 16 archivos: SKILL.md, el escáner en scripts/ (7 archivos de Python), references/rules.md (cada regla con su motivo y un enfoque más seguro) y examples/ (6 archivos de ejemplo más report.md, la salida real del escáner sobre el ejemplo arriesgado).

Cómo usarlo: Esto es una skill para agentes: una carpeta con un archivo SKILL.md y scripts de Python que puede ejecutar un agente de programación con IA como Claude Code, Cursor o Codex CLI. Descomprímela en la carpeta de skills de tu agente (para Claude Code: ~/.claude/skills/) y luego pide a tu agente que revise tu proyecto. Los scripts también funcionan por sí solos con Python 3.9 o posterior, sin necesidad de instalar nada. Solo leen tus archivos: sin acceso a la red y sin enviar nada a ningún sitio.

Qué recibes

1 archivo · 52.27 KB

  • cloud-init-userdata-check-1.0.0.zipZIP · 52.27 KB
LicenciaUso comercial permitido
Revisión del paqueteSuperada

Getly abrió los archivos subidos y no encontró nada que impida abrirlos. No es un análisis antivirus ni una valoración de calidad.

Publicado12 nov 2026
Tamaño del archivo52.27 KB
Formato de archivoZIP
Versiónv1.0

Etiquetas

cloud-inituser-dataclouddevopssecurityai agent skill
R
RR HH

Preguntas frecuentes

¿Tengo acceso al instante?

Sí. Es un producto digital: puedes descargarlo justo después del pago, directamente desde tu biblioteca.

¿Puedo usarlo en proyectos comerciales?

Sí. Se permite el uso comercial: úsalo en tu propio negocio y en cosas que vendas. No puedes revender ni redistribuir el archivo en sí.

¿Cuál es vuestra política de reembolso?

Puedes pedir un reembolso dentro de 30 días. Si algo no va bien, solicítalo desde tu pedido y el equipo de Getly lo revisa.

¿Qué formatos y tamaños de archivo recibiré?

Descargarás 1 archivo - ZIP - 52.27 KB en total.

¿Recibo actualizaciones gratis?

Sí: cuando el vendedor publica una versión nueva, puedes volver a descargar los archivos más recientes desde tu biblioteca sin coste extra. Mira el registro de cambios para ver las últimas actualizaciones.

Precio

$5.00