SlideShare uma empresa Scribd logo
1 de 60
TESTE DE
SEGURANÇA
Equipe:
• Danilo Galvão
• Emanuel Pantoja
• Juliano Padilha
• Luiz Venicio
• Ricardo Arthur
SUMÁRIO
 Introdução
 Por que testes de segurança de software?
 O papel do testador de segurança de software
 Abordagens de testes de segurança de software
 Criando planos de testes com base na Modelagem
de Ameças
 Padrões de Ataques
 Os pricipais problemas de segurança de software
 Demonstração
 Conclusão
INTRODUÇÃO
Os testes de segurança de software são esseciais para
garantir:
• Confidencialidade;
• Integridade;
• Disponibilidade;
• Autencidade;
• Não-repúdio.
Asseguram que requisitos de segurança de software
foram garantidos no desenvolvimento, mesmo quando
estes requisitos não fazem parte das especificações
funcionais.
INTRODUÇÃO
“Testes de segurança ajudam a descobrir brechas que
podem causar a perda de informações importantes.”
INTRODUÇÃO
 Abordagem de Teste de Segurança
POR QUE TESTE DE
SEGURANÇA ?
 Os testes “tradicionais” buscam avaliar as
funcionalidades do software.
 Validar a capacidade de proteção do software contra
acessos internos ou externos não autorizados.
 Os testes de segurança podem ser considerado o
“alicerce” para os demais testes.
POR QUE TESTE DE SEGURANÇA
?
O PAPEL DO TESTADOR DE
SEGURANÇA DE SOFTWARE
 Participar de todo o processo de desenvolvimento
de software.
 Ter capacidade técnica e conhecimento de
segurança para testar software.
 Atestar que o software está pronto para ser
distribuído.
ABORDAGENS PARA TESTE DE
SEGURANÇA
White Box
Black Box
Fuzzing
ABORDAGENS PARA TESTE DE
SEGURANÇA
White Box
 Teste onde o testador tem amplo conhecimento do
software e acesso a código fonte.
 Vantagem
 Permite um teste completo de todas as
características do software.
 Desvantagem
 O teste pode ficar inviável com um número
grande de linhas de código.
ABORDAGENS PARA TESTE DE
SEGURANÇA
Black Box
 Teste onde o testador tem o mesmo conhecimento
e privilégios de acesso de um usuário comum.
 Vantagens
 Pode ser executado sem acesso a “solution”
(código fonte compilável).
 É possível testar controles em “run-time”
 Desvantagens
 O testador necessita de conhecimentos
avançados em segurança de software.
 Pode ser necessário realizar uma engenharia
reversa de software.
ABORDAGENS PARA TESTE DE
SEGURANÇA
ABORDAGENS PARA TESTE DE
SEGURANÇA
Fuzzing
 Técnica para injeção de falhas
 Escalável – funciona com qualquer linguagem
 Versátil – Host ou Rede
PLANOS DE TESTES COM BASE
NA MODELAGEM DE AMEAÇA
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ÇA
Abordagem estruturada usada para
identificar e mensurar riscos aos recursos
gerenciados pelo software.
 Permite que o design enderece os riscos de
segurança.
 Define os requisitos e recursos de segurança.
 Ajuda a revisar os testes e revisões de código.
PROCESSO DE MODELAGEM DE
AMEAÇAS
PROCESSO DE MODELAGEM DE
AMEAÇAS
 Identify Assets
 Identificar os bens valiosos que seu sistema deve
proteger.
 Create a Architecture Overview
 Utilizar diagramas e tabelas simples para
documentar a arquitetura de seu aplicativo, inclusive
subsistemas, limites de confiança e fluxo de dados
 Decompose the Application
 Decompor a arquitetura do aplicativo para criar um
perfil de segurança para o aplicativo. O objetivo do
perfil é revelar vulnerabilidades do projeto,
implementação ou configuração de implementação
do aplicativo.
PROCESSO DE MODELAGEM DE
AMEAÇAS
 Identify the Threats
 Conhecer os objetivos de um invasor, a arquitetura e
as possíveis vulnerabilidades da aplicação,
identificar as ameças que poderiam afetar a
aplicação.
 Document the Threats
 Documentar cada ameaça utilizando um modelo
comum de ameaça que defina um conjunto central
de atributos a capturar para cada ameaça.
 Rate the Threats
 Classificar as ameaças de modo a priorizar e tratar
as ameaças mais significativas primeiro.
 Essas ameaças apresentam riscos maiores.
 Considera-se a probabilidade de danos que ele
causaria.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 SQL Injection
 XSS (Cross Site Scripting)
 Quebra de Autenticação e Gerenciamento de Sessão
 Referência direta à objetos
 Cross-Site Request Forgery (CSRF)
 Falhas de Configuração
 Armazenamento Inseguro
 Falha na Restrição de Acesso à URLs
 Canal Inseguro
 Redirecionamentos Não-Validados
 Entre outros…
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
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 os
usuários inserir/tratar informações.
 Ocorre por haver a falta de validação de parâmetros
fornecidos por usuários.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
SQL Injection
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
SQL Injection
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
SQL Injection – Como Resolver
 Validação sozinha não resolve!
• Mesmo com as expressões regulares mais
complexas, há meios de burlá-la.
 Forma recomendada! Like a Jedi..
• Interface padronizada para trabalhar com bancos de
dados, como:
• PDO -> PHP
• JDBC -> Java
• Abstrair a complexidade e fornecer um conjunto de
padrões.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
XSS (Cross Site Scripting)
 Consiste em uma vulnerabilidade causada
pelas falhas nas validações dos
parâmetros de entrada do usuário e
resposta do servidor na aplicação web.
 Este ataque permite que scripts seja
inserido de maneira arbitrária no navegador
do usuário alvo.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
XSS (Cross Site Scripting)
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
XSS (Cross Site Scripting)
 Qual o impacto e as principais consequências do
ataque?
• Sequestro de sessão de usuários;
• Alteração do código HTML do aplicativo (visível
somente do lado do cliente);
• Redirecionar o usuário para sites maliciosos;
• Alteração do objeto DOM(Modelo de Objetos do
Documento) para captura de dados ou envio de
malware.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
XSS (Cross Site Scripting)
 Tipos:
• Persistente
• Não-Persistente
• DOM (Document Object Model)
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
XSS (Cross Site Scripting)
 Persistente
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
XSS (Cross Site Scripting)
 Não-Persistente
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
XSS (Cross Site Scripting)
 DOM
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
XSS (Cross Site Scripting)
 Como proteger-se contra ataques XSS?
• Não há meios concretos de proteger-se
(usuário), pois são ataques que ocorrem devido
a vulnerabilidade de aplicações web que o host
está executando.
• SSL pode protegê-lo de um ataque XSS = MITO!
• Encriptação de dados não significa nada para um
atacante que explora vulnerabilidades a XSS.
• Então não existe uma solução?
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
XSS (Cross Site Scripting)
 Como proteger-se contra ataques XSS?
• Validação de entrada
• Validação de saída
• Validação de elementos DOM
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Quebra de Autenticação e Gerenciamento de
Sessão
 Ocorre quando a falha na segurança permite que
login’s, senhas ou dados de conexão (como cookies)
sejam capturados por terceiros.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Referência direta a objetos
 Ocorre quando a referência a um objeto interno fica
exposta, permitindo que ela seja manipulada em
função de acesso não autorizados a dados.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Cross Site Request Forgery (CSRF)
 É uma classe de ataques que explora a relação de
confiança entre um aplicativo web e seu usuário legítimo;
 O Ataque mais comum utiliza uma tag de imagem (img src)
no documento HTML. No “src” é inserido link’s maliciosos;
 A vítima acessa um site malicioso enquanto está logada no
sistema vulnerável;
 O atacante “induz” a vítima a fazer tal requisição.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Cross Site Request Forgery (CSRF)
 Etapas de exploração em Aplicações Vulneráveis:
1. Autenticação do Usuário;
2. Acesso ao Aplicativo Malicioso;
3. Requisição à Aplicação Alvo;
4. Execução da Operação;
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Cross Site Request Forgery (CSRF)
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Cross Site Request Forgery (CSRF)
 Exemplo;
 <img src="http://bank.co/transfer.do?acct=HACKER&amount=100000" width="1" height="1" border="0">
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Cross Site Request Forgery (CSRF)
 Prevenção
• Não exibir imagens externas;
• Não clicar em links de Spam ou não confiáveis nos
e-mails, bate-papo e etc;
• Exigir um segredo, específico do token do usuário;
• Limitar o tempo de vida de cookies da sessão;
• Exigir que o cliente forneça dados de autenticação.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Falhas de Configuração
• Aplicações Rodam em Cimas de Serviçoes que
rodam em cima de SO’s;
• Todos Sistemas podem ser vetores de ataques;
• Falhas Humanas;
• Versões Desatualizadas.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Falhas de Configuração
• Exemplo: 10/12/2012
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Falhas de Configuração
 Prevenção
- Realizar atividades Corretivas;
- Patches e Atualizações;
- Equipe de Testes;
- Especialista em cada Software/Aplicação.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Proteção Insuficiente da Camada de
Transporte
• A internet pública é hostil
• Tráfego de dados pode ser capturado
• Visualização / Modificação de informações
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Proteção Insuficiente da Camada de
Transporte
• Como prevenir-se contra de falha de proteção
da Camada de Transporte?
• Utilize criptografia
• Certificado Digital
• Confidencialidade e Autenticidade
• Algoritmos seguros
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Proteção Insuficiente da Camada de
Transporte
• Exemplo 1:
• Um site que não usa SSL em todas as
páginas que requerem autenticação
• Um atacante pode monitorar o tráfego da
rede e observar os cookies de autenticação
de sessão da vítima
• O atacante pode então copiar o cookie e
assumir o controle da sessão da vítima
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Proteção Insuficiente da Camada de
Transporte
• Exemplo 2:
• Um site com configurações de certificado SSL
inválidas
• Usuários tem que aceitar avisos para poder usar o
site, e se acostumam com eles
• Sites maliciosos exibem avisos semelhantes
• Se as vítimas estiverem acostumadas com estes
avisos, elas podem entrar em sites maliciosos e
fornecerem senhas ou outros dados privados
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Redirecionamentos Não-Validados
• Requisição forjada com instrução de
redirecionamento
• Aplicação não valida o parâmetro e
redireciona a vítima para site malicioso
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Redirecionamentos Não-Validados
• Como proteger-se de redirecionamentos não
validados
• Simplesmente evite usar redirects e
forwards
• Se usar, não envolva parâmetros do usuário
no cálculo do destino
• Se parâmetros do usuário não puderem ser
evitados, certifique-se os valores fornecidos
são válidos e autorizados para o usuário
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Redirecionamentos Não-Validados
• Exemplo 1:
http://www.example.com/redirect.jsp?url=evil.com
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
Redirecionamentos Não-Validados
• Exemplo 2:
http://www.example.com/boring.jsp?fwd=admin.jsp
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Armazenamento Criptográfico Inseguro
 Falhas de implementação de mecanismos
de criptografia podem colocar em risco as
informações armazenadas;
 Um atacante pode aproveitar essa
vulnerabilidade e tentar obter acesso aos
conteúdos de dados sensíveis à aplicação;
 Utilizar algoritmos reconhecidos;
 Não utilizar algoritmos fracos.
PRINCIPAIS PROBLEMAS DE
SEGURANÇA DE SOFTWARE
 Falha ao Restringir Acesso à URLs
 Essa falha permite que usuários não
autorizados acessem páginas restritas da
aplicação;
 Caso um mecanismo de controle de acesso
não seja implementado de forma adequada, é
possível que um usuário tenha acesso a páginas
ou informações que não deveriam ser permitidas;
 Implementar controles de acessos, adequados
a lógica de negócio e funções da aplicação;
 Realizar testes de penetração.
PADRÕES DE ATAQUE
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
“CAPEC” -
http://capec.mitre.org/
Projeto que tem como objetivo identificar e
documentar padões de ataques de possam ser
utilizados para testes de segurança de software.
PADRÕES DE ATAQUE
ATAQUES MAIS COMUNS
 DDoS ATTACK
 Maneira relativamente simples de derrubar algum
service.
 Port Scanning Attack
 Técnica bastante utilizada para encontrar fraquezas
em um determinado servidor.
 Cavalos de Tróia, vírus e outros malwares
 Normalmente desenvolvidos com o único objetivo de
gerar destruição do alvo.
 Ataques de Força Bruta
 É uma estrategia usada para quebrar a cifragem de
um dado percorrendo uma lista de possíveis chaves
com um algoritmo de busca até que a chave seja
encontrada
DEMONSTRAÇÃO
CONCLUSÃO
 Testes de segurança irão garantir:
 Que o software desenvolvido terá sua garantia
de funcionalidade e não trará riscos aos seus
beneficiados.
 Que o processo de resposta a incidentes após
a entrega do software não será traumático
devido a falhas que não foram identificadas
durante o processo de desenvolvimento.
 Que todas as informações e expectativas de
segurança do cliente serão entregues.
CONCLUSÃO
 O Que fazer com os resultados dos testes?
 Identificar suas deficiências e capacitar os
recursos envolvidos no desenvolvimento de
software.
 Identificar e desenvolver políticas com
padrões que garatem o desenvolvimento de
um software mais seguro.
 Trabalhar e buscar a viabilização da inclusão
de recursos de segurança no processo de
desenvolvimento de software.
REFERÊNCIAS
• http://codigofonte.uol.com.br/artigos/evite-sql-injection-usando-
prepared-statements-no-php
• http://www.blogcmmi.com.br/engenharia/top-10-vulnerabilidades-em-
aplicativos-web-owasp
• http://pt.slideshare.net/clavissecurity/principais-ameas-aplicaes-web-
como-explorlas-e-como-se-proteger
• http://pt.slideshare.net/Qualister/testes-de-segurana
• http://pt.slideshare.net/conviso/testes-de-segurana-de-software-
teched-2008-presentation
• http://www.redesegura.com.br/2012/01/saiba-mais-sobre-o-cross-
site-scripting-xss/
• http://imasters.com.br/artigo/9879/seguranca/xss-cross-site-scripting/
• http://www.documentoeletronico.com.br/faqTEC010.asp
• http://parul.info/fuzzing-mutation-vs-generation/
• http://capec.mitre.org/index.html
• http://www.devmedia.com.br/evitando-sql-injection-em-aplicacoes-
php/27804
• http://www.devmedia.com.br/sql-injection-em-ambientes-web/9733
REFERÊNCIAS
• www.redesegura.com.br%2F2012%2F03%2Fserie-ataques-os-ataques-
cross-site-request-forgery-csrf%2F&h=ZAQEJv-aw
• www.pt.wikipedia.org%2Fwiki%2FCrosssite_request_forgery&h=ZAQEJv-
aw
• http://www.slideplayer.com.br%2Fslide%2F391589%2F&h=ZAQEJv-aw
• https://www.owasp.org/index.php/Top_10_2010-A9
Insufficient_Transport_Layer_Protection
• https://www.owasp.org/index.php/Top_10_2010-A10-
Unvalidated_Redirects_and_Forwards

Mais conteúdo relacionado

Mais procurados

Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de DadosIorgama Porcely
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoMauro Pereira
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da InformaçãoEfrain Saavedra
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggersflaviognm
 
Segurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - MalwaresSegurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - MalwaresCleber Fonseca
 
Evolução dispositivos móveis e pc
Evolução dispositivos móveis e pcEvolução dispositivos móveis e pc
Evolução dispositivos móveis e pcReutmann Santos
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosBanco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosNatanael Simões
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Capítulo 07 - Segurança em sistemas de informação
Capítulo 07 - Segurança em sistemas de informaçãoCapítulo 07 - Segurança em sistemas de informação
Capítulo 07 - Segurança em sistemas de informaçãoEverton Souza
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 

Mais procurados (20)

Introdução ao Teste de Software
Introdução ao Teste de SoftwareIntrodução ao Teste de Software
Introdução ao Teste de Software
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da Informação
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Segurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - MalwaresSegurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - Malwares
 
Evolução dispositivos móveis e pc
Evolução dispositivos móveis e pcEvolução dispositivos móveis e pc
Evolução dispositivos móveis e pc
 
Engenharia Social
Engenharia SocialEngenharia Social
Engenharia Social
 
Aula sobre Linux.
Aula sobre Linux. Aula sobre Linux.
Aula sobre Linux.
 
Módulo 1 de PSI
Módulo 1 de PSIMódulo 1 de PSI
Módulo 1 de PSI
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosBanco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Capítulo 07 - Segurança em sistemas de informação
Capítulo 07 - Segurança em sistemas de informaçãoCapítulo 07 - Segurança em sistemas de informação
Capítulo 07 - Segurança em sistemas de informação
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
teste de invasão
teste de invasãoteste de invasão
teste de invasão
 

Semelhante a Engenharia de Software II - Teste de segurança de software

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
 
[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
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...EMERSON EDUARDO RODRIGUES
 
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
 
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
 
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
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Clavis 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
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPFabiano Pereira
 
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Clavis Segurança da Informação
 

Semelhante a Engenharia de Software II - Teste de segurança de software (20)

Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
 
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
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 
[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
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
 
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
 
Java security
Java securityJava security
Java security
 
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...
 
Segurança de código
Segurança de códigoSegurança de código
Segurança de código
 
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ç...
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
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
 
(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
 
Antar ferreira
Antar ferreiraAntar ferreira
Antar ferreira
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 

Mais de Juliano Padilha

A2Lab - WordPress REST API
A2Lab - WordPress REST APIA2Lab - WordPress REST API
A2Lab - WordPress REST APIJuliano Padilha
 
A2Lab - Payment Request API
A2Lab - Payment Request APIA2Lab - Payment Request API
A2Lab - Payment Request APIJuliano Padilha
 
Lean Startup - Introdução
Lean Startup - IntroduçãoLean Startup - Introdução
Lean Startup - IntroduçãoJuliano Padilha
 
Proposta de redesign dos sites de pós graduação da ufpa
Proposta de redesign dos sites de pós graduação da ufpaProposta de redesign dos sites de pós graduação da ufpa
Proposta de redesign dos sites de pós graduação da ufpaJuliano Padilha
 
Sociologia - Comportamento Organizacional como um Diferencial Competitivo
Sociologia - Comportamento Organizacional como um Diferencial CompetitivoSociologia - Comportamento Organizacional como um Diferencial Competitivo
Sociologia - Comportamento Organizacional como um Diferencial CompetitivoJuliano Padilha
 
Psicologia - Tecnologia, infância e desenvolvimento
Psicologia - Tecnologia, infância e desenvolvimentoPsicologia - Tecnologia, infância e desenvolvimento
Psicologia - Tecnologia, infância e desenvolvimentoJuliano Padilha
 
Interação Homem-Computador - Mau design no site do Arctic Monkeys
Interação Homem-Computador - Mau design no site do Arctic MonkeysInteração Homem-Computador - Mau design no site do Arctic Monkeys
Interação Homem-Computador - Mau design no site do Arctic MonkeysJuliano Padilha
 
Interação Homem-Computador - Interfaces naturais
Interação Homem-Computador - Interfaces naturaisInteração Homem-Computador - Interfaces naturais
Interação Homem-Computador - Interfaces naturaisJuliano Padilha
 
Interação Homem-Computador - Homem x Máquina
Interação Homem-Computador - Homem x MáquinaInteração Homem-Computador - Homem x Máquina
Interação Homem-Computador - Homem x MáquinaJuliano Padilha
 
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...Juliano Padilha
 
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...Juliano Padilha
 
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)Juliano Padilha
 
Banco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaBanco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaJuliano Padilha
 
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...Juliano Padilha
 
Análise de Projeto de Sistemas - Projeto Fazendola
Análise de Projeto de Sistemas - Projeto FazendolaAnálise de Projeto de Sistemas - Projeto Fazendola
Análise de Projeto de Sistemas - Projeto FazendolaJuliano Padilha
 
Cultura criativa e inovação
Cultura criativa e inovaçãoCultura criativa e inovação
Cultura criativa e inovaçãoJuliano Padilha
 

Mais de Juliano Padilha (17)

A2Lab - WordPress REST API
A2Lab - WordPress REST APIA2Lab - WordPress REST API
A2Lab - WordPress REST API
 
A2Lab - Payment Request API
A2Lab - Payment Request APIA2Lab - Payment Request API
A2Lab - Payment Request API
 
Lean Startup - Introdução
Lean Startup - IntroduçãoLean Startup - Introdução
Lean Startup - Introdução
 
Proposta de redesign dos sites de pós graduação da ufpa
Proposta de redesign dos sites de pós graduação da ufpaProposta de redesign dos sites de pós graduação da ufpa
Proposta de redesign dos sites de pós graduação da ufpa
 
The Lean LaunchPad
The Lean LaunchPadThe Lean LaunchPad
The Lean LaunchPad
 
Sociologia - Comportamento Organizacional como um Diferencial Competitivo
Sociologia - Comportamento Organizacional como um Diferencial CompetitivoSociologia - Comportamento Organizacional como um Diferencial Competitivo
Sociologia - Comportamento Organizacional como um Diferencial Competitivo
 
Psicologia - Tecnologia, infância e desenvolvimento
Psicologia - Tecnologia, infância e desenvolvimentoPsicologia - Tecnologia, infância e desenvolvimento
Psicologia - Tecnologia, infância e desenvolvimento
 
Interação Homem-Computador - Mau design no site do Arctic Monkeys
Interação Homem-Computador - Mau design no site do Arctic MonkeysInteração Homem-Computador - Mau design no site do Arctic Monkeys
Interação Homem-Computador - Mau design no site do Arctic Monkeys
 
Interação Homem-Computador - Interfaces naturais
Interação Homem-Computador - Interfaces naturaisInteração Homem-Computador - Interfaces naturais
Interação Homem-Computador - Interfaces naturais
 
Interação Homem-Computador - Homem x Máquina
Interação Homem-Computador - Homem x MáquinaInteração Homem-Computador - Homem x Máquina
Interação Homem-Computador - Homem x Máquina
 
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
 
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
 
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
 
Banco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaBanco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de Concorrência
 
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
 
Análise de Projeto de Sistemas - Projeto Fazendola
Análise de Projeto de Sistemas - Projeto FazendolaAnálise de Projeto de Sistemas - Projeto Fazendola
Análise de Projeto de Sistemas - Projeto Fazendola
 
Cultura criativa e inovação
Cultura criativa e inovaçãoCultura criativa e inovação
Cultura criativa e inovação
 

Engenharia de Software II - Teste de segurança de software

  • 1. TESTE DE SEGURANÇA Equipe: • Danilo Galvão • Emanuel Pantoja • Juliano Padilha • Luiz Venicio • Ricardo Arthur
  • 2. SUMÁRIO  Introdução  Por que testes de segurança de software?  O papel do testador de segurança de software  Abordagens de testes de segurança de software  Criando planos de testes com base na Modelagem de Ameças  Padrões de Ataques  Os pricipais problemas de segurança de software  Demonstração  Conclusão
  • 3. INTRODUÇÃO Os testes de segurança de software são esseciais para garantir: • Confidencialidade; • Integridade; • Disponibilidade; • Autencidade; • Não-repúdio. Asseguram que requisitos de segurança de software foram garantidos no desenvolvimento, mesmo quando estes requisitos não fazem parte das especificações funcionais.
  • 4. INTRODUÇÃO “Testes de segurança ajudam a descobrir brechas que podem causar a perda de informações importantes.”
  • 5. INTRODUÇÃO  Abordagem de Teste de Segurança
  • 6. POR QUE TESTE DE SEGURANÇA ?  Os testes “tradicionais” buscam avaliar as funcionalidades do software.  Validar a capacidade de proteção do software contra acessos internos ou externos não autorizados.  Os testes de segurança podem ser considerado o “alicerce” para os demais testes.
  • 7. POR QUE TESTE DE SEGURANÇA ?
  • 8. O PAPEL DO TESTADOR DE SEGURANÇA DE SOFTWARE  Participar de todo o processo de desenvolvimento de software.  Ter capacidade técnica e conhecimento de segurança para testar software.  Atestar que o software está pronto para ser distribuído.
  • 9. ABORDAGENS PARA TESTE DE SEGURANÇA White Box Black Box Fuzzing
  • 10. ABORDAGENS PARA TESTE DE SEGURANÇA White Box  Teste onde o testador tem amplo conhecimento do software e acesso a código fonte.  Vantagem  Permite um teste completo de todas as características do software.  Desvantagem  O teste pode ficar inviável com um número grande de linhas de código.
  • 11. ABORDAGENS PARA TESTE DE SEGURANÇA Black Box  Teste onde o testador tem o mesmo conhecimento e privilégios de acesso de um usuário comum.  Vantagens  Pode ser executado sem acesso a “solution” (código fonte compilável).  É possível testar controles em “run-time”  Desvantagens  O testador necessita de conhecimentos avançados em segurança de software.  Pode ser necessário realizar uma engenharia reversa de software.
  • 12. ABORDAGENS PARA TESTE DE SEGURANÇA
  • 13. ABORDAGENS PARA TESTE DE SEGURANÇA Fuzzing  Técnica para injeção de falhas  Escalável – funciona com qualquer linguagem  Versátil – Host ou Rede
  • 14. PLANOS DE TESTES COM BASE NA MODELAGEM DE AMEAÇA 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
  • 15. MODELAGEM DE AMEAÇA Abordagem estruturada usada para identificar e mensurar riscos aos recursos gerenciados pelo software.  Permite que o design enderece os riscos de segurança.  Define os requisitos e recursos de segurança.  Ajuda a revisar os testes e revisões de código.
  • 16. PROCESSO DE MODELAGEM DE AMEAÇAS
  • 17. PROCESSO DE MODELAGEM DE AMEAÇAS  Identify Assets  Identificar os bens valiosos que seu sistema deve proteger.  Create a Architecture Overview  Utilizar diagramas e tabelas simples para documentar a arquitetura de seu aplicativo, inclusive subsistemas, limites de confiança e fluxo de dados  Decompose the Application  Decompor a arquitetura do aplicativo para criar um perfil de segurança para o aplicativo. O objetivo do perfil é revelar vulnerabilidades do projeto, implementação ou configuração de implementação do aplicativo.
  • 18. PROCESSO DE MODELAGEM DE AMEAÇAS  Identify the Threats  Conhecer os objetivos de um invasor, a arquitetura e as possíveis vulnerabilidades da aplicação, identificar as ameças que poderiam afetar a aplicação.  Document the Threats  Documentar cada ameaça utilizando um modelo comum de ameaça que defina um conjunto central de atributos a capturar para cada ameaça.  Rate the Threats  Classificar as ameaças de modo a priorizar e tratar as ameaças mais significativas primeiro.  Essas ameaças apresentam riscos maiores.  Considera-se a probabilidade de danos que ele causaria.
  • 19. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  SQL Injection  XSS (Cross Site Scripting)  Quebra de Autenticação e Gerenciamento de Sessão  Referência direta à objetos  Cross-Site Request Forgery (CSRF)  Falhas de Configuração  Armazenamento Inseguro  Falha na Restrição de Acesso à URLs  Canal Inseguro  Redirecionamentos Não-Validados  Entre outros…
  • 20. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE 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 os usuários inserir/tratar informações.  Ocorre por haver a falta de validação de parâmetros fornecidos por usuários.
  • 21. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE SQL Injection
  • 22. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE SQL Injection
  • 23. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE SQL Injection – Como Resolver  Validação sozinha não resolve! • Mesmo com as expressões regulares mais complexas, há meios de burlá-la.  Forma recomendada! Like a Jedi.. • Interface padronizada para trabalhar com bancos de dados, como: • PDO -> PHP • JDBC -> Java • Abstrair a complexidade e fornecer um conjunto de padrões.
  • 24. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE XSS (Cross Site Scripting)  Consiste em uma vulnerabilidade causada pelas falhas nas validações dos parâmetros de entrada do usuário e resposta do servidor na aplicação web.  Este ataque permite que scripts seja inserido de maneira arbitrária no navegador do usuário alvo.
  • 25. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE XSS (Cross Site Scripting)
  • 26. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE XSS (Cross Site Scripting)  Qual o impacto e as principais consequências do ataque? • Sequestro de sessão de usuários; • Alteração do código HTML do aplicativo (visível somente do lado do cliente); • Redirecionar o usuário para sites maliciosos; • Alteração do objeto DOM(Modelo de Objetos do Documento) para captura de dados ou envio de malware.
  • 27. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE XSS (Cross Site Scripting)  Tipos: • Persistente • Não-Persistente • DOM (Document Object Model)
  • 28. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE XSS (Cross Site Scripting)  Persistente
  • 29. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE XSS (Cross Site Scripting)  Não-Persistente
  • 30. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE XSS (Cross Site Scripting)  DOM
  • 31. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE XSS (Cross Site Scripting)  Como proteger-se contra ataques XSS? • Não há meios concretos de proteger-se (usuário), pois são ataques que ocorrem devido a vulnerabilidade de aplicações web que o host está executando. • SSL pode protegê-lo de um ataque XSS = MITO! • Encriptação de dados não significa nada para um atacante que explora vulnerabilidades a XSS. • Então não existe uma solução?
  • 32. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE XSS (Cross Site Scripting)  Como proteger-se contra ataques XSS? • Validação de entrada • Validação de saída • Validação de elementos DOM
  • 33. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Quebra de Autenticação e Gerenciamento de Sessão  Ocorre quando a falha na segurança permite que login’s, senhas ou dados de conexão (como cookies) sejam capturados por terceiros.
  • 34. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Referência direta a objetos  Ocorre quando a referência a um objeto interno fica exposta, permitindo que ela seja manipulada em função de acesso não autorizados a dados.
  • 35. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Cross Site Request Forgery (CSRF)  É uma classe de ataques que explora a relação de confiança entre um aplicativo web e seu usuário legítimo;  O Ataque mais comum utiliza uma tag de imagem (img src) no documento HTML. No “src” é inserido link’s maliciosos;  A vítima acessa um site malicioso enquanto está logada no sistema vulnerável;  O atacante “induz” a vítima a fazer tal requisição.
  • 36. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Cross Site Request Forgery (CSRF)  Etapas de exploração em Aplicações Vulneráveis: 1. Autenticação do Usuário; 2. Acesso ao Aplicativo Malicioso; 3. Requisição à Aplicação Alvo; 4. Execução da Operação;
  • 37. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Cross Site Request Forgery (CSRF)
  • 38. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Cross Site Request Forgery (CSRF)  Exemplo;  <img src="http://bank.co/transfer.do?acct=HACKER&amount=100000" width="1" height="1" border="0">
  • 39. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Cross Site Request Forgery (CSRF)  Prevenção • Não exibir imagens externas; • Não clicar em links de Spam ou não confiáveis nos e-mails, bate-papo e etc; • Exigir um segredo, específico do token do usuário; • Limitar o tempo de vida de cookies da sessão; • Exigir que o cliente forneça dados de autenticação.
  • 40. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Falhas de Configuração • Aplicações Rodam em Cimas de Serviçoes que rodam em cima de SO’s; • Todos Sistemas podem ser vetores de ataques; • Falhas Humanas; • Versões Desatualizadas.
  • 41. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Falhas de Configuração • Exemplo: 10/12/2012
  • 42. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Falhas de Configuração  Prevenção - Realizar atividades Corretivas; - Patches e Atualizações; - Equipe de Testes; - Especialista em cada Software/Aplicação.
  • 43. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Proteção Insuficiente da Camada de Transporte • A internet pública é hostil • Tráfego de dados pode ser capturado • Visualização / Modificação de informações
  • 44. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Proteção Insuficiente da Camada de Transporte • Como prevenir-se contra de falha de proteção da Camada de Transporte? • Utilize criptografia • Certificado Digital • Confidencialidade e Autenticidade • Algoritmos seguros
  • 45. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Proteção Insuficiente da Camada de Transporte • Exemplo 1: • Um site que não usa SSL em todas as páginas que requerem autenticação • Um atacante pode monitorar o tráfego da rede e observar os cookies de autenticação de sessão da vítima • O atacante pode então copiar o cookie e assumir o controle da sessão da vítima
  • 46. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Proteção Insuficiente da Camada de Transporte • Exemplo 2: • Um site com configurações de certificado SSL inválidas • Usuários tem que aceitar avisos para poder usar o site, e se acostumam com eles • Sites maliciosos exibem avisos semelhantes • Se as vítimas estiverem acostumadas com estes avisos, elas podem entrar em sites maliciosos e fornecerem senhas ou outros dados privados
  • 47. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Redirecionamentos Não-Validados • Requisição forjada com instrução de redirecionamento • Aplicação não valida o parâmetro e redireciona a vítima para site malicioso
  • 48. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Redirecionamentos Não-Validados • Como proteger-se de redirecionamentos não validados • Simplesmente evite usar redirects e forwards • Se usar, não envolva parâmetros do usuário no cálculo do destino • Se parâmetros do usuário não puderem ser evitados, certifique-se os valores fornecidos são válidos e autorizados para o usuário
  • 49. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Redirecionamentos Não-Validados • Exemplo 1: http://www.example.com/redirect.jsp?url=evil.com
  • 50. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE Redirecionamentos Não-Validados • Exemplo 2: http://www.example.com/boring.jsp?fwd=admin.jsp
  • 51. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Armazenamento Criptográfico Inseguro  Falhas de implementação de mecanismos de criptografia podem colocar em risco as informações armazenadas;  Um atacante pode aproveitar essa vulnerabilidade e tentar obter acesso aos conteúdos de dados sensíveis à aplicação;  Utilizar algoritmos reconhecidos;  Não utilizar algoritmos fracos.
  • 52. PRINCIPAIS PROBLEMAS DE SEGURANÇA DE SOFTWARE  Falha ao Restringir Acesso à URLs  Essa falha permite que usuários não autorizados acessem páginas restritas da aplicação;  Caso um mecanismo de controle de acesso não seja implementado de forma adequada, é possível que um usuário tenha acesso a páginas ou informações que não deveriam ser permitidas;  Implementar controles de acessos, adequados a lógica de negócio e funções da aplicação;  Realizar testes de penetração.
  • 53. PADRÕES DE ATAQUE 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 “CAPEC” - http://capec.mitre.org/ Projeto que tem como objetivo identificar e documentar padões de ataques de possam ser utilizados para testes de segurança de software.
  • 55. ATAQUES MAIS COMUNS  DDoS ATTACK  Maneira relativamente simples de derrubar algum service.  Port Scanning Attack  Técnica bastante utilizada para encontrar fraquezas em um determinado servidor.  Cavalos de Tróia, vírus e outros malwares  Normalmente desenvolvidos com o único objetivo de gerar destruição do alvo.  Ataques de Força Bruta  É uma estrategia usada para quebrar a cifragem de um dado percorrendo uma lista de possíveis chaves com um algoritmo de busca até que a chave seja encontrada
  • 57. CONCLUSÃO  Testes de segurança irão garantir:  Que o software desenvolvido terá sua garantia de funcionalidade e não trará riscos aos seus beneficiados.  Que o processo de resposta a incidentes após a entrega do software não será traumático devido a falhas que não foram identificadas durante o processo de desenvolvimento.  Que todas as informações e expectativas de segurança do cliente serão entregues.
  • 58. CONCLUSÃO  O Que fazer com os resultados dos testes?  Identificar suas deficiências e capacitar os recursos envolvidos no desenvolvimento de software.  Identificar e desenvolver políticas com padrões que garatem o desenvolvimento de um software mais seguro.  Trabalhar e buscar a viabilização da inclusão de recursos de segurança no processo de desenvolvimento de software.
  • 59. REFERÊNCIAS • http://codigofonte.uol.com.br/artigos/evite-sql-injection-usando- prepared-statements-no-php • http://www.blogcmmi.com.br/engenharia/top-10-vulnerabilidades-em- aplicativos-web-owasp • http://pt.slideshare.net/clavissecurity/principais-ameas-aplicaes-web- como-explorlas-e-como-se-proteger • http://pt.slideshare.net/Qualister/testes-de-segurana • http://pt.slideshare.net/conviso/testes-de-segurana-de-software- teched-2008-presentation • http://www.redesegura.com.br/2012/01/saiba-mais-sobre-o-cross- site-scripting-xss/ • http://imasters.com.br/artigo/9879/seguranca/xss-cross-site-scripting/ • http://www.documentoeletronico.com.br/faqTEC010.asp • http://parul.info/fuzzing-mutation-vs-generation/ • http://capec.mitre.org/index.html • http://www.devmedia.com.br/evitando-sql-injection-em-aplicacoes- php/27804 • http://www.devmedia.com.br/sql-injection-em-ambientes-web/9733
  • 60. REFERÊNCIAS • www.redesegura.com.br%2F2012%2F03%2Fserie-ataques-os-ataques- cross-site-request-forgery-csrf%2F&h=ZAQEJv-aw • www.pt.wikipedia.org%2Fwiki%2FCrosssite_request_forgery&h=ZAQEJv- aw • http://www.slideplayer.com.br%2Fslide%2F391589%2F&h=ZAQEJv-aw • https://www.owasp.org/index.php/Top_10_2010-A9 Insufficient_Transport_Layer_Protection • https://www.owasp.org/index.php/Top_10_2010-A10- Unvalidated_Redirects_and_Forwards