Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Terraform com IA: Explorando Práticas de DevSec...

Terraform com IA: Explorando Práticas de DevSecOps com Prompt Engineering no GitHub Copilot Chat

Em um cenário global conectado com IA, a segurança está cada vez mais importante no processo de Infraestrutura como Código (IaC), a Inteligência Artificial e DevSecOps estão transformando a forma como times de plataforma constroem ambientes seguros e escaláveis. Nesta talk, vou explorar como o GitHub Copilot Chat pode ser um verdadeiro agente no seu fluxo com Terraform

Avatar for Amaury Borges Souza

Amaury Borges Souza

December 10, 2025
Tweet

More Decks by Amaury Borges Souza

Other Decks in Technology

Transcript

  1. © HASHICORP 3 Terraform com IA Explorando Práticas de DevSecOps

    com Prompt Engineering no GitHub Copilot.
  2. © HASHICORP 4 Lista de Tópicos • Por que Importa?

    • Por que IA + IaC + DevSecOps? • Ambiente Preparado • Prompt Engineering • Validação DevSecOps • GitHub Copilot • Terraform + IA Walkthrough
  3. © HASHICORP 6 • 75% representam o aumento nos incidentes

    na nuvem entre 2023 e 2024 (Crowdstrike). • 74% de todas as violações envolvem um elemento humano, problemas atribuídos a erros, uso indevido de privilégios ou credenciais roubadas, entre outros problemas (Verizon). • IA acelera revisão, correção e onboarding • DevSecOps = entregar rápido + seguro
  4. © HASHICORP 8 • Terraform com Documentação (CLI Básico) ◦

    HCL + terraform plan/apply local • Módulos e Registry ◦ Reuso e versionamento de componentes • Utilização de Agentes com IA ◦ LLM gera, revisa e corrige HCL via prompt • Pipelines Autônomos ◦ Agentes que propõem recursos, testam, aplicam com guard-rails
  5. © HASHICORP 10 • IaC = código ⇒ riscos •

    Escala da Infra > revisão humana • IA = pair 24/7 • DevSecOps = Shift Left contínuo • Segurança embutida, não colada
  6. © HASHICORP 11 • Segundo a RedHat, ”DevSecOps é uma

    abordagem para cultura, automação e design de plataforma que integra a segurança como responsabilidade compartilhada ao longo de toda o ciclo de SDLC”. • Com o tempo DevSecOps evoluiu como uma resposta às limitações de DevOps. • Permite às organizações reduzir o risco de vulnerabilidades de segurança.
  7. © HASHICORP 12 DevSecOps (Infracode) Exemplo • Liberdade de selecionar

    as ferramentas e o local exato onde deseja implementá-las. • Implementar uma solução centralizada de gerenciamento de vulnerabilidades pode ajudar a ter uma boa visão geral da segurança. dev.to
  8. © HASHICORP 14 • Plan Seguro ◦ Copilot Chat gera

    HCL com criptografia (KMS), tags obrigatórias e SG restritivo já embutidos. • Policy as Code ◦ Checkov, TFLint, Sentinel e OPA/Rego aplicam regras de compliance versionadas no repositório. • Security as Code ◦ Resultados SARIF vão para Code Scanning; Copilot Review explica falhas e sugere patches diretamente no PR.
  9. © HASHICORP 15 SAST (Static Application Security Testing) Análise estática

    do código antes do deploy. Para IaC, é a inspeção de arquivos “.tf”, .”yaml”, CloudFormation, Ansible, etc. • Permissões IAM excessivas • SGs abertos • Más práticas de naming/tagging • Feedback instantâneo; o dev corrige antes de commitar • Impede que o código inseguro chegue ao repositório
  10. © HASHICORP 16 Instalando a extensão TFSEC para o VSCODE

    tfsec adota uma abordagem que prioriza o desenvolvedor para escanear seus modelos Terraform; usando análise estática Garante que problemas de segurança possam ser detectados antes que suas alterações de infraestrutura entrem em vigor.
  11. © HASHICORP 17 Scanner de vulnerabilidade com TFSEC Como você

    pode ver, minhas configurações do Terraform foram verificadas e me notificou sobre os problemas presentes no código. A classificação da severidade como crítica, também foi enviado as orientações sobre como corrigir essa vulnerabilidade.
  12. © HASHICORP 18 SCA (Software Composition Analysis) Análise de componentes

    de software de terceiros (bibliotecas, dependências). Para IaC, ajuda a identificar pacotes vulneráveis em imagens, módulos e containers. • Dependências inseguras de módulos Terraform • Recursos que utilizam imagens de containers com CVEs • Referências a provedores ou registries • Problemas de configuração em templates de infraestrutura como código (Terraform, Kubernetes, CloudFormation, Azure Resource Manager).
  13. © HASHICORP 19 Instalando a extensão do Snyk para o

    VSCODE A extensão Snyk Visual Studio Code permite que você analise seu código, dependências de código aberto e configurações de Infraestrutura como Código (IaC). Com insights práticos diretamente na IDE do VSCode, você pode resolver problemas conforme eles surgem.
  14. © HASHICORP 21 • Extensões instaladas: Terraform, TFSec, GitHub Copilot

    Chat with GPT-4.1 (ask mode). • Diretório vazio terraform-aws-demo/. • Terraform & scanners instalados (terraform, tfsec, checkov, snyk) • AWS CLI instalado • Optei pelo VSCode como IDE
  15. © HASHICORP 23 IA e ML ajudam a desempenhar um

    papel transformador em DevSecOps. Essas tecnologias podem ser usadas para automatizar tarefas de segurança, identificar ameaças emergentes e prever vulnerabilidades. Ferramentas com tecnologia de IA podem analisar confirmações de código para identificar potenciais riscos de segurança e recomendar estratégias de correção.
  16. © HASHICORP 25 “Você é um especialista em Cloud Security.

    Analise todos os arquivos .tf deste repositório e: Identifique non-compliances segundo Checkov e CIS AWS Foundations. Classifique cada achado em HIGH / MEDIUM / LOW. Explique, em até 2 linhas, por que o recurso está incorreto. Proponha um snippet HCL corrigido. Responda em Markdown com uma tabela (Colunas: Severidade • Recurso • Regra • Explicação • Fix). Ignore itens triviais ou já justificáveis.” Prompt detalhado:
  17. © HASHICORP 27 • Subcampo do Machine Learning • Não

    é sobre apenas fazer perguntas • Quanto mais detalhes, melhor • O LLM precisa que você seja claro • Embute tags, KMS, logs no prompt
  18. © HASHICORP 28 • Ferramenta de IA generativa baseada em

    nuvem • Transforma prompts de linguagem natural em sugestões de codificação • Explica código e erros • Treinado em bilhões de linhas de código • Pair programmer 24×7
  19. © HASHICORP 29 Ferramenta de Programação utilizando IA Porcentagem GitHub

    Copilot 54,77% Tabnine 12,88% Amazon CodeWhisperer 5,14% Snyk Code 1,33% Codeium 1,25% Wispr AI 1,13% Replit Ghostwriter 0,83% Mintlify 0,52% Adrenaline 0,43% Rubberduck AI 0,37% Livro Programação Utilizando IA - Tom Taulli
  20. © HASHICORP 31 Segurança e Privacidade Soluções ✅ Estar atento

    à segurança e privacidade ✅ Evite informações sensíveis ou pessoal ✅ Nunca adicione segredos (passwords, chaves de API Exemplo: ⚠Prompt com informação sensível. # main.tf - EXEMPLO INSEGURO E A SER EVITADO! resource "aws_instance" "minha_vm" { ami = "ami-0abcdef1234567890" # Exemplo de AMI instance_type = "t2.micro" # ❌ ATENÇÃO NUNCA COLOQUE SUA CHAVE PRIVADA AQUI! key_name = "minha-chave-ssh-secreta-que-esta-hardcoded-aqui" tags = { Name = "VMTeste-Insegura" } }
  21. © HASHICORP 32 Segurança e Privacidade Soluções ✅ O Terraform

    tem a capacidade de referenciar valores de forma segura. ✅ Para senhas de banco de dados e outros segredos críticos HashiCorp Vault) ✅ Sua infraestrutura como código segura e as informações com o devido cuidado. Exemplo: ✅Prompt com Boas Práticas Seguro e Recomendado) # main.tf - EXEMPLO SEGURO E RECOMENDADO! # Use variáveis para referenciar a chave SSH, que será fornecida de forma segura. resource "aws_instance" "minha_vm_segura" { ami = "ami-0abcdef1234567890" instance_type = "t2.micro" # ✅ Use uma variável. O valor da chave virá de um método seguro (ex: CLI, Vault). key_name = var.ssh_key_name tags = { Name = "VMTeste-Segura" } }
  22. © HASHICORP 34 Iniciando com o VSCode + Copilot Como

    você pode ver, eu criei o arquivo “main.tf” vazio para começar a demonstração com a IA. O GitHub Copilot também fornece um recurso chamado “inline chat”, onde você pode inserir o prompt direto na console do VSCode.
  23. © HASHICORP 35 Copilot Criando o Código HCL Como você

    pode ver, O Copilot já criou o “main.tf” completo com os principais recursos que foram pedidos. Usei um prompt simples de exemplo. Ele criou o provider, recursos de redes, security groups, e o recurso de instância, tudo dentro do padrão HCL.
  24. © HASHICORP 36 Usando Copilot Chat para HCL Aqui neste

    exemplo temos um prompt mais detalhado, onde o Copilot Chat já entende o arquivo que eu estou usando para o código. Foi criado o arquivo de “variables.tf” com todas as entradas necessárias do “main.tf”. Veja que ele acelera o desenvolvimento da infraestrutura, mas a análise técnica nós precisamos fazer.
  25. © HASHICORP 37 Explorando Recursos do Copilot Aqui neste exemplo

    podemos demonstrar o uso de recursos adicionais do Copilot, como o “Explain”. Veja que ele cria uma breve explicação do código diretamente via chat, ele faz as observações sobre os recursos criados com detalhes.
  26. © HASHICORP 38 Documentação do Código com Copilot Chat Podemos

    entrar com um prompt sobre a documentação do código, onde ele escreve de forma detalhada cada recurso do Terraform. Isso possibilita mais entendimento do que estamos criando e para outros profissionais entenderem de forma mais fácil.
  27. © HASHICORP 39 Uso do Copilot Chat para buscar bugs

    Outro prompt que também é válido, é a busca de bugs no código, melhorias de qualidade e segurança. Veja que ele pegou no meu código alguns pontos de security group, onde está (0.0.0.0/0), expondo o risco de manter essa configuração.
  28. © HASHICORP 42 Pontos Importantes • Passe todos os detalhes

    e contexto do sua arquitetura • Trano • Explica código e erros • Treinado em bilhões de linhas de código • Pair programmer 24×7
  29. © HASHICORP 43 DAST (Dynamic Application Security Testing) Testes após

    o provisionamento, contra a infraestrutura de fato. • Varredura de portas/serviços (Nmap, Nessus) • Ferramentas cloud-native (AWS Inspector, Azure Defender) • Testes de corrosão de autenticação (ZAP, Burp) nos endpoints expostos • Permite encontrar falhas que estão visíveis apenas após o app estar sendo utilizado pelo seus usuários (pronto) • Não é recomendável que seja usado para substituir o penetration test (Pentest)