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 2 Motivaçã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 3 Tipos de Ataque Buffer overflow • Estouro de pilha ou transbordamento de dados, acontece quando o tamanho de um buffer ultrapassa sua capacidade máxima de armazenamento. 5 Buffer Over Flow void check_input(char *input) { char buf[8]; strcpy(buf,input); if (check(buf)) allow_action(); return; } • Pilha de Execução: Ret. Addr. char *input buf[7] buf[6] … buf[1] buf[0] • Bug: strlen(input) > 7 6 Java 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 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 http://www.zerodayinitiative.com/advisories/ZDI-07-005.html 7 Denial 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 8 Exemplo 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(); } 9 SQL Injection 10 SQL Injection 11 SQL Injection 12 Key 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 13 Exemplo • extensão DLL • extensão EXE • Programas – Home Key Logger – Active Key Logger – Key Logger RemoteBuddy 14 Key Logger 15 Vulnerabilidades Race conditions • Ocorrem em software, especialmente quando há comunicação entre processos separados ou execução de threads 17 Time-of-check-to-timeof-use (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 } 18 Fraca checagem de entrada • 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 19 Privilégio Desnecessá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. 20 Exemplos • 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 21 Programação Defensiva Programação Defensiva • 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. 23 Programação Defensiva • 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. 24 Exemplos Reais sobre (In)Segurança Redes sem fio Histórico • Crescimento – Economicamente viável – Taxa de transmissão – Conectividade entre instituições • Novo cenário – Falta de segurança 27 Riscos • Internos – Rogue WLAN – Configurações inseguras (VPN) – Associação acidental • Externos – Espionagem – Roubo de Identidade – Ataques emergentes 28 Vulnerabilidades do WEP (Wired Equivalent Privacy) • Criptografia RC4 – – – – – Simétrica Stream Cipher 24 bits 1/16.777.216 5.000 pacotes trocados 29 AirSornt • http://airsnort.shmoo.com • Qualquer chave • Três a cinco milhões de pacotes trocados 30 SANS Institute Sans 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) 32 Top 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 33 Sistemas Operacionais • 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 34 Aplicações CrossPlatform • 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.. 35 Dispositivos 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 36 Política de Seguranç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ãoautorizados – Dispositivos Infectados: USB Flash Driver, Notebook, etc. – Monitoramento continuo do fluxo de dados pode imediatamente identificar dispositivos nãoautorizados na rede 37 Seçã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 38 Top 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ãoautorizado 39 Tentativas de obter acesso a partir de contas 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 times jdoe from 1.2.3.4 against example-host performed 16 times 40 Tentativas fracassadas de acesso a arquivos e recursos • 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 41 Mudanças sem autorização de usuários, grupos e serviç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=1050 Group change: User c0rt3z added to group Administrator Service changes for FS1: antivirus.exe has been stopped evilbackdoor started sshd restarted 42 Sistemas mais vulneráveis a 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 43 Padrão de tráfego de rede suspeito ou não-autorizado • 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 times Suspicious Outbound Traffic: accounting1 outbound to 1.2.3.4 on TCP/25 performed 1 time accounting1 outbound to 1.2.3.5 on TCP/25 performed 1 time 44 Top 10 Security Trends • 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 45 Dispositivos 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 46 Ações Governamentais 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 47 Alvos 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 48 Té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 49 Estratégias de Defesa 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 50 Referê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/ 51