
빌드부터 런타임까지 모든 것을 보호하는 오픈 소스 클라우드 네이티브 보안
오픈 소스, 클라우드 네이티브 보안 및 정책 프로젝트
cnspec은 전체 인프라의 보안과 규정 준수를 평가합니다. 퍼블릭 및 프라이빗 클라우드 환경, Kubernetes 클러스터, 컨테이너, 컨테이너 레지스트리, 서버, 엔드포인트, SaaS 제품, 코드형 인프라, API 등에서 취약점과 잘못된 구성을 찾아냅니다.
강력한 정책형 코드(policy as code) 엔진인 cnspec은 Mondoo의 보안 데이터 패브릭을 기반으로 구축되었습니다. 기본 보안 정책이 미리 구성되어 있어 바로 사용할 수 있습니다. 빠르고 간편하게 사용할 수 있습니다!
bash -c "$(curl -sSL https://install.mondoo.com/sh)" cnspec scan local

## 설치
설치 스크립트를 사용하여 cnspec을 설치하세요:
**Linux 및 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;
수동 설치를 선호하는 경우, [releases](https://github.com/mondoohq/cnspec/releases)에서 cnspec 패키지를 찾을 수 있습니다.
## 정책으로 스캔 실행하기
`cnspec scan` 하위 명령을 사용하여 로컬 및 원격 대상의 잘못된 구성과 취약점을 확인하세요.
### 로컬 스캔
이 명령은 로컬 머신의 보안을 평가합니다:```bash
cnspec scan local
스캔할 원격 대상을 지정할 수도 있습니다. 예를 들어:```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: 자세히 알아보려면 cnspec 문서를 읽어보세요.](https://mondoo.com/docs/cnspec)
### 정책
cnspec 정책은 policy as code 개념을 기반으로 구축되었습니다. cnspec은 지원되는 모든 대상에 대해 구성된 기본 보안 정책과 함께 제공됩니다. 기본 정책은 이 저장소의 `content` 디렉터리에서 확인할 수 있습니다.
## 취약점 스캔
cnspec은 다양한 플랫폼에서 취약점을 스캔합니다. 취약점 스캔은 컨테이너 이미지에 국한되지 않으며 빌드 및 런타임에서도 작동합니다.

NOTE: 취약점 스캔을 사용하려면 클라이언트가 Mondoo Platform에 로그인되어 있어야 합니다.
### 예시```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
cnspec은 또한 어서션을 탐색할 수 있는 대화형 셸을 제공합니다. 이는 보안 정책이 사용하는 어서션을 이해하고 직접 정책을 작성하는 데 도움이 됩니다. 또한 로컬 및 원격 대상과 즉석에서 상호 작용할 수 있는 훌륭한 방법입니다.
cnspec shell local
셸은 cnspec을 구동하는 리소스에 대한 정보를 제공하는 `help` 명령을 제공합니다. 인수 없이 `help`를 실행하면 사용 가능한 모든 리소스와 해당 필드가 나열됩니다. 특정 리소스에 대한 자세한 내용을 보려면 `help <resource>`를 실행할 수도 있습니다. 예를 들어:```bash
cnspec> help ports
ports: TCP/IP ports on the system
list []port: List of all TCP/IP ports
listening []port: All listening ports
셸은 자동 완성을 사용하므로 쉽게 탐색할 수 있습니다.
셸에 들어가면 다음과 같이 MQL 어서션을 입력할 수 있습니다:```coffeescript
ports.listening.none( port == 23 )
터미널을 지우려면 `clear`를 입력하세요.
종료하려면 CTRL + D를 누르거나 `exit`를 입력하세요.
## Mondoo Platform으로 중요한 위험의 우선순위를 정하세요
Mondoo 통합 보안 플랫폼은 비즈니스에 가장 높은 위험을 초래하는 취약점과 잘못된 구성을 찾아 우선순위를 정합니다. Mondoo의 보안 데이터 패브릭은 인프라의 고유한 맥락 안에서 모든 발견 사항의 위협과 노출을 분석합니다. 관련 없는 보안 경고의 홍수 대신, Mondoo는 보안 태세에 즉각적이고 중요한 영향을 미칠 수 있는 방법을 보여줍니다.
시작하려면 [문의하세요](https://mondoo.com/contact).
Mondoo Platform에 대해 알아보려면 [Mondoo Platform 문서](https://mondoo.com/docs)를 읽거나 [mondoo.com](https://mondoo.com)을 방문하세요.
### Mondoo Platform에 cnspec 등록하기
Mondoo Platform과 함께 cnspec을 사용하려면 [Mondoo App에서 토큰을 생성](https://mondoo.com/docs/cnspec/install/registration)한 후 다음을 실행하세요:```bash
cnspec login --token TOKEN
인증이 완료되면, 어떤 대상이든 스캔할 수 있습니다:```bash cnspec scan
cnspec는 스캔 결과를 `STDOUT`과 Mondoo Platform으로 반환합니다.
Mondoo Platform 계정이 있으면 정책을 업로드할 수 있습니다:```bash
cnspec bundle upload mypolicy.mql.yaml
cnspec 정책은 단순히 YAML 파일로, 여러분의 플릿에 대한 모든 보안 규칙이나 모범 사례를 표현할 수 있게 해줍니다.
이 저장소의 examples 폴더에서 몇 가지 예제를 찾을 수 있습니다. 다음 정책 중 어느 것이든 실행할 수 있습니다:```bash
cnspec scan local -f examples/example.mql.yaml
자신만의 정책을 작성하거나 정책을 cnspec 커뮤니티에 기여하는 데 관심이 있다면 Mondoo의 [정책 작성 가이드](https://mondoo.com/docs/cnspec/write-policies/write-intro)를 읽어보세요.
## 지원 대상| 대상 | 제공자 | 예시 |
| ------------------------------ | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Active Directory 도메인 | `activedirectory` | `cnspec scan activedirectory --dc DC_HOSTNAME --user USER --password PASSWORD` |
| Alibaba Cloud 계정 | `alicloud` | `cnspec scan alicloud --access-key-id KEY_ID --access-key-secret KEY_SECRET` |
| Ansible 플레이북 | `ansible` | `cnspec shell ansible YOUR_PLAYBOOK.yml` |
| Apache Cassandra 클러스터 | `cassandra` | `cnspec scan cassandra HOST --user USER --ask-pass` |
| Arista 네트워크 장치 | `arista` | `cnspec scan arista DEVICE_PUBLIC_IP --ask-pass` |
| Atlassian 조직 | `atlassian admin` | `cnspec shell atlassian admin --admin-token YOUR_TOKEN` |
| Auth0 테넌트 | `auth0` | `cnspec scan auth0 --domain TENANT_DOMAIN --client-id CLIENT_ID --client-secret CLIENT_SECRET` |
| AWS 계정 | `aws` | `cnspec scan aws` |
| AWS CloudFormation 템플릿 | `cloudformation` | `cnspec scan cloudformation cloudformation_file.json` |
| AWS EC2 EBS 스냅샷 | `aws ec2 ebs snapshot` | `cnspec scan aws ec2 ebs snapshot SNAPSHOTID` |
| 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` |
| AWS EC2 인스턴스 | `ssh` | `cnspec scan ssh user@host` |
| Bicep 파일 및 ARM 템플릿 | `bicep` | `cnspec scan bicep BICEP_FILE_OR_PATH` |
| Bitwarden 조직 | `bitwarden` | `cnspec scan bitwarden --client-id organization.UUID --client-secret CLIENT_SECRET` |
| 블록 장치 | `device` | `cnspec scan device --lun LOGICAL_UNIT_NUMBER` |
| Check Point 관리 서버 | `checkpoint` | `cnspec scan checkpoint --hostname HOSTNAME --api-key API_KEY` |
| Cisco Catalyst 장치 | `ciscocatalyst` | `cnspec scan ciscocatalyst HOSTNAME --user USER --ask-pass` |
| Claude AI 플랫폼 계정 | `claude` | `cnspec scan claude --admin-token ADMIN_API_KEY` |
| ClickHouse Cloud 조직 | `clickhousecloud` | `cnspec scan clickhousecloud --organization-id ORG_ID --api-key KEY_ID --ask-secret` |
| ClickHouse 서버 | `clickhousedb` | `cnspec scan clickhousedb HOST --user USER --ask-pass` |
| Cloudflare 계정 | `cloudflare` | `cnspec scan cloudflare --token ACCESS_TOKEN` |
| Confluence 사용자 | `atlassian confluence` | `cnspec shell atlassian confluence --host YOUR_HOST_URL --user USER --user-token YOUR_TOKEN` |
| 컨테이너 이미지 | `container`, `docker` | `cnspec scan container ubuntu:latest` |
| 컨테이너 레지스트리 | `container registry` | `cnspec scan container registry index.docker.io/library/rockylinux:8` |
| Databricks 계정 | `databricks` | `cnspec scan databricks --account-id ACCOUNT_ID --client-id CLIENT_ID --client-secret CLIENT_SECRET` |
| Datadog 계정 | `datadog` | `cnspec scan datadog --api-key API_KEY --app-key APP_KEY` |
| DigitalOcean 계정 | `digitalocean` | `cnspec scan digitalocean --token API_TOKEN` |
| DNS 레코드 | `host` | `cnspec scan host mondoo.com` |
| Dockerfile | `docker` | `cnspec shell docker file FILENAME` |
| Dropbox Business 팀 | `dropbox` | `cnspec scan dropbox --token TEAM_ACCESS_TOKEN` |
| Elasticsearch 클러스터 | `elasticsearch` | `cnspec scan elasticsearch HOST --user USER --ask-pass` |
| F5 BIG-IP 시스템 | `bigip` | `cnspec scan bigip --hostname HOSTNAME --username USER --ask-pass` |
| 파일 시스템 | `filesystem` | `cnspec scan filesystem MOUNT_PATH` |
| FortiOS 장치 | `fortios` | `cnspec scan fortios --hostname HOSTNAME --token API_TOKEN` |
| GitHub 조직 | `github org` | `cnspec scan github org mondoohq` |
| GitHub 리포지토리 | `github repo` | `cnspec scan github repo mondoohq/cnspec` |
| GitLab 그룹 | `gitlab` | `cnspec scan gitlab --group mondoohq` |
| 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` |
| 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` |
| Helm 차트 | `helm` | `cnspec scan helm CHART_PATH` |
| Hetzner Cloud 프로젝트 | `hetzner` | `cnspec scan hetzner --token API_TOKEN` |
| Hugging Face 네임스페이스 | `huggingface` | `cnspec scan huggingface --token API_TOKEN --namespace NAMESPACE --namespace-type org` |
| IBM Db2 데이터베이스 | `db2` | `cnspec scan db2 HOST --database DATABASE --user USER --ask-pass` |
| IoT 장치 | `opcua` | `cnspec shell opcua` |
| IP 주소 정보 | `ipinfo` | `cnspec shell ipinfo` |
| IPMI 인터페이스 | `ipmi` | `cnspec scan ipmi user@host` |
| Iru 테넌트 | `iru` | `cnspec scan iru --subdomain SUBDOMAIN --token API_TOKEN` |
| Jamf Pro 계정 | `jamf` | `cnspec scan jamf --client-id CLIENT_ID --client-secret CLIENT_SECRET --instance-domain INSTANCE_URL` |
| JFrog Artifactory 인스턴스 | `artifactory` | `cnspec scan artifactory --url ARTIFACTORY_URL --token ACCESS_TOKEN` |
| Jira 프로젝트 | `atlassian jira` | `cnspec shell atlassian jira --host YOUR_HOST_URL --user USER --user-token YOUR_TOKEN` |
| JumpCloud 조직 | `jumpcloud` | `cnspec scan jumpcloud --api-key API_KEY` |
| Juniper Junos 장치 | `junos` | `cnspec scan junos --hostname DEVICE_IP --username USER_NAME --identity-file SSH_IDENTITY_FILE` |
| Keycloak 서버 | `keycloak` | `cnspec scan keycloak --url KEYCLOAK_URL --realm REALM --client-id CLIENT_ID --client-secret CLIENT_SECRET` |
| Kubernetes 클러스터 노드 | `local`, `ssh` | `cnspec scan ssh user@host` |
| Kubernetes 클러스터 | `k8s` | `cnspec scan k8s` |
| Kubernetes 매니페스트 | `k8s` | `cnspec scan k8s manifest.yaml` |
| Kubernetes 워크로드 | `k8s` | `cnspec scan k8s --discover pods,deployments` |
| Kustomize 오버레이 | `kustomize` | `cnspec scan kustomize OVERLAY_PATH` |
| Linux 호스트 | `local`, `ssh` | `cnspec scan local` 또는<br></br>`cnspec scan ssh user@host` |
| macOS 호스트 | `local`, `ssh` | `cnspec scan local` 또는<br></br>`cnspec scan ssh user@IP_ADDRESS` |
| Microsoft 365 테넌트 | `ms365` | `cnspec scan ms365 --tenant-id TENANT_ID --client-id CLIENT_ID --certificate-path PEM_FILE` |
| Microsoft Azure 인스턴스 | `ssh` | `cnspec scan ssh user@host` |
| Microsoft Azure 구독 | `azure` | `cnspec scan azure --subscription SUBSCRIPTION_ID` |
| Microsoft SQL Server 인스턴스 | `mssql` | `cnspec scan mssql HOST --user USER --ask-pass` |
| MikroTik RouterOS 장치 | `mikrotik` | `cnspec scan mikrotik user@host --ask-pass` |
| Mistral AI 워크스페이스 | `mistral` | `cnspec scan mistral --token API_KEY --workspace WORKSPACE_ID` |
| Model Context Protocol 서버 | `mcp` | `cnspec scan mcp http http://localhost:8080/mcp` |
| Mondoo Platform | `mondoo` | `cnspec scan mondoo` |
| MongoDB Atlas 조직 | `mongodbatlas` | `cnspec scan mongodbatlas --org-id ORG_ID --public-key PUBLIC_KEY --private-key PRIVATE_KEY` |
| MongoDB 서버 | `mongo` | `cnspec scan mongo HOST --user USER --ask-pass` |
| MySQL 및 MariaDB 서버 | `mysqldb` | `cnspec scan mysqldb HOST --user USER --ask-pass` |
| Neon 조직 | `neon` | `cnspec scan neon --token API_KEY` |
| Netlify 계정 | `netlify` | `cnspec scan netlify --token ACCESS_TOKEN` |
| SSH를 통한 네트워크 장치 | `nd-ssh` | `cnspec scan nd-ssh user@host --ask-pass` |
| NextDNS 계정 | `nextdns` | `cnspec scan nextdns --api-key API_KEY` |
| Nmap 네트워크 스캔 | `nmap` | `cnspec shell nmap host IP_ADDRESS` |
| Nutanix Prism Central | `nutanix` | `cnspec scan nutanix --endpoint ENDPOINT --user USER --ask-pass` |
| Okta 조직 | `okta` | `cnspec scan okta --token TOKEN --organization ORGANIZATION` |
| Ollama 인스턴스 | `ollama` | `cnspec scan ollama --host OLLAMA_URL` |
| OpenAI 계정 | `openai` | `cnspec scan openai --token ADMIN_API_KEY --organization ORG_ID` |
| OpenSearch 클러스터 | `opensearch` | `cnspec scan opensearch HOST --user USER --ask-pass` |
| 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` |
| PAN-OS 방화벽 | `panos` | `cnspec scan panos --hostname HOSTNAME --username USER --ask-pass` |
| Portainer 인스턴스 | `portainer` | `cnspec scan portainer PORTAINER_URL --access-token ACCESS_TOKEN` |
| PostgreSQL 서버 | `postgresdb` | `cnspec scan postgresdb HOST --user USER --ask-pass` |
| Proxmox VE 하이퍼바이저 | `proxmox` | `cnspec scan proxmox --host PROXMOX_URL --token API_TOKEN` |
| Redfish 관리 컨트롤러 | `redfish` | `cnspec scan redfish user@host --ask-pass` |
| Redis 및 Valkey 서버 | `redisdb` | `cnspec scan redisdb HOST --ask-pass` |
| 실행 중인 컨테이너 | `docker` | `cnspec scan docker CONTAINER_ID` |
| Shodan 검색 엔진 | `shodan` | `cnspec shell shodan` |
| Slack 팀 | `slack` | `cnspec scan slack --token TOKEN` |
| Snowflake 계정 | `snowflake` | `cnspec scan snowflake --account ACCOUNT_ID --region REGION --user USER --role ROLE --token TOKEN` |
| 소프트웨어 종속성 | `depsdev` | `cnspec scan depsdev PATH_TO_GO_MOD` |
| 웹사이트의 SSL 인증서 | `host` | `cnspec scan host mondoo.com` |
| STACKIT 프로젝트 | `stackit` | `cnspec scan stackit --project-id PROJECT_ID --service-account-key-path KEY_FILE` |
| 서브도메인 | `networkdiscovery` | `cnspec scan networkdiscovery mondoohq.com --discover subdomains` |
| Tailscale 네트워크 | `tailscale` | `cnspec scan tailscale --token ACCESS_TOKEN` |
| Terraform HCL | `terraform` | `cnspec scan terraform HCL_FILE_OR_PATH` |
| Terraform plan | `terraform plan` | `cnspec scan terraform plan plan.json` |
| Terraform state | `terraform state` | `cnspec scan terraform state state.json` |
| Together AI 계정 | `together` | `cnspec scan together --token API_KEY` |
| Ubiquiti UniFi 컨트롤러 | `unifi` | `cnspec scan unifi --hostname HOSTNAME --username USER --ask-pass` |
| Vagrant 가상 머신 | `vagrant` | `cnspec scan vagrant HOST` |
| Vercel 계정 | `vercel` | `cnspec scan vercel --token ACCESS_TOKEN` |
| 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` |
| Weaviate 벡터 데이터베이스 | `weaviate` | `cnspec scan weaviate HOST --api-key API_KEY` |
| Windows 호스트 | `local`, `ssh`, `winrm` | `cnspec scan local`,<br></br>`cnspec scan ssh Administrator@IP_ADDRESS --ask-pass` 또는<br></br>`cnspec scan winrm Administrator@IP_ADDRESS --ask-pass` |
| Zoom 계정 | `zoom` | `cnspec scan zoom --account-id ACCOUNT_ID --client-id CLIENT_ID --client-secret CLIENT_SECRET` |## 에이전트 스킬
cnspec은 코딩 에이전트에게 MQL 전문 지식과 정책 탐색 기능을 제공하는 에이전트 스킬을 포함합니다. 스킬은 Claude Code, Cursor, Gemini CLI, Codex에서 작동합니다.
| 스킬 | 설명 |
|-------|-------------|
| [mql](https://github.com/mondoohq/cnspec/blob/main/skills/mql) | 구문 안내, 플랫폼별 패턴, 스키마 검색을 포함한 MQL 쿼리 개발 |
| [policy-graph](https://github.com/mondoohq/cnspec/blob/main/skills/policy-graph) | 그래프 명령을 사용한 정책 번들 탐색 — 검색, 컴플라이언스 매핑 추적, 구조 탐색 |
설치 지침과 세부 사항은 [skills/README.md](https://github.com/mondoohq/cnspec/blob/main/skills/README.md)를 참조하세요.
## 다음은 무엇인가요?
cnspec은 전체 플릿의 취약점 테스트부터 정보 수집 및 감사자를 위한 보고서 생성까지 정말 많은 일을 할 수 있습니다. 사용자 정의 정책을 통해 cnspec은 관심 있는 모든 구성 요소를 스캔할 수 있습니다!
다음을 살펴보세요:
- [cnspec 문서](https://mondoo.com/docs/cnspec)
- [코드로서의 정책](https://mondoo.com/docs/cnspec/write-policies/write-intro)
- [MQL](https://github.com/mondoohq/mql), 우리의 오픈 소스 클라우드 네이티브 자산 인벤토리 프레임워크
- [MQL 소개](https://mondoohq.github.io/mql-intro/index.html)
- [MQL 리소스 팩](https://mondoo.com/docs/mql/resources)
- cnspec을 HashiCorp Packer와 통합하기 위한 [HashiCorp Packer 플러그인](https://github.com/mondoohq/packer-plugin-mondoo)!
## 커뮤니티에 참여하세요!
우리의 목표는 인프라의 모든 계층을 보호하는 것입니다. 지원이 필요하거나 cnspec 개발에 참여하고 싶다면 지금 우리 [커뮤니티](https://github.com/orgs/mondoohq/discussions)에 참여하여 함께 성장시켜 나가요!
## 개발
cnspec 빌드 및 기여에 대한 정보는 [개발 문서](https://github.com/mondoohq/cnspec/blob/main/docs/development.md)를 참조하세요.
## 법적 고지
- **저작권:** 2018-2026, Mondoo, Inc.
- **라이선스:** BUSL 1.1
- **저자:** Christoph Hartmann, Dominik Richter
| 플랫폼 | 버전 |
|---|
| 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 |