integrando testes de segurança ao processo de desenvolvimento de software

19
® Integrando testes de segurança ao processo de desenvolvimento de software BSides SP – 24 Novembro 2013 Wagner Elias Email: [email protected] Twitter: @welias ®

Upload: conviso-application-security

Post on 27-Jun-2015

245 views

Category:

Software


7 download

DESCRIPTION

O processo de teste automatizado de segurança de software e a automação de processos de operação (DevOps)

TRANSCRIPT

Page 1: Integrando testes de segurança ao processo de desenvolvimento de software

®

Integrando testes de segurança ao processo de desenvolvimento de software BSides SP – 24 Novembro 2013 Wagner Elias Email: [email protected] Twitter: @welias

®

Page 2: Integrando testes de segurança ao processo de desenvolvimento de software

®

Um pouco sobre desenvolvimento

•  Repositório e Versionamento de Código: fundamental para qualquer estratégia de desenvolvimento

•  Integração: transforma vários pedaços de código em um produto de software

•  Testes: realiza análises automatizadas antes do deploy

•  Deploy: disponibiliza para uso um produto de software estável e validado

Page 3: Integrando testes de segurança ao processo de desenvolvimento de software

®

E a segurança?

Page 4: Integrando testes de segurança ao processo de desenvolvimento de software

®

Page 5: Integrando testes de segurança ao processo de desenvolvimento de software

®

Não tem controle de versão?

Page 6: Integrando testes de segurança ao processo de desenvolvimento de software

®

Repositórios de Código

Não existe software estável sem um bom processo e boas ferramentas de controle de versão •  Controle do histórico •  Trabalho em equipe •  Resgate de versões •  Ramificação de projeto

Page 7: Integrando testes de segurança ao processo de desenvolvimento de software

®

Código também precisa ser integrado

Page 8: Integrando testes de segurança ao processo de desenvolvimento de software

®

Integração Contínua

Faça integração automática com as práticas de integração contínua •  Valide padrões estabelecidos •  Consolide um produto de software estável •  Dê feedback aos desenvolvedores

Page 9: Integrando testes de segurança ao processo de desenvolvimento de software

®

Erros em produção são irreversíveis

#vaicorinthians

Page 10: Integrando testes de segurança ao processo de desenvolvimento de software

®

Deploy Contínuo

Automatize o processo de publicação das suas aplicações após critérios claros de aceitação •  Crie receitas para configurações •  Dispare ações de validação em produção •  Dê feedback aos usuários

Page 11: Integrando testes de segurança ao processo de desenvolvimento de software

®

Ok! E os testes de segurança?

Page 12: Integrando testes de segurança ao processo de desenvolvimento de software

®

Durante a integração Contínua

Uma das verificações executadas pela IC pode ser uma revisão automatizada de código do inglês SAST (Static Application Security Testing) que irá analisar a segurança do código fonte •  Indentifique vulnerabilidades que não são

identificadas em testes black-box •  Análise e aprenda com os erros durante o

desenvolvimento do código

Page 13: Integrando testes de segurança ao processo de desenvolvimento de software

®

Após o Deploy Contínuo

O Processo de DC pode disparar eventos para análises dinâmicas do inglês DAST (Dynamic Application Security Testing) que irá analisar a segurança da aplicação rodando •  Indentifique vulnerabilidades que não são

identificadas em testes white-box •  Ateste que sua aplicação não possui

vulnerabilidades em produção

Page 14: Integrando testes de segurança ao processo de desenvolvimento de software

®

Assim fácil?

Page 15: Integrando testes de segurança ao processo de desenvolvimento de software

®

Isso é o começo!

Page 16: Integrando testes de segurança ao processo de desenvolvimento de software

®

Workflow para testes avançados

Testes automatizados possuem limitações, é necessário executar testes manuais. Dispare testes especializados a partir de eventos dos processos de Integração e Deploy Contínuo •  Penetration Test •  Code Review Manual •  Testes de Stress

Page 17: Integrando testes de segurança ao processo de desenvolvimento de software

®

Gestão das vulnerabilidades

Vulnerabilidades sempre irão existir, o que irá lhe diferenciar é como você trata elas. Fazer gestão não é identificar e sim priorizar e aplicar os devidos controles

Page 18: Integrando testes de segurança ao processo de desenvolvimento de software

®

Obrigado

Page 19: Integrando testes de segurança ao processo de desenvolvimento de software

®

Referências

•  Integração Contínua - http://martinfowler.com/articles/continuousIntegration.html

•  Deploy Contínuo - http://puppetlabs.com/blog/continuous-delivery-vs-continuous-deployment-whats-diff

•  OWASP CISO Guide - https://www.owasp.org/index.php/Application_Security_Guide_For_CISOs

•  Diferenças entre SAST e DAST - http://blogs.gartner.com/neil_macdonald/2011/01/19/static-or-dynamic-application-security-testing-both/