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

Conviso Application Security
Conviso Application SecurityApplication Security en Application Security
®
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/
1 de 19

Más contenido relacionado

La actualidad más candente(20)

Test Driven DevelopmentTest Driven Development
Test Driven Development
Otavio Augusto140 vistas
Aula 01   engenharia de softwareAula 01   engenharia de software
Aula 01 engenharia de software
elisanesteilmann39 vistas
Integracao continua-e-phpIntegracao continua-e-php
Integracao continua-e-php
Alberto Guimarães Viana872 vistas
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
Kleber Bernardo821 vistas
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
Eduardo Mendes1.2K vistas
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
Paulo César M Jeveaux17.2K vistas
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
Samanta Cicilia1.1K vistas
SAPO Session: Continuous IntegrationSAPO Session: Continuous Integration
SAPO Session: Continuous Integration
Pedro Mata-Mouros Fonseca243 vistas
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
Rafaela Prado190 vistas
Da Integração à Entrega ContínuaDa Integração à Entrega Contínua
Da Integração à Entrega Contínua
Marlon Bernardes1.3K vistas
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)
Samanta Cicilia1.1K vistas
Teste de softwareTeste de software
Teste de software
Nylce Garcia167 vistas
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.
Vinta Software412 vistas

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

SonarQubeSonarQube
SonarQubeCDS
530 vistas24 diapositivas

Similar a Integrando testes de segurança ao processo de desenvolvimento de software(20)

Continuous DeploymentContinuous Deployment
Continuous Deployment
Welington Oliveira da Silva184 vistas
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
Mauricio Cesar Santos da Purificação991 vistas
SonarQubeSonarQube
SonarQube
CDS530 vistas
SonarqubeSonarqube
Sonarqube
CDS1.7K vistas
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
Rudson Kiyoshi Souza Carvalho1.4K vistas
DevOps 101DevOps 101
DevOps 101
Gabriel Olivério14 vistas
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
Adriano Bertucci2.9K vistas
Integração ContínuaIntegração Contínua
Integração Contínua
ScrumHalf Tool652 vistas
Brisa   Qualidade e Testes de softwareBrisa   Qualidade e Testes de software
Brisa Qualidade e Testes de software
Gilda M Manetti Lauriano452 vistas
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
Ramon Durães624 vistas
Teste de SoftwareTeste de Software
Teste de Software
Roberto Espinha718 vistas

Más de Conviso Application Security(20)

Entendendo o PCI-DSSEntendendo o PCI-DSS
Entendendo o PCI-DSS
Conviso Application Security836 vistas
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking
Conviso Application Security5.3K vistas
Building Client-Side Attacks with HTML5 FeaturesBuilding Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 Features
Conviso Application Security3.2K vistas
Você Escreve Código e Quem Valida?Você Escreve Código e Quem Valida?
Você Escreve Código e Quem Valida?
Conviso Application Security631 vistas
Testar não é suficiente. Tem que fazer direito!Testar não é suficiente. Tem que fazer direito!
Testar não é suficiente. Tem que fazer direito!
Conviso Application Security551 vistas
Automatizando a análise passiva de aplicações WebAutomatizando a análise passiva de aplicações Web
Automatizando a análise passiva de aplicações Web
Conviso Application Security471 vistas
Você confia nas suas aplicações mobile?Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?
Conviso Application Security597 vistas
Pentest em Aplicações MóveisPentest em Aplicações Móveis
Pentest em Aplicações Móveis
Conviso Application Security1.4K vistas
HTML5 Seguro ou Inseguro?HTML5 Seguro ou Inseguro?
HTML5 Seguro ou Inseguro?
Conviso Application Security503 vistas
Threats from economical improvement rss 2010Threats from economical improvement rss 2010
Threats from economical improvement rss 2010
Conviso Application Security795 vistas
Encontrando falhas em aplicações web baseadas em flashEncontrando falhas em aplicações web baseadas em flash
Encontrando falhas em aplicações web baseadas em flash
Conviso Application Security734 vistas
Protegendo Aplicações Php com PHPIDS - Php Conference 2009Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Conviso Application Security947 vistas
Playing Web Fuzzing - H2HC 2009Playing Web Fuzzing - H2HC 2009
Playing Web Fuzzing - H2HC 2009
Conviso Application Security540 vistas
OWASP Top 10 e aplicações .Net - Tech-Ed 2007OWASP Top 10 e aplicações .Net - Tech-Ed 2007
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
Conviso Application Security576 vistas
Abotoaduras & BonésAbotoaduras & Bonés
Abotoaduras & Bonés
Conviso Application Security345 vistas
Tratando as vulnerabilidades do Top 10 com phpTratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com php
Conviso Application Security3.8K vistas
Extreme Web Hacking - h2hc 2008Extreme Web Hacking - h2hc 2008
Extreme Web Hacking - h2hc 2008
Conviso Application Security386 vistas

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
  • 4. ®
  • 5. ® Não tem controle de versão?
  • 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
  • 9. ® Erros em produção são irreversíveis #vaicorinthians
  • 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
  • 11. ® Ok! E os testes de segurança?
  • 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
  • 15. ® Isso é o começ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
  • 19. ® 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/