Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
checkov — Ferramenta de análise estática para infraestrutura como código que detecta configurações incorretas em nuvem, vulnerabilidades e segredos em Terraform, Kubernetes, CloudFormation e imagens de contêiner durante o tempo de build. | Kitploit
Ferramentas/GitHubGitHub/bridgecrewio/checkov
Segurança de Infraestrutura em NuvemAnálise EstáticaScanners de VulnerabilidadesSegurança de ContêineresAnálise Estática de Código (SAST)Análise de VulnerabilidadesAnálise de CódigoSegurança ServerlessAuditoria de ConfiguraçãoSegurança na NuvemDevSecOpsDetecção de Segredos
8.9k1.4k11há 3 diasRevisado pelo Kitploit
Segurança da Cadeia de Suprimentos
Configuração Incorreta
Segurança de Banco de Dados
Top em Segurança de Infraestrutura em Nuvem nº4
Top em Segurança na Nuvem nº4
Top em Análise de Código nº18
Top em Auditoria de Configuração nº5
Top em Segurança de Banco de Dados nº13
Top em DevSecOps nº5
Top em Configuração Incorreta nº5
Top em Detecção de Segredos nº16
Top em Segurança Serverless nº6
Top em Análise Estática de Código (SAST) nº15
Top em Análise de Vulnerabilidades nº17
Top em Scanners de Vulnerabilidades nº17
GitHubbridgecrewio/checkov

checkov

Ferramenta de análise estática para infraestrutura como código que detecta configurações incorretas em nuvem, vulnerabilidades e segredos em Terraform, Kubernetes, CloudFormation e imagens de contêiner durante o tempo de build.

Ver RepositórioSite

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

checkov

Maintained by Prisma Cloud build status security status code_coverage docs PyPI Python Version Terraform Version

Downloads
Docker Pulls
slack-community

Checkov é uma ferramenta de análise estática de código para infraestrutura como código (IaC) e também uma ferramenta de análise de composição de software (SCA) para imagens e pacotes open source.

Ela examina a infraestrutura em nuvem provisionada usando Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Helm charts, Kustomize, Dockerfile, Serverless, Bicep, OpenAPI, ARM Templates ou OpenTofu e detecta más configurações de segurança e conformidade usando varredura baseada em grafos.

Ela realiza varredura de Análise de Composição de Software (SCA), que é uma varredura de pacotes open source e imagens em busca de Vulnerabilidades e Exposições Comuns (CVEs).

Checkov também alimenta o Prisma Cloud Application Security, a plataforma voltada para desenvolvedores que codifica e simplifica a segurança em nuvem durante todo o ciclo de vida de desenvolvimento. O Prisma Cloud identifica, corrige e previne más configurações em recursos de nuvem e arquivos de infraestrutura como código.

Índice

  • Funcionalidades
  • Capturas de tela
  • Começando
  • Aviso legal
  • Suporte
  • Migração - v2 para v3

Funcionalidades

  • Mais de 1000 políticas integradas cobrem as melhores práticas de segurança e conformidade para AWS, Azure e Google Cloud.
  • Examina arquivos de template Terraform, Terraform Plan, Terraform JSON, CloudFormation, AWS SAM, Kubernetes, Helm, Kustomize, Dockerfile, Serverless framework, Ansible, Bicep, ARM e OpenTofu.
  • Examina arquivos de workflow Argo Workflows, Azure Pipelines, BitBucket Pipelines, Circle CI Pipelines, GitHub Actions e GitLab CI.
  • Suporta políticas com consciência de contexto baseadas em varredura baseada em grafo em memória.
  • Suporta formato Python para políticas de atributo e formato YAML para políticas de atributo e compostas.
  • Detecta credenciais AWS em EC2 Userdata, variáveis de ambiente Lambda e provedores Terraform.
  • Identifica segredos usando expressões regulares, palavras-chave e detecção baseada em entropia.
  • Avalia configurações do Terraform Provider para regular a criação, gerenciamento e atualização de IaaS, PaaS ou SaaS gerenciados via Terraform.
  • As políticas suportam avaliação de variáveis para seu valor padrão opcional.
  • Suporta supressão em linha de riscos aceitos ou falsos positivos para reduzir falhas recorrentes de varredura. Também suporta skip global via CLI.
  • Saída atualmente disponível como CLI, CycloneDX, JSON, JUnit XML, CSV, SARIF e markdown do GitHub, além de link para guias de remediação.

Capturas de tela

Resultados da varredura na CLI

scan-screenshot

Resultado de varredura agendada no Jenkins

jenikins-screenshot

Começando

Requisitos

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

Instalação

Para instalar o pip siga a documentação oficial```sh pip3 install checkov

root@kitploit:~
Certos ambientes (por exemplo, Debian 12) podem exigir que você instale o Checkov em um ambiente virtual```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

ou com Homebrew (macOS ou Linux)```sh brew install checkov

root@kitploit:~
### Habilitando o autocompletar do bash```sh
source <(register-python-argcomplete checkov)

Atualização

se você instalou o checkov com pip3```sh pip3 install -U checkov

root@kitploit:~
ou com Homebrew```sh
brew upgrade checkov

Configurar uma pasta ou arquivo de entrada```sh

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

root@kitploit:~
Ou um arquivo específico ou arquivos```sh
checkov --file /user/tf/example.tf

Ou```sh checkov -f /user/cloudformation/example1.yml -f /user/cloudformation/example2.yml

root@kitploit:~
Ou um arquivo de terraform plan em formato json```sh
terraform init
terraform plan -out tf.plan
terraform show -json tf.plan  > tf.json
checkov -f tf.json

Nota: o arquivo de saída tf.json do terraform show será uma única linha. Por esse motivo, todas as descobertas serão reportadas na linha número 0 pelo Checkov```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:~
Se você instalou o `jq`, pode converter o arquivo json em várias linhas com o seguinte comando:```sh
terraform show -json tf.plan | jq '.' > tf.json

O resultado da varredura seria muito mais amigável para o usuário.```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:~
Alternativamente, especifique a raiz do repositório dos arquivos hcl usados para gerar o arquivo de plano, usando a flag `--repo-root-for-plan-enrichment`, para enriquecer a saída com o caminho do arquivo apropriado, números de linha e bloco de código do(s) recurso(s). Um benefício adicional é que as supressões de verificação serão tratadas de acordo.```sh
checkov -f tf.json --repo-root-for-plan-enrichment /user/path/to/iac/code

Exemplo de resultado de varredura (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:~
Comece a usar o Checkov lendo a página [Primeiros Passos](https://github.com/bridgecrewio/checkov/blob/main/docs/1.Welcome/Quick%20Start.md).

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

Nota: se você estiver usando Python 3.6 (versão padrão no Ubuntu 18.04), o checkov não funcionará e falhará com a mensagem de erro ModuleNotFoundError: No module named 'dataclasses'. Nesse caso, você pode usar a versão Docker.

Note que há certos casos onde redirecionar a saída de docker run --tty para um arquivo - por exemplo, se você quiser salvar a saída JUnit do Checkov em um arquivo - fará com que caracteres de controle extras sejam impressos. Isso pode quebrar a análise do arquivo. Se você encontrar isso, remova a flag --tty.

A flag --workdir /tf é opcional para alterar o diretório de trabalho para o volume montado. Se você estiver usando a saída SARIF -o sarif, isso salvará o arquivo results.sarif no volume montado (/user/tf no exemplo acima). Se você não incluir essa flag, o diretório de trabalho será "/".

Executando ou pulando verificações

Usando flags da linha de comando, você pode especificar para executar apenas verificações nomeadas (lista de permissão) ou executar todas as verificações, exceto aquelas listadas (lista de negação). Se você estiver usando a integração da plataforma via chave de API, também pode especificar um limiar de gravidade para pular e/ou incluir. Além disso, como arquivos json não podem conter comentários, é possível passar um padrão regex para pular a varredura de segredos em arquivos json.

Consulte a documentação para informações mais detalhadas sobre como essas flags funcionam juntas.

Exemplos

Permitir que apenas as duas verificações especificadas sejam executadas:```sh checkov --directory . --check CKV_AWS_20,CKV_AWS_57

root@kitploit:~
Execute todas as verificações exceto a especificada:```sh
checkov -d . --skip-check CKV_AWS_20

Executar todas as verificações, exceto aquelas com padrões especificados:```sh checkov -d . --skip-check CKV_AWS*

root@kitploit:~
Executar todas as verificações que são de gravidade MEDIUM ou superior (requer chave de API):```sh
checkov -d . --check MEDIUM --bc-api-key ...

Execute todas as verificações que são de severidade MEDIUM ou superior, bem como a verificação CKV_123 (suponha que esta seja uma verificação de severidade LOW):```sh checkov -d . --check MEDIUM,CKV_123 --bc-api-key ...

root@kitploit:~
Ignorar todas as verificações que são de gravidade MEDIUM ou inferior:```sh
checkov -d . --skip-check MEDIUM --bc-api-key ...

Pule todas as verificações que são de gravidade MEDIUM ou inferior, bem como a verificação CKV_789 (assuma que esta é uma verificação de alta gravidade):```sh checkov -d . --skip-check MEDIUM,CKV_789 --bc-api-key ...

root@kitploit:~
Execute todas as verificações que são de severidade MEDIUM ou superior, mas pule a verificação CKV_123 (assuma que esta é uma verificação de severidade média ou superior):```sh
checkov -d . --check MEDIUM --skip-check CKV_123 --bc-api-key ...

Executar a verificação CKV_789, mas ignorá-la se for de gravidade média (a lógica --check é sempre aplicada antes de --skip-check)```sh checkov -d . --skip-check MEDIUM --check CKV_789 --bc-api-key ...

root@kitploit:~
Para workloads Kubernetes, você também pode usar namespaces de permitir/negar.  Por exemplo, não reportar nenhum resultado para o namespace kube-system:```sh
checkov -d . --skip-check kube-system

Execute uma verificação de uma imagem de contêiner. Primeiro faça pull ou build da imagem e então refira-se a ela pelo hash, ID, ou 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:~
Você também pode usar a flag --image para escanear a imagem do contêiner em vez de --docker-image para abreviar:```sh
checkov --image <image-name>:tag --dockerfile-path /User/path/to/Dockerfile --repo-id ... --bc-api-key ...

Executar uma análise SCA de pacotes em um repositório:```sh checkov -d . --framework sca_package --bc-api-key ... --repo-id <repo_id(arbitrary)>

root@kitploit:~
Execute uma varredura de um diretório com variáveis de ambiente removendo buffer, adicionando logs de nível de depuração:```sh
PYTHONUNBUFFERED=1 LOG_LEVEL=DEBUG checkov -d .

OU ative as variáveis de ambiente para várias execuções```sh export PYTHONUNBUFFERED=1 LOG_LEVEL=DEBUG checkov -d .

root@kitploit:~
Execute a verificação de segredos em todos os arquivos em MyDirectory. Ignore a verificação CKV_SECRET_6 em arquivos json cujo sufixo seja DontScan.```sh
checkov -d /MyDirectory --framework secrets --repo-id ... --bc-api-key ... --skip-check CKV_SECRET_6:.*DontScan.json$

Execute a varredura de segredos em todos os arquivos em MyDirectory. Pule a verificação CKV_SECRET_6 em arquivos json que contenham "skip_test" no caminho.```sh checkov -d /MyDirectory --framework secrets --repo-id ... --bc-api-key ... --skip-check CKV_SECRET_6:.*skip_test.*json$

root@kitploit:~
É possível mascarar valores dos resultados de varredura fornecendo um arquivo de configuração (usando a flag --config-file) com uma entrada de máscara.
O mascaramento pode ser aplicado em recurso e valor (ou múltiplos valores, separados por vírgula).
Exemplos:```sh
mask:
- aws_instance:user_data
- azurerm_key_vault_secret:admin_password,user_passwords

No exemplo acima, os seguintes valores serão mascarados:

  • user_data do recurso aws_instance
  • ambos admin_password &user_passwords para azurerm_key_vault_secret

Suprimindo/Ignorando uma verificação

Como qualquer ferramenta de análise estática, é limitada pelo seu escopo de análise. Por exemplo, se um recurso é gerenciado manualmente ou usando ferramentas de gerenciamento de configuração subsequentes, a supressão pode ser inserida como uma simples anotação de código.

Formato do comentário de supressão

Para pular uma verificação em um determinado bloco de definição do Terraform ou recurso do CloudFormation, aplique o seguinte padrão de comentário dentro do seu escopo:

checkov:skip=<check_id>:<suppression_comment>

  • <check_id> é um dos [verificadores de verificação disponíveis](docs/5.Policy Index/all.md)
  • <suppression_comment> é um motivo opcional de supressão a ser incluído na saída

Exemplo

O seguinte comentário pula a verificação CKV_AWS_20 no recurso identificado por foo-bucket, onde a varredura verifica se um bucket S3 da AWS é privado. No exemplo, o bucket está configurado com acesso de leitura público; Adicionar o comentário de supressão pularia a verificação apropriada em vez de a verificação falhar.```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:~
A saída agora conteria uma entrada de resultado de verificação ``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

...

Para ignorar várias verificações, adicione cada uma como uma nova linha.``` #checkov:skip=CKV2_AWS_6 #checkov:skip=CKV_AWS_20:The bucket is a public static content host

root@kitploit:~
Para suprimir verificações em manifestos Kubernetes, anotações são usadas com o seguinte formato:
`checkov.io/skip#: <check_id>=<suppression_comment>`

Por exemplo:```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:
...

Logging

Para registo detalhado no stdout, defina a variável de ambiente LOG_LEVEL para DEBUG.

O padrão é LOG_LEVEL=WARNING.

Ignorar diretórios

Para ignorar ficheiros ou diretórios, use o argumento --skip-path, que pode ser especificado várias vezes. Este argumento aceita expressões regulares para caminhos relativos ao diretório de trabalho atual. Pode usá-lo para ignorar diretórios inteiros e/ou ficheiros específicos.

Por padrão, todos os diretórios com nome node_modules, .terraform e .serverless serão ignorados, além de quaisquer ficheiros ou diretórios que comecem com .. Para cancelar a ignoração de diretórios que começam com ., substitua a variável de ambiente CKV_IGNORE_HIDDEN_DIRECTORIES com export CKV_IGNORE_HIDDEN_DIRECTORIES=false

Pode substituir o conjunto predefinido de diretórios a ignorar definindo a variável de ambiente CKV_IGNORED_DIRECTORIES. Note que se quiser preservar esta lista e adicionar a ela, deve incluir esses valores. Por exemplo, CKV_IGNORED_DIRECTORIES=mynewdir ignorará apenas esse diretório, mas não os outros mencionados acima. Esta variável é uma funcionalidade legada; recomendamos usar a flag --skip-file.

Saída da Consola

A saída da consola é colorida por padrão; para alternar para uma saída monocromática, defina a variável de ambiente: ANSI_COLORS_DISABLED

Extensão VS Code

Se quiser usar o Checkov dentro do VS Code, experimente a extensão Prisma Cloud.

Configuração usando um ficheiro de configuração

O Checkov pode ser configurado usando um ficheiro de configuração YAML. Por padrão, o checkov procura um ficheiro .checkov.yaml ou .checkov.yml nos seguintes locais por ordem de precedência:

  • Diretório contra o qual o checkov é executado. (--directory)
  • Diretório de trabalho atual onde o checkov é chamado.
  • Diretório base do utilizador.

Atenção: é uma boa prática que o ficheiro de configuração do checkov seja carregado de uma fonte confiável composta por uma identidade verificada, para que os ficheiros digitalizados, check ids e verificações personalizadas carregadas sejam conforme desejado.

Os utilizadores também podem passar o caminho para um ficheiro de configuração através da linha de comandos. Nesse caso, os outros ficheiros de configuração serão ignorados. Por exemplo:```sh checkov --config-file path/to/config.yaml

root@kitploit:~
Os usuários também podem criar um arquivo de configuração usando o comando `--create-config`, que pega os argumentos atuais da linha de comando e os escreve em um caminho específico. Por exemplo:```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

Criará um ficheiro config.yaml com o seguinte aspeto:```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:~
Os usuários também podem usar a flag `--show-config` para visualizar todos os argumentos e configurações e de onde eles vieram, ou seja, linha de comando, arquivo de configuração, variável de ambiente ou padrão. Por exemplo:```sh
checkov --show-config

Exibirá:```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:~
## Contribuindo

Contribuições são bem-vindas!

Comece revisando as [diretrizes de contribuição](https://github.com/bridgecrewio/checkov/blob/main/CONTRIBUTING.md). Depois, dê uma olhada em uma [boa primeira issue](https://github.com/bridgecrewio/checkov/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).

Você pode até começar com desenvolvimento em um clique no seu navegador através do Gitpod no seguinte link:

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

Quer contribuir com novas verificações? Saiba como escrever uma nova verificação (também conhecida como política) [aqui](https://github.com/bridgecrewio/checkov/blob/main/docs/6.Contribution/Contribution%20Overview.md).

## Aviso Legal
`checkov` não salva, publica ou compartilha com ninguém qualquer informação identificável do cliente.  
Nenhuma informação identificável do cliente é usada para consultar os guias publicamente acessíveis do Prisma Cloud.
`checkov` usa a API do Prisma Cloud para enriquecer os resultados com links para guias de remediação.
Para ignorar esta chamada de API, use a flag `--skip-download`.

## Suporte

[Prisma Cloud](https://www.prismacloud.io/?utm_source=github&utm_medium=organic_oss&utm_campaign=checkov) constrói e mantém o Checkov para tornar a política como código simples e acessível.

Comece com nossa [Documentação](https://www.checkov.io/1.Welcome/Quick%20Start.html) para tutoriais rápidos e exemplos.

## Suporte à Versão do Python
Seguimos o ciclo oficial de suporte do Python e usamos testes automatizados para as versões suportadas do Python.
Isso significa que atualmente suportamos Python 3.9 a 3.13, inclusive.
Observe que o Python 3.8 atingiu o fim da vida útil em outubro de 2024 e o Python 3.9 atingirá o fim da vida útil em outubro de 2025.
Se você encontrar problemas com qualquer versão do Python que não tenha atingido o fim da vida útil, abra uma Issue.
Baixar ferramenta