exemplo de coisas que dão errado seminário de informática teórica

51
Exemplo de Exemplo de coisas que dão coisas que dão errado errado Seminário de Seminário de Informática Teórica Informática Teórica Leonardo Monteiro (lmr) Rafael Nóbrega (ron)

Upload: ova

Post on 08-Jan-2016

20 views

Category:

Documents


3 download

DESCRIPTION

Exemplo de coisas que dão errado Seminário de Informática Teórica. Leonardo Monteiro (lmr) Rafael Nóbrega (ron). Agenda. Motivação Tipos de Ataques Vulnerabilidades Exemplos Reais Redes Sem Fio Sans Top-20 List Top 5 Log Reports The Ten Security Trends. Motivação. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Exemplo de coisas que dão errado Seminário de Informática Teórica

Exemplo de Exemplo de coisas que dão coisas que dão erradoerradoSeminário de Seminário de Informática TeóricaInformática Teórica

Leonardo Monteiro (lmr)

Rafael Nóbrega (ron)

Page 2: Exemplo de coisas que dão errado Seminário de Informática Teórica

2

AgendaAgenda

•Motivação•Tipos de Ataques•Vulnerabilidades•Exemplos Reais

– Redes Sem Fio– Sans

*Top-20 List*Top 5 Log Reports*The Ten Security Trends

Page 3: Exemplo de coisas que dão errado Seminário de Informática Teórica

3

MotivaçãoMotivação

•Perigos que corremos atualmente•Falta de precaução dos

programadores• Inocência do Usuário Comum•Complexidade de se obter um

sistema completamente seguro

Page 4: Exemplo de coisas que dão errado Seminário de Informática Teórica

Tipos de Tipos de AtaqueAtaque

Page 5: Exemplo de coisas que dão errado Seminário de Informática Teórica

5

Buffer overflowBuffer overflow

• Estouro de pilha ou transbordamento de dados, acontece quando o tamanho de um buffer ultrapassa sua capacidade máxima de armazenamento.

Page 6: Exemplo de coisas que dão errado Seminário de Informática Teórica

6

Buffer Over FlowBuffer Over Flow

• Pilha de Execução:

• Bug: strlen(input) > 7

Ret. Addr.

char *input

buf[7]

buf[6]

buf[1]

buf[0]

void check_input(char *input) {char buf[8];strcpy(buf,input);if (check(buf)) allow_action();return;

}

Page 7: Exemplo de coisas que dão errado Seminário de Informática Teórica

7

Java Buffer OverflowJava Buffer Overflow

• Parsing de componentes com imagens GIF– Imagens com Width 0, a jre aloca este

tamanho e depois copia os dados para a memória

– O overflow corrompe diversos ponteiros e pode resultar na execução de código arbitrário

http://www.zerodayinitiative.com/advisories/ZDI-07-005.html

Affected Products:JDK and JRE 5.0 Update 9 and earlier (all platforms)SDK and JRE 1.4.2_12 and earlier (all platforms)SDK and JRE 1.3.1_18 and earlier (all platforms

Page 8: Exemplo de coisas que dão errado Seminário de Informática Teórica

8

Denial of ServiceDenial of Service

• DoS (Denial of Service) é simplesmente deixar um serviço incapaz de responder a requisições.

• Tipos:– Ping of Death

* Pacote ICMP malformado muito grande

– SYN Flood attack * Protocolo TCP/IP, a three-way

handshake.– DDoS

* Diversas Máquinas Simultaneamente Inundam o site

Page 9: Exemplo de coisas que dão errado Seminário de Informática Teórica

9

ExemploExemplo

SimpleEmail email = new SimpleEmail(); email.setHostName("mail.myserver.com"); email.addTo("[email protected]", "John Doe"); email.setFrom("[email protected]", "Me"); email.setSubject("Test message"); email.setMsg("This is a simple test of commons-email"); while (true){ email.send(); }

Page 10: Exemplo de coisas que dão errado Seminário de Informática Teórica

10

SQL InjectionSQL Injection

Page 11: Exemplo de coisas que dão errado Seminário de Informática Teórica

11

SQL InjectionSQL Injection

Page 12: Exemplo de coisas que dão errado Seminário de Informática Teórica

12

SQL InjectionSQL Injection

Page 13: Exemplo de coisas que dão errado Seminário de Informática Teórica

13

Key loggerKey logger

• Boa intenção– Trabalho, filhos, ...

• Spam• Instalação• Teclas digitadas• Imagens (teclado virtual)• Informações

– senhas de banco, números de cartão de crédito,...

• Prejuízo

Page 14: Exemplo de coisas que dão errado Seminário de Informática Teórica

14

ExemploExemplo

•extensão DLL •extensão EXE•Programas

– Home Key Logger– Active Key Logger– Key Logger RemoteBuddy

Page 15: Exemplo de coisas que dão errado Seminário de Informática Teórica

15

Key LoggerKey Logger

Page 16: Exemplo de coisas que dão errado Seminário de Informática Teórica

VulnerabilidaVulnerabilidadesdes

Page 17: Exemplo de coisas que dão errado Seminário de Informática Teórica

17

Race conditionsRace conditions

• Ocorrem em software, especialmente quando há comunicação entre processos separados ou execução de threads

Page 18: Exemplo de coisas que dão errado Seminário de Informática Teórica

18

Time-of-check-to-Time-of-check-to-time-of-use time-of-use (TOCTTOU)(TOCTTOU)

global integer A = 0; //incrementa o valor de A e desenha "RX" // ativado em algum momento, uma// interrupção é recebida do controlador// serial

task Received() { A = A + 1; print "RX";

} //é ativado a cada segundo

task Timeout() { if (A is divisible by 2) {

print A; }

}

• Saídas: 0 0 0 RX RX 2 RX RX 4 4

Page 19: Exemplo de coisas que dão errado Seminário de Informática Teórica

19

Fraca checagem de Fraca checagem de entradaentrada

• Problemas Gerais– Muitos dos programas tem entrada

*Usar entrada*Funções chamam outros módulos*Formulário de entrada Web

– Muitos exemplos de web sites*Linguagens script com entrada string

– Sistema extensível também tem sérios problemas*Módulos designados assumem chamadas vindas de códigos confiáveis

*Extensões maliciosos no sistemas podem chamar módulos confiáveis

Page 20: Exemplo de coisas que dão errado Seminário de Informática Teórica

20

Privilégio Privilégio DesnecessárioDesnecessário

• A maioria dos ataques quer ganhar privilégios:– Acesso a programas, arquivos, etc.., dentro de

um sistema

• Se um atacante pode ganhar privilégios de um programa, este deve ser o mínimo possível. – Isto é chamado do Princípio do Menor Privilégio.

Page 21: Exemplo de coisas que dão errado Seminário de Informática Teórica

21

ExemplosExemplos

• DOS/Windows– Configuração padrão fornece todos os

privilégios de acesso

• Unix– Problemas com programas executando como

root*Unix requer que vários programas executem como root

*Em 1999, 50% dos sendmail servers estavam vulneráveis

Page 22: Exemplo de coisas que dão errado Seminário de Informática Teórica

Programação Programação DefensivaDefensiva

Page 23: Exemplo de coisas que dão errado Seminário de Informática Teórica

23

Programação Programação DefensivaDefensiva

• Um Problema comum é o uso de estruturas de tamanho constante e funções para dados de tamanho dinâmico sem checagem

• Nunca faça código mais complexo que o necessário. – Complexidade alimenta bugs, incluindo

problemas de segurança.

• Deixe o código disponível para todos na rede (software livre) ou contrate alguém que faça uma auditoria de segurança.

• Se possível, reutilize o código ao invés de reescrever do zero.

Page 24: Exemplo de coisas que dão errado Seminário de Informática Teórica

24

Programação Programação DefensivaDefensiva

•Codifique todo dado importante transmitido por redes.

•Todo dado é importante até provar o contrário.

•Todo código é inseguro até provar o contrário.

•Se dados vão ser checado por correção, cheque se é correto, não se é incorreto.

Page 25: Exemplo de coisas que dão errado Seminário de Informática Teórica

Exemplos Exemplos Reais sobre Reais sobre (In)Segurança(In)Segurança

Page 26: Exemplo de coisas que dão errado Seminário de Informática Teórica

Redes sem fioRedes sem fio

Page 27: Exemplo de coisas que dão errado Seminário de Informática Teórica

27

HistóricoHistórico

•Crescimento– Economicamente viável– Taxa de transmissão– Conectividade entre instituições

•Novo cenário– Falta de segurança

Page 28: Exemplo de coisas que dão errado Seminário de Informática Teórica

28

RiscosRiscos

• Internos– Rogue WLAN– Configurações inseguras (VPN)– Associação acidental

•Externos– Espionagem– Roubo de Identidade– Ataques emergentes

Page 29: Exemplo de coisas que dão errado Seminário de Informática Teórica

29

Vulnerabilidades do Vulnerabilidades do WEP WEP ((Wired Equivalent Wired Equivalent PrivacyPrivacy))

•Criptografia RC4– Simétrica– Stream Cipher– 24 bits– 1/16.777.216– 5.000 pacotes trocados

Page 30: Exemplo de coisas que dão errado Seminário de Informática Teórica

30

AirSorntAirSornt

•http://airsnort.shmoo.com•Qualquer chave•Três a cinco milhões de pacotes

trocados

Page 31: Exemplo de coisas que dão errado Seminário de Informática Teórica

SANS SANS InstituteInstitute

Page 32: Exemplo de coisas que dão errado Seminário de Informática Teórica

32

Sans InstituteSans Institute

• SANS Institute – (SysAdmin, Audit, Network,

Security)– 165,000 security professionals around

the world

• Top-20 Internet Security Attack Targets (2006)

• Top 5 Essential Log Reports (2006)• The Ten Most Important Security Trends of

the Coming Year (2006)

Page 33: Exemplo de coisas que dão errado Seminário de Informática Teórica

33

Top 20 List 2006Top 20 List 2006• Operating Systems

– W1. Internet Explorer – W2. Windows Libraries – W3. Microsoft Office – W4. Windows Services – W5. Windows

Configuration Weaknesses – M1. Mac OS X – U1. UNIX Configuration

Weaknesses • Cross-Platform Applications

– C1 Web Applications – C2. Database Software – C3. P2P File Sharing

Applications – C4 Instant Messaging – C5. Media Players – C6. DNS Servers – C7. Backup Software – C8. Security, Enterprise,

and Directory Management Servers

• Network Devices – N1. VoIP Servers and

Phones – N2. Network and Other

Devices Common Configuration Weaknesses

• Security Policy and Personnel – H1. Excessive User Rights

and Unauthorized Devices – H2. Users (Phishing/Spear

Phishing) • Special Section

– Z1. Zero Day Attacks and Prevention Strategies

Page 34: Exemplo de coisas que dão errado Seminário de Informática Teórica

34

Sistemas Sistemas OperacionaisOperacionais

• Internet Explorer– Corrompe a memória, spoofing (assumir

identidade de alguém) e execução arbitrária de scripts.

– Execução de código remoto sem nenhuma interação com usuário * quando o usuário visita um site

malicioso ou lê um e-mail– Proteção

* Windows XP Service Pack 2* Internet Explorer v7* Trocar de Browser* Microsoft DropMyrights – Menor

Privilégio

Page 35: Exemplo de coisas que dão errado Seminário de Informática Teórica

35

Aplicações Cross-Aplicações Cross-PlatformPlatform

• Frameworks e aplicações web (PHP, .NET, J2EE, Ruby on Rails, etc) estão sujeitos a falhas de segurança.

• As vulnerabilidades mais exploradas são:– PHP Remote File Include

* Execução de código remoto– SQL Injection

* criar, ler, atualizar ou deletar qualquer dado da aplicação

– Cross-Site Scripting (XSS) * Desfigura web sites, Inserta código malicioso, faz phishing attacks e força o usuário a executar comandos externos (CSRF)

– Cross-site request forgeries (CSRF) * Força usuários a executar comandos sem o seu consentimento

– Diretórios Transversais* Acesso a arquivos via "..“ permite acesso a:

•Arquivos de password, arquivos de configuração, etc..

Page 36: Exemplo de coisas que dão errado Seminário de Informática Teórica

36

Dispositivos de RedeDispositivos de Rede

• VoIP– Obtendo o controle do servidor VoIP ou

do telefone um invasor pode fazer * VoIP phishing scams, * eavesdropping (violação de

confidencialidade), * toll fraud (acesso não-autorizado) * ataques denial-of-service

– Nos servidores VoIP com interface SS7 (sinal de telefone tradicional) e rede IP, um invasor pode manipular o sinal SS7 para interromper os serviços na rede de telefonia convencional

Page 37: Exemplo de coisas que dão errado Seminário de Informática Teórica

37

Política de Política de SegurançaSegurança

• Direitos Excessivos do usuário e dispositivos não-autorizados– Se o usuário pode instalar seus próprios

softwares e o administrador não pode controlar

• Dispositivos de rede infectados ou não-autorizados– Dispositivos Infectados: USB Flash

Driver, Notebook, etc.– Monitoramento continuo do fluxo de

dados pode imediatamente identificar dispositivos não-autorizados na rede

Page 38: Exemplo de coisas que dão errado Seminário de Informática Teórica

38

Seção EspecialSeção Especial

• Zero-Day Exploit– Aumento em 2006– Produtos Microsoft

* IE, PowerPoint, Word, Excel, etc..– Proteção

* Princípio do Menor Privilégio* Educação dos Usuários sobre

Segurança* Firewall configurados com deny-all * Siga as recomendações do fabricante

para contornar e mitigar o problema até que um patch esteja disponível

Page 39: Exemplo de coisas que dão errado Seminário de Informática Teórica

39

Top 5 Log ReportsTop 5 Log Reports

1. Tentativas de obter acesso a partir de contas existentes

2. Tentativas fracassadas de acesso a arquivos e recursos

3. Mudanças sem autorização de usuários, grupos e serviços

4. Sistemas mais vulneráveis a ataques 5. Padrão de tráfego de rede suspeito

ou não-autorizado

Page 40: Exemplo de coisas que dão errado Seminário de Informática Teórica

40

Tentativas de obter Tentativas de obter acesso a partir de acesso a partir de contas existentescontas existentes

•Usuários ou processo maliciosos tentando obter acesso a rede por password guessing.

•Pode também ser uma indicação que uma conta de usuário local está tentando obter uma permissão maior do sistema

Failed Login Attempts:jsmith from 1.2.3.4 against example-host performed 37 timesjdoe from 1.2.3.4 against example-host performed 16 times

Page 41: Exemplo de coisas que dão errado Seminário de Informática Teórica

41

Tentativas fracassadas de Tentativas fracassadas de acesso a arquivos e acesso a arquivos e recursosrecursos

• Tentativas fracassadas de acesso são uma indicação que alguém está tentando obter acesso ou a um recurso não existente ou a um recurso o qual ele não tem permissão

Web Server Failed Access Attempts:Failed file access attempt for 1.2.3.4 performed 13 times/var/www/html/mambo/var/www/html/cvs/var/www/html/articles/var/www/html/cvs/var/www/html/xmlrpc.php/var/www/html/blog....File Server Failed Access Attempts:Failed write access on financial.xls for user jsmith from 1.2.3.4 performed 2 times

Page 42: Exemplo de coisas que dão errado Seminário de Informática Teórica

42

Mudanças sem Mudanças sem autorização de autorização de usuários, grupos e usuários, grupos e serviçosserviços

• Mudanças desses três irão ocorrer legitimamente em diversos casos

• Porém eles merecem uma atenção especial porque podem ser uma indicação que todas as outras defesas foram ultrapassadas e uma invasão ocorreu

Account changes for FS1:New user: name=c0rt3z uid=1050Group change: User c0rt3z added to group AdministratorService changes for FS1:antivirus.exe has been stoppedevilbackdoor startedsshd restarted

Page 43: Exemplo de coisas que dão errado Seminário de Informática Teórica

43

Sistemas mais Sistemas mais vulneráveis a vulneráveis a ataques ataques

• Esteja atualizado em relação aos PATCHs

• Todos os sistemas deveriam estar atualizados.– Porém, falta de tempo, recursos,

etc.. Pode resultar em um cenário não-ideal

• Definindo Prioridade– Um relatório que identifica o nível

de conformidade de cada recurso de rede pode ser extremamente útil

Page 44: Exemplo de coisas que dão errado Seminário de Informática Teórica

44

Padrão de tráfego de Padrão de tráfego de rede suspeito ou não-rede suspeito ou não-autorizadoautorizado

• Padrão não-usual ou inesperado na rede local– Não só de entrada de dados mas também

de saída– Este relatório exige um pouco de

familiaridade com o comportamento normal da rede

Dropped Traffic From DMZ:smtp1 outbound to 1.2.3.4 on TCP/80 performed 7 timesSuspicious Outbound Traffic:accounting1 outbound to 1.2.3.4 on TCP/25 performed 1 timeaccounting1 outbound to 1.2.3.5 on TCP/25 performed 1 time

Page 45: Exemplo de coisas que dão errado Seminário de Informática Teórica

45

Top 10 Security Top 10 Security TrendsTrends

•Vinte dos mais respeitados líderes sobre cyber security– Cada um sugeriu três

desenvolvimentos que acharam mais importante

– A lista foi compilada em 40 tendência que foram a votação (probabilidade e impacto)

– A lista foi validada por 960 integrantes do SANSFire em Washington

Page 46: Exemplo de coisas que dão errado Seminário de Informática Teórica

46

Dispositivos MóveisDispositivos Móveis

1. Encriptação de Laptop será obrigatória em diversas agências do governo e em organizações que armazenam dados dos clientes e serão pré-instaladas nos equipamentos novos.

2. Roubo de PDA smart phones crescerá significativamente. O valor de revenda dos dispositivos e de seu conteúdo vai gerar um grande número de furtos

Page 47: Exemplo de coisas que dão errado Seminário de Informática Teórica

47

Ações Ações GovernamentaisGovernamentais

3. O congresso irá criar mais legislação sobre proteção das informações dos clientes.

– As legislaturas encontrarão maneiras de decretar penalidades severas para as organizações que perderem as informações sensíveis de usuários e clientes

Page 48: Exemplo de coisas que dão errado Seminário de Informática Teórica

48

Alvos de AtaquesAlvos de Ataques

4. Ataques com alvo serão mais predominantes, principalmente em agências do governo. – Ataques virtuais contra os sistemas do

governo Americano foram muito bem-sucedidos

– Os ataques a organizações comerciais visarão contratantes militares e negócios com informações valiosa

5. Worms para telefones celulares irão afetar pelo menos 100.000 celulares.– Celulares estão se tornando poderosos e com

ambientes para desenvolvimento de software que o tornam um território fértil para invasores.

6. Sistemas VoIP serão alvos de invasões. – A tecnologia VoIP foi implantada sem um

conhecimento completo sobre a sua segurança

Page 49: Exemplo de coisas que dão errado Seminário de Informática Teórica

49

Técnicas de AtaqueTécnicas de Ataque

7. Spyware vai continuar a ser um problema enorme e crescente– O desenvolvimento de spyware pode fazer

dinheiro de muitas maneiras monitorando os hábitos dos usuários

8. Vulnerabilidades 0-day irão obter um melhor resultado de ataques em milhares de PCs pelo mundo– Pesquisadores de vulnerabilidades podem

explorar os buracos que encontram antes de vendê-las aos fornecedores ou compradores de vulnerabilidades como o TippingPoint.

9. A maioria dos agentes serão empacotados com rootkits, – O rootkit vai mudar o sistema operacional para

esconder a presença do invasor e fazer a desinstalação do malware quase impossível

– Apenas uma reinstalação do sistema operacional iria resolver o problema

Page 50: Exemplo de coisas que dão errado Seminário de Informática Teórica

50

Estratégias de Estratégias de DefesaDefesa

10. Controle de acesso a rede será muito comum e sofisticada– Defender laptops se torna cada vez mais

difícil, as grandes organizações irão tentar proteger suas redes e usuários internos testando os computadores que desejam se conectar.

– Os Testes irão aumentar das atuais checagem de configuração e validação de assinatura de vírus para um análise mais profunda a procura de traços de código malicioso

Page 51: Exemplo de coisas que dão errado Seminário de Informática Teórica

51

ReferênciasReferências• http://en.wikipedia.org/wiki/Computer_Security• http://en.wikipedia.org/wiki/Race_condition• http://www.nmrc.org/pub/faq/hackfaq/• http://en.wikipedia.org/wiki/Time-of-check-to-time-of-use• http://www.read.cs.ucla.edu/111/2006spring/notes/lec2• http://www.bancobpi.pt/pagina.asp?

s=1&a=40&p=95&f=611&opt=f• http://pt.wikipedia.org/wiki/Key_logger• http://www.imasters.com.br/artigo/3127• http://www.imasters.com.br/artigo/5179/php/

sql_injection_no_php_o_que_e_e_como_se_proteger/• http://www.sans.org• http://www.nmrc.org/pub/faq/hackfaq/