Carregando
0x90Lição 10 de 15

Leve a segurança para o desenvolvimento

Use padrões seguros, proteja as dependências e os segredos, e priorize as vulnerabilidades do mundo real.

35 min Questionário com 7 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Associar falhas comuns ao OWASP Top 10:2025
  • Manter os segredos fora do código e as dependências atualizadas
  • Escolher verificações de segurança para o projeto, o código e o lançamento
  • Inventariar os ativos expostos e priorizar as vulnerabilidades pela exploração e pelo impacto no negócio

O OWASP Top 10:2025 classifica os riscos mais críticos das aplicações web:

Categoria
A01Broken Access Control
A02Security Misconfiguration
A03Software Supply Chain Failures
A04Cryptographic Failures
A05Injection
A06Insecure Design
A07Authentication Failures
A08Software or Data Integrity Failures
A09Security Logging and Alerting Failures
A10Mishandling of Exceptional Conditions

Novidades de 2025: as falhas na cadeia de suprimentos - dependências vulneráveis ou maliciosas, sistemas de build comprometidos - e o tratamento inadequado de condições excepcionais, como falhar aberto quando acontece um erro.

Experimente

Até 15 XP

Que categoria do Top 10?

Associe cada achado à sua categoria do OWASP Top 10:2025.

0 de 7 classificadosPontuação 0/0
  • “Qualquer usuário logado consegue chamar DELETE /api/users/{id}”

  • “O servidor de produção mostra stack traces completos e tem a senha de administrador padrão”

  • “Um build baixa o pacote “reqeusts”, de nome parecido (typosquatting), que rouba variáveis de ambiente”

  • “As senhas são guardadas como hashes MD5 sem salt”

  • “Quando o serviço de permissões estoura o tempo limite, o código permite a requisição”

  • “Um bucket de armazenamento pode ser listado publicamente”

  • “As dependências não têm versão fixada, então cada build pode baixar uma versão diferente”

Segredos e dependências

Segredos (chaves de API, senhas de banco de dados, chaves privadas) não pertencem ao código-fonte: os repositórios são clonados, copiados e vazados, e o histórico do Git guarda as linhas apagadas para sempre. Carregue-os de um gerenciador de segredos ou do ambiente, faça varreduras nos commits em busca deles e faça a rotação de qualquer segredo que já tenha sido commitado.

A maior parte de uma aplicação é código de outras pessoas. Proteja a cadeia de suprimentos: fixe as versões com um lockfile, verifique os checksums, mantenha uma lista de materiais do software (SBOM), acompanhe os avisos com um scanner, atualize sem demora e desconfie de nomes de pacotes novos ou parecidos com outros.

Nenhuma verificação sozinha encontra tudo, então as equipes as combinam em camadas: modelagem de ameaças no projeto, revisão de código e análise estática (SAST) durante a programação, análise de composição de software (SCA) para as dependências, e testes dinâmicos (DAST) e testes de invasão contra os sistemas em execução.

Real case · 2021CVE-2021-44228

Log4Shell: entrada perigosa numa biblioteca comum

O Apache Log4j Core podia interpretar um texto controlado pelo atacante numa mensagem registrada como uma consulta JNDI. Em configurações afetadas, isso podia levar à execução remota de código.

  1. 01Um atacante coloca um texto forjado num campo que a aplicação registra no log.
  2. 02Uma versão vulnerável do Log4j Core processa a consulta.
  3. 03A consulta pode chegar a um endpoint controlado pelo atacante e carregar código.
  4. 04Os defensores inventariam as aplicações afetadas, atualizam, verificam e investigam a exposição.
Defender lesson: Saiba quais dependências os seus serviços realmente distribuem, incluindo as transitivas, e verifique se as correções chegam a todas as cópias em produção. Aviso de segurança da Apache ↗

Encontre o que está vulnerável e depois verifique a correção

Um scanner não consegue proteger um servidor que ele não sabe que existe. Mantenha um inventário de ativos com as aplicações, dispositivos e recursos de nuvem em produção, os seus donos e as versões de software. Compare-o com os avisos e com os resultados das varreduras. O caso da Equifax mostrou como um sistema público sem patch e uma varredura que não o detectou podem transformar uma falha conhecida numa invasão.

Não ordene uma fila de patches só por uma nota de severidade. Pergunte: A falha está sendo explorada? O sistema é alcançável? Que dados ou processo de negócio ele protege? Existe uma correção segura ou uma mitigação temporária? O catálogo Known Exploited Vulnerabilities da CISA identifica as falhas exploradas na prática. Um problema sabidamente explorado num serviço público merece atenção urgente, mesmo que o resultado de outro scanner tenha uma nota numérica maior.

O ciclo é descobrir → priorizar → corrigir ou mitigar → verificar. Se não der para aplicar um patch imediatamente, restrinja o acesso ou desative a funcionalidade afetada e acompanhe o risco restante. Faça uma nova varredura, ou confirme de outra forma, que a versão vulnerável sumiu depois do deploy. O playbook de resposta a vulnerabilidades da CISA descreve essas etapas.

Experimente

Até 15 XP

Audite o plano de patches

Uma equipe escreveu este plano semanal de vulnerabilidades. Encontre as decisões que deixam exposições importantes sem tratamento.

Revisão semanal de vulnerabilidades (rodada 1 de 1)Sinais encontrados 0/0

Clique em todos os trechos suspeitos. São 3.

• O inventário lista a API pública de cobrança e o dono dela. • Um servidor antigo de acesso remoto continua no ar, mas não tem dono e não aparece nas varreduras. • A equipe confere a lista de vulnerabilidades sabidamente exploradas da CISA toda semana. • Uma falha sabidamente explorada na API pública de cobrança é adiada porque outro servidor de testes isolado tem uma nota maior no scanner. • Quando não há patch disponível, a funcionalidade afetada é desativada e a exceção é acompanhada. • Os tickets de patch são fechados assim que um release é pedido; ninguém confere a versão em produção depois.

Prática: faça a triagem de uma varredura de dependências

Experimente

Até 15 XP

O que você deve corrigir primeiro?

Os scanners relatam muita coisa. Parte do trabalho é decidir o que importa.

Rodada 1 de 2: Encontre o urgentePontuação 0/0

Qual você corrige hoje?

$ npm audit

Principais conclusões

  • O OWASP Top 10:2025 começa com controle de acesso quebrado, configuração incorreta e falhas na cadeia de suprimentos.

  • Mantenha os segredos fora do código; faça a rotação de qualquer um que vazar.

  • Fixe, verifique e atualize as dependências; combine revisão, SAST, SCA e DAST.

  • Inventarie os ativos, priorize as fraquezas exploradas e expostas, e verifique a correção no sistema em produção.

Quiz da aula

7 perguntas · aprovação com 5 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em Python

Escreva código Python no editor e execute os testes com exemplos. O Python roda localmente no navegador usando WebAssembly.

Exercício 1

Faça uma varredura de segredos num commit

+25 XP

A entrada tem vários arquivos: cada um começa com uma linha === PATH, seguida das linhas dele. Para cada linha (numerada a partir de 1 dentro do arquivo), informe a primeira correspondência de:

  1. AKIA seguido de 16 letras maiúsculas ou dígitos → AWS access key
  2. -----BEGIN ... PRIVATE KEY----- → private key
  3. password, secret ou api_key (com qualquer combinação de maiúsculas e minúsculas, possivelmente com um prefixo como db_), depois =, depois um literal entre aspas → hardcoded secret

Imprima PATH:LINE: TYPE.

  • Três arquivos
main.py
Carregando editor…

O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…