Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Amaury Borges Souza

December 10, 2025

Transcript

43 slides
  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)

More Decks by Amaury Borges Souza

Other Decks in Technology