Carlo Lemos
Segurança
em escala
O que vem por aí
Roteiro
- O problemaVulnerabilidades, o dilema do defensor, a velocidade dos ataques
- Achar antes do atacanteShift left, fuzzing, bug bounty, agentes de IA
- Eliminar classes de falhasSafe coding e Rust
- Defesa em camadasCadeia de suprimentos, ameaça interna, red team, incidentes
O problema
O que é uma vulnerabilidade
Um defeito que permite que alguém faça o sistema se comportar de um jeito não previsto.
Vulnerabilidade
A falha em si
Exploit
Código ou técnica que usa a falha
Zero-day
Falha explorada antes de existir correção
O problema
ACID: attacker-controlled input data
Para cada dado que o programa usa, a pergunta: o atacante consegue controlar isso?
?nome=relatorio.pdfParâmetro da URLACIDUser-Agent: …Header HTTPACIDfoto.pngConteúdo de um arquivo enviadoACIDlength = 65535Campo de tamanho num pacote de redeACIDBASE = "/uploads/"Constante no seu códigonãotime.now()Relógio do servidornãoVulnerabilidade costuma ser ACID chegando a um lugar sensível sem checagem: abrir um arquivo, montar SQL, copiar para a memória.
Termo do curso Vulnerabilities 1001, OpenSecurityTraining2 (ost2.fyi/Vulns1001)
O problema
Path traversal
nome = ../../etc/passwd/uploads/../../etc/passwd
= /etc/passwdEntrega um arquivo do sistema
O problema
Path traversal: a correção
nome = ../../etc/passwd/etc/passwd
está fora de /uploads403: pedido recusado
O problema
O dilema do defensor
O atacante precisa acertar
1 vezO defensor precisa acertar
sempreCada quadrado: um serviço, uma configuração, uma conta, uma dependência.
Fonte: Google, “How AI Can Reverse the Defender’s Dilemma”, 2024
O problema
Tempo até a exploração
Dias entre o patch e a primeira exploração
Negativo: a exploração começa antes de existir patch.
Com IA, um patch público pode virar exploit em cerca de 8 horas.
* Estimativa. Fontes: Mandiant M-Trends 2026; JFrog 2026
Primeira resposta
Achar antes do atacante
Achar antes do atacante
Shift left
Achar o bug o mais cedo possível, antes de ele chegar em produção.
../No baixar(): um teste no CI que pede ../../etc/passwd pega o bug antes do deploy.
Fonte: Google Cloud, “A guide to platform engineering”
Achar antes do atacante
Fuzzing guiado por cobertura
O fuzz target e o código testado
O fuzzer guarda o que avança
No chute, só com letras A–Z
1 em 457 milGuiado por cobertura
algumas centenasSanitizers: checagens extras que transformam erros silenciosos de memória em crashes visíveis.
Achar antes do atacante
Fuzzing em escala: OSS-Fuzz
vulnerabilidades corrigidas em cerca de 1.000 projetos open source
vulnerabilidades novas achadas com fuzz targets escritos por IA, uma delas no OpenSSL
Gratuito para projetos open source críticos desde 2016
Fontes: github.com/google/oss-fuzz; Google Security Blog, nov. 2024
Achar antes do atacante
Bug bounty
A empresa paga pesquisadores de fora por falhas reportadas de forma responsável.
No Google: o programa existe desde 2010. Em 2024, foram quase US$ 12 milhões para mais de 600 pesquisadores.
Com IA
Mais achados reais, como cerca de 50 bugs corrigidos no curl, e também muitos relatórios com falhas inventadas. O curl encerrou seu programa em janeiro de 2026.
Fontes: Google, mar. 2025; The Register, out. 2025 e jan. 2026
Achar antes do atacante
Big Sleep
Um agente de IA que investiga código como um pesquisador: lê, levanta hipóteses, testa e depura.
Ilustração do fluxo de trabalho, não um registro real. As ferramentas são as do agente: ler código, rodar Python, depurar, relatar.
SQLite, 2025
Segundo o Google, a primeira vez que um agente de IA impediu a exploração de uma falha real.
Fontes: Project Zero, 2024; Google, jul. 2025; TechRepublic
Achar antes do atacante
CodeMender
Um agente de IA que corrige falhas, aplicado ao baixar():
A correção proposta
Se o segundo agente achar que algo quebrou, o patch volta para ser refeito.
Fontes: Google DeepMind, out. 2025; Google Cloud, jul. 2026
Achar antes do atacante
Chrome: em junho, mais correções que em dois anos
Bugs de segurança corrigidos
23 versões anteriores
cerca de dois anosChrome 149 e 150
junho de 2026, com IACada bloco é uma versão do navegador.
Fontes: Google, via Security Affairs e TechCrunch, jul. 2026
Segunda resposta
Eliminar classes de falhas
Eliminar classes de falhas
Safe coding
Também chamado de shift down: a plataforma não deixa o erro ser escrito, em vez de cada dev ter que lembrar.
No baixar()
A API de arquivos recusa caminhos fora da pasta. O bug nem chega a existir.
Web
As APIs só aceitam HTML e SQL montados de forma segura. Injeção de SQL e XSS não têm por onde entrar.
Memória
Código novo em linguagem com segurança de memória, como Rust, e checagem de limites no C++ que já existe.
Fontes: C. Kern, CACM 2024; Google Cloud
Eliminar classes de falhas
Rust no Android
Parcela das vulnerabilidades causadas por erros de memória
menos falhas de memória por linha de código em Rust do que no C/C++ do Android.
Fontes: Google Security Blog, set. 2024 e nov. 2025
Eliminar classes de falhas
C++ endurecido
E o C++ que já existe? O Google ligou checagem de limites na biblioteca padrão, em produção.
Fonte: Google Security Blog, nov. 2024
Terceira resposta
Defesa em camadas
Defesa em camadas
Cadeia de suprimentos
Quatro perguntas sobre o código que você não escreveu:
O que eu uso?
Uma lista de todas as dependências, gerada a cada build
De onde veio?
Prova de que o binário saiu do código e do build esperados
Tem falha conhecida?
A lista comparada todo dia com bases públicas de falhas
Onde está?
Quando sai uma falha nova, achar os sistemas afetados
../No baixar(): se ele viesse de uma biblioteca, a lista diria em minutos quais sistemas usam a versão com falha.
Defesa em camadas
Ameaça interna
Objetivo: ninguém sozinho, nem uma conta invadida, põe código em produção.
Uma pessoa escreve a mudança
Outra pessoa aprova toda mudança
Gera uma prova assinada: este binário veio deste código
Confere a prova contra a política do serviço
O serviço roda com identidade própria, só com as permissões dele
Fonte: Google Cloud, “Binary Authorization for Borg”
Defesa em camadas
Ameaça interna
Objetivo: ninguém sozinho, nem uma conta invadida, põe código em produção.
Uma pessoa escreve a mudança
Outra pessoa aprova toda mudança
Gera uma prova assinada: este binário veio deste código
Confere a prova contra a política do serviço
O serviço roda com identidade própria, só com as permissões dele
✕ BarradoSem prova de que veio de código revisado.
Fonte: Google Cloud, “Binary Authorization for Borg”
Defesa em camadas
Red team
Um time interno que ataca a empresa como um adversário real, com um objetivo e sem avisar a defesa.
Entrada
Um e-mail de phishing ou uma senha vazada
✕ a defesa não viuMovimento
Entra na rede interna com a conta roubada
✕ a defesa não viuPrivilégio
Consegue permissões de administrador
✓ um alerta disparouObjetivo
Chegar aos dados de clientes
✓ a resposta foi acionadaExemplo ilustrativo. O resultado é saber em que ponto a detecção falhou, e corrigir.
No Google, o Red Team existe desde 2010 e simula de grupos estatais a funcionários mal-intencionados.
Fonte: Google, “Meet the team responsible for hacking Google”
Defesa em camadas
Resposta a incidentes
Alertas, logs e relatos
Uma pessoa coordena e define papéis
Conter, recuperar e comunicar
Postmortem sem culpa
../No baixar(): se alguém já leu /etc/passwd, é preciso conter, descobrir o que vazou, corrigir e avisar quem foi afetado.
Fonte: Google Cloud, “Data incident response process”
Defesa em camadas
Quem faz o quê
Depois de cada incidente: novas detecções, novos testes ou mudanças de processo.
Fontes: Google Blog; Google Cloud
Para levar
Resumo
Achar antes do atacante
Shift left, fuzzing contínuo, agentes de IA
Eliminar classes de falhas
Safe coding: APIs seguras, Rust, C++ endurecido
Defesa em camadas
Red team, deploy verificado, postmortem
Para se aprofundar
Fontes
- OpenSecurityTraining2, Vulnerabilities 1001 (o termo ACID)
- Google, “How AI Can Reverse the Defender’s Dilemma” (fev. 2024)
- Google Cloud, “A guide to platform engineering”
- C. Kern, “Developer Ecosystems for Software Safety”, CACM (jun. 2024)
- Google Cloud, “Data incident response process”
- Google, “Meet the team responsible for hacking Google” (2022); “Red teaming at scale” (2025)
- Google Cloud, “Binary Authorization for Borg”; Google Security Blog (2019)
- Google Security Blog, “Retrofitting spatial safety to hundreds of millions of lines of C++” (nov. 2024)
- Google Security Blog, Android: 76% → 24% (set. 2024); “Rust in Android” (nov. 2025)
- OSS-Fuzz (dados de maio de 2025); “Leveling Up Fuzzing” (nov. 2024)
- Google, “Vulnerability Reward Program: 2024 in review” (mar. 2025)
- The Register, 50 correções no curl (out. 2025); fim do bug bounty (jan. 2026)
- TechRepublic, Big Sleep e CVE-2025-6965 (jul. 2025); Project Zero, “Project Naptime” (jun. 2024) e “From Naptime to Big Sleep” (out. 2024)
- Google DeepMind, “Introducing CodeMender” (out. 2025); prévia no Google Cloud (jul. 2026)
- Chrome 149 e 150: Security Affairs; TechCrunch (jul. 2026)
- Mandiant, tempo até exploração 2023; M-Trends 2026
- JFrog, “The New Rules of Patching” (out. 2026)
Carlo Lemos
Obrigado
Perguntas?