Detecção do Malware Conficker com Snort
Evandro Costa1, Fausto Levandoski1, Guilherme Hoescher1, Vanessa Fernandes1
1
Universidade do Vale do Rios dos Sinos (UNISINOS)
Curso Tecnólogo em Segurança da Informação
Av. Unisinos, 950 – 93.022-000 – São Leopoldo– RS – Brasil
[email protected], {farole, guinhog}@gmail.com,
[email protected]
Abstract. This article aims to demonstrate the behavior of the IDS Snort in
detection of the malware Conficker, detailing the structure and functioning of
the Worm and finally to explain how the Snort alert him based on a given
signatures.
Resumo. Este artigo tem por objetivo demonstrar o comportamento do IDS
Snort na detecção do Malware Conficker, detalhalhando a estrutura e
funcionamento deste Worm e por fim explicar o modo como o Snort o alerta
baseado em uma determinada assinatura.
Palavras-chave: Malware, Conficker, IDS, assinatura.
1. Introdução
Todo o ano cresce o número de incidentes de segurança relacionados a empresas e
usuários domésticos, gerando prejuízo para as mesmas. Entre eles estão roubo de
informações, senhas de banco, cartões de crédito, alteração e uso indevido de dados
coletados sem consentimento, espionagem, chantagem, motivações religiosas e
terroristas, concorrência desleal ou até mesmo uma simples brincadeira de adolescente.
As técnicas para tais crimes virtuais são inúmeros, em sua maior parte são
realizadas sem que a vítima perceba que está sendo lesada. Mas então como se prevenir?
Ferramentas antivírus, atualizações do sistema operacional, antispyware já não são
suficientes. Algumas delas não conseguem detectar novas pragas virtuais, pois a
arquitetura e funcionamento destas estão cada vez mais elaborados para se ocultarem
dentro dos sistemas operacionais, programas, etc.
As ferramentas de detecção de intrusão (IDS) auxiliam nestas descobertas,
alertando o administrador da rede de que algo estranho pode estar ocorrendo e que pode
ser um possível ataque.
No estudo a seguir o exemplo é dado através do Malware Conficker que infectou
milhões de máquinas no mundo inteiro causando lentidão nas redes coorporativas, alto
consumo de CPU de servidores, bloqueio ao acesso de páginas antivírus e atualizações
de softwares, entre outros transtornos.
Na sessão 2 deste artigo serão descritos Malwares e IDS, na sessão 3 será
abordado o funcionamento do Malware conficker, formas de propagação e seus
objetivos. Na sessão 4 será comentada uma breve estrutura do IDS Snort bem como a
assinatura existente para detecção do Conficker, como ela o identifica e o alerta de
forma mais detalhada. Na sessão 5 será desmonstrado o estudo do caso. Por fim, na
sessão 6 será mostrada a conclusão.
2. Descrição de Malwares e IDS
Malwares são programas com códigos maliciosos projetados para executar ações
danosas em um ou mais computadores alheios de forma ilícita. Dentre eles estão os
vírus, cavalos de tróia, spywares, bakcdoors, keyloggers, worms, bots e rootkits. Os
programas de malware destrutivos utilizam ferramentas conhecidas de comunicação
para se propagarem. Por exemplo, worms enviados por e-mail e mensagens instantâneas,
Cavalos de Tróia provenientes de websites e arquivos infectados com vírus obtidos por
download. O malware também tenta explorar as vulnerabilidades existentes nos
programas e sistemas operacionais, tornando sua entrada discreta e fácil. O Malware foi
desenvolvido com a intenção de permanecer despercebido, ocultando-se ativamente ou
simplesmente não se fazendo notar em um sistema conhecido pelo usuário [1, 2].
Com essa preocupação, a partir de observações realizadas por estudiosos, é que
surgiram os IDS (Sistema de detecção de Intrusão) com a finalidade de monitorar a rede,
atividades maliciosas no sistema ou violações de políticas em busca de possíveis
incidentes de segurança, produzindo relatórios e enviando alertas aos administradores de
redes, o que antes era feito manualmente, através da leitura de logs, eventos, etc.
As técnicas de detecção que os IDSs utilizam são baseadas em assinaturas,
anomalias ou análise do estado do protocolo. As técnicas estabelecidas em assinaturas
trabalham na procura de tráfego de rede ou seqüências de pacotes conhecidos como
maliciosos, as de anomalias procuram por comportamentos suspeitos, considerado
anormal e por fim as técnicas que analisam o estado dos protocolos conhecem o
comportamento destes e trabalham através da comparação de eventos com seus perfis,
determinando como os protocolos devem ou não operar.
3. Malware W32/Conficker.worm
O worm W32/Conficker.worm como apresenta a McAfee é conhecido também por
outros nomes como: W32/Conficker.A/B, Mal/Conficker, W32.Downadup e
WORM_DOWNAD.A[3]. Sua primeira detecção ocorreu em 21 de novembro de 2008 e
afetou os sistemas operacionais Microsoft Windows 95, 98, 2000, ME, NT, Server
2003, Vista e XP [4] explorando uma falha reportada pela Microsoft nestes sistemas
segundo Bulletin Board MS08-067 [6].
Este worm quando infecta o sistema hospedeiro imediatamente paralisa os
serviços do Windows relacionados a antivírus, atualizações do sistema operacional bem
como o funcionamento de todos os antivírus e anti spywares mais conhecidos além de
bloquear o acesso a páginas de internet que contêm palavras relacionadas a solução dos
problemas por ele causados e fabricantes de antivírus. [9]
Após infectar o sistema hospedeiro ele tenta se copiar para todos os
computadores detectados na mesma rede através de broadcast, primeiramente
solicitando qual usuário está logado em cada máquina, utilizando uma lista de senhas
pré-definidas, assim como as próprias credencias do usuário ativo no sistema hospedeiro
para acessar o computador remoto através do compartilhamento administrativo
ADMIN$ [3]. Ao tentar acesso a todos os computadores utilizando usuários e senhas
inválidos, dependendo das políticas de segurança de cada site, as contas de usuários são
bloqueadas para o uso [5].
Além de transmitir-se explorando a falha, pelo compartilhamento administrativo,
o mesmo auto copia-se para todos os compartilhamentos de rede detectados, assim
como dispositivos removíveis. Como medida para contornar firewall´s ele faz uso do
protocolo SSDP para localizar outros computadores que tenham saída para a internet
utilizando dispositivos Universal Plug and Play e através destes consegue infectar
computadores protegidos. Outro método de propagação utilizado pelo worm é de criar
uma rede peer-to-peer entre os sistemas infectados reduzindo assim a performance da
rede [9].
Para fazer uso deste contorno o worm tenta acessar sites que retornam o
endereçamento IP da conexão e com esta informação divulga para seus peers novos
pontos de acesso a Internet [5].
4. Snort
O Snort é um software de código aberto destinado a monitorar o tráfego de pacotes em
redes IP, realizando análises de diversos protocolos (nível de rede e aplicação) e
conteúdo (hexa e ASCII) [7].
Como apresentado na sessão 2, um IDS utiliza-se de algumas técnicas de
detecção que podem ser: por assinatura, anomalia ou estado do protocolo. Neste item é
abordada a técnica de detecção por assinatura que está sendo utilizada neste
experimento.
A arquitetura do Snort é composta por quatro componentes [10]:
•
Farejadores: Pode ser um dispositivo de hardware ou software utilizado para
capturar, através da biblioteca lipcap, os dados que trafegam por uma rede,
possui a capacidade de analisar diversos protocolos e transformar os pacotes de
dados em dados legíveis e conhecidos;
•
Pré-processadores: São responsáveis por classificar os dados capturados pelos
farejadores, com o objetivo de detectar o comportamento dos pacotes;
•
Mecanismo de Detecção: Esse é o componente mais importante do Snort, pois
compara as informações recebidas do pré-processamento com as
regras/assinaturas de ataques conhecidos;
•
Componente de Alerta/Registro: Considerando que as informações
classificadas pelo pré-processamento correspondem a alguma regra/assinatura,
esse componente será responsável por emitir um alerta de acordo com
configurações previamente realizadas pelos administradores do IDS.
A técnica de detecção por assinatura possibilita a identificação de ataques
conhecidos como buffer overflow, port scans, ataques CGI (Common Gateway
Interface), verificação de SMB (Server Message Block). Com o conhecimento prévio do
funcionamento dos ataques, torna-se possível desenvolver assinaturas que identifiquem
os mesmos através da comparação dos dados coletados pelos sensores do IDS com a
base de assinaturas [8].
Porém nessa técnica há uma desvantagem, pois identifica apenas ataques
conhecidos. Foi identificado que a comunidade que mantém o Snort libera novas
assinaturas a partir de horas ou dias de um novo ataque. Contudo, a técnica de detecção
por assinatura reduz significativamente os falsos positivos [9].
4.1 Assinatura Conficker_B_Shellcode
O Conficker_P2P_Detector é um pré-processador do Snort capaz de detectar se alguma
estação da rede está infectada pelo Conficker B. Para isso é necessário habilitar o
processador e adicionar as assinaturas do worm a alguma regra de detecção.
Nos testes efetuados foi utilizada a seguinte assinatura, e o seu funcionamento
será apresentado de forma detalhada: [11]
alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET TROJAN
Conficker.b Shellcode"; flow:established,to_server; content:"|e8 ff ff ff ff c2|_|8d|O|10
80|1|c4|Af|81|9MSu|f5|8|ae c6 9d a0|O|85 ea|O|84 c8|O|84 d8|O|c4|O|9c cc|Ise|c4 c4
c4|,|ed c4 c4 c4 94|&<O8|92|\;|d3|WG|02 c3|,|dc c4 c4 c4 f7 16 96 96|O|08 a2 03 c5 bc ea
95|\;|b3 c0 96 96 95 92 96|\;|f3|\;|24 |i|95 92|QO|8f f8|O|88 cf bc c7 0f f7|2I|d0|w|c7 95
e4|O|d6 c7 17 cb c4 04 cb|{|04 05 04 c3 f6 c6 86|D|fe c4 b1|1|ff 01 b0 c2 82 ff b5 dc b6
1f|O|95 e0 c7 17 cb|s|d0 b6|O|85 d8 c7 07|O|c0|T|c7 07 9a 9d 07 a4|fN|b2 e2|Dh|0c b1 b6
a8 a9 ab aa c4|]|e7 99 1d ac b0 b0 b4 fe eb eb|";
reference:url,www.honeynet.org/node/388;
reference:url,doc.emergingthreats.net/2009201;
reference:url,www.emergingthreats.net/cgibin/cvsweb.cgi/sigs/TROJAN/TROJAN_Conficker; classtype:trojan-activity;
sid:2009201; rev:6;)
Tabela 1: Assinatura Conficker_B_Shellcode
O objetivo é gerar um alerta com o texto (ET TROJAN Conficker.b Shellcode)
baseado na transferência dos dados "|e8 ff ff ff ff c2|_|8d|O|10 80|1|c4|Af|81|9MSu|f5|8|ae
c6 9d a0|O|85 ea|O|84 c8|O|84 d8|O|c4|O|9c cc|Ise|c4 c4 c4|,|ed c4 c4 c4
94|&<O8|92|\;|d3|WG|02 c3|,|dc c4 c4 c4 f7 16 96 96|O|08 a2 03 c5 bc ea 95|\;|b3 c0 96
96 95 92 96|\;|f3|\;|24 |i|95 92|QO|8f f8|O|88 cf bc c7 0f f7|2I|d0|w|c7 95 e4|O|d6 c7 17 cb
c4 04 cb|{|04 05 04 c3 f6 c6 86|D|fe c4 b1|1|ff 01 b0 c2 82 ff b5 dc b6 1f|O|95 e0 c7 17
cb|s|d0 b6|O|85 d8 c7 07|O|c0|T|c7 07 9a 9d 07 a4|fN|b2 e2|Dh|0c b1 b6 a8 a9 ab aa
c4|]|e7 99 1d ac b0 b0 b4 fe eb eb|” entre quaisquer hosts na rede utilizando como porta
TCP de destino 445.
5. Demonstrações práticas
Para verificar a atividade do worm assim como seu comportamento foram
utilizados 3 computadores sendo eles:
1. Microsoft Windows XP sem atualizações com conexão a internet. Sistema
hospedeiro cujo IP é 192.168.1.80/24.
2. Linux CentOs 5.3 + IDS Snort para detecção da atividade do worm. IP
192.168.1.82/24.
3. Microsoft Windows 2003 Server. Servidor a ser atacado com o IP
192.168.1.30/24.
Todos os computadores envolvidos estão localizados na mesma rede física e
lógica. A configuração do Snort envolve em habilitar o pré-processador para detecção
do Conficker além de criar as regras com as assinaturas do worm.
Antes de infectarmos o sistema hospedeiro pode ser verificado que os serviços
Microsoft permanecem disponíveis, que é possível fazer acesso aos sites de
fornecedores de antivírus e que nenhum alerta é reportado pelo Snort além de que
nenhum tipo de tráfego de rede suspeito pode ser observado no sistema hospedeiro.
Após infectarmos o sistema hospedeiro, imediatamente após o inicio do sistema
operacional os seguintes eventos podem ser detectados por ferramentas de
monitoramento de rede bem como pelo Snort.
1. Envio de broadcast para localização de sistemas operacionais Windows Server.
"10","4.010300","192.168.1.80","192.168.1.255","BROWSER","Request
Announcement MAQ"
"11","4.011605","192.168.1.80","192.168.1.255","BROWSER","Domain/Work
group Announcement GRUPO, NT Workstation, Domain Enum"
2. Resposta de Windows Server
"6","4.008083","192.168.1.30","192.168.1.80","NBNS","Registration
NB 192.168.1.80"
response
3. Envio de broadcast SSDP a procura de gateways para a Internet.
"1","0.000000","192.168.1.80","239.255.255.250","SSDP","M-SEARCH
HTTP/1.1 "
*
4. Resposta de computador que serve como gateway de internet utilizando UPnP.
"2","0.009929","192.168.1.177","192.168.1.80","SSDP","HTTP/1.1 200 OK "
5. Pesquisa DNS pelo host www.whatismyipaddress.com
"51","2.283534","192.168.1.80","192.168.1.30","DNS","Standard
www.whatsmyipaddress.com"
query
A
6. Tentativas de conexão pela porta de destino 445 que é onde se encontra a falha
de segurança reportada.
"1641","90.769319","192.168.1.80","192.168.1.30","SMB","Negotiate Protocol
Request"
7. Tentativas de conexão ao compartilhamento administrativo
"1647","90.777193","192.168.1.80","192.168.1.30","SMB","Tree
AndX Request, Path: \\192.168.1.30\IPC$"
Connect
"1649","90.779329","192.168.1.80","192.168.1.30","SMB","NT Create AndX
Request, FID: 0x800c, Path: \browser"
8. Pacote contendo worm e este é detectado pelo Snort. A área marcada na figura
representa componentes da assinatura do worm.
"1656","90.785036","192.168.1.80","192.168.1.30","SRVSVC","NetPathCanoni
calize request"
Figura 1: Log do programa Wireshark
9. Log registrado no Snort
[1:2009201:6] ET TROJAN Conficker.b Shellcode [**]
[Classification: A Network Trojan was detected] [Priority: 1]
09/30-08:48:17.914221 192.168.1.80:1110 -> 192.168.1.30:445
TCP TTL:128 TOS:0x0 ID:506 IpLen:20 DgmLen:832 DF
***AP*** Seq: 0x158C6A9B Ack: 0xD77F0FAF Win: 0xF603 TcpLen: 20
[Xref=>http://www.emergingthreats.net/cgibin/cvsweb.cgi/sigs/TROJAN/TROJAN_Conficker][Xref=>
http://doc.emergingthreats.net/2009201][Xref=> http://www.honeynet.org/node/388]
6. Conclusões
A Detecção de Intrusão com a utilização de NDIS auxilia fundamentalmente na proteção
das redes organizacionais, mas no que tange a reatividade este controle de segurança
deixa a desejar, o que é compreensível, tendo em vista a arquitetura e proposta de um
NIDS. Mas, essa limitação pode ser solucionada com ferramentas auxiliares.
A utilização da técnica de detecção por assinatura foi eficaz, mas permanece um
aspecto (amplamente conhecido) de somente ataques conhecidos, ou seja, ataques para
os quais o sistema já possui regras de identificação.
A percepção foi que o Snort proporciona flexibilidade na construção de
regras/assinaturas e plug-ins eficientes utilizados para inspecionar os pacotes
capturados, deixando a desejar apenas na quantidade de protocolos que o sistema tem a
capacidade de analisar.
Os testes práticos e pesquisas referentes ao Snort mostraram que o mesmo é
muito ágil para redes de pequeno porte, sendo utilizado por diversas empresas de
renome no mercado. É um projeto vivo, mantido por diversos grupos e profissionais da
segurança da informação.
Referências Bibliográficas:
[1] Cartilha de Segurança para a Internet. Parte VIII: Códigos Maliciosos. Cert.br
(2006). http://cartilha.cert.br/download/cartilha-08-malware.pdf) (Consultado em 14 de
setembro de 2010).
[2] Malware. Como eles atacam. Symantec.com
(http://www.symantec.com/pt/br/norton/security_response/malware.jsp) (Consultado em
14 de setembro de 2010).
[3] W32/Conficker.worm (http://vil.nai.com/vil/content/v_153464.htm) (Consultado
em 27 de setembro de 2010).
[4] W32/Downnadup
(http://www.symantec.com/security_response/writeup.jsp?docid=2008-112203-240899) (Consultado em 27 de setembro de 2010).
[5] An Analysis of Conficker's Logic and Rendezvous Points
(http://mtc.sri.com/Conficker/) (Consultado em 27 de setembro de 2010)
[6] Microsoft Security Bulletin MS08-067
(http://www.microsoft.com/technet/security/bulletin/ms08-067.mspx) (Consultado em
27 de setembro de 2010).
[7] Baker, Andrew R. et al. (2004) “Snort 2.1. Intrusion Detection”. 2 ed. Syngress
Publishing, EUA.
[8] O que é e como funciona uma ferramenta IDS?
(http://www.clm.com.br/snort/comofuncionaids.asp) (Consultado em 14 de setembro de
2010).
[9] Snort Brasil (http://www.snort.com.br/snort.asp) (Consultado em 17 de
setembro de 2010).
[10] Análise de sistemas de detecção de Intrusos em redes de computadores
(http://www.snort.org.br/arquivos/Monografia-pedro.pdf) (Consultado em 27 de
setembro de 2010).
[11] Emerging Threats Virus Rules
(http://www.emergingthreats.net/rules/emerging-virus.rules) (Consultado em 27 de
setembro de 2010).
Download

Detecção do Malware Conficker com Snort