Novo tipo de rootkit se esconde no setor de boot do Windows

Um novo tipo de rootkit, que se esconde no setor de boot do Windows, já infectou milhares de PCs, afirmaram pesquisadores de segurança nesta quarta-feira (08/01).

O código malicioso, utilizado para mascarar um cavalo-de-tróia que rouba números de contas bancárias, infectou 5 mil PCs desde dezembro de 2007, segundo o diretor da VeriSign, Matthew Richards. O malware é invisível ao sistema operacional e a softwares de segurança.

O rootkit é instalado por cima do controle de gravação do setor de boot (da sigla em inglês MBR – Master Boot Record), o primeiro local onde o código é armazenado para iniciar o sistema operacional depois que o BIOS (do inglês Basic Input/Output System) começa seus check-ups.

Fonte: ODG Now

Rootkits – como detectar e previni-los

O QUE SÃO ROOTKITS?
por Renan “Chaos Master”

Tradução liberal do site http://la-samhna.de/library/rootkits/ .

1. Introdução

Depois de um ataque, um hacker provavelmente vai querer
dificultar o trabalho do pessoal da segurança.
Para isto, uma opção fácil é o rootkit, que
nada mais é do que um programa modificado que
não faz o que normalmente deveria fazer.
Ex. um ‘ps’ que mostre processos errados
ou um ‘ls’ que não mostre alguns arquivos.
Além disso eles escondem backdoors, alteram logs, enfim.

Os rootkits mais básicos fazem o seu serviço
de um modo “curto e grosso”, já os mais elaborados
alteram arquivos, têm opções iguais ao comando normal,
e até enganam verificadores de arquivos para que eles
não possam ser detectados pelo seu código CRC (código
que verifica a validade de um arquivo).

No entanto ainda pode se identificá-los sabendo o
seu código criptográfico MD5 (usando o comando md5sum,
por exemplo) e conferindo os resultados contra um
banco de dados, que pode ser tanto de programas válidos
quanto de rootkits famosos.


1.1. O que são Kernel Rootkits?

Estes rootkits trabalham diretamente no kernel,
permitindo alterar a saída do kernel (!!) de modo a causar
erros, retornar dados inválidos, e outros,
tudo isto *sem modificar arquivos de sistema*.
São bem difíceis de serem descobertos.

2. O básico

2.1. Enganando o kernel

Existem basicamente 2 maneiras de enganar o
kernel para permitir a entrada de um rootkit:

* carregando um módulo, que vem disfarçado
como um driver ou programa útil.
Assim o rootkit tem acesso avançado ao kernel.

* alterando o /dev/kmem:

O /dev/kmem é um dispositivo que dá
acesso à memória usada pelo kernel.
Felizmente os kernels mais novos já
tiveram este dispositivo tornado somente-leitura.
Um programa pode alterar o conteúdo ou simplesmente escrever
lixo para o kernel causando um travamento.

Uma demonstração de como funciona está
em http://online.securityfocus.com/archive/1/273002 .
A técnica aplica um patch no kernel, “ao vivo”, sem parar nenhum processo.

2.2. Aonde os rootkits podem agir? Básico da teoria de funcionamento deles

Quando uma chamada de sistema é executada o
“controle de fluxo” cai no seguinte caminho:

– Uma interrupção é chamada e o sistema
“volta a atenção” para esta chamada.
Um rootkit pode alterar a chamada para cair num lugar errado.

– A função system_call() do kernel procura o
endereço apropriado para a função. Aí é que a
maioria dos rootkits entra, corrompendo ou
alterando a lista de endereços de modo a causar erro.

– Esta função retorna dados, e o programa
continua a funcionar. Tecnicamente isto pode
ser abusado corrompendo os dados da saída;
mas ainda não é usada por nenhum rootkit.

3. Rootkits famosos

SucKIT: o rootkit mais famoso, que usa a
técnica do /dev/kmem para acessar diretamente
as portas da rede, e permitir invasões remotas.
Provavelmente não funciona mais no Kernel 2.6.5.

Rootkits que usam o modo LKM (Linux Kernel Modules):

RIAL: esconde arquivos e conexões. O comando ‘less’ é
desativado. Rootkit bem fraco, basta executar
“cat /proc/modules” para pegá-lo.

heroin: esconde arquivos e processos,
não provê invasões remotas. Não aparece com
“lsmod” nem permite o uso de “rmmod” mas
pode ser encontrado com o comando “cat /proc/ksyms | grep heroin” .

afhrm: redireciona arquivos para darem em
locais errados. Não funciona nos Kernels 2.2 ou mais avançados.

Synapsis: esconde arquivos, portas e processos,
mas tem vários bugs. Dá direitos de root a um usuário qualquer.
Pode ser encontrado com “cat /proc/modules”.

adore: rootkit bem avançado, que permite
executar qualquer comando com privilégios de root (“backdoor local”).

knark: esconde arquivos, processos, serviços,
redireciona comandos e dá privilégios de root,
oferecendo um backdoor para permitir o controle remoto.
Se esconde e impede o uso do “rmmod”.

itf: esconde arquivos, processos, redireciona comandos,
dá privilégios de root e instala um backdoor.
Também impede o uso do “rmmod”.

kis: pode desativar firewalls, permitir acesso
remoto, esconder processos, arquivos e outros,
além de descarregar módulos. Se esconde como todos outros rootkits.

adore-ng: igual ao adore mas altera dados do(s) drive(s) de disco rígido.

4. Como detectá-los?

Para se ter uma lista de módulos tem 2 comandos:

Código:
bash$ lsmod

ou

Código:
bash$ cat /proc/modules

Infelizmente a maioria dos rootkits se escondem dos comandos acima.
Rootkits LKM alteram o “mapa do kernel”, que
geralmente está num arquivo chamado “System.map”
na mesma localização do kernel (/boot). Assim
é possível compará-lo com o System.map de um
kernel com a mesma versão do seu.

Podemos usar o programa “kern_check”
(http://la-samhna.de/library/kern_check.c)
para verificar o arquivo system.map. Compile-o e chame-o com:

Código:
bash$ gcc -O2 -Wall -o kern_check kern_check.c
bash$ su
bash$ kern_check /caminho/ao/System.map

Onde “/caminho/ao” é a pasta onde está seu System.map

Ou o KSTAT, que analisa o /dev/kmem e
pode ser pego em http://www.s0ftpj.org/tools/kstat24_v1.1-2.tgz

E assim concluo o tutorial sobre rootkits,
mostrando o método de operação deles, como detectar e previni-los.
A melhor solucao contra eles e’ sempre manter o seu Kernel atualizado.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: