Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
checkov — ビルド時にTerraform、Kubernetes、CloudFormation、コンテナイメージ全体でクラウドの誤設定、脆弱性、シークレットを検出するインフラストラクチャ・アズ・コード向けの静的解析ツール。 | Kitploit
ツール/GitHubGitHub/bridgecrewio/checkov
クラウドインフラストラクチャセキュリティ静的分析脆弱性スキャナーコンテナセキュリティ静的コード分析 (SAST)脆弱性分析コード分析サーバーレスセキュリティ構成監査クラウドセキュリティDevSecOpsシークレット検出
8.9k1.4k113日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
サプライチェーンセキュリティ
設定ミス
データベースセキュリティ
クラウドインフラストラクチャセキュリティ 第4位
クラウドセキュリティ 第4位
コード分析 第18位
構成監査 第5位
データベースセキュリティ 第13位
DevSecOps 第5位
設定ミス 第5位
シークレット検出 第16位
サーバーレスセキュリティ 第6位
静的コード分析 (SAST) 第15位
脆弱性分析 第17位
脆弱性スキャナー 第17位
GitHubbridgecrewio/checkov

checkov

ビルド時にTerraform、Kubernetes、CloudFormation、コンテナイメージ全体でクラウドの誤設定、脆弱性、シークレットを検出するインフラストラクチャ・アズ・コード向けの静的解析ツール。

リポジトリを見るウェブサイト
共有

checkov

Prisma Cloud がメンテナンス ビルドステータス セキュリティステータス コードカバレッジ ドキュメント PyPI Python バージョン Terraform バージョン

ダウンロード数
Docker プル数
slack-community

Checkov は、Infrastructure as Code (IaC) の静的コード分析ツールであり、イメージやオープンソースパッケージ向けのソフトウェア構成分析 (SCA) ツールでもあります。

Terraform や Terraform plan、Cloudformation、AWS SAM、Kubernetes、Helm チャート、Kustomize、Dockerfile、Serverless、Bicep、OpenAPI、ARM テンプレート、OpenTofu を使用してプロビジョニングされたクラウドインフラストラクチャをスキャンし、グラフベースのスキャンによりセキュリティとコンプライアンスの設定ミスを検出します。

オープンソースパッケージやイメージを対象に、Common Vulnerabilities and Exposures (CVE) をスキャンする Software Composition Analysis (SCA) スキャン を実行します。

Checkov は、開発ライフサイクル全体でクラウドセキュリティを定義・合理化する、開発者ファーストのプラットフォーム Prisma Cloud Application Security にも活用されています。Prisma Cloud は、クラウドリソースや Infrastructure-as-Code ファイルにおける設定ミスの特定、修正、防止を行います。

目次

  • 機能
  • スクリーンショット
  • はじめに
  • 免責事項
  • サポート
  • 移行 - v2 から v3 へ

機能

  • 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 でのスキャン結果

scan-screenshot

Jenkins でのスケジュールスキャン結果

jenikins-screenshot

はじめに

必要条件

  • Python >= 3.9、<=3.12
  • Terraform >= 0.12

インストール

pip のインストールについては、公式ドキュメントに従ってください。```sh pip3 install checkov

root@kitploit:~
一部の環境(例: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

root@kitploit:~
### bash autocomplete を有効にする```sh
source <(register-python-argcomplete checkov)

Upgrade

pip3 でインストールした場合```sh pip3 install -U checkov

root@kitploit:~
またはHomebrew```sh
brew upgrade checkov

入力フォルダまたはファイルを設定する```sh

checkov --directory /user/path/to/iac/code

root@kitploit:~
または特定のファイル```sh
checkov --file /user/tf/example.tf

または```sh checkov -f /user/cloudformation/example1.yml -f /user/cloudformation/example2.yml

root@kitploit:~
または、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 は1行になります。
そのため、すべての検出結果は Checkov によって行番号 0 として報告されます。```sh check: CKV_AWS_21: "Ensure all data stored in the S3 bucket have versioning enabled" FAILED for resource: aws_s3_bucket.customer File: /tf/tf.json:0-0 Guide: https://docs.prismacloud.io/en/enterprise-edition/policy-reference/aws-policies/s3-policies/s3-16-enable-versioning

root@kitploit:~
If you have installed `jq` you can convert json file into multiple lines with the following command:```sh
terraform show -json tf.plan | jq '.' > tf.json

スキャン結果がもっとユーザーフレンドリーだと良いです。```sh checkov -f tf.json Check: CKV_AWS_21: "Ensure all data stored in the S3 bucket have versioning enabled" FAILED for resource: aws_s3_bucket.customer File: /tf/tf1.json:224-268 Guide: https://docs.prismacloud.io/en/enterprise-edition/policy-reference/aws-policies/s3-policies/s3-16-enable-versioning

root@kitploit:~
	225 |               "values": {
	226 |                 "acceleration_status": "",
	227 |                 "acl": "private",
	228 |                 "arn": "arn:aws:s3:::mybucket",
root@kitploit:~
または、計画ファイルの生成に使用したhclファイルのリポジトリルートを`--repo-root-for-plan-enrichment`フラグで指定することで、出力に適切なファイルパス、行番号、リソースのコードブロックを追加できます。追加の利点として、チェックの抑制も適切に処理されます。```sh
checkov -f tf.json --repo-root-for-plan-enrichment /user/path/to/iac/code

スキャン結果サンプル (CLI)```sh

Passed Checks: 1, Failed Checks: 1, Suppressed Checks: 0 Check: "Ensure all data stored in the S3 bucket is securely encrypted at rest" /main.tf: Passed for resource: aws_s3_bucket.template_bucket Check: "Ensure all data stored in the S3 bucket is securely encrypted at rest" /../regionStack/main.tf: Failed for resource: aws_s3_bucket.sls_deployment_bucket_name

root@kitploit:~
Checkovを使い始めるには、[Getting Started](https://github.com/bridgecrewio/checkov/blob/main/docs/1.Welcome/Quick%20Start.md)のページをお読みください。

### Dockerの使用```sh
docker pull bridgecrew/checkov
docker run --tty --rm --volume /user/tf:/tf --workdir /tf bridgecrew/checkov --directory /tf

注意:Python 3.6(Ubuntu 18.04のデフォルトバージョン)を使用している場合、checkovは動作せず、ModuleNotFoundError: No module named 'dataclasses' というエラーメッセージが表示されて失敗します。この場合は、代わりにDockerバージョンを使用できます。

特定のケースでは、docker run --ttyの出力をファイルにリダイレクトすると(たとえば、Checkov JUnit出力をファイルに保存したい場合)、余分な制御文字が印刷されることがあります。これによりファイル解析が壊れる可能性があります。この問題が発生した場合は、--ttyフラグを削除してください。

--workdir /tfフラグはオプションで、作業ディレクトリをマウントされたボリュームに変更します。SARIF出力-o sarifを使用している場合、results.sarifファイルはマウントされたボリューム(上記の例では/user/tf)に出力されます。そのフラグを含めない場合、作業ディレクトリは"/"になります。

チェックの実行またはスキップ

コマンドラインフラグを使用することで、指定した名前のチェックのみを実行(許可リスト)したり、リストされたものを除くすべてのチェックを実行(拒否リスト)したりできます。APIキーを介したプラットフォーム統合を使用している場合は、スキップおよび/または含める重大度のしきい値を指定することもできます。さらに、JSONファイルにはコメントを含めることができないため、JSONファイルのシークレットスキャンをスキップする正規表現パターンを渡すことができます。

これらのフラグがどのように連携するかについての詳細は、ドキュメントを参照してください。

例

指定された2つのチェックのみを実行許可する:```sh checkov --directory . --check CKV_AWS_20,CKV_AWS_57

root@kitploit:~
指定されたチェック以外のすべてのチェックを実行します:```sh
checkov -d . --skip-check CKV_AWS_20

指定されたパターン以外のすべてのチェックを実行します:```sh checkov -d . --skip-check CKV_AWS*

root@kitploit:~
MEDIUM 以上の重大度のすべてのチェックを実行します(API key が必要):```sh
checkov -d . --check MEDIUM --bc-api-key ...

MEDIUM 以上の重大度のすべてのチェックと、チェック CKV_123 (これは LOW 重大度のチェックと仮定します) を実行してください:```sh checkov -d . --check MEDIUM,CKV_123 --bc-api-key ...

root@kitploit:~
MEDIUM 重要度以下のすべてのチェックをスキップ:```sh
checkov -d . --skip-check MEDIUM --bc-api-key ...

MEDIUM以下の深刻度のすべてのチェック、およびチェックCKV_789(これは高深刻度チェックと仮定)をスキップします:```sh checkov -d . --skip-check MEDIUM,CKV_789 --bc-api-key ...

root@kitploit:~
すべてのMEDIUM重大度以上のチェックを実行しますが、チェックCKV_123はスキップします(これはMEDIUM以上の重大度のチェックと仮定します):```sh
checkov -d . --check MEDIUM --skip-check CKV_123 --bc-api-key ...

CKV_789のチェックを実行しますが、中程度の深刻度の場合はスキップします(--checkロジックは常に--skip-checkより先に適用されます)```sh checkov -d . --skip-check MEDIUM --check CKV_789 --bc-api-key ...

root@kitploit:~
Kubernetes workloads の場合、allow/deny namespaces を使用することもできます。例えば、kube-system namespace
に対する結果を報告しないようにする:```sh
checkov -d . --skip-check kube-system

コンテナイメージのスキャンを実行します。最初にイメージをプルまたはビルドし、その後ハッシュ、ID、または name:tag: で参照します。```sh checkov --framework sca_image --docker-image sha256:1234example --dockerfile-path /Users/path/to/Dockerfile --repo-id ... --bc-api-key ...

checkov --docker-image :tag --dockerfile-path /User/path/to/Dockerfile --repo-id ... --bc-api-key ...

root@kitploit:~
ショートカットとして、--docker-image の代わりに --image フラグを使用してコンテナイメージをスキャンすることもできます:```sh
checkov --image <image-name>:tag --dockerfile-path /User/path/to/Dockerfile --repo-id ... --bc-api-key ...

リポジトリ内のパッケージに対してSCAスキャンを実行する:```sh checkov -d . --framework sca_package --bc-api-key ... --repo-id <repo_id(arbitrary)>

root@kitploit:~
バッファリングを除去し、デバッグレベルのログを追加する環境変数でディレクトリのスキャンを実行します:```sh
PYTHONUNBUFFERED=1 LOG_LEVEL=DEBUG checkov -d .

または、複数回実行するための環境変数を有効にします。```sh export PYTHONUNBUFFERED=1 LOG_LEVEL=DEBUG checkov -d .

root@kitploit:~
MyDirectory 内のすべてのファイルに対してシークレットスキャンを実行します。接尾辞が DontScan である json ファイルに対する CKV_SECRET_6 チェックをスキップします。```sh
checkov -d /MyDirectory --framework secrets --repo-id ... --bc-api-key ... --skip-check CKV_SECRET_6:.*DontScan.json$

MyDirectory内のすべてのファイルに対してシークレットスキャンを実行します。パスに"skip_test"を含むjsonファイルに対してCKV_SECRET_6チェックをスキップします。```sh checkov -d /MyDirectory --framework secrets --repo-id ... --bc-api-key ... --skip-check CKV_SECRET_6:.*skip_test.*json$

root@kitploit:~
スキャン結果から値をマスクするには、マスクエントリを含む設定ファイル(`--config-file`フラグを使用)を指定します。マスキングはリソースと値(カンマで区切られた複数の値)に適用できます。  
例:```sh
mask:
- aws_instance:user_data
- azurerm_key_vault_secret:admin_password,user_passwords

上記の例では、以下の値がマスクされます:

  • aws_instance リソースの user_data
  • azurerm_key_vault_secret の admin_password と user_passwords の両方

チェックの抑制/無視

他の静的解析ツールと同様に、分析範囲に制限があります。 例えば、リソースが手動で管理されている場合や、後続の構成管理ツールを使用している場合、 抑制は簡単なコードアノテーションとして挿入できます。

抑制コメントの形式

特定のTerraform定義ブロックまたはCloudFormationリソースに対するチェックをスキップするには、そのスコープ内で以下のコメントパターンを適用します:

checkov:skip=<check_id>:<suppression_comment>

  • <check_id> は、[利用可能なチェックスキャナー](docs/5.Policy Index/all.md) のいずれかです。
  • <suppression_comment> は、出力に含める任意の抑制理由です。

例

以下のコメントは、foo-bucket で識別されるリソースに対する CKV_AWS_20 チェックをスキップします。このチェックは、AWS S3バケットがプライベートかどうかをスキャンします。 この例では、バケットはパブリック読み取りアクセスで構成されています。抑制コメントを追加すると、チェックが失敗する代わりに適切なチェックがスキップされます。```hcl-terraform resource "aws_s3_bucket" "foo-bucket" { region = var.region #checkov:skip=CKV_AWS_20:The bucket is a public static content host bucket = local.bucket_name force_destroy = true acl = "public-read" }

root@kitploit:~
出力には、``SKIPPED`` チェック結果エントリが含まれるようになります:```bash
...
...
Check: "S3 Bucket has an ACL defined which allows public access."
	SKIPPED for resource: aws_s3_bucket.foo-bucket
	Suppress comment: The bucket is a public static content host
	File: /example_skip_acl.tf:1-25

...

複数のチェックをスキップするには、それぞれを新しい行として追加します。``` #checkov:skip=CKV2_AWS_6 #checkov:skip=CKV_AWS_20:The bucket is a public static content host

root@kitploit:~
Kubernetesマニフェストでのチェックを抑制するには、次の形式のアノテーションが使用されます:
`checkov.io/skip#: <check_id>=<suppression_comment>`

例:```bash
apiVersion: v1
kind: Pod
metadata:
  name: mypod
  annotations:
    checkov.io/skip1: CKV_K8S_20=I don't care about Privilege Escalation :-O
    checkov.io/skip2: CKV_K8S_14
    checkov.io/skip3: CKV_K8S_11=I have not set CPU limits as I want BestEffort QoS
spec:
  containers:
...

ログ記録

標準出力への詳細なログを有効にするには、環境変数 LOG_LEVEL を DEBUG に設定します。

デフォルトは LOG_LEVEL=WARNING です。

ディレクトリのスキップ

ファイルやディレクトリをスキップするには、--skip-path 引数を使用します。この引数は複数回指定できます。この引数は、現在の作業ディレクトリからの相対パスに対する正規表現を受け付けます。ディレクトリ全体や特定のファイルをスキップするために使用できます。

デフォルトでは、node_modules、.terraform、.serverless という名前のすべてのディレクトリに加えて、. で始まるすべてのファイルまたはディレクトリがスキップされます。

. で始まるディレクトリのスキップを解除するには、環境変数 CKV_IGNORE_HIDDEN_DIRECTORIES を上書きします export CKV_IGNORE_HIDDEN_DIRECTORIES=false

環境変数 CKV_IGNORED_DIRECTORIES を設定することで、スキップするディレクトリのデフォルトセットを上書きできます。

このリストを保持して追加したい場合は、これらの値を含める必要があることに注意してください。例えば、CKV_IGNORED_DIRECTORIES=mynewdir と設定すると、そのディレクトリのみがスキップされ、上記の他のディレクトリはスキップされません。この変数はレガシー機能です。--skip-file フラグを使用することをお勧めします。

コンソール出力

コンソール出力はデフォルトでカラーです。モノクロ出力に切り替えるには、環境変数を設定します: ANSI_COLORS_DISABLED

VS Code 拡張機能

VS Code 内で Checkov を使用したい場合は、Prisma Cloud 拡張機能 を試してみてください。

設定ファイルを使用した構成

Checkov は YAML 設定ファイルを使用して構成できます。デフォルトでは、checkov は以下の場所で優先順位に従って .checkov.yaml または .checkov.yml ファイルを探します:

  • checkov が実行されるディレクトリ。 (--directory)
  • checkov が呼び出された現在の作業ディレクトリ。
  • ユーザーのホームディレクトリ。

注意: checkov 設定ファイルは、検証済みのIDで構成された信頼できるソースから読み込むことがベストプラクティスです。これにより、スキャンされるファイル、チェックID、読み込まれるカスタムチェックが意図通りになります。

ユーザーはコマンドラインで設定ファイルへのパスを渡すこともできます。その場合、他の設定ファイルは無視されます。例:```sh checkov --config-file path/to/config.yaml

root@kitploit:~
ユーザーは `--create-config` コマンドを使用して設定ファイルを作成することもできます。このコマンドは現在のコマンドライン引数を取得し、指定されたパスに書き出します。例:```sh
checkov --compact --directory test-dir --docker-image sample-image --dockerfile-path Dockerfile --download-external-modules True --external-checks-dir sample-dir --quiet --repo-id prisma-cloud/sample-repo --skip-check CKV_DOCKER_3,CKV_DOCKER_2 --skip-framework dockerfile secrets --soft-fail --branch develop --check CKV_DOCKER_1 --create-config /Users/sample/config.yml

以下のような config.yaml ファイルを作成します:```yaml branch: develop check:

  • CKV_DOCKER_1 compact: true directory:
  • test-dir docker-image: sample-image dockerfile-path: Dockerfile download-external-modules: true evaluate-variables: true external-checks-dir:
  • sample-dir external-modules-download-path: .external_modules framework:
  • all output: cli quiet: true repo-id: prisma-cloud/sample-repo skip-check:
  • CKV_DOCKER_3
  • CKV_DOCKER_2 skip-framework:
  • dockerfile
  • secrets soft-fail: true
root@kitploit:~
ユーザーは `--show-config` フラグを使用して、すべての引数と設定、およびそれらがどこから来たのか(すなわち、コマンドライン、設定ファイル、環境変数、またはデフォルト)を表示することもできます。例:```sh
checkov --show-config

表示されます:```sh Command Line Args: --show-config Environment Variables: BC_API_KEY: your-api-key Config File (/Users/sample/.checkov.yml): soft-fail: False branch: master skip-check: ['CKV_DOCKER_3', 'CKV_DOCKER_2'] Defaults: --output: cli --framework: ['all'] --download-external-modules:False --external-modules-download-path:.external_modules --evaluate-variables:True

root@kitploit:~
## コントリビューション

コントリビューションを歓迎します!

まずは[コントリビューションガイドライン](https://github.com/bridgecrewio/checkov/blob/main/CONTRIBUTING.md)をご確認ください。その後、[good first issue](https://github.com/bridgecrewio/checkov/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)をご覧ください。

以下のリンクからGitpodを使ってワンクリックでブラウザ上で開発を始めることもできます:

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/bridgecrewio/checkov)

新しいチェック(ポリシー)のコントリビューションをお考えですか?新しいチェックの書き方は[こちら](https://github.com/bridgecrewio/checkov/blob/main/docs/6.Contribution/Contribution%20Overview.md)をご覧ください。

## 免責事項
`checkov` は、特定可能な顧客情報を保存、公開、または共有することは一切ありません。  
Prisma Cloud の公開ガイドを照会するために、特定可能な顧客情報が使用されることはありません。
`checkov` は Prisma Cloud の API を使用して、結果に修復ガイドへのリンクを追加します。
この API 呼び出しをスキップするには、`--skip-download` フラグを使用してください。

## サポート

[Prisma Cloud](https://www.prismacloud.io/?utm_source=github&utm_medium=organic_oss&utm_campaign=checkov) は Checkov を構築・維持し、ポリシー・アズ・コードをシンプルかつアクセスしやすいものにしています。

クイックチュートリアルやサンプルについては、[ドキュメント](https://www.checkov.io/1.Welcome/Quick%20Start.html)から始めてください。

## Python バージョンサポート
当社は Python の公式サポートサイクルに従い、サポート対象の Python バージョンに対して自動テストを実施しています。
現在サポートしているのは Python 3.9 から 3.13 までです(両端を含む)。
なお、Python 3.8 は 2024年10月に EOL(サポート終了)に達し、Python 3.9 は 2025年10月に EOL に達する予定です。
EOL に達していない Python バージョンで問題が発生した場合は、Issue を開いてください。
ツールをダウンロード