Upload
conviso-application-security
View
248
Download
7
Embed Size (px)
DESCRIPTION
O processo de teste automatizado de segurança de software e a automação de processos de operação (DevOps)
Citation preview
®
Integrando testes de segurança ao processo de desenvolvimento de software BSides SP – 24 Novembro 2013 Wagner Elias Email: [email protected] Twitter: @welias
®
®
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
®
E a segurança?
®
®
Não tem controle de versão?
®
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
®
Código também precisa ser integrado
®
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
®
Erros em produção são irreversíveis
#vaicorinthians
®
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
®
Ok! E os testes de segurança?
®
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
®
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
®
Assim fácil?
®
Isso é o começo!
®
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
®
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
®
Obrigado
®
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/