(In)Segurança
Robson Cruz
Desvendando as vulnerabilidades
SECOMPP 2016
Cronograma
- Introdução e Conceitos;
- Exemplificação e Casos Reais;
- Apresentação das Ferramentas;
- Demonstração;
- Explicação e utilização das ferramentas
- Conclusão e Considerações finais.
O que você vai aprender
- Como utilizar "hacking-tools" para melhorar a segurança do seu sistema;
- A importância de segurança para nós, programadores;
O que você não vai aprender
- Como "hackear" facebooks;
- Como enriquecer do dia pra noite;
- Como se livrar daquelas contas que andam dando problema;
1. Introdução
Art. 154-A. Invadir dispositivo informático alheio, conectado ou não à rede de computadores, mediante violação indevida de mecanismo de segurança e com o fim de obter, adulterar ou destruir dados ou informações sem autorização expressa ou tácita do titular do dispositivo ou instalar vulnerabilidades para obter vantagem ilícita:
Pena - detenção, de 3 (três) meses a 1 (um) ano, e multa.
Não existe bom ou mau conhecimento, existe conhecimento bem aplicado e mal aplicado.
Hackers
- O que são hackers?
- Hacker ou Cracker?
- Quem são eles?
- Seu vizinho, seu colega de sala, seu primo distante...
- O que eles fazem?
- Por que eles fazem?
Ética Hacker
- O que é?
- "A crença que o compartilhamento de informação é algo positivo, e que é dever ético dos hackers de compartilhar suas habilidades atráves de iniciativas open-source, facilitando o acesso a informação e a recursos computacionais sempre que possível."
- O que a Ética Hacker significa para nós?
Vulnerabilidades
- O que é uma vulnerabilidade?
- Condição que, ao ser explorada pelo atacante, pode resultar em uma violação de segurança.
- Como surgem?
- Falhas de projeto, falta de testes, tecnologias desatualizadas ou parcialmente incompatíveis, falhas de configuração, etc.
Vulnerabilidades
Acesso
Recursos
Falha
Vulnerabilidades
Vulnerabilidades
- O que ela permite?
- Perda de confiabilidade, garantia de privilégio não autorizado, roubo de informações, etc.
- Hoje em dia é comum a exploração de falhas do tipo buffer overflow.
Tipos de Vulnerabilidades
- Natural;
- Hardware;
- Software;
- Comunicação;
- Humana
Existem muitas classificações em relação a vulnerabilidades, dependendo de qual o tipo de ambiente em que nos encontramos
As mais queridas
- Entrada Não Validada;
- Controle de Acesso Falho;
- Autenticação e Gerenciamento de Sessão não confiável;
- Buffer Overflow;
- Tratamento Impróprio de Erros.
Na lista abaixo, baseada em dados colhidos através dos projetos OWASP, OSVDB e NVD, encontram-se algumas das vulnerabilidades mais exploradas nos dias de hoje:
O que todas essa diferentes vulnerabilidades tem em comum?
Todas poderiam ter sido prevenidas através de uma codificação que se preocupasse com a segurança
Esse assunto será abordado mais a frente
Ataques
- O que é um ataque?
- O que motiva um ataque?
- Dinheiro, Vingança, Ideologias políticas ou religiosas, curiosidade ou a simples vontade de testar as habilidades.
- Não é incomum que ataques em grande escala surjam por iniciativa interna.
Ataques
- Nos dias de hoje os ataques mais comuns são de DDoS, Trojan-Horse, Port-Scanning e Brute-Force;
- Outros ataques comuns são de Spoofing(email, SMS, etc), Sniffing, Scamming e Key-Loggers.
Tipos de Ataques
- Existem diferentes classificações em relação aos "tipos" de ataques;
- Dependendo da situação uma classificação pode ser mais viável do que a outra.
- Durante o minicurso vamos utilizar a classificação em relação ao vetor e ao alvo comprometido.
Quanto ao Vetor
- Dispositivos Removíveis;
- Hardware Alterado;
- Internet sem Fio;
- Rede;
- SMSs;
- Sites Maliciosos;
- Pessoas(Engenharia Social)
Quanto ao Alvo Comprometido
- Armazenamento;
- Banco de Dados;
- Serviço;
- Recursos;
- Rede;
- Informação;
Anatomia de Ataques
Anatomia de Ataques
Um ataque bem organizado pode ser um ataque letal
Para uma melhor organização, podemos dividir ataques em fases
Diz respeito a organização de um ataque
Anatomia de Ataques
- Escolha de um alvo;
- Coleta de Informações públicas;
- Coleta de Informações de Infra-Estrutura;
- Criação de um Ambiente de Testes;
- Ataque;
- Destruição de Evidências;
- Obtenção de Acesso Facilitada;
- Utilização da Máquina
Anatomia de Ataques
- Existem ataques que não se preocupam com a intrusão ou que se focam em trabalhar com casos de "entrada inesperada";
- Não são todos atacantes que constroem seus scripts/exploits do zero;
- Ataques de Script Kiddies podem muitas vezes serem devastadores;
- Diferentes tipos de ataques muitas vezes são combinados para alcançar um objetivo
Anatomia de Ataques
- De forma resumida, podemos dizer que um ataque poderia ser dividido em 4 passos:
- Recon (Reconhecimento e coleta de informações);
- Exploit (Exploração da vulnerabilidade);
- Payload (O "ataque" em si, onde é realizado o objetivo inicial do atacante);
- Loot (A informação/dado desejado, ou um sistema comprometido)
O elemento humano na Segurança de Sistemas
- Por que seres humanos são o "elo mais fraco"?
- Existe sistema 100% seguro?
Segurança no desenvolvimento de sistemas
- Por que se importar com segurança?
- É melhor resolver um problema antes ou depois que ele acontece?
- Na prática, como eu posso aumentar a segurança?
- Testes, rotinas de verificação, atualização consistente, auto-conhecimento, utilização de mecanismos de proteção.
- Possíveis Falhas
- Desordem, Falta de Comunicação, Problemas de Adaptação.
Em suma...
- Tudo o que falamos até agora tem a ver com um dos vários segmentos da Tecnologia da Informação:
- O que é SI mesmo?
- Diretamente relacionada com a proteção, de diversas formas, de um conjuto de informações, preservando o seu valor e confiabilidade.
- Uma das formas mais eficazes de aumentar a segurança da informação é prevenindo vulnerabilidades.
Segurança da Informação
Pentest
- O trabalho de descoberta e avaliação de vulnerabilidades é muitas vezes difícil, e requer conhecimento especializado;
- É necessário o conhecimento de como as vulnerabilidades são exploradas e possíveis soluções
- A realização de Pentests, ou Testes de Invasão, auxilia no controle e conhecimento das vulnerabilidades existentes em um sistema, bem como um boa oportunidades para encontrar vias de prevenção contra ataques.
- É comum ser entregue, em conjunto com uma avaliação das vulnerabilidades, uma análise de impacto e estimativas de prejuízo.
Pentest
- A utilização de hacking-tools para descoberta e compreensão de vulnerabilidades é prática padrão na área de Pentesting.
- Entre ferramentas mais utilizadas se encontram:
- John The Ripper (Verificação de Senhas);
- Nmap (Auditoria de Segurança de Sistemas);
- Nessus (Scanner de vulnerabilidades);
- Também são realizados testes em:
- Firewalls e WebProxy;
- Tripware (IDS de hosts);
- Snort (IDS de rede).
Codificação Segura
- Existem várias diretrizes e boas práticas no que diz respeito a chamada "codificação segura"
- Dependendo da linguagem, plataforma, ou tipo de aplicação, técnicas de Codificação Segura podem variar
- O objetivo é manter o CID(Confidencialidade, Integridade e Disponibilidade) ao máximo, mitigando possíveis problemas.
Codificação Segura
Alguns princípios gerais:
- Validação a entrada de dados, mesmo que de fonte confiável
- Utilize formatadores de String.
- Trate campos como literais
- Após a validação, insira literais representando aquele dado.
Codificação Segura
- Teste e Previna XSS(ou CSS)
- Insira códigos HTML/JS em campos de formulário.
- Realize checagem cuidadosa do acesso aos buffers
- Tanto de tamanho quanto conteúdo.
- Evite utilização de funções inseguras
- Não permitem a verificação ou checagem de conteúdo.
- Sempre use o terminador de string
- Alocação de uma posição a mais e não utilizar;
- Procure "zerar" o buffer antes de inserir novos dados;
- Faça inserção manual caso notar alterações súbitas.
Codificação Segura
No fim, podemos dizer que codificação segura é
Escrever códigos não vulneráveis
2. Exemplos e
Casos Reais
Casos Famosos
- Vazamento de informações da PSN(2011), mais de 70 milhões de registros afetados;
- Heartland Big-leak(2009), mais de 130 milhões de registros afetados, incluindo informação completa de cartão de crédito em mais de 70% dos casos;
- Stuxnet(2010), mais de 100 mil computadores infectados, e um programa nuclear destruído;
- Hearthbleed(2014) e Shellshock(2014);
- OPM(2015), hackers chineses se infiltraram na rede por cerca de 1 ano, e mais de 1.8 milhões de registros comprometidos, porém pode ser um número muito maior;
Ransomwares
- Existem inúmeros casos de ransomwares todos os dias ao redor do mundo:
- Malwares desenvolvidos para bloquear o acesso a um sistema até uma certa quantia em dinheiro for paga;
- A maioria dos casos de ransomwares poderia ter sido prevenida com a implementação de correção de vulnerabilidades por até 20% do valor exigido pelo ransomware.
Botnets
- É estimado que cerca de 35% dos computadores ao redor do mundo sejam parte de algum tipo de botnet(legal ou ilegal)
- Botnets são muitas vezes utilizadas em ataques DDoS e por spammers e scammers para aumentar a sua "área de efeito" e poder computacional
- Uma das maiores botnets já criadas de maneira ilegal chegou a mais de 20 milhões de máquinas, com uma capacidade de spam de 1.4TB/dia.
Trojan
- Dados coletados em 2012 mostraram que, em grande parte, a maioria dos computadores infectados com trojans se encontram em ambientes empresariais
- O mesmo conjunto de dados também mostrou que a alta incidência de trojans devia-se, em grande parte, do "excesso de confiança" no ambiente
Exemplo
- Imagine que você possui um sistema que gera, em média R$1000/hora de lucro;
- Imagine agora que através de uma vulnerabilidade até o momento não conhecida, um atacante invade o sistema;
- O invasor realiza um rootkit, e desativa o fornecimento de serviços do seu sistema;
- Em uma situação otimista, vamos supor que o problema foi resolvido em 6 horas;
Exemplo
- Você perdeu, no mínimo R$6000, supondo que não houve danos ao equipamento.
- Imagine agora, que no mesmo caso, o invasor também resolveu inserir várias novas vulnerabilidades;
- Para conseguir reestabeler um funcionamento normal, será necessário um processo de migração e fortificação da segurança, o que irá consumir mais tempo...
- O quanto de prejuízo você já teve?
3. Ferramentas
Kali Linux
- Anteriormente conhecido como BackTrack;
- Baseado em Debian;
- Possui uma extensiva coleção de ferramentas de testes de segurança, Análise Forense e pentesting;
- Rolling-Release;
- Fácil de usar
Metasploit Framework
- Uma ferramenta para desenvolvimento e execução de exploits;
- Muito poderoso;
- Uma das primeiras ferramentas de sua categoria;
- Costumizável;
- Fácil de usar;
Metasploitable 2
- Uma máquina virtual intencionalmente vulnerável para realização e aprendizados de pentesting;
- Oferece uma forma simples de instanciar um "servidor" para teste;
- host-only;
- Fácil de usar;
Nmap
- Network Mapper;
- Muito poderoso;
- Extremamente simples, porém extremamente poderoso;
- Utilizado ao redor do mundo todo;
- Fácil de usar;
4. Demonstração
- Dogeminer Co. possui um sistema para controle geral de suas vendas, transações de bitcoins, etc.
- Fomos contratados para realizar um relatório sobre o impacto das vulnerabilidades do sistema, e sugerir possíveis melhorias.
- Para cada "item" da lista de verificações, realizam-se as seguintes perguntas:
- Existem problemas aparentes?
- Existe a possibilidade de vulnerabilidades futuras?
- Qual o impacto dos problemas apresentados?
- Existe alguma possível solução? Qual?
- Para calcular o impacto de uma vulnerabilidades são utilizadas métricas específicas, e todos os dados coletados vão para o relatório final
- CVSS: Common Vulnerability Scoring System
- Priorizar recursos de forma eficiente e bem planejada;
- A pontuação para vulnerabilidades é atribuída através de uma fórmula, levando em conta métricas base, temporais, de ambiente e grau de risco associado a elas.
Exemplo de uma tabela de avaliação de riscos
- Teste de Mapeamento e Infraestrutura;
- Teste de Exaustão;
- Teste de Publicidade de Informações;
- Teste de Engenharia Social;*
- Teste de Invasão
Testes
Análise de Risco
x
Gerenciamento de Vulnerabilidades
5. Utilização das Ferramentas
6. Considerações Finais
Links Interessantes
-
ExploitDB
- Excelente base de dados sobre exploits, vulnerabilidades, e as mais recentes falhas de segurança encontradas
-
Lei sobre Crimes Informáticos
- Texto completo da lei sobre crimes informáticos
-
Offensive Security
- Possui cursos, certificações e excelentes videos instrutivos
Livros Interessantes
The Web Application Hackers Handbook
Dafydd Stuttard & Marcus Pinto
Introdução à Segurança de Redes
Ivo Peixinho
Livros Interessantes
Hackers Expostos
Stuart McClure, Joey Scambray, George Kurtz
Guia de Referência Rápida OWASP
OWASP
Séries e Filmes
-
Mr Robot(2015-2016)
- Não exatamente sobre SI e hacking, mas durante a série é possível ver como grandes operações de invasão ocorrem e se organizam.
-
Revolution OS(2001)
- Conta um pouco da história do surgimento do GNU e do Linux, possui trechos sobre o Hackerismo e a Cultura Hacker
Séries e Filmes
-
DEFCON: The Documentary(2013)
- A DEFCON é considera por muitos a maior conferência Hacker do mundo, e esse documentário dá um ponto de vista interno sobre a ideologia por trás do evento.
-
We Are Legion: The Story of the Hacktivists(2012)
- Documentário sobre o coletivo, formação e as práticas do hackerativismo, e um dos seus maiores representantes, o Anonymous.
Mercado
- Panorama atual:
- Muitas vezes contratadas por empresas de segurança, agências governamentais, e consultoria em empresas diversas.
- Salário:
- 60 a 130 mil dólares anuais(10 anos de experiencia);
- salário mensal entre R$6.500 a R$14.000*
- Grandes centros na área:
- São Paulo, Rio de Janeiro, Brasilia, Curitiba e Maringa
Conclusões
Keep learning, keep ahead
- The ment0r
Minicurso: (In)Segurança - Desvendando as Vulnerabilidades
By Robson Cruz
Minicurso: (In)Segurança - Desvendando as Vulnerabilidades
Minicurso realizado durante a SECOMPP(Semana da Computação de Presidente Prudente) em 2016,
- 73