
checkov v3.3.9
인프라를 코드로 관리하는 정적 분석 도구로, Terraform, Kubernetes, CloudFormation, 컨테이너 이미지에서 클라우드 구성 오류, 취약점, 시크릿을 빌드 시점에 탐지합니다.
Checkov는 인프라스트럭처 애즈 코드(IaC)를 위한 정적 코드 분석 도구이자, 이미지 및 오픈 소스 패키지를 위한 소프트웨어 구성 분석(SCA) 도구입니다.
Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Helm charts, Kustomize, Dockerfile, Serverless, Bicep, OpenAPI, ARM Templates 또는 OpenTofu를 사용하여 프로비저닝된 클라우드 인프라를 스캔하고, 그래프 기반 스캔을 통해 보안 및 규정 준수 설정 오류를 탐지합니다.
또한 오픈 소스 패키지와 이미지의 CVE(Common Vulnerabilities and Exposures)를 스캔하는 소프트웨어 구성 분석(SCA) 스캔을 수행합니다.
Checkov는 개발 수명 주기 전반에 걸쳐 클라우드 보안을 코드화하고 간소화하는 개발자 우선 플랫폼인 Prisma Cloud Application Security를 지원합니다. Prisma Cloud는 클라우드 리소스 및 인프라스트럭처 애즈 코드 파일의 설정 오류를 식별, 수정 및 방지합니다.
목차
기능
- 1000개 이상의 내장 정책으로 AWS, Azure 및 Google Cloud에 대한 보안 및 규정 준수 모범 사례를 다룹니다.
- Terraform, Terraform Plan, Terraform JSON, CloudFormation, AWS SAM, Kubernetes, Helm, Kustomize, Dockerfile, Serverless framework, Ansible, Bicep, ARM 및 OpenTofu 템플릿 파일을 스캔합니다.
- Argo Workflows, Azure Pipelines, BitBucket Pipelines, Circle CI Pipelines, GitHub Actions 및 GitLab CI 워크플로 파일을 스캔합니다.
- 메모리 내 그래프 기반 스캔을 기반으로 하는 컨텍스트 인식 정책을 지원합니다.
- 속성 정책에는 Python 형식을, 속성 및 복합 정책에는 YAML 형식을 지원합니다.
- EC2 Userdata, Lambda 환경 변수 및 Terraform 공급자에서 AWS 자격 증명을 탐지합니다.
- 정규 표현식, 키워드 및 엔트로피 기반 탐지를 사용하여 비밀 정보를 식별합니다.
- Terraform을 통해 관리되는 IaaS, PaaS 또는 SaaS의 생성, 관리 및 업데이트를 규제하기 위해 Terraform Provider 설정을 평가합니다.
- 정책은 변수의 선택적 기본값까지 평가를 지원합니다.
- 인라인 억제를 통해 승인된 위험 또는 오탐지로 인한 반복적인 스캔 실패를 줄일 수 있습니다. 또한 CLI를 사용한 전역 건너뛰기도 지원합니다.
- 현재 CLI, CycloneDX, JSON, JUnit XML, CSV, SARIF, github markdown 형식으로 출력을 제공하며 수정 가이드로 연결됩니다.
스크린샷
CLI에서의 스캔 결과

Jenkins에서의 예약된 스캔 결과

시작하기
요구 사항
- Python >= 3.9, <=3.12
- Terraform >= 0.12
설치
pip를 설치하려면 공식 문서를 참조하세요.```sh pip3 install checkov
일부 환경(예: Debian 12)에서는 Checkov를 가상 환경에 설치해야 할 수도 있습니다.```sh
# Create and activate a virtual environment
python3 -m venv /path/to/venv/checkov
cd /path/to/venv/checkov
source ./bin/activate
# Install Checkov with pip
pip install checkov
# Optional: Create a symlink for easy access
sudo ln -s /path/to/venv/checkov/bin/checkov /usr/local/bin/checkov
또는 Homebrew (macOS 또는 Linux)```sh brew install checkov
### Bash 자동 완성 활성화```sh
source <(register-python-argcomplete checkov)
업그레이드
만약 pip3로 checkov를 설치했다면```sh pip3 install -U checkov
또는 Homebrew로```sh
brew upgrade checkov
입력 폴더 또는 파일 구성```sh
checkov --directory /user/path/to/iac/code
또는 특정 파일 또는 파일들```sh
checkov --file /user/tf/example.tf
또는```sh checkov -f /user/cloudformation/example1.yml -f /user/cloudformation/example2.yml
또는 JSON 형식의 terraform plan 파일```sh
terraform init
terraform plan -out tf.plan
terraform show -json tf.plan > tf.json
checkov -f tf.json
참고: terraform show 출력 파일인 tf.json은 한 줄로 구성됩니다.
