CYBER·DEVSECOPS
Field Manual · Edição 2026

Da linha de comando ao pipeline blindado.

Uma trilha prática e sem enrolação que começa do zero — redes, Linux, criptografia — e sobe até engenharia de segurança avançada em DevSecOps e Cloud. Cada módulo termina onde o mercado começa: laboratório real + o que isso vale numa vaga.

24 módulos 50/50 Cyber · DevSecOps Foco: AppSec + Cloud Security ZeroAvançado++
▍ Leia antes de tudo

Você vai encontrar comandos, exploits e técnicas ofensivas reais nesta apostila. Elas existem para você entender como o ataque funciona e construir a defesa. Rode tudo apenas em máquinas suas, em labs isolados (VMs, containers descartáveis) ou em plataformas autorizadas. Testar sistema de terceiros sem permissão por escrito é crime (no Brasil, Lei 12.737/2012 e Marco Civil).

Como esta apostila funciona

A trilha é sequencial e cumulativa. Os quatro primeiros módulos são a base que todo o resto assume — se você já domina redes e Linux, pode passar rápido, mas não pule. A partir da Parte 2 os temas de Cibersegurança e DevSecOps se alternam e se costuram: você aprende a quebrar para saber o que blindar no pipeline.

Cada módulo traz quatro elementos fixos que você vai reconhecer pela cor:

▍ Laboratório

Um exercício reproduzível. É onde o aprendizado de verdade acontece.

▍ No mercado

Como esse tema aparece em vagas, entrevistas e no dia a dia da função.

▍ Armadilha

O erro que derruba iniciantes — e às vezes seniores — na prática.

▍ Conceito

A fundação teórica mínima para o comando não virar decoreba.

O mapa das duas carreiras-alvo

Esta edição foi calibrada para dois papéis que hoje pagam bem e têm alta demanda:

PapelO que você faz no dia a diaMódulos-chave
DevSecOps / AppSec EngineerIntegra segurança no ciclo de desenvolvimento: pipelines com SAST/DAST/SCA, gestão de segredos, revisão de código, threat modeling, correção com os times de dev.05–06, 09–15, 20
Cloud Security EngineerProtege ambientes AWS/GCP/Azure e Kubernetes: IAM, network, CSPM/CNAPP, detecção, resposta a incidentes na nuvem, IaC seguro.12–19, 21–22

A boa notícia: os dois se sobrepõem muito. Container security, IaC, supply chain e detecção servem aos dois. Você sai empregável nos dois com a mesma apostila.

Parte 1 — Fundamentos

A base que ninguém pode pular

Segurança é a arte de entender um sistema melhor do que quem o construiu. Antes de proteger ou atacar qualquer coisa, você precisa saber como pacotes viajam, como o Linux decide quem pode o quê, e por que a criptografia funciona. Aqui está o piso.


MÓDULO01

Redes: TCP/IP, DNS, HTTP e TLS

Objetivo: enxergar o que acontece "no fio" — porque toda vulnerabilidade de rede, todo firewall e todo mTLS partem daqui.

Nível▮▮▮▮▮
Tempo~8h
Pré-requisitoNenhum
RelevânciaBaseCloud

O modelo mental: camadas

Uma rede é uma pilha de abstrações. Cada camada só conversa com a de baixo. Você não precisa decorar o modelo OSI de 7 camadas — precisa do modelo TCP/IP prático de 4:

Link (Ethernet/Wi-Fi)
Move quadros entre placas de rede vizinhas usando endereços MAC. É onde vive o ARP — e o ataque de ARP spoofing.
Internet (IP)
Roteia pacotes entre redes usando endereços IP. Não garante entrega nem ordem. IPv4 (192.168.0.1) e IPv6 (2001:db8::1).
Transporte (TCP/UDP)
TCP dá conexão confiável e ordenada (handshake SYN → SYN-ACK → ACK). UDP é "atira e esquece" — rápido, sem garantia (DNS, QUIC, jogos).
Aplicação (HTTP, DNS, TLS)
O que o software fala: requisições HTTP, resolução de nomes, e-mail. TLS se encaixa aqui protegendo o que está acima dele.

Portas, sockets e o que "escuta" numa máquina

Um serviço abre uma porta (0–65535) e fica escutando. IP + porta = socket. Web = 80/443, SSH = 22, DNS = 53. Metade do trabalho de recon é descobrir quais portas estão abertas. Veja o que sua própria máquina expõe:

bash — inspeção local
# O que está escutando, com processo dono (Linux)
sudo ss -tulpn

# Testar conectividade e caminho até um host
ping -c 4 example.com
traceroute example.com          # mostra cada salto (hop)

# Abrir um socket "na unha" para falar HTTP cru
printf 'GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n' | nc example.com 80

DNS: a lista telefônica (e um alvo constante)

Nomes viram IPs via DNS. A resolução recursiva passa por raiz → TLD → autoritativo. Registros que importam em segurança: A/AAAA (IP), CNAME (apelido — vetor de subdomain takeover), MX (e-mail), TXT (SPF/DKIM/DMARC — antispoofing), NS (delegação).

bash — enumeração DNS
dig +short A example.com
dig +short TXT example.com         # SPF/DMARC ficam aqui
dig +short NS example.com
dig +trace example.com            # mostra a cadeia de resolução inteira

HTTP e TLS na prática

HTTP é texto: método (GET, POST), caminho, cabeçalhos, corpo. Status importam: 200 ok, 301/302 redirect, 401/403 auth, 500 erro do servidor. TLS envolve o HTTP em criptografia (HTTPS = HTTP sobre TLS). O handshake TLS negocia versão, cifra e valida o certificado do servidor contra uma CA confiável.

bash — inspecionar HTTP e TLS
# Ver headers da resposta (segurança mora aqui)
curl -sI https://example.com

# Inspecionar o certificado e a cadeia TLS
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates

Headers de segurança que você vai passar a exigir de toda aplicação: Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, Referrer-Policy. A ausência deles já é um achado de auditoria.

▍ Laboratório 01

Instale o Wireshark. Capture o tráfego enquanto acessa um site HTTP simples e depois um HTTPS. Localize o three-way handshake TCP, identifique a requisição HTTP em texto claro no primeiro caso, e confirme que no HTTPS o conteúdo aparece cifrado após o Client Hello / Server Hello. Escreva 5 linhas explicando a diferença que você viu.

▍ No mercado

Em entrevista de Cloud Security você vai desenhar uma VPC, explicar security groups vs. NACLs e por que 0.0.0.0/0 na porta 22 é um pecado. Nada disso faz sentido sem este módulo. "Explique o que acontece quando você digita uma URL e aperta Enter" é a pergunta clássica — e uma boa resposta passa por DNS, TCP, TLS e HTTP nesta ordem.

▍ Armadilha

Confundir criptografia (TLS) com autenticação. TLS garante que o canal é privado e que o servidor é quem diz ser — não garante que o dado é legítimo nem que o usuário é quem afirma. Aplicação atrás de HTTPS ainda precisa de autenticação e autorização próprias.

MÓDULO02

Linux operacional & shell

Objetivo: viver no terminal. Servidores, containers e pipelines são Linux — fluência aqui é inegociável.

Nível▮▮▮▮▮
Tempo~12h
Pré-requisitoM01
RelevânciaBaseDevSecOps

O sistema de arquivos e a filosofia "tudo é arquivo"

No Linux, dispositivos, processos e sockets aparecem como arquivos. Diretórios que você precisa conhecer: /etc (configuração), /var/log (logs — sua fonte forense), /home (usuários), /proc e /sys (kernel e processos em tempo real), /tmp (temporário e mundialmente gravável — vetor comum).

Navegação, busca e o poder dos pipes

A força do shell é compor ferramentas pequenas com o pipe |. Cada comando faz uma coisa; você encadeia.

bash — sobrevivência no terminal
find /var/www -name "*.php" -mtime -7   # arquivos php mudados nos últimos 7 dias
grep -rniE "password|api_key|secret" .   # caça a segredos hardcoded

# pipeline: top 10 IPs que mais bateram no nginx
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

# só as linhas 401/403 (tentativas de acesso negado)
grep -E ' (401|403) ' /var/log/nginx/access.log | wc -l

Processos, jobs e serviços

Você precisa ver o que roda, matar o que trava e entender serviços gerenciados pelo systemd.

bash — processos & serviços
ps aux --sort=-%cpu | head        # quem consome CPU
sudo systemctl status ssh          # estado de um serviço
sudo journalctl -u ssh --since "1 hour ago"   # logs do serviço
lsof -i :443                       # que processo usa a porta 443

Scripting: automação é metade do trabalho

Um script defensável tem set -euo pipefail (falha cedo, falha alto). DevSecOps é, em grande parte, escrever automações confiáveis.

verifica-headers.sh
#!/usr/bin/env bash
set -euo pipefail
url="${1:?uso: ./verifica-headers.sh https://host}"
faltando=()
for h in strict-transport-security content-security-policy x-content-type-options; do
  if ! curl -sI "$url" | grep -qi "^$h:"; then
    faltando+=("$h")
  fi
done
if [ ${#faltando[@]} -eq 0 ]; then echo "OK: headers presentes";
else echo "FALTANDO: ${faltando[*]}"; exit 1; fi
▍ Laboratório 02

Suba uma VM Ubuntu (ou um container docker run -it ubuntu bash). Crie o script acima, dê permissão de execução e rode contra 3 sites. Depois, escreva um one-liner que liste os 5 usuários com shell de login em /etc/passwd. Dica: grep por /bin/bash ou /bin/sh no final da linha.

▍ No mercado

Recrutadores testam Linux com problemas ao vivo: "tem um processo consumindo 100% de CPU, ache e explique". Fluência em grep, awk, find, journalctl e ss separa quem "sabe segurança em teoria" de quem opera. Bônus enorme: saber ler logs rápido é a base de resposta a incidentes.

▍ Armadilha

rm -rf com variável não validada (rm -rf $DIR/ quando $DIR está vazio = rm -rf /). Sempre cite variáveis com aspas ("$DIR") e use set -u para que variável indefinida quebre o script antes do estrago.

MÓDULO03

Sistemas: processos, permissões & hardening

Objetivo: dominar o modelo de permissões do Linux — a espinha dorsal de privilege escalation e de todo hardening.

Nível▮▮▮▮▮
Tempo~10h
Pré-requisitoM02
RelevânciaBaseDevSecOps

Usuários, grupos e o modelo de permissão

Todo arquivo tem dono, grupo e "outros", cada um com read/write/execute. rwxr-x--- = dono lê/escreve/executa, grupo lê/executa, outros nada. Em octal: 750. Isso é o coração do controle de acesso — e do que um atacante busca burlar.

bash — permissões
chmod 640 config.env          # dono rw, grupo r, outros nada
chown app:app config.env
umask 027                     # novos arquivos nascem sem permissão p/ "outros"

SUID, sudo e escalada de privilégios

O bit SUID faz um binário rodar com o dono dele (geralmente root), não com quem o executa. É necessário para coisas como passwd, mas um SUID mal configurado é o caminho clássico de escalada. A caça a esses arquivos é rotina em pentest e em hardening.

bash — caça a escalada
# todos os binários SUID do sistema
find / -perm -4000 -type f 2>/dev/null

# o que este usuário pode rodar como root
sudo -l
▍ Referência de campo

Quando encontrar um SUID incomum, consulte GTFOBins: um catálogo de binários Unix que podem ser abusados para escapar de restrições. É a primeira parada de todo pentester — e a checklist do defensor para saber o que remover.

Hardening de um servidor Linux

Reduzir superfície de ataque = princípio do menor privilégio aplicado ao sistema inteiro.

  • Desabilitar login SSH por senha e por root; usar apenas chaves
  • Firewall padrão-negar (ufw default deny incoming)
  • Atualizações automáticas de segurança (unattended-upgrades)
  • Remover pacotes e serviços não usados
  • Habilitar auditd/journald e enviar logs para fora da máquina
  • Aplicar um benchmark CIS ou usar lynis audit system como baseline
/etc/ssh/sshd_config — trechos-chave
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
MaxAuthTries 3
AllowUsers deploy
▍ Laboratório 03

Numa VM, rode find / -perm -4000 -type f 2>/dev/null e liste os SUIDs. Instale o Lynis (sudo lynis audit system) e anote o "hardening index". Aplique 3 recomendações e rode de novo — o número deve subir. Documente antes/depois.

▍ No mercado

"Hardening" e "CIS Benchmark" são termos que aparecem literalmente em job descriptions de Cloud/DevSecOps. Saber transformar um benchmark CIS em configuração real (e depois em código, no módulo 14) é exatamente o que diferencia um engenheiro de segurança de um analista.

▍ Armadilha

chmod 777 "para funcionar logo". Isso dá escrita a qualquer usuário/processo do sistema, incluindo o comprometido. Se algo "só funciona com 777", o problema é o dono/grupo errado — corrija a causa, não abra tudo.

MÓDULO04

Criptografia aplicada & PKI

Objetivo: usar criptografia corretamente — hashing, simétrica, assimétrica, certificados — sem virar "quem inventa o próprio algoritmo".

Nível▮▮▮▮▮
Tempo~10h
Pré-requisitoM01
RelevânciaBaseAppSecCloud

Os três pilares e para que servem

Hashing (SHA-256, BLAKE2)
Mão única: verifica integridade e "impressão digital". Não é criptografia. Para senhas, use funções lentas e com sal: bcrypt, scrypt ou Argon2id — nunca SHA puro.
Simétrica (AES-GCM, ChaCha20-Poly1305)
Uma chave cifra e decifra. Rápida, para dados em repouso e em massa. Prefira modos autenticados (AEAD) que também garantem integridade.
Assimétrica (RSA, ECDSA, Ed25519)
Par de chaves pública/privada. Resolve troca de chave e assinatura digital. A base de TLS, SSH, JWT assinado e assinatura de artefatos.

Confidencialidade, integridade, autenticidade

Criptografia entrega objetivos, não "segurança" genérica. Cifrar dá confidencialidade. MAC/assinatura dá integridade + autenticidade. Quase todo bug de cripto vem de confundir isso — por isso AEAD (que faz os dois de uma vez) é o default moderno.

bash — hashing e chaves na prática
# impressão digital de um arquivo
sha256sum artefato.tar.gz

# par de chaves moderno para SSH (Ed25519)
ssh-keygen -t ed25519 -C "deploy@ci"

# hash de senha com Argon2 (via ferramenta argon2)
echo -n "minhasenha" | argon2 "$(openssl rand -hex 16)" -id -t 3 -m 16

PKI, certificados e a cadeia de confiança

Um certificado X.509 amarra uma chave pública a uma identidade (domínio), assinado por uma Autoridade Certificadora (CA) em quem seu sistema confia. Cadeia: certificado do site → CA intermediária → CA raiz (no seu truststore). Se qualquer elo falhar (expirado, hostname errado, CA desconhecida), a validação quebra. Isto é o que sustenta TLS e, mais adiante, o mTLS de Zero Trust (módulo 21).

bash — gerar uma CA e um cert (lab local)
# CA raiz de laboratório
openssl req -x509 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt \
  -days 365 -subj "/CN=Lab Root CA"

# chave + CSR do serviço
openssl req -newkey rsa:2048 -nodes -keyout svc.key -out svc.csr \
  -subj "/CN=svc.local"

# CA assina o cert do serviço
openssl x509 -req -in svc.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
  -out svc.crt -days 90

JWT: onde AppSec encontra cripto

Tokens JWT são três partes base64: header, payload, assinatura. A assinatura (HMAC ou assimétrica) garante que ninguém alterou o payload. Vulnerabilidades famosas: aceitar alg: none, confundir chave pública com segredo HMAC (algorithm confusion), ou não validar expiração. Você vai explorar e corrigir isso no módulo 06.

▍ Laboratório 04

Gere a CA e o certificado do serviço acima. Depois rode openssl verify -CAfile ca.crt svc.crt e confirme o "OK". Em seguida, edite 1 byte do svc.crt e rode de novo — observe a falha de validação. Isso é integridade criptográfica na prática.

▍ No mercado

Ninguém vai te pedir para implementar AES do zero — pelo contrário, "não role sua própria cripto" é a regra. O que se espera é usar bibliotecas maduras corretamente: escolher Argon2 para senhas, AEAD para dados, gerenciar rotação de certificados, e reconhecer más práticas em code review. Em Cloud, isso vira KMS, envelope encryption e gestão de chaves — tudo assentado neste módulo.

▍ Armadilha

Guardar senha com md5 ou sha256 "porque é hash". Hashes rápidos são feitos para velocidade — ótimo para atacante que testa bilhões por segundo. Senha exige função lenta e com sal (Argon2id). Confundir isso é um dos achados mais comuns em AppSec.

Parte 2 — Cibersegurança ofensiva & defensiva

Aprender a quebrar para saber blindar

Você não protege o que não entende. Esta parte te dá o olhar do atacante — modelagem de ameaças, as vulnerabilidades web que mais causam vazamentos, e o fluxo de um pentest — e o olhar do defensor: logs, detecção e resposta. Tudo isso alimenta diretamente as decisões que você vai automatizar no pipeline na Parte 3.


MÓDULO05

Modelagem de ameaças & AppSec (OWASP Top 10)

Objetivo: pensar como atacante de forma estruturada e conhecer as 10 classes de falha que dominam aplicações web.

Nível▮▮▮▮▮
Tempo~10h
Pré-requisitoM01, M04
RelevânciaAppSecBase

Threat modeling: STRIDE em 4 perguntas

Modelagem de ameaças é responder cedo, no design: o que estamos construindo? o que pode dar errado? o que faremos a respeito? fizemos um bom trabalho? O mnemônico STRIDE te dá as categorias de "o que pode dar errado":

LetraAmeaçaViolaContramedida típica
SSpoofing (fingir ser outro)AutenticidadeAutenticação forte, MFA
TTampering (adulterar dados)IntegridadeAssinaturas, validação, hashing
RRepudiation (negar ação)Não-repúdioLogs assinados, auditoria
IInformation disclosureConfidencialidadeCriptografia, controle de acesso
DDenial of ServiceDisponibilidadeRate limiting, autoscaling, WAF
EElevation of privilegeAutorizaçãoMenor privilégio, checagens server-side

Na prática você desenha um data flow diagram (usuário → API → banco → serviços externos), marca as fronteiras de confiança (trust boundaries) e aplica STRIDE em cada travessia. É barato fazer no whiteboard e caro descobrir em produção.

OWASP Top 10 — o vocabulário obrigatório

É a lista de referência das categorias de risco mais críticas em aplicações web. Você precisa reconhecer cada uma de cor:

A01 Broken Access Control
Usuário acessa o que não deveria (IDOR, falta de checagem server-side). O nº1 hoje.
A02 Cryptographic Failures
Dado sensível sem cripto, hash fraco de senha, TLS mal configurado (módulo 04).
A03 Injection
SQLi, comando, LDAP — entrada não confiável interpretada como código.
A04 Insecure Design
Falha na arquitetura, não no código. É onde threat modeling atua.
A05 Security Misconfiguration
Defaults inseguros, buckets públicos, headers ausentes, debug ligado.
A06 Vulnerable Components
Dependência com CVE conhecido. Resolvido por SCA (módulo 11).
A07 Identification & Auth Failures
Sessão fraca, brute force sem limite, JWT mal validado.
A08 Software & Data Integrity
Update/deploy sem verificação de integridade — supply chain (módulo 15).
A09 Logging & Monitoring Failures
Ataque sem deixar rastro visível. Blue team (módulo 08).
A10 SSRF
Servidor forçado a fazer requisições internas — crítico em nuvem (metadata endpoint).
▍ Laboratório 05

Escolha um app que você já usou (um e-commerce simples serve). Desenhe o data flow em papel: cliente, servidor web, API, banco, gateway de pagamento. Marque as trust boundaries e liste uma ameaça STRIDE por travessia com sua contramedida. Esse artefato é literalmente o que um AppSec Engineer entrega.

▍ No mercado

"Faça o threat model deste sistema" é um exercício comum em entrevistas de AppSec/DevSecOps sênior. Saber conduzir uma sessão de threat modeling (com devs, não contra eles) é uma habilidade de engenheiro e a ponte natural para "shift-left". Cite STRIDE, DFDs e OWASP e você fala a língua da vaga.

▍ Armadilha

Tratar o OWASP Top 10 como checklist de conformidade. Ele é um ponto de partida de conscientização, não uma auditoria completa. Passar "os 10" não significa estar seguro — muitos incidentes reais moram em lógica de negócio, fora da lista.

MÓDULO06

Vulnerabilidades web na prática

Objetivo: explorar e corrigir as falhas web mais frequentes — injeção, XSS, SSRF, IDOR e falhas de autenticação — em lab.

Nível▮▮▮▮
Tempo~16h
Pré-requisitoM05
RelevânciaAppSec

Injeção SQL — a mãe dos exemplos

Acontece quando entrada do usuário é concatenada numa query. Se o código faz "SELECT * FROM users WHERE nome='" + input + "'", o input ' OR '1'='1 transforma a condição em sempre-verdadeira. A correção não é "filtrar aspas" — é separar código de dados com queries parametrizadas.

python — inseguro vs. seguro
# ❌ VULNERÁVEL — concatenação
cur.execute(f"SELECT * FROM users WHERE email='{email}'")

# ✅ SEGURO — query parametrizada (o driver escapa)
cur.execute("SELECT * FROM users WHERE email=%s", (email,))

XSS — quando o navegador executa o que não devia

Cross-Site Scripting injeta JavaScript que roda no navegador da vítima (roubo de sessão, keylogging). Tipos: refletido (na resposta imediata), armazenado (salvo no banco, atinge todos) e DOM-based (no client). Defesa em camadas: escape de saída conforme o contexto (HTML, atributo, JS), Content-Security-Policy, e cookies HttpOnly.

exemplos de payload & defesa
# payload de teste clássico (refletido)
<script>alert(document.cookie)</script>

# defesa: CSP restritiva no header de resposta
Content-Security-Policy: default-src 'self'; script-src 'self'

SSRF — o servidor como seu proxy

Server-Side Request Forgery faz a aplicação buscar uma URL que o atacante controla. Em nuvem, o alvo é o endpoint de metadados (169.254.169.254), que pode vazar credenciais temporárias da instância. É por isso que SSRF é catastrófico em AWS/GCP e entrou no Top 10. Defesa: allowlist de destinos, bloquear IPs internos/link-local, e usar IMDSv2 (módulo 17).

IDOR & Broken Access Control

Se /api/pedido/1001 mostra o pedido de outro usuário só trocando o número, é IDOR. A causa: o servidor confia no ID sem checar se aquele usuário pode ver aquele recurso. A correção é sempre server-side: valide a posse do objeto em toda requisição, nunca esconda o botão e ache que basta.

Falhas de autenticação e JWT

Retomando o módulo 04: um JWT que aceita {"alg":"none"} ignora a assinatura — qualquer um forja um admin. Outra: servidor que valida token HMAC usando a chave pública como segredo. Sempre fixe o algoritmo esperado no servidor e valide exp, iss e aud.

▍ Laboratório 06

Suba o OWASP Juice Shop (docker run -d -p 3000:3000 bkimminich/juice-shop) — um app deliberadamente vulnerável. Complete os desafios de SQLi (login bypass), XSS refletido e Broken Access Control. Depois, para cada um, escreva a correção que você recomendaria em code review. Guarde isso: vira material de portfólio.

▍ Ferramenta

Instale o Burp Suite Community ou o OWASP ZAP como proxy interceptador. Ver e modificar cada requisição entre navegador e servidor é a habilidade central de web AppSec — e o ZAP ainda automatiza DAST no pipeline (módulo 11).

▍ No mercado

Vagas de AppSec pedem "capacidade de identificar e explicar vulnerabilidades OWASP e orientar a remediação". Ter um Juice Shop resolvido, um relatório de findings e a explicação da correção é um portfólio que fala mais que qualquer certificado. Bug bounty (HackerOne, plataformas éticas) é outra vitrine valiosa.

▍ Armadilha

Validar entrada só no front-end. JavaScript no cliente é sugestão, não segurança — o atacante fala direto com a API. Toda validação de segurança e autorização precisa ser refeita no servidor.

MÓDULO07

Pentest: recon → exploração → pós-exploração

Objetivo: entender o fluxo completo de um teste de intrusão para depois defender cada fase — em ambiente autorizado.

Nível▮▮▮▮
Tempo~14h
Pré-requisitoM02, M06
RelevânciaCyber
▍ Só em ambiente autorizado

Tudo aqui roda em labs seus (TryHackMe, HackTheBox, VulnHub, Juice Shop) ou com contrato de pentest assinado. Scan não autorizado já é ilícito em muitos casos.

As fases de um engajamento

Um pentest segue etapas bem definidas — o mesmo mapa que o defensor usa para saber onde plantar detecção:

FaseObjetivoExemplo de técnica
1. ReconColetar info sem/pouco tocar o alvoOSINT, subdomínios, DNS
2. ScanningMapear portas, serviços, versõesnmap
3. EnumeraçãoDetalhar serviços e achar brechasFuzzing de diretórios, banners
4. ExploraçãoObter acesso inicialSQLi, RCE, credencial fraca
5. Pós-exploraçãoEscalar privilégio, persistir, pivotarSUID, tokens, movimento lateral
6. RelatórioDocumentar, priorizar, recomendarCVSS, PoC, remediação

Recon e scanning na prática

bash — recon básico (alvo autorizado)
# descoberta de hosts na sua rede de lab
nmap -sn 10.10.10.0/24

# portas + versões + scripts default
nmap -sV -sC -p- 10.10.10.5

# fuzzing de diretórios web
ffuf -u http://10.10.10.5/FUZZ -w /usr/share/wordlists/dirb/common.txt

O MITRE ATT&CK é o dicionário que conecta cada técnica ofensiva a táticas (Initial Access, Persistence, Lateral Movement…). Domine-o: é a linguagem comum de red e blue team, e você vai usá-lo para escrever detecções no módulo 22.

Pós-exploração e movimento lateral

Acesso inicial raramente é o objetivo — é o começo. O atacante escala privilégio (módulo 03), busca credenciais em memória e arquivos, e pivota para outras máquinas. Entender isso te ensina onde o defensor deve segmentar rede, rotacionar credenciais e monitorar.

▍ Laboratório 07

Crie conta gratuita no TryHackMe e complete a trilha "Pre Security" + a sala "Nmap". Depois, resolva uma máquina "Easy" ponta a ponta e escreva um mini-relatório com as 6 fases acima. Esse relatório é ouro para o portfólio e treina a habilidade mais subvalorizada: documentar.

▍ No mercado

Mesmo em vaga de DevSecOps/Cloud (não de pentest), pensar como atacante te faz um revisor de pipeline muito melhor: você prioriza os controles que realmente barram um kill chain. Certificações como eJPT (entrada) e OSCP (referência de mercado ofensivo) validam esse fluxo — mas o hands-on em THM/HTB é o que constrói a habilidade.

▍ Armadilha

Rodar nmap ou ferramentas ofensivas fora do seu lab "só para testar". Além de ilegal sem autorização, gera alertas e pode derrubar serviços. Escopo e autorização por escrito são a primeira regra da profissão.

MÓDULO08

Blue team: logging, detecção & resposta

Objetivo: enxergar o ataque acontecendo e reagir — a outra metade da segurança, e cada vez mais parte do DevSecOps.

Nível▮▮▮▮▮
Tempo~12h
Pré-requisitoM02, M07
RelevânciaCloudCyber

Sem log, sem defesa

A9 do OWASP existe por um motivo: você não responde ao que não vê. Um bom pipeline de observabilidade de segurança coleta, centraliza e correlaciona: logs de aplicação, sistema (auditd), rede (flow logs) e nuvem (CloudTrail). O agregador é o SIEM (Splunk, Elastic, Wazuh, Sentinel).

Do log ao alerta: detecção

Detecção é transformar sinal em alerta acionável. Regras respondem a padrões: 5 falhas de login seguidas de um sucesso (possível brute-force bem-sucedido), execução de whoami logo após acesso a um serviço web (possível RCE), criação de usuário IAM fora do horário. O padrão aberto para escrever isso é Sigma, que você converte para a query do seu SIEM.

regra Sigma — brute force SSH (exemplo)
title: Possível brute force SSH bem-sucedido
logsource:
  product: linux
  service: auth
detection:
  falhas:
    message|contains: 'Failed password'
  sucesso:
    message|contains: 'Accepted password'
  condition: falhas | count() > 5 near sucesso
level: high

Resposta a incidentes: o ciclo

Quando o alerta dispara, entra o processo de IR (referência: NIST SP 800-61). Memorize as fases:

FaseO que acontece
PreparaçãoPlaybooks, ferramentas, contatos, treinos prontos antes do incidente
Detecção & AnáliseConfirmar o incidente, escopo, severidade, linha do tempo
ContençãoIsolar o afetado (tirar da rede, revogar credencial) sem destruir evidência
ErradicaçãoRemover a causa: malware, conta comprometida, brecha
RecuperaçãoRestaurar operação com monitoramento reforçado
Lições aprendidasPost-mortem sem culpa: o que muda no processo/pipeline
▍ Laboratório 08

Instale o Wazuh (SIEM open-source, via Docker) e conecte um agente numa VM. Gere eventos: várias tentativas de SSH falhas e um sudo. Encontre os alertas no dashboard e escreva um mini-playbook de resposta para "brute force SSH detectado" com as 6 fases acima.

▍ No mercado

Detecção e IR estão migrando para o mundo cloud/DevSecOps: alertas viram código, playbooks viram automação (SOAR). Cloud Security Engineers frequentemente respondem a incidentes em CloudTrail/GuardDuty (módulo 19). Saber ler logs, escrever uma regra de detecção e conduzir um post-mortem sem culpa é diferencial forte.

▍ Armadilha

Na contenção, apagar a máquina comprometida "para resolver logo". Isso destrói evidência forense e impede entender o alcance real. Contenha isolando (snapshot + network off), preserve, só então erradique.

Parte 3 — DevSecOps

Segurança que anda na velocidade da entrega

DevSecOps é embutir segurança em cada etapa do ciclo de software — do commit ao deploy — de forma automatizada, para que "seguro" seja o caminho de menor esforço, não um portão no fim. Aqui você constrói o pipeline: cultura, segredos, os scanners (SAST/DAST/SCA), containers, Kubernetes, infraestrutura como código e a cadeia de suprimentos. É a espinha dorsal da vaga de AppSec/DevSecOps Engineer.


MÓDULO09

Cultura DevSecOps, SDLC seguro & shift-left

Objetivo: entender o modelo mental que sustenta tudo — por que segurança precisa ser de todos e antecipada.

Nível▮▮▮▮▮
Tempo~6h
Pré-requisitoM05
RelevânciaDevSecOps

De "gate no final" para "segurança contínua"

No modelo antigo, o time de segurança auditava no fim e barrava o release — gerando atrito, atraso e conflito. Shift-left move os controles para o começo do ciclo, onde corrigir é ordens de magnitude mais barato. DevSecOps é a cultura + automação que torna isso viável: a segurança vira código que roda no pipeline, e o dev recebe feedback em minutos, não semanas.

O SDLC seguro, etapa por etapa

EtapaAtividade de segurançaOnde nesta apostila
DesignThreat modeling, requisitos de segurançaM05
CódigoSecure coding, pre-commit hooks, secret scanningM10
Build/CISAST, SCA, gates de qualidadeM11
TestDAST, testes de segurança automatizadosM11
DeployIaC scanning, imagem assinada, config seguraM12–15
OperaçãoDetecção, resposta, gestão de vulnerabilidadesM08, M19

Medindo maturidade e escalando com "guardrails"

Modelos como OWASP SAMM e BSIMM medem a maturidade do programa. Mas o conceito operacional mais importante é guardrails, não gates: em vez de bloquear, você dá caminhos pavimentados seguros (templates de pipeline, módulos de IaC aprovados, imagens base endurecidas) para que o time de dev faça a coisa certa por padrão. Segurança que escala é segurança que se torna a opção fácil.

▍ Laboratório 09

Pegue um projeto simples seu (ou fork um repo pequeno). Mapeie o SDLC dele hoje e preencha a tabela acima: em que etapas não há nenhum controle de segurança? Escreva um "plano de shift-left" de 1 página priorizando os 3 controles de maior impacto/menor esforço. Esse documento é exatamente um entregável inicial de DevSecOps.

▍ No mercado

Empresas contratam DevSecOps não só por ferramentas, mas por quem consegue reduzir atrito entre dev e segurança. Falar em shift-left, guardrails, SAMM e "paved road" mostra que você pensa em programa, não só em scanner. Isso te posiciona acima do júnior que só sabe rodar uma ferramenta.

▍ Armadilha

Ligar todos os scanners no modo "bloqueia tudo" no dia 1. O resultado é uma enxurrada de falsos positivos, pipeline vermelho e devs desligando a segurança. Comece em modo relatório, calibre, e só então promova achados a bloqueantes de forma incremental.

MÓDULO10

Git seguro & gestão de segredos

Objetivo: proteger a origem de tudo — o código — e nunca mais vazar uma credencial em repositório.

Nível▮▮▮▮▮
Tempo~8h
Pré-requisitoM02, M04
RelevânciaDevSecOpsCloud

O vazamento nº1: segredos no repositório

Chaves de API, tokens e senhas commitados são uma das causas mais comuns de invasão. E o Git nunca esquece: apagar num commit novo não remove do histórico. A defesa é prevenir na origem com pre-commit hooks e escanear o histórico.

bash — barreiras contra segredos
# escanear o repo inteiro (histórico incluso)
gitleaks detect --source . --verbose

# instalar pre-commit hooks que barram o segredo antes do commit
pip install pre-commit
# .pre-commit-config.yaml aponta para gitleaks / detect-secrets
pre-commit install
▍ Armadilha

Se um segredo foi commitado, "removê-lo do histórico" não basta — assuma-o comprometido e rotacione a credencial imediatamente. Reescrever histórico (git filter-repo) é para limpeza; a resposta de segurança é revogar e trocar.

Onde segredos realmente devem morar

A regra: segredo nunca no código, nunca em imagem, nunca em log. Ele vive num cofre e é injetado em runtime. Escala de maturidade:

  • Variáveis de ambiente + .env fora do git — mínimo viável, ainda frágil.
  • Secret manager gerenciado — AWS Secrets Manager, GCP Secret Manager, Azure Key Vault. Rotação, auditoria, IAM.
  • HashiCorp Vault — cofre dedicado com segredos dinâmicos (credencial de banco criada sob demanda, válida por minutos) e leasing.
bash — Vault (conceito)
# app pede um segredo em runtime, autenticado por sua identidade
vault kv get -field=password secret/prod/db

# segredo dinâmico: credencial de banco efêmera, revogada sozinha
vault read database/creds/app-readonly

Proteção do repositório e da colaboração

  • Branch protection na main: exigir PR, review e checks verdes
  • Commits assinados (GPG/SSH/Sigstore) para autenticidade
  • 2FA obrigatório na organização e menor privilégio nos tokens de CI
  • Dependabot/Renovate para atualizar dependências (conecta ao M11)
  • CODEOWNERS para exigir review de segurança em paths sensíveis
▍ Laboratório 10

Num repo de teste, commite propositalmente uma "chave" falsa (ex.: AKIA...). Rode gitleaks detect e confirme o achado. Depois configure o pre-commit com gitleaks e tente commitar outro segredo — o commit deve ser bloqueado. Documente o antes/depois.

▍ No mercado

"Gestão de segredos" aparece em praticamente toda vaga de DevSecOps/Cloud. Conhecer Vault e os secret managers das nuvens, além de secret scanning no pipeline, é esperado. Bônus: entender segredos dinâmicos e OIDC (CI autenticando na nuvem sem chave estática, módulo 16) te coloca em nível sênior.

MÓDULO11

Pipeline security: SAST · DAST · SCA

Objetivo: construir um pipeline CI/CD que testa segurança automaticamente a cada commit — o entregável central da função.

Nível▮▮▮▮
Tempo~16h
Pré-requisitoM09, M10
RelevânciaDevSecOps

O trio de scanners e o que cada um vê

SAST — Static Application Security Testing
Analisa o código-fonte sem executar. Acha injeção, segredos, padrões inseguros. Rápido, cedo, mas gera falsos positivos. Ferramentas: Semgrep, CodeQL, SonarQube.
SCA — Software Composition Analysis
Examina suas dependências em busca de CVEs conhecidos (A06 do OWASP). Onde mora a maior parte do seu código-risco. Ferramentas: Trivy, Grype, Snyk, Dependabot.
DAST — Dynamic Application Security Testing
Testa a aplicação rodando, como um atacante externo. Acha problemas de runtime/config que o SAST não vê. Ferramentas: OWASP ZAP, Nuclei.

Nenhum sozinho é suficiente — eles têm ângulos complementares. Some IaC scanning (M14) e container scanning (M12) e você tem cobertura de ponta a ponta.

Um pipeline real (GitHub Actions)

Veja como isso vira YAML. Este é o tipo de artefato que você vai escrever e defender numa entrevista técnica:

.github/workflows/security.yml
name: security-scan
on: [push, pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      # secret scanning
      - name: Gitleaks
        uses: gitleaks/gitleaks-action@v2

      # SAST — regras da comunidade + próprias
      - name: Semgrep
        run: |
          pip install semgrep
          semgrep --config=auto --error .

      # SCA — dependências e imagem
      - name: Trivy (deps + fs)
        uses: aquasecurity/trivy-action@master
        with:
          scan-type: fs
          severity: HIGH,CRITICAL
          exit-code: '1'   # falha o build se achar HIGH/CRITICAL

Gates: quando quebrar o build?

Retomando o M09: nem todo achado bloqueia. Uma política sensata: bloquear segredo vazado e vuln CRITICAL com exploit conhecido sempre; para o resto, criar issue e dar prazo (SLA de remediação por severidade). A chave é triagem: reduzir ruído para que os alertas bloqueantes sejam confiáveis.

DAST no pipeline

DAST com ZAP (baseline)
# sobe a app efêmera, roda scan passivo/baseline, gera relatório
docker run --rm -t ghcr.io/zaproxy/zaproxy zap-baseline.py \
  -t http://staging.app.local -r zap-report.html
▍ Laboratório 11

Fork um projeto com dependências (Node ou Python). Crie o workflow acima no GitHub Actions. Provoque falhas: adicione uma dependência antiga com CVE e veja o Trivy quebrar o build; escreva uma regra Semgrep simples que pegue eval(. Ajuste a severidade até o pipeline ficar "verde por mérito". Publique o repo — é portfólio direto.

▍ No mercado

Este é o módulo que a vaga de DevSecOps quer ver. Um repositório público com pipeline de segurança funcional (SAST+SCA+secret+DAST), README explicando as decisões de gate, vale mais que dez linhas de currículo. Saber nomear Semgrep, Trivy, ZAP e explicar a diferença entre eles é pergunta de entrevista garantida.

▍ Armadilha

"Alert fatigue": ligar tudo em bloqueante gera centenas de findings, o time ignora todos e a segurança perde credibilidade. Priorize por severidade + explorabilidade + exposição real. Um alerta que sempre importa vale mais que mil que ninguém lê.

MÓDULO12

Containers & Docker security

Objetivo: construir e rodar imagens de container seguras — a unidade de deploy padrão do mundo cloud-native.

Nível▮▮▮▮
Tempo~12h
Pré-requisitoM03, M11
RelevânciaDevSecOpsCloud

O que é (e o que não é) um container

Um container é um processo isolado por recursos do kernel — namespaces (o que ele vê) e cgroups (quanto ele usa) — compartilhando o kernel do host. Isso é fundamental: container não é VM. O isolamento é mais fino, então um escape de container atinge o host. Entender namespaces/cgroups é o que separa quem "usa Docker" de quem "protege Docker".

Anatomia de um Dockerfile seguro

Dockerfile — multi-stage, mínimo, não-root
# estágio de build
FROM golang:1.22 AS build
WORKDIR /src
COPY . .
RUN CGO_ENABLED=0 go build -o /app ./cmd

# imagem final mínima — sem shell, sem package manager
FROM gcr.io/distroless/static:nonroot
COPY --from=build /app /app
USER nonroot:nonroot        # nunca rode como root
ENTRYPOINT ["/app"]

Princípios embutidos aí: multi-stage (ferramentas de build ficam fora da imagem final), base mínima (distroless/alpine — menos pacotes, menos CVEs, sem shell para o atacante usar), usuário não-root, e imagem imutável (nada instalado em runtime).

Escaneando e endurecendo

bash — scan de imagem e runtime seguro
# CVEs na imagem (integra ao pipeline do M11)
trivy image minhaapp:latest --severity HIGH,CRITICAL

# rodar com privilégios reduzidos
docker run --read-only --cap-drop ALL \
  --security-opt no-new-privileges \
  --user 10001 minhaapp:latest
  • Nunca --privileged; drope todas as capabilities e adicione só as necessárias
  • Sistema de arquivos read-only; monte volumes específicos como writable
  • Nunca monte o docker.sock dentro de um container (= root no host)
  • Fixe a base por digest (@sha256:...), não por tag mutável
  • Escaneie na build E no registry; bloqueie push de imagem vulnerável
▍ Laboratório 12

Pegue uma imagem "gorda" (ex.: node:latest) e escaneie com Trivy — anote a contagem de CVEs. Reescreva o Dockerfile em multi-stage com base slim/distroless e usuário não-root. Escaneie de novo e compare a redução de vulnerabilidades e de tamanho. Esse "antes/depois" é uma história perfeita para entrevista.

▍ No mercado

Container security é interseção pura das duas carreiras-alvo. Vagas pedem "hardening de imagens, scanning e políticas de admissão". Saber explicar por que distroless reduz superfície, o perigo do docker.sock e como quebrar um container mal configurado (escape) te destaca imediatamente.

▍ Armadilha

latest em produção. A tag muda sob seus pés — build reproduzível vira impossível e você não sabe o que está rodando. Fixe por digest. E: root dentro do container + volume do host montado = comprometimento do host trivial.

MÓDULO13

Kubernetes security

Objetivo: proteger o orquestrador que roda a maioria das cargas cloud-native — RBAC, network policy, admission control.

Nível▮▮▮▮▮
Tempo~18h
Pré-requisitoM12
RelevânciaCloudDevSecOps

A superfície de ataque do cluster

Kubernetes tem muitas fronteiras: API server (o cérebro), etcd (o banco com todos os segredos), kubelet (agente em cada nó), e as cargas em si. A referência mental são os 4 C's: Cloud, Cluster, Container, Code — segurança é em camadas, de fora para dentro. Um pod comprometido não pode virar cluster comprometido.

RBAC: menor privilégio no cluster

RBAC controla quem faz o quê. O erro clássico é dar cluster-admin "para funcionar". Comece negando e conceda o mínimo por namespace.

role.yaml — leitura mínima em um namespace
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata: { namespace: app, name: pod-reader }
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["get", "list"]   # nada de create/delete/exec

Isolar cargas: Pod Security & Network Policy

Por padrão, todo pod fala com todo pod — péssimo. NetworkPolicy aplica micro-segmentação (base do Zero Trust, M21). Pod Security Standards (restricted) impedem pods privilegiados, root e escalada.

networkpolicy.yaml — nega tudo por padrão
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata: { name: default-deny, namespace: app }
spec:
  podSelector: {}
  policyTypes: [Ingress, Egress]   # sem regras = nega tudo; libere explicitamente

Admission control: a política que barra na porta

Admission controllers avaliam cada objeto antes de criá-lo. Com OPA/Gatekeeper ou Kyverno você impõe regras como "nenhuma imagem sem tag fixa", "nenhum container privilegiado", "todo pod tem limites de recurso". É o guardrail do M09 aplicado ao cluster — Policy as Code no runtime.

bash — checagem e scan do cluster
kubectl auth can-i --list           # o que ESTA identidade pode fazer
kube-bench                          # auditoria CIS do cluster
trivy k8s --report summary cluster # CVEs e misconfigs
▍ Laboratório 13

Suba um cluster local (kind ou minikube). Rode kube-bench e anote os fails. Aplique: um namespace com Pod Security "restricted", uma NetworkPolicy default-deny, e um Role de leitura. Instale o Kyverno e crie uma política que rejeite imagens com tag latest. Tente subir um pod violando cada regra e confirme o bloqueio.

▍ No mercado

Kubernetes security é dos temas mais bem pagos e demandados em Cloud Security. A certificação CKS (Certified Kubernetes Security Specialist) é referência forte. Vagas citam RBAC, network policies, Pod Security, OPA/Kyverno e runtime security (Falco, M22) explicitamente. Domínio aqui abre portas sênior.

▍ Armadilha

ServiceAccount token montado em todo pod + RBAC frouxo = um pod comprometido lê segredos e cria cargas no cluster inteiro. Desabilite automount onde não precisa (automountServiceAccountToken: false) e trate o token do pod como credencial sensível.

MÓDULO14

IaC security & Policy as Code

Objetivo: escanear e governar infraestrutura declarada em Terraform/CloudFormation antes que ela vire risco em produção.

Nível▮▮▮▮
Tempo~12h
Pré-requisitoM11, M16
RelevânciaCloudDevSecOps

Infra como código = risco como código (e correção como código)

Quando a infraestrutura é declarada em texto (Terraform, CloudFormation, Bicep), uma configuração insegura — bucket público, security group aberto, banco sem criptografia — vira um bug detectável antes do deploy. Esse é o shift-left mais poderoso da nuvem: você corrige no PR, não em produção.

terraform — o mesmo recurso, inseguro vs. seguro
# ❌ security group escancarado
ingress { from_port=22 to_port=22 protocol="tcp" cidr_blocks=["0.0.0.0/0"] }

# ✅ acesso restrito a uma rede conhecida
ingress { from_port=22 to_port=22 protocol="tcp" cidr_blocks=[var.bastion_cidr] }

Scanners de IaC

bash — scan de IaC
trivy config .           # misconfigs em TF/K8s/Docker
checkov -d .             # centenas de checks prontos + custom
tfsec .                  # foco em Terraform

Todos plugam no pipeline (M11) e falham o PR quando encontram uma política violada. A saída em formato SARIF integra ao GitHub Security, centralizando findings.

Policy as Code com OPA/Rego

Além de checks prontos, você escreve suas políticas organizacionais em Rego (linguagem do Open Policy Agent). Ex.: "todo bucket S3 desta org deve ter criptografia e bloqueio de acesso público". A mesma engine (OPA) governa Terraform no CI, admission no Kubernetes (M13) e autorização de API — um só vocabulário de política.

policy.rego — nega bucket público (conceito)
package terraform.s3
deny[msg] {
  bucket := input.resource.aws_s3_bucket[name]
  bucket.acl == "public-read"
  msg := sprintf("bucket %v não pode ser público", [name])
}
▍ Laboratório 14

Escreva um Terraform pequeno que cria um bucket S3 público e um security group com SSH aberto ao mundo (não aplique!). Rode checkov -d . e tfsec . — leia cada finding e corrija até passar. Depois adicione o scan ao workflow do M11 para que quebre o PR. Guarde como projeto de portfólio "IaC security gate".

▍ No mercado

IaC scanning é praticamente pré-requisito em Cloud/DevSecOps hoje. Terraform + Checkov/Trivy + OPA/Rego é uma combinação citada nominalmente em vagas. Saber escrever uma política custom em Rego (não só rodar checks prontos) é o que marca o nível sênior — porque toda empresa tem regras próprias.

▍ Armadilha

Escanear só o código IaC e esquecer o drift: alguém muda algo no console da nuvem à mão e a realidade diverge do código. IaC seguro no repo não garante nuvem segura — por isso você precisa de CSPM em runtime (M18) além do scan de pipeline.

MÓDULO15

Supply chain security: SBOM · SLSA · Sigstore

Objetivo: garantir integridade e proveniência de tudo que entra no seu software — o front de segurança que mais cresceu.

Nível▮▮▮▮▮
Tempo~12h
Pré-requisitoM11, M12
RelevânciaDevSecOps

Por que isso virou prioridade

Ataques como SolarWinds, Log4Shell e pacotes maliciosos em npm/PyPI mostraram que o elo mais fraco pode ser uma dependência ou o próprio build. Supply chain security (A08 do OWASP) responde a três perguntas: o que tem no meu software? de onde veio? posso provar que não foi adulterado?

SBOM: a lista de ingredientes

Um SBOM (Software Bill of Materials) é o inventário completo de componentes e versões, em formato padrão (CycloneDX, SPDX). Com ele, quando sai um novo CVE (tipo Log4Shell), você responde em minutos "estou afetado?" em vez de dias.

bash — gerar e consultar SBOM
syft minhaapp:latest -o cyclonedx-json > sbom.json   # gera o SBOM
grype sbom:sbom.json                                 # cruza com CVEs conhecidos

Assinatura e proveniência: Sigstore & SLSA

Sigstore/cosign assina artefatos (imagens, SBOMs) usando identidade — sem gerenciar chaves de longo prazo (keyless, via OIDC). O consumidor verifica antes de rodar. SLSA é um framework de níveis que atesta como o artefato foi construído (proveniência do build), dificultando adulteração no pipeline.

bash — assinar e verificar imagem
cosign sign minhaapp@sha256:abc...            # assina (keyless via OIDC do CI)
cosign verify minhaapp@sha256:abc... \
  --certificate-identity-regexp=".*" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

No Kubernetes, uma policy de admission (M13) pode exigir assinatura válida — nenhuma imagem não assinada roda. É o fechamento do círculo: build → assina → verifica → executa.

▍ Laboratório 15

Gere o SBOM de uma imagem sua com syft e rode grype em cima. Depois, num repo com GitHub Actions, use cosign para assinar a imagem no build (keyless) e verifique-a localmente. Documente a cadeia "gerou SBOM → escaneou → assinou → verificou". Poucos candidatos júnior/pleno têm isso no portfólio.

▍ No mercado

Regulação (ex.: exigências de SBOM em contratos, ordens executivas) e incidentes fizeram supply chain security explodir em demanda. Nomear CycloneDX, SLSA, Sigstore/cosign e explicar "keyless signing" te coloca à frente — é um tema recente que muitos seniores ainda estão aprendendo.

▍ Armadilha

Gerar SBOM uma vez e arquivar. SBOM só tem valor se for gerado a cada build, versionado junto ao artefato e consultável quando um CVE novo surge. SBOM parado é documentação morta.

Parte 4 — Cloud Security

Segurança onde a infraestrutura virou API

Na nuvem, tudo é uma chamada de API e uma configuração — o que torna o erro humano o principal vetor. Identidade é o novo perímetro. Esta parte cobre IAM, os controles nucleares das três grandes nuvens, as plataformas que verificam sua postura (CSPM/CNAPP) e como detectar e responder a incidentes cloud-native. É o núcleo da carreira de Cloud Security Engineer.


MÓDULO16

Fundamentos cloud & IAM

Objetivo: dominar o modelo de responsabilidade compartilhada e IAM — o controle mais importante e mais errado da nuvem.

Nível▮▮▮▮▮
Tempo~12h
Pré-requisitoM01, M04
RelevânciaCloud

Responsabilidade compartilhada

A nuvem protege "a infraestrutura da nuvem"; você protege "o que roda nela": suas configurações, dados, IAM e código. A maioria dos vazamentos famosos (buckets abertos) é falha do cliente, não do provedor. Saber onde termina a responsabilidade deles e começa a sua é a primeira pergunta de qualquer arquitetura.

IAM: identidade é o novo perímetro

Não existe mais "dentro da rede confiável". O que um ator pode fazer depende inteiramente da identidade e das políticas dela. Conceitos que você precisa dominar:

Principal
Quem age: usuário, grupo, role, service account, workload.
Policy
Documento (geralmente JSON) que concede/nega ações sobre recursos, com condições.
Role & assumption
Identidade temporária que um principal "assume" para obter permissões — base de acesso sem chave estática.
Menor privilégio
Conceder só o necessário. Ferramentas de "access analyzer" reduzem permissões com base no uso real.
política IAM (AWS) — menor privilégio
{
  "Effect": "Allow",
  "Action": ["s3:GetObject"],
  "Resource": "arn:aws:s3:::relatorios/*",
  "Condition": { "IpAddress": { "aws:SourceIp": "203.0.113.0/24" } }
}

Fim das chaves estáticas: OIDC & workload identity

O padrão moderno elimina credenciais de longa duração. Seu pipeline (GitHub Actions) autentica na nuvem via OIDC, recebendo credenciais temporárias — nada de AKIA... guardado em secret. Isso conecta diretamente ao M10 (segredos) e é hoje a resposta certa em entrevista para "como o CI acessa a AWS?".

▍ Laboratório 16

Crie uma conta free-tier (AWS ou GCP). Crie um usuário/role com política de menor privilégio para ler um bucket específico. Tente acessar outro recurso e confirme o "Access Denied". Depois, use o simulador de políticas (IAM Policy Simulator) para validar. Ative MFA e billing alerts antes de qualquer coisa.

▍ No mercado

IAM é o tema de Cloud Security. Vagas pedem desenho de políticas de menor privilégio, entendimento de assumption de roles e federação OIDC. A certificação de entrada mais valorizada é a AWS Security Specialty (ou a Solutions Architect Associate como base). Saber depurar "por que essa role não tem acesso?" é habilidade diária.

▍ Armadilha

Action: "*" / Resource: "*" "temporário" que vira permanente. Wildcards em IAM são a origem de escalada de privilégio na nuvem. E chave de acesso estática commitada (M10) numa conta com permissões amplas é a receita do vazamento clássico.

MÓDULO17

Núcleo de segurança AWS · GCP · Azure

Objetivo: conhecer os controles equivalentes nas três nuvens — rede, dados, logs, KMS — para não ficar preso a um provedor.

Nível▮▮▮▮
Tempo~16h
Pré-requisitoM16
RelevânciaCloud

Os mesmos conceitos, nomes diferentes

Aprenda os conceitos e a tradução entre nuvens vem fácil. Este é o mapa que te deixa "multi-cloud":

ConceitoAWSGCPAzure
Rede isoladaVPCVPCVNet
Firewall de instânciaSecurity GroupFirewall RulesNSG
Log de API/auditoriaCloudTrailCloud Audit LogsActivity Log
Gestão de chavesKMSCloud KMSKey Vault
Cofre de segredosSecrets ManagerSecret ManagerKey Vault
Detecção de ameaçasGuardDutySecurity Command CenterDefender for Cloud
Postura/complianceSecurity Hub / ConfigSCCDefender for Cloud

Os quatro controles que você sempre configura

  • Rede: segmentar com sub-redes privadas, security groups padrão-negar, sem SSH/RDP aberto ao mundo, endpoints privados para serviços gerenciados.
  • Dados: criptografia em repouso (KMS) e em trânsito (TLS) por padrão; bloqueio de acesso público em storage; versionamento.
  • Logs: CloudTrail/Audit Logs habilitados em todas as regiões, imutáveis, centralizados em conta separada.
  • Chaves: envelope encryption via KMS, rotação automática, políticas de chave restritas.

O clássico: SSRF + metadata (fechando o M06)

Instâncias expõem um endpoint de metadados com credenciais. Um SSRF que alcança 169.254.169.254 rouba essas credenciais. A defesa na AWS é IMDSv2 (exige token, bloqueia o ataque). Saber essa cadeia ataque→defesa é sinal de maturidade em cloud.

▍ Laboratório 17

Na sua conta free-tier: crie um bucket, confirme que o "block public access" está ligado e a criptografia habilitada. Habilite o CloudTrail (ou equivalente) e gere uma ação, depois encontre o evento no log. Force IMDSv2 numa instância. Anote o passo a passo — vira documentação de baseline seguro.

▍ No mercado

Foque em uma nuvem a fundo (AWS é a mais pedida no Brasil) e conheça o mapa das outras. Vagas listam serviços por nome: GuardDuty, KMS, Security Hub, Config. Ter um ambiente de baseline seguro montado (com IaC do M14) demonstra prática real, não só teoria de certificado.

▍ Armadilha

Deixar recursos rodando na free-tier e tomar uma fatura surpresa — ou pior, ter a conta comprometida e virar minerador. Sempre: MFA na conta root, billing alerts, e destruir o lab (terraform destroy) quando terminar.

MÓDULO18

Cloud-native security: CSPM · CWPP · CNAPP

Objetivo: entender as plataformas que verificam continuamente postura e cargas na nuvem em escala.

Nível▮▮▮▮
Tempo~10h
Pré-requisitoM14, M17
RelevânciaCloudDevSecOps

A sopa de siglas, decodificada

CSPM — Cloud Security Posture Management
Verifica configurações continuamente contra benchmarks (CIS) e acha o bucket público, o SG aberto, o log desligado — o drift que o M14 não pega. Ex.: Prowler, ScoutSuite, Wiz, Defender.
CWPP — Cloud Workload Protection Platform
Protege as cargas (VMs, containers, serverless): vulnerabilidades, runtime, comportamento anômalo.
CIEM — Cloud Infrastructure Entitlement Management
Foca em permissões: quem tem acesso excessivo, caminhos de escalada de privilégio no IAM.
CNAPP — Cloud-Native Application Protection Platform
A convergência de tudo acima numa plataforma, do código ao runtime. É a direção do mercado.

Na prática, com ferramentas abertas

Você não precisa de produto pago para aprender o conceito. O Prowler faz CSPM open-source direto contra sua conta:

bash — CSPM open-source
prowler aws --severity critical high   # auditoria de postura AWS
prowler aws --compliance cis_2.0_aws   # contra o benchmark CIS

# mapa de permissões e riscos IAM (ScoutSuite)
scout aws

O valor de uma CNAPP é correlação: unir "esse container tem CVE crítico" + "está exposto à internet" + "roda com role admin" = um caminho de ataque priorizado. Postura isolada gera milhares de alertas; correlação gera os 5 que importam.

▍ Laboratório 18

Rode o Prowler contra sua conta free-tier. Leia o relatório: quantos checks passam, quantos falham? Escolha 3 findings de severidade alta e corrija-os (idealmente via Terraform do M14, fechando o loop IaC→postura). Rode de novo e mostre a redução. Esse relatório é um entregável real de Cloud Security.

▍ No mercado

"CSPM", "CNAPP" e nomes como Wiz, Prisma Cloud, Prowler aparecem cada vez mais em job descriptions de Cloud Security. Entender por que correlação (não só volume de alertas) é o diferencial — e saber operar uma ferramenta open-source como Prowler — mostra que você entrega postura, não só liga um produto.

▍ Armadilha

Confundir CSPM com pentest. CSPM olha configuração, não explora a aplicação. Os dois se complementam: config perfeita não impede um SQLi no app, e app perfeito não salva um bucket público. Você precisa das duas visões.

MÓDULO19

Detecção & resposta na nuvem

Objetivo: aplicar o blue team (M08) ao ambiente cloud — logs, detecção gerenciada e resposta automatizada.

Nível▮▮▮▮
Tempo~10h
Pré-requisitoM08, M17
RelevânciaCloud

O log que conta tudo: CloudTrail & amigos

Na nuvem, cada ação é uma chamada de API registrada. CloudTrail (AWS), Audit Logs (GCP) e Activity Log (Azure) são sua fonte forense primária. Habilitados em todas as regiões, imutáveis e centralizados, respondem "quem fez o quê, quando, de onde" — a base de toda investigação.

Detecção gerenciada + regras próprias

Serviços como GuardDuty analisam logs e fluxos com ML e threat intel, alertando sobre credencial usada de local incomum, chamada de reconhecimento, comunicação com IP malicioso. Você complementa com detecções sob medida (Sigma/EventBridge) para o que é específico do seu ambiente — retomando o M08.

detecção customizada — regra EventBridge (conceito)
{
  "source": ["aws.iam"],
  "detail": {
    "eventName": ["CreateAccessKey", "AttachUserPolicy"],
    "userIdentity": { "type": ["IAMUser"] }
  }
}
# dispara p/ SNS/Lambda quando alguém cria chave ou eleva permissão

Resposta automatizada (SOAR cloud-native)

O poder da nuvem é responder com código. Um alerta pode disparar uma função que isola a instância (muda o security group), revoga a credencial suspeita ou tira um snapshot forense — em segundos, sem humano no loop para a contenção inicial. É o ciclo de IR do M08 executado por automação.

▍ Laboratório 19

Na free-tier, habilite o GuardDuty e gere findings de teste (o serviço tem amostras). Crie uma regra do EventBridge que dispare uma notificação (SNS/e-mail) quando uma nova access key IAM for criada. Simule criando uma chave e confirme o alerta. Escreva o playbook de resposta de 1 página. Isso é um projeto de Cloud Detection & Response completo.

▍ No mercado

"Cloud detection & response" e "SOAR" são áreas quentes. Cloud Security Engineers cada vez mais escrevem automações de resposta, não só configuram alertas. Saber correlacionar CloudTrail, escrever uma detecção custom e automatizar a contenção com Lambda/Functions é exatamente o perfil que empresas cloud-first buscam.

▍ Armadilha

Automação de resposta agressiva demais sem testes: uma regra que "isola qualquer instância suspeita" pode derrubar produção num falso positivo. Comece com resposta em modo "notificar/sugerir", valide, e só promova a "agir automaticamente" o que tiver alta confiança.

Parte 5 — Muito avançado

Onde a engenharia de segurança sênior mora

Você já sabe construir o pipeline e proteger a nuvem. Agora entram os temas que separam pleno de sênior/staff: arquitetar sistemas seguros por design, aplicar Zero Trust com mTLS de verdade, escrever detecções em nível de kernel com eBPF, e proteger a nova fronteira — sistemas de IA e LLMs. É denso. Vá com calma e com laboratório.


MÓDULO20

Arquitetura segura & threat modeling avançado

Objetivo: desenhar sistemas onde a segurança é propriedade estrutural, não remendo — a habilidade de um security architect.

Nível▮▮▮▮▮
Tempo~14h
Pré-requisitoM05, M13, M16
RelevânciaAppSecCloud

Princípios que viram decisões de arquitetura

Segurança madura não é uma lista de controles, e sim princípios aplicados no design. Os que você vai justificar em revisões de arquitetura:

Defesa em profundidade
Múltiplas camadas independentes; nenhuma falha isolada compromete tudo.
Menor privilégio & separação de deveres
Cada componente com o mínimo; nenhuma identidade sozinha completa uma ação crítica.
Falha segura (fail closed)
Em erro, negar por padrão. Um serviço de autorização fora do ar bloqueia, não libera.
Raio de explosão mínimo
Segmentar contas/redes/namespaces para que um comprometimento não se espalhe.
Simplicidade & superfície mínima
Menos código, menos serviços expostos, menos a defender. Complexidade é inimiga da segurança.

Threat modeling em escala

Além do STRIDE do M05, arquitetos usam attack trees (decompor um objetivo do atacante em caminhos) e mapeiam controles ao MITRE ATT&CK para medir cobertura. Em sistemas grandes, threat modeling vira contínuo: cada mudança de arquitetura relevante passa por uma revisão leve, e decisões ficam registradas em ADRs de segurança (Architecture Decision Records).

Padrões de arquitetura segura na nuvem

  • Isolamento por conta/projeto: prod, dev e dados sensíveis em contas separadas, com organização e SCPs (guardrails no topo).
  • Perímetro de dados: políticas que garantem que dados só saem por caminhos aprovados (VPC endpoints, resource policies).
  • Identidade federada e efêmera: zero chave de longa duração; tudo via roles assumidas e OIDC (M16).
  • Criptografia com chaves gerenciadas por você (BYOK/envelope): controle e revogação centralizados via KMS.
▍ Laboratório 20

Escolha uma arquitetura de referência (ex.: uma app web multi-tier em AWS). Produza: (1) um DFD com trust boundaries, (2) uma attack tree para o objetivo "exfiltrar dados de clientes", (3) a lista de controles mapeados a cada ramo da árvore, e (4) 2 ADRs de segurança. Esse conjunto é um portfólio de arquiteto — raríssimo em candidatos.

▍ No mercado

Cargos "Security Architect" e "Staff Security Engineer" são avaliados pela capacidade de raciocinar sobre trade-offs, não de rodar ferramentas. Saber conduzir uma revisão de arquitetura, articular princípios e registrar decisões é o que sustenta as faixas salariais mais altas da área.

▍ Armadilha

"Segurança perfeita" que trava o negócio. Arquitetura é trade-off: um controle que ninguém consegue usar será contornado. O bom arquiteto encontra o ponto onde o caminho seguro também é o caminho prático — senão vira "shadow IT".

MÓDULO21

Zero Trust, mTLS & service mesh

Objetivo: implementar "nunca confie, sempre verifique" na prática — identidade de workload, mTLS e autorização por política.

Nível▮▮▮▮▮
Tempo~14h
Pré-requisitoM04, M13
RelevânciaCloudDevSecOps

O que Zero Trust realmente significa

Zero Trust abandona a ideia de "rede interna confiável". Cada requisição é autenticada, autorizada e cifrada, independentemente de onde vem. Os pilares: identidade forte para usuários E workloads, menor privilégio por requisição, micro-segmentação (M13) e verificação contínua (não só no login). Não é um produto — é uma arquitetura que você monta com peças.

mTLS: identidade mútua entre serviços

No TLS comum (M04), só o servidor prova identidade. No mTLS, cliente e servidor apresentam certificados — cada serviço prova quem é. Isso dá autenticação de workload e cifra o tráfego leste-oeste (serviço-a-serviço). O desafio é operacional: emitir, rotacionar e revogar certificados em escala. Padrões como SPIFFE/SPIRE dão a cada workload uma identidade criptográfica verificável (SVID).

Service mesh: mTLS e política sem tocar no código

Um service mesh (Istio, Linkerd) injeta um sidecar proxy ao lado de cada serviço, que faz mTLS, roteamento e aplica política de autorização automaticamente — o dev não muda a aplicação. É Zero Trust aplicado à camada de rede do cluster.

istio — mTLS estrito + autorização
# exige mTLS para todo tráfego no namespace
kind: PeerAuthentication
spec: { mtls: { mode: STRICT } }
---
# só o serviço "frontend" pode chamar "payments"
kind: AuthorizationPolicy
metadata: { name: payments-allow }
spec:
  selector: { matchLabels: { app: payments } }
  rules:
    - from: [{ source: { principals: ["cluster.local/ns/app/sa/frontend"] } }]
▍ Laboratório 21

No seu cluster kind/minikube (M13), instale o Linkerd ou Istio. Suba dois serviços e habilite mTLS estrito — verifique com a ferramenta do mesh que o tráfego está cifrado e autenticado. Depois escreva uma AuthorizationPolicy que permita apenas um serviço chamar o outro e teste que um terceiro é bloqueado.

▍ No mercado

"Zero Trust" está em quase todo edital de segurança corporativa, e "service mesh / mTLS / SPIFFE" aparece nas vagas de Cloud/Platform Security mais avançadas. Saber distinguir o hype ("compre nosso produto Zero Trust") da engenharia real (identidade de workload, mTLS, autorização por política) te posiciona como quem entende de verdade.

▍ Armadilha

Achar que mesh = segurança automática. Um mesh mal configurado (mTLS em modo "permissive" que nunca vira "strict", políticas de autorização ausentes) dá falsa sensação de segurança. Verifique o modo real e teste o bloqueio — configuração não aplicada é decoração.

MÓDULO22

Detection engineering & eBPF / purple team

Objetivo: escrever detecções de qualidade e observar o runtime em nível de kernel — a fronteira da defesa moderna.

Nível▮▮▮▮▮
Tempo~14h
Pré-requisitoM07, M08, M12
RelevânciaCyberCloud

Detection engineering: detecção como software

Detecção madura é tratada como código: cada regra tem hipótese, testes, versionamento e métricas de qualidade (taxa de falso positivo, cobertura de ATT&CK). O ciclo do purple team fecha o loop: o red team executa uma técnica (ex.: via Atomic Red Team), o blue team verifica se a detecção disparou, e a regra é refinada. Detecção que nunca foi testada contra o ataque real é fé, não engenharia.

eBPF: visibilidade no kernel

eBPF permite rodar programas seguros dentro do kernel Linux, observando syscalls, rede e processos com overhead mínimo — sem módulos de kernel arriscados. É a tecnologia por trás da observabilidade e segurança runtime modernas. O Falco usa isso para detectar comportamento suspeito em containers em tempo real.

falco rule — shell dentro de container (conceito)
- rule: Shell interativo em container
  condition: >
    spawned_process and container
    and shell_procs and proc.tty != 0
  output: "Shell aberto em container (user=%user.name container=%container.id)"
  priority: WARNING

Ferramentas como Tetragon e Cilium (também eBPF) levam isso a política de rede e de execução em nível de kernel — enforcement, não só observação. É o estado da arte em runtime security cloud-native.

Threat hunting

Nem toda ameaça dispara um alerta. Hunting é a busca proativa por comprometimento com base em hipóteses ("se um atacante tivesse persistência aqui, veríamos X"). Combina conhecimento de ATT&CK (M07), dados ricos (M08) e curiosidade estruturada. É onde blue team vira arte.

▍ Laboratório 22

Instale o Falco num host com Docker. Rode um container e abra um shell interativo dentro dele (docker exec -it ... sh) — confirme que o Falco alerta. Depois, use o Atomic Red Team para executar uma técnica ATT&CK simples e verifique se sua stack de detecção a captura. Documente a lacuna e escreva uma regra que a preencha.

▍ No mercado

"Detection Engineer" é um cargo próprio e crescente. eBPF, Falco, Cilium/Tetragon e "runtime security" aparecem nas vagas mais técnicas de cloud security. Purple teaming demonstra maturidade rara: você prova que suas defesas funcionam contra ataques reais, com métricas. Isso é conversa de sênior/staff.

▍ Armadilha

Colecionar regras sem medir qualidade. Mil regras barulhentas são piores que cinquenta afiadas: enterram o analista em ruído e a ameaça real passa. Meça falso-positivo e cobertura, aposente regras ruins, e teste cada detecção contra a técnica que ela promete pegar.

MÓDULO23

Segurança de IA/LLM (LLMSecOps)

Objetivo: proteger aplicações que usam LLMs — a fronteira mais nova e mais valorizada de AppSec em 2026.

Nível▮▮▮▮▮
Tempo~12h
Pré-requisitoM05, M06, M16
RelevânciaAppSecCloud

Por que LLMs quebram suposições de AppSec

Aplicações com LLM misturam instruções e dados no mesmo canal de texto — exatamente o que a injeção (M06) explora, agora em linguagem natural. Se o modelo tem acesso a ferramentas (buscar na web, chamar APIs, ler arquivos), uma instrução maliciosa escondida em conteúdo pode virar ação real. É AppSec com uma superfície nova e não-determinística.

OWASP Top 10 for LLM Applications

Existe um Top 10 dedicado. Os riscos centrais:

Prompt Injection
Direta ("ignore as instruções anteriores") ou indireta — instrução escondida numa página, e-mail ou documento que o modelo processa. O risco nº1.
Insecure Output Handling
Confiar cegamente na saída do modelo e passá-la a um shell, SQL ou HTML — vira RCE/XSS clássico.
Sensitive Information Disclosure
Modelo vaza dados de treino, do system prompt ou de contexto de outro usuário.
Excessive Agency
Dar ao modelo permissões/ferramentas amplas demais; uma injeção bem-sucedida herda esse poder.
Supply chain & data poisoning
Modelo ou dados de treino/RAG adulterados — o M15 aplicado a pesos e datasets.

Defesas em camadas

  • Trate a saída do LLM como entrada não confiável — valide e escape antes de qualquer ação (retomando M06).
  • Menor privilégio para agentes — cada ferramenta com escopo mínimo; ações sensíveis exigem confirmação humana (human-in-the-loop).
  • Isole instruções de dados — delimitadores, e nunca confie que conteúdo externo é "só dados".
  • Guardrails de entrada/saída — classificadores para detectar injeção e filtrar dados sensíveis.
  • Red teaming de LLM — teste sistemático de jailbreaks e injeções (ferramentas como Garak).
▍ Perspectiva

A regra de ouro: a IA não é uma fronteira de confiança. Nunca dê a um agente de LLM um poder que você não daria a um usuário anônimo da internet — porque, via injeção indireta, é efetivamente isso que ele pode virar.

▍ Laboratório 23

Suba uma app de LLM deliberadamente vulnerável (ex.: Gandalf da Lakera, ou o lab de prompt injection do PortSwigger). Consiga extrair o "segredo" via prompt injection. Depois desenhe as defesas: onde você poria validação de saída, limite de agência e guardrails? Escreva um mini threat model (M05/M20) de uma app com LLM + ferramentas.

▍ No mercado

"AI Security" / "LLMSecOps" é a habilidade que mais se valoriza agora — toda empresa está colocando LLM em produção e poucos sabem protegê-los. Combinar sua base de AppSec (M05/M06) com o OWASP Top 10 for LLM te coloca num nicho escasso e muito bem pago. É o tema para se destacar em 2026.

▍ Armadilha

Confiar num "filtro de prompt" como defesa única. Guardrails ajudam, mas prompt injection não é totalmente solucionável por filtro — é um problema de arquitetura. A defesa real é limitar o que o sistema pode fazer quando comprometido (menor privilégio + human-in-the-loop), não só tentar detectar o ataque.

Parte 6 — Mercado de trabalho

Transformar conhecimento em vaga

Saber segurança e ser contratado são habilidades diferentes. Este módulo final é o mapa para converter tudo o que você construiu — labs, repositórios, relatórios — em ofertas de emprego: certificações que valem o investimento, portfólio que fala por você, preparação de entrevista e um roadmap realista.


MÓDULO24

Carreira: certs, portfólio & entrevistas

Objetivo: montar uma trajetória de entrada e crescimento em DevSecOps/AppSec e Cloud Security com decisões de alto retorno.

Nível▮▮▮▮▮
Tempocontínuo
Pré-requisito
RelevânciaCarreira

O portfólio importa mais que o currículo

Em segurança, prova de habilidade vence linhas de currículo. Se você fez os laboratórios desta apostila, já tem os alicerces de um portfólio forte. Organize-os:

  • Repositório público com um pipeline DevSecOps completo (M11) — SAST, SCA, secret scanning, DAST, com README explicando cada decisão de gate
  • Projeto "hardening de container" com antes/depois de CVEs (M12)
  • Baseline de IaC seguro com políticas OPA/Rego próprias (M14)
  • Relatório de findings do Juice Shop com remediações (M06)
  • Write-ups de máquinas do TryHackMe/HackTheBox (M07)
  • Relatório de CSPM (Prowler) com correções aplicadas (M18)
  • Um blog técnico: escrever sobre o que você aprendeu prova comunicação — habilidade sênior subvalorizada

Certificações que valem o investimento

Certificação abre portas em triagem de RH, mas não substitui prática. Escolha por objetivo, não por colecionismo:

TrilhaEntradaReferência de mercado
FundamentosCompTIA Security+
Cloud (AWS)AWS Cloud Practitioner / SAAAWS Security Specialty
KubernetesCKACKS (Security Specialist)
Ofensiva/AppSeceJPTOSCP, Burp Suite Certified
DevSecOpsPráticas + portfólioCerts de fornecedores (a prática pesa mais)
▍ Estratégia

Para os alvos desta apostila, a dupla de maior retorno costuma ser AWS Security Specialty + CKS (Cloud/DevSecOps) e, se quiser peso ofensivo/AppSec, OSCP. Mas priorize sempre: 1 cert relevante + portfólio real > 5 certs sem prática.

Preparação para entrevista

Entrevistas de segurança misturam três frentes. Prepare-se para cada uma:

Fundamentos

"Explique uma URL da digitação ao render", TLS handshake, permissões Linux, TCP vs UDP. (Partes 1–2.)

Cenário/Design

"Faça o threat model disto", "como proteger este pipeline/cluster/conta AWS?". Pensar em voz alta vale mais que a resposta perfeita.

Prático/Hands-on

Ler um Dockerfile e apontar falhas, revisar uma policy IAM, achar o bug num trecho de código. (Partes 3–4.)

Comportamental

"Conte de um conflito dev × segurança que você resolveu." Mostre que você reduz atrito (M09), não que policia.

Um roadmap realista

FaseFocoMeta demonstrável
Meses 1–3Fundamentos (P1–P2)Linux fluente, Juice Shop resolvido, 1 máquina THM documentada
Meses 4–6DevSecOps (P3)Pipeline de segurança público + projeto de container hardening
Meses 7–9Cloud (P4)Baseline AWS seguro em IaC + relatório CSPM; começar AWS Security Specialty
Meses 10–12Avançado (P5) + candidaturas1 tema avançado a fundo (ex.: K8s/CKS ou LLMSec) + aplicar para vagas júnior/pleno

Esse ritmo assume estudo consistente ao lado de outras responsabilidades. Ajuste ao seu contexto — o que não muda é a sequência: fundamentos sólidos, prática documentada, especialização, exposição ao mercado.

▍ Realidade do mercado

DevSecOps/AppSec e Cloud Security estão entre as áreas de tech com maior demanda e menor oferta de gente qualificada — o que sustenta bons salários e trabalho remoto. Faixas variam muito por país, senioridade e empresa, então pesquise dados atuais para sua região (levantamentos salariais de segurança, faixas em plataformas de vaga) em vez de confiar num número fixo. O diferencial que mais move oferta é conseguir mostrar que você já faz o trabalho — e é para isso que serve todo o portfólio desta apostila.

▍ Laboratório 24 — o mais importante

Crie hoje o repositório do seu portfólio no GitHub. Adicione um README que se apresenta e lista os projetos que você vai construir ao longo da apostila. A cada módulo concluído, publique o laboratório correspondente. Ao terminar, você não terá "estudado segurança" — você terá um corpo de trabalho que prova segurança. É isso que gera a oferta.