# Rootkit

Rootkit é uma coleção de software de computador, normalmente mal-intencionada, projetada para permitir o acesso privilegiado a um computador ou a uma área do software que não é permitida (por exemplo, a um usuário não autorizado). O termo rootkit é a junção da palavra "root" (do inglês raiz e nome tradicional da conta privilegiada de superusuário administrador em sistemas operacionais semelhantes a Unix) e a palavra "kit" (que se refere aos componentes de software que implementam a ferramenta). O termo "rootkit" tem conotações negativas através de sua associação com software malicioso. Uma das propostas desse programa é o uso para ocultar processos e arquivos específicos em algumas partes do sistema.

## História

O termo rootkit ou root kit originalmente se referia a um conjunto de ferramentas administrativas modificadas maliciosamente para um sistema operacional do tipo Unix que concedia acesso "root". Se um intruso pudesse substituir as ferramentas administrativas padrão em um sistema por um rootkit, o intruso poderia obter acesso root no sistema enquanto simultaneamente ocultava essas atividades do administrador do sistema legítimo. Esses rootkits de primeira geração eram triviais de detectar usando ferramentas como o Tripwire que não haviam sido comprometidos para acessar as mesmas informações. Lane Davis e Steven Dake escreveram o mais antigo rootkit conhecido em 1990 para o sistema operacional SunOS UNIX da Sun Microsystems. Na palestra que ele deu ao receber o prêmio Turing em 1983, Ken Thompson da Bell Labs, um dos criadores do Unix, teorizou sobre a subversão do compilador C em uma distribuição Unix e discutiu o exploit. O compilador modificado detectaria tentativas de compilar o comando Unix e geraria código alterado que aceitaria não apenas a senha correta do usuário, mas um "backdoor adicional login", senha conhecida pelo invasor. Além disso, o compilador detectaria tentativas de compilar uma nova versão do compilador e iria inserir as mesmas explorações no novo compilador. Uma revisão do código-fonte do login de comando ou do compilador atualizado não revelaria qualquer código malicioso. Este exploit era equivalente a um rootkit.
O primeiro vírus de computador documentado para atingir o computador pessoal, descoberto em 1986, usava técnicas de camuflagem para se esconder: o vírus Brain interceptava tentativas de ler o setor de inicialização e as redirecionava para outro lugar no disco, onde uma cópia do setor de inicialização original foi mantido. Com o tempo, os métodos de camuflagem de vírus DOS tornaram-se mais sofisticados. Técnicas avançadas incluíam a conexão de chamadas de interrupção de BIOS INT 13H de disco de baixo nível para ocultar modificações não autorizadas em arquivos. O primeiro rootkit malicioso para o sistema operacional Windows NT apareceu em 1999: um trojan chamado NTRootkit criado por Greg Hoglund. Ele foi seguido pelo HackerDefender em 2003. O primeiro rootkit direcionado ao Mac OS X apareceu em 2009, enquanto o worm Stuxnet foi o primeiro a ter como alvo controladores lógicos programáveis ​​(PLC).

### Caso de escutas gregas 2004–05

O caso de escutas gregas de 2004–05, também conhecido como Greek Watergate, envolveu a escuta ilegal de mais de 100 telefones celulares na rede Vodafone Grécia pertencentes principalmente a membros do governo grego e funcionários públicos de alto escalão. As escutas começaram por volta do início de agosto de 2004 e foram removidas em março de 2005 sem descobrir a identidade dos invasores. Os hackers instalaram um rootkit direcionado à central telefônica AX da Ericsson. De acordo com o IEEE Spectrum , esta foi "a primeira vez que um rootkit foi observado em um sistema de propósito especial, neste caso, uma central telefônica da Ericsson". O rootkit foi projetado para corrigir a memória da exchange enquanto ela estava em execução, habilitar escutas telefônicas ao desabilitar logs de auditoria, corrigir os comandos que listam processos ativos e blocos de dados ativos e modificar o comando de verificação de checksum do bloco de dados. Um "backdoor" permitia a um operador com status sysadmin desativar o log de transações da exchange, alarmes e comandos de acesso relacionados ao recurso de vigilância. O rootkit foi descoberto depois que os invasores instalaram uma atualização defeituosa, o que fez com que o SMS não fosse entregue, levando à geração de um relatório de falha automatizado. Os engenheiros da Ericsson foram chamados para investigar a falha e descobriram os blocos de dados ocultos contendo a lista de números de telefone sendo monitorados, juntamente com o rootkit e o software de monitoramento ilícito.

## Comportamento

O malware se integra a partes do sistema operacional para que não seja possível fazer a leitura do mesmo no disco rígido do computador. Assim dando a impressão que o mesmo não existe. Desta forma os antivírus não conseguem ler o código do malware para efetuar testes de detecção e identificar a ameaça. Outra função comum é camuflar seu processo de execução o fazendo rodar como uma thread em algum processo essencial do sistema, como o Explorer no Windows. Assim não podendo ser visualizado no gerenciador de tarefas e enganando profissionais na área de TI e sistemas de detecção menos avançados.

## Instalação

A instalação do rootkit pode ser automatizada, ou um invasor pode pessoalmente instalá-lo depois de obter acesso root ou de administrador. A obtenção desse acesso normalmente é resultado de um ataque direto em um sistema, ou seja, a exploração de uma vulnerabilidade conhecida (como escalonamento de privilégios) ou uma senha (obtida por táticas de cracking ou de engenharia social, como "phishing"). Uma vez instalado, torna-se possível ocultar a invasão, bem como manter o acesso privilegiado enquanto estiver instalado. A chave aqui é o acesso root ou administrador. Controle total sobre um sistema significa que o software existente pode ser modificado, incluindo o software que poderia ser usado para detectá-lo ou removê-lo.

## Detecção

A detecção de rootkits é difícil pois o próprio rootkit pode subverter o software que se destina a encontrá-lo. Os métodos de detecção incluem o uso de um sistema operacional alternativo e confiável, métodos baseados em comportamento, verificação de assinatura, verificação de diferenças e análise de despejo de memória. O problema fundamental com a detecção de rootkits é que se o sistema operacional foi subvertido, particularmente por um rootkit no nível do kernel, não é confiável encontrar modificações não autorizadas em si mesmo ou em seus componentes. Ações como solicitar uma lista de processos em execução ou uma lista de arquivos em um diretório não podem ser confiáveis ​​para se comportar conforme o esperado. Em outras palavras, os detectores de rootkits que funcionam enquanto são executados em sistemas infectados só são eficazes contra rootkits que tenham algum defeito em sua camuflagem ou que sejam executados com privilégios de modo de usuário mais baixos do que o software de detecção no kernel.
Assim como os vírus de computador, a detecção e eliminação de rootkits é uma luta contínua entre os dois lados desse conflito. A detecção pode ter várias abordagens diferentes, incluindo a procura de "assinaturas" de vírus (por exemplo, software antivírus), verificação de integridade (por exemplo , assinaturas digitais ), detecção baseada em diferenças (comparação de resultados esperados versus resultados reais) e detecção comportamental (por exemplo, monitoramento uso da CPU ou tráfego de rede). Para rootkits no modo kernel, a detecção é consideravelmente mais complexa, exigindo um exame cuidadoso da Tabela de Chamadas do Sistema para procurar por funções presas onde o malware possa estar subvertendo o comportamento do sistema, bem como a verificação forense da memória em busca de padrões que indiquem processos ocultos.
As ofertas de detecção de rootkits do Unix incluem Zeppoo, chkrootkit, rkhunter e OSSEC. Para Windows, as ferramentas de detecção incluem Microsoft Sysinternals RootkitRevealer, Avast Antivirus, Sophos Anti-Rootkit, F-Secure, Radix, GMER e Windows SCOPE. Quaisquer detectores de rootkit que se mostrem eficazes acabam contribuindo para sua própria ineficácia, pois os autores de malware adaptam e testam seu código para escapar da detecção por ferramentas bem usadas. A detecção pelo exame do armazenamento enquanto o sistema operacional suspeito não está operacional pode perder rootkits não reconhecidos pelo software de verificação, pois o rootkit não está ativo e o comportamento suspeito é suprimido; o software antimalware convencional executado com o rootkit operacional pode falhar se o rootkit se ocultar de forma eficaz.

## Remoção

A remoção pode ser complicada ou praticamente impossível, especialmente nos casos em que o rootkit reside no kernel. A reinstalação do sistema operacional pode ser a única solução disponível para o problema. Ao lidar com rootkits de firmware, a remoção pode exigir substituição de hardware ou equipamento especializado.
Vários fornecedores de software de segurança oferecem ferramentas para detectar e remover automaticamente alguns rootkits, normalmente como parte de um conjunto antivírus . A partir de 2005, a ferramenta mensal de remoção de software mal-intencionado do Windows da Microsoft é capaz de detectar e remover algumas classes de rootkits. Além disso, o Windows Defender Offline pode remover rootkits, pois é executado em um ambiente confiável antes do início do sistema operacional. Alguns antivírus podem ignorar o sistema de arquivos APIs, que são vulneráveis ​​à manipulação por um rootkit. Em vez disso, eles acessam diretamente as estruturas do sistema de arquivos brutos e usam essas informações para validar os resultados das APIs do sistema para identificar quaisquer diferenças que possam ser causadas por um rootkit.
Há especialistas que acreditam que a única maneira confiável de removê-los é reinstalar o sistema operacional a partir de uma mídia confiável. Isso ocorre porque as ferramentas de remoção de antivírus e malware executadas em um sistema não confiável podem ser ineficazes contra rootkits de modo kernel bem escritos. A inicialização de um sistema operacional alternativo a partir de uma mídia confiável pode permitir que um volume de sistema infectado seja montado e potencialmente limpo com segurança e que dados críticos sejam copiados—ou, alternativamente, um exame forense realizado.
Sistemas operacionais leves, como Windows PE , Windows Recovery Console , Windows Recovery Environment , BartPE ou Live Distros podem ser utilizados para este fim, permitindo que o sistema seja "limpo". Mesmo que o tipo e a natureza de um rootkit sejam conhecidos, o reparo manual pode ser impraticável, enquanto a reinstalação do sistema operacional e dos aplicativos é mais segura, simples e rápida.