A apresentação discute a importância da segurança no desenvolvimento de software. Aborda os requisitos mínimos para um software ser considerado seguro, como revisão de código, análise de risco da arquitetura e pentesting. Também apresenta projetos da OWASP como o Top 10, ASVS e guia de testes que fornecem diretrizes para o desenvolvimento seguro de aplicações.
Como invadir uma exchange - Um relatório geral de segurança de corretoras de ...
Validando Segurança Software
1. Validando a Segurança!
de Software
Jerônimo Zucco
jeronimo.zucco@owasp.org
Terceira Jornada Acadêmica de Computação e Tecnologia da Informação da
UCS:Tendências em TI
2. About Me
• Blog: http://jczucco.blogspot.com
• Twitter: @jczucco
• http://www.linkedin.com/in/jeronimozucco
• http://www.owasp.org/index.php/User:Jeronimo_Zucco
• Algumas certificações na área de segurança
3. OWASP
Open Web Application
Security Project
• Uma comunidade aberta dedicada
a ajudar as organizações a
desenvolver, comprar e manter
aplicações que possam ser
confiáveis.
4. OWASP
• Promover o desenvolvimento seguro
• Auxiliar a tomada de decisão quanto ao
risco
• Oferecer recursos gratuitos
• Promover a contribuição e
compartilhamento de informação
4
5. OWASP no RS
5
https://www.owasp.org/index.php/Porto_Alegre
14. É fácil testar se um recurso
de um programa funciona ou
não, mas é muito difícil
afirmar se um sistema é
suficientemente seguro para
resistir á um ataque malicioso
14
15. Números
• 86% dos sites testados possuem ao
menos uma vulnerabilidade grave
• 61% desses problemas foram corrigidos
após notificação
• 193 dias em média para a correção ser
realizada desde a notificação
15
Fonte: Whitehat Stats Report 2013
22. Defeitos de um Software
• Bug: defeitos na implementação
– Buffer overflow
– Condições de corrida
– Variáveis de ambiente inseguras
– Chamadas de sistema inseguras
– Entrada de dados não confiáveis
22
23. Defeitos de um Software
• Falhas: defeitos no design
– Não uso de criptografia
– Problemas de compartimentalização
– Falha na proteção de áreas privilegiadas
– Falhas de segurança
– Auditoria insegura
– Controle de acesso quebrado
23
24. 6 Estágios de Debbuging
1. Isso não pode acontecer
2. Isso não acontece na minha máquina
3. Isso não deveria acontecer
4. Porque isso acontece?
5. Hum, eu vejo.
6. Como isso sempre funcionou?
24
26. Revisão de Código
• Análise estática: Análise de código
sem execução. Pode gerar falso
positivos, integrado com IDE (eclipse,
(Ex: Coverity, Fortify (HP), FindBugs
(Opensource)
• Análise dinâmica: Análise de
programa durante sua execução
26
27. Análise de Risco da
Arquitetura
• Exemplos: Dados críticos sem proteção:
web service sem autenticação ou
controle de acesso
• Ativo, Risco, Ameaça, Contramedida,
Impacto
• STRIDE (Microsoft), ASSET (Automated
Security self-Evaluation Tool), OCTAVE
(Operational Critical Threat, Assset and
Vulnerability Evaluation), COBIT (ISACA)
27
29. Casos de Abuso
!
• Testes de segurança baseado no risco
• Casos de abuso:
– Tampering Attack
• Requerimentos de segurança
• Operações de segurança
29
30. Microsoft SDL Security
Development Lifecycle
https://www.microsoft.com/security/sdl/default.aspx
30
32. OWASP Top 10
• Top 10 Vulnerabilidades em Apps. Web
– Atualizado a cada 3 anos.
– Baseado em dados obtidos de aplicações
na Internet
– Aceitação crescente pela indústria
• Um bom começo para criação de
práticas seguras de desenvolvimento
nas organizações
32
34. IEEE Top 10 Software
Security Design Flaws
• Earn or give, but never assume, trust
• Use an authentication mechanism that
cannot be bypassed or tampered with
• Authorize after you authenticate
• Strictly separate data and control
instructions, and never process control
instructions received from untrusted
sources
• Define an approach that ensures all
data are explicitly validated
34
35. IEEE Top 10 Software
Security Design Flaws
• Use cryptography correctly
• Identify sensitive data and how they
should be handled
• Always consider the users
• Understand how integrating external
components changes your attack
surface
• Be flexible when considering future
changes to objects and actors
35
36. OWASP ASVS
Application Security Verification
Standard Project
• Authentication Verification
• Session Management Verification
• Access Control Verification
• Malicious Input Handling Verification
• Cryptography at Rest Verification
• Error Handling and Logging Verification
• Data Protection Verification
36
Requisitos:
37. OWASP ASVS
Application Security Verification
Standard Project
• Communications Security Verification
• HTTP Security Verification
• Malicious Controls Verification
• Business Logic Verification
• Files and Resources Verification
• Mobile Verification Requirements
37
Requisitos:
40. OWASP Testing_Guide v4
• Input Validation Testing
• Testing for Error Handling
• Testing for weak Cryptography
• Business Logic Testing
• Client Side Testing
40
41. Desenvolvedores
• Requisitos de segurança de aplicações;
• Arquitetura de aplicações seguras;
• Controles de segurança padrões;
• Ciclo de vida de desenvolvimento (SDL)
• Educação sobre segurança de
aplicações
• Uso de componentes seguros
• Projetos OWASP
41
42. Considerações
• Não inicie com pessoas da área de
segurança de rede
• Segurança de software exige esforço
multidisciplinar
• Treine sua equipe de desenvolvimento
• Determine o que é suficiente
• Sem medir, não sabemos onde estamos
e nem se estamos evoluindo
42