Construindo aplicações seguras na era da agilidade

  • 110 views
Uploaded on

Construindo aplicações seguras na era da agilidade

Construindo aplicações seguras na era da agilidade

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
110
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. • • • • • • 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
  • 5. www.modulo.com.br Módulo – Copyright © Todos os direitos reservados revisando alguns tipos de ataques
  • 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;
  • 13. www.modulo.com.br Módulo – Copyright © Todos os direitos reservados metodologias de desenvolvimento
  • 14. Metodologia Tradicional (Cascata) Design Implementação Verificação Manutenção www.modulo.com.br Módulo – Copyright © Todos os direitos reservados Requisitos
  • 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. 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. 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. Módulo – Copyright © Todos os direitos reservados Como equacionar? www.modulo.com.br
  • 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. Módulo – Copyright © Todos os direitos reservados em partes.. www.modulo.com.br
  • 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
  • 27. Módulo – Copyright © Todos os direitos reservados Juntando as peças www.modulo.com.br
  • 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