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

Post on 27-Jun-2015

245 views 7 download

description

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

Transcript of 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: welias@conviso.com.br 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/