Weitere ähnliche Inhalte Ähnlich wie Construindo aplicações seguras na era da agilidade (20) Construindo aplicações seguras na era da agilidade1. Marlon Gaspar
Arquiteto de Software
mgaspar@modulo.com
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
es
Seguras na Era da Agilidade
2. •
•
•
•
•
•
Introdução
Tipos de Ataques mais comuns em aplicações Web
Metodologia tradicional de desenvolvimento
Métodos ágeis de desenvolvimento
Segurança no desenvolvimento Ágil
Considerações finais
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
Agenda
3. Motivação – Por um lado..
• A diversidade de ataques na plataforma web é maior pois os
sistemas dependem de diversos componentes que estão
expostos a diversos ataques:
– XSS, Sniffing, DoS, Injection, Man in the Middle, CSRF, etc.
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
• Muitos desenvolvedores migraram da plataforma
cliente/servidor para a plataforma web e continuam
trabalhando sob o mesmo mindset de segurança
4. Motivação – Por outro..
• As práticas de desenvolvimento pouco falam sobre
requisitos de segurança
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
• Os programas de segurança em TI ainda são concentrados
na gestão da infra-estrutura
6. Alguns Ataques – Exemplo 1
<html>
<body>
Resultados da busca por Marlon Brando
<li>…</li>
</body>
</html>
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
http://example.com/busca?q=Marlon+Brando
7. Alguns Ataques – Cross-site Scripting (XSS)
<html>
<body>
Resultados da busca por <script>/*código_malicioso*/
</script>
<li>…</li>
</body>
</html>
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
http://example.com/busca?q=<script>/*código_malicioso
*/ </script>
8. Alguns Ataques – Exemplo 2
Módulo – Copyright © Todos os direitos reservados
<img src=“http://mail.example.com/logo.gif”>
www.modulo.com.br
9. Alguns Ataques – Cross-site request forgery (CSRF)
<img src=“http://mail.example.com/
apagaTodasAsMensagens?confirma=true”>
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
<img src=“http://mail.example.com/logo.gif”>
10. Alguns Ataques – Exemplo 3
Módulo – Copyright © Todos os direitos reservados
http://www.meubanco.com/visualizarExtrato?
conta=123153
www.modulo.com.br
11. Alguns Ataques – Controle de Acesso
SELECT * FROM contas WHERE
conta= 123154
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
http://www.meubanco.com/visualizarExtrato?
conta=123154
12. Alguns Ataques – SQL Injection
SELECT * FROM contas WHERE
conta= 123153 ; DROP TABLE contas;
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
http://www.meubanco.com/visualizarExtrato?
conta=123153; DROP TABLE contas;
15. Requisitos
Design
• Requisitos de Segurança
• Revisão da Arquitetura sob
ótica de Segurança
Implementação
• Revisão da Segurança no
Código
Verificação
• Testes de Vulnerabilidades
da Aplicação
Manutenção
www.modulo.com.br
• Testes de Segurança da
Aplicação por Terceiros
Vantagens
- Processo bem compreendido
- Delega aos especialistas em
segurança a identificação de
ameaças e vulnerabilidades
Desvantagens
- Achados das primeiras revisões
de segurança são comumente
ignorados como “teóricos”
- É custoso corrigir falhas
voltando na linha do tempo de
desenvolvimento
Módulo – Copyright © Todos os direitos reservados
Segurança na Metodologia Tradicional
17. Segurança Tradicional + Desenvolvimento Ágil ?
Revisão de
Segurança do
Código
Testes
Implementa
ção das
Histórias
Análise de
Vulnerabilidad
es
Seleção de
Histórias
Revisão da
Arquitetura de
Segurança
Entrega
(Deploy)
Testes
Externos de
Segurança
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
Identificar
Requisitos de
Segurança
Início da
Iteração #N
19. • Uma alternativa ao MS SDL (Microsoft Security Development
Lifecycle), utilizada internamente no desenvolvimento de
produtos Web na Microsoft
• Propõe a quebra da análise e implementação de controles
para requisitos de segurança em três frequências
– Todos os ciclos
– Em rodízio por ciclos
– Uma vez só (ex.: Modelagem de ameaças)
• Incentiva o uso intensivo de bibliotecas de controles padrão
e ferramentas de análise de códigos integradas ao processo
de build / release
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
Uma proposta – Microsoft Agile SDL
21. Histórias de Usuários
• Eu gostaria de atualizar o
meu perfil com uma data
de nascimento válida, de
modo a receber descontos
no meu aniversário
-
• Controles: validação de
dados de entrada
Como um Usuário …
Como um Usuário …
• Eu quero ser o único capaz
de atualizar o salário dos
funcionários, de modo a
prevenir fraudes
• Eu quero acompanhar e
monitorar todas as
transações, de modo que
ataques possam ser
detectados
• Controles: Controle de
Acesso baseado em papéis
Como um Gerente …
www.modulo.com.br
• Controles: Log e Detecção
de Intrusão
Como Gestor do
Negócio …
-
Histórias de Usuários são úteis
para Controle de
Acesso, Criptografia, logging, e
diversas outras funções de
segurança
Alguns riscos técnicos precisam
de considerações adicionais
para serem tratados por
Histórias de Usuários
-
XSS
CSRF
Módulo – Copyright © Todos os direitos reservados
• Eu gostaria de atualizar o
meu perfil com minha data
de nascimento, de modo a
receber descontos no meu
aniversário
22. Testes Automatizados
• Testes executados continuamente por toda a equipe
• Testar falhas de segurança mais comuns
– Testar validação de dados de entrada com parâmetros maliciosos
– Testar controle de acesso executando o teste no contexto de
usuários associados a diferentes papéis
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
– Os testes unitários devem incluir validações de segurança
– Incluir a avaliação dos testes nas revisões de código
23. Utilizar Controles em Bibliotecas Padrão
Use Standard Security Controls
OWASP&
Enterprise&
Security& (ESAPI)&
API&
http://www.owasp.org/index.php/ESAPI&
Módulo – Copyright © Todos os direitos reservados
Custom Enterprise Web Application
Enterprise Security API
Validator
User
Security
configuration
Randomizer
Logger
Log Factory
Intrusion
Detector
HTTP Utilities
Executor
Encryptor
Encrypted
Properties
Encoder
Authenticator
Access
Reference Map
Access
Controller
Existing Enterprise Security Services/Libraries
www.modulo.com.br
OWASP Brazil 2009
19
24. Treinamento em Segurança
• Ataques estão sempre evoluindo
• Desenvolvedores em equipes ágeis escrevem seus próprios
testes
– Precisam testar a segurança adequadamente
• Finalmente, todos os membros de um time são responsáveis
pela segurança do software
– Todos os membros precisam de um entendimento mínimo sobre
segurança em aplicações web
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
– Os desenvolvedores devem entender os ataques e possíveis
controles para mitigar os riscos
25. Consolidar os ciclos (sprints)
História de
Perfil de
Usuário
Sprint #N
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
História de
Segurança
de Senha
História de
Login de
Usuário
26. Juntando as peças
• Identificar as principais ameaças à aplicação
Definir Histórias de
Segurança
• Definir as histórias que explicitem os requisitos
de segurança om base nas ameaças
identificadas
Criar Testes
Unitários com foco
em sefgurança
• Testar os métodos com entradas inesperadas
• Verificar o uso de controles de segurança
Consolidar os ciclos
www.modulo.com.br
• Agrupar histórias por critérios de segurança
Módulo – Copyright © Todos os direitos reservados
Modelar ameaças
28. Módulo – Copyright © Todos os direitos reservados
Perguntas?
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
www.modulo.com.br
29. Módulo – Copyright © Todos os direitos reservados
Obrigado!
Marlon Gaspar
mgaspar@modulo.com
Twitter: @marlongaspar
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados
www.modulo.com.br