Como detectar e remover um Trojan Linux?


16

Recentemente (re) deparei com isso:

Sim, eu sei que adicionar algum PPA / software aleatório de uma fonte não confiável está causando problemas (ou pior). Eu nunca faço isso, mas muitos fazem (muitos blogs e tabloides do Linux promovem a adição de PPAs para aplicativos sofisticados, sem aviso de que isso pode danificar seu sistema ou, pior ainda, comprometer sua segurança.)

Como um cavalo de Tróia ou um aplicativo / script não autorizado pode ser detectado e removido?


Fiz a mesma pergunta (3 minutos depois de ter perguntado aqui) em: askubuntu.com/questions/13265/… Deixe-me saber se isso é uma violação, vou excluir uma delas.
iamsid

Respostas:


20

Não há receita geral. Se o seu sistema foi infectado por um Trojan desconhecido, tudo o que você pode fazer é reinstalar.

Se você sabe que o Trojan opera de uma certa maneira - por exemplo, você sabe que o Trojan não infecta o kernel - pode haver uma maneira menos severa de se recuperar. Mas isso depende inteiramente de saber como o cavalo de Tróia se comporta. Se tudo o que você tem são os sintomas (como o computador enviando spam sem o seu consentimento), não há técnica geral: o detector de cavalos de Troia precisa ser mais inteligente que o designer de cavalos de Troia (e sortudo). No que diz respeito aos cavalos de Troia, a detecção e a ocultação são como armas e armaduras: há uma escalada tecnológica e nenhuma das partes tem uma vantagem intrínseca (embora os caminhantes tenham uma vantagem inicial).

Muitos sistemas possuem um canal de distribuição seguro. Por exemplo, quando você instala um pacote a partir dos repositórios do Ubuntu com as ferramentas baseadas no apt (apt-get, aptitude, synaptic, centro de software,…), a ferramenta verifica se o pacote foi assinado (verificado) por alguém em quem o Ubuntu confie. (A maioria das distribuições possui um mecanismo semelhante.) Quando você instala um pacote a partir de um PPA, tudo que você pode saber é que o proprietário do PPA examinou o pacote, o que não ajuda em nada se você não tiver motivos para confiar no proprietário do PPA.

Sobre trojans e backdoors, recomendo vivamente a leitura da palestra do prêmio Turing, de Ken Thompson , Reflections on Trusting Trust . Para resumir, ele mudou o compilador para que, ao compilar o programa de login, ele adicionasse um código que lhe permitisse efetuar login com uma senha secreta; depois ele mudou o compilador para que, quando ele se compilasse, inserisse o código para adicionar o backdoor; então ele recompilou todo o sistema (em particular o programa de login e o compilador); finalmente, ele restaurou a fonte do compilador para a fonte original e inquestionável. Mais uma vez, leia o artigo de Ken Thompson ; então você também pode ler o contraponto de David Wheeler , talvez melhor compreendido pelo artigo do blog de Bruce Schneier .


+1 na resposta descritiva e na recomendação desses artigos: eles ampliaram meu conhecimento. Obrigado.
iamsid

7

Se eu entendi corretamente, o "trojan" descrito neste artigo não pôde ser descoberto da maneira "normal" como malware "normal". Esse IRCd estava se comportando normalmente até ser usado, portanto, o administrador poderia encontrar essa falha de segurança apenas quando: 1) foi usada e as ações feitas por essa falha causaram entrada nos logs ou ficaram visíveis de outra maneira, 2) lendo o código-fonte.

O malware "real" do Linux também deve ser detectado pelo software AV para Linux ou discos de resgate do AV LiveCD, para que você possa verificar o computador usando esse software. Como você pode ver na lista SecureList , existem 1941 entradas com o Linux no nome e esse software deve ser detectado pelo software Kaspersky. Uma rápida olhada nesta lista mostra que muitas entradas são sobre algumas ferramentas e explorações de DDoS ou ferramentas que não podem se espalhar automaticamente e podem ser usadas apenas como ferramentas de ataque (por isso não são prejudiciais).

Para verificar backdoors / rootkits instalados pelo cracker, você pode usar a ferramenta que verifica somas de verificação de arquivos (você deve gerar uma lista de arquivos e somas de verificação no sistema limpo e atualizá-la após a atualização do software do servidor). Todo novo arquivo ou arquivo com soma de verificação incorreta é suspeito. A lista de soma de verificação e a ferramenta que a geram devem estar apenas em meio de leitura (o cracker também pode mudar, por exemplo, md5sum por sua própria versão que mostra somas de verificação incorretas). Essa maneira de encontrar malware pode ser usada em sistemas 'estáveis', onde o software não é atualizado todos os dias.

Alguns malwares podem ser detectados executando-se netstatlocalmente para verificar o tráfego na rede, mas se o sistema estiver infectado, os dados mostrados por netstattambém poderão ser alterados. Nesse caso, alguma solução é monitorar o tráfego de rede de outro computador (por exemplo, do roteador, para verificar qual tráfego é enviado para a Internet).


4

O SELinux e o AppArmor existem para prevenção de trojan / rootkit e outras infecções. Eu digo o caso do SELinux, que eu conheço melhor. Com o SELinux ativado, você fornece um contexto para todo o processo (daemon incluído) instalado na máquina. Você também rotula o sistema de arquivos para trabalhar com o contexto, correspondendo-os. Quando um processo tenta fazer algo fora do seu contexto, você recebe uma mensagem e, se o SELinux estiver no modo de imposição, a ação não poderá ser concluída.
Dessa forma, se o seu trojan ircd estivesse disposto a sobrescrever o comando ps ou outra coisa (estratégia comum para trojans / rootkits / worms para evitar a detecção), não seria permitido fazer isso. E você seria informado.
Eu sei que é difícil de configurar, mas minhas máquinas estão trabalhando com o SELinux aplicado agora, e meus (dois) laptops Fedora podem fazer qualquer coisa que um desktop precise sem muito trabalho.
Até meu servidor doméstico está agora no modo de imposição.
Outra estratégia é uma execução regular de detectores de rootkits, que calculam uma soma de verificação para os comandos circulares e informam sobre alterações nos comandos básicos.
Eu trabalho com o SELinux e o rkhunter ativados (mais um antivírus clamav).

Saudações


2

Outra resposta afirmou que os "hiders" (malware furtivo) têm uma vantagem intrínseca sobre os "detectores". Discordo. Isso é verdade se você se limitar a abordagens de detecção que dependem de assinaturas ou heurísticas para detectar malware. Mas há outra maneira de detectar malware: verificar mercadorias conhecidas. Tripwire, AIDE, etc. podem verificar arquivos no disco. Second Look pode verificar o kernel e processos em execução. O Second Look usa análise forense de memória para inspecionar diretamente o sistema operacional, serviços ativos e aplicativos. Ele compara o código na memória com o que foi lançado pelo fornecedor de distribuição do Linux. Dessa forma, ele pode identificar imediatamente modificações maliciosas feitas por rootkits e backdoors e programas não autorizados que estão em execução (cavalos de Troia, etc.).

(Divulgação: Eu sou o desenvolvedor principal do Second Look.)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.