Security & OWASP
OWASP Top 10, Injection, CORS, Rate Limiting e Secrets Management no .NET
Seguranca nao e um feature β e um requisito. Cada camada deve validar inputs, sanitizar outputs e assumir que o caller pode ser malicioso.
OWASP Top 10 (2021)
O OWASP Top 10 lista as vulnerabilidades mais criticas em aplicacoes web. Conhecer cada uma e saber como mitigar no .NET e essencial para entrevistas e producao.
| # | Vulnerabilidade | Descricao | Mitigacao .NET |
|---|---|---|---|
| A01 | Broken Access Control | Usuario acessa recursos sem autorizacao | [Authorize(Policy)], Resource-based auth |
| A02 | Cryptographic Failures | Dados sensiveis expostos ou mal criptografados | Data Protection API, HTTPS obrigatorio, HSTS |
| A03 | Injection | SQL, NoSQL, OS, LDAP injection | EF Core (parametrizado), FromSqlInterpolated |
| A04 | Insecure Design | Falhas de design, nao apenas de implementacao | Threat modeling, security reviews, STRIDE |
| A05 | Security Misconfiguration | Configs default, stack traces expostas, CORS aberto | app.UseExceptionHandler, headers seguros |
| A06 | Vulnerable Components | NuGet packages com CVEs conhecidas | dotnet list package --vulnerable |
| A07 | Auth Failures | Brute force, credenciais fracas, session fixation | Identity + rate limiting + lockout policies |
| A08 | Software & Data Integrity | CI/CD inseguro, updates sem verificacao | Package signing, SRI, pipeline security |
| A09 | Logging & Monitoring Failures | Sem logs de seguranca, sem alertas | Serilog + structured logging + SIEM integration |
| A10 | SSRF | Server-Side Request Forgery β servidor faz requests para URLs controladas pelo atacante | Validar URLs, whitelist de dominios, IHttpClientFactory |
Defense in Depth
Cada camada da aplicacao deve ter suas proprias defesas. Se uma camada falha, a proxima deve segurar.
| Camada | Defesas |
|---|---|
| Network | WAF, firewall, TLS/HTTPS, DDoS protection |
| Transport | HSTS, certificate pinning, mTLS entre servicos |
| Application | Input validation, output encoding, rate limiting |
| Authentication | MFA, JWT rotation, lockout policies |
| Authorization | RBAC/ABAC, resource-based, least privilege |
| Data | Encryption at rest, Data Protection API, column-level encryption |
Seguranca nao e um feature β e um requisito. Cada camada deve validar inputs, sanitizar outputs e nunca confiar em dados do cliente.
Cite 3 vulnerabilidades do OWASP Top 10 e como mitigar em .NET
1. Injection (A03): EF Core parametriza queries automaticamente via LINQ. Para raw SQL, usar
2. Broken Access Control (A01): Usar
3. Security Misconfiguration (A05): Nunca expor stack traces em producao (
FromSqlInterpolated que gera parametros. Nunca concatenar input em SQL.2. Broken Access Control (A01): Usar
[Authorize(Policy = "...")] com policies granulares. Para acesso a recursos, usar IAuthorizationService.AuthorizeAsync com resource-based authorization.3. Security Misconfiguration (A05): Nunca expor stack traces em producao (
app.UseExceptionHandler), adicionar security headers (X-Content-Type-Options, X-Frame-Options), desabilitar features desnecessarias, manter packages atualizados.