aqui - IPB
Transcrição
aqui - IPB
Sistema de Detecção de Botnets André Saraiva a19228 Davide Teixeira a19236 Trabalho realizado sob a orientação de Nuno Gonçalves Rodrigues Informática de Gestão 2011/2012 Sistema de Detecção de Botnets Relatório da UC de Projecto de Informática Licenciatura em Informática de Gestão Escola Superior de Tecnologia e de Gestão André Saraiva, Davide Teixeira 2011/2012 iii A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas neste relatório. iv Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projecto de Informática. ___________________________________________ Nuno Gonçalves Rodrigues Orientador Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projecto de Informática. ___________________________________________ <Nome do Arguente> Arguente Aceite para avaliação da UC de Projecto de Informática v vi Dedicatória vii viii Agradecimentos ix x Resumo Ao longo dos anos a Internet tem tido um crescimento exponencial assim como as demais redes de computadores, tendo estas uma importância massiva no mundo, nos dias que correm. Assim sendo, tornou-se primordial a segurança de todos os dados enviados/partilhados nas redes informáticas, de modo que a integridade e privacidade dos dados não seja comprometida. Diariamente há ataques e tentativas de ataques por toda a rede, fazendo com que a sua segurança seja uma preocupação constante por parte das organizações que não querem a sua informação ou os seus dados comprometidos. Tratando-se de um "inimigo invisível", que muitas vezes não é perceptível há grande maioria dos utilizadores/organizações, torna-se imperativo estudar/monitorizar os invasores assim como as respectivas invasões de modo que se possam estudar os ataques e para que seja possível melhorar as defesas. Com o objectivo de estudar/monitorizar esses ataques, de modo a tornar as defesas mais eficazes, usamos o que é denominado de Honeynet, que são máquinas/sistemas que são criados apenas com o intuito de serem atacadas, serem comprometidas, de forma a recolher e analisar informação sobre os invasores, sobre os métodos e técnicas de ataque assim como as ferramentas usadas nos ataques. Honeypot corresponde a uma única máquina, sendo que vários honeypots correspondem a uma honeynet, podendo uma honeynet ser virtual ou real. Para estudar/monitorizar a rede foram usados Honeypots, em concreto duas ferramentas denominadas Honeyd e Snort, em que o Honeyd corresponde a uma honeynet virtual e o snort a uma honeynet real. As ferramentas foram estudadas e explicadas durante o projecto, sendo que estas foram implementadas e usadas num ambiente Linux mais concretamente no Ubuntu 12.04. Com um intuito de fazer um estudo mais real e abrangente, foi usada uma máquina com um ambiente Windows nomeadamente Windows XP onde também foram implementadas e xi usadas ferramentas adicionais como o Wireshark e Valhala que também foram descritas e estudadas durante o projecto, assim como a implementação do Snort no ambiente Windows. A recolha e análise de dados correu como esperado e planeado em que todos os dados foram analisados e processados como demonstramos e expomos no capítulo relativo a essa fase do projecto. Palavras-chave: honeynet, honeypot, Ubuntu 12.04, Wireshark, Valhala, Windows XP Honeyd, Snort, segurança em redes de computadores, Linux, Dados, Informação, xii xiii Abstract Keywords: xiv xv Conteúdo 1 Introdução .............................................................................................................................. 1 1.1 Enquadramento Teórico .................................................................................................... 1 1.2 Objectivos ......................................................................................................................... 3 1.3 Organização do Trabalho .................................................................................................. 3 2 Segurança da Informática .................................................................................................... 5 2.1 Introdução à Segurança Informática ................................................................................. 5 2.1.1 Condições Básicas de Segurança ................................................................................ 6 2.2 Visão Geral dos Riscos e Ameaças ................................................................................... 7 2.3 Perfil do atacante e as suas motivações ............................................................................ 7 2.4 Riscos ................................................................................................................................ 8 2.5 Tipos de Ataques............................................................................................................... 8 2.5.1 Vírus .......................................................................................................................... 9 2.5.2 Trojans ...................................................................................................................... 10 2.5.3 Adware...................................................................................................................... 11 2.5.4 Spyware .................................................................................................................... 12 2.5.5 Pishing ...................................................................................................................... 13 2.5.6 Rootkit ...................................................................................................................... 14 2.5.7 Dialers ....................................................................................................................... 15 2.5.8 Backdoors ................................................................................................................. 16 2.5.9 Spam ......................................................................................................................... 17 2.5.10 Keylogger .............................................................................................................. 18 2.5.11 Ramsonware ........................................................................................................... 19 2.6 Stuxnet ............................................................................................................................ 20 3 Estado na arte na Detecção de Botnets.............................................................................. 22 3.1 Técnicas de Detecção de Botnets .................................................................................... 23 3.1.1 Mecanismos de Detecção de Botnets ....................................................................... 23 3.2 Honeypot ......................................................................................................................... 25 3.2.1 Tipos e níveis de Honeypots ..................................................................................... 26 3.2.2 Vantagens de Honeypots .......................................................................................... 27 3.2.3 Desvantagens de Honeypots ..................................................................................... 28 3.3 Honeynet ......................................................................................................................... 29 3.3.1 Tipos de honeynet ..................................................................................................... 30 xvi 3.4 HoneyD(em ambiente Linux e em Windows) ................................................................ 32 3.4.1 Arquitectura do HoneyD .......................................................................................... 33 3.4.2 Funcionamento do HoneyD ...................................................................................... 34 3.5 Valhala Honeypot(em ambiente Windows) .................................................................... 35 3.6 IDS(Intrusion Detection System) .................................................................................... 35 3.6.1 SSL, IPSec e outros .................................................................................................. 36 3.6.2 IDS em redes com switches ...................................................................................... 37 3.7 Snort (em arquitectura Linux e Windows)..................................................................... 39 3.7.1 Arquitectura/Funcionamento do Snort .................................................................... 40 4 Implementação de um Honeypot ....................................................................................... 43 4.1 Implementação/Configuração do HoneyD ..................................................................... 44 4.2 Implementação/Configuração do Snort .......................................................................... 45 4.3 Implementação/Configuração do Valhala ....................................................................... 45 4.4 Descrição dos cenários de teste....................................................................................... 46 4.5 Análise de Resultados ..................................................................................................... 46 4.5.1 Recolha de dados no HoneyD .................................................................................. 46 4.5.2 Análise dos dados com o HoneyD ............................................................................ 47 5 Conclusões e trabalho futuro ............................................................................................. 55 5.1 Trabalho futuro, ideias e sugestões ................................................................................. 56 A Instalação do Honeypot........................................................................................................ 1 A.1 Instalação do HoneyD no Ubuntu 12.04 .......................................................................... 1 A.2 Instalação do Snort no Ubuntu 12.04 ............................................................................. 11 A.3 Configuração das personalidades assumidas pelo HoneyD ........................................... 17 A.4 Conteúdo do Honeyd.conf ............................................................................................. 18 A.5 Interpretação do honeyd.log(HoneyD) .......................................................................... 20 A.6 Instalação do Snort no Windows XP ............................................................................. 21 17 Lista de Tabelas Tabela 1-Mecanismos de Propagação...................................................................................25 Tabela 2-Tipos de ataques......................................................................................................25 Tabela 3-Topologia Command and Control.........................................................................25 Tabela 4- Caracterização de IDS...........................................................................................36 Tabela 5-Ficha técnica dos computadores utilizados...........................................................43 Tabela 6-Origem e quantidade de ligações solicitadas........................................................51 xix Lista de Figuras Figura 1–180 Day Botnet Status..............................................................................................2 Figura 2–Yearly Botnet Status.................................................................................................2 Figura 3-Relação, resposta e sincronização..........................................................................24 Figura 4-Exemplo clássico de uma Honeynet Real..............................................................31 Figura 5-Exemplo clássico de uma Honeynet Virtual.........................................................32 Figura 6 -Monitorização de pacotes em rede Ethernet, utilizando hubs ou wire tap.......38 Figura 7- Optical Tap.............................................................................................................38 Figura 8- Switch com Port Mirror numa estrutura hierárquica........................................39 Figura 9-Esquema da arquitectura do Snort.......................................................................42 Figura 10-HoneyD Implementado no Ubuntu 12.04............................................................44 Figura 11-Menu de configuração do Valhala.......................................................................45 Figura 12-HoneyD em funcionamento, informação guardada no honeyd.log..................46 Figura 13-Ligações recolhidas pelo Honeyd.........................................................................47 Figura 14-Número de ligações por cada honeypot...............................................................48 Figura 15-Registo do uso de portas na máquina 193.136.195.84........................................48 Figura 16-Número de ligações, IP's e portas da máquina 193.136.195.84........................49 Figura 17-Registo do uso de portas na máquina 193.136.195.85........................................49 Figura 18 -Número de ligações, IP's e portas da máquina 193.136.195.85.......................49 xxi Figura 19-Top 10 de ligações estabelecidas com a honeynet...............................................50 Figura 20-Top 10 de recursos mais solicitados.....................................................................51 Figura 21-Registo de ligações por hora.................................................................................53 xxiii Lista de Abreviações ARP Address Resolution Protocol DNS Domain Name System DoS Denial of Service DOS Disk Operating System DRDoS Distributed Reflection Denial of Service FTP File Transfer Protocol HTML Hyper Text Markup Language ICMP Internet Control Message Protocol IDS Intrusion Detection System SSL Secure Socket Layer IMAP4 Internet Message Access Protocol 4 IP Internet Protocol IPS Intrusion Prevention System LAN Local Area Network MAC Media Access Control NAT Network Address Translation NETBIOS Network Basic Input/Output System PNG Portable Network Graphics SMTP Simple Mail Transfer Protocol SP1 Service Pack 1 SSH Secure Shell TCP Transmission Control Protocol TCP/IP Transmission Control Protocol/ Internet Protocol TTL Time To Live UDP User Datagrama Protocol PPP Point-to-point ProtocoL SLIP Serial Line Internet Protocol xxv Capítulo 1 1 Introdução 1.1 Enquadramento Teórico No âmbito da unidade curricular de Projecto de Informática foi realizado um trabalho que teve como objectivo modelar e implementar um sistema de detecção de botnets na rede do IPB. Hoje em dia, é essencial ter uma boa protecção a nível informático, pois existem cada vez mais programas maliciosos contra empresas e utilizadores, com exemplos diários de novos aparecimentos de virus, spybots, trojans, worms e mesmo botnets. Obviamente quando estes tipos de programas são lançados alguém ganha com isso, sejam empresas ou utilizadores que os desenvolvam com fins pouco lícitos. Actualmente não podemos dizer que temos a melhor maneira ou os melhores meios para combater este fenómeno, pois para isso precisávamos de estar em constante actualização, o que torna o combate a este problema uma luta diária e quase de solução impossível, mas é claro que se pode tentar evitar ao máximo danos maiores ou um grande volume de dados danificados ou apagados, no entanto, podemos e devemos ser capazes de estar o mais bem preparados possível para evitar grande parte de possíveis ataques. De acordo com [1] “estima-se que Portugal tem a 16ª maior taxa de infecções de botnets. Os EUA lideram o ranking com mais de dois milhões de máquinas infectadas. Os dados foram divulgados pelo Security Intelligence Report da Microsoft e dizem respeito à primeira metade de 2010. Portugal figura no 16º lugar do ranking com um total de 68.903 máquinas 1 infectadas, cujos códigos maliciosos foram removidos pelas ferramentas de segurança da Microsoft durante o segundo trimestre de 2010.” A Fundação Shadowserver é uma entidade que tem como missão entender e ajudar no combate ao cybercrime em larga escala. É uma fundação composta por profissionais voluntários na área da segurança informática de todo o mundo e funciona como ponto de referência a esta área de estudo. Apresentam-se de seguida alguns gráficos produzidos em estudos desta fundação, mostram uma contagem de todos os servidores activos Command and Control (C&C) que a fundação tem conhecimento e que são alvo de monitorização. Através deles podemos observar a evolução do aparecimento quase diário de botnets [2]. Figura 1-180 Day Botnet Status. Figura 2-Yearly Botnet Status. 1.2 Objectivos O objectivo base do projecto proposto era o de modificar e implementar um sistema de detecção de botnets na rede do IPB. Com base neste pressuposto, foi decidido implementar uma Honeynet, começando por, explicar o que é um sistema Honeynet. De acordo com o enunciado do projecto, uma honeynet é uma rede de computadores a operar sob a observação e propositadamente em estado vulnerável, com objectivo de capturar e analisar malware e o respectivo tráfego. Assim, no âmbito deste trabalho, pretende-se: - Identificar e analisar possíveis abordagens e metodologias para a detecção de botnets; - Implementar uma HoneyNet na rede do IPB; - Identificar e caracterizar as botnets activas na rede do IPB; - Perspectivar possíveis medidas para mitigar este tipo de ameaças. Ao longo deste relatório é importante sabermos identificar os tipos de agentes alvo de estudo, nomeadamente arquitecturas de botnets e outro tipo de malware prejudicial ao sistema, bem como possíveis métodos de combate a estes agentes. Segundo a [3] “códigos BotNet executam quase todas as formas de malware, desde spywares para Downloaders, rootkits, spam e muito mais. Para ter um bom desempenho, os “antídotos” devem proteger múltiplas camadas de segurança. A boa notícia é que essas camadas são surpreendentemente eficazes contra botnets.” 1.3 Organização do Trabalho Esta dissertação é composta por 5 (cinco) capitulos estruturados da seguinte forma: O 1º Capítulo apresenta o cenário que motivou a realização deste trabalho e identifica os objectivos propostos. No 2º Capítulo é apresentada uma visão geral sobre a Segurança Informática, baseando-se numa visão geral dos riscos, no perfil do atacante e nas suas motivações, nos riscos e tipos de ataques. 3 O 3º Capítulo centra-se no levantamento do estado da arte na detecção de botnets, conceitos gerais de honeypot, vantagens e desvantagens na sua utilização, tipos de honeynets, IDS em vários tipos de arquitecturas de redes, mecanismos de detecção e análises existentes bem como um exemplo actual: o stuxnet. Também é apresentada a arquitectura da implementação de um HoneyPot na rede do IPB. No 4º são apresentadas referências, configurações e conceitos sobre Honeypots e dos programas instalados, assim como também são apresentados os testes realizados, a recolha de dados e as análises de resultados. E por último, o 5º Capítulo são apresentadas as considerações finais, possiveis ideias de continuidade deste trabalho vem como as contribuiçoes do mesmo. Capítulo 2 2 Segurança da Informática 2.1 Introdução à Segurança Informática Um sistema informático é seguro quando este executa/faz o que é pretendido segundo condições previamente definidas, isto é, sempre que um sistema executa algo indesejado ou algo não planeado não estando previamente definido pode assumir-se que este não é seguro. Para evitar que o nosso sistema seja inseguro devem ser adoptadas normas de segurança, um conjunto formal de regras que devem ser respeitadas e seguidas com o intuito de manter o sistema seguro para que este funcione como previamente definido e nas condições desejadas. Para garantir que a segurança da rede seja assegurada é necessário tomar medidas de protecção que suportem os princípios de prevenção, detecção e reacção sendo possível utilizar mecanismos de segurança para esse fim. É necessário garantir a segurança da informação armazenada assim como da informação em transito. A informação pode ser alvo de ataques informáticos, podendo ser interceptada, difundida e analisada sem consentimento do autor, sendo bastante difícil de detectar se essa informação foi interceptada caso não haja alteração da mesma, a informação pode ser alterada, camuflada enviando a informação a um falso receptor sem consentimento ou conhecimento, podendo também ser retransmitida ou até mesmo alterado o conteúdo da informação. 5 A ameaça à segurança pode classificar-se em três tipos principais, ataque por imitação em que o um sistema ou utilizador rouba a identidade de um outro sistema, fazendo-se passar por um sistema ou utilizador obtendo acesso a informação que há priori seria negada, acesso não autorizado em que um sistema ou utilizador acede a informação restrita, informação essa que estaria disponível a um utilizador/sistema autorizado e não ao sistema/utilizador que acede à informação sem autorização. Outra ameaça é a corrupção de serviços, que tem como finalidade interromper/perturbar o normal funcionamento de um serviço, causando danos físicos ou lógicos recorrendo a vírus(malware), gerando artificialmente grandes volumes de tráfego ou enormes volumes de pedidos de acesso a servidores causando uma sobrecarga enorme nos servidores impedindo que estes processem os pedidos normais [4, 5, 6, 8]. 2.1.1 Condições Básicas de Segurança As condições básicas de segurança para que um sistema realize permanentemente as tarefas para o qual foi projectado podem ser definidas como: Autenticação: Garante que os intervenientes numa comunicação são fidedignos, validando um utilizador, sistemas ou processo. Confidencialidade: Garante que só tem acesso há informação os intervenientes autorizados. Controlo de acesso: Garante que um recurso só é acedido por quem está autorizado. Disponibilidade: Garante que mesmo havendo alguma falha no sistema, a informação/recurso continua disponível para os utilizadores. Integridade: Garante que a informação não é corrompida, sendo esta apenas acedida ou alterada por quem está autorizado. Não repudiação: Garante que uma entidade não nega a acção determinada, isto é, funções que impedem que determinadas entidades parem abruptamente um determinado serviço [6, 7, 8]. 2.2 Visão Geral dos Riscos e Ameaças Regra geral já todos os utilizadores que usaram a Internet seja, para que finalidade tenha sido, já ouviram falar que correm riscos a partir do momento em que estabelecem a ligação a esta rede. Isto porque aceder à Internet consiste também na troca de informação por parte do utilizador desde que se liga ate se desligar, começando no envio de informações como o seu IP, browser usado, etc. Digamos que desde que a Internet se tornou mais global e a ligação aumentou, ou seja, a maioria dos utilizadores de computadores se começou a ligar mais frequentemente e passando mais tempo na Internet que nos tornamos mais vulneráveis a contrair vírus no nosso sistema. Se antes apenas havia preocupação com o conteúdo das disquetes e em CD’s hoje em dia o perigo passa muito para além disso, o que não significa que mesmo assim hoje em dia não tomemos atenção a dispositivos USB e cds/dvds. Daí ser cada vez mais necessário a implementação de protecções contra ataques que tendem a ser cada vez mais danosos ao nosso sistema. 2.3 Perfil do atacante e as suas motivações Muitas vezes o perfil do atacante pode-se resumir a um indivíduo que normalmente é um apaixonado pelo mundo da informática e que tem como objectivo primário aprender como funciona um sistema e testá-lo ao limite, seguindo posteriormente à parte em que a sua acção tem sucesso e simplesmente encontra ou aprende como quebrar de forma ilegal o sistema em estudo. As motivações de quem executa este tipo de acções prendem-se com vários factores como: Obter acesso a um sistema informático; Obter informações, desde pessoais, industriais ou segredos de ordem variada; Obter dados bancários; Obter informações sobre uma organização (empresa do utilizador, etc.); Destabilizar o normal funcionamento de um serviço; Infectar o sistema de um utilizador para posteriormente atacar outro sistema; 7 Usufruir de recursos do sistema atacado para fins pessoais ou para organizar um ataque mais forte. 2.4 Riscos Existem algumas normas que deveriam fazer parte, senão de todos, de grande parte dos utilizadores de computadores. Essas normas pretendem a protecção do seu computador. Se para alguns o seu uso é apenas pessoal, para outro tipo de utilizadores o seu uso é mais profissional, no entanto ambos requerem o mesmo nível básico de segurança. Subentende-se como nível básico de protecção regras de uso como: Confidencialidade da sua informação; Escolha e guarda de palavras passe; Manter o seu computador actualizado; Uso de firewall; Uso de anti-vírus; Uso de anti spyware; Cuidado na pesquisa de informação com browsers; Cuidados a ter na recepção e envio de emails; Cuidados na execução de programas informáticos. 2.5 Tipos de Ataques Um “ataque informático” pode ser considerado como a exploração de uma falha num sistema informático, ao nível do software do mesmo, para atingir determinados objectivos que são quase sempre de acção maléfica e prejudicial ao sistema atacado. Na Internet são diários os tipos de ataques a que somos sujeitos e para isso basta um simples click. Os ataques são normalmente feitos a partir de máquinas infectadas, ou seja, funcionam como contágio como se de uma doença se trata-se. As máquinas são normalmente infectadas por: virus, trojans (cavalos de troia), spyware, etc. Ataques esses claramente sem consentimento e conhecimento do utilizador. Um utilizador tem de estar sempre em alerta no que da Internet diz respeito, muitas vezes mesmo em receber ficheiros de conhecidos nossos. De seguida , identificam-se os tipos de ataques mais comuns na internet. 2.5.1 Vírus Vírus são programas ou segmentos de código que são instalados/copiados para um computador sem que o utilizador tenha consentido ou conhecimento e que podem alterar o normal funcionamento do computador assim como as restantes aplicações e tarefas do mesmo. Um vírus pode multiplicar-se automaticamente, sendo autónomo ou accionado por meios humanos, sendo que nem todos os vírus são destrutivos, isto é, alguns poderão efectivamente danificar, remover, alterar, roubar dados do computador, mas no entanto, existem também vírus inofensivos, que por vezes pouco mais fazem do que incomodar. De qualquer das formas, mesmo os vírus, inofensivos ou destrutíveis consomem memória, recursos de CPU, afectando a performance da máquina. A capacidade de multiplicação dos vírus é uma característica sabida e muito real, infectando ficheiros e computadores que se revelem mais vulneráveis. Os vírus podem-se espalhar através do uso da Internet, por exemplo, fazendo o download e instalação de programas maliciosos que possam intencionalmente “instalar” um vírus assim como até mesmo clicando apenas em determinados sites, abertura de ficheiros ou programas infectados, por email, partilha de discos. Outra causa para a transmissão, deve-se ao facto de por vezes o utilizador não fazer actualizações periódicas ao seu sistema operativo, não beneficiando assim de correcções em termos de segurança, sendo que essas actualizações poderão ser muito importantes visto que corrigirão falhas de segurança. Alguns vírus implantam-se no sistema operativo da máquina, fazendo com que os utilizadores não tendo um grande conhecimento especializado em informática, tenham receio de remover os ficheiros corrompidos, tendo em conta que um erro na remoção desses ficheiros será consequentemente comprometedor visto que se por lapso for removido um ficheiro “benigno” do sistema, poderá comprometer o bom funcionamento do seu computador. 9 Outros vírus encriptam os próprios dados, escondendo-se assim no sistema e dos antivírus, tornando a remoção mais difícil, apesar de cada vez mais haver antivírus preparados para lidar com esse processo. Por vezes, os vírus tentam desactivar o próprio antivírus. Sendo bem sucedido é a melhor forma de este se camuflar e permanecer indetectável. Garantir o antivírus actualizado, apesar de não ser infalível, é uma ajuda preciosa, assim como não abrir ficheiros suspeitos sem antes, pelo menos, fazer uma inspecção com o antivírus. Manter o sistema operativo actualizado, de forma que pelo menos algumas falhas de segurança sejam corrigidas e ter uma firewall sempre activa e actualizada[9]. 2.5.2 Trojans O Cavalo de Tróia ou Trojan Horse é um tipo de software malicioso que pode entrar num computador disfarçado de um programa comum e legítimo. Tem como finalidade possibilitar a abertura de uma porta de entrada, de forma que utilizadores mal intencionados possam invadir o PC. O invasor pode realizar tarefas simples como ter control sobre o rato ou teclado até a utilização do IP da máquina infectada como ponte para outros ataques. Um Trojan faz-se passar por um programa ou ficheiro que simula alguma funcionalidade e até mesmo numa foto podemos encontrar este malware, que consegue camuflar-se em ficheiros de inicialização do sistema operativo onde, sem o conhecimento do utilizador, estes são iniciados sempre que a máquina arranca. Com o crescimento da Internet, e com a facilidade com que é possível criar um trojan, faz com que seja um perigo diáriamente, porque não depende de falhas do sistema. É muito difícil detectar, o que faz com que por vezes uma simples distracção do utilizador ao instalar um programa duvidoso ou mesmo abrir um ficheiro duvidoso resulte na infecção do computador. Keyloggers (que normalmente são utilizados para roubar senhas) e Backdoors (ficheiros que possibilitam aberturas de portas para invasão) são 2 tipos de trojans. Normalmente não se auto copiam nem é necessário que outros programas sejam infectados para que estes possam executar as suas funções, apenas necessitam de ser executados aquando da sua instalação, tornando-os perfeitamente autónomos, e por vezes, quando eliminamos (ou tentamos) alguns ficheiros com o dito trojan, gera automaticamente uma perda de dados na máquina. Assim sendo, mesmo se um antivírus não detectar a presença dum trojan, deve-se sempre suspeitar e executar ficheiros desconhecidos com muita cautela. Como foi dito anteriormente, como prevenção, deve-se executar ficheiros apenas e só quando temos a certeza do que estamos a executar, e suspeitar sempre de ficheiros suspeitos, evitando assim futuros incómodos. Manter sempre um bom antivírus actualizado porque mesmo que não ofereça protecção total, sempre ajuda, e sempre que houver conhecimento de novos trojan o antivírus irá ter conhecimento e ajudar a proteger a máquina[10,11,12]. 2.5.3 Adware Adware são programas indesejáveis que exibem publicidade e anúncios sem a autorização do utilizador tornando o computador mais lento assim como a ligação. Normalmente são associados a spyware porque são semelhantes na sua infecção e remoção. Alguns adwares assumem características de spyware, uma vez que podem transmitir informações sobre o utilizador para terceiros sem a autorização, e por vezes enviam spam para as listas de contacto do email do utilizador. No início, os adwares usavam pop-up, banners e pequenas janelas de publicidade no software de terceiros, sendo que para a remoção desta publicidade era necessário fazer um upgrade do software para uma versão paga. Com um grande crescimento e desenvolvimento dos adwares, este começaram a ter capacidade de monitorizar a actividade e comportamentos dos utilizadores na Internet, podendo mostrar a publicidade mais “correcta” para cada utilizador, podendo fornecer esses comportamentos e hábitos a certos sites. Por vezes o simples facto de navegar num site malicioso, faz com que esse site tente automaticamente instalar adwares. 11 Os adwares apresentam a mais variada publicidade, que pode ir desde publicidade pornográfica, a falsa publicidade de infecção do sistema por vírus, entre outros, causando instabilidade no browser assim como na máquina [13,14]. 2.5.4 Spyware Spywares são programas espiões, isto é, são programas automáticos, em que a sua finalidade é obter informações sobre uma ou mais actividades realizadas num computador e transmite essa informação a uma entidade externa na Internet, sem o conhecimento ou consentimento do utilizador. No entanto, isto não significa que todos os spyware sejam programas “maus”. É verdade que existem muitos spywares criados para actividades ilícitas, criados para obter informações pessoais e, com elas, praticar actividades ilegais. No entanto, ainda assim, existem, por exemplo, empresas de publicidade que utilizam spywares para, de forma legal, obter informações sobre os seus clientes, de forma a oferecer ao cliente um especifico anúncio. Os spywares podem ser desenvolvidos por empresas comerciais com a finalidade de monitorizar o hábito/histórico dos utilizadores de forma que possam recolher e vender estes dados pela Internet. Assim sendo, as empresas vão-se excedendo e criando inúmeras variantes dos seus spyware, tornando-os cada vez mais completos e dificultando muito a sua remoção. Os spyware são diferentes dos cavalos de Tróia por não terem como objectivo que o sistema do utilizador seja dominado ou manipulado por uma entidade externa. Não existe um modo de saber se um spyware é bom ou se é mau. O critério que deve sempre ser usado é que para se proteger, tem sempre de desconfiar e estar o mais atento possível. Regra geral, um spyware não-prejudicial só será instalado mediante a autorização do utilizador. Um spyware maligno, porém, será instalado sem aviso prévio e sem que o utilizador tenha conhecimento ou que autorize. Existem programas anti-spyware criados para evitar esse tipo de ameaça que possuem base de dados completas e que são actualizados constantemente. Comparando as partes de código entre os spywares conhecidos e os aplicativos do computador, é possível detectar se o computador está ou não a ser vítima de invasão/espionagem. Muitos vírus, transportam/instalam também spywares com o intuito de praticar actos ilícitos, como roubar dados bancários, dados pessoais do utilizador, e até mesmo roubar ou modificar certos ficheiros de dados. Por vezes os spywares podem vir ligados a shareware ou freeware, isto é, a partir do momento que usamos esses shareware ou freeware aceitamos legalmente a instalação de alguns spyware [15,16,17] 2.5.5 Pishing O Phishing é um tipo de ataque relativamente fácil de executar mas algo difícil de interpretar logo à primeira vista, pois este método consiste no envio por parte do atacante de um engodo. O engodo mais recorrente e se calhar até cada um de nós já foi posto à prova neste ataque, consiste no envio de um e-mail muitas vezes com um link (endereço) para o site do nosso banco ou outra entidade que possivelmente somos filiados com o intuito de nos ludibriar, levando-nos a preencher com os nossos dados confidenciais e assim posteriormente terem acesso aos nossos dados. Este tipo de ataque vem muitas vezes associado a programas como keyloggers e outros programas similares, que basicamente conseguem controlar os “movimentos” que fazemos no sistema, desde captura de teclas pressionadas, imagens do ecrã, contactos e até actividades realizadas pelo rato. Como temos dito para cada tipo de ataque, vamos tentar sempre divulgar como estar atento e como prevenir ao máximo este tipo de ataque. A forma de protecção contra estes ataques segue as regras comuns a uma utilização segura da Internet, que são [18]: 1. Evite sempre enviar informação pessoal seja por quem for solicitada por e-mail, tal como: n.º do cartão de crédito, username, password, nomes. Muito dificilmente algum agente credível lhe pedirá este tipo de informações. 2. Não faça clicks em ligações de email suspeitos. Caso queira entrar por exemplo numa página, introduza directamente no browser o endereço da entidade referida no email e navegue a partir daí. 3. Se duvidar da veracidade mesmo assim do e-mail, contacte a entidade para confirmar a veracidade do email, mas nunca use os contactos indicados no email. Faça-o da forma que costuma fazer habitualmente. 13 4. Certifique-se sempre que o site é seguro, para isso devemos fazer duplo clique sobre o cadeado no canto inferior direito do browser ou pelo endereço (URL), que deve começar por “https://” e não por “http://”. Desta forma conseguimos saber se estamos a entrar num endereço seguro. 5. Desconfiar sempre de e-mails impessoais que se dizem de uma entidade com a qual mantemos algum tipo de contacto, seja um site de e-commerce ou uma instituição financeira. Normalmente os e-mails destas entidades dirigem-se ao Cliente pelo nome, como “Exmo. Sr. José Costa” e não por “Caro cliente”. O objectivo dos email fraudulentos é precisamente obter informação pessoal sobre a pessoa em si, pelo que é difícil conhecerem o nosso nome de antemão. 6. Certifique-se que o seu browser (navegador de internet) está actualizado. Para efectuar esta operação basta regularmente observar se existem actualizações. Normalmente esta operação é bastante acessível, basta percorrer o sistema de navegação do browser utilizado, dependendo de browser para browser. Por omissão as actualizações vêm activadas para serem efectuadas de forma regular. 7. Instale uma barra de ferramentas para o seu browser. A NetCraft disponibiliza uma que fornece informação diversa sobre o site a que está a aceder: a localização geográfica do servidor que aloja o site, a entidade responsável pelo site e a primeira vez que este endereço foi detectado pela NetCraft, assim sendo poderá conferir em tempo real uma possível ameaça graças a esta ferramenta. 2.5.6 Rootkit Rootkit é uma aplicação (ou conjunto de aplicações) que, utilizando funções do sistema operativo, oculta a sua presença ou a presença de outros malwares, sendo que é por vezes quase indetectável por programas antimalware comuns. Os rootkits podem ser bons ou maus. Os rootkits correctos podem ser parte integrante ou ser instalados como uma aplicação legitima. Por essa razão é necessário ter atenção nos possíveis resultados de um anti-rootkit. No Windows, os rootkits infectam preferencialmente as tarefas e processos da memória, mudando a ordem e anulando os pedidos do programa que se encontra afectado, impedindo que o programa tenha acesso aos ficheiros necessários para o seu funcionamento. Por outras palavras, pode-se dizer que os rootkits ludibriam o programa, fazendo-o acreditar que os ficheiros não existem, quando na realidade existem, provocando assim mensagens de erro. No Linux, quando infectado com um rootkit, substitui o programa de lista de ficheiros, sendo que se o rootkit tiver ou der ao sistema uma lista de ficheiros própria, este poderá ocultar-se, visto que alterará a lista e tornar se-á indetectável. Uma máquina pode ser infectada com um rootkit de várias formas, sendo o mais comum através de algum cavalo de troia ou até mesmo de um anexo suspeito de email. Na navegação na Internet, por vezes pode resultar na infecção de um rootkit, instalando plug-ins maliciosos, mesmo que por vezes estes pareçam legítimos. Como a maior parte do malware, os rootkits multiplicam-se e são difundidos através de emails e sites maliciosos como, por exemplo sites de falsas Entidades Bancárias ou que se tentam passar por entidades bancárias entre outros. Por vezes basta apenas um click para haver uma infecção do computador, sendo que também podem automaticamente nos serem roubadas informações pessoais e dar acesso a invasores maliciosos. Apesar de não ser infalível, ter um bom antivírus e uma boa firewall é sempre uma boa prática e uma boa protecção para evitar pelo menos uma parte de ataques. Com a quantidade de emails maliciosos e spam existente actualmente na Internet, é uma boa prática reportar todos os emails suspeitos aos serviços anti-spam. Actualmente, alguns antivírus estão preparados para detectar alguns rootkits, mas quanto maior é a tecnologia de defesa, maior será a tecnologia de ataque sendo que o melhor é sempre prevenir e ajudar na prevenção. Os rootkit vão tirar (ou tentar) vantagens de possíveis falhas no sistema, tanto para o infectarem como após a infecção para tirar maior partido possível ilicitamente do computador[19,20,21,22]. 2.5.7 Dialers É um género de software que é instalado no computador e que utiliza a ligação com a linha telefónica para ligar para um certo número de tarifação especial, causando assim enormes 15 aumentos nos pagamentos da conta telefónica. Hoje em dia os utilizadores que tenham acesso à Internet por banda larga estão protegidos contra este malware, no entanto os utilizadores com Internet dial-up por modem podem ainda ser atacados. Alguns dialers ligam para Fornecedores de Acesso à Internet (ISPs) e foram desenhados para fornecer assistência genuína. É possível que esses programas possam ser usados para aceder a serviços pagos na Internet sem usar um cartão de crédito. Por essa razão é possível que alguns utilizadores possam instalar intencionalmente esse tipo de programa para fins menos próprios. Os dialers podem modificar a configuração do sistema de forma que os utilizadores que se liguem à Internet através de um modem sejam redireccionados para um número de tarifação especial[23]. 2.5.8 Backdoors Backdoor é um programa de controlo remoto que permite a um invasor ter acesso e controlar um computador através da Internet. Um backdoor típico consiste de dois componentes: cliente e servidor. O cliente é considerado o invasor/atacante e o servidor é considerado como sendo a vítima/computador atacado, onde o invasor usa o backdoor instalado no computador desta para ter acesso e controlar a máquina. Esta invasão surge através de uma falha de segurança que pode existir num programa ou mesmo no sistema operativo e permite que a mesma seja possível, de forma que o invasor possa ter acesso total da máquina. Como qualquer falha, um backdoor é usado por invasores para instalar vírus ou simplesmente invadir o computador pelas piores motivações, sendo que alguns backdoors apenas podem ter a finalidade de abrir as portas para futuras invasões como trojans e rootkits. Através dessa falha de segurança o computador poderá ser acedido remotamente, dando ao invasor controlo total sobre a máquina, desde ver/modificar/apagar ficheiros, a instalação de programas, desligar a máquina, conectar a outros computadores entre outros. As backdoors podem vir acompanhadas de programas específicos para invasão. Assim, qualquer um que tiver aquele código malicioso instalado pode ter o computador invadido até mesmo por pessoas com pouco conhecimento em informática. Em poucos cliques, um hacker conseguiria entrar na sua máquina e fazer o que quiser: desde abrir a drive de CD/DVD até apagar dados do computador. Assim sendo, deve-se manter programas e o sistema operativo sempre actualizado para corrigir possíveis falhas de segurança, independentemente do sistema operativo que se usa[24,25,26]. 2.5.9 Spam O termo SPAM é utilizado para designar o todo correio electrónico não-solicitado pelo utilizador e enviado em massa. Entende-se por não-solicitado quando uma mensagem de correio electrónico enviada para alguém sem autorização/consentimento prévio, enquanto enviada em massa corresponde ao envio para um grande número de destinatários a mesma mensagem. As newsletters de subscrição e comunicações a clientes são dois exemplos de mensagens enviadas em massa que não são SPAM, isto se considerarmos que os clientes deram autorização para que lhes seja enviado. Para termos ideia da complexidade e enormidade do assunto em questão fazemos referência a uma notícia publicada no Portal Sapo[29] “Investigadores de empresas de segurança divulgaram a suspensão da botnet Grum, a terceira maior rede de computadores zombies do mundo. Os cibercriminosos usavam esta rede para enviar cerca de 18 mil milhões de mensagens de spam por dia, quase um quinto de todo o spam gerado por dia em todo o mundo. Durante essa semana, os especialistas bloquearam a botnet e tomaram o controlo de servidores na Holanda e no Panamá. Contudo, segundo Atif Mushtaq, da empresa FireEye, os cibercriminosos transferiram os comandos para envio de spam para outras máquinas localizadas na Rússia e Ucrânia. O investigador partilhou a informação sobre a nova localização dos computadores zombies com outros especialistas, inclusive localizados na Rússia e Ucrânia. Depois de três dias de trabalho conjunto, conseguiram, com a ajuda dos fornecedores de Internet locais, desligar a botnet Grum. 17 Segundo o jornal The New York Times, no início deste ano, funcionários da Microsoft também conseguiram desligar uma botnet que incluía computadores localizados nos Estados de Illinois e Pensilvânia (EUA). Essas máquinas eram usadas por cibercriminosos para rodar o Zeus, uma botnet que rouba informações bancárias de cibernautas, bem como números de cartão de crédito, após infectar os computadores com malware.” Na maior parte dos casos, os spammers conseguem os endereços de email através de programas que pesquisam endereços na web, mas no entanto podem e devem ser tomadas algumas medidas de segurança como, por exemplo, nunca responder a spams. Se isso acontecer estará a confirmar o seu email e certamente será alvo de mais spam. Ter uma conta alternativa de email caso seja habitual registar em serviços online, principalmente serviços que sejam potencialmente duvidosos. Nunca clicar em links que venham contidos em mensagens de spam ou de remetentes duvidosos, assim como preservar o seu email, evitando fornece-los em chats ou sites suspeitos. Utilizar sempre um bom programa anti-spam, apesar de não ser o suficiente para eliminar todo o spam certamente ajudará a que pelo menos seja reduzido consideravelmente. O Utilizador deve usar um bom programa anti-spam. Isso diminuirá a quantidade de lixo na caixa de emails e a probabilidade de ser apanhado desprevenido. Alguns programas que podem ajudar: Agnitum Spam Terrier, Spam Nullifier, Mozilla Thunderbird, entre outros[27,28]. 2.5.10 Keylogger Keylogger é um programa (spyware) que tem como finalidade guardar informação, de registar tudo o que é digitado, tendo como principal motivação guardar passwords, números de cartões de créditos, logins e afins. Phishing e muitas outras fraudes virtuais são baseadas no uso de keyloggers, permitindo ao invasor a utilização desses dados supostamente confidenciais para fraudes, através de programas (keyloggers) previamente instalados nos computadores sem conhecimento ou autorização da vitima. É sempre aconselhável que qualquer máquina ligada à Internet esteja protegida com um antispyware, uma firewall e de um bom antivírus para pelo menos tentar evitar este tipo de malware. Por vezes este tipo de programas pode ser usado por empresas para controlar os seus funcionários, no entanto, quase sempre é usado para fins maliciosos. Porém, os keyloggers também podem ser usados de forma legítima, e alguns utilizadores podem usá-los como backup permanente dos dados digitados num determinado computador, evitando assim uma possível falha, quer humana, caso um utilizador se esqueça de gravar um documento importante por exemplo, quer não humana, como por exemplo a falha de energia eléctrica ou qualquer motivo que possa causar o encerramento precoce e não calculado da máquina. Durante a execução de um keylogger, sempre que o utilizador prime uma tecla, o keylogger edita e guarda o LOG de dados, sendo que aos olhos mais atentos pode ser perceptível um ligeiro atraso entre o tempo que se digita e o tempo em que aparece no ecrã a tecla digitada, sendo que, mesmo assim, poderão ser apenas fracções de décimas de segundos, dependendo claramente da capacidade de processamento das máquinas. Com processadores de alta velocidade será quase impossível detectar esse atraso entre os dispositivos de Entrada e Saída. Alguns keyloggers podem ser configurados para guardar a informação a cada, por exemplo, 30 teclas premidas, ou então apenas guardar algumas teclas pré-definidas, sendo portanto, por vezes uma boa alternativa à auto-gravação dos editores de texto e afins[30,31]. 2.5.11 Ramsonware O Ransomware é uma ameaça informática que nos últimos tempos tem vindo a ser uma prática muito comum. O Ransomware, também conhecidos como “sequestradores digitais”, são trojans que após invadirem as máquinas impedem o acesso a várias funcionalidades e até documentos. Estes ataques podem ser de tal forma eficientes que por vezes podem codificar/encriptar os dados, recorrendo a algoritmos bastante eficientes, e para voltar a aceder ou voltar a ter acesso a esses dados, o invasor pede ao utilizador um montante monetário para que possa ter de volta todos os seus dados, ficheiros, etc. 19 Em Portugal, o exemplo de Ransomware com mais impacto social foi uma burla informática que usou o nome da PSP e tinha como objectivo principal extorquir dinheiro aos utilizadores. As vítimas recebiam um email supostamente da PSP, onde era referido que este tinha acedido a “sites de conteúdo pornográfico, pedofilia, violência sobre menores, pelo que é condenado a pagar 100 euros”. Desta forma o utilizador é intimidado a proceder ao pagamento de 100€ para um NIB, evitando assim o bloqueio do computador, sendo que, o email não era da PSP, mas sim de um email “parecido” com o que poderia ser da PSP. A melhor prevenção contra os ransomwares é fazer backup dos dados. A cópia periódica de ficheiros importantes numa unidade externa e segura garante que não haverá problemas maiores no caso de uma infecção nos ficheiros originais. Apesar de não ser o principal foco dos programas de antivírus, a protecção contra este tipo de ameaça é integrada na maior parte dos softwares confiáveis do mercado. Como os ataques mais frequentes envolvem empresas, a cautela com a segurança deve estar em dia e a rede deve ser monitorizada constantemente[32,33]. 2.6 Stuxnet O Stuxnet é o exemplo actual e mais conhecido a larga escala de uma botnet desenvolvida com fins políticos, não só porque foi bem concebido mas também para os fins que aparentemente foi criado. O worm em questão foi concebido especificamente para atacar o sistema SCADA [34], previamente criado pela Siemens para controlar as centrifugadoras de enriquecimento de uránio iraniano. É considerado como o primeiro grande vírus de espionagem industrial e ao que se crê ate ao momento foi concebido ou por Israel ou pelos EUA, pelo que ainda permanece uma incógnita. De acordo com declarações feitas por Mikka Hypponen, pesquisador-chefe da companhia finlandesa de segurança F-Secure, "isso não foi um simples trabalho de um hacker sozinho no seu quarto, à frente do seu computador" [35]. A complexidade deste worm é de tal ordem que é capaz de reprogramar um Controlador lógico programável (CLP), que basicamente é um computador especializado que tem por base um microprocessador que desempenha funções de controle através de softwares elaborados pelo utilizador e esconder as suas mudanças [36]. Apesar das capacidades deste worm, era inofensivo em sistemas operativos como o Windows e Mac OS X. Ao que empresas como a Symantec ou a Kaspersky conseguiram apurar, as infecções à volta dos 60%, ou seja, 60.000 dos 100 mil computadores infectados, eram iranianos e que procuravam unicamente um tipo de hardware e software da Siemens [37]. A sua descoberta teve origem nos laboratórios da empresa de antivirus russa Kaspersky LAB, que dado o seu conhecimento emitiu um comunicado dando conta que: "Um protótipo funcional e temível de uma cyber-arma que dará início a uma nova corrida armamentista no mundo." Este ataque é considerado como o primeiro ataque a um alvo governamental em larga escala, pelo que já muitos especialistas na area consideram o que poderá ser o 1º de muitos ataques de uma possível cyberguerra que se poderá instalar num futuro próximo[38]. O aviso foi lançado e já ataques semelhantes foram levados a cabo como o Flame e mais recentemente o "Gauss" (considerado primo do Stuxnet) têm já marcado algum espaço e preocupação na área. 21 Capítulo 3 3 Estado na arte na Detecção de Botnets Segundo [39] “Malware é um nome abreviado para “software malicioso”, é qualquer tipo de software indesejado, instalado sem o seu devido consentimento. Vírus, worms e cavalos de troia são exemplos de software mal-intencionado que com frequência são agrupados e chamados, colectivamente, de malware.” De acordo com [40] “o termo bot é uma abreviatura de robô. Os criminosos distribuem software malicioso (também conhecido como malware) que pode transformar o seu computador num bot (robô) (também chamado zombie). Quando tal acontece, o seu computador pode executar tarefas automatizadas através da Internet, sem o seu conhecimento. Os criminosos utilizam normalmente bots para infectar um grande número de computadores. Estes computadores formam uma rede ou uma Botnet. Os criminosos utilizam as botnets para enviar mensagens de spam, disseminar vírus, atacar computadores e servidores e cometer outros tipos de crimes e fraudes. Se o seu computador fizer parte de uma botnet, pode tornar-se lento e inadvertidamente pode estar a ajudar os criminosos.” Nos últimos anos, a diversidade de malware cresceu quase exponencialmente. Novas variantes aparecem todos os dias, com melhoria constante das técnicas usadas e cada vez mais com mais sofisticação. O crescimento no número de amostras é sintomático da aplicação generalizada do conceito de polimorfismo para ficheiros de malware binários. Os Malwares polimórficos contêm uma sequência de código fixo que modifica o código binário do malware durante a propagação, mas mantém-se inalterado nele mesmo. Os Malwares Metamórficos são mudados completamente dentro de cada tentativa de propagação. Polimorfismo e metamorfismo são apenas dois exemplos de técnicas utilizadas por quem cria e desenvolve os malware para atingir os seus objectivos. 3.1 Técnicas de Detecção de Botnets Após algumas pesquisas sobre as técnicas de detecção de botnets, examinamos alguns dos trabalhos já existentes na detecção e compreensão de botnets. Observamos que essas técnicas estão standardizadas, pois parece-nos que o estudo delas recai já em técnicas previamente conhecidas e divulgadas por órgãos da especialidade, diferindo só no tipo de ambiente em que são aplicadas. 3.1.1 Mecanismos de Detecção de Botnets Para aprender tecnicas contra as botnets é necessario explorar o clico de uma botnet, para assim dificultar ao máximo a sua tarefa. Para uma primeira abordagem no desenvolvimento de mecanismos de detecção recorria-mos ao sistema de analise de signatures dos bots, o sistema é baseado em em modelos de detecção que são orientados ao simples facto de que um bot recebe comandos de um botmaster e ao qual é respondido ao pedido de forma caracteristica. Com o estudo destes comportamentos cooperativos foram aparecendo novas ferramentas de detecção, entre elas o BotHunter[41] que modelou a fase de infecção, recorrendo a um conjunto de comandos vagamente ordenados entre um host interno e diversas entidades exteriores e usou estes modelos de modo a comparar eventos suspeitos no aparecimento de infecções. O BotMiner [42] propôs uma framework de detecção que utiliza um mecanismo de monitorização nos canais de comunicação C&C monitorizados, e nas actividades maliciosas. Akiyama et al. [43] definiu um sistema de 3 métricas para determinar o comportamento das Botnets, precavendo que o tráfego das mesmas é executado regularmente nos seguintes pontos: relacionamento, resposta e sincronização [45]. Basicamente, a relação representa a ligação entre o Botmaster e o bot sobre um protocolo único. Mesmo não tendo uma ligação directa sobre a camada de transporte, pode existir um 23 relacionamento numa camada superior. A análise da resposta recai sobre o facto de que quando um host seguro de rede recebe uma mensagem, o mesmo responde ou executa uma acção após um tempo variável. Por outro lado, quando um bot recebe um comando do seu Botmaster, este responde com actividades pré-programadas com um tempo constante de resposta. Na sincronização, assume-se que todos os bots se encontram sincronizados uns com os outros, e que irão executar simultaneamente acções do género: ataques de DDoS, envio de relatórios de actividade, etc. Portanto, a partir destas acções torna-se possível pressupor que podemos detectar grupos semelhantes e suspeitos de botnets monitorizando a quantidade de tráfego ou acções que possam ser executadas de forma especifica por eles. Figura 3- Relação, resposta e sincronização. Consequentemente foram surgindo algumas propostas de detecção de Botnets baseadas em padrões de ataque. Brodsky et al. [46] baseou-se no pressuposto de que as Botnets tendem a enviar grande número de Spam num período relativamente curto de tempo, e num método semelhante Xie et al. [47] usou propriedades de tráfego de Spam de servidores e spam, de forma a construir uma framework de detecção. Metodologia de Propagação Serviços Operativos Serviços Aplicações Engenharia Social Complexidade Detecção Média Média Alta Baixa Alta Média Baixa Média Velocidade de Propagação Baixa Média Alta Baixa Abrangência Alta Média Baixa Alta Tabela 1-Mecanismos de Propagação[48]. Topologia Host DDoS Multi Host DDoS Roubo de Identidade Spam Phishing Detecção Alta Média Baixa Média Média Complexidade Baixa Média Alta Média Alta Valor de Ataque Baixa Média Média Alta Média Tabela 2-Tipos de ataques[48]. Topologia Centralizada Peer-to-Peer Desestruturada Complexida de Baixa Média Baixa Detecção Média Baixa Alta Latência de Mensagem Baixa Média Alta Tempo de Vida Baixa Média Alta Tabela 3-Topologia Command and Control[48]. 3.2 Honeypot Segundo [49] “um honeypot é um recurso de rede cuja função é de ser atacado e comprometido (invadido). Significa dizer que um Honeypot poderá ser testado, atacado e invadido. Os honeypots não fazem nenhum tipo de prevenção, os mesmos fornecem informações adicionais de valor inestimável.” É um sistema que possui falhas de segurança reais ou virtuais, colocadas propositadamente, a fim de que seja invadido e que o fruto desta invasão possa ser estudado. Como o próprio nome indica, HoneyPot e traduzindo a palavra à letra indica pote de mel, mas a ideia que aqui nos interessa saber e estudar é: um HoneyPot ou pote de mel não é mais que uma “armadilha” para atrair terceiros ao nosso sistema. Vejamos isto como caçar ursos. Uma das possíveis armadilhas para atrair um urso ate nós seria termos um pote de mel em condições privilegiadas, ou seja, expondo-o de forma tão fácil que um urso que esteja nas redondezas possa ser atraído para lá e com isso cair na nossa armadilha. Passando isso para a linguagem 25 ao nível da informática, é como expor algo como um sistema apetecível (desprotegido) a invasões de terceiros para com isso conseguirmos identificar e seguir caminhos lógicos que nos possam vir a ser úteis no combate a ataques reais feitos a máquinas reais. 3.2.1 Tipos e níveis de Honeypots Quanto à classificação de honeypots, podemos dizer que existem dois tipos de HoneyPots, os de Produção e os de Pesquisa. Os de Produção têm por finalidade a distracção de possíveis ameaças na máquina, ou seja, serve como meio de alerta na rede de computadores. Por norma não englobam nada de muito elaborado sob o ponto de vista técnico ao seu funcionamento, o que facilita já por si o seu uso. Quanto aos honeypots de pesquisam visam essencialmente a monitorização do sistema em si ou seja, estuda o comportamento do utilizador que tenta atacar o sistema possibilitando assim o estudo dos seus métodos de ataque e até mesmo os comandos digitados. Comandos esses que posteriormente serão alvo de estudo aquando da análise da investida levada a cabo por parte do utilizador alheio ao sistema. Passando esta breve introdução dos tipos de HoneyPots podemos, agora entrar no campo de níveis de interactividade que os HoneyPots podem ser capazes de reproduzir. Até ao momento, as interactividades estão classificadas em 3 níveis possíveis, sendo elas: baixa interacção, média interacção ou alta interacção. Comecemos por explicitar os de baixa interacção. Um honeypot deste nível é capaz de emular serviços de rede, mas com o contra de que a sua capacidade está limitada ao momento em que o intruso entra no sistema, ou seja consegue entrar mas a partir dai não existe outra acção possível. A função dos de baixa interacção cinge-se apenas à detecção de intrusos no sistema, ou seja, pode ser englobado no tipo de Honeypot de Produção. Quando comparados com sistemas de IDS, os de baixa interactividade também registam e detectam ataques, são capazes de responder a logins de forma simples, enquanto que um IDS base permanece passivo. O intruso só consegue aceder ao serviço emulado. O sistema base não é assim penetrável por parte do intruso, o que torna este nível bastante seguro e de baixo risco para com o sistema. Nos níveis de média interacção, um HoneyPot é capaz de emular um serviço completo ou até mesmo explorar uma vulnerabilidade específica. Um ponto a favor neste nível é também a capacidade de emular na totalidade o comportamento de um IIS Microsoft (servidor web). É um nível similar ao de baixa interacção pois também está incluído no tipo de Produção e também tem como objectivo a detecção de intrusos. Este tipo de nível é instalado como aplicação num OS e apenas disponibiliza aos utilizadores os serviços emulados à partida. Ao passar para os de Alta interactividade passamos também para um nível mais elaborado e completo, pois estamos a falar de um serviço capaz de emular um sistema operativo na sua totalidade ou então um sistema base real que poderá servir como uma monitorização adicional. Este tipo de interactividade já difere dos antes mencionados pois já se insere também no tipo de Pesquisa, não pondo totalmente de lado a Produção. Devido ao seu grau de elaboração, que podemos dizer de alguma complexidade, é também alvo de um risco mais elevado, pois ao ser atacado de forma mais eficiente e “elaborada” facilmente pode comprometer o sistema que serve como base e assim podendo ser alvo de ataques de rede que podiam provocar perdas de largura de banda ou criando um enorme volume de tráfego ao sistema, tornando-o menos eficiente em resposta aos serviços fornecidos[49]. 3.2.2 Vantagens de Honeypots A utilização ou não de um Honeypot obviamente se prende nas vantagens que o seu uso nos oferece. Como em todos os tipos de serviços, o seu uso depara-se sempre com as possíveis vantagens que nos possa trazer, quanto mais e melhores vantagens nos oferecer melhor e com mais facilidade se poderá implementar o serviço em questão. Os Honeypots não possuem um problema em específico, na verdade são diferentes de outro tipo de mecanismos no combate à intrusão de terceiros no nossos sistema, como firewalls e IDS. Os HoneyPots podem ser uma grande ajuda na área da segurança de uma rede, pois conseguem ajudar na prevenção e solução de problemas nesta área. Assume-se logo à partida que qualquer ataque ao nosso honeypot deve ser logo considerado como suspeito e devendo ser o mais breve possível alvo de análise. Segundo [49], podemos enumerar á partida 6 vantagens: Na recolha de dados, o facto de não ser um sistema real de produção, apenas recebe os dados destinados ao honeypot, podendo os dados assim, serem alvo de uma análise mais cuidada. 27 Em termos de redes convencionais, as ferramentas usadas apenas analisam os ataques já conhecidos, ao contrário dos honeypots que guardam qualquer tráfego da rede Ao nível da criptografia de dados, os dados podem ser capturados de forma legível, mesmo estando encriptados por serviços de SSH. A formatação e precisão dos dados recebidos pelo honeypot são também uma vantagem, porque torna mais fácil e concisa a análise dos dados recebidos. No uso desta tecnologia não há necessidade de desenvolver algoritmos complexos, ou de uma manutenção alargada, sendo que a simplicidade dos honeypots é considerada também uma vantagem. 3.2.3 Desvantagens de Honeypots Como em todos os sistemas, existem sempre algumas desvantagens, já um sistema nunca consegue ser 100% vantajoso. Os Honeypots não fogem à regra e possuem algumas desvantagens o que perfaz que com os Honeypots só por si não sejam um substituto também aos actuais mecanismos de defesa, mas complementando-se com eles. Podemos definir algumas dessas desvantagens em coisas como a visão limitada do problema, ausência de tráfego, problema com a identificação da situação e o risco que corre ao receber um ataque muito bem direccionado. Comecemos então por explicar da melhor forma cada uma das possíveis desvantagens do uso de um Honeypot [49]. Um honeypot tem por base apenas monitorizar actividades direccionadas a si mesmo, o que poderá levar a que quando um intruso consiga entrar no sistema e que por sua vez consiga ter acesso ao sistema base, o honeypot não conseguirá detectar, a não ser que receba ele também um ataque por parte do intruso. Podemos assim afirmar que é limitado ao nível do ataque proferido (Visão Limitada). O honeypot foi concebido e idealizado com o propósito de receber ataques. Se não existirem ataques, o mesmo se torna inútil e não funciona como uma vantagem ao sistema (Ausência de Tráfego). Uma outra forma de comprometer o sucesso de um honeypot e que por si pode tornarse numa grande desvantagem é o facto de o intruso poder comprometer o sistema. Por outras palavras, o intruso pode induzir em erro quem analisa os dados gerados de um honeypot no sentido de poder executar comandos que tornem a passagem do intruso dentro do sistema como um comportamento normal (rotineiro) e esperado pelo honeypot. Outro facto adjacente é o de o intruso poder-se aperceber que está num honeypot. Pode com isto levá-lo também a evitá-lo e ir-se focar em outros pontos da rede, podendo claramente inserir informações maldosas no sentido de confundir e levar a quem tentar analisar estes dados a tirar falsas conclusões sobre o ataque, criando assim uma falsa falha de segurança na rede (Identificação). O risco do comprometimento do sistema é algo bastante presente e varia consoante o nível de interacção usado entre o intruso e o honeypot. Como vimos anteriormente em honeypots de alta interactividade, são estes os mais expostos a riscos graves. O problema aqui pode ser o facto de podermos vir a servir como uma botnet em ataques orientados pelo intruso, pois como a complexidade usada é também maior, o risco de servirmos para o oposto e partirmos como possíveis aliados do intruso é uma grande e arriscada desvantagem, pois é claramente o que não se pretende com a implementação e uso deste sistema. 3.3 Honeynet A Honeynet é uma rede de honeypots, actuando como uma infraestrutura preparada e com o objectivo de monitorizar e analisar toda a actividade nos sistemas. O uso deste tipo de aplicações é vital no que à pesquisa e detecção de acções ou software malicioso diz respeito. Desta forma, qualquer ataque bem-sucedido representa uma nova falha no sistema e que pode ser logo alvo de um estudo mais aprofundado e, dessa forma, tentar evitar um segundo ataque semelhante ao primeiro. Actualmente existem dois tipos de HoneyNets: as Reais e as Virtuais. Ao nível das HoneyNet reais, podemos dizer que além de serem físicas são compostas de mecanismos de contenção, de alteração e de obtenção de informação. Uma honeynet típica é constituída por vários honeypots e uma firewall com o intuíto de registar e limitar em logs o tráfego gerado na rede[49,50]. 29 3.3.1 Tipos de honeynet Como anteriormente dissemos, existem dois tipos de honeynet, reais e virtuais. Para optarmos pelo tipo de honeynet que pretendemos usar devemos ter em conta, principalmente, o objectivo, investimento disponível para a infra-estrutura e a necessidade de utilização da honeynet. 3.3.1.1 Honeynet Real Uma honeynet real é a melhor solução para correr uma honeynet completa num único computador. A singularidade de dar a esta solução de Real, prende-se com o facto de ser necessário emular diferentes sistemas operativos os quais diferem sobretudo na sua “aparência” e como conseguimos por um sistema destes completo num único computador esta, camuflagem torna bastante real e credível todo o sistema em si. Esta tecnologia é composta por vários dispositivos físicos que colaboram na detecção e captura de informações de ataques. Sendo que alguns destes dispositivos actuam no controlo de tráfego, como por exemplo, routers, firawall e IDS, os honeypots são responsáveis pela captura e armazenamento das informações de ataques, são ainda compostos por sistemas reais, que podem usar vários sistemas operativos e completamente independentes numa só maquina se assim o quiserem. Em síntese, ficam aqui algumas das vantagens e desvantagens no uso desta tecnologia[49,50,51]: Vantagens: Maior nível de interacção com o intruso; Dispositivos reais; Captura de informações precisas; Ambiente distribuído e tolerante a falhas; Desvantagens: Complexidade na manutenção; Necessidade de espaço físico maior Dificuldades na instalação e administração; Custo de implementação elevado; Figura 4-Exemplo clássico de uma Honeynet Real. 3.3.1.2 Honeynet Virtual Honeynet Virtual foi criada/pensada com o intuito de reduzir os custos de implementação de uma honeynet, que consiste simplesmente na instalação e configuração de um computador que virtualiza vários componentes e computadores[49,50,51]. Vantagens: Custo reduzido (menor gasto com equipamentos e energia eléctrica); Espaço físico reduzido. Simples instalação e administração, se comparado com uma honeynet real; Gestão fácil; Desvantagens: Limitação nos sistemas operativos e serviços oferecidos pelos programas de virtualização; Se o software de virtual for comprometido, o invasor pode dominar e controlar toda a honeynet virtual; Interacção com o invasor é inferior se comparado com a honeynet real. 31 Figura 5-Exemplo clássico de uma Honeynet Virtual. 3.4 HoneyD(em ambiente Linux e em Windows) O Honeyd é uma ferramenta desenvolvida e mantida por Niels Provos da Universidade de Michigan e que tem como objectivo criar hosts virtuais numa rede. Surgiu, em Abril de 2002, e desde então tem tido um grande crescimento nas pesquisas e descobertas de ataques. É uma ferramenta que teve uma aceitação muito grande, visto que é desenvolvida e distribuída de forma gratuita, sendo que tem uma grande flexibilidade em ser adaptada a qualquer estrutura e pode ser usada tanto em windows como em qualquer derivação de Unix, simulando vários hosts virtuais ao mesmo tempo numa rede. Pode assumir qualquer sistema operativo, sendo estes configurados para oferecer diferentes serviços como TCP/IP, como HTTP, SMTP, SSHentre outros. É possível no honeyd simular redes inteiras, compostas por routers (etc), sendo que um HoneyD já foi testado com 65.000 hosts em simultâneo. Utilizando a técnica de ARP Spoofing, é possível assumir um endereço IP que não esteja em uso, utilizando assim esses endereços para criação de honeypots virtuais que irão responder a requisições e interagir com o invasor [52, 53, 54]. 3.4.1 Arquitectura do HoneyD O HoneyD processa todos os pacotes a que tem acesso, isto é, todos os pacotes que chegam ao Honeyd são verificados através do checksum1, para verificar a sua integridade, sendo que o HoneyD suporta os protocolos TCP, ICMP e UDP, e apesar de registar outros protocolos estes são descartados por não serem suportados pelo HoneyD. É usada a base de dados da configuração para encontrar um honeypot que corresponda ao destino do endereço de IP. Caso não haja nenhuma configuração previa, é usado o modelo pré-definido. Nos protocolos TCP e UDP são estabelecidas ligações para serviços arbitrários (que podem ou não ser personalizados) sendo estas emuladas por scripts no Honeyd. Estes serviços são aplicações externas que recebem e enviam os dados numa saída standard/padrão. Quando é recebido um pedido de ligação, o daemon verifica se o pacote faz parte da ligação estabelecida, se o pacote pertencer a uma ligação estabelecida, os dados são enviados para o programa de serviços já iniciado, caso o pacote contenha um pedido de ligação, é criado um novo processo parar executar o serviço. No entanto, o HoneyD não cria um novo processo por cada ligação, apenas gera subsistemas e serviços internos, sendo que o subsistema é uma aplicação que é executada pelo honeypot virtual. Este subsistema é responsável por ligar portas, iniciar tráfegos, aceitar ligações. Um subsistema é executado como sendo um processo externo enquanto um serviço interno é executado dentro do HoneyD. O Honeyd tem uma máquina de estados TCP, utilizado para estabelecer ligações enquanto os pacotes UDP são enviados directamente. Se receber um pacote UDP para uma porta fechada, o daemon responde com uma mensagem ICMP informando que a porta não está acessível (ICMP port unreachable). Ao proceder desta forma, o daemon permite que ferramentas de rede como o traceroute4 funcionem correctamente. 1 Checksum ou soma de verificação é um código usado para verificar o numero de bits que estão a ser transferidos, verificando a integridade de dados transmitidos. 4 Ferramenta que permite descobrir o caminho percorrido pelo pacote desde o inicio até ao seu destino . 33 O Honeyd também proporciona redireccionamento de ligações externas para serviços reais, visto o daemon poder redireccionar, isto é, um servidor web pode estar a ser executado num honeypot virtual e ser redireccionado para um servidor real. Existe também a possibilidade de redireccionar o ataque de volta há sua origem, isto é, ao próprio invasor. O conteúdo dos pacotes é processado pelo motor de personalidade, antes de serem enviados para a rede para que estes pareçam verdadeiros da pilha TCP/IP. Todos estes mecanismos têm como finalidade ludibriar o invasor para que este tenha percepção que está num ambiente real[52, 53,54]. 3.4.2 Funcionamento do HoneyD O honeyd foi concebido para processar pacotes de rede em que o destino é o endereço IP que pertence aos honeypots virtuais. Assim sendo, é necessário utilizar métodos que permitam ao Honeyd receber o tráfego da rede. Existem duas maneiras, um delas é no router que dá acesso ao host Honeyd, criar rotas especiais para os endereços IP virtuais, sendo que neste método é normalmente utilizado onde não existem sistemas activos. Normalmente é apenas utilizado onde existe unicamente o Honeyd. Se for um serviço real activo, todo o tráfego existente na rede é considerado ataque, sendo que todo esse tráfego é posteriormente direccionado para os honeypots virtuais. Outro possível método corresponde a uma topologia onde o host Honeyd é inserido num ambiente de produção real, sendo que neste caso seja necessário utilizar o programa como ARP, apesar de ser uma forma mais complexa de direccionar o tráfego utilizando métodos de ARP Spoofing ou Proxy ARP. O ARPD atende as requisições ARP monitorizando os endereços IP identificados na rede como não activos e determina o endereço MAC dos honeypots virtuais. Quando surge um ataque a um determinado endereço IP que não existe, o Honeyd assume esse endereço IP, assume o papel de vitima e interage com o invasor. Após o primeiro contacto, na primeira troca de informação é identificado o serviço usado pelo invasor, sendo as configurações do Honeyd consultadas. Se a porta requerida pelo serviço que o invasor está a utilizar estiver disponível é iniciada a interacção entre o Honeyd e o invasor. As configurações principais do Honeyd estão no ficheiro honeyd.conf. O ficheiro honeyd.conf contém as características dos dispositivos virtuais assim como a personalidade dos serviços que podem ser usados pelo invasor. O Honeyd recorre à utilização de scripts para emular serviços disponibilizados pelos hosts virtuais. Os scripts usados pelo Honeyd podem ser desenvolvidos ou simplesmente adquiridos na comunidade científica. O nmap.prints é outro ficheiro que é normalmente utilizado, que contém as impressões digitais de todos os sistemas operativos que podem ser emulados pelo Honeyd. A tabela de assinaturas utilizada é a mesma que a do Nmap, sendo que esta ferramenta (Nmap) é muito utilizada para identificar portas abertas e tipos de sistemas operativos. É sempre importante e crucial manter o ficheiro actualizado na versão mais recente, de modo que seja possível ter um comportamento ilusório e o mais real possivel perante o invasor. A criação de hosts virtuais que permite a concepção de topologias de redes inteiras e virtuais completas, com routers, servidores, clientes e firewall é possível através da emulação de vários serviços e sistemas operativos[52, 53, 54]. 3.5 Valhala Honeypot(em ambiente Windows) O Valhala Honeypot é uma ferramenta que foi criada por Marcos Flávio Assunção, sendo este desenvolvido para o Windows dando a possibilidade de emular vários serviços como http (web), ftp, tftp, finger, pop3, smtp, echo, daytime, telnet and port forwarding. Este software é freeware[55]. Existem ferramentas mais poderosas e complexas do que o Valhala mas com licenças pagas, e após várias pesquisas descobrimos o Valhala, sendo provavelmente dos softwares livres mais completo. 3.6 IDS(Intrusion Detection System) Um IDS (Instrusion Detection System) define-se como um conjunto de componentes tanto ao nível do software como do hardware, em que a sua principal função é detectar, identificar e responder a actividades anormais na rede ou num sistema informático, actividades essas que 35 contrariam o normal funcionamento num sistema. Um IDS por defeito é essencialmente constituído por 3 funções: os sensores, cuja função é gerar alertas/eventos de segurança, a consola que controla e monitoriza os alertas e por fim o motor, que, baseando-se nas regras de segurança impostas gera, alertas a partir dos eventos de segurança, ou seja é a parte que une os sensores e a consola, a parte funcional e a que regista os acontecimentos por exemplo numa base de dados. O IDS é ainda caracterizado em 3 características operacionais [56]: Característica Operacional Método de Detecção Recolha dos Eventos Reactividade Classificação Baseada em conhecimento Baseada em comportamento Máquinas Redes Hibridos Activos Passivos Tabela 4-Caracterização de IDS. Um dos caminhos a seguir na utilização de um IDS é o uso recorrente a host-based, analisando assim o tráfego da rede de forma individualizada. Com a utilização assente em host-based o IDS é instalado no servidor e funciona como mecanismo de alerta e de identificação de ataques bem como tentativas de intrusão à máquina. 3.6.1 SSL, IPSec e outros Quando um IDS é responsável por monitorizar uma rede e tendo em conta uma das suas formas de funcionamento é basear-se no facto de analisar os cabeçalhos e os dados dos pacotes, com vista a detectar logo possíveis alterações que possam prejudicar o sistema, tanto ao nível da intrusão como a da infestação. Com isto é recorrente a utilização de bons canais de informação, canais esses que enviam a informação de forma segura a administradores de rede, para isso e como é de vital importância que esses dados cheguem de forma segura, existe a necessidade de se recorrer a serviços como o SSL, IPSec, entre outros. Ao implementar estes serviços devemos ter em conta a criptografia usada, pois é um elemento fundamental na transmissão de dados e vital à segurança da rede. Esta codificação pode ser usada no cabeçalho do pacote ou mesmo ate no pacote inteiro, dificultando assim aquando de um desvio dessa informação se tornar mais difícil a percepção e uso dela. Exemplificando, o SSL (Secure Socket Layer) é executado entre a camada de transporte e de aplicação do TCP/IP, cifrando assim a área de dados dos pacotes. Desta maneira, os sistemas IDS não têm como identificar o conteúdo dos pacotes para terminar as conexões ou até mesmo interagir com uma firewall. Outro exemplo apresentado é o IPSec, que se define como sendo uma extensão do protocolo IP que é bastante utilizada em serviços como os de VPN. O IPSec é semelhante ao SSL, protegendo ou autenticando unicamente a área de dados do pacote IP. Já no modo túnel o pacote IP inteiro é cifrado e encapsulado. Um IDS pode verificar o cabeçalho do pacote, enquanto no modo túnel nem o cabeçalho e nem a área de dados podem ser verificados. 3.6.2 IDS em redes com switches Em redes com switches, estes equipamentos encaminham directamente as tramas da porta de origem para a de destino. Esta grande e boa característica leva-nos a esbarrar em algumas barreiras como a dificuldade de implementação de um IDS quando comparado com redes de transmissão por difusão (broadcast), ou seja um dispositivo consegue emitir para um conjunto de dispositivos receptores seja através do espaço ou por cabo. Neste tipo de rede, os dados interagem de forma directa com os seus destinos (sem a difusão), abrindo assim espaço ao uso de Port Span (serviço mais utilizado), Splitting Wire, Optical Tap e Port Mirror. Estas são formas possíveis de implementar um IDS num switch [57]. Port Span: Esta forma de implantação parece ser a mais desejada e a mais utilizada numa implantação de um IDS num switch. Um IDS neste caso é conectado à porta SPAN (Switch Port Analizer), recebendo assim todo o tráfego do switch, obtendo assim todo o tráfego de forma completa e monitorizado simulando um ambiente partilhado. Alguns switchs já vêm equipados com características de monitorização como VLAN´s especificas, distribuição da monitorização para várias portas de destino e portas em trunking2. 2 é a agregação de duas ou mais ligações lógicas a fim de alcançar uma conexão lógica de alta velocidade. Um exemplo disto é a conexão entre 2 switchs e 3 cabos fast Ethernet. 37 Splitting Wire/Optical Tap: A utilização desta forma de implementação baseia-se num sistema de “escuta” que irá monitorizar todo o tráfego que passa pelo sistema de “escuta”. Actualmente há dispositivos que podem ser ligados entre um switch e um equipamento de rede, que de forma não invasiva enviam uma cópia de todo o tráfego que passa por lá e enviam para um sistema de monitorização IDS. Um exemplo deste sistema é o que se encontra na Figura 5. Este tipo de recurso pode ser usado para cabos de cobre (UTP)3, regularmente utilizados em redes Ethernet como para fibras ópticas, onde por exemplo se pode monitorizar o tráfego ATM4. Neste caso utiliza-se um dispositivo chamado Optical Tap como podemos ver um exemplo na Figura 6. Figura 6 – Monitorização de pacotes em rede Ethernet, utilizando hubs ou wire tap. Figura 7 – Optical Tap. 3 Unshielded Twisted Pair ou Par Trançado sem Blindagem, usado em redes domesticas, taxas de 100Mbps, o mais barato ate distâncias de 100m. 4 Asynchronous Transfer Mode ou Modo de Transferência Assíncrono, onde a capacidade de transmissão, o tipo de tráfego e a qualidade de serviço são usados e quantificados. Port Mirror: Nos switches mais antigos esta prende-se como sendo a única opção no que à monitorização diz respeito. Esta forma consiste num efeito espelhado do tráfego de uma porta para uma outra, ou seja, permite a monitorização de um dispositivo por IDS. Esta implementação é feita no próprio switch, sendo uma forma baseada no wire tap. É um sistema caro no que à sua implantação diz respeito, embora hoje em dia existam bastantes alternativas que conseguem monitorizar mais segmentos em simultâneo, reduzindo assim o custo. O uso do Port Mirror é mais aconselhável na implantação de uma rede hierárquica como exemplificado na Figura 7. Figura 8- Switch com Port Mirror numa estrutura hierárquica. A implementação de um IDS numa rede apresenta sempre algumas dificuldades, desde as características do switch, o custo elevado, implementação avançada, etc. Por isso devemos ter em conta que a implementação de um serviço destes requer um estudo aprofundado e prévio, tendo em consideração os recursos, as limitações dos equipamentos, etc. 3.7 Snort (em arquitectura Linux e Windows) O Snort foi criado em 1998 por Martin Roesch, sendo um Sistema de Detecção de Intrusos(IDS) open source capaz de analisar em tempo real o tráfego de uma rede. Actualmente o Snort é um dos IDS mais usados em todo o mundo, tendo cerca de 400.000 utilizadores registados. 39 Pode ser usado para detectar um grande variedade de ataques, mas tem como 3 principais usos, sniffer de pacotes como tcpdump, um registo de pacotes (para análise do tráfego de rede) e um sistema de prevenção de intrusos bastante desenvolvido/amadurecido. Sendo Open Source e um IDS muito popular e desenvolvido, possui uma vasta comunidade, havendo assim bastante suporte para a revisão de bugs e testes. Havendo assim, muitos programadores e individualidades com o intuito de melhorar o Snort, sendo que é do interesse de todos os seus utilizadores que este seja o mais seguro e completo possível. Como a Comunidade Snort é "aberta" a todos os utilizadores é mais fácil e rápido detectar e corrigir erros e outras possíveis ameaças de segurança do que num ambiente "fechado". Como foi descrito em Capitulos anteriores, o Snort, como IDS que é (Sistema de detecção de intrusos) tem como finalidade inspeccionar toda a actividade de entrada e/ou saída de uma rede assim como identificar padrões suspeitos que possam indicar que uma determinada rede ou sistema está a ser vitima de uma invasão ou tentativa de invasão. Por vezes um IDS pode ser confundido com uma firewall, porque a firewall inspecciona o tráfego e restringe o mesmo baseada em regras especificas. O IDS avalia/analisa o tráfego para determinar se este é suspeito ou não e gera alertas baseados nessas análises ao tráfego[58, 59, 60, 61]. 3.7.1 Arquitectura/Funcionamento do Snort O libpcap é um aplicativo necessário para que o Snort processe/recolha informação, isto é, o libpcap é uma biblioteca externa ao Snort que captura pacotes para posteriormente os descodificar, suportando vários protocolos de nível 2, como ethernet, PPP e SLIP. Há medida que esses pacotes são descodificados são armazenados na estrutura de dados do Snort para futuramente serem analisados. Os pacotes vão sendo recolhidos e o Snort vai descodificando mediante o protocolo especifico do pacote em causa. O pacote de descodificadores é basicamente uma série de descodificadores em que cada um é destinado a descodificar um protocolo especifico. Há medida que os pacotes vão passando pelos respectivos descodificadores de protocolos, vai sendo criada uma estrutura de dados. Após esse armazenamento dos dados tratados pelo descodificador de pacotes, os dados ficam preparados para ser analisados pelo pré processador. Os pré processadores podem dividir-se em duas categorias. Podem ser usados para examinar os pacotes suspeitos ou modificar os pacotes para que estes sejam correctamente interpretados e analisados. Alguns ataques não são detectados através da sua assinatura, isto é, nem todos os ataques são detectáveis pelos mecanismos tradicionais, cabendo a estes pré processadores analisar a actividade suspeita. Estes pré processadores são indispensáveis para detectar possíveis ataques não convencionais. Por outro lado, os outros pré processadores são responsáveis pela normalização dos dados do tráfego para que o sistema de detecção possa eficientemente detectar as assinaturas do ataque. Com estes pré processadores evita-se que alguns ataques possam evadir-se do Snort enganando o sistema de detecção manipulando os padrões de tráfego. O sistema de detecção tem duas funções principais: utilizar as regras do Snort para analisar os ataques e detectar assinaturas de ataque, visto que o sistema de detecção constrói as suas assinaturas analisando as regras do Snort sendo que as regras só são carregadas quando o Snort inicia. As regras são carregadas e usadas mediante a ordem que o utilizador pretender, podendo o Snort ter o comportamento especifico para cada utilizador. As regras são compostas por duas partes: o cabeçalho da regra e a opção da regra. O cabeçalho da regra tem condições da assinatura, em que é possível especificar o protocolo, a origem, o endereço ip de destino, as portas e o tipo do registo. A opção da regra contém a assinatura real, assim como o nível de prioridade e alguma informação sobre o ataque. O sistema de detecção constrói uma árvore de decisão em lista ligada. Os nós da árvore testam cada pacote que entra no mecanismos de detecção. Por exemplo, um pacote ao chegar ao sistema de detecção é testado num dos nós para ver se corresponde a TCP. Se for, o pacote é passado para a parte da árvore que tem as regras TCP. O pacote é então testado para confirmar se corresponde a uma endereço de origem numa regra. Se corresponder, ele passa por todas as restantes regras. Este processo é repetido até que o pacote passe por todas as regras ou em caso negativo seja largado e o Snort não o capture. O Snort apenas testa um pacote após este coincidir com uma assinatura e por ordem sequencial, por isso torna-se imperativo organizar as regras para que as assinaturas mais maliciosas sejam carregadas primeiro. 41 O Snort recorre aos Plugins de saída para disponibilizar ao utilizador os dados processados pela ferramenta, tendo com único objectivo fornecer os dados/alertas para o utilizador. Alguns plugins são construídos unicamente para ler os dados do Snort e fazer output dos dados de forma mais compreensível e humana dos dados para o utilizador [58, 59, 60, 61]. Figura 9-Esquema da arquitectura do Snort. Capítulo 4 4 Implementação de um Honeypot Pretende-se, neste capítulo, descrever a implementação de um sistema de detecção de Botnets na rede do IPB. Este projecto começou (parte prática) pela instalação e configuração de dois computadores disponibilizados pelo IPB, bem com uma sala para realizar os testes e monitorização necessários à realização da tarefa proposta. Começámos por instalar sistemas operativos diferentes, mas usando os mesmos programas quando disponíveis no sistema utilizado, para assim analisarmos diferentes performances e condições de acesso na rede. De seguida apresentam-se todos os detalhes das máquinas usadas: Sistema Operativo Processador Memoria Disco IP Máscara Sub-Rede Gateway DNS MAC Hardware PC1 Microsoft Windows XP Professional Versão 2002 Service Pack 2 AMD Athlon™ 64 X2 Dual Core Processador 3800+ 2.00Ghz 1G 145G/149G 193.136.195.87 255.255.255.128 139.136.195.126 193.136.195.219 00-30-4F-14-A6-E8 Realtek RTL8139/810x Family Fast PC2 Linux Ubuntu 12.04 LTS Precise AMD Athlon™ XP 32 1.5GB 37GB 193.136.195.88 255.255.255.128 193136195126 00:0b:6ª:72:20:fe Tabela 5-Ficha técnica dos computadores utilizados. Depois de devidamente instalados e configurados os OS nas duas máquinas procedeu-se a uma análise de possíveis vulnerabilidades da máquina. Para executar esta tarefa usámos o LanGuard. Tentámos também sempre que possível usar os mesmos programas, de modo a que 43 se usá-se as mesmas funcionalidades nas duas máquinas de diferentes OS. Os programas utilizados em Windows foram: Nmap, LanGuard, Snort e Wireshark. Em ambiente Linux usou-se o Nmap, Wireshark, Snort e HoneyD. Após ultrapassada esta etapa, procedeu-se à fase de testes aos mesmos programas com vista a perceber-mos se os mesmos estavam configurados para com os propósitos propostos, realizados interna e exteriormente. Foram realizados testes esses como tentativa de invasão por ftp e telnet, subseven fomos percebendo e colmatando as falhas existentes bem como posteriormente o recurso a filtros para agrupar os dados que iam sendo recolhidos. 4.1 Implementação/Configuração do HoneyD Há inúmeras possibilidades para criar um Honeyd, desde a emulação de um sistema até centenas ou milhares de sistemas, sendo que cabe ao administrador do Honeyd decidir quantos sistemas precisa ou quer implementar. Para este trabalho, escolhemos usar 2 sistemas, um sistema windows 2000 e um sistema Linux Suse 8.0, como ilustra a imagem. Figura 10–HoneyD Implementado no Ubuntu 12.04 No anexo A.1 detalha-se o processo de instalação da honeynet. 4.2 Implementação/Configuração do Snort O snort pode ser implementado de várias formas ou em várias instâncias, isto é, usado numa honeynet real, pode ser (dezenas/centenas/milhares), apenas dependendo uma máquina apenas do ou até propósito várias da máquinas implementação, disponibilidade física (hardware etc), disponibilidade económica, necessidade, do administrador, etc. Para este trabalho, usamos as máquinas disponibilizadas pela ESTiG, com o Sistema Operativo Ubuntu 12.04 instalado e Sistema Operativo Windows XP. 4.3 Implementação/Configuração do Valhala Na implementação do Valhala usamos a versão mais recente(Versão 1.8) disponível no site oficial[55]. A figura 11 mostra o menu de configuração do Valhala assim como todos os serviços que esta ferramenta pode emular. Figura 11-Menu de configuração do Valhala. 45 4.4 Descrição dos cenários de teste Após termos as máquinas configuradas como pretendíamos assim como as configurações do Snort, HoneyD e Valhala como é descrito em anexos e nos capítulos anteriores, dedicamos algum tempo a testes. Em anexo (no anexo A.3) descrevemos o comportamento do HoneyD, isto é, dos 2 sistemas emulados pelo HoneyD, sendo que os testes que fizemos foram meramente para testar a funcionalidade do HoneyD assim como do Snort. Após o término dos testes e antes de se dar início à recolha de dados para posterior tratamento para o Projecto, foram limpos todos os logs tanto do Snort como do HoneyD, de modo que apenas existissem dados reais e fidedignos. 4.5 Análise de Resultados 4.5.1 Recolha de dados no HoneyD Durante o período de captura de dados, o HoneyD foi registando informações sobre os vários e diversos ataques que foi sendo sujeito. O log do HoneyD foi guardado no ficheiro /var/log/honeypot/honeyd.log. No anexo A.4 existe uma breve descrição do log, para melhor compreender os dados recolhidos pelo HoneyD. Figura 12-HoneyD em funcionamento, informação guardada no honeyd.log. 4.5.1.1 Ferramenta usada na análise dos dados do Honeyd Como complemento à análise de dados do HoneyD usamos a ferramenta Honeydsum, que como já foi mencionado no capitulo anterior organiza os dados do log e apresenta esses mesmo dados sobre a forma de gráficos (gráficos tipo coluna ou circular), tabelas e legendas. 4.5.2 Análise dos dados com o HoneyD Na Figura 13 estão registadas as ligações que foram estabelecidas com a nossa honeynet, sendo 10066 o numero total de ligações nos 2 hosts virtuais, a máquina Microsoft Windows 2000 Server SP3 (193.136.195.84) e a máquina Linux 2.4.18 (Suse) (193.135.195.85). É possível concluir que dos protocolos disponíveis (TCP, UDP e ICMP) o protocolo TCP foi o mais requisitado ao longo do período de recolha de dados. Este protocolo também é o mais requisitado porque é alberga o maior número de serviços nos nossos 2 hosts emulados. Figura 13–Ligações recolhidas pelo Honeyd. Na Figura 14 podemos ver as ligações estabelecidas na máquina Windows e na máquina Linux, neste caso, a máquina Linux teve mais ligações que a máquina Windows, talvez por a máquina Linux em questão ter mais serviços disponíveis sendo que a mesma possui o seviço telnet. 47 Figura 14–Número de ligações por cada honeypot. A Figura 15 é composta por uma tabela que permite visualizar os IP's, portas usadas e número de ligações assim como um gráfico circular que apresenta as ligações e portas mais solicitadas relativas à máquina Windows (193.136.195.84) sendo que a tabela é apenas uma parte devido ao seu tamanho. Figura 15-Registo do uso de portas na máquina 193.136.195.84. Na máquina Windows com o IP 193.135.195.84, foi possível ver e quantificar as tentativas de ligações às respectivas portas, sendo que esta teve um total de 4279 ligações, num 456 IP's distintos e 220 portas diferentes, como pode é visível na Figura 16. Figura 16–Número de ligações, IP's e portas da máquina 193.136.195.84. Na Figura 17 pode ver-se relativamente à máquina Linux (193.136.195.85) a tabela com os IP's, portas usadas e número de ligações, estando apenas uma parte da tabela devido ao seu tamanho considerável, e um gráfico circular relativo as portas e ligações efectuadas sobre a máquina Linux. Figura 17–Registo do uso de portas na máquina 193.136.195.85. Como sucedeu com a máquina Windows, também para a máquina Linux foi possível quantificar as tentativas de ligações às portas, sendo registado um total de 5787 ligações, de 445 IP's em 226 portas diferentes como ilustra a Figura 18. Figura 18 -Número de ligações, IP's e portas da máquina 193.136.195.85. 49 A Figura 19 corresponde aos 10 endereços de IP que mais ligações estabeleceram com o nossos honeypots, tendo neste caso concreto o endereço de IP que mais interagiu com a nossa honeynet um total de 528 ligações. Figura 19–Top 10 de ligações estabelecidas com a honeynet. Dados estes IP's recolhidos, resolvemos aprofundar um pouco mais e tentar descobrir de que parte do mundo surgiram os ataques. 243535 MaxMind , onde inserimos os endereços IP's no site e obtivemos as suas localizações como é demonstrado na Tabela 6. 2 43535 Usamos o serviço GeoIP disponível pela http://www.maxmind.com/ Rank IP de Origem Número de ligações Cidade País 1 173 244 202 172 528 Utah USA 2 78.38.80.243 438 3 190.116.13.19 256 Lima Peru 4 75.127.65.186 217 Atlanta USA 5 23.29.118.150 180 Austin USA 6 222171143154 162 Harbin China 7 79.106.15.133 130 8 113.28.33.13 120 Central District Hong Kong 9 212.65.131.161 96 Belfast Northern Ireland 10 210.68.174.131 95 Taipei Taiwan Irão Albania Tabela 6-Origem e quantidade de ligações solicitadas. Na Figura 20 podemos ver os recursos que mais foram solicitados durante o período de recolha de dados. A maioria dos recursos solicitados corresponde ao previamente definido para as personalidades do Honeyd (como demonstra o anexo A3), sendo que algumas outras portas foram solicitadas apesar de estas não estarem definidas nas máquinas emuladas. Figura 20– Top 10 de recursos mais solicitados. As portas e os respectiv os serviços são definidos oficialme nte pela 51 IANA13425224 e para melhor compreender a natureza destes ataques fizemos uma pesquisa de modo que possamos entender quais os alvos mais frequentes destes ataques. 1- 22/tcp - The Secure Shell (ssh) Protocol, usado para logins seguros, trnaferência de ficheiros (scp, sftp). 2- 445/tcp - Microsoft-DS Active Directory, partilhas do Windows assim como Microsoft-DB SMB partilha de ficheiros. 3- 23/tcp -Telnet Protocol- comunicação não criptografada de texto 4- 110/tcp – Post Office Protocol v3 (POP3) – Protocolo de email, sendo a par do IMAP um dos mais protocolos que prevalece para o envio e recepção de email. 5- 80/tcp - Hypertext Tranfer Protocol (HTTP) 6- 1433/tcp - MSSQL (Microsoft SQL Server database management system) Server 7- 3/icmp 8- 8080/tcp- Substituto de HTTP, geralmente usado para web proxy, servidor em cache ou para correr um servidor web sem privilégios de administrador. 9- 4382/udp10- 8/icmp- Echo request. Após esta leitura e análise é possivel concluir que o serviço SSH é o mais solicitado, seguindo-se o serviço de partilha do Microsoft Windows e o serviço por Telnet. A Figura 21 contém um registo por hora dos ataques que foram sendo registados ao longo dos dias onde se pode verificar que a hora em que os honeypots registaram mais actividade foi no período das 11:00h, sendo que nas restantes horas fai mantido um padrão constante de ataques. 1 3425224 http://www.iana.org/ Figura 21– Registo de ligações por hora. 4.5.3 Re col ha de dados no Valhala 53 4.5.4 4.5.5 4.5.6 4.5.7 Capítulo 5 5 Conclusões e trabalho futuro Antes da elaboração deste projecto, o conhecimento que possuíamos sobre botnets e honeynets era bastante reduzido. Depois de muita pesquisa e da implementação de honeypots, concluímos que o uso de honeynets tem sido crescente, e que terá um uso cada vez maior no futuro. Isso deve-se ao facto de os profissionais da área sentirem uma necessidade crescente no uso destas ferramentas de modo que possam proteger o mais possível as suas redes, monitorizando assim os ataques a que são sujeitos assim como falhas nos sistemas computacionais. Uma honeynet, em conjunto com algumas ferramentas de segurança, poderá ser uma grande aliada na defesa de redes e sistemas computacionais, sendo que quanto maior se torna a globalização da Internet assim como o crescente crescimento do conhecimento em informática por parte da população em geral, faz com que os sistemas e as redes estejam hoje em dia mais sujeitas a ataques ou tentativas de explorar fragilidades ou brechas de segurança nas redes e sistemas computacionais. Apresentamos as honeynets o mais sucintamente possível, assim como a sua utilização e implementação em vários ambientes. Usamos algumas ferramentas de modo a monitorizar uma honeynet, criamos ambientes distintos para que obtivéssemos mais fontes de dados, isto é, para o projecto não ser limitado a apenas uma ferramenta e/ou a apenas um sistema operativo. Depois de completar o capitulo 4, finalizamos as conclusoes com mais 2 ou 3 paragrafos 5.1 Trabalho futuro, ideias e sugestões O trabalho futuro deve seguir a linha que foi traçada aquando a elaboração deste projecto, sempre com o pensamento e motivação necessária para que cada dia seguinte seja mais produtivo e mais eficaz tanto na recolha de dados, na monitorização das honeynets assim como na defesa das nossas redes e dos nossos sistemas computacionais, sempre com o intuito de fazer com que a honeynet seja o mais real possível, que possa responder diariamente aos problemas (isto é, ataques, tentativas de ataques, assim como qualquer tentativa de favorecimento ilícito etc, por parte de agentes externos nas redes e/ou sistemas computacionais) com maior eficácia e segurança. 55 Assim, seria ideal ampliar a honeynet, para ser o mais parecido possível com uma topologia real, aumentando assim as possibilidades de a honeynet ser atacada, além de tornar a honeynet mais próxima de uma topologia real, ajudando assim a ludibriar possíveis invasores mais experientes. Os honeypots implementados foram simples, sendo que num trabalho futuro poderia ser aumentado o grau de complexidade da recolha dos dados, por exemplo, no Snort poderíamos optimizar as regras de modo que o honeypot seja mais eficaz e seguro. No honeyd, os scripts emulados poderiam ser mais complexos, de modo que tenham comportamentos mais similares aos sistemas reais. Apesar dos outputs das honeynet (das ferramentas usadas nas honeynet) terem outputs bastante simples, seria benéfico se houvesse um output mais “standard” , em que todos os dados recolhidos pelas várias ferramentas existentes fossem igualmente tratados e unidos num só output. Seria benéfico para os administradores de redes, seria assim possível economizar o tempo despendido na análise dos dados, assim como minimizado o erro humano na análise de dados, podendo até processar ataques de um modo mais sistematizado. Os honeynets não impedem que os sistemas sejam atacados (a função das honeynets não é impedir os ataques mas sim estudá-los como foi descrito nos capítulos anteriores) mas podem ser muitos úteis porque podem proporcionar aos administradores informações valiosos dos habitos dos invasores assim como estes atacam e quais os métodos usados nesses ataques, auxiliando os administradores para que estes possam ter uma resposta e politicas de segurança mais competentes. Conhecer o inimigo proporciona uma maior defesa. 57 Referências bibliográficas [1]Exame Informática, 2010, acedido aqui: http://exameinformatica.sapo.pt/noticias/internet/2012/07/19/foidesligada-uma-das-maiores-botnets-de-spam-do-mundo [2]Gráficos e texto do shadowserver ,31 aqui:http://www.shadowserver.org/wiki/ de Dezembro de 2005 , acedido [3]Pinzon, Scott;Nachreiner, Corey (2009) - Understanding and Blocking the New Botnets [4] Moreira, André, Segurança Informática - Introdução, Outubro de 1998, http://www.dei.isep.ipp.pt/~andre/documentos/seguranca-introducao.html acedido em [5] Félix, Pedro, Notas para a disciplina de “Segurança Informática”, Março de 2006, acedido em www.cc.isel.ipl.pt/pessoais/pedrofelix/SgI/s0506v/introdução.ppt [6] Lhamas, [7] Costa, Adriano, Redes de Computadores II (Conceitos de www.dei.isep.ipp.pt/~lhamas/CONCSEGURANCA.doc António, Segurança Informática em Redes, www2.ufp.pt/~lmbg/formacao/Costa_seguranca. [8] Kioskea, [9] Microsoft, Novembro Introdução à segurança Informática, Setembro http://pt.kioskea.net/contents/secu/secuintro.php3 Vírus informáticos: descrição, prevenção http://support.microsoft.com/kb/129972/pt Segurança) e de de , 1999, 2009, recuperação, 2012, acedido em acedido em acedido acedido em em [10] Panda Security, 2012, acedido em http://www.pandasecurity.com/portugal/homeusers/security-info/classicmalware/trojan/ [11] [12] Thigpen, Angela, Trojan Horse, Abril de 2010, adecido http://www.symantec.com/security_response/writeup.jsp?docid=2004-021914-2822-99 Pereira, Ana Paula, Tecmundo, O que é um Trojan?, Agosto de http://www.tecmundo.com.br/seguranca/196-o-que-e-um-trojan-.htm 2008, acedido em em [13] Honeycutt, Jerry, Como Proteger o seu Computador do Spyware e do Adware, Outubro de 2004, acedido em http://www.microsoft.com/brasil/windowsxp/using/security/expert/honeycutt_spyware.mspx [14] Martins, Elaine, Tecmundo, Setembro 2008, acedido em http://www.tecmundo.com.br/spyware/271-o-quee-adware-.htm [15] Shetty, [16]Panda Security, 2012, acedido info/cybercrime/spyware/ [17]Xavier, [18] Sachin, Introduction to Spyware Keyloggers, Novembro de 2010, http://www.symantec.com/connect/articles/introduction-spyware-keyloggers em em http://www.pandasecurity.com/portugal/homeusers/security- Andressa,Tecmundo, O que é Spyware?, Julho de http://www.tecmundo.com.br/spyware/29-o-que-e-spyware-.htm 2008, Banco BPI, 2012 – Phishing (medidas http://www.bancobpi.pt/pagina.asp?s=1&a=40&p=96&opt=p de [19]Kaspersky, acedido How to detect and remove unknown rootkits, http://support.kaspersky.com/viruses/solutions?qid=208283366 2012, acedido em protecçao); acedido em 59 [20]Haumana, Origin and Current Meaning of Rootkit , Junho http://forum.kasperskyclub.com/index.php?showtopic=8676 [21]symantec, Windows Rootkit Overview, 2005, https://www.symantec.com/avcenter/.../windows.rootkit.overview.pdf 2012, acedido acedido em em [22]Barwinski, Luísa, Tecmundo, Junho de 2009, acedido em http://www.tecmundo.com.br/antivirus/2174-oque-e-rootkit-.htm [23]Panda Security, acedido em http://www.pandasecurity.com/homeusers/downloads/docs/product/help/is/2012/po/690.htm [24]Artigonal, Agosto de 2011, acedido em http://www.artigonal.com/seguranca-artigos/voce-sabe-o-que-ebackdoor-5084941.html [25]Entenda o que é um backdoor, acedido em http://www.crimespelainternet.com.br/entenda-o-que-umbackdoor/ [26]Linha defensiva, Dicionário, http://www.linhadefensiva.org/dicionario/ [27] spamhaus, The Definition of Spam, acedido em http://www.spamhaus.org/consumer/definition/ [28] Netfolio, O Que é o SPAM?, acedido em http://www.netfolio.pt/spam [29] Diário Digital, Julho de 2012, acedido em http://diariodigital.sapo.pt/news.asp?id_news=583395 [30] Machado, Jonathan D, Tecmundo, Junho de 2012, acedido em http://www.tecmundo.com.br/spyware/1016o-que-e-keylogger-.htm [31] Wikipédia, Junho de 2012, acedido em http://pt.wikipedia.org/wiki/Keylogger [32] Pinto, Pedro, Segurança Informática – Sabe o que é Ransomware?, Maio de 2012, acedido em http://pplware.sapo.pt/windows/software/seguranca-2/segurana-informtica-sabe-o-queransomware/ [33] Karas, Eduardo Vieira, Ransomware: conheça o invasor que sequestra o computador, Setembro de 2011, acedido em http://www.tecmundo.com.br/virus/13275-ransomware-conheca-o-invasor-quesequestra-o-computador.htm [34]Falliere, Nicolas; 2010 - Stuxnet Introduces the First Known Rootkit for Industrial Control Systems; Acedido aqui: http://www.symantec.com/connect/blogs/stuxnet-introduces-first-knownrootkit-scada-devices [35]Lemke, Camilla; 2010 - Vulnerabilidade Explorada por Stuxnet Descoberta há Mais de um Ano, acedido em http://under-linux.org/vulnerabilidade-explorada-por-stuxnet-descoberta-ha-mais-de-um-ano1729/ [36]Falliere, Nicolas; 2010 - Exploring Stuxnet’s PLC Infection Process, acedido http://www.symantec.com/connect/blogs/exploring-stuxnet-s-plc-infection-process em [37] Reuters Agency, 24 Setembro 2010 - UPDATE 2-Cyber attack appears to target Iran-tech firms, acedido em http://www.reuters.com/article/2010/09/24/security-cyber-iran-idUSLDE68N1OI20100924 [38]Aljazeera Agency, 2010 Cyber attack 'targeted Iran', acedido http://www.aljazeera.com/news/middleeast/2010/09/2010924201618637799.html em [39] Microsoft, O que é Malware?, 2012, acedido http://www.microsoft.com/pt-br/security/resources/malwarewhatis.aspx [40] Microsoft, O que é uma botnet?, 2012, pt/security/resources/botnet-whatis.aspx acedido em http://www.microsoft.com/pt- [41]G. Gu, P. Porras, V. Yegneswaran, M. Frog, and W. Lee. BotHunter: Detecting malware infection through ids-driven dialog correlation. In Proceedings of the 16th USENIX Security Symposium (Security’07), Boston, MA, August 2007 [42]G. Gu, R. Perdisci, junjie Zhang, and W. Lee. BotMiner: Clustering analysis of network traffic for protocoland structure-independent botnet detection. In Proceedings of the 17th USENIX Security Symposium (Security’08), San Jose, CA, July 2008 [43]A. Karasaridis, B. Rexroad, and D. Hoeflin. Wide-scale botnet detection and characterization. In First Workshop on Hot Topics in Understanding Botnets (HotBots’07), Cambridge, MA, April 2007 [45]M. Akiyama, T. Kawamoto, M. Shimamura, T. Yokoyama, Y. Kadobayashi, and S. Yamaguchi. A proposal of metrics for botnet detection based on its cooperative behavior. In Proceedings of the 2007 International Symposium on Applications and the Internet Workshops(SAINT-W’07), Washington, DC, May 2007. [46] A. Broadsky and D. Broksky. A distributed content independent method for spam detection. In First Workshop on Hot Topics in Understanding Botnets (HotBots’07), Cambridge, MA, April 2007. [47] Y. Xie, F. Yu, K. Achan, R. Panigrahy, G. Hulten, and I. Osipkov. Spamming Botnets: Signatures and characteristics. In Proceedings of ACM SIGCOMM’08, Seattle, WA, August 2008 [48] M. Bailey, E. Cooke, F. Jahanian. A Survey of Botnet Technology And Defenses [49] Spitzner, L. Maio 2003 – Honeypots: Definitions and Values Of Honeypots. http://www.trackinghackers.com/papers/honeypots.html [50] Spitzner, Lance. Abril de 2009,Know Your Enemy: Honeynets. Honeynet Project. 2006, acedido em http://old.honeynet.org/papers/honeynet/ [51] Hoepers, Cristine and Steding-Jessen, Klaus and Chaves, Marcelo, Agosto de 2009, Honeypts e Honeynets: Definições e Aplicações, acedido em http://www.cert.br/docs/whitepapers/honeypots-honeynets/ [52] Provos, Niels, Devellopments os the Honeyd http://niels.xtdnet.nl/papers/honeyd.pdf [53] Provos, Niels, “Virtual Honeypots”, The http://niels.xtdnet.nl/papers/honeynet/ Honeynet Niels, Developments of http://www.honeyd.org/ Virtual [54] Provos, the Honeyd Virtual Honeypot. Project, Honeypot 2007, 2003,, Julho acedido em acedido em 2008,acedido em [55] Assunção, Marcos Flávio,Valhala Honeypot- Free OpenSource Honeypot for the Windows system, acedido em http://valhalahoneypot.sourceforge.net/ [56] Inácio, Pedro. 2010 – Sistema de Detecção de Intrusões, Segurança Informática (aula 9), UBI – Covilhã, http://www.di.ubi.pt/~inacio/SI20102011/Aula_9_Lecture_9.pdf [57] Silveira, Klaubert. 24 novembro de 2000 – Boletim bimestral sobre tecnologia de redes, Volume 4, numero 6, Rede Nacional de Ensinno e Pesquisa, http://www.rnp.br/newsgen/0011/ids.html [58] SnortIDS, 2010, acedido em https://help.ubuntu.com/community/SnortIDS [59] Gaur, Nalneesh, Snort: Planning IDS for Your Enterprise, Julho de 2001, acedido em http://www.linuxjournal.com/article/4668 [60] Roesch, Martin, Snort 3.0 Architecture Series Part 1: Overview, Novembro de 2007, acedido em http://securitysauce.blogspot.pt/2007/11/snort-30-architecture-series-part-1.html [61] Snort, 2010, acedido em http://www.snort.org/ 61 Anexo A Instalação do Honeypot A.1 Instalação do HoneyD no Ubuntu 12.04 1º Primeiramente instalamos todos os pacote necessários para utilizar o nosso HoneyD apt-get update apt-get upgrade apt-get install gcc libpcap-dev libreadline-dev libzip-dev build-essential eglibc-source htop apache2 php5 netmask libgd-graph-perl libgd-graph3d-perl libnet-netmask-perl libnetaddrip-perl libnetwork-ipv4addr-perl honeyd gawk Nota: Optamos por simplificar a instalação dos pacotes, isto é, usamos o mesmo comando para instalar todos os pacotes, no entanto pode usar 'apt-get install' para cada pacote separadamente. 2º Editamos as configurações de rede da maquina(Ubuntu 12.04) nano /etc/network/interfaces -e alteramos para: auto eth0 1 iface eth0 inet static address 193.136.195.88 netmask 255.255.255.128 network 193.136.195.0 broadcast 193.136.195.128 gateway 193.136.195.126 -de seguida guardamos o ficheiro e reiniciamos a interface de rede /etc/init.d/networking restart 3º Configurar o Honeyd -Criamos directorios para o mailstore e honeydsum mkdir /tmp/mailstore mkdir /var/www/honeydsum 4º Dar permissão de escrita ao directório onde irão ser armazenados os logs do honeyd chown -R nobody:nogroup /var/log/honeypot -Por razões de acessibilidade, criar links simbólicos para facilitar as configurações e evitar erros ln -s /usr/share/honeyd/scripts/honeydsum-v0.3 /etc/honeypot/honeydsum-v0.3 ln -s /usr/share/honeyd/scripts /etc/honeypot/scripts ln -s /usr/share/honeyd/scripts /scripts -Para uma boa pratica de informática, fazer backup dos arquivos de configurações originais do honeyd cp /etc/honeypot/honeyd.conf /etc/honeypot/honeyd.conf.ORIG cp /etc/honeypot/xprobe2.conf /etc/honeypot/xprobe2.conf.ORIG 5º Editar o ficheiro xprobe2.conf para garantir as respostas de rede de alguns scans nano /etc/honeypot/xprobe2.conf -adicionar as seguintes instruções no final do ficheiro: fingerprint { OS_ID = "Linux 2.4.18" #Module A icmp_echo_code = !0 icmp_echo_ip_id = !0 icmp_echo_tos_bits = !0 icmp_echo_df_bit = 0 icmp_echo_reply_ttl = <255 #Module B icmp_timestamp_reply = y icmp_timestamp_reply_ttl = <255 #Module C icmp_addrmask_reply = n icmp_addrmask_reply_ttl = <255 #Module D icmp_info_reply = n icmp_info_reply_ttl = <255 3 #Module E icmp_unreach_echoed_dtsize = >64 icmp_unreach_reply_ttl = <255 icmp_unreach_precedence_bits = 0xc0 icmp_unreach_df_bit = 0 icmp_unreach_echoed_udp_cksum = OK icmp_unreach_echoed_ip_cksum = OK icmp_unreach_echoed_ip_id = OK icmp_unreach_echoed_total_len = OK icmp_unreach_echoed_3bit_flags = OK } fingerprint { OS_ID = "Microsoft Windows 2000 Server SP3 or Windows XP Professional SP1" #Module A icmp_echo_code = 0 icmp_echo_ip_id = !0 icmp_echo_tos_bits = 0 icmp_echo_df_bit = 1 icmp_echo_reply_ttl = < 128 #Module B icmp_timestamp_reply = y icmp_timestamp_reply_ttl = <128 #Module C icmp_addrmask_reply = n icmp_addrmask_reply_ttl = <128 #Module D icmp_info_reply = n icmp_info_reply_ttl = <128 #Module E #IP_Header_of_the_UDP_Port_Unreachable_error_message icmp_unreach_echoed_dtsize = 8 icmp_unreach_reply_ttl = <128 icmp_unreach_precedence_bits = 0 icmp_unreach_df_bit = 0 #Original_data_echoed_with_the_UDP_Port_Unreachable_error_message icmp_unreach_echoed_udp_cksum = OK icmp_unreach_echoed_ip_cksum = OK icmp_unreach_echoed_ip_id = OK icmp_unreach_echoed_total_len = OK icmp_unreach_echoed_3bit_flags = OK } 6º Editar o ficheiro honeyd.conf nano /etc/honeypot/honeyd.conf -Apagar todo o conteúdo do ficheiro e copiar as instruções seguintes: ### Standard Windows 2000 computer create win2k set win2k personality "Microsoft Windows 2000 Server SP3 or Windows XP Professional SP1" set win2k default tcp action reset set win2k default udp action reset 5 set win2k default icmp action block set win2k uptime 3567 add win2k tcp port 21 "sh /etc/honeypot/scripts/win32/win2k/msftp.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 25 "sh /etc/honeypot/scripts/win32/win2k/exchange-smtp.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 80 "sh /etc/honeypot/scripts/win32/win2k/iis.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 110 "sh /etc/honeypot/scripts/win32/win2k/exchange-pop3.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 143 "sh /etc/honeypot/scripts/win32/win2k/exchange-imap.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 389 "sh /etc/honeypot/scripts/win32/win2k/ldap.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 5901 "sh /etc/honeypot/scripts/win32/win2k/vnc.sh $ipsrc $sport $ipdst $dport" add win2k udp port 137 proxy $ipsrc:137 add win2k udp port 138 proxy $ipsrc:138 add win2k udp port 445 proxy $ipsrc:445 add win2k tcp port 137 proxy $ipsrc:137 add win2k tcp port 138 proxy $ipsrc:138 add win2k tcp port 139 proxy $ipsrc:139 add win2k tcp port 445 proxy $ipsrc:445 set win2k ethernet "00:00:24:ab:8c:12" bind 193.136.195.84 win2k ### Linux Suse 8.0 template create suse80 set suse80 personality "Linux 2.4.18" set suse80 default tcp action reset set suse80 default udp action block set suse80 default icmp action open set suse80 uptime 79239 add suse80 tcp port 21 "sh /etc/honeypot/scripts/unix/linux/suse8.0/proftpd.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 22 "sh /etc/honeypot/scripts/unix/linux/suse8.0/ssh.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 23 "sh /etc/honeypot/scripts/unix/linux/suse8.0/telnetd.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 25 "sh /etc/honeypot/scripts/unix/linux/suse8.0/sendmail.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 79 "sh /etc/honeypot/scripts/unix/linux/suse8.0/fingerd.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 80 "sh /etc/honeypot/scripts/unix/linux/suse8.0/apache.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 110 "sh /etc/honeypot/scripts/unix/linux/suse8.0/qpop.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 515 "sh /etc/honeypot/scripts/unix/linux/suse8.0/lpd.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 3128 "sh /etc/honeypot/scripts/unix/linux/suse8.0/squid.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 8080 "sh /etc/honeypot/scripts/unix/linux/suse8.0/squid.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 8081 "sh /etc/honeypot/scripts/unix/linux/suse8.0/squid.sh $ipsrc $sport $ipdst $dport" add suse80 udp port 53 proxy 8.8.8.8:53 add suse80 udp port 514 "sh /etc/honeypot/scripts/unix/linux/suse8.0/syslogd.sh $ipsrc $sport $ipdst $dport" 7 set suse80 ethernet "00:0b:24:ab:8c:14" bind 193.136.195.85 suse80 7º Modificar o ficheiro base.sh para poder gravar os logs cd /scripts/misc/ nano base.sh - modificar a linha do ficheiro LOG="/var/log/honeyd.txt" para LOG="/var/log/honeypot/servicos.log" 8º Modificar os ficheiros da máquina Windows cd /etc/honeypot/scripts/win32/win2k/ -no ficheiro iis.sh -substituir a linha “. scripts/misc/base.sh ” por “. /scripts/misc/base.sh ” -substituir a linha LOG="/var/log/honeyd/web.log" para “LOG="/var/log/honeypot/web.log" -nos ficheiro msftp.sh, exchange-smtp.sh, exchange-pop3.sh, exchange-imap.sh, ldap.sh, vnc.sh. -substituir a linha “. scripts/misc/base.sh ” por “. /scripts/misc/base.sh “ 9º Modificar os ficheiros da máquina Linux cd /etc/honeypot/scripts/unix/linux/suse8.0 -no ficheiro apache.sh, squid.sh -substituir a linha “. scripts/misc/base.sh ” por “. /scripts/misc/base.sh ” -substituir a linha LOG="/var/log/honeyd/web.log" para LOG="/var/log/honeypot/web.log -nos ficheiro proftpd.sh, ssh.sh, telnetd.sh, sendmail.sh, fingerd.sh, qpop.sh, cyrus-imapd.sh, lpd.sh, syslogd.sh -substituir a linha “. scripts/misc/base.sh ” por “. /scripts/misc/base.sh “ Nota: para editar os ficheiros executamos o nano, por exemplo, nano iis.sh. Sendo que para editar os restantes ficheiros apenas mudamos o nome do respectivo ficheiro. 10º Iniciar o Honeyd honeyd -p /etc/honeypot/nmap.prints -0 /etc/honeypot/pf.os -x /etc/honeypot/xprobe2.conf -l /var/log/honeypot/honeyd.log -i eth0 -f /etc/honeypot/honeyd.conf 193.136.195.84- 193.136.195.85 Nota: Quando editamos o ficheiro honeyd.conf definimos o IP da máquina windows como sendo 193.136.195.84 e o IP da máquina Linux como sendo 193.136.195.85. Parâmetros: # honeyd [-p] [-x] [-l] [-i] [-f] <net> -p Habilita o modo para as mensagens de evento libpcap. Não necessário para hosts Windows OS. -x Permite o Honeyd responder a ICMP impressões digitais de ferramentas usando o ficheiro da base de dados Xprobe2. A base de dados do Xprobe2 é chamada Xprobe2.conf no Honeyd. -l Cria ou envia mensagens para um ficheiro de log local com o nome especifico e o local. -i Define a interface de rede que deve escutar o Honeyd; por exemplo -i eth0. Este é um parâmetro obrigatório. -f Designa o nome do ficheiro de configuração do Honeyd e localização. 9 <net> Define um ou mais endereços IP a que Honeyd responderá. Isso pode ser um único endereço IP ou um intervalo (por exemplo, 193.136.195.84-193.136.195.85) ou CIDR notação (por exemplo, 193.136.195.0/24). 11º Fazer com que o honeyd passe a responder as requisições ARP redireccionando os ips para o host do honeyd farpd -i eth0 193.136.195.84-193.136.195.85 12º Verificar o log do Honeyd tail -f /var/log/honeypot/honeyd.log 13º Fazer testes na maquina real para os ips configurados no honeyd -Utilizamos Ping 193.136.195.84 e Ping 193.136.195.85 para fazer ping através da maquina real, sendo que a maquina 193.136.195.84 não responderá porque está configurada para não responder a solicitações ICMP. Ping 193.136.195.84 telnet 193.136.195.84 25 telnet 193.136.195.85 ftp 193.136.195.85 -Acesso via broswer http://193.136.195.85 14º Analisar os dados -abrir outra consola para analisar os dados do log do honeyd utilizando o honeydsum /scripts/honeydsum-v0.3/honeydsum.pl /var/log/honeypot/honeyd.log -c /scripts/honeydsum-v0.3/honeydsum.conf -Para obter uma visualização mais simples, gerou-se uma saída html, com gráficos e estatísticas. Para isso temos de alterar o ficheiro honeysum.conf. nano /scripts/honeydsum-v0.3/honeydsum.conf -no ficheiro honeysum.conf substituir a linha "html_file" por "html_file=/var/www/honeydsum/index.html" -Executamos o mesmo comando utilizado para mostrar a analise de log do honeyd acrescentando apenas o parâmetro -w /scripts/honeydsum-v0.3/honeydsum.pl -c /scripts/honeydsum-v0.3/honeydsum.conf -w /var/log/honeypot/honeyd.log -No browser digitamos o endereço abaixo indicado para ter acesso aos dados gráficos e estatísticos. http://193.135.195.88/honeydsum/ A.2 Instalação do Snort no Ubuntu 12.04 1º Primeiramente instalamos todos os pacote necessários para utilizar o Snort -Instalar o PCRE e o Libdnet assim como outros pacotes básicos apt-get install libdnet libdnet-dev libpcre3 libpcre3-dev gcc make flex byacc bison linuxheaders-generic libxml2-dev libdumbnet-dev zlib1g zlib1g-dev -y Nota: Optamos por simplificar a instalação dos pacotes, isto é, usamos o mesmo comando para instalar todos os pacotes, no entanto pode usar 'apt-get install' para cada pacote separadamente. 2º Editamos as configurações de rede da maquina(Ubuntu 12.04) 11 nano /etc/network/interfaces -e alteramos para: auto eth0 iface eth0 inet static address 193.136.195.88 netmask 255.255.255.0 network 193.136.195.0 broadcast 193.136.195.255 gateway 193.136.195.126 -de seguida guardamos o ficheiro e reiniciamos a interface de rede /etc/init.d/networking restart Nota: este passo já foi elaborado na instalação e implementação do HoneyD não sendo necessário repeti-lo. 3º Criar pasta para proceder à instalação do Snort e respectivos aplicativos. mkdir /usr/local/src/snort -mudar para a pasta criada cd /usr/local/src/snort 4º Proceder ao download e instalação do Snort e dos outros programas necessários ao seu funcionamento -Fazer download e instalar o libpcap wget http://www.tcpdump.org/release/libpcap-1.2.1.tar.gz tar zxvf libpcap* cd libpcap* ./configure && make && make install ldconfig -v -Fazer download e instalar o DAQ cd /usr/local/src/snort wget http://www.snort.org/downloads/1408 -O daq.tar.gz tar zxvf daq.tar.gz cd daq* ./configure && make && make install ldconfig -v -Fazer download e instalar o DAQ cd /usr/local/src/snort wget http://www.snort.org/downloads/1408 -O daq.tar.gz tar zxvf daq.tar.gz cd daq* ./configure && make && make install ldconfig -v -Fazer download e instalar o Snort cd /usr/local/src/snort wget http://www.snort.org/downloads/1538 -O snort.tar.gz tar zxvf snort.tar.gz cd snort-2* ./configure --prefix /usr/local/snort --enable-ipv6 --enable-gre --enable-mpls --enabletargetbased --enable-decoder-preprocessor-rules --enable-ppm --enable-perfprofiling -- 13 enable-zlib --enable-active-response --enable-normalizer --enable-reload --enable-react -enable-flexresp3 make && make install -Criar um Utilizador e Grupo para o Snort groupadd snort useradd -g snort snort -Criar links para os ficheiros do snort ln -s /usr/local/snort/bin/snort /usr/sbin/ ln -s /usr/local/snort/etc /etc/snort -Fazer download das regas do Snort para /usr/local/src/snort. Nota:É necessário registar no site do Snort para poder fazer o download das regras, sendo que existe uma versão paga das regras. Neste projecto usamos a versão grátis das regras. -Extrair as regras para a pasta cd /usr/local/snort tar zxvf /usr/local/src/snort/snortrules-snapshot-2* 5º Configurar o ficheiro snort.conf com o IP da nossa máquina -Definar o IP 193.136.195.88 da máquina nano /usr/local/snort/etc/snort.conf ipvar HOME_NET 193.136.195.88 -Modificar EXTERNAL_NET var EXTERNAL_NET !$HOME_NET Nota:Admitimos que tudo o que não for HOME_NET é externo. 6º Configurar as regras dinâmicas do Snort -Criar links para osficheiros das regras dinamicas e pastas Ln-s/usr/local/snort/lib/snort_dynamicpreprocessor /usr/local/lib/snort_dynamicpreprocessor ln -s /usr/local/snort/lib/snort_dynamicengine /usr/local/lib/snort_dynamicengine ln -s /usr/local/snort/lib/snort_dynamicrules /usr/local/lib/snort_dynamicrules -Dar permissões ao Snort chown -R snort:snort /usr/local/snort -Comentar ou apagar as seguintes linhas do ficheiro snort.conf. nano /usr/local/snort/etc/snort.conf #preprocessor reputation: \ # memcap 500, \ # priority whitelist, \ # nested_ip inner, \ # whitelist $WHITE_LIST_PATH/white_list.rules, \ # blacklist $BLACK_LIST_PATH/black_list.rules -Na zona de declaração do Step #6: Configure output plugins" adicionar: # unified2 # Recommended for most installs output unified2: filename snort.log, limit 128 15 -Criar uma pasta para as regras dinamicas mkdir /usr/local/snort/lib/snort_dynamicrules -Copiar os ficheiros das regras dinâmicas Cp /usr/local/snort/so_rules/precompiled/Ubuntu-10-4/i386/2.9.2.2/*so /usr/local/snort/lib/snort_dynamicrules -Permitir a utilização das regras dinamicas por parte do Snort nano /usr/local/snort/etc/snort.conf # dynamic library rules include $SO_RULE_PATH/bad-traffic.rules include $SO_RULE_PATH/chat.rules include $SO_RULE_PATH/dos.rules include $SO_RULE_PATH/exploit.rules include $SO_RULE_PATH/icmp.rules include $SO_RULE_PATH/imap.rules include $SO_RULE_PATH/misc.rules include $SO_RULE_PATH/multimedia.rules include $SO_RULE_PATH/netbios.rules include $SO_RULE_PATH/nntp.rules include $SO_RULE_PATH/p2p.rules include $SO_RULE_PATH/smtp.rules include $SO_RULE_PATH/snmp.rules include $SO_RULE_PATH/specific-threats.rules include $SO_RULE_PATH/web-activex.rules include $SO_RULE_PATH/web-client.rules include $SO_RULE_PATH/web-iis.rules include $SO_RULE_PATH/web-misc.rules Nota: Os ficheiros supostamente estarão presentes no ficheiro snort.conf, sendo que basta "descomentar" as linhas, isto é, apagar o '#' do inicio de cada linha. 7ª Testar e correr o Snort -Testar se o snort está com todas as ligações a ficheiros/programas a funcionar snort -c /usr/local/snort/etc/snort.conf -T -Correr o Snort snort -c /usr/local/snort/etc/snort.conf -v -i eth0 A.3 Configuração das personalidades assumidas pelo HoneyD Honeypot Windows: -Personalidade: Microsoft Windows 2000 Server SP3 -Portas: 21/tcp, 25/tcp, 80/tcp, 110/tcp, 137/udp, 137/udp, 139/udp, 143/tcp, 389/tcp, 445/udp, 445/tcp, 5901/tcp. -Scripts: msftp.sh(porta 21), exchange-smtp.sh (porta 25), iis.sh (porta 80), exchange-pop3.sh (porta 110), exchange-imap.sh (porta 143), ldap.sh (porta 389), vnc.sh(porta5901). -Endereço IP: 193.136.195.84 Honeypot Linux: -Personalidade: Linux 2.4.18 (Suse) 17 -Portas: 21/tcp, 22/tcp, 23/tcp, 25/tcp, 53/udp, 79/tcp, 80/tcp, 110/tcp, 514/udp, 515/tcp, 3128/tcp, 8080/tcp, 8081/tcp. -Scripts: proftpd.sh (porta 21), ssh.sh (porta 22), telnetd.sh (porta 23), sendmail.sh (79), fingerd.sh (porta 79), apache.sh (porta 80), qpop.sh (porta 110), lpd.sh (porta 515), squid.sh (porta 3128), squid.sh (porta 8080), squid.sh (porta 8081), squid.sh (porta 514). -Endereço IP: 193.135.195.85 A.4 Conteúdo do Honeyd.conf ### Standard Windows 2000 computer create win2k set win2k personality "Microsoft Windows 2000 Server SP3 or Windows XP Professional SP1" set win2k default tcp action reset set win2k default udp action reset set win2k default icmp action block set win2k uptime 3567 add win2k tcp port 21 "sh /etc/honeypot/scripts/win32/win2k/msftp.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 25 "sh /etc/honeypot/scripts/win32/win2k/exchange-smtp.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 80 "sh /etc/honeypot/scripts/win32/win2k/iis.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 110 "sh /etc/honeypot/scripts/win32/win2k/exchange-pop3.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 143 "sh /etc/honeypot/scripts/win32/win2k/exchange-imap.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 389 "sh /etc/honeypot/scripts/win32/win2k/ldap.sh $ipsrc $sport $ipdst $dport" add win2k tcp port 5901 "sh /etc/honeypot/scripts/win32/win2k/vnc.sh $ipsrc $sport $ipdst $dport" add win2k udp port 137 proxy $ipsrc:137 add win2k udp port 138 proxy $ipsrc:138 add win2k udp port 445 proxy $ipsrc:445 add win2k tcp port 137 proxy $ipsrc:137 add win2k tcp port 138 proxy $ipsrc:138 add win2k tcp port 139 proxy $ipsrc:139 add win2k tcp port 445 proxy $ipsrc:445 set win2k ethernet "00:00:24:ab:8c:12" bind 193.136.195.84 win2k ### Linux Suse 8.0 template create suse80 set suse80 personality "Linux 2.4.18" set suse80 default tcp action reset set suse80 default udp action block set suse80 default icmp action open set suse80 uptime 79239 add suse80 tcp port 21 "sh /etc/honeypot/scripts/unix/linux/suse8.0/proftpd.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 22 "sh /etc/honeypot/scripts/unix/linux/suse8.0/ssh.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 23 "sh /etc/honeypot/scripts/unix/linux/suse8.0/telnetd.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 25 "sh /etc/honeypot/scripts/unix/linux/suse8.0/sendmail.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 79 "sh /etc/honeypot/scripts/unix/linux/suse8.0/fingerd.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 80 "sh /etc/honeypot/scripts/unix/linux/suse8.0/apache.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 110 "sh /etc/honeypot/scripts/unix/linux/suse8.0/qpop.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 515 "sh /etc/honeypot/scripts/unix/linux/suse8.0/lpd.sh $ipsrc $sport $ipdst $dport" 19 add suse80 tcp port 3128 "sh /etc/honeypot/scripts/unix/linux/suse8.0/squid.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 8080 "sh /etc/honeypot/scripts/unix/linux/suse8.0/squid.sh $ipsrc $sport $ipdst $dport" add suse80 tcp port 8081 "sh /etc/honeypot/scripts/unix/linux/suse8.0/squid.sh $ipsrc $sport $ipdst $dport" add suse80 udp port 53 proxy 8.8.8.8:53 add suse80 udp port 514 "sh /etc/honeypot/scripts/unix/linux/suse8.0/syslogd.sh $ipsrc $sport $ipdst $dport" set suse80 ethernet "00:0b:24:ab:8c:14" bind 193.136.195.85 suse80 A.5 Interpretação do honeyd.log(HoneyD) Para conseguir compreender o log do HoneyD(honeyd.log) é necessário entender a estrutura em que os dados são apresentados. -O primeiro campo corresponde ao tempo em que o evento ocorreu, incluindo milissegundos. -O segundo campo corresponde ao protocolo, se é TCP, UDP ou ICMP. -O terceiro campo do log pode tomar 3 opções, “S, E ou - “, sendo que “S” indica o inicio de uma nova ligação e o fim dessa ligação por “E”, e sendo “E” o HoneyD regista a quantidade de dados recebidos. O “-” indica que o pacote não pertence a nenhuma ligação. -Os quatro campos seguintes representam as ligações: IP de origem, porta de origem, IP de destino e porta de destino. -Os pacotes TCP que não fazem parte duma ligação, o Honeyd regista o tamanho dos pacotes assim como os sinalizadores TCP após os dois pontos. -No ultimo campo, é apresentado uma identificação passiva do sistema operacional. A.6 Instalação do Snort no Windows XP A instalação do Snort em Ambiente Windows requer especial atenção pois este sistema vem configurado de raiz para implementações em ambientes Linux, para isso temos de fazer alguns reajustes no sentido de vocacionar este sistema há implantação num ambiente Windows XP. 1º Apos a instalação por setup, temos de configurar as regras ou melhor editá-las, para isso temos de editar usando, neste caso o notepad++ e mudar linhas como: var RULE_PATH .../rules var SO_RULE_PATH.../so_rules var PREPOC_RULE_PATH.../preproc_rules Para: var RULE_PATH C:\Snort\rules var SO_RULE_PATH c:\Snort\so_rules var PREPOC_RULE_PATH C:\Snort\preproc_rules De: 21 dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor Para: dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor De: dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so Para: dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll De: dynamicdetection directory /usr/local/lib/snort_dynamicrules Para: dynamicdetection directory C:\Snort\lib\snort_dynamicengine De: include classification.config include reference.config Para: include C:\Snort\etc\classification.config include C:\Snort\etc\reference.config De: output alert_syslog: LOG_AUTH LOG_ALERT Para: output alert_syslog: host=193.136.195.87, LOG_AUTH LOG_ALERT 2º Ao finalizar a configuração do ficheiro snort.conf passa-se à fase de configuração da interface, para isso usando o CMD do Windows digitamos: c\ 23 cd snort dir cd bin snort -W (para listar todos os interfaces existentes) snort -dev -i nr (nr=numero da interface previamente escolhida) [snort em modo snif] -Passado alguns segundos e aparecendo a frase "Not Using PCAP_FRAMES" indica que o snort está a correr. Para termos a certeza que temos o ficheiro log a receber informação devemos digitar o seguinte: c:\snort\bin\snort -iX -s -l c:\snort\log\ -c c:\snort\etc\snort.conf - T (no X metemos o numero da interface) A.7 Nmap Scan-Windows/Linux Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-11 17:09 Hora de Verão de GMT NSE: Loaded 93 scripts for scanning. NSE: Script Pre-scanning. Initiating Ping Scan at 17:09 Scanning 193.136.195.87 [4 ports] Completed Ping Scan at 17:09, 0.17s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 17:09 Completed Parallel DNS resolution of 1 host. at 17:09, 0.04s elapsed Initiating SYN Stealth Scan at 17:09 Scanning oitenta-sete.estig.ipb.pt (193.136.195.87) [1000 ports] Discovered open port 443/tcp on 193.136.195.87 Discovered open port 21/tcp on 193.136.195.87 Discovered open port 23/tcp on 193.136.195.87 Discovered open port 80/tcp on 193.136.195.87 Discovered open port 110/tcp on 193.136.195.87 Discovered open port 79/tcp on 193.136.195.87 Discovered open port 12345/tcp on 193.136.195.87 Completed SYN Stealth Scan at 17:10, 4.90s elapsed (1000 total ports) Initiating Service scan at 17:10 Scanning 7 services on oitenta-sete.estig.ipb.pt (193.136.195.87) Completed Service scan at 17:11, 72.05s elapsed (7 services on 1 host) Initiating OS detection (try #1) against oitenta-sete.estig.ipb.pt (193.136.195.87) Retrying OS detection (try #2) against oitenta-sete.estig.ipb.pt (193.136.195.87) Initiating Traceroute at 17:11 Completed Traceroute at 17:11, 3.00s elapsed 25 Initiating Parallel DNS resolution of 11 hosts. at 17:11 Completed Parallel DNS resolution of 11 hosts. at 17:11, 0.07s elapsed NSE: Script scanning 193.136.195.87. Initiating NSE at 17:11 Completed NSE at 17:11, 1.87s elapsed Initiating NSE at 17:11 Completed NSE at 17:11, 0.05s elapsed Nmap scan report for oitenta-sete.estig.ipb.pt (193.136.195.87) Host is up (0.023s latency). Not shown: 993 filtered ports PORT STATE SERVICE VERSION 21/tcp open ftp 23/tcp open backdoor OptixPro backdoor (**BACKDOOR**) 79/tcp open finger? 80/tcp open http TeamViewer httpd |_http-title: Site doesn't have a title (text/html). |_http-methods: No Allow or Public header in OPTIONS response (status code 200) |_http-favicon: Unknown favicon MD5: C3F913F6A83B152CF8261BAB44361715 110/tcp open pop3 Openwall popa3d |_pop3-capabilities: capa 443/tcp open https? 12345/tcp open tcpwrapped 2 services unrecognized despite returning data. If you know the service/version, please submit the following fingerprints at http://www.insecure.org/cgi-bin/servicefp-submit.cgi : =======NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)======== SF-Port21-TCP:V=6.01%I=7%D=9/11%Time=504F625F%P=i686-pc-windowswindows%r(SF:NULL,13,"220\x20Wuftpd\x201\.7\.0\r\n")%r(GenericLines,57,"220\x20Wu SF:tpd\x201\.7\.0\r\n500\x20'\r':\x20command\x20not\x20understood\.\r\n500SF:\x20'\r':\x20 command\x20not\x20understood\.\r\n")%r(Help,38,"220\x20WuSF:ftpd\x201\.7\.0\r\n500\x20'HELP':\x20command\x20not\x20understood\.\r\n SF:")%r(SMBProgNeg,13,"220\x20Wu-ftpd\x201\.7\.0\r\n"); =======NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)======== SF-Port79-TCP:V=6.01%I=7%D=9/11%Time=504F625F%P=i686-pc-windowswindows%r(SF:GenericLines,19,"root\r\nadmin\r\nwww\r\nguest\r\n")%r(GetRequest,13,"G SF:ET\x20/\x20HTTP/1\.0\?\?\?\r\n")%r(Help,9,"HELP\?\?\?\r\n")%r(HTTPOptioSF:ns,17," OPTIONS\x20/\x20HTTP/1\.0\?\?\?\r\n")%r(RTSPRequest,17,"OPTIONS\ SF:x20/\x20RTSP/1\.0\?\?\?\r\n")%r(SSLSessionReq,33,"\x16\x03\0\0S\x01\0\0 SF:O\x03\0\?G\xd7\xf7\xba,\xee\xea\xb2`~\xf3\0\xfd\x82{\xb9\xd5\x96\xc8w\x SF:9b\xe6\xc4\xdb<=\xdbo\xef\x10n\0\0\(\?\?\?\r\n")%r(Kerberos,15,"\0\0\0q SF:j\x81n0\x81k\xa1\x03\x02\x01\x05\xa2\?\?\?\r\n")%r(FourOhFourRequest,36 SF:,"GET\x20/nice%20ports%2C/Tri%6Eity\.txt%2ebak\x20HTTP/1\.0\?\?\?\r\n") SF:%r(LPDString,D,"\x01default\?\?\?\r\n")%r(SIPOptions,1B,"OPTIONS\x20sip SF::nm\x20SIP/2\.0\?\?\?\r\n"); Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: WAP|general purpose 27 Running (JUST GUESSING): Apple embedded (90%), Microsoft Windows XP|2003|2000 (89%), FreeBSD 6.X (86%) OS CPE: cpe:/o:microsoft:windows_xp::sp2 cpe:/o:microsoft:windows_server_2003::- cpe:/o:microsoft:windows_2000::sp4 cpe:/o:freebsd:freebsd:6.2 Aggressive OS guesses: Apple AirPort Extreme WAP v7.3.2 (90%), Microsoft Windows Server 2003 SP0 or Windows XP SP2 (89%), Microsoft Windows XP SP2 (89%), Microsoft Windows XP SP3 (89%), Microsoft Windows 2000 SP4 (88%), Microsoft Windows XP SP3 or Small Business Server 2003 (88%), Microsoft Windows XP Professional SP2 (French) (87%), FreeBSD 6.2-RELEASE (86%), FreeBSD 6.3-RELEASE (86%), Microsoft Windows Server 2003 SP2 (86%) No exact OS matches for host (test conditions non-ideal). Network Distance: 12 hops TCP Sequence Prediction: Difficulty=259 (Good luck!) IP ID Sequence Generation: Incremental Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows TRACEROUTE (using port 443/tcp) HOP RTT ADDRESS 1 50.00 ms dsldevice.lan (192.168.1.254) 2 ... 3 20.00 ms bl3-75-137.dsl.telepac.pt (213.13.75.137) 4 20.00 ms gi11-0-0.lgsr1.telepac.net (194.65.12.90) 5 20.00 ms te1-1.lcat1.telepac.net (213.13.135.174) 6 20.00 ms FCCN.AS1930.gigapix.pt (193.136.250.10) 7 20.00 ms Router3.10GE.Lisboa.fccn.pt (193.137.0.10) 8 20.00 ms Router2.10GE.DWDM.Porto.fccn.pt (193.136.1.2) 9 20.00 ms ROUTER20.10GE.Porto.fccn.pt (193.137.4.9) 10 20.00 ms IPB.Braganca.fccn.pt (193.136.1.78) 11 20.00 ms sw-core1.ccom.ipb.pt (193.137.101.253) 12 20.00 ms oitenta-sete.estig.ipb.pt (193.136.195.87) NSE: Script Post-scanning. Read data files from: C:\Programas\Nmap OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 90.88 seconds Raw packets sent: 2099 (96.664KB) | Rcvd: 45 (2.640KB) Linux: Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-11 18:17 Hora de Verão de GMT NSE: Loaded 93 scripts for scanning. NSE: Script Pre-scanning. Initiating Ping Scan at 18:17 Scanning 193.136.195.88 [4 ports] Completed Ping Scan at 18:17, 0.17s elapsed (1 total hosts) 29 Initiating Parallel DNS resolution of 1 host. at 18:17 Completed Parallel DNS resolution of 1 host. at 18:17, 0.03s elapsed Initiating SYN Stealth Scan at 18:17 Scanning oitenta-oito.estig.ipb.pt (193.136.195.88) [1000 ports] Discovered open port 22/tcp on 193.136.195.88 Discovered open port 3389/tcp on 193.136.195.88 Discovered open port 5901/tcp on 193.136.195.88 Discovered open port 6001/tcp on 193.136.195.88 Completed SYN Stealth Scan at 18:17, 3.19s elapsed (1000 total ports) Initiating Service scan at 18:17 Scanning 4 services on oitenta-oito.estig.ipb.pt (193.136.195.88) Completed Service scan at 18:17, 6.06s elapsed (4 services on 1 host) Initiating OS detection (try #1) against oitenta-oito.estig.ipb.pt (193.136.195.88) Retrying OS detection (try #2) against oitenta-oito.estig.ipb.pt (193.136.195.88) Initiating Traceroute at 18:17 Completed Traceroute at 18:17, 3.02s elapsed Initiating Parallel DNS resolution of 11 hosts. at 18:17 Completed Parallel DNS resolution of 11 hosts. at 18:17, 0.08s elapsed NSE: Script scanning 193.136.195.88. Initiating NSE at 18:17 Completed NSE at 18:17, 0.58s elapsed Nmap scan report for oitenta-oito.estig.ipb.pt (193.136.195.88) Host is up (0.022s latency). Not shown: 995 closed ports PORT STATE 22/tcp open SERVICE ssh VERSION OpenSSH 5.9p1 Debian 5ubuntu1 (protocol 2.0) | ssh-hostkey: 1024 46:3a:40:7a:84:dd:e9:63:fd:99:73:da:8c:79:1e:92 (DSA) |_2048 dd:6b:e5:42:e9:31:8e:e4:e3:23:d1:9b:eb:af:a0:b2 (RSA) 25/tcp filtered smtp 3389/tcp open ms-wbt-server xrdp 5901/tcp open vnc VNC (protocol 3.8) | vnc-info: | Protocol version: 3.8 | Security types: |_ VNC Authentication 6001/tcp open X11 (access denied) Device type: general purpose Running (JUST GUESSING): Linux 2.6.X (86%) OS CPE: cpe:/o:linux:kernel:2.6 Aggressive OS guesses: Linux 2.6.32 - 2.6.38 (86%), Linux 2.6.38 (85%) No exact OS matches for host (test conditions non-ideal). Uptime guess: 0.069 days (since Tue Sep 11 16:38:20 2012) 31 Network Distance: 12 hops TCP Sequence Prediction: Difficulty=261 (Good luck!) IP ID Sequence Generation: All zeros Service Info: OSs: Linux, Unix; CPE: cpe:/o:linux:kernel TRACEROUTE (using port 1720/tcp) HOP RTT ADDRESS 1 20.00 ms dsldevice.lan (192.168.1.254) 2 ... 3 10.00 ms bl3-74-137.dsl.telepac.pt (213.13.74.137) 4 20.00 ms gi11-0-0.lgsr1.telepac.net (194.65.12.90) 5 20.00 ms te1-1.lcat1.telepac.net (213.13.135.174) 6 20.00 ms FCCN.AS1930.gigapix.pt (193.136.250.10) 7 20.00 ms ROUTER3.10GE.Lisboa.fccn.pt (193.137.0.27) 8 20.00 ms Router2.10GE.DWDM.Porto.fccn.pt (193.136.1.2) 9 20.00 ms ROUTER20.10GE.Porto.fccn.pt (193.137.4.25) 10 20.00 ms IPB.Braganca.fccn.pt (193.136.1.78) 11 20.00 ms sw-core1.ccom.ipb.pt (193.137.101.253) 12 20.00 ms oitenta-oito.estig.ipb.pt (193.136.195.88) NSE: Script Post-scanning. Initiating NSE at 18:17 Completed NSE at 18:17, 0.00s elapsed Read data files from: C:\Programas\Nmap OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 20.22 seconds Raw packets sent: 1113 (51.612KB) | Rcvd: 1072 (44.312KB) A.8 A.9 A.10 A.11 A.12 33
Documentos relacionados
Detecção de Intrusão Através de Configuração de - BCC Unifal-MG
Ciência da Computação da Universidade Federal de Alfenas como requisito parcial para obtenção do Título de Bacharel em Ciência da Computação.
Leia mais