Fellipe Sanches' website

Autor: F. Sanches

  • Aula 01 — O que um engenheiro de segurança realmente faz? (laboratório prático)

    SEMANA 01 · AULA 01 · 45–60 MINUTOS · ESSENCIAL + DESAFIO PROFISSIONAL

    ← Voltar à trilha de 12 semanas · Read in English

    Engenharia de Segurança não é decorar ferramentas nem tentar invadir tudo. É tornar sistemas mais seguros desde o projeto, entender quais riscos importam, implementar proteções e comprovar que funcionam. Hoje você assumirá o papel de engenheiro de segurança de um pequeno SaaS fictício.

    O que você vai entregar: uma revisão de segurança de uma página, com desenho do sistema, três riscos, três controles e uma maneira de testar cada controle. Guarde o resultado: é a primeira peça do seu portfólio de estudos.

    1. O que você aprenderá?

    • Diferenciar ativo, ameaça, vulnerabilidade, risco e controle de segurança.
    • Entender o que um engenheiro de segurança entrega a uma empresa.
    • Transformar uma preocupação vaga em um requisito técnico verificável.
    • Priorizar melhorias úteis, sem fazer uma lista infinita de ferramentas.

    2. A mentalidade de um engenheiro de segurança

    Faça quatro perguntas, nessa ordem: O que é importante? O que pode dar errado? Como reduzir o risco? Como saberemos se funcionou?

    Ativo: algo valioso, como dados dos clientes ou disponibilidade do serviço. Ameaça: possível causa de dano. Vulnerabilidade: fraqueza que pode ser explorada ou causar falha. Risco: cenário de dano considerando probabilidade e impacto. Controle: medida para reduzir o risco, como validação de permissões, MFA, monitoramento ou backups testados.

    O NIST Cybersecurity Framework 2.0 organiza o trabalho de segurança em seis funções complementares:

    • Governar (Govern): definir responsáveis, objetivos e riscos aceitáveis.
    • Identificar (Identify): conhecer sistemas, dados e dependências importantes.
    • Proteger (Protect): aplicar menor privilégio, criptografia e outras barreiras.
    • Detectar (Detect): perceber atividades inesperadas ou suspeitas.
    • Responder (Respond): conter e investigar incidentes.
    • Recuperar (Recover): restaurar serviços e aprender com as falhas.

    Uma única pessoa não precisa cuidar de todas essas funções. O engenheiro de segurança colabora com desenvolvimento, nuvem, infraestrutura e resposta a incidentes. A entrega importante é uma proteção funcionando e acompanhada de evidências — não apenas uma apresentação de recomendações.

    3. Sua empresa fictícia: OrderDesk

    A OrderDesk ajuda pequenos negócios a receber pedidos. Ela tem um site, uma API, um banco PostgreSQL e armazenamento de arquivos anexos. Cada lojista faz login para ver apenas seus próprios pedidos. Administradores gerenciam a plataforma. Os registros dos clientes incluem nomes, telefones e dados de entrega.

    Durante a primeira conversa, você ouve três frases preocupantes:

    1. “Os IDs dos pedidos são sequenciais, e não tenho certeza se a API verifica a qual lojista cada pedido pertence.”
    2. “Os administradores usam senha, mas não habilitamos MFA nem revisamos alertas de tentativas de login.”
    3. “Fazemos backup do banco toda noite. Ninguém lembra o último teste de restauração.”

    Esses pontos são hipóteses para investigar, não incidentes confirmados. Sua tarefa é transformar cada hipótese em verificação, decisão e melhoria concreta.

    4. Laboratório prático — faça uma revisão de segurança (30 minutos)

    Etapa A — Desenhe o sistema (5 minutos)

    No papel ou em um editor de diagramas, desenhe: Navegador do cliente → Site/API → PostgreSQL, além de API → armazenamento de arquivos. Marque a fronteira entre a conta de um lojista e os dados de outro. Indique onde os administradores fazem login. Não é preciso contratar serviços nem criar contas.

    Etapa B — Monte seu registro de riscos (10 minutos)

    Copie a tabela para suas anotações e procure melhorá-la com suas próprias palavras:

    AtivoO que pode dar errado?ControleComo comprovar?
    Pedidos dos lojistasLojista A acessa pedidos do lojista BAutorização no servidor a cada requisiçãoCom contas fictícias de teste, A não acessa pedido de B (403/404)
    Contas administrativasSenha roubada permite acesso privilegiadoMFA, menor privilégio e monitoramentoTestar MFA e alertas com contas de teste
    Banco de pedidosExclusão ou falha causa perda prolongada de dadosBackups protegidos e plano de recuperaçãoRestaurar em ambiente isolado e conferir registros

    Etapa C — Defina as prioridades (10 minutos)

    Para cada risco, anote impacto (baixo/médio/alto), probabilidade (baixa/média/alta) e o que você ainda não sabe. Escolha as três ações mais importantes. Explique o motivo antes de escolher alguma ferramenta. São avaliações qualitativas, não uma fórmula matemática exata de risco.

    Etapa D — Escreva critérios de aceitação (5 minutos)

    Transforme o maior risco em uma tarefa que possa ser testada. Exemplo: “Quando o lojista A estiver autenticado, solicitar um pedido pertencente ao lojista B nunca pode revelar dados de B. A API precisa validar a autorização independentemente da interface.” Diga como você verificaria isso com contas e dados sob seu controle.

    5. Teste suas decisões

    Responda mentalmente às perguntas abaixo antes de revelar os gabaritos. Se errar, tente identificar qual suposição levou à resposta.

    Pergunta 1 — O lojista A consegue ler o pedido de B. Esconder o link na interface resolve?

    Não. Restrições na interface não substituem autorização. A API precisa conferir se o lojista autenticado é dono de cada pedido solicitado. Comprove a proteção usando duas contas fictícias e um teste negativo.

    Pergunta 2 — O backup roda toda noite. Isso prova que a OrderDesk consegue recuperar os dados?

    Não. Um backup bem-sucedido é apenas parte da evidência. Restaure uma cópia em ambiente isolado, verifique a integridade dos dados e meça quanto tempo a recuperação leva.

    Pergunta 3 — Qual entrega é melhor: “Habilitar MFA” ou “MFA administrativo implementado e testado”?

    A segunda. Um controle testado tem responsável, critério de aceitação e evidência. “Habilitar MFA” pode continuar sendo apenas uma recomendação no papel. Engenharia de Segurança busca resultados que podemos verificar.

    6. Desafio profissional (opcional, 20 minutos)

    Se você programa, implemente um pequeno teste automatizado de autorização negativa em um projeto local seu: crie dois lojistas fictícios e um pedido para o lojista B; autentique-se como A; solicite o pedido de B; verifique que nenhum dado sensível é retornado e que a resposta é 403 ou 404. Quando fizer sentido, teste também as rotas de listagem e atualização. Nunca teste sistemas de terceiros sem autorização.

    Se você ainda não programa, descreva três casos de teste em linguagem natural. Um teste bem pensado também é trabalho de engenharia.

    7. Confira sua entrega

    • ☐ Desenhei os componentes e pelo menos uma fronteira de confiança.
    • ☐ Identifiquei três ativos e possíveis cenários de falha.
    • ☐ Escolhi controles, responsáveis e prioridades.
    • ☐ Cada controle tem uma maneira de verificar sua eficácia.
    • ☐ Consigo explicar minha decisão mais importante em duas frases.

    Autoavaliação: 5/5 significa que você concluiu a aula; abaixo disso, revise os pontos faltantes. Salve seu diagrama e registro de riscos como aula-01-revisao-de-seguranca nas suas notas ou portfólio. Não publique dados reais, credenciais nem detalhes internos sensíveis.

    8. Entre na cultura de segurança

    Leia a introdução de OWASP Top 10:2025 — Controle de Acesso Quebrado e conheça o NIST NICE Framework. Perceba a diferença entre conhecer o nome de uma vulnerabilidade e ser responsável por uma melhoria comprovável de segurança.

    Reflexão final: O que você protegeria primeiro na OrderDesk e qual evidência mostraria que a proteção funciona? Escreva três frases. Próxima aula: Aula 02 — Confidencialidade, Integridade e Disponibilidade na Prática.

  • Por que o navegador continua mostrando erro de SSL depois da correção?

    Security Explained · leitura de 3 minutos

    Read in English

    Você instala um certificado TLS válido no servidor, volta à aba que mostrava “Sua conexão não é particular” e… o aviso continua. Será que o certificado novo está errado? Não necessariamente.

    O segredo: o navegador mostra o resultado de uma tentativa anterior

    Para abrir um site HTTPS, o navegador inicia uma conexão TLS e valida o certificado apresentado pelo servidor. Se a verificação falha, aparece um aviso. Aquela tela representa uma tentativa de conexão anterior. Ela não recebe uma notificação automática sempre que alguém troca o certificado no servidor.

    A correção já pode estar funcionando, enquanto o aviso antigo continua na aba. Ao recarregar a página, o navegador faz outra tentativa e verifica o certificado que o servidor apresenta naquele momento.

    Veja a sequência

    1. 10h00: O navegador acessa https://example.com. O servidor apresenta um certificado expirado. Aparece o alerta de privacidade.
    2. 10h02: O administrador instala um certificado válido e aplica a configuração do servidor web.
    3. 10h03: A aba antiga continua com o aviso. Nada fez aquela tela se atualizar sozinha.
    4. 10h04: Você recarrega. Uma nova conexão TLS avalia o certificado atualizado e o site pode abrir normalmente.

    Detalhe importante: na aba em que a validação do certificado falhou, não houve uma conexão HTTPS confiável concluída. Portanto, geralmente não é um caso de “conexão ruim em cache”.

    Teste seu entendimento

    Pergunta 1: o certificado foi trocado. O alerta de uma aba já aberta desaparece sozinho?

    Não. Recarregue a página para iniciar uma nova validação TLS. A tela de erro anterior não recebe uma notificação do servidor avisando que o certificado foi corrigido.

    Pergunta 2: recarregou e o erro continua. Limpar o cache HTTP é o melhor primeiro passo?

    Não. Primeiro descubra qual certificado está realmente sendo servido para aquele domínio. O servidor, o proxy, o balanceador ou a CDN ainda podem apresentar o certificado antigo. Cache de HTTP normalmente não explica uma falha de validação de TLS.

    Se recarregar não resolver

    • Confirme se o domínio corresponde ao certificado, incluindo www, quando usado.
    • Verifique se o servidor web realmente apresenta o certificado novo e recarregou sua configuração.
    • Confira proxy reverso, balanceador e CDN: o TLS pode terminar antes mesmo de chegar ao seu servidor.
    • Analise validade, cadeia de certificados e data/hora do dispositivo.

    Para guardar: instalar um certificado é uma mudança no servidor. Uma aba que mostra uma falha anterior de TLS não é um painel de status em tempo real.

    Referências: RFC 8446 — TLS 1.3; MDN — TLS; Cloudflare — erros SSL.

  • Engenharia de Segurança: Trilha Prática de Estudos em 12 Semanas

    Segurança não é apenas encontrar vulnerabilidades. Também envolve projetar sistemas que reduzam riscos, implementar proteções eficazes, detectar comportamentos incomuns e responder quando algo dá errado.

    Read in English

    Esta série gratuita mostra como esse trabalho acontece, uma aula prática de cada vez. Nosso objetivo é construir uma base sólida em Engenharia de Segurança e aplicá-la a problemas técnicos próximos da realidade.

    Para quem é esta trilha?

    • Pessoas começando na área de cibersegurança.
    • Desenvolvedores que desejam criar aplicações mais seguras.
    • Profissionais de TI, redes e Linux interessados em migrar para segurança.
    • Engenheiros de nuvem que buscam melhorar suas decisões de arquitetura.

    Você não precisa ter um cargo de segurança para começar. Primeiro explicaremos os conceitos essenciais; depois virão os desafios mais avançados.

    O que faz um engenheiro de segurança?

    Esse profissional ajuda a proteger aplicações, infraestrutura, identidades, serviços e dados. Quatro perguntas orientam o trabalho:

    1. O que precisamos proteger? Identificar os ativos e sua importância.
    2. O que pode dar errado? Considerar ameaças, erros e cenários de falha.
    3. Como reduzir o risco? Aplicar menor privilégio, segmentação, criptografia, monitoramento e backups testados.
    4. Como comprovar a proteção? Utilizar testes, logs, revisões e exercícios de incidentes.

    Engenharia de Segurança se relaciona com Cloud Security, Application Security, Network Security e DevSecOps. Vamos entender as conexões entre essas disciplinas.

    Nosso plano de 12 semanas

    1. Semana 01 — Fundamentos: confidencialidade, integridade, disponibilidade, ameaças, riscos e defesa em profundidade.
    2. Semana 02 — Segurança de Redes: TCP/IP, DNS, TLS, firewalls, análise de tráfego e segmentação.
    3. Semana 03 — Linux Security: permissões, SSH, logs, hardening e monitoramento.
    4. Semana 04 — Identidade e Acesso na AWS: políticas IAM, roles, credenciais temporárias e menor privilégio.
    5. Semana 05 — Redes na AWS: VPC, sub-redes, Security Groups, NACLs e isolamento de bancos.
    6. Semana 06 — Proteção de Dados: S3, KMS, criptografia, backups e testes de recuperação.
    7. Semana 07 — Segurança de Aplicações: riscos OWASP, autenticação, autorização e código seguro.
    8. Semana 08 — Segurança de APIs: OAuth 2.0, validação de entradas, SQL Injection, XSS e controle de acesso.
    9. Semana 09 — Containers: imagens Docker, permissões, vulnerabilidades e isolamento.
    10. Semana 10 — DevSecOps: CI/CD, segredos, análise de dependências e infraestrutura como código.
    11. Semana 11 — Detecção e Resposta: logs, CloudTrail, triagem de alertas e investigação de incidentes.
    12. Semana 12 — Projeto Final: avaliar e fortalecer uma pequena aplicação e sua infraestrutura.

    Teremos cinco sessões curtas por semana. A última será dedicada à revisão e à prática. O cronograma é uma referência, não uma corrida.

    Como será cada aula?

    • 10 minutos — Conceito: entender os termos e por que o controle existe.
    • 20 minutos — Prática: analisar uma configuração, resolver um cenário ou utilizar um laboratório seguro.
    • 10 minutos — Reflexão: explicar o risco, a decisão e como verificar o resultado.

    Cada aula terá dois níveis: Essencial, com explicações simples e exercício guiado, e Desafio Profissional, com um problema próximo do trabalho real. Perguntas interativas e pequenas simulações ajudarão a testar o entendimento.

    Conhecer a cultura, não apenas as ferramentas

    Segurança muda rapidamente. Vale acompanhar análises técnicas, relatos de incidentes, documentação oficial e comunidades. Explore o AWS Security Blog, o OWASP Top 10, o catálogo de vulnerabilidades exploradas da CISA e a comunidade OWASP São Paulo.

    Pratique apenas em sistemas próprios ou em ambientes preparados para treinamento, como a PortSwigger Web Security Academy e o OWASP Juice Shop. Nunca investigue sistemas de terceiros sem autorização.

    O que você terá ao final?

    A ideia é desenvolver vocabulário técnico, experiência prática com controles de segurança, exercícios documentados e um pequeno projeto final. Doze semanas não garantem domínio profissional nem contratação: são uma base estruturada para continuar aprendendo.

    Desafio rápido: um sistema é seguro só porque tem firewall? Toque para revelar a resposta.

    Não. Firewall é apenas um controle. Também precisamos entender os ativos e as ameaças, gerenciar identidades e permissões, atualizar os sistemas, proteger dados, monitorar comportamentos e preparar uma resposta a incidentes. Na próxima aula, aplicaremos essa mentalidade a um exercício realista.

    Próxima aula

    Aula 01 — O que realmente faz um engenheiro de segurança? Vamos explorar a mentalidade do profissional e perguntar o que significa dizer que um sistema é seguro.

    Começar Aula 01 — Revisão Prática de Segurança →

    Referências