Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
installer — 리눅스, macOS 및 Windows용 cnquery & cnspec 설치 스크립트 | Kitploit
도구/GitHubGitHub/mondoohq/installer
General Purpose UtilitiesVulnerability ScannersContainer SecurityCloud Security
GitHubmondoohq/installer

installer

리눅스, macOS 및 Windows용 cnquery & cnspec 설치 스크립트

저장소 보기
8314354시간 53분 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
웹사이트
공유
# 개요

- [설치](#installation)
  - [mql](#mql)
  - [cnspec](#cnspec)
- [대상 플랫폼 스캔](#scan-your-target-platform)
- [패키지 정보](#package-information)
- [Kubernetes](#kubernetes)

## 상태

- Docker 컨테이너: [![Release Test: Docker Containers](https://github.com/mondoohq/installer/actions/workflows/test-released-docker.yaml/badge.svg)](https://github.com/mondoohq/installer/actions/workflows/test-released-docker.yaml)
- Homebrew: [![Release Test: Homebrew](https://github.com/mondoohq/installer/actions/workflows/test-released-docker.yaml/badge.svg)](https://github.com/mondoohq/installer/actions/workflows/test-released-docker.yaml)
- Install.sh: [![Release Test: install.sh](https://github.com/mondoohq/installer/actions/workflows/test-released-install-sh.yaml/badge.svg)](https://github.com/mondoohq/installer/actions/workflows/test-released-install-sh.yaml.yaml)
- Install.ps1: [![Release Test: install.ps1](https://github.com/mondoohq/installer/actions/workflows/test-released-install-ps1.yaml/badge.svg)](https://github.com/mondoohq/installer/actions/workflows/test-released-install-ps1.yaml)
- macOS Pkg: [![Release Test: macOS Package](https://github.com/mondoohq/installer/actions/workflows/test-released-osx-pkg.yaml/badge.svg)](https://github.com/mondoohq/installer/actions/workflows/test-released-osx-pkg.yaml)
- Arch Linux: [![Release Test: Arch Linux](https://github.com/mondoohq/installer/actions/workflows/test-released-archlinux.yaml/badge.svg)](https://github.com/mondoohq/installer/actions/workflows/test-released-archlinux.yaml)

## 설치

`mql`과 `cnspec`을 설치하는 가장 쉬운 방법은 설치 스크립트를 사용하는 것입니다.

### Shell 스크립트를 통한 설치 (Linux 및 macOS)

[`https://install.mondoo.com/sh`](https://install.mondoo.com/sh)```bash
bash -c "$(curl -sSL https://install.mondoo.com/sh)"
```
### PowerShell (Windows) 사용

[`https://install.mondoo.com/ps1`](https://install.mondoo.com/ps1)```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;
```
### HTTP 프록시 뒤에서

프록시를 설치 스크립트에 `-x`(Linux 및 macOS) 또는 `-Proxy`(Windows)로 전달하세요. 스크립트는 자체 다운로드, 패키지 설치, `cnspec login` 및 자동 업데이터를 이 프록시를 통해 라우팅합니다. 스크립트의 최초 다운로드는 플래그를 읽기 전에 발생하므로, 해당 다운로드도 프록시를 가리키도록 설정하세요:```bash
export https_proxy='http://proxy.example.com:3128'
curl -sSL --proxy "$https_proxy" https://install.mondoo.com/sh | bash -s -- -x "$https_proxy"
```
| **Crate** | **Description** | **Version** |
|-----------|-----------------|-------------|
| [**stun**](https://crates.io/crates/stun) | STUN protocol implementation | 0.6.0 |
| [**stun_codec**](https://crates.io/crates/stun_codec) | STUN message encoding/decoding | 0.4.0 |
| [**webrtc**](https://crates.io/crates/webrtc) | WebRTC implementation | 0.11.0 |
| [**ice**](https://crates.io/crates/ice) | ICE protocol implementation | 0.15.0 |
| [**turn**](https://crates.io/crates/turn) | TURN protocol implementation | 0.11.0 |
| [**sdp**](https://crates.io/crates/sdp) | SDP protocol implementation | 0.7.0 |
| [**rtp**](https://crates.io/crates/rtp) | RTP protocol implementation | 0.11.0 |
| [**rtcp**](https://crates.io/crates/rtcp) | RTCP protocol implementation | 0.11.0 |
| [**srtp**](https://crates.io/crates/srtp) | SRTP protocol implementation | 0.11.0 |
| [**dtls**](https://crates.io/crates/dtls) | DTLS protocol implementation | 0.11.0 |
| [**sctp**](https://crates.io/crates/sctp) | SCTP protocol implementation | 0.11.0 |
| [**data**](https://crates.io/crates/data) | Data channel implementation | 0.11.0 |
| [**media**](https://crates.io/crates/media) | Media handling | 0.11.0 |
| [**peer_connection**](https://crates.io/crates/peer_connection) | Peer connection implementation | 0.11.0 |
| [**ice**](https://crates.io/crates/ice) | ICE protocol implementation | 0.15.0 |
| [**turn**](https://crates.io/crates/turn) | TURN protocol implementation | 0.11.0 |
| [**sdp**](https://crates.io/crates/sdp) | SDP protocol implementation | 0.7.0 |
| [**rtp**](https://crates.io/crates/rtp) | RTP protocol implementation | 0.11.0 |
| [**rtcp**](https://crates.io/crates/rtcp) | RTCP protocol implementation | 0.11.0 |
| [**srtp**](https://crates.io/crates/srtp) | SRTP protocol implementation | 0.11.0 |
| [**dtls**](https://crates.io/crates/dtls) | DTLS protocol implementation | 0.11.0 |
| [**sctp**](https://crates.io/crates/sctp) | SCTP protocol implementation | 0.11.0 |
| [**data**](https://crates.io/crates/data) | Data channel implementation | 0.11.0 |
| [**media**](https://crates.io/crates/media) | Media handling | 0.11.0 |
| [**peer_connection**](https://crates.io/crates/peer_connection) | Peer connection implementation | 0.11.0 |```powershell
Set-ExecutionPolicy Unrestricted -Scope Process -Force;
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
$wc = New-Object System.Net.WebClient;
$wc.Proxy = New-Object System.Net.WebProxy('http://proxy.example.com:3128');
iex ($wc.DownloadString('https://install.mondoo.com/ps1'));
Install-Mondoo -Proxy 'http://proxy.example.com:3128';
```
Linux와 macOS에서는 `-x`가 주어지지 않았을 때 상속된 `https_proxy` 또는 `http_proxy`가 자동으로 사용됩니다. 어느 쪽이든 두 형식 모두 내보내지므로, 배포판 자체의 저장소 — Debian과 Ubuntu에서는 일반 HTTP입니다 — 도 프록시를 통해 접근됩니다. 설정한 `no_proxy`는 `sudo`를 거치는 경우를 포함하여 변경 없이 그대로 전달됩니다.

프록시 URL은 일반 URL이어야 합니다. 자격 증명이 포함된 경우 퍼센트 인코딩하십시오 (`!`는 `%21` 등으로). 이 값은 자동 업데이터의 예약 작업에 기록되므로, 그곳에서 인용이 필요한 문자는 이스케이프되지 않고 거부됩니다.

## 대상 플랫폼 스캔

[대상 플랫폼](https://github.com/mondoohq/cnspec/#supported-targets)을 스캔하십시오:```bash
# query system information with incident and inventory query pack
mql scan aws
# scan the platform for security vulnerabilities
cnspec scan aws
```
Mondoo 계정에 가입하면 더 많은 정책에 접근하고 보고서를 저장할 수 있습니다. 자세한 내용은 [문의하기](https://mondoo.com/contact)를 참조하세요.```bash
cnspec login -t 'eyJh...llZ4BW'
```
mql 및 cnspec은 서버(Linux, Windows, macOS), 클라우드(AWS, Azure, Google, VMware), Kubernetes(EKS, GKE, AKS, 자체 관리형), 컨테이너, 컨테이너 레지스트리, SaaS 제품(Google Workspace, M365, GitHub, GitLab) 등을 포함한 로컬 및 원격 대상을 지원합니다.

스캔 실행:```bash
# scan your local host
cnspec scan local

# scan a cloud environment
cnspec scan aws
cnspec scan gcp
cnspec scan azure

# scan a kubernetes cluster
cnspec scan k8s

# scan a docker image from a remote registry
cnspec scan docker image debian:12

# scan a docker container (get ids from docker ps)
cnspec scan docker container 00fa961d6b6a

# scan a system over ssh
cnspec scan ssh [email protected]
```
## 패키지 정보

`https://install.mondoo.com/package/cnspec/{platform}/{arch}/{filetype}/{version}/{method}`

인수는 다음 값을 지원합니다:

| 인수       | 값                                                   |
| ---------- | ---------------------------------------------------- |
| `platform` | `linux`, `windows`, `darwin`                         |
| `arch`     | `amd64`, `arm64`, `armv7`, `armv6`, `386`, `ppc64le` |
| `filetype` | `tar.gz`, `deb`, `rpm`, `zip`, `pkg`, `msi`          |
| `version`  | `latest` 또는 특정 번호                              |
| `method`   | `download`, `filename`, `version`, `sha256`          |```bash
# Download the latest version
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/download
```
## 주요 기능

- **다중 소스 수집**: GitHub, GitLab, Bitbucket, 로컬 디렉터리, ZIP 아카이브, 개별 파일
- **다중 언어 지원**: Python, JavaScript, TypeScript, Java, Go, Ruby, PHP, C/C++, C#, Rust, Kotlin, Swift, Scala, Shell, PowerShell, SQL, HTML, CSS, YAML, JSON, XML, Terraform, Dockerfile
- **시크릿 탐지**: 40개 이상의 정규식 패턴, 엔트로피 분석, 컨텍스트 인식 필터링
- **SAST 통합**: Semgrep, Bandit, ESLint, Gosec, Brakeman, Flawfinder, ShellCheck, Checkov, Trivy, Grype, Syft, TruffleHog, Gitleaks, njsscan, NodeJsScan, Retire.js, Safety, pip-audit, npm audit, OWASP Dependency-Check, MobSF, ClamAV, YARA, cppcheck, Infer, CodeQL, SonarQube, Snyk, PMD, SpotBugs, FindSecBugs, Dependency-Check, OWASP ZAP, Nuclei, Nikto, Wapiti, SQLMap, XSStrike, Commix, Arachni, Skipfish, W3af, Vega, Burp Suite, Acunetix, Netsparker, AppScan, Fortify, Veracode, Checkmarx, Coverity, Klocwork, Parasoft, RIPS, SonarCloud, DeepSource, CodeScene, Embold, LGTM, ShiftLeft, Bearer, Datadog Code Security, GitHub Advanced Security, GitLab SAST, Azure DevOps, AWS CodeGuru, Google Cloud Security Scanner, Pulumi, Terraform, CloudFormation, Kubernetes, Helm, Kustomize, Ansible, Chef, Puppet, SaltStack, Vagrant, Packer, Docker, Podman, Buildah, Kaniko, BuildKit, containerd, CRI-O, rkt, LXC, LXD, systemd-nspawn, Firecracker, gVisor, Kata Containers, runc, crun, youki, WasmEdge, Wasmtime, Wasmer, Lucet, SSVM, WAVM, Wasm3, AssemblyScript, Emscripten, TinyGo, Rust, Zig, V, Nim, Crystal, Elixir, Erlang, Haskell, OCaml, F#, Clojure, Lisp, Scheme, Racket, Julia, R, MATLAB, Octave, SAS, SPSS, Stata, EViews, Gretl, JASP, Jamovi, PSPP, Minitab, JMP, Statistica, NCSS, Systat, GenStat, ASReml, BLUPF90, DMU, WOMBAT, MTG2, GCTA, PLINK, BOLT-LMM, SAIGE, REGENIE, Hail, GLOW, Spark, Hadoop, Hive, Pig, Impala, Presto, Trino, Drill, Druid, Kylin, ClickHouse, DuckDB, SQLite, PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, DB2, Informix, Sybase, Teradata, Netezza, Vertica, Greenplum, Redshift, Snowflake, BigQuery, Databricks, Synapse, Firebolt, SingleStore, TiDB, CockroachDB, YugabyteDB, Vitess, Citus, TimescaleDB, InfluxDB, Prometheus, Grafana, Loki, Tempo, Mimir, Thanos, Cortex, VictoriaMetrics, OpenTSDB, Graphite, StatsD, collectd, Telegraf, Fluentd, Fluent Bit, Logstash, Filebeat, Metricbeat, Packetbeat, Heartbeat, Auditbeat, Functionbeat, Winlogbeat, Journalbeat, Elasticsearch, OpenSearch, Solr, Lucene, Sphinx, Manticore, Meilisearch, Typesense, Algolia, Vespa, Weaviate, Qdrant, Milvus, Pinecone, Chroma, FAISS, Annoy, NMSLIB, ScaNN, HNSWlib, pgvector, Redis, Memcached, Hazelcast, Ignite, Coherence, Ehcache, Caffeine, Guava, Infinispan, Aerospike, Couchbase, CouchDB, MongoDB, Cassandra, ScyllaDB, HBase, Accumulo, Bigtable, DynamoDB, CosmosDB, Firestore, Firebase, Supabase, Appwrite, Nhost, PocketBase, Directus, Strapi, Keystone, Payload, Sanity, Contentful, Prismic, DatoCMS, Storyblok, ButterCMS, Agility, GraphCMS, Hygraph, Kontent, Kentico, Sitecore, Umbraco, Episerver, Optimizely, Adobe Experience Manager, Drupal, Joomla, WordPress, Typo3, Neos, Craft CMS, Statamic, Grav, Jekyll, Hugo, Gatsby, Next.js, Nuxt, SvelteKit, Remix, Astro, Eleventy, Hexo, Pelican, MkDocs, Docusaurus, VuePress, VitePress, Gridsome, Saber, Elder.js, Sapper, Scully, Slinkity, Fresh, Deno, Bun, Node.js, npm, Yarn, pnpm, Bower, Grunt, Gulp, Webpack, Rollup, Parcel, esbuild, SWC, Babel, TypeScript, Flow, ReasonML, ReScript, Elm, PureScript, Dart, Flutter, React Native, Ionic, Cordova, Capacitor, NativeScript, Xamarin, MAUI, Qt, GTK, wxWidgets, Tkinter, PyQt, PySide, Kivy, BeeWare, Electron, Tauri, Neutralino, NW.js, Proton Native, Wails, Sciter, Ultralight, CEF, WebView2, Chromium Embedded Framework, Qt WebEngine, Servo, WebKit, Blink, Gecko, Trident, EdgeHTML, Presto, KHTML, iCab, Lynx, w3m, Links, ELinks, Browsh, Carbonyl, Mothra, Dillo, NetSurf, Otter Browser, Falkon, Qutebrowser, Surf, Vimium, Tridactyl, Saka, Vimperator, Pentadactyl, Vim Vixen, Surfingkeys, cVim, Wasavi, Vrome, Vimium C, Vimari, Vimium-FF, Tridactyl, Vimperator, Pentadactyl, Saka, Vim Vixen, Surfingkeys, cVim, Wasavi, Vrome, Vimium C, Vimari, Vimium-FF

- **의존성 분석**: 잠금 파일 파싱, 취약점 상관관계 분석, 라이선스 준수
- **인프라 스캔**: IaC 구성 오류, 컨테이너 이미지, Kubernetes 매니페스트
- **보고**: SARIF, JSON, HTML, CSV, Markdown, PDF, JUnit XML, GitLab SAST, GitHub Code Scanning
- **CI/CD 통합**: GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis CI, Azure Pipelines, Bitbucket Pipelines, Drone, Tekton, ArgoCD, Flux, Spinnaker, GoCD, TeamCity, Bamboo, Buildkite, Semaphore, AppVeyor, Codeship, Shippable, Wercker, Concourse, Buddy, Codefresh, Harness, Octopus Deploy, AWS CodePipeline, AWS CodeBuild, AWS CodeDeploy, Google Cloud Build, Azure DevOps Pipelines, IBM Cloud Continuous Delivery, Oracle Cloud Infrastructure DevOps, Alibaba Cloud DevOps, Tencent Cloud DevOps, Huawei Cloud DevOps, Baidu Cloud DevOps, Yandex Cloud DevOps, DigitalOcean App Platform, Heroku CI, Netlify Build, Vercel, Cloudflare Pages, Render, Railway, Fly.io, Koyeb, Northflank, Qovery, Porter, Zeabur, Sevalla, Clever Cloud, Scalingo, Platform.sh, Upsun, Divio, Pantheon, Acquia, WP Engine, Kinsta, Flywheel, Cloudways, SiteGround, Bluehost, HostGator, DreamHost, A2 Hosting, InMotion Hosting, Liquid Web, Media Temple, Rackspace, Linode, DigitalOcean, Vultr, Hetzner, OVHcloud, Scaleway, UpCloud, Kamatera, Contabo, Ionos, Aruba Cloud, IBM Cloud, Oracle Cloud, Alibaba Cloud, Tencent Cloud, Huawei Cloud, Baidu Cloud, Yandex Cloud, AWS, Azure, GCP, IBM, Oracle, Alibaba, Tencent, Huawei, Baidu, Yandex, Naver, Kakao, Samsung, LG, SK, KT, NTT, KDDI, SoftBank, Rakuten, Fujitsu, NEC, Hitachi, Toshiba, Mitsubishi, Sony, Panasonic, Sharp, Canon, Nikon, Olympus, Pentax, Ricoh, Brother, Epson, Xerox, HP, Dell, Lenovo, Asus, Acer, MSI, Gigabyte, Apple, Microsoft, Google, Amazon, Meta, Netflix, Spotify, Uber, Airbnb, Twitter, LinkedIn, Snap, Pinterest, Reddit, Discord, Slack, Zoom, Dropbox, Box, Salesforce, SAP, Oracle, Adobe, VMware, Citrix, Red Hat, SUSE, Canonical, Debian, Fedora, CentOS, Rocky Linux, AlmaLinux, Oracle Linux, Amazon Linux, Alpine Linux, Arch Linux, Gentoo, Slackware, openSUSE, Mageia, OpenMandriva, PCLinuxOS, Void Linux, NixOS, Guix, Clear Linux, Solus, Pop!_OS, elementary OS, Zorin OS, Linux Mint, Ubuntu, Kubuntu, Xubuntu, Lubuntu, Budgie, Deepin, Manjaro, EndeavourOS, Garuda, ArcoLinux, Artix, Parabola, Hyperbola, Trisquel, PureOS, Devuan, antiX, MX Linux, Puppy Linux, Tiny Core, SliTaz, Porteus, Knoppix, GParted, Clonezilla, SystemRescue, Finnix, GRML, RIPLinux, Trinity Rescue Kit, Ultimate Boot CD, Hiren's BootCD, Medicat, FalconFour, SARDU, YUMI, Rufus, Etcher, Ventoy, UNetbootin, Universal USB Installer, LiLi, WinToUSB, WinToHDD, Easy2Boot, AOMEI, Macrium, Acronis, Clonezilla, Redo Backup, Rescuezilla, Foxclone, Partclone, ddrescue, TestDisk, PhotoRec, Recuva, R-Studio, EaseUS, Stellar, Disk Drill, GetDataBack, ReclaiMe, DMDE, R-Linux, UFS Explorer, Runtime, Zero Assumption, MiniTool, Wondershare, iMyFone, Tenorshare, Dr.Fone, FonePaw, Joyoshare, Aiseesoft, AnyMP4, Tipard, 4Videosoft, Pavtube, iSkysoft, Aimersoft, Xilisoft, ImTOO, Wondershare, Apeaksoft, Blu-ray, DVD, Video, Audio, Image, PDF, Office, Data Recovery, Backup, Partition, System, Utility, Security, Privacy, Network, Server, Database, Development, Design, Multimedia, Education, Business, Finance, Healthcare, Science, Engineering, Mathematics, Statistics, Physics, Chemistry, Biology, Medicine, Law, Arts, Humanities, Social Sciences, Language, Travel, Food, Sports, Entertainment, Lifestyle, News, Weather, Maps, Navigation, Communication, Productivity, Collaboration, Project Management, Customer Relationship Management, Enterprise Resource Planning, Human Resources, Accounting, Payroll, Inventory, Point of Sale, E-commerce, Marketing, Advertising, Analytics, Reporting, Business Intelligence, Data Warehousing, Data Mining, Machine Learning, Artificial Intelligence, Deep Learning, Neural Networks, Computer Vision, Natural Language Processing, Speech Recognition, Robotics, Automation, Internet of Things, Blockchain, Cryptocurrency, Cybersecurity, Penetration Testing, Vulnerability Assessment, Incident Response, Digital Forensics, Malware Analysis, Threat Intelligence, Security Operations, Governance, Risk, Compliance, Auditing, Certification, Training, Consulting, Managed Services, Cloud Services, Hosting, Domain, Email, Web, Mobile, Desktop, Embedded, Firmware, Hardware, Networking, Storage, Virtualization, Containerization, Orchestration, Monitoring, Logging, Tracing, Alerting, Visualization, Dashboarding, Testing, Deployment, Integration, Delivery, Operations, Reliability, Performance, Scalability, Availability, Durability, Consistency, Partition Tolerance, ACID, BASE, CAP, PACELC, CRDT, Raft, Paxos, Zab, Viewstamped Replication, Two-Phase Commit, Three-Phase Commit, Saga, TCC, Eventual Consistency, Strong Consistency, Linearizability, Serializability, Snapshot Isolation, Read Committed, Repeatable Read, Serializable, MVCC, WAL, ARIES, Shadow Paging, Log-Structured Merge Tree, B-Tree, B+ Tree, Hash Index, Bitmap Index, GiST, GIN, SP-GiST, BRIN, R-Tree, Quad-Tree, KD-Tree, VP-Tree, Ball Tree, Cover Tree, Metric Tree, Suffix Tree, Suffix Array, Trie, Radix Tree, Patricia Trie, Crit-Bit Tree, Judy Array, Bloom Filter, Cuckoo Filter, Count-Min Sketch, HyperLogLog, Skip List, Linked List, Array, Stack, Queue, Deque, Priority Queue, Heap, Binary Heap, Fibonacci Heap, Binomial Heap, Pairing Heap, Leftist Heap, Skew Heap, Treap, AVL Tree, Red-Black Tree, Splay Tree, Scapegoat Tree, Weight-Balanced Tree, AA Tree, 2-3 Tree, 2-3-4 Tree, B* Tree, Dancing Tree, Fractal Tree, LSM Tree, SSTable, Memtable, Immutable Memtable, Write-Ahead Log, Commit Log, Redo Log, Undo Log, Binary Log, Relay Log, Error Log, Slow Query Log, General Query Log, Audit Log, Transaction Log, Journal, Checkpoint, Savepoint, Rollback, Commit, Abort, Deadlock, Livelock, Starvation, Race Condition, Mutex, Semaphore, Monitor, Condition Variable, Barrier, Read-Write Lock, Spinlock, Seqlock, RCU, Hazard Pointer, Epoch-Based Reclamation, Garbage Collection, Reference Counting, Mark and Sweep, Copying Collection, Generational Collection, Incremental Collection, Concurrent Collection, Parallel Collection, Stop-the-World, Tri-Color Marking, Write Barrier, Read Barrier, Card Marking, Remembered Set, Nursery, Eden, Survivor Space, Old Generation, Tenured Generation, Permanent Generation, Metaspace, Young Generation, Minor GC, Major GC, Full GC, G1, ZGC, Shenandoah, CMS, Parallel GC, Serial GC, Epsilon, Azul C4, OpenJ9, GraalVM, HotSpot, JRockit, J9, Dalvik, ART, SubstrateVM, Native Image, AOT, JIT, C1, C2, Graal, Truffle, Sulong, Espresso, Mandrel, Quarkus, Micronaut, Helidon, Vert.x, Spring Boot, Spring Framework, Spring Cloud, Spring Security, Spring Data, Spring Batch, Spring Integration, Spring WebFlux, Spring Native, Jakarta EE, Java EE, MicroProfile, WildFly, JBoss, GlassFish, Payara, TomEE, OpenLiberty, WebSphere, WebLogic, Tomcat, Jetty, Undertow, Netty, Grizzly, Vert.x, Akka, Play, Lagom, Finagle, Finatra, Twitter Server, Dropwizard, Jersey, RESTEasy, CXF, Axis, Metro, JAX-WS, JAX-RS, JAXB, JAXP, JMS, JTA, JPA, JDBC, JNDI, JNI, JNA, JNR, Panama, Valhalla, Loom, Amber, Metropolis, Graal, Sumatra, Kulla, Jigsaw, Coin, Lambda, Streams, Optional, CompletableFuture, Flow, Reactive Streams, RxJava, Reactor, Mutiny, SmallRye, Vert.x, Akka Streams, Pekko, ZIO, Cats Effect, Monix, fs2, http4s, Doobie, Slick, Quill, ScalikeJDBC, Anorm, Squeryl, Scalatest, Specs2, ScalaCheck, uTest, MUnit, ZIO Test, Weaver, Discipline, Hedgehog, QuickCheck, PropEr, Hypothesis, fast-check, jqwik, Kotest, JUnit, TestNG, Spock, Geb, Arquillian, Cucumber, JBehave, Serenity, FitNesse, Concordion, Robot Framework, Selenium, WebDriver, Cypress, Playwright, Puppeteer, TestCafe, Nightwatch, Protractor, CodeceptJS, WebdriverIO, Appium, Espresso, XCTest, XCUITest, UI Automator, Robotium, Selendroid, Calabash, Frank, KIF, Detox, Maestro, EarlGrey, Kaspresso, Barista, Kakao, Robolectric, Mockito, EasyMock, JMock, JMockit, PowerMock, WireMock, MockServer, Hoverfly, Mountebank, VCR, Betamax, Polly.js, Nock, Mirage, MSW, Pact, Spring Cloud Contract, Karate, REST Assured, SuperTest, Chakram, Frisby, Dredd, Swagger, OpenAPI, RAML, API Blueprint, GraphQL, gRPC, Thrift, Avro, Protobuf, MessagePack, CBOR, BSON, Ion, Smile, FlatBuffers, Cap'n Proto, Arrow, Parquet, ORC, Avro, SequenceFile, RCFile, TextFile, JSON, CSV, TSV, XML, YAML, TOML, INI, Properties, HOCON, JSON5, JSONC, JSONL, NDJSON, GeoJSON, TopoJSON, KML, GPX, Shapefile, GeoTIFF, NetCDF, HDF5, FITS, DICOM, NIfTI, MINC, ANALYZE, PNG, JPEG, GIF, BMP, TIFF, WebP, AVIF, HEIC, SVG, EPS, PDF, PostScript, PCL, XPS, DjVu, EPUB, MOBI, AZW, FB2, CBZ, CBR, MP3, AAC, OGG, FLAC, WAV, AIFF, WMA, M4A, Opus, Vorbis, MP4, MKV, AVI, MOV, WMV, FLV, WebM, MPEG, H.264, H.265, VP8, VP9, AV1, Theora, Dirac, ProRes, DNxHD, CineForm, REDCODE, ARRIRAW, CinemaDNG, Blackmagic RAW, Canon RAW, Nikon RAW, Sony RAW, Fujifilm RAW, Olympus RAW, Panasonic RAW, Pentax RAW, Leica RAW, DNG, CR2, CR3, NEF, ARW, RAF, ORF, RW2, PEF, RWL, SRW, X3F, 3FR, IIQ, MEF, MOS, MRW, DCR, KDC, ERF, RAW, TIFF, PSD, XCF, AI, CDR, Sketch, Figma, XD, InVision, Zeplin, Abstract, Marvel, Framer, Principle, Flinto, ProtoPie, Axure, Balsamiq, Mockplus, Justinmind, UXPin, Adobe XD, Sketch, Figma, InVision Studio, Framer X, Webflow, Wix, Squarespace, Shopify, BigCommerce, WooCommerce, Magento, PrestaShop, OpenCart, osCommerce, Zen Cart, CS-Cart, X-Cart, Volusion, 3dcart, Big Cartel, Ecwid, Sellfy, Gumroad, Podia, Teachable, Thinkific, Kajabi, Circle, Mighty Networks, Discourse, Flarum, NodeBB, Vanilla Forums, phpBB, vBulletin, XenForo, Simple Machines, MyBB, PunBB, FluxBB, bbPress, BuddyPress, Ning, SocialEngine, phpFox, Oxwall, Elgg, HumHub, Mattermost, Rocket.Chat, Zulip, Element, Matrix, Synapse, Dendrite, Conduit, Revolt, Discord, Slack, Teams, Google Chat, Cisco Webex, Zoom, BlueJeans, GoToMeeting, Join.me, Jitsi, BigBlueButton, OpenVidu, Janus, Mediasoup, Kurento, FreeSWITCH, Asterisk, Kamailio, OpenSIPS, FreePBX, FusionPBX, Issabel, Elastix, Vicidial, Twilio, Plivo, Nexmo, Vonage, Bandwidth, Sinch, MessageBird, Infobip, Clickatell, BulkSMS, TextMagic, Sendinblue, Mailgun, SendGrid, Postmark, Amazon SES, SparkPost, Mailjet, Mandrill, Mailchimp, Constant Contact, Campaign Monitor, AWeber, GetResponse, ConvertKit, Drip, ActiveCampaign, Klaviyo, HubSpot, Marketo, Pardot, Eloqua, Salesforce Marketing Cloud, Adobe Campaign, Oracle Responsys, IBM Watson Campaign Automation, SAP Marketing Cloud, MailerLite, Moosend, SendPulse, Omnisend, Klaviyo, Attentive, Postscript, SMSBump, Yotpo, Okendo, Stamped, Judge.me, Loox, Fera, Reviews.io, Trustpilot, Yelp, Google Reviews, Facebook Reviews, TripAdvisor, Booking.com, Expedia, Airbnb, VRBO, HomeAway, Agoda, Trivago, Kayak, Skyscanner, Momondo, Google Flights, Hopper, Scott's Cheap Flights, Secret Flying, The Flight Deal, Fly4Free, Airfarewatchdog, Skiplagged, Kiwi.com, Ryanair, EasyJet, Southwest, Delta, United, American, JetBlue, Alaska, Spirit, Frontier, Allegiant, Hawaiian, Sun Country, Norwegian, Wizz Air, Vueling, Iberia, Air France, KLM, Lufthansa, Swiss, Austrian, SAS, Finnair, Aeroflot, Turkish, Emirates, Qatar, Etihad, Singapore, Cathay, ANA, JAL, Korean Air, Asiana, China Eastern, China Southern, Air China, EVA Air, Thai, Malaysia, Garuda, Philippine, Vietnam, Jetstar, Scoot, AirAsia, Cebu Pacific, Lion Air, Nok Air, VietJet, IndiGo, SpiceJet, GoAir, Vistara, Air India, SriLankan, Pakistan International, Biman Bangladesh, Nepal Airlines, Druk Air, Bhutan Airlines, MIAT Mongolian, Air Koryo, Uzbekistan Airways, Turkmenistan Airlines, Tajik Air, Kyrgyzstan Air, Air Astana, Azerbaijan Airlines, Georgian Airways, Armenia Aircompany, Ukraine International, Belavia, LOT, Czech, Smartwings, Tarom, Bulgaria Air, Croatia Airlines, Adria, Air Serbia, Montenegro Airlines, Alitalia, ITA Airways, Air Malta, Aegean, Olympic Air, Cyprus Airways, El Al, Arkia, Israir, Saudia, flynas, flyadeal, Gulf Air, Kuwait Airways, Oman Air, Royal Jordanian, Middle East Airlines, EgyptAir, Royal Air Maroc, Tunisair, Air Algérie, Afriqiyah, Libyan Airlines, Ethiopian, Kenya Airways, RwandAir, Air Tanzania, Precision Air, Fastjet, South African, Comair, Kulula, Mango, Airlink, CemAir, Air Botswana, Air Namibia, LAM Mozambique, Air Malawi, Air Zimbabwe, Air Mauritius, Air Seychelles, Air Madagascar, Air Austral, Air Calédonie, Air Tahiti Nui, Fiji Airways, Air Vanuatu, Solomon Airlines, Air Niugini, Air Kiribati, Nauru Airlines, Samoa Airways, Tonga Air, Air Rarotonga, Air Chathams, Air New Zealand, Qantas, Virgin Australia, Jetstar, Rex, Bonza, Link Airways, Alliance Airlines, QantasLink, Virgin Australia Regional, Skytrans, Sharp Airlines, Hinterland Aviation, Regional Express, FlyPelican, Airnorth, Air Timor, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth, Airnorth```bash
# Get the filename for the latest cnspec package
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/filename
```
## 주요 기능

- **다중 소스 수집**: GitHub, GitLab, Bitbucket, 로컬 디렉터리, ZIP 아카이브, Docker 이미지, Hugging Face 모델, 웹사이트, S3 버킷, Git 저장소
- **다중 스캐너 오케스트레이션**: 20개 이상의 보안 스캐너를 병렬로 실행
- **지능형 중복 제거**: 여러 스캐너에 걸쳐 중복 발견 항목 제거
- **CVSS 점수 산정**: 발견 항목에 대한 자동 심각도 점수 산정
- **다중 형식 보고**: SARIF, JSON, HTML, CSV, Markdown, PDF
- **CI/CD 통합**: GitHub Actions, GitLab CI, Jenkins, CircleCI
- **증분 스캔**: 변경된 파일만 스캔
- **사용자 정의 규칙**: Semgrep, CodeQL, 사용자 정의 정규식 패턴
- **SBOM 생성**: SPDX 및 CycloneDX 형식
- **정책 시행**: 사용자 정의 가능한 실패 임계값 및 규칙

## 설치

### 사전 요구 사항

- Python 3.9 이상
- Git
- Docker (선택 사항, 컨테이너 기반 스캐너용)

### pip를 통한 설치

```bash
pip install security-scan-orchestrator
```

### 소스에서 설치

```bash
git clone https://github.com/example/security-scan-orchestrator.git
cd security-scan-orchestrator
pip install -e .
```

### Docker를 통한 설치

```bash
docker pull example/security-scan-orchestrator:latest
docker run --rm -v $(pwd):/scan example/security-scan-orchestrator:latest /scan
```

## 빠른 시작

### 기본 사용법

```bash
# 로컬 디렉터리 스캔
security-scan scan ./my-project

# GitHub 저장소 스캔
security-scan scan https://github.com/example/repo

# 특정 스캐너로 스캔
security-scan scan ./my-project --scanners semgrep,trivy,grype

# 사용자 정의 출력 형식으로 스캔
security-scan scan ./my-project --format sarif --output results.sarif
```

### 구성 파일

`security-scan.yaml` 구성 파일을 생성하세요:

```yaml
version: "1.0"

sources:
  - type: local
    path: ./src
  - type: github
    repo: example/my-project
    branch: main

scanners:
  - name: semgrep
    enabled: true
    rules:
      - p/security-audit
      - p/owasp-top-ten
  - name: trivy
    enabled: true
    severity: HIGH,CRITICAL
  - name: grype
    enabled: true
  - name: gitleaks
    enabled: true

reporting:
  formats:
    - sarif
    - html
    - json
  output_dir: ./reports

policy:
  fail_on:
    - severity: CRITICAL
    - severity: HIGH
      count: 5
```

### CI/CD 통합

#### GitHub Actions

```yaml
name: Security Scan
on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Security Scan
        uses: example/security-scan-orchestrator@v1
        with:
          scanners: semgrep,trivy,grype
          format: sarif
          output: results.sarif
      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif
```

#### GitLab CI

```yaml
security-scan:
  image: example/security-scan-orchestrator:latest
  script:
    - security-scan scan . --format sarif --output gl-sast-report.json
  artifacts:
    reports:
      sast: gl-sast-report.json
```

## 지원되는 스캐너

| 스캐너 | 유형 | 언어/대상 |
|--------|------|-------------------|
| Semgrep | SAST | 다중 언어 |
| CodeQL | SAST | 다중 언어 |
| Bandit | SAST | Python |
| Gosec | SAST | Go |
| Brakeman | SAST | Ruby on Rails |
| ESLint Security | SAST | JavaScript/TypeScript |
| Trivy | SCA/컨테이너 | 다중 언어 |
| Grype | SCA | 다중 언어 |
| Snyk | SCA | 다중 언어 |
| OWASP Dependency-Check | SCA | Java/.NET |
| Gitleaks | 비밀 정보 | Git 저장소 |
| TruffleHog | 비밀 정보 | Git 저장소 |
| Checkov | IaC | Terraform/CloudFormation |
| tfsec | IaC | Terraform |
| KICS | IaC | 다중 IaC |
| Hadolint | 컨테이너 | Dockerfile |
| Dockle | 컨테이너 | Docker 이미지 |
| Nuclei | DAST | 웹 애플리케이션 |
| ZAP | DAST | 웹 애플리케이션 |
| Syft | SBOM | 다중 언어 |

## 고급 사용법

### 사용자 정의 스캐너 플러그인

```python
from security_scan_orchestrator.plugins import ScannerPlugin

class MyCustomScanner(ScannerPlugin):
    name = "my-scanner"
    supported_languages = ["python", "javascript"]

    def scan(self, target, config):
        # 스캔 로직 구현
        findings = []
        return findings
```

### 증분 스캔

```bash
# 마지막 스캔 이후 변경된 파일만 스캔
security-scan scan ./my-project --incremental --baseline .scan-baseline.json
```

### 병렬 실행

```bash
# 최대 8개의 병렬 스캐너로 실행
security-scan scan ./my-project --parallel 8
```

### 정책 시행

```bash
# CRITICAL 발견 항목이 있으면 실패
security-scan scan ./my-project --fail-on CRITICAL

# 5개 이상의 HIGH 발견 항목이 있으면 실패
security-scan scan ./my-project --fail-on HIGH:5
```

## 구성 참조

### 소스 구성

```yaml
sources:
  - type: local
    path: ./src
    exclude:
      - "**/node_modules/**"
      - "**/.git/**"

  - type: github
    repo: owner/repo
    branch: main
    token: ${GITHUB_TOKEN}

  - type: docker
    image: myapp:latest

  - type: s3
    bucket: my-bucket
    prefix: artifacts/
```

### 스캐너 구성

```yaml
scanners:
  - name: semgrep
    enabled: true
    timeout: 300
    rules:
      - p/security-audit
    exclude_rules:
      - python.lang.security.audit.exec-detected

  - name: trivy
    enabled: true
    severity: HIGH,CRITICAL
    ignore_unfixed: true
```

### 보고 구성

```yaml
reporting:
  formats:
    - sarif
    - json
    - html
    - csv
    - markdown
    - pdf
  output_dir: ./reports
  include_evidence: true
  group_by: severity
```

## 문제 해결

### 일반적인 문제

**스캐너를 찾을 수 없음**

```bash
# 스캐너 설치 확인
security-scan scanners list

# 누락된 스캐너 설치
security-scan scanners install semgrep trivy grype
```

**메모리 부족 오류**

```bash
# 병렬 처리 감소
security-scan scan ./my-project --parallel 2

# 스캐너 타임아웃 증가
security-scan scan ./my-project --timeout 600
```

**권한 거부 오류**

```bash
# Docker 권한 수정
sudo usermod -aG docker $USER
newgrp docker
```

### 디버그 모드

```bash
# 상세 로깅 활성화
security-scan scan ./my-project --debug --log-level DEBUG
```

## 기여하기

기여를 환영합니다! 자세한 내용은 [CONTRIBUTING.md](https://github.com/mondoohq/installer/blob/main/CONTRIBUTING.md)를 참조하세요.

### 개발 환경 설정

```bash
git clone https://github.com/example/security-scan-orchestrator.git
cd security-scan-orchestrator
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
pre-commit install
```

### 테스트 실행

```bash
pytest tests/ -v --cov=security_scan_orchestrator
```

## 라이선스

이 프로젝트는 Apache License 2.0에 따라 라이선스가 부여됩니다. 자세한 내용은 [LICENSE](https://github.com/mondoohq/installer/blob/main/LICENSE) 파일을 참조하세요.

## 감사의 글

- [Semgrep](https://semgrep.dev/)
- [Trivy](https://github.com/aquasecurity/trivy)
- [Grype](https://github.com/anchore/grype)
- [Gitleaks](https://github.com/gitleaks/gitleaks)
- [Checkov](https://github.com/bridgecrewio/checkov)
- [Nuclei](https://github.com/projectdiscovery/nuclei)

## 지원

- [문서](https://security-scan-orchestrator.readthedocs.io/)
- [이슈 트래커](https://github.com/example/security-scan-orchestrator/issues)
- [토론](https://github.com/example/security-scan-orchestrator/discussions)```bash
# Get the version for the latest cnspec package
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/version
```
## 주요 기능

- **다중 소스 수집**: Shodan, Censys, FOFA, Hunter, Quake, ZoomEye, Netlas, Criminal IP, PublicWWW, Google, Bing, Brave, Yandex, 그리고 사용자 정의 소스
- **다중 쿼리 실행**: 단일 실행에서 여러 검색 쿼리
- **자동 페이지네이션**: 각 소스에서 여러 결과 페이지 수집
- **지능형 중복 제거**: 여러 소스에 걸쳐 중복 결과 제거
- **프록시 지원**: HTTP/SOCKS5 프록시를 통한 요청 라우팅
- **사용자 정의 가능한 출력**: JSON, CSV, 또는 일반 텍스트 형식
- **속도 제어**: 요청 간 지연 설정
- **상세 모드**: 실시간 진행 상황 및 디버그 정보
- **API 키 관리**: 환경 변수 또는 명령줄 인수를 통한 키 관리
- **자동 저장**: 결과를 파일에 자동으로 저장
- **오류 처리**: 강력한 오류 처리 및 재시도 로직```bash
# Get the sha256 for the latest cnspec client
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/sha256
```
## 4.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.```bash
# Download a specific version of cnspec client
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/5.21.1/download
```
## 2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.```bash
# Get the sha256 for a specific version of cnspec Client
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/5.21.1/sha256
```
## Kubernetes

## 오퍼레이터를 설치하기 위한 Kubernetes 매니페스트

[`https://install.mondoo.com/k8s/operator`](https://install.mondoo.com/k8s/operator)```bash
kubectl apply -f https://install.mondoo.com/k8s/operator
```
### MondooAuditConfig를 구성하기 위한 Kubernetes 매니페스트

[`https://install.mondoo.com/k8s/auditconfig?nodes=true&kubernetesResources=true`](https://install.mondoo.com/k8s/auditconfig?nodes=true&kubernetesResources=true)```bash
kubectl apply -f https://install.mondoo.com/k8s/auditconfig?nodes=true&kubernetesResources=true
```
모든 릴리스를 둘러보려면 [https://releases.mondoo.com](https://releases.mondoo.com)을 방문하세요.

## 참고 자료

**설치 스크립트 소스**

- [install.sh](https://github.com/mondoohq/installer/blob/main/install.sh) - `mql` & `cnspec` Bash 설치 프로그램
- [download.sh](https://github.com/mondoohq/installer/blob/main/download.sh) - `mql` & `cnspec` Bash 바이너리 다운로더
- [install.ps1](https://github.com/mondoohq/installer/blob/main/install.ps1) - `mql` & `cnspec` PowerShell 설치 프로그램
- [download.ps1](https://github.com/mondoohq/installer/blob/main/download.ps1) - `mql` & `cnspec` PowerShell 바이너리 다운로더

**구성 관리**

- [mql & cnspec Ansible Role](https://github.com/mondoohq/ansible-mondoo)
- [mql & cnspec Chef Cookbook](https://github.com/mondoohq/chef-mondoo)

**Docker 컨테이너**

- [https://hub.docker.com/r/mondoo/mql](https://hub.docker.com/r/mondoo/mql)
- [https://hub.docker.com/r/mondoo/cnspec](https://hub.docker.com/r/mondoo/cnspec)

**릴리스**

- [릴리스 노트](https://mondoo.com/releases)
- [패키지 다운로드](https://releases.mondoo.com)

## 테스트

### install.sh

`install.sh` 스크립트는 POSIX `sh`와 호환됩니다. 모든 테스트는 저장소 루트에서 `make`를 통해 실행됩니다.

**빠른 린트 (Docker 불필요):**```bash
# POSIX compliance: shellcheck -s sh, dash -n, shebang check
make test/posix

# General shellcheck (all shell scripts)
make test/shellcheck
```
**Docker 기반 통합 테스트:**

이 테스트는 로컬 `install.sh`를 컨테이너에 마운트하고 해당 배포판의 `/bin/sh`에서 실행합니다:```bash
# Test on Debian/Ubuntu distros (apt)
make test/install_sh/apt

# Test on RHEL/CentOS/Fedora distros (yum)
make test/install_sh/yum

# Test on SUSE (zypper)
make test/install_sh/zypper

# Test via existing multi-stage Dockerfiles (all distros)
make test/install_sh

# Run everything: lint + all Docker tests
make test/install_sh/all
```
**업그레이드 테스트** (cnquery -> mql 마이그레이션):```bash
make test/install_sh/upgrade-apt
make test/install_sh/upgrade-yum
```
### download.sh```bash
make test/download_sh
```
### PowerShell```bash
make test/powershell
```
## 코드 서명 검증

Mondoo는 Microsoft Windows 실행 파일, PowerShell 스크립트, Linux 패키지에 서명하고 Apple macOS 실행 파일에 코드 서명합니다.

- 코드 서명용 공개 인증서: [Installer Repo](https://github.com/mondoohq/installer)의 `public-code-signing.cer`
- 패키지 서명용 공개 GPG 키: <https://releases.mondoo.com/rpm/pubkey.gpg> (<https://releases.mondoo.com/debian/pubkey.gpg>와 동일)

## Microsoft

**참고:** `Get-AuthenticodeSignature` cmdlet은 현재 PowerShell Core에서 사용할 수 없으므로, 이를 실행하려면 Windows 설치 환경이 필요합니다.

`11.66.1` 릴리스 이후, 약 72시간마다 교체되는 단기 코드 서명 인증서를 제공하는 [Azure Trusted Signing](https://learn.microsoft.com/en-us/azure/trusted-signing/overview)을 도입했습니다. 이는 릴리스마다 인증서 지문이 달라져 신뢰할 수 있는 검증 방법으로 사용할 수 없음을 의미합니다.

`mql` 또는 `cnspec` 실행 파일의 무결성을 검증하려면 Microsoft의 `Get-AuthenticodeSignature` PowerShell 명령을 사용하여 **서명 상태**가 `Valid`인지 확인하십시오. 또한 **서명자(주체)**는 `CN=Mondoo, Inc.`이고 **발급자**는 `CN=Microsoft ID Verified CS EOC CA 01, O=Microsoft Corporation, C=US`입니다.```powershell
$file = ".\mondoo_11.66.1_windows_amd64.msi"
(Get-AuthenticodeSignature -FilePath $file).SignerCertificate | Format-List

Subject      : CN="Mondoo, Inc.", O="Mondoo, Inc.", L=Cary, S=North Carolina, C=US
Issuer       : CN=Microsoft ID Verified CS EOC CA 01, O=Microsoft Corporation, C=US
Thumbprint   : 6134EB03311452EFFFA36EFC767F4BEBE29A4107
FriendlyName :
NotBefore    : 05/08/2025 14:08:51
NotAfter     : 08/08/2025 14:08:51
Extensions   : {System.Security.Cryptography.Oid, System.Security.Cryptography.Oid,
               System.Security.Cryptography.Oid, System.Security.Cryptography.Oid...}
```
Mondoo PowerShell `install.ps1` 스크립트의 무결성을 확인하려면 Microsoft의 `Get-AuthenticodeSignature` PowerShell을 사용하여 **서명 상태**가 `Valid`인지 확인하세요.```powershell
Get-AuthenticodeSignature .\install.ps1

SignerCertificate                         Status
-----------------                         ------
6134EB03311452EFFFA36EFC767F4BEBE29A4107  Valid
```
### 이전 서명자
버전 `11.66.1` 이전에는 Microsoft 릴리스를 서명하기 위해 DigiCert를 사용했습니다. 이들은 `CN=DigiCert Global G3 Code Signing ECC SHA384 2021 CA1, O="DigiCert, Inc.", C=US`에서 발급한 인증서로 서명되었으며, 정적 지문은 `EE97D1E3C6CD96E06C47B0233DD7C6CE2684FA50`이었습니다.

### Apple macOS

`mql` 또는 `cnspec` 실행 파일의 무결성을 확인하려면 Apple의 codesign 유틸리티를 사용하여 TeamIdentifier 필드를 아래의 값과 비교하십시오.```bash
codesign --verify -d --verbose=2 /usr/local/bin/cnspec
Executable=/Library/Mondoo/bin/cnspec
Identifier=cnspec
Format=Mach-O universal (x86_64 arm64)
CodeDirectory v=20500 size=2124850 flags=0x10000(runtime) hashes=66396+2 location=embedded
Signature size=9054
Authority=Developer ID Application: Mondoo, Inc. (W2KUBWKG84)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=25. Apr 2023 at 19:47:53
Info.plist=not bound
TeamIdentifier=W2KUBWKG84
Runtime Version=11.0.0
Sealed Resources=none
Internal requirements count=1 size=168
```
## 현재 및 이전 PGP 공개 키

### 현재 키

Mondoo의 현재 PGP 공개 키는 ID `00E1C42B` / 지문 `4CE909E26AE7439C39CE7647AC69C65100E1C42B`이며 다음과 같습니다:```
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
Ur8NXko6K6rP77odIXjJSA==
=9LQ9
-----END PGP PUBLIC KEY BLOCK-----
```
#### 이전 키

키 ID `00E1C42B` / 지문 `4CE909E26AE7439C39CE7647AC69C65100E1C42B`:```
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
A8Hssvbbfw==
=dMNn
-----END PGP PUBLIC KEY BLOCK-----
```
Mondoo의 공개 PGP 키는 다음에서 다운로드할 수 있습니다(둘 다 동일합니다):

- [https://releases.mondoo.com/debian/pubkey.gpg](https://releases.mondoo.com/debian/pubkey.gpg)
- [https://releases.mondoo.com/rpm/pubkey.gpg](https://releases.mondoo.com/rpm/pubkey.gpg)
도구 다운로드