segurança no desenvolvimento de software

15

Click here to load reader

Upload: marcelo-machado-fleury

Post on 24-May-2015

3.759 views

Category:

Technology


3 download

DESCRIPTION

Apresentação sobre SDL/CLASSP realizada em uma aula de graduação em analise de sistema.

TRANSCRIPT

Page 1: Segurança no Desenvolvimento de Software

   

Segurança no desenvolvimento de software

Marcelo M. Fleury…  #GOPHP, #GOJAVA,  #PSL­GO, #FUG­BR, #CISSP­BR …

[email protected]

http://marcelomf.blogspot.com

Page 2: Segurança no Desenvolvimento de Software

   

Agenda

Motivação Metodologias para desenvolvimento de 

software Processos para o desenvolvimento de software 

seguro Boas práticas Testes de invasão(pentest) Equipes especialistas Certificações

Page 3: Segurança no Desenvolvimento de Software

   

Motivação

Vulnerabilidades Ataques Imagem Riscos ROI ­ Custo/Benefício

Page 4: Segurança no Desenvolvimento de Software

   

Metodologias para desenvolvimento de software Cascata

Rup

Cmmi

Mps/Br

Spice

ISO 12207

Espiral

Xp

Scrum

Page 5: Segurança no Desenvolvimento de Software

   

Desenvolvimento de software seguro SDL ­ Processos bem definidos aliados a 

metodologia de desenvolvimento, possui como foco único e exclusivo a segurança, exigindo um SOC(Centro de operações de segurança) e analises finais de segurança.

OWASP/CLASP ­ Um 'framework" com processos bem definidos e flexiveis ao ponto de viabilizar relacionamentos não custosos com a metodologia de desenvolvimento de software utilizada pela empresa.

Page 6: Segurança no Desenvolvimento de Software

   

SDL ­ Microsoft Comparação do SDL com o desenvolvimento 

em espiral utilizado pela microsoft

Uso de Uso de FerramentasFerramentase Melhorese MelhoresPraticas de Praticas de Desenv. eDesenv. e

Teste Teste

Criação deCriação deDocs e Docs e

FerramentasFerramentaspara opara o

ProdutoProduto

PrepararPrepararPlano dePlano deResposta Resposta

Security Security Push Push

TesteTestePenet. Penet.

RevisãoRevisãoFinal deFinal de

Segurança Segurança

ManutençãoManutençãode de

SegurançaSegurançae Respostae Respostaa Incidentesa Incidentes

Lista de RecursosLista de RecursosGuias de QualidadeGuias de QualidadeDocs de ArquiteturaDocs de Arquitetura

CronogramasCronogramas

EspecificaçõesEspecificaçõesDo DesignDo Design Teste e VerificaçãoTeste e Verificação

DesenvolvimentoDesenvolvimentode Novo Códigode Novo Código Correção de BugsCorreção de Bugs

Ass. do Ass. do Código Código

AprovaçãoAprovaçãoFinalFinal

Rel. Cand.Rel. Cand.

RTMRTM

Suporte ao Suporte ao ProdutoProduto

Service Packs/Service Packs/CorreçõesCorreções

RequisitosRequisitos DesignDesign ImplementaçãoImplementação VerificaçãoVerificação LançamentoLançamentoSuporteSuporte

eeManutençãoManutenção

Treinamento de SegurançaTreinamento de Segurança

Kickoff de Kickoff de SegurançaSegurança

e Registro come Registro como SWIo SWI

MelhoresMelhoresPráticasPráticas

de Designde Design

Arquitetura de Arquitetura de SegurançaSegurança

ModelagemModelagemDe AmeaçasDe Ameaças

EspeficicaçõesEspeficicaçõesFuncionaisFuncionais

Tarefas e Processos Tradicionais no Desenvolvimento de Produtos da MicrosoftTarefas e Processos Tradicionais no Desenvolvimento de Produtos da Microsoft

Tarefas Introduzidas pelo Processo de Desenvolvimento Seguro (SDL)Tarefas Introduzidas pelo Processo de Desenvolvimento Seguro (SDL)

Page 7: Segurança no Desenvolvimento de Software

   

Boas práticas

Treinamentos para a equipe de desenvolvimento

Privilégio Mínimo Execução Mínima Segregação de função TDD ­ Desenvolvimento orientado a testes

Page 8: Segurança no Desenvolvimento de Software

   

... Boas praticas

Modelagem de ameaças Revisão de código Padrões de projeto Refactoring Manter­se atualizado(securityfocus, milworm, 

etc)

Page 9: Segurança no Desenvolvimento de Software

   

Testes de invasão(pentest)

OSSTMM ­ Metodologia open source para testes de invasão.

Externos X Internos, é importante que terceiros testem o software desenvolvido, evitando assim vícios da equipe de desenvolvimento e ou segurança.

Page 10: Segurança no Desenvolvimento de Software

   

Tipos de testes de invasão White Box ­ Situação na qual o atacante possui 

total acesso ao sistema e tudo aquilo que foi utilizado para o desenvolvimento do mesmo(códigos, documentação, desenvolvedores...)

Grey box ­ Situação na qual o atacante possui a visão do usuário, com algumas facilidades propostas pela empresa(acesso a binários, libs, alguma documentação...)

Black Box ­ Situação na qual o atacante inicia­se como usuário.

Page 11: Segurança no Desenvolvimento de Software

   

Práticas em testes de invasão

Automatizados, utilizando valores aleatórios(fuzzing) e até mesmo inteligentes

Manuais(know­how by tester, OWASP) Framework's de exploits(metasploit) Ferramentas para varreduras(nmap, nessus) Ferramentas para analise de código estático Ferramentas para engenharia 

reversa/debug(gdb, olydbg)

Page 12: Segurança no Desenvolvimento de Software

   

Equipes especialistas

Time de Resposta a incidentesEquipe responsável por catalogar, amparar, analisar e solucionar incidentes relacionados a segurança.

Centro de operações de segurançaEquipe responsável por amparar, auditar, fiscalizar e esmiuçar os processos, técnicas e métodos relativos a segurança, utilizados pela a equipe de desenvolvimento.

Hackers!

Page 13: Segurança no Desenvolvimento de Software

   

Certificações

CISSP ­ Certified Information Systems Security Professional

CEH ­ Certified Ethical Hacker MCSO ­ Módulo Certified Security Officer CSSLP ­ Certified Secure Software Lifecycle 

Professional

Page 14: Segurança no Desenvolvimento de Software

   

Perguntas ?

Page 15: Segurança no Desenvolvimento de Software

   

Obrigado!