Integrando testes de segurança ao processo de desenvolvimento de software
1. ®
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
®
2. ®
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
6. ®
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
8. ®
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
10. ®
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
12. ®
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
13. ®
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
16. ®
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
17. ®
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