webinar - exploração de vulnerabilidades em softwares in seguros

58
CIRCUITO DE PALESTRAS EXIN Brasil 2016

Upload: exin

Post on 15-Jan-2017

155 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Webinar - Exploração de vulnerabilidades em softwares in seguros

CIRCUITO DE PALESTRASEXIN Brasil 2016

Page 2: Webinar - Exploração de vulnerabilidades em softwares in seguros

https://www.exin.com/home_portfolio/

EXIN PORTFOLIO Baseado no e-CF(e-COMPETENCE FRAMEWORK)

Page 3: Webinar - Exploração de vulnerabilidades em softwares in seguros

BEM-VINDO AO CIRCUITO DE PALESTRAS 2016

Desenvolvimento de Software  Num ambiente de negócios novo, flexível e dinâmico as empresas precisam estar focadas em inovação contínua. TIC tem um papel crucial neste contexto. O EXIN oferece programas de certificação que abordam a necessidade de desenvolvimento de softwares inovadores e flexíveis, considerando o aumento do cyber crime e o desenvolvimento de novas tecnologias e abordagens, tais como Cloud Computing e Agile.

Page 4: Webinar - Exploração de vulnerabilidades em softwares in seguros

BEM-VINDO AO CIRCUITO DE PALESTRAS 2016

Governança e (Ciber) Segurança - Segurança da Informação  A ascensão da mobilidade e a explosão de dados resultou na crescente necessidade de levar em consideração a segurança, a fim de reduzir riscos corporativos e proteger seus próprios ativos e o de seus clientes. O cibercrime está em ascensão e pode ter resultados devastadores. Com uma estimativa de 95% de todos os incidentes de segurança envolvendo erro humano, as pessoas podem ser consideradas o seu elo mais fraco.

O EXIN oferece uma ampla gama de certificações relevantes no domínio da governação & SECURITY (CYBER), atendendo a todas as funções e níveis dentro de uma organização, de modo que você tenha, internamente, todo o conhecimento necessário para proteger o seu negócio.

Page 5: Webinar - Exploração de vulnerabilidades em softwares in seguros

• Pesquisador Doutor em Ciência da Computação (UNESP)

• Docente Permanente do MPMQ – Inmetro

• Docente Colaborador do PPGI/UFRJ

• Orientador de alunos de mestrado/doutorado MPMQ/PPGI

• Área de atuação: análise e proteção de software e análise forense

• Mais de 50 artigos científicos publicados

• Instrutor dos cursos de Análise Forense Computacional, Análise de Malware, Análise Forense de Redes pela Clavis e do curso Secure Programming Foundation da EXIN

About me

Page 6: Webinar - Exploração de vulnerabilidades em softwares in seguros

• Introdução• Vulnerabilidades mais comuns (OWASP)• Alguns cases de exploração (bWAPP & bee-box)• Conclusões

Exploração de Vulnerabilidades em Softwares InSeguros

Page 7: Webinar - Exploração de vulnerabilidades em softwares in seguros

• Crime cibernético

• Vazamento de dados

• Segurança da informação

• Foco atual em medidas reativas e preventivas

• É necessário mitigar as vulnerabilidades em sua origem

Introdução

Page 8: Webinar - Exploração de vulnerabilidades em softwares in seguros

• O que é uma vulnerabilidade ?

– Fraqueza em um sistema– Inerente em sistemas complexos; sempre estarão presentes– Maioria advém da falta de práticas de codificação segura– O caminho na qual uma ameaça é manifestada– Duas categorias: conhecidas e desconhecidas (zero day)

Introdução

Page 9: Webinar - Exploração de vulnerabilidades em softwares in seguros

TOP 10 - OWASP

• Injeção de código• Quebra de autenticação e Gerenciamento de Sessão• Cross-Site Scripting (XSS)• Referência Insegura e Direta a Objetos• Configuração Incorreta de Segurança• Exposição de Dados Sensíveis• Falta de Função para Controle do Nível de Acesso• Cross-Site Request Forgery (CSRF)• Utilização de Componentes Vulneráveis Conhecidos• Redicionamentos e Encaminhamentos Inválidos

Page 10: Webinar - Exploração de vulnerabilidades em softwares in seguros

bWAPP & bee-box

• bWAPP: aplicação web insegura gratuita e de código aberto• bee-box: máquina virtual já com o bWAPP instalado• Cobre mais de 100 vulnerabilidades web incluindo todos os

riscos do projeto OWASP TOP 10• Aplicação PHP com banco de dados MySQL• Desenvolvido para próposito educacional e para testes de

segurança

Page 11: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 12: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 13: Webinar - Exploração de vulnerabilidades em softwares in seguros

#1 – Injeção de código

• Existem vários tipos de vulnerabilidades de injeção:– Injeção SQL, de Código, de Comando de SO, LDAP, XML, Xpath, IMAP/SMTP, Buffer

Overflow

• Envolvem a permissão de execução de requisições, comandos ou consultas não confiáveis ou manipuladas pela aplicação web

• Riscos elevados quando a vulnerabilidade é efetivamente explorada: perda/corrupção de dados, roubo de dados, acesso não autorizado, negação de serviço

Page 14: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 15: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 16: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 17: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 18: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 19: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 20: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 21: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 22: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 23: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 24: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 25: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 26: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 27: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 28: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 29: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 30: Webinar - Exploração de vulnerabilidades em softwares in seguros

#2 – Quebra de autenticação e Gerenciamento de Sessão

• Uma vulnerabilidade que permite a captura ou evasão de métodos de autenticação utilizados para proteger contra acessos não-autorizados

• Esquema mais comum é a utilização de usuário e senha

• Estudos recentes de 2015 indicam que 23% das aplicações testadas são vulneráveis

Page 31: Webinar - Exploração de vulnerabilidades em softwares in seguros

#2 – Quebra de autenticação e Gerenciamento de Sessão

• Passos utilizados para logar em uma aplicação Web– Solicitação das credenciais (usualmente usuário e senha)– As informações são submetidas a aplicação e um ID da sessão é criado e correlacionado

as credenciais

• Fraquezas – Conexões não criptografadas– Credenciais previsíveis– Valor de sessão não expira ou não é invalidado depois de um logout– Credenciais de autenticação não são protegidas em seu armazenamento– IDs da sessão são utilizados na URL

Page 32: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 33: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 34: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 35: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 36: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 37: Webinar - Exploração de vulnerabilidades em softwares in seguros

#3 – Cross-Site Scripting (XSS)

• Inserção pelo atacante de trechos de código JavaScript não confiáveis em sua aplicação sem a devida validação

• Código JavaScript é executado pela vítima que visita a aplicação• 2 tipos principais:

– Refletido: link enviado pelo atacante por meio de email, rede social, etc. Este link contém um script executado pela vítima

– Armazenado: o atacante embarca o código de forma persistente no website alvo na qual será executado por todos que visitarem o site

Page 38: Webinar - Exploração de vulnerabilidades em softwares in seguros

#3 – Cross-Site Scripting (XSS)

• Riscos:– Comprometimento da conta do usuário– Obtenção dos dados da aplicação Web– Modificação de conteúdo da página– Redirecionamento da vítima para outro site malicioso ou falsificado– Plataforma para instalação de outros códigos maliciosos no sistema da

vítima

• Demonstração

Page 39: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 40: Webinar - Exploração de vulnerabilidades em softwares in seguros

#4 – Referência Insegura e Direta a Objetos

• Ocorre quando um programador expõe uma referência a implementação interna de um objeto, como um arquivo, diretório, ou registro da base de dados

• Sem a verificação do controle de acesso ou outra proteção, os atacantes podem manipular estas referências para acessar dados não-autorizados

• Demonstração

Page 41: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 42: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 43: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 44: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 45: Webinar - Exploração de vulnerabilidades em softwares in seguros

#5 – Configuração Incorreta de Segurança

• Configuração inapropriada do servidor ou aplicação Web– Depuração habilitada– Permissões incorretas das pastas– Uso de contas e senhas padrão– Páginas de configuração/gerenciamento habilitadas

• Uma boa segurança exige a definição de uma configuração segura e implementada na aplicação, frameworks, servidor de aplicação, servidor web, banco de dados e plataforma

Page 46: Webinar - Exploração de vulnerabilidades em softwares in seguros

#6 – Exposição de Dados Sensíveis

• O que são dados sensíveis:– Dados bancários (números de contas e cartões de crédito)– Dados médicos– Informação pessoal (data de nascimento, CPF)– Contas de usuário/senhas

• Quais são as implicações:– Perda financeira– Hijacking da identidade– Perda de confiança

• Principais causas:– Proteção insuficiente na camada de transporte– Armazenamento inseguro de dados criptográficos

Page 47: Webinar - Exploração de vulnerabilidades em softwares in seguros

#7 – Falta de Função para Controle do Nível de Acesso

• Trata dos seguintes pontos:– Um usuário pode acessar diretamente um recurso?– A interface de usuário expõe um recurso não autorizado?– O servidor não deve confiar somente na entrada do

usuário

• Demonstração

Page 48: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 49: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 50: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 51: Webinar - Exploração de vulnerabilidades em softwares in seguros
Page 52: Webinar - Exploração de vulnerabilidades em softwares in seguros

#8 – Cross-Site Request Forgery (CSRF)

• Vulnerabilidade que permite um atacante forçar um usuário a realizar operações sem seu consentimento

• Dependendo da ação, esta vulnerabilidade pode causar danos seríssimos para o usuário– Postagens constransgedoras em redes sociais– Movimentação de $ de contas bancárias

• Ex. Enquanto logado em sua conta bancária, você acessa um siste que tem um ataque CSRF (neste ponto, o atacante transfere seu $ para a conta dele)

Page 53: Webinar - Exploração de vulnerabilidades em softwares in seguros

#9 – Utilização de Componentes Vulneráveis Conhecidos

• Componentes, tais como bibliotecas, frameworks, e outros módulos de software quase sempre são executados com privilégios elevados

• Se um componente vulnerável é explorado, um ataque pode causar sérias perdas de dados ou o comprometimento do servidor

• As aplicações que utilizam componentes com vulnerabilidades conhecidas podem minar as suas defesas e permitir uma gama de possíveis ataques e impactos

Page 54: Webinar - Exploração de vulnerabilidades em softwares in seguros

#10 – Redicionamentos e Encaminhamentos Inválidos

• Situação onde um atacante pode controlar qual site você será redirecionado alterando um parâmetro inserido pelo usuário

• Sem uma validação adequada, os atacantes podem redirecionar as vítimas para sites de phishing ou malware, ou usar encaminhamentos para acessar páginas não autorizadas

Page 55: Webinar - Exploração de vulnerabilidades em softwares in seguros

Conclusões

• Treinamento e conscientização de programadores e desenvolvedores de software como forma de mitigar vulnerabilidades

– Minimização no tempo de reparo– Redução de custo para correção de falhas– Reputação da empresa– Satisfação do cliente

Page 56: Webinar - Exploração de vulnerabilidades em softwares in seguros

ACESSO AO MATERIAL

Vamos disponibilizar na próxima semana: Link desta apresentação no YouTube e Blog Clavis.

Página do curso para todos os detalhes: http://www.clavis.com.br/treinamento-ensino-a-distancia-

ead/exin-secure-programming-foundation

Para mais informações entre em contato conosco: [email protected]

Apresentações do Circuito de Palestras EXIN 2012-2016: https://www.youtube.com/user/EXINexams/videos?flow=g

rid&sort=dd&view=0

ACESSO AO MATERIAL LEMBRETES FINAIS

Aulas17, 19, 24, 26 e 31 de outubro de 2016

Segundas e quartas, das 19:00 as 22:15 horas

Page 57: Webinar - Exploração de vulnerabilidades em softwares in seguros

QUEM SOMOS

A Prova é composta por 40 questões a serem respondidas em 60 minutos

QUEM SOMOS Certificação EXIN Secure Programming

Requisitos do exame Peso1. Introdução 10%2. Gerenciamento de Sessão e Autenticação 15%3. Manejo de Entrada de Usuário 22.5%4. Autorização 7.5%5. Configuração, Manejo e Registro de Erros 15%6. Criptografia 10%7. Engenharia de Software Seguro 20%Para ser aprovado o candidato precisa acertar 65% do Exame (26 Questões)

Page 58: Webinar - Exploração de vulnerabilidades em softwares in seguros

Davidson BoccardoPesquisador

[email protected]

PERGUNTAS E RESPOSTAS

Visite EXIN www.exin.com/BR/pt

Visite Clavis www.clavis.com.br