Skip to content

Security Scan - Docker & Terraform

Actions
Automated security scanning for Dockerfiles and Terraform using Hadolint, Trivy, and Terrascan with auto issue creation
1.0
Latest
Star (0)

Check Lint and Scan Docker/Terraform Vulnerabilities

GitHub Marketplace

Uma GitHub Action completa para verificar vulnerabilidades de segurança e problemas de lint em projetos Docker e Terraform. Esta action automatiza a análise de segurança usando ferramentas líderes da indústria e cria issues no GitHub automaticamente quando encontra problemas.

🚀 Funcionalidades

  • Scan de Dockerfiles:

    • Lint com Hadolint para verificar melhores práticas
    • Scan de vulnerabilidades de imagem com Trivy (severidade HIGH e CRITICAL)
  • Scan de Arquivos Terraform:

    • Análise de segurança com Terrascan (focado em AWS)
    • Scan de configuração com Trivy para detectar misconfigurações
  • Gerenciamento Automático de Issues:

    • Cria issues automaticamente quando encontra problemas
    • Reabre issues fechadas se o problema ainda existe
    • Organiza issues com labels (lint, docker-security, terraform-security)
    • Evita duplicação de issues existentes
  • Integração CI/CD:

    • Falha o job automaticamente se encontrar vulnerabilidades
    • Suporta projetos com ou sem Docker/Terraform
    • Pula verificações automaticamente se os arquivos não existirem

📋 Requisitos

  • Permissões do GitHub Token para criar/gerenciar issues
  • Acesso à internet para baixar as ferramentas de scan

📥 Inputs

Input Descrição Obrigatório Padrão
docker-context Diretório onde está o Dockerfile dentro do repositório Não .

🔧 Uso Básico

Exemplo 1: Verificação completa (Docker e Terraform)

name: Security Scan

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  security-scan:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      contents: read

    steps:
      - name: Check Lint and Scan Vulnerabilities
        uses: seu-usuario/linuxtips-actions-verify@v1

Exemplo 2: Especificando contexto do Dockerfile

jobs:
  security-scan:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      contents: read

    steps:
      - name: Check Lint and Scan Vulnerabilities
        uses: seu-usuario/linuxtips-actions-verify@v1
        with:
          docker-context: "./docker"

Exemplo 3: Apenas em Pull Requests

name: PR Security Check

on:
  pull_request:
    branches: [main]

jobs:
  security-check:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      contents: read

    steps:
      - name: Security Scan
        uses: seu-usuario/linuxtips-actions-verify@v1

🔍 O que a Action faz?

1. Instalação de Ferramentas

A action instala automaticamente:

  • Hadolint: Linter para Dockerfiles
  • Trivy: Scanner de vulnerabilidades e misconfigurações
  • Terrascan: Scanner de segurança para IaC (Infrastructure as Code)

2. Scan de Docker

  • Verifica se existe um Dockerfile no diretório especificado
  • Executa Hadolint para verificar melhores práticas
  • Constrói a imagem Docker
  • Escaneia a imagem com Trivy para vulnerabilidades HIGH e CRITICAL
  • Cria issues com label docker-security ou lint

3. Scan de Terraform

  • Verifica se existem arquivos .tf no repositório
  • Executa Terrascan para análise de segurança (focado em AWS)
  • Executa Trivy config para detectar misconfigurações
  • Cria issues com label terraform-security

4. Gerenciamento de Issues

  • Cria labels automaticamente se não existirem
  • Verifica se já existe uma issue com o mesmo título
  • Reabre issues fechadas se o problema ainda existe
  • Organiza issues por tipo (lint, docker-security, terraform-security)

5. Controle de Falhas

  • Cria um flag issues_found.flag quando encontra problemas
  • Falha o job se o flag existir, garantindo que vulnerabilidades bloqueiem o pipeline

🏷️ Labels Criadas

A action cria automaticamente as seguintes labels (se não existirem):

  • lint: Problemas de lint encontrados pelo Hadolint
  • docker-security: Vulnerabilidades encontradas em imagens Docker
  • terraform-security: Problemas de segurança em arquivos Terraform

⚙️ Permissões Necessárias

Certifique-se de que o workflow tem as seguintes permissões:

permissions:
  issues: write # Necessário para criar/gerenciar issues
  contents: read # Necessário para fazer checkout do código

📊 Exemplo de Issue Criada

Quando a action encontra um problema, ela cria uma issue no repositório com:

  • Título: Descritivo do problema encontrado
  • Corpo: Detalhes completos incluindo:
    • Severidade
    • Arquivo e linha onde o problema foi encontrado
    • Recomendações de correção
    • Links para documentação (quando disponível)
  • Label: Categorização apropriada (lint, docker-security, ou terraform-security)

🛡️ Boas Práticas

  1. Execute em Pull Requests: Configure a action para rodar em PRs para detectar problemas antes do merge
  2. Revisão de Issues: Revise as issues criadas regularmente e corrija os problemas
  3. Monitoramento: Use as issues como backlog de segurança
  4. Integração Contínua: Execute também em pushes para monitoramento contínuo

🔄 Comportamento

  • Se não houver Dockerfile: A action pula automaticamente as verificações Docker
  • Se não houver arquivos Terraform: A action pula automaticamente as verificações Terraform
  • Se não houver problemas: O job passa sem criar issues
  • Se houver problemas: O job falha e issues são criadas/reativadas

📝 Notas

  • A action usa GITHUB_TOKEN automaticamente (não precisa configurar)
  • As ferramentas são instaladas a cada execução (não são cached)
  • Issues duplicadas são evitadas através da verificação de títulos
  • A action funciona apenas em runners Linux (Ubuntu)

🤝 Contribuindo

Contribuições são bem-vindas! Por favor, abra uma issue ou pull request.

📄 Licença

[Especifique a licença do seu projeto]

🔗 Links Úteis

Security Scan - Docker & Terraform is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Automated security scanning for Dockerfiles and Terraform using Hadolint, Trivy, and Terrascan with auto issue creation
1.0
Latest

Security Scan - Docker & Terraform is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.