Marlon Gaspar
Arquiteto de Software
mgaspar@modulo.com

www.modulo.com.br

Módulo – Copyright © Todos os direitos reservad...
•
•
•
•
•
•

Introdução
Tipos de Ataques mais comuns em aplicações Web
Metodologia tradicional de desenvolvimento
Métodos ...
Motivação – Por um lado..

• A diversidade de ataques na plataforma web é maior pois os
sistemas dependem de diversos comp...
Motivação – Por outro..

• As práticas de desenvolvimento pouco falam sobre
requisitos de segurança

www.modulo.com.br

Mó...
www.modulo.com.br

Módulo – Copyright © Todos os direitos reservados

revisando alguns tipos de
ataques
Alguns Ataques – Exemplo 1

<html>
<body>
Resultados da busca por Marlon Brando
<li>…</li>
</body>
</html>

www.modulo.com...
Alguns Ataques – Cross-site Scripting (XSS)

<html>
<body>
Resultados da busca por <script>/*código_malicioso*/
</script>
...
Alguns Ataques – Exemplo 2

Módulo – Copyright © Todos os direitos reservados

<img src=“http://mail.example.com/logo.gif”...
Alguns Ataques – Cross-site request forgery (CSRF)

<img src=“http://mail.example.com/
apagaTodasAsMensagens?confirma=true...
Alguns Ataques – Exemplo 3

Módulo – Copyright © Todos os direitos reservados

http://www.meubanco.com/visualizarExtrato?
...
Alguns Ataques – Controle de Acesso

SELECT * FROM contas WHERE
conta= 123154

www.modulo.com.br

Módulo – Copyright © Tod...
Alguns Ataques – SQL Injection

SELECT * FROM contas WHERE
conta= 123153 ; DROP TABLE contas;

www.modulo.com.br

Módulo –...
www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados

metodologias de
desenvolvimento
Metodologia Tradicional (Cascata)

Design
Implementação
Verificação
Manutenção
www.modulo.com.br

Módulo – Copyright © Tod...
Requisitos

Design

• Requisitos de Segurança

• Revisão da Arquitetura sob
ótica de Segurança

Implementação

• Revisão d...
Desenvolvimento Ágil

Entrega
(Deploy)

Testes
(Automati
zados)

www.modulo.com.br

Seleção
de
Histórias

Implemen
tação d...
Segurança Tradicional + Desenvolvimento Ágil ?

Revisão de
Segurança do
Código

Testes

Implementa
ção das
Histórias

Anál...
Módulo – Copyright © Todos os direitos reservados

Como equacionar?

www.modulo.com.br
• Uma alternativa ao MS SDL (Microsoft Security Development
Lifecycle), utilizada internamente no desenvolvimento de
produ...
Módulo – Copyright © Todos os direitos reservados

em partes..

www.modulo.com.br
Histórias de Usuários
• Eu gostaria de atualizar o
meu perfil com uma data
de nascimento válida, de
modo a receber descont...
Testes Automatizados
• Testes executados continuamente por toda a equipe

• Testar falhas de segurança mais comuns
– Testa...
Utilizar Controles em Bibliotecas Padrão
Use Standard Security Controls
OWASP&
Enterprise&
Security& (ESAPI)&
API&
http://...
Treinamento em Segurança
• Ataques estão sempre evoluindo

• Desenvolvedores em equipes ágeis escrevem seus próprios
teste...
Consolidar os ciclos (sprints)

História de
Perfil de
Usuário

Sprint #N
www.modulo.com.br

Módulo – Copyright © Todos os ...
Juntando as peças

• Identificar as principais ameaças à aplicação

Definir Histórias de
Segurança

• Definir as histórias...
Módulo – Copyright © Todos os direitos reservados

Juntando as peças

www.modulo.com.br
Módulo – Copyright © Todos os direitos reservados

Perguntas?

www.modulo.com.br

Módulo – Copyright © Todos os direitos r...
Módulo – Copyright © Todos os direitos reservados

Obrigado!
Marlon Gaspar
mgaspar@modulo.com
Twitter: @marlongaspar

www....
Próximos SlideShares
Carregando em…5
×

Construindo aplicações seguras na era da agilidade

367 visualizações

Publicada em

Construindo aplicações seguras na era da agilidade

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
367
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Construindo aplicações seguras na era da agilidade

  1. 1. 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. 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. 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. 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
  5. 5. www.modulo.com.br Módulo – Copyright © Todos os direitos reservados revisando alguns tipos de ataques
  6. 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. 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. 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. 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. 10. Alguns Ataques – Exemplo 3 Módulo – Copyright © Todos os direitos reservados http://www.meubanco.com/visualizarExtrato? conta=123153 www.modulo.com.br
  11. 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. 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;
  13. 13. www.modulo.com.br Módulo – Copyright © Todos os direitos reservados metodologias de desenvolvimento
  14. 14. Metodologia Tradicional (Cascata) Design Implementação Verificação Manutenção www.modulo.com.br Módulo – Copyright © Todos os direitos reservados Requisitos
  15. 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
  16. 16. Desenvolvimento Ágil Entrega (Deploy) Testes (Automati zados) www.modulo.com.br Seleção de Histórias Implemen tação das Histórias Módulo – Copyright © Todos os direitos reservados Início da Iteração #N
  17. 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
  18. 18. Módulo – Copyright © Todos os direitos reservados Como equacionar? www.modulo.com.br
  19. 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
  20. 20. Módulo – Copyright © Todos os direitos reservados em partes.. www.modulo.com.br
  21. 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. 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. 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. 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. 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. 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
  27. 27. Módulo – Copyright © Todos os direitos reservados Juntando as peças www.modulo.com.br
  28. 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. 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

×