Pular para o conteúdo

OWASP Top 10 na linguagem

As dez categorias de 2021, e o que a linguagem, a biblioteca e as ferramentas fazem com cada uma.

O OWASP Top 10 é a lista das categorias de falha que mais aparecem em aplicações web. Ela não é um checklist — é um mapa de onde procurar. Para cada categoria, o que existe aqui para ajudar, e o que continua sendo decisão de quem escreve.

Categoria (2021)O que existe aquiO que continua sendo seu
A01 Controle de acesso quebradoArcane.Politica — negar por padrão, negar vence permitir, a decisão diz quem decidiuconferir o dono do objeto em cada rota (ver API)
A02 Falhas criptográficasscrypt em hash_password, ChaCha20-Poly1305, Arcane.Chaves com rotaçãonão inventar esquema; TLS no proxy
A03 Injeção? no SQL, escape por destino, templates que escapam, escapar_shellnão montar SQL com $"…"
A04 Design inseguroArcane.Dominio com invariantes cobradasmodelar ameaças antes — STRIDE
A05 Configuração inseguraKiln.secure_headers(), dataforge devops doctorligar HSTS quando o TLS existir
A06 Componentes vulneráveislockfile com sha256, SBOM, dataforge outdatedatualizar — Cadeia
A07 Falhas de autenticaçãotentativas (bloqueio progressivo), TOTP, forca_da_senha, vazadaa mesma resposta para usuário e senha errados
A08 Integridade de software e dadosArcane.Integridade, tarball reprodutível, webhook assinadoassinar o que se publica
A09 Falhas de log e monitoramentoauditoria encadeada, escapar_log, Arcane.Deteccaoalguém olhar os alertas
A10 SSRFurl_segura resolve o nome antes de responderusar o IP que ela devolve
dataforge
adopt Arcane.Seguranca as S

// A03 — o nome que vira SQL, o texto que vira shell, a celula que vira formula
assert S.escapar_csv("=HYPERLINK(\"x\")").startswith("'")
assert "\n" not in S.escapar_log("ok\nFALSO login admin")

// A07 — quanto vale esta senha?
assert S.forca_da_senha("123456")["nota"] smaller S.forca_da_senha("cavalo-bateria-grampo-azul")["nota"]

// A10 — o endereco interno e recusado ANTES da requisicao, e levanta:
// devolver "nao" deixaria quem esqueceu de conferir seguir adiante.
monitor:
    S.url_segura("http://127.0.0.1/admin")
    assert no
handle Error as e:
    out e.message
out "quatro categorias, conferidas"

Continue em Segurança de API e Web.