SlideShare uma empresa Scribd logo
1 de 37
 
Como fazer revisão e testes de código para identificar problemas (bugs) de segurança. Wagner Elias Research & Development Manager Conviso IT Security http://wagnerelias.com SEG303:
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introdução Os testes de segurança de software são essenciais para garantir a Confidencialidade, integridade e disponibilidade das informações que serão tratadas pelo software Testes de segurança de software garantem que requisitos de segurança de software foram garantidos mesmo quando estes requisitos não fazem parte das especificações funcionais
Os principais problemas de segurança de Software ,[object Object],[object Object],[object Object]
Buffer Overflow buffer overflow  ou  buffer overrun   acontece quando o tamanho de um  buffer  ultrapassa sua capacidade máxima de  armazenamento
Exemplo de Buffer Overflow void CopyStuff(string data) { char buffer[128]; strcpy(buffer,data); // do other stuff } Se este dado é maior do que o buffer Então esta função irá estourar o buffer
SQL Injection SQL injection é um tipo de ataque muito simples, baseia-se na execução de comandos SQL. Comandos de manipulação de dados - DML (select, insert, update, delete) ou comandos de definição de dados - DDL (create, drop, alter). Os comandos são injetados em campos de formulários que são disponibilizados para o usuário inserir/tratar informações
Exemplo de SQL Injection string Status = "No"; string sqlstring =""; try { SqlConnection sql= new SqlConnection( @"data source=localhost;" +  "user id=sa;password=password;"); sql.Open(); sqlstring="SELECT HasShipped" + " FROM detail WHERE ID='" + Id + "'"; SqlCommand cmd = new SqlCommand(sqlstring,sql); if ((int)cmd.ExecuteScalar() != 0) Status = "Yes"; } catch (SqlException se) { Status = sqlstring + " failed"; foreach (SqlError e in se.Errors) { Status += e.Message + ""; } } catch (Exception e) { Status = e.ToString(); }
XSS (Cross Site Scripting) Uma falha no servidor que leva a um comprometimento do cliente. A falha é simplesmente ecoar input do usuário sem uma validação adequada.
Exemplo de XSS (Cross Site Scripting) Welcome.asp Hello, <%= request.querystring(‘name’)%> Mantém o badsite.com
Por que testes de segurança? ,[object Object],[object Object],[object Object],[object Object],[object Object]
O papel do testador de segurança? ,[object Object],[object Object],[object Object],[object Object]
Abordagens para teste de segurança? ,[object Object],[object Object],[object Object]
White-Box ,[object Object],[object Object],[object Object],[object Object],[object Object]
Black Box ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fuzzing ,[object Object],[object Object],[object Object]
Verbo == 4 (valid) &&  Conteúdo > 110 bytes (Cl:Ll) Verbo Conteúdo Exemplo de Teste Fuzzing Testando a interface da porta 1433 do SQL Server Valores Válidos: 1-9 Valores Válidos: Nome da Instância (string) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Estouro de Buffer
Criando planos de testes com base na Modelagem de Ameaças Para um teste eficaz é necessário utilizar as características que foram identificadas e documentadas na modelagem de ameaças que é realizada na fase de design do desenvolvimento de software
Modelagem de Ameaças ,[object Object],[object Object],[object Object],[object Object]
Processo de Modelagem de Ameaças  (1 de 3)
Processo de Modelagem de Ameaças  (2 de 3) 1.Identificar os bens .  Identifique os bens valiosos que seus sistemas devem proteger. 2.Criar uma visão geral da arquitetura .  Utilize diagramas e tabelas simples para documentar a arquitetura de seu aplicativo, inclusive subsistemas, limites de confiança e fluxo de dados. 3.Decompor o aplicativo .  Decomponha a arquitetura do aplicativo, inclusive a rede subjacente e o projeto de infra–estrutura do host para criar um perfil de segurança para o aplicativo. O objetivo do perfil de segurança é revelar vulnerabilidades do projeto, implementação ou configuração de implantação do aplicativo.
Processo de Modelagem de Ameaças  (3 de 3) 4.Identificar as ameaças .  Conhecendo os objetivos de um invasor, a arquitetura e as possíveis vulnerabilidades de seu aplicativo, identifique as ameaças que poderiam afetar o aplicativo. 5.Documentar as ameaças .  Documente cada ameaça utilizando um modelo comum de ameaça que defina um conjunto central de atributos a capturar para cada ameaça. 6.Classificar as ameaças .  Classifique as ameaças de modo a priorizar e tratar as ameaças mais significativas primeiro. Essas ameaças apresentam riscos maiores. O processo de classificação considera a probabilidade dos danos que ela poderia causar no caso de um ataque. Pode acontecer de determinadas ameaças não justificarem nenhuma ação quando você compara o risco causado pela ameaça com os custos resultantes da atenuação.
Modelagem de Ameaças Wagner Elias Research & Development Manager Conviso IT Security http://wagnerelias.com demo
Padrões de Ataques Uma série de passos repetitivos que podem ser aplicados de uma forma consistente e confiável para simular um ataque contra um sistema de software.  “ Attack Patterns –  http://www.attackpatterns.org ” Projeto que, tem como objetivo identificar e documentar padrões de ataques que possam ser utilizados para testes de segurança de software
Padrões de Ataques Comuns ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Testando SQL Injection com Scrawlr Wagner Elias Research & Development Manager Conviso IT Security http://wagnerelias.com demo
Testando XSS com XSSDetect Wagner Elias Research & Development Manager Conviso IT Security demo
Testando .net com Fxcop Wagner Elias Research & Development Manager Conviso IT Security demo
O que fazer com o resultado dos testes? ,[object Object],[object Object],[object Object]
Conclusões ,[object Object],[object Object],[object Object]
Wagner Elias Research & Development Manager Conviso IT Security http://wagnerelias.com
Recursos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sessões Relacionadas SEG201 - Windows Server 2008 - Por que é Realmente Seguro (Análise Técnica) SEG307 - Defesa em Profundidade ? O NAP (Network Access Protection) Pode Ajudar ! SVR307 - Virtualização e Segurança: Como Conciliar os dois Mundos ? SEG308 - Estamos no Século 21: É Hora de Jogar Fora seus Gateways Medievais !
Outros Recursos Relacionados ,[object Object],[object Object],[object Object],Livro: Modelagem de Ameaças (Frank Swiderski e Window Snyder) Livro: Escrevendo Código Seguro (Michael Howard e David LeBlanc) Livro: Como Quebrar Códigos (Greg Hoglund e Gary McGraw)
Por favor preencha a avaliação
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.  MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Mais conteúdo relacionado

Mais procurados

Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosAlex Camargo
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software SeguroAugusto Lüdtke
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareAlcyon Ferreira de Souza Junior, MSc
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareMarcelo Fleury
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...Magno Logan
 
Testes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesTestes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesQualister
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Alcyon Ferreira de Souza Junior, MSc
 
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBDica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBAlcyon Ferreira de Souza Junior, MSc
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraClavis Segurança da Informação
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 
(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades WebEduardo Lanna
 
(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSegura(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSeguraEduardo Lanna
 
Segurança em desenvolvimento de software
Segurança em desenvolvimento de softwareSegurança em desenvolvimento de software
Segurança em desenvolvimento de softwareJeronimo Zucco
 

Mais procurados (19)

Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultados
 
Introdução de teste de segurança app web
Introdução de teste de segurança app webIntrodução de teste de segurança app web
Introdução de teste de segurança app web
 
Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Segurança em Desenvolvimento de Software
Segurança em Desenvolvimento de SoftwareSegurança em Desenvolvimento de Software
Segurança em Desenvolvimento de Software
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de Software
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de Software
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
 
Testes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesTestes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidades
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem
 
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBDica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 
(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web
 
(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSegura(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSegura
 
Segurança em desenvolvimento de software
Segurança em desenvolvimento de softwareSegurança em desenvolvimento de software
Segurança em desenvolvimento de software
 

Destaque

Destaque (6)

Testes de segurança
Testes de segurançaTestes de segurança
Testes de segurança
 
Web Application Security Testing
Web Application Security TestingWeb Application Security Testing
Web Application Security Testing
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 

Semelhante a Testes de Segurança de Software (tech-ed 2008)

Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguroCharles Fortes
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureRubens Guimarães - MTAC MVP
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - MicrosoftDesenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - MicrosoftRubens Guimarães - MTAC MVP
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumSandy Maciel
 
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejarGUTS-RS
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoClavis Segurança da Informação
 
Projeto de Avaliação de Segurança de TI
Projeto de Avaliação de Segurança de TIProjeto de Avaliação de Segurança de TI
Projeto de Avaliação de Segurança de TIMessias Dias Teixeira
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...Rubens Guimarães - MTAC MVP
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEMagno Logan
 
Workshop Elasticsearch - Android Dev Conference 2016
Workshop Elasticsearch - Android Dev Conference 2016Workshop Elasticsearch - Android Dev Conference 2016
Workshop Elasticsearch - Android Dev Conference 2016Thiago Barradas
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...iMasters
 

Semelhante a Testes de Segurança de Software (tech-ed 2008) (20)

Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguro
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
 
Dss 3
Dss 3Dss 3
Dss 3
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - MicrosoftDesenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando selenium
 
Sql injection
Sql injectionSql injection
Sql injection
 
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
 
Projeto de Avaliação de Segurança de TI
Projeto de Avaliação de Segurança de TIProjeto de Avaliação de Segurança de TI
Projeto de Avaliação de Segurança de TI
 
OWASP - Ferramentas
OWASP - FerramentasOWASP - Ferramentas
OWASP - Ferramentas
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
Workshop Elasticsearch - Android Dev Conference 2016
Workshop Elasticsearch - Android Dev Conference 2016Workshop Elasticsearch - Android Dev Conference 2016
Workshop Elasticsearch - Android Dev Conference 2016
 
Workshop05
Workshop05Workshop05
Workshop05
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
 
Webgoat Project - Apresentação
Webgoat Project - ApresentaçãoWebgoat Project - Apresentação
Webgoat Project - Apresentação
 

Mais de Conviso Application Security

Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareConviso Application Security
 
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações? Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações? Conviso Application Security
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web HackingConviso Application Security
 
Implementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISOImplementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISOConviso Application Security
 
Automatizando a análise passiva de aplicações Web
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 WebConviso Application Security
 
MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...Conviso Application Security
 
O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408Conviso Application Security
 
Encontrando falhas em aplicações web baseadas em flash
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 flashConviso Application Security
 
Protegendo Aplicações Php com PHPIDS - Php Conference 2009
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 2009Conviso Application Security
 

Mais de Conviso Application Security (20)

Entendendo o PCI-DSS
Entendendo o PCI-DSSEntendendo o PCI-DSS
Entendendo o PCI-DSS
 
Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de software
 
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações? Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking
 
Building Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 FeaturesBuilding Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 Features
 
Você Escreve Código e Quem Valida?
Você Escreve Código e Quem Valida?Você Escreve Código e Quem Valida?
Você Escreve Código e Quem Valida?
 
Testar não é suficiente. Tem que fazer direito!
Testar não é suficiente. Tem que fazer direito!Testar não é suficiente. Tem que fazer direito!
Testar não é suficiente. Tem que fazer direito!
 
Implementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISOImplementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISO
 
Automatizando a análise passiva de aplicações Web
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
 
Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?
 
Pentest em Aplicações Móveis
Pentest em Aplicações MóveisPentest em Aplicações Móveis
Pentest em Aplicações Móveis
 
MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...
 
HTML5 Seguro ou Inseguro?
HTML5 Seguro ou Inseguro?HTML5 Seguro ou Inseguro?
HTML5 Seguro ou Inseguro?
 
Threats from economical improvement rss 2010
Threats from economical improvement rss 2010Threats from economical improvement rss 2010
Threats from economical improvement rss 2010
 
O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408
 
Encontrando falhas em aplicações web baseadas em flash
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
 
Protegendo Aplicações Php com PHPIDS - Php Conference 2009
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
 
Playing Web Fuzzing - H2HC 2009
Playing Web Fuzzing - H2HC 2009Playing Web Fuzzing - H2HC 2009
Playing Web Fuzzing - H2HC 2009
 
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
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
 
Abotoaduras & Bonés
Abotoaduras & BonésAbotoaduras & Bonés
Abotoaduras & Bonés
 

Testes de Segurança de Software (tech-ed 2008)

  • 1.  
  • 2. Como fazer revisão e testes de código para identificar problemas (bugs) de segurança. Wagner Elias Research & Development Manager Conviso IT Security http://wagnerelias.com SEG303:
  • 3.
  • 4. Introdução Os testes de segurança de software são essenciais para garantir a Confidencialidade, integridade e disponibilidade das informações que serão tratadas pelo software Testes de segurança de software garantem que requisitos de segurança de software foram garantidos mesmo quando estes requisitos não fazem parte das especificações funcionais
  • 5.
  • 6. Buffer Overflow buffer overflow ou buffer overrun acontece quando o tamanho de um buffer ultrapassa sua capacidade máxima de armazenamento
  • 7. Exemplo de Buffer Overflow void CopyStuff(string data) { char buffer[128]; strcpy(buffer,data); // do other stuff } Se este dado é maior do que o buffer Então esta função irá estourar o buffer
  • 8. SQL Injection SQL injection é um tipo de ataque muito simples, baseia-se na execução de comandos SQL. Comandos de manipulação de dados - DML (select, insert, update, delete) ou comandos de definição de dados - DDL (create, drop, alter). Os comandos são injetados em campos de formulários que são disponibilizados para o usuário inserir/tratar informações
  • 9. Exemplo de SQL Injection string Status = &quot;No&quot;; string sqlstring =&quot;&quot;; try { SqlConnection sql= new SqlConnection( @&quot;data source=localhost;&quot; + &quot;user id=sa;password=password;&quot;); sql.Open(); sqlstring=&quot;SELECT HasShipped&quot; + &quot; FROM detail WHERE ID='&quot; + Id + &quot;'&quot;; SqlCommand cmd = new SqlCommand(sqlstring,sql); if ((int)cmd.ExecuteScalar() != 0) Status = &quot;Yes&quot;; } catch (SqlException se) { Status = sqlstring + &quot; failed&quot;; foreach (SqlError e in se.Errors) { Status += e.Message + &quot;&quot;; } } catch (Exception e) { Status = e.ToString(); }
  • 10. XSS (Cross Site Scripting) Uma falha no servidor que leva a um comprometimento do cliente. A falha é simplesmente ecoar input do usuário sem uma validação adequada.
  • 11. Exemplo de XSS (Cross Site Scripting) Welcome.asp Hello, <%= request.querystring(‘name’)%> Mantém o badsite.com
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Criando planos de testes com base na Modelagem de Ameaças Para um teste eficaz é necessário utilizar as características que foram identificadas e documentadas na modelagem de ameaças que é realizada na fase de design do desenvolvimento de software
  • 20.
  • 21. Processo de Modelagem de Ameaças (1 de 3)
  • 22. Processo de Modelagem de Ameaças (2 de 3) 1.Identificar os bens . Identifique os bens valiosos que seus sistemas devem proteger. 2.Criar uma visão geral da arquitetura . Utilize diagramas e tabelas simples para documentar a arquitetura de seu aplicativo, inclusive subsistemas, limites de confiança e fluxo de dados. 3.Decompor o aplicativo . Decomponha a arquitetura do aplicativo, inclusive a rede subjacente e o projeto de infra–estrutura do host para criar um perfil de segurança para o aplicativo. O objetivo do perfil de segurança é revelar vulnerabilidades do projeto, implementação ou configuração de implantação do aplicativo.
  • 23. Processo de Modelagem de Ameaças (3 de 3) 4.Identificar as ameaças . Conhecendo os objetivos de um invasor, a arquitetura e as possíveis vulnerabilidades de seu aplicativo, identifique as ameaças que poderiam afetar o aplicativo. 5.Documentar as ameaças . Documente cada ameaça utilizando um modelo comum de ameaça que defina um conjunto central de atributos a capturar para cada ameaça. 6.Classificar as ameaças . Classifique as ameaças de modo a priorizar e tratar as ameaças mais significativas primeiro. Essas ameaças apresentam riscos maiores. O processo de classificação considera a probabilidade dos danos que ela poderia causar no caso de um ataque. Pode acontecer de determinadas ameaças não justificarem nenhuma ação quando você compara o risco causado pela ameaça com os custos resultantes da atenuação.
  • 24. Modelagem de Ameaças Wagner Elias Research & Development Manager Conviso IT Security http://wagnerelias.com demo
  • 25. Padrões de Ataques Uma série de passos repetitivos que podem ser aplicados de uma forma consistente e confiável para simular um ataque contra um sistema de software. “ Attack Patterns – http://www.attackpatterns.org ” Projeto que, tem como objetivo identificar e documentar padrões de ataques que possam ser utilizados para testes de segurança de software
  • 26.
  • 27. Testando SQL Injection com Scrawlr Wagner Elias Research & Development Manager Conviso IT Security http://wagnerelias.com demo
  • 28. Testando XSS com XSSDetect Wagner Elias Research & Development Manager Conviso IT Security demo
  • 29. Testando .net com Fxcop Wagner Elias Research & Development Manager Conviso IT Security demo
  • 30.
  • 31.
  • 32. Wagner Elias Research & Development Manager Conviso IT Security http://wagnerelias.com
  • 33.
  • 34. Sessões Relacionadas SEG201 - Windows Server 2008 - Por que é Realmente Seguro (Análise Técnica) SEG307 - Defesa em Profundidade ? O NAP (Network Access Protection) Pode Ajudar ! SVR307 - Virtualização e Segurança: Como Conciliar os dois Mundos ? SEG308 - Estamos no Século 21: É Hora de Jogar Fora seus Gateways Medievais !
  • 35.
  • 36. Por favor preencha a avaliação
  • 37. © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Notas do Editor

  1. 06/05/09 19:20 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.