Una seguridad de código abierto y nativa de la nube para proteger todo, desde la compilación hasta el tiempo de ejecución
Proyecto de seguridad y políticas de código abierto, nativo de la nube
cnspec evalúa la seguridad y el cumplimiento normativo de toda tu infraestructura. Encuentra vulnerabilidades y errores de configuración en entornos de nube públicos y privados, clústeres de Kubernetes, contenedores, registros de contenedores, servidores, endpoints, productos SaaS, infraestructura como código, APIs y más.
Un potente motor de políticas como código, cnspec está construido sobre el tejido de datos de seguridad de Mondoo. Viene configurado con políticas de seguridad predeterminadas que funcionan desde el primer momento. ¡Es rápido y sencillo de usar!
bash -c "$(curl -sSL https://install.mondoo.com/sh)" cnspec scan local

## Instalación
Instala cnspec con nuestro script de instalación:
**Linux y macOS**```bash
bash -c "$(curl -sSL https://install.mondoo.com/sh)"
Windows```powershell Set-ExecutionPolicy Unrestricted -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://install.mondoo.com/ps1')); Install-Mondoo;
Si prefieres la instalación manual, puedes encontrar los paquetes de cnspec en nuestras [releases](https://github.com/mondoohq/cnspec/releases).
## Ejecutar un escaneo con políticas
Usa el subcomando `cnspec scan` para comprobar objetivos locales y remotos en busca de configuraciones incorrectas y vulnerabilidades.
### Escaneo local
Este comando evalúa la seguridad de tu máquina local:```bash
cnspec scan local
También puedes especificar objetivos remotos para escanear. Por ejemplo:```bash
cnspec scan docker image ubuntu:22.04
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/r6z5b8t4 cnspec scan docker image public.ecr.aws/r6z5b8t4
cnspec scan aws
cnspec scan aws ec2 instance-connect root@i-1234567890abcdef0
cnspec scan k8s cnspec scan k8s manifest.yaml
export GITHUB_TOKEN=<personal_access_token> cnspec scan github repo <org/repo>
[:books: Para obtener más información, lee la documentación de cnspec.](https://mondoo.com/docs/cnspec)
### Políticas
Las políticas de cnspec se basan en el concepto de política como código. cnspec incluye políticas de seguridad predeterminadas configuradas para todos los objetivos compatibles. Las políticas predeterminadas están disponibles en el directorio `content` de este repositorio.
## Escaneo de vulnerabilidades
cnspec escanea en busca de vulnerabilidades en una amplia gama de plataformas. El escaneo de vulnerabilidades no se limita a las imágenes de contenedores; también funciona para la compilación y el tiempo de ejecución.

NOTA: El escaneo de vulnerabilidades requiere que el cliente haya iniciado sesión en Mondoo Platform.
### Ejemplos```bash
# scan container image
cnspec vuln docker debian:12
# scan aws instance via EC2 instance connect
cnspec vuln aws ec2 instance-connect root@i-1234567890abcdef0
# scan instance via SSH
cnspec vuln ssh user@host
# scan windows via SSH or Winrm
cnspec vuln ssh user@host --ask-pass
cnspec vuln winrm user@host --ask-pass
# scan VMware vSphere ESXi hosts
cnspec vuln vsphere user@host --ask-pass
# scan Linux, Windows
cnspec vuln local
| Plataforma | Versiones |
|---|---|
| Alpine | 3.10 - 3.24 |
| AlmaLinux | 8, 9, 10 |
| Amazon Linux | 1, 2, 2023 |
| Arch Linux | Rolling |
| CentOS | 6, 7, 8, Stream |
| Debian | 8, 9, 10, 11, 12, 13 |
| Fedora | 30 - 44 |
| openSUSE | Leap 15, Leap 16 |
| Oracle Linux | 6, 7, 8, 9, 10 |
| Photon Linux | 2, 3, 4, 5 |
| Red Hat Enterprise Linux | 6, 7, 8, 9, 10 |
| Rocky Linux | 8, 9, 10 |
| SUSE Linux Enterprise | 12, 15, 16 |
| Ubuntu | 18.04, 20.04, 22.04, 24.04, 26.04 |
| VMware vSphere ESXi | 6, 7, 8, 9 |
| Windows | 10, 11, 2016, 2019, 2022, 2025 |
cnspec también proporciona un shell interactivo para explorar aserciones. Te ayuda a comprender las aserciones que utilizan las políticas de seguridad, así como a escribir tus propias políticas. También es una excelente manera de interactuar con objetivos tanto locales como remotos sobre la marcha.
cnspec shell local
El shell proporciona un comando `help` para obtener información sobre los recursos que impulsan cnspec. Ejecutar `help` sin ningún argumento lista todos los recursos disponibles y sus campos. También puedes ejecutar `help <resource>` para obtener más detalles sobre un recurso específico. Por ejemplo:```bash
cnspec> help ports
ports: TCP/IP ports on the system
list []port: List of all TCP/IP ports
listening []port: All listening ports
El shell utiliza autocompletado, lo que facilita su exploración.
Una vez dentro del shell, puedes introducir aserciones MQL como esta:```coffeescript
ports.listening.none( port == 23 )
Para limpiar la terminal, escribe `clear`.
Para salir, presiona CTRL + D o escribe `exit`.
## Prioriza los riesgos que importan con Mondoo Platform
La plataforma de seguridad unificada de Mondoo encuentra y prioriza vulnerabilidades y configuraciones incorrectas que representan el mayor riesgo para tu negocio. El tejido de datos de seguridad de Mondoo analiza la amenaza y la exposición de cada hallazgo dentro del contexto único de tu infraestructura. En lugar de una avalancha de alertas de seguridad irrelevantes, Mondoo te muestra cómo puedes lograr un impacto inmediato y significativo en tu postura de seguridad.
Para comenzar, [contáctanos](https://mondoo.com/contact).
Para obtener más información sobre Mondoo Platform, lee la [documentación de Mondoo Platform](https://mondoo.com/docs) o visita [mondoo.com](https://mondoo.com).
### Registra cnspec con Mondoo Platform
Para usar cnspec con Mondoo Platform, [genera un token en la aplicación de Mondoo](https://mondoo.com/docs/cnspec/install/registration) y luego ejecuta:```bash
cnspec login --token TOKEN
Una vez autenticado, puedes escanear cualquier objetivo:```bash cnspec scan
cnspec devuelve los resultados del escaneo a `STDOUT` y a Mondoo Platform.
Con una cuenta en Mondoo Platform, puedes subir políticas:```bash
cnspec bundle upload mypolicy.mql.yaml
Una política de cnspec es simplemente un archivo YAML que te permite expresar cualquier regla de seguridad o buena práctica para tu flota.
Puedes encontrar algunos ejemplos en la carpeta examples de este repositorio. Puedes ejecutar cualquiera de estas políticas:```bash
cnspec scan local -f examples/example.mql.yaml
Si te interesa escribir tus propias políticas o contribuir con políticas a la comunidad de cnspec, lee la [Guía de creación de políticas](https://mondoo.com/docs/cnspec/write-policies/write-intro) de Mondoo.
## Objetivos compatibles| Destino | Proveedor | Ejemplo |
| ------------------------------ | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Dominios de Active Directory | `activedirectory` | `cnspec scan activedirectory --dc DC_HOSTNAME --user USER --password PASSWORD` |
| Cuentas de Alibaba Cloud | `alicloud` | `cnspec scan alicloud --access-key-id KEY_ID --access-key-secret KEY_SECRET` |
| Playbooks de Ansible | `ansible` | `cnspec shell ansible YOUR_PLAYBOOK.yml` |
| Clústeres de Apache Cassandra | `cassandra` | `cnspec scan cassandra HOST --user USER --ask-pass` |
| Dispositivos de red Arista | `arista` | `cnspec scan arista DEVICE_PUBLIC_IP --ask-pass` |
| Organizaciones de Atlassian | `atlassian admin` | `cnspec shell atlassian admin --admin-token YOUR_TOKEN` |
| Inquilinos de Auth0 | `auth0` | `cnspec scan auth0 --domain TENANT_DOMAIN --client-id CLIENT_ID --client-secret CLIENT_SECRET` |
| Cuentas de AWS | `aws` | `cnspec scan aws` |
| Plantillas de AWS CloudFormation | `cloudformation` | `cnspec scan cloudformation cloudformation_file.json` |
| Instantánea de AWS EC2 EBS | `aws ec2 ebs snapshot` | `cnspec scan aws ec2 ebs snapshot SNAPSHOTID` |
| Volumen de AWS EC2 EBS | `aws ec2 ebs volume` | `cnspec scan aws ec2 ebs volume VOLUMEID` |
| AWS EC2 Instance Connect | `aws ec2 instance-connect` | `cnspec scan aws ec2 instance-connect ec2-user@INSTANCEID` |
| Instancias de AWS EC2 | `ssh` | `cnspec scan ssh user@host` |
| Archivos Bicep y plantillas ARM | `bicep` | `cnspec scan bicep BICEP_FILE_OR_PATH` |
| Organizaciones de Bitwarden | `bitwarden` | `cnspec scan bitwarden --client-id organization.UUID --client-secret CLIENT_SECRET` |
| Dispositivos de bloque | `device` | `cnspec scan device --lun LOGICAL_UNIT_NUMBER` |
| Servidores de gestión Check Point | `checkpoint` | `cnspec scan checkpoint --hostname HOSTNAME --api-key API_KEY` |
| Dispositivos Cisco Catalyst | `ciscocatalyst` | `cnspec scan ciscocatalyst HOSTNAME --user USER --ask-pass` |
| Cuentas de la plataforma Claude AI | `claude` | `cnspec scan claude --admin-token ADMIN_API_KEY` |
| Organizaciones de ClickHouse Cloud | `clickhousecloud` | `cnspec scan clickhousecloud --organization-id ORG_ID --api-key KEY_ID --ask-secret` |
| Servidores ClickHouse | `clickhousedb` | `cnspec scan clickhousedb HOST --user USER --ask-pass` |
| Cuentas de Cloudflare | `cloudflare` | `cnspec scan cloudflare --token ACCESS_TOKEN` |
| Usuarios de Confluence | `atlassian confluence` | `cnspec shell atlassian confluence --host YOUR_HOST_URL --user USER --user-token YOUR_TOKEN` |
| Imágenes de contenedor | `container`, `docker` | `cnspec scan container ubuntu:latest` |
| Registros de contenedores | `container registry` | `cnspec scan container registry index.docker.io/library/rockylinux:8` |
| Cuentas de Databricks | `databricks` | `cnspec scan databricks --account-id ACCOUNT_ID --client-id CLIENT_ID --client-secret CLIENT_SECRET` |
| Cuentas de Datadog | `datadog` | `cnspec scan datadog --api-key API_KEY --app-key APP_KEY` |
| Cuentas de DigitalOcean | `digitalocean` | `cnspec scan digitalocean --token API_TOKEN` |
| Registros DNS | `host` | `cnspec scan host mondoo.com` |
| Dockerfiles | `docker` | `cnspec shell docker file FILENAME` |
| Equipos de Dropbox Business | `dropbox` | `cnspec scan dropbox --token TEAM_ACCESS_TOKEN` |
| Clústeres de Elasticsearch | `elasticsearch` | `cnspec scan elasticsearch HOST --user USER --ask-pass` |
| Sistemas F5 BIG-IP | `bigip` | `cnspec scan bigip --hostname HOSTNAME --username USER --ask-pass` |
| Sistemas de archivos | `filesystem` | `cnspec scan filesystem MOUNT_PATH` |
| Dispositivos FortiOS | `fortios` | `cnspec scan fortios --hostname HOSTNAME --token API_TOKEN` |
| Organizaciones de GitHub | `github org` | `cnspec scan github org mondoohq` |
| Repositorios de GitHub | `github repo` | `cnspec scan github repo mondoohq/cnspec` |
| Grupos de GitLab | `gitlab` | `cnspec scan gitlab --group mondoohq` |
| Proyectos de Google Cloud | `gcp` | `cnspec scan gcp` |
| Google Workspace | `google-workspace` | `cnspec scan google-workspace --customer-id CUSTOMER_ID --impersonated-user-email EMAIL --credentials-path JSON_FILE` |
| Organizaciones de Grafana | `grafana` | `cnspec scan grafana --url GRAFANA_URL --token API_TOKEN` |
| HashiCorp Cloud Platform | `hcp` | `cnspec scan hcp --client-id CLIENT_ID --client-secret CLIENT_SECRET` |
| Gráficos de Helm | `helm` | `cnspec scan helm CHART_PATH` |
| Proyectos de Hetzner Cloud | `hetzner` | `cnspec scan hetzner --token API_TOKEN` |
| Espacios de nombres de Hugging Face | `huggingface` | `cnspec scan huggingface --token API_TOKEN --namespace NAMESPACE --namespace-type org` |
| Bases de datos IBM Db2 | `db2` | `cnspec scan db2 HOST --database DATABASE --user USER --ask-pass` |
| Dispositivos IoT | `opcua` | `cnspec shell opcua` |
| Información de direcciones IP | `ipinfo` | `cnspec shell ipinfo` |
| Interfaces IPMI | `ipmi` | `cnspec scan ipmi user@host` |
| Inquilinos de Iru | `iru` | `cnspec scan iru --subdomain SUBDOMAIN --token API_TOKEN` |
| Cuentas de Jamf Pro | `jamf` | `cnspec scan jamf --client-id CLIENT_ID --client-secret CLIENT_SECRET --instance-domain INSTANCE_URL` |
| Instancias de JFrog Artifactory | `artifactory` | `cnspec scan artifactory --url ARTIFACTORY_URL --token ACCESS_TOKEN` |
| Proyectos de Jira | `atlassian jira` | `cnspec shell atlassian jira --host YOUR_HOST_URL --user USER --user-token YOUR_TOKEN` |
| Organizaciones de JumpCloud | `jumpcloud` | `cnspec scan jumpcloud --api-key API_KEY` |
| Dispositivos Juniper Junos | `junos` | `cnspec scan junos --hostname DEVICE_IP --username USER_NAME --identity-file SSH_IDENTITY_FILE` |
| Servidores Keycloak | `keycloak` | `cnspec scan keycloak --url KEYCLOAK_URL --realm REALM --client-id CLIENT_ID --client-secret CLIENT_SECRET` |
| Nodos de clúster de Kubernetes | `local`, `ssh` | `cnspec scan ssh user@host` |
| Clústeres de Kubernetes | `k8s` | `cnspec scan k8s` |
| Manifiestos de Kubernetes | `k8s` | `cnspec scan k8s manifest.yaml` |
| Cargas de trabajo de Kubernetes | `k8s` | `cnspec scan k8s --discover pods,deployments` |
| Superposiciones de Kustomize | `kustomize` | `cnspec scan kustomize OVERLAY_PATH` |
| Hosts Linux | `local`, `ssh` | `cnspec scan local` o<br></br>`cnspec scan ssh user@host` |
| Hosts macOS | `local`, `ssh` | `cnspec scan local` o<br></br>`cnspec scan ssh user@IP_ADDRESS` |
| Inquilinos de Microsoft 365 | `ms365` | `cnspec scan ms365 --tenant-id TENANT_ID --client-id CLIENT_ID --certificate-path PEM_FILE` |
| Instancias de Microsoft Azure | `ssh` | `cnspec scan ssh user@host` |
| Suscripciones de Microsoft Azure | `azure` | `cnspec scan azure --subscription SUBSCRIPTION_ID` |
| Instancias de Microsoft SQL Server | `mssql` | `cnspec scan mssql HOST --user USER --ask-pass` |
| Dispositivos MikroTik RouterOS | `mikrotik` | `cnspec scan mikrotik user@host --ask-pass` |
| Espacios de trabajo de Mistral AI | `mistral` | `cnspec scan mistral --token API_KEY --workspace WORKSPACE_ID` |
| Servidores de Model Context Protocol | `mcp` | `cnspec scan mcp http http://localhost:8080/mcp` |
| Mondoo Platform | `mondoo` | `cnspec scan mondoo` |
| Organizaciones de MongoDB Atlas | `mongodbatlas` | `cnspec scan mongodbatlas --org-id ORG_ID --public-key PUBLIC_KEY --private-key PRIVATE_KEY` |
| Servidores MongoDB | `mongo` | `cnspec scan mongo HOST --user USER --ask-pass` |
| Servidores MySQL y MariaDB | `mysqldb` | `cnspec scan mysqldb HOST --user USER --ask-pass` |
| Organizaciones de Neon | `neon` | `cnspec scan neon --token API_KEY` |
| Cuentas de Netlify | `netlify` | `cnspec scan netlify --token ACCESS_TOKEN` |
| Dispositivos de red por SSH | `nd-ssh` | `cnspec scan nd-ssh user@host --ask-pass` |
| Cuentas de NextDNS | `nextdns` | `cnspec scan nextdns --api-key API_KEY` |
| Escaneos de red Nmap | `nmap` | `cnspec shell nmap host IP_ADDRESS` |
| Nutanix Prism Central | `nutanix` | `cnspec scan nutanix --endpoint ENDPOINT --user USER --ask-pass` |
| Organización de Okta | `okta` | `cnspec scan okta --token TOKEN --organization ORGANIZATION` |
| Instancias de Ollama | `ollama` | `cnspec scan ollama --host OLLAMA_URL` |
| Cuentas de OpenAI | `openai` | `cnspec scan openai --token ADMIN_API_KEY --organization ORG_ID` |
| Clústeres de OpenSearch | `opensearch` | `cnspec scan opensearch HOST --user USER --ask-pass` |
| Proyectos de OpenStack | `openstack` | `cnspec scan openstack --cloud CLOUDS_YAML_ENTRY` |
| Oracle Cloud Interface (OCI) | `oci` | `cnspec scan oci` |
| Oracle Database | `oracledb` | `cnspec scan oracledb HOST --service SERVICE_NAME --user USER --ask-pass` |
| Cortafuegos PAN-OS | `panos` | `cnspec scan panos --hostname HOSTNAME --username USER --ask-pass` |
| Instancias de Portainer | `portainer` | `cnspec scan portainer PORTAINER_URL --access-token ACCESS_TOKEN` |
| Servidores PostgreSQL | `postgresdb` | `cnspec scan postgresdb HOST --user USER --ask-pass` |
| Hipervisores Proxmox VE | `proxmox` | `cnspec scan proxmox --host PROXMOX_URL --token API_TOKEN` |
| Controladores de gestión Redfish | `redfish` | `cnspec scan redfish user@host --ask-pass` |
| Servidores Redis y Valkey | `redisdb` | `cnspec scan redisdb HOST --ask-pass` |
| Contenedores en ejecución | `docker` | `cnspec scan docker CONTAINER_ID` |
| Motor de búsqueda Shodan | `shodan` | `cnspec shell shodan` |
| Equipo de Slack | `slack` | `cnspec scan slack --token TOKEN` |
| Cuentas de Snowflake | `snowflake` | `cnspec scan snowflake --account ACCOUNT_ID --region REGION --user USER --role ROLE --token TOKEN` |
| Dependencias de software | `depsdev` | `cnspec scan depsdev PATH_TO_GO_MOD` |
| Certificados SSL en sitios web | `host` | `cnspec scan host mondoo.com` |
| Proyectos de STACKIT | `stackit` | `cnspec scan stackit --project-id PROJECT_ID --service-account-key-path KEY_FILE` |
| Subdominios | `networkdiscovery` | `cnspec scan networkdiscovery mondoohq.com --discover subdomains` |
| Redes de Tailscale | `tailscale` | `cnspec scan tailscale --token ACCESS_TOKEN` |
| Terraform HCL | `terraform` | `cnspec scan terraform HCL_FILE_OR_PATH` |
| Plan de Terraform | `terraform plan` | `cnspec scan terraform plan plan.json` |
| Estado de Terraform | `terraform state` | `cnspec scan terraform state state.json` |
| Cuentas de Together AI | `together` | `cnspec scan together --token API_KEY` |
| Controladores Ubiquiti UniFi | `unifi` | `cnspec scan unifi --hostname HOSTNAME --username USER --ask-pass` |
| Máquinas virtuales Vagrant | `vagrant` | `cnspec scan vagrant HOST` |
| Cuentas de Vercel | `vercel` | `cnspec scan vercel --token ACCESS_TOKEN` |
| Servidores de inferencia vLLM | `vllm` | `cnspec scan vllm ENDPOINT` |
| VMware Cloud Director | `vcd` | `cnspec shell vcd --user USER --host HOST --ask-pass` |
| VMware vSphere | `vsphere` | `cnspec scan vsphere user@domain@host --ask-pass` |
| Bases de datos vectoriales Weaviate | `weaviate` | `cnspec scan weaviate HOST --api-key API_KEY` |
| Hosts Windows | `local`, `ssh`, `winrm` | `cnspec scan local`,<br></br>`cnspec scan ssh Administrator@IP_ADDRESS --ask-pass` o<br></br>`cnspec scan winrm Administrator@IP_ADDRESS --ask-pass` |
| Cuentas de Zoom | `zoom` | `cnspec scan zoom --account-id ACCOUNT_ID --client-id CLIENT_ID --client-secret CLIENT_SECRET` |## Habilidades de agente
cnspec incluye habilidades de agente que otorgan a los agentes de programación experiencia en MQL y capacidades de navegación de políticas. Las habilidades funcionan en Claude Code, Cursor, Gemini CLI y Codex.
| Habilidad | Descripción |
|-------|-------------|
| [mql](https://github.com/mondoohq/cnspec/blob/main/skills/mql) | Desarrollo de consultas MQL con orientación de sintaxis, patrones específicos de plataforma y descubrimiento de esquemas |
| [policy-graph](https://github.com/mondoohq/cnspec/blob/main/skills/policy-graph) | Navega por paquetes de políticas usando comandos de grafo — busca, rastrea asignaciones de cumplimiento, explora la estructura |
Consulta [skills/README.md](https://github.com/mondoohq/cnspec/blob/main/skills/README.md) para obtener instrucciones de instalación y detalles.
## ¿Qué sigue?
Hay muchísimas cosas que cnspec puede hacer, desde probar vulnerabilidades en toda tu flota hasta recopilar información y crear informes para auditores. Con sus políticas personalizadas, ¡cnspec puede escanear cualquier componente que te importe!
Explora nuestros:
- [documentación de cnspec](https://mondoo.com/docs/cnspec)
- [Políticas como código](https://mondoo.com/docs/cnspec/write-policies/write-intro)
- [MQL](https://github.com/mondoohq/mql), nuestro framework de inventario de activos nativo de la nube y de código abierto
- [Introducción a MQL](https://mondoohq.github.io/mql-intro/index.html)
- [Paquetes de recursos de MQL](https://mondoo.com/docs/mql/resources)
- [Plugin de HashiCorp Packer](https://github.com/mondoohq/packer-plugin-mondoo) para integrar cnspec con HashiCorp Packer.
## ¡Únete a la comunidad!
Nuestro objetivo es proteger todas las capas de tu infraestructura. Si necesitas soporte o quieres involucrarte en el desarrollo de cnspec, únete a nuestra [comunidad](https://github.com/orgs/mondoohq/discussions) hoy mismo y ¡hagámosla crecer juntos!
## Desarrollo
Consulta nuestra [documentación de desarrollo](https://github.com/mondoohq/cnspec/blob/main/docs/development.md) para obtener información sobre cómo compilar y contribuir a cnspec.
## Legal
- **Copyright:** 2018-2026, Mondoo, Inc.
- **Licencia:** BUSL 1.1
- **Autores:** Christoph Hartmann, Dominik Richter