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
iac-scan-runner — Serviço que verifica sua Infraestrutura como Código em busca de vulnerabilidades comuns. | Kitploit
Ferramentas/GitHubGitHub/xlab-si/iac-scan-runner
Segurança de Infraestrutura em NuvemScanners de VulnerabilidadesAuditoria de ConfiguraçãoDevSecOpsSegurança de API
GitHubxlab-si/iac-scan-runner

iac-scan-runner

Serviço que verifica sua Infraestrutura como Código em busca de vulnerabilidades comuns.

Ver Repositório
4935há 2 anosRevisado pelo Kitploit

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 →
Site
Compartilhar

IaC Scan Runner

Serviço que analisa sua Infraestrutura como Código em busca de vulnerabilidades comuns.

GitHub Workflow Status Docker Image Version (latest by date) PyPI Test PyPI

AspectoInformação
Nome da ferramentaIaC Scan Runner
Imagem Dockerxscanner/runner
Pacote PyPIiac-scan-runner
Documentaçãodocs
Fale conosco[email protected]

Índice

  • Descrição
  • Execução
    • Executar com Docker
    • Executar via CLI
    • Executar a partir do código fonte
  • Licença
  • Contato
  • Agradecimentos

Propósito e descrição

O IaC Scan Runner é um serviço de API REST usado para analisar pacotes de IaC (Infraestrutura como Código) e realizar várias verificações de código para encontrar possíveis vulnerabilidades e melhorias. Explore a documentação para mais informações.

Execução

Esta seção explica como executar a API REST.

Executar com Docker

Você pode executar a API REST usando a imagem pública Docker xscanner/runner da seguinte forma:

root@kitploit:~
# execute a API REST do IaC Scan Runner em um container Docker e 
# navegue para localhost:8080/swagger ou localhost:8080/redoc
$ docker run --name iac-scan-runner -p 8080:80 xscanner/runner

Ou você pode construir a imagem localmente e executá-la da seguinte forma:

root@kitploit:~
# construa o container Docker (isso levará algum tempo)
$ docker build -t iac-scan-runner .
# execute a API REST do IaC Scan Runner em um container Docker e 
# navegue para localhost:8080/swagger ou localhost:8080/redoc
$ docker run --name iac-scan-runner -p 8080:80 iac-scan-runner

Executar via CLI

Para executar usando a CLI do IaC Scan Runner:

root@kitploit:~
# instale a CLI
$ python3 -m venv .venv && . .venv/bin/activate
(.venv) $ pip install iac-scan-runner
# imprima a especificação OpenAPI
(.venv) $ iac-scan-runner openapi
# instale os pré-requisitos
(.venv) $ iac-scan-runner install
# execute a API REST do IaC Scan Runner
(.venv) $ iac-scan-runner run

Executar a partir do código fonte

Para executar localmente a partir do código fonte:

root@kitploit:~
# Exporte as variáveis de ambiente
export MONGODB_CONNECTION_STRING=mongodb://localhost:27017
export SCAN_PERSISTENCE=enabled
export USER_MANAGEMENT=enabled

# Configure o MongoDB
$ docker run --name mongodb -p 27017:27017 mongo

# instale os pré-requisitos
$ python3 -m venv .venv && . .venv/bin/activate
(.venv) $ pip install -r requirements.txt
(.venv) $ ./install-checks.sh
# execute a API REST do IaC Scan Runner (adicione a flag --reload para aplicar alterações de código em tempo real)
(.venv) $ uvicorn src.iac_scan_runner.api:app

Uso e exemplos

Esta parte mostrará uma das possíveis implantações e pequenos exemplos de como usar as chamadas da API.

Primeiramente, clonaremos o repositório do iac scan runner e executaremos a API.

root@kitploit:~
$ git clone https://github.com/xlab-si/iac-scan-runner.git
$ docker compose up

Depois disso, você pode usar diferentes endpoints da API chamando localhost:8000. Você também pode navegar para localhost:8000/swagger ou localhost:8000/redoc e testar todos os endpoints da API lá. Neste exemplo, usaremos curl para chamar os endpoints da API.

  1. Vamos criar um projeto chamado test.
root@kitploit:~
curl -X 'POST' \
  'http://0.0.0.0/project?creator_id=test' \
  -H 'accept: application/json' \
  -d ''

O id do projeto será retornado para nós. Para este exemplo, o id do projeto é 1e7b2a91-2896-40fd-8d53-83db56088026.

  1. Por exemplo, digamos que queremos iniciar todas as verificações exceto ansible-lint. Vamos desativá-lo.
root@kitploit:~
curl -X 'PUT' \
  'http://0.0.0.0:8000/projects/1e7b2a91-2896-40fd-8d53-83db56088026/checks/ansible-lint/disable' \
  -H 'accept: application/json'
  1. Agora que o projeto está configurado, podemos simplesmente escolher os arquivos que queremos analisar e compactá-los. Para o IaC-Scan-Runner funcionar, espera-se que os arquivos sejam arquivos compactados (geralmente arquivos zip). Neste caso, o tipo de resposta será json, mas é possível alterá-lo para html. Por favor, altere YOUR.zip para o caminho do seu arquivo.
root@kitploit:~
curl -X 'POST' \
  'http://0.0.0.0:8000/projects/1e7b2a91-2896-40fd-8d53-83db56088026/scan?scan_response_type=json' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F '[email protected];type=application/zip'

É isso.

Estendendo o fluxo de trabalho de verificação com novas ferramentas de verificação

Em determinado momento, pode ser necessário incluir novas ferramentas de verificação no fluxo de trabalho de verificação, com o objetivo de fornecer uma cobertura mais ampla dos padrões de IaC e tipos de projeto. Portanto, nesta subseção, uma sequência de etapas necessárias para esse fim é identificada e descrita. No entanto, as etapas precisam ser realizadas manualmente, conforme descrito, mas está planejado automatizar esse procedimento no futuro via API e fornecer uma interface amigável que auxilie o usuário ao importar novas ferramentas que se tornarão parte do catálogo disponível que compõe o fluxo de trabalho de verificação. A Figura 16 ilustra as etapas necessárias a serem seguidas para estender o fluxo de trabalho de verificação com uma nova ferramenta.

Etapa 1 – Adicionar a classe específica da ferramenta ao diretório checks
Primeiro, é necessário adicionar uma nova classe Python específica da ferramenta ao diretório checks dentro do código fonte do IaC Scan Runner: iac-scan-runner/src/iac_scan_runner/checks/new_tool.py
A classe de uma nova ferramenta herda a classe Check existente, que fornece a generalização das ferramentas do fluxo de trabalho de verificação. Além disso, é necessário fornecer implementação dos seguintes métodos:

  1. def configure(self, config_filename: Optional[str], secret: Optional[SecretStr])
  2. def run(self, directory: str) Enquanto o primeiro visa fornecer os parâmetros específicos necessários da ferramenta para configurá-la (como senhas, ids de cliente e tokens), o outro especifica como a própria ferramenta é invocada via API ou CLI e seu resultado bruto é retornado.

Etapa 2 – Adicionar a instância da classe da ferramenta de verificação dentro do construtor ScanRunner
Uma vez que a nova classe derivada de Check é adicionada ao código fonte do IaC Scan Runner, também é necessário modificar o código fonte de sua classe principal, chamada ScanRunner. Quanto às modificações desta classe, é necessário primeiro importar a classe específica da ferramenta, criar uma nova instância da classe da ferramenta de verificação e adicioná-la ao dicionário de verificações de IaC dentro de def init_checks(self). A. Importando a classe da ferramenta de verificação from iac_scan_runner.checks.tfsec import TfsecCheck B. Criando nova instância do objeto da ferramenta de verificação dentro de init_checks """Iniciar objetos de verificação predefinidos""" new_tool = NewToolCheck() C. Adicionando-a ao dicionário self.iac_checks dentro de init_checks

root@kitploit:~
    self.iac_checks = {
        new_tool.name: new_tool,
        …
    }

Etapa 3 – Adicionar a ferramenta de verificação à matriz de compatibilidade dentro da classe Compatibility
Por outro lado, dentro do arquivo src/iac_scan_runner/compatibility.py, o dicionário que representa a matriz de compatibilidade também deve ser estendido. Existem dois casos possíveis: a) um novo tipo de arquivo deve ser adicionado como chave, juntamente com a lista de ferramentas relevantes como valor b) uma nova ferramenta deve ser adicionada à lista de compatibilidade para o tipo de arquivo existente.

root@kitploit:~
    compatibility_matrix = {
        "new_type": ["new_tool_1", "new_tool_2"],
        …
        "old_typeK": ["tool_1", …  "tool_N", "new_tool_3"]
    }

Etapa 4 – Fornecer suporte para sumarização de resultados
Finalmente, a última etapa na sequência de modificações necessárias para a extensão do fluxo de trabalho de verificação é modificar a classe ResultsSummary (src/iac_scan_runner/results_summary.py). Precisamente, é necessário anexar uma parte do código ao seu método summarize_outcome que procurará por strings específicas que são específicas da ferramenta e podem ser usadas para identificar se a verificação passou ou falhou. Dentro do loop que percorre as verificações compatíveis, para cada nova ferramenta, a seguinte estrutura de if-else deve ser incluída:

root@kitploit:~
        if check == "new_tool":
            if outcome.find("Check pass string") > -1:
                self.outcomes[check]["status"] = "Passed"
                return "Passed"
            else:
                self.outcomes[check]["status"] = "Problems"
                return "Problems"

Licença

Este trabalho é licenciado sob a Apache License 2.0.

Contato

Você pode entrar em contato com a equipe xOpera enviando um e-mail para [email protected].

Agradecimentos

Este projeto recebeu financiamento do programa de investigação e inovação Horizon 2020 da União Europeia, sob o Acordo de Subvenção n.º 101000162 (PIACERE).

Baixar ferramenta