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.

Anúncios

HACKERS, CRACKERS, FLOCOS CROCANTES E CHOCOLATE NESTLÉ

Você provavelmente conhece ou tem algum amigo mecânico, que sabe tudo sobre motores de dois cilindros, ou então de ignição eletrônica ou algo assim. Se esse seu amigo, além de saber tudo, tiver por exemplo construído algumas próprias ferramentas, feito modificações no desenho original e ter uma vontade absurda de mostrar isso para outros amigos mecânicos, ele é um tipo especial de ser humano.

Da mesma forma, aquele seu vizinho maluco que não entende lhufas de computador mas tem uma verdadeira parafernália eletrônica no porão, e passa alegremente os fins de semana conversando via ondas curtas com pessoas de toda parte do planeta. Aquele vizinho que tem aparelhos cheios de bobinas e capacitores que ele mesmo construiu, inventou e aperfeiçoou, para localizar a melhor posição de sua atena sem afetar a recepção da sua TV e faz questão que você tenha um igual. E o que dizer daquele outro que usa um aparelho de solda elétrica como se fosse parte de sua própria mão e inventa toda a sorte de armações e montagens, até lustres para a igreja local?

Essas pessoas todas são hackers.

Hacker vem do inglês e significa marceneiro (aquele que entalha a madeira e não apenas corta e prega) e denota antes de tudo uma pessoa que procura obter (conhecer) o máximo do seu redor, de sua profissão e das ferramentas e recursos disponíveis no ambiente onde vive.

Esqueça o que os jornais e jornalistas escrevem. Infelizmente, a maioria desses “profissionais” de transferência de informação trabalha sob pressão para produzir uma certa quantidade de notícias, normalmente sobre um assunto específico. Se você já assistiu ao Fantástico, terá notado uma repórter que é o símbolo desse tipo de profissional. Subnutrida mentalmente, se preocupa, na entrevista de um raly, em perguntar o que será que a mãe do motorista diria se o visse coberto de lama.

É de se esperar que um profissional mal preparado (às vezes nem isso) não queira ou não tenha tempo de rever a besteira que escreveu, e num ambiente predatório como a Internet, onde os sites de notícias trabalham canibalizando outros sites (terá alguém que produza a notícia original nesse meio?), se baseiam na besteira alheia e então tudo está perdoado.

Hacker não é sinônimo de criminoso, da mesma forma que animal não é sinônimo de ser humano. Dentro do reino animal, existe uma família de elementos chamada humanos. Dentro do Reino Hacker, existem alguns elementos que são criminosos. Isso é normal e esperado em qualquer sociedade. Você agora deve estar pensando: ah! então os criminosos são os Crackers! Ledo engano. Pode-se dizer que, via de regra, a diferença básica entre um hacker e um cracker é somente o enfoque dado a determinado assunto, objeto de estudo. Eu iria até mais fundo com a seguinte comparação: “Os Hackers estão para os Crackers, assim como os Físicos estão para os Engenheiros”. Os primeiros se perdem em abstrações, às vezes dedicando feriados e fins de semana, somente para descobrirem como uma coisa funciona. Já os segundos são capazes de perder o mesmo tempo, mas têm fins mais diretos como revender o fruto do sua intensa concentração.O primeiro descobre e divulga a técnica, o segundo, o produto trabalhado.

Então você jovem que já fez 14 anos e tem computador em casa e quer ser hacker e para isso você comprou um daqueles livros “seja hacker em 10 lições fáceis”. Humm… sem comentários.

Se quer realmente ser um hacker, você deve primeiro gostar, gostar muito de estudar. Mas estudar em latu sensu e não como um sujeito que entrevistaram na última feira do livro: “Que tipo de livro você mais gosta?”, perguntou a repórter, esperando ouvir alguma coisa como romance policial, ficção científica, ou poesia ou ainda um nome de algum autor, mas o rapazinho respondeu: “eeeerrr, gosto de livro de informática..”.

Explicando o chiste do rapaz: livro de informática é o nome de um grupo de publicações editadas para serem manuais de procedimentos. É a mesma coisa que perguntar para um estudante de letras que tipo de livro ele gosta e ele responder que gosta de Dicionários, ou para um Físico e ele responder que gosta de Formulários.

Não tem sentido ficar lendo dicionários e formulários por si só! Palavras e fórmulas não servem para nada se não estiverem associadas a um contexto ou problema, respectivamente. Da mesma forma, os livros mencionados não servem para nada se não estiverem associados ao software para o qual se dirigem. Um romance é eterno, um Manual do Corel Draw 1.0 só prestará enquanto não lançarem o Corel Draw 2.0.

Portanto, ser hacker não é invadir este ou aquele computador, e na mesma medida ser cracker não é quebrar a senha deste ou daquele software. É antes, uma filosofia de vida, um jeito de encarar o mundo.

Um manual do hacker seria algo como:

1. Desenvolva um senso de equilíbrio. Aprenda alguma arte marcial para manter sua mente ligada ao mundo que o envolve. Respeite o mundo que o envolve. Anarquia não é libertinagem! Ser um anarquista não é ser contra leis e policiais, mas antes e principalmente ser tão responsável por si mesmo e pelo próximo, que não necessite de leis. Note a sutil diferença que faz tornar isso muito mais difícil.

2. Leia. Mas leia muito. Não se prenda à informática. Leia romances, ficção, bula de remédio, tudo! Goste de ler, e entenda o que leu. Faça resumos periódicos dos livros que estiver lendo. Isso vai te ensinar também a escrever!

3. Aprenda inglês, francês e quantas outras línguas puder. Cada idioma possui um segredo, um ritmo e cultura próprios. Se você esperar que apareçam coisas traduzidas, estará esperando pela interpretação de pessoas que freqüentemente não sabem do que estão falando. Tenha suas próprias idéias sobre os fatos.

4. Procure ajudar os outros. Tente sempre trabalhar em grupo. Vão existir sempre as moscas prontas pra lamber o açúcar que você produz, mas não se desanime. Nunca pare para latir para um cachorro. Ele não pode te entender, mesmo que queira. Tenha em mente que acender uma luz para ler sempre atrai mariposas. Ser uma lâmpada implica em conviver com mariposas.

5. Orgulho é uma parede atrás da qual os incompetentes se escondem. Um hacker nunca é incompetente. Se você não sabe algo, pergunte. Perguntar é a base do conhecimento. Achar que pode tudo é coisa de criança. Um dia você terá que crescer, mesmo que não queira, então que cresça com dignidade. Agora preste atenção: pergunte com a intenção de entender. Perguntar por perguntar é apenas ser chato(a). Você sabe que atingiu uma verdade mais profunda quando nota o tipo de pergunta que ela gera e não pelas respostas que encontra.

6. Note que a liberdade é primeiro um estado de consciência de seus próprios limites. Isto significa saber até onde você pode pisar. A cada passo, olhe se não existem pés embaixo dos seus. Invadir espaços alheios abre portas para as mesmas invasões no seu espaço.

_______________________________________________________

Depois de alguns anos criando esses hábitos (sim, isso é um processo de uma vida toda), você estará pronto para o próximo passo: testar os limites de seus conhecimentos.

Os hackers de computador testam os limites do hardware e do software, das interconexões da rede mundial e por aí afora.

Os hackers de motocicletas testam os limites do motor, do carburador, das velas e ignição, da tração, das rodas no asfalto e nas trilhas de pedras.

Os hackers de partículas testam os limites dos átomos, das forças com as quais interagem, de suas relações com o universo.

Assim um dia, você já hacker, poderá dar um passo ainda além: testar os limites da sua própria realidade!

Roberto Parra

Texto extraído do site TheHacker

Publicado em Hackers. 5 Comments »