
installer v14.0.0-rc.7
리눅스, macOS 및 Windows용 cnquery & cnspec 설치 스크립트
개요
상태
설치
mql과 cnspec을 설치하는 가장 쉬운 방법은 설치 스크립트를 사용하는 것입니다.
Shell 스크립트를 통한 설치 (Linux 및 macOS)
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 등으로). 이 값은 자동 업데이터의 예약 작업에 기록되므로, 그곳에서 인용이 필요한 문자는 이스케이프되지 않고 거부됩니다.
대상 플랫폼 스캔
대상 플랫폼을 스캔하십시오:```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
소스에서 설치
git clone https://github.com/example/security-scan-orchestrator.git
cd security-scan-orchestrator
pip install -e .
Docker를 통한 설치
docker pull example/security-scan-orchestrator:latest
docker run --rm -v $(pwd):/scan example/security-scan-orchestrator:latest /scan
빠른 시작
기본 사용법
# 로컬 디렉터리 스캔
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 구성 파일을 생성하세요:
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
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
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 | 다중 언어 |
고급 사용법
사용자 정의 스캐너 플러그인
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
증분 스캔
# 마지막 스캔 이후 변경된 파일만 스캔
security-scan scan ./my-project --incremental --baseline .scan-baseline.json
병렬 실행
# 최대 8개의 병렬 스캐너로 실행
security-scan scan ./my-project --parallel 8
정책 시행
# CRITICAL 발견 항목이 있으면 실패
security-scan scan ./my-project --fail-on CRITICAL
# 5개 이상의 HIGH 발견 항목이 있으면 실패
security-scan scan ./my-project --fail-on HIGH:5
구성 참조
소스 구성
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/
스캐너 구성
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
보고 구성
reporting:
formats:
- sarif
- json
- html
- csv
- markdown
- pdf
output_dir: ./reports
include_evidence: true
group_by: severity
문제 해결
일반적인 문제
스캐너를 찾을 수 없음
# 스캐너 설치 확인
security-scan scanners list
# 누락된 스캐너 설치
security-scan scanners install semgrep trivy grype
메모리 부족 오류
# 병렬 처리 감소
security-scan scan ./my-project --parallel 2
# 스캐너 타임아웃 증가
security-scan scan ./my-project --timeout 600
권한 거부 오류
# Docker 권한 수정
sudo usermod -aG docker $USER
newgrp docker
디버그 모드
# 상세 로깅 활성화
security-scan scan ./my-project --debug --log-level DEBUG
기여하기
기여를 환영합니다! 자세한 내용은 CONTRIBUTING.md를 참조하세요.
개발 환경 설정
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
테스트 실행
pytest tests/ -v --cov=security_scan_orchestrator
라이선스
이 프로젝트는 Apache License 2.0에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
감사의 글
지원
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```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을 방문하세요.
참고 자료
설치 스크립트 소스
- install.sh -
mql&cnspecBash 설치 프로그램 - download.sh -
mql&cnspecBash 바이너리 다운로더 - install.ps1 -
mql&cnspecPowerShell 설치 프로그램 - download.ps1 -
mql&cnspecPowerShell 바이너리 다운로더
구성 관리
Docker 컨테이너
릴리스
테스트
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-----
mQINBGAF59cBEAC2qCHNY7b8vqKNfGkmgUiOQM7Ags2qL7Z6wlZR+6PjfHjCO7c/
zJgCOSbY1O/XcwnsntQUBlAjZ7yzIBvvvGjmL+3vW1flKl4ZlgLnufHB9oUXtkVd
AMSnVD/LztLKgDMad4KqNwGHuXOa3Ewl5Fv7ZQBHo0hLjslr/mbjG3CtJovXCuS1
HHklLwTap5C/SHx6DIQvJ5DV7GyhCJkRvVxs495XPEIjgv5nyftWhkDqVQxdHoSZ
RoYvoKytG5isDTlv3qbUgPFN6VYvMMEbGegwQpYvdwq6WHNFgri/Abq+yWKZ+Ysn
t8mXEVZR7onfH8jnI2X2XYrIw/c7GHcmkROU+sDvjKnEY/QfcnZUYQnsYmSW34l5
rOVoqQNEutlu41r3KZ1Z7fA8aRYo++D6IusmgIZYA0MtverWPc/S+ZkirQ/SCmNm
9CHV2iLHBJ2kYZ/sYYXCigOGAoJZ1QsTiXpKOB6X/IoDh5zw2yZQm+9GSQ1OGFlr
AWz9tPv98UpSNqGxJAoigS3aMYUobgskXL+dnCkAgb9kLIuDvp3e5EWJr3qmowC7
JMfphTtjrIVu8IgnpjwULlW1WIh3IUp4YfTN51D3NeeAIXuJYhHA5QSjkK9k+Rst
ElLYDWlvF4vZUgvF1a0DGCc5QcRousnavh4ReivLZZVdhxghFdRmO2NgMwARAQAB
tB9Nb25kb28gSW5jIDxzZWN1cml0eUBtb25kb28uaW8+iQJUBBMBCgA+FiEETOkJ
4mrnQ5w5znZHrGnGUQDhxCsFAmAF59cCGwMFCQPCZwAFCwkIBwMFFQoJCAsFFgID
AQACHgECF4AACgkQrGnGUQDhxCs89A/9F70jyBQtIe4BSk3spjk66HoqWfZnxNxH
j9R5v5Nqda05hj8QrSzqiflIac2mUPUln5o5rdORtHvxAr2PGTLJaI9sN4T/+gKg
6Ks324sP1TmOrgiQLzNzd8CE65tGeaqAWUnhOZFS8diWJ229pc9s+OPa6Cz0jz2S
ctfElfRZPEIWziIlCI4UBSOlJk0J6O/xMw+t2ljAcN8+zb3RoPk3e8Mvs6YxZ/29
e4CpdF52v1IdvxvFkw+kb5/g6m9yrPR6ywW40/Laxiyqr0H/8T7kKrUE8cnD/wii
gJ1l3uPIJKJ4EVDEsmDSjrMjhxdNWwjiLpgDImh505JlyqP1Q3IP07T4Z6IUlrmT
XC1ihRFrMSi7EesO5aYcv2sujMcjO9sMAkcdlI+zOUTQTlruO1xH54NmKcRPalx4
F7XhOTaP+0e8VaE3b3l1p0+YeENtxQBp6ABKDNK1FYG/IeHYEBr+X9gwvGgi2TAi
8sOij3hQClGMvtCNU1XB416lkYCsr2Zwwzl8QDDn7w5j2wfMVbmY+ekTu2gf5yZe
RQtmhz5cA+oCPB7VhjUzv/nUiXXzJK1KOUSYgHnc1/c1SStejfGpYlIzxxAOG4q7
KETM51TS4eHRYOE+xVTXM57wPzsltnw2pxFNyde7LJLntJZNmm/28AbYREuTiKZM
1e1/ShfoZDy5Ag0EYAXn1wEQAMAiLOUBM5FgrU32MS7MCDpbyoiWPmPPHE2onMEX
zpX5YH1a5JedUwYdAkc1x4WtUmSM3PnrfUA2gD4JX/ZrnyjK2kC7wmIM61oOARBL
/Mmyk7zb5+t/4TlVB0Q1AI9ylPrZPfxYEJ+VaUKJB+pixqilbc6SmuDW3Q7Q9fdF
3/Yan3nbewpt11zV3zPZaZfeFfCByOIwmpU9NJXULqV+oW99u0Cj8N532gMTIEO2
4oPBm+e71sy9Kv0OwXrlrJwUHhZJ7WciOI1XthxDgoqfxzW4EP6kjrIkQ4LltnMH
tpeKv6yohlLOZiWNmzPWAWnMbpXJCmUpgeTKaxxjXUehsstFbMGEYsGFM49Z3092
AXuGrYnoqpZNv9its7+Ly15wXpdXPPEIjqW9KTJqk+OoO7YopGE2XRKIDAZc1Qtx
zi9gAcwkOvIyhziZvzgyjbi/dtQa/vFWPSih6F3P9TPey82/eSBfRUwdM+UKP3CD
3dNLWHRigtMT/p1dlIRFXRlxYzAjZ4EwRg62eGScttP6PbPO+3ITVOCpMXAmnguH
DrpvuyuLmAwLpW2Q18EVtjV+UuLSbnF4nieUsT5iIWmy7JhRsLEu1Yerws4bTyoA
qNqDaZ1IottzkOHJpvNu5ntiJx8T/M8yuthFFy9jhbTDeiSTV+iESDVAtVVqhYT6
nyDlABEBAAGJAjwEGAEKACYWIQRM6QniaudDnDnOdkesacZRAOHEKwUCYAXn1wIb
DAUJA8JnAAAKCRCsacZRAOHEK6OmD/45CWnEVuoo00eGreH6B1rUf21y950jSAZw
sRmqO2vnsiprKnNnqj1EXNRB790MetiPqpWsHK6tvTWXcP3ofiDbRbVWLCYf+T6P
bnk1+SJI8h4f3EZmy5/PBvL4WxPuO+87o0AD+gM/8D+kMd5eUYeDB38TPs552IgB
brPCW+yjGyTqCrKKfAwmhSos2CrDtJdYW2h9LjwRpir3P15P/A3xkvWk15nUqMUV
tWAz5812EYTTca1WrVZF5myMn2X+E5iPhiuM+1BjrbHbbrhkMicwNy8Q2gtDVK7c
6lByh2V0+GZUdy+4AHNwyMOZSTwqTZy/EqoRB2GXP/lf+g+vmIhnZscECwaWB0OE
Y/KudZ2ctccEflsggRKtDd5a+5fBrPunnL7qFZ5UY5RTRTzkD+JLHiLnEUh1o6qf
qZxixn9jnPwkqgwGXADdUOGdPszAp5ohGHrofuiwrpguxSNCnmQgXtYqo2OY56jh
WDrNAf5A6Q67ByxpgoAIVsmmhgXGqxwErHvXHZOkoEEQzj0JQsvHEKozJK0DlTmS
Sqd0wu8Tg3C2phps++Y/6AqmEzQbXSqukPlQ1hYBAL3icyZ0sGmjZ33/NqBFKtWl
V7tRD7Y58ftpqjOd9BIzc4S05RJLUEb34XFfUPasFWUVeqUcaqi8CyQDa+RBZeSj
A8Hssvbbfw==
=dMNn
-----END PGP PUBLIC KEY BLOCK-----
Mondoo의 공개 PGP 키는 다음에서 다운로드할 수 있습니다(둘 다 동일합니다):