construindo aplicações seguras na era da agilidade

29
Módulo – Copyright © Todos os direitos reservados www.modulo.com.br Módulo – Copyright © Todos os direitos reservados www.modulo.com.br Construindo Aplicaes Seguras na Era da Agilidade Marlon Gaspar Arquiteto de Software [email protected]

Upload: marlongaspar

Post on 18-Dec-2014

114 views

Category:

Technology


2 download

DESCRIPTION

Construindo aplicações seguras na era da agilidade

TRANSCRIPT

Page 1: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

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

www.modulo.com.br

Construindo Aplicacoes Seguras na Era da Agilidade

Marlon GasparArquiteto de [email protected]

Page 2: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

• 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

Agenda

Page 3: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

• Muitos desenvolvedores migraram da plataforma cliente/servidor para a plataforma web e continuam trabalhando sob o mesmo mindset de segurança

• 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.

Motivacão – Por um lado..

Page 4: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

• Os programas de segurança em TI ainda são concentrados na gestão da infra-estrutura

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

Motivacão – Por outro..

Page 5: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

revisando alguns tipos de ataques

Page 6: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

http://example.com/busca?q=Marlon+Brando

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

Alguns Ataques – Exemplo 1

Page 7: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

http://example.com/busca?q=<script>/*código_malicioso*/ </script>

<html> <body> Resultados da busca por <script>/*código_malicioso*/ </script> <li>…</li> </body> </html>

Alguns Ataques – Cross-site Scripting (XSS)

Page 8: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

<img src=“http://mail.example.com/logo.gif”>

Alguns Ataques – Exemplo 2

Page 9: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

<img src=“http://mail.example.com/logo.gif”>

<img src=“http://mail.example.com/apagaTodasAsMensagens?confirma=true”>

Alguns Ataques – Cross-site request forgery (CSRF)

Page 10: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

http://www.meubanco.com/visualizarExtrato? conta=123153

Alguns Ataques – Exemplo 3

Page 11: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

http://www.meubanco.com/visualizarExtrato? conta=123154

SELECT * FROM contas WHERE conta= 123154

Alguns Ataques – Controle de Acesso

Page 12: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

http://www.meubanco.com/visualizarExtrato? conta=123153; DROP TABLE contas;

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

Alguns Ataques – SQL Injection

Page 13: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

metodologias de desenvolvimento

Page 14: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Metodologia Tradicional (Cascata)

Page 15: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Seguranca na Metodologia Tradicional

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

Page 16: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Desenvolvimento Ágil

Page 17: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Seguranca Tradicional + Desenvolvimento Ágil ?

Page 18: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Como equacionar?

Page 19: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Uma proposta – Microsoft Agile SDL

• 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

Page 20: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

em partes..

Page 21: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Histórias de Usuários

- 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

Page 22: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Testes Automatizados

• Testes executados continuamente por toda a equipe– Os testes unitários devem incluir validações de segurança– Incluir a avaliação dos testes nas revisões de código

• 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

Page 23: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Utilizar Controles em Bibliotecas Padrão

Page 24: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Treinamento em Seguranca

• Ataques estão sempre evoluindo– Os desenvolvedores devem entender os ataques e possíveis

controles para mitigar os riscos• 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

Page 25: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Consolidar os ciclos (sprints)

Page 26: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Juntando as pecas

Page 27: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

www.modulo.com.br

Juntando as pecas

Page 28: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

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

www.modulo.com.br

Perguntas?

Page 29: Construindo aplicações seguras na era da agilidade

Mód

ulo

– Co

pyrig

ht ©

Tod

os o

s di

reito

s re

serv

ados

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

www.modulo.com.br

Obrigado!

Marlon [email protected]: @marlongaspar