Como verificar se um servidor Linux está limpo de rootkits / backdoors / botnets etc.?

9

No caso de um servidor Linux ser exposto à Internet com uma política de segurança extremamente baixa (pastas Samba anônimas r / w, servidor de banco de dados Firebird com senha de administrador padrão, sem firewall, etc.) por uma semana, como posso ter certeza? o sistema não é comprometido sem formatação e reinstalação completa, acessando-o apenas remotamente via SSH?

    
por Ivan 08.07.2010 / 23:05

8 respostas

7

Normalmente, eu sugeriria uma verificação local com uma ferramenta como chkrootkit , mas se a única maneira de executar o cheque é para fazê-lo remotamente, então eu recomendo que você tente Rootkit Hunter em seu lugar.

O Rookit Hunter verifica os rootkits e outras atividades, executando testes como os seguintes (consulte Projeto Informações para mais detalhes):

  • Comparação de hash MD5
  • Procure arquivos padrão usados pelos rootkits
  • Permissões de arquivo incorretas para binários
  • Procure por strings suspeitas nos módulos LKM e KLD
  • Procure por arquivos ocultos

Quero acrescentar que, como outros já disseram, a única maneira certa de garantir que não houve adulteração do seu serviço é reconstruí-lo. Essas ferramentas funcionam bem, mas não garantem 100% de sucesso.

    
por 08.07.2010 / 23:17
2

OSSEC verifica rootkits e detecta atividades suspeitas.

    
por 08.07.2010 / 23:17
2

Eu sei que esta resposta não é o que você quer ouvir, mas aqui vamos nós de qualquer maneira. Existem algumas ferramentas que podem verificar o sistema a melhor maneira de garantir que o sistema está limpo é limpar o servidor e reconstruir. Eu faria o seguinte:

  • Remova o computador da internet
  • Dados de backup e informações de configuração para remover dispositivos
  • Formatar armazenamento
  • Reinstalar base / configuração padrão / atualizações
  • Reconfigure o servidor usando dados antigos como referência
  • Restaurar dados do usuário

Aqui estão alguns recursos que eu começaria a ler se você ainda não tivesse lido.

[texto do link] [1] link text link text link text

[1]: link "Iniciantes em rootkits do Linux"

    
por 08.07.2010 / 23:34
2

Também não é a resposta que você quer, mas se houver a possibilidade de um sistema estar enraizado, pode ser muito difícil ter 100% de certeza de que o sistema está limpo. Os rootkits são projetados para serem difíceis de detectar. Se você executar os vários verificadores de raiz e fizer o check-out limpo, "muito provavelmente" seu sistema estará limpo.

Se a segurança é uma preocupação, eu consideraria a possibilidade de recriá-la como o pôster acima disse ou restaurá-la a partir de bons backups.

    
por 08.07.2010 / 23:41
1

Você realmente precisa ser proativo aqui. Não há uma maneira confiável de detectar rootkits nas máquinas, portanto, é necessário evitar que eles cheguem lá e encontrar maneiras de detectá-los na entrada (por exemplo, através de interfaces de trava e bloqueadas).

Se você acha que uma máquina foi explorada de alguma forma, você realmente precisa reinstalar - não há nenhuma maneira garantida de limpá-la antes de reinstalá-la. De longe a opção mais segura.

    
por 08.07.2010 / 23:48
1

RKhunter, Tripwire etc são ótimos, mas só beneficiam se foram instalados antes do incidente - isso é porque eles são ótimos para detectar se os arquivos-chave foram alterados. Se você instalar o RKHunter agora e executá-lo, ele detectará a inclusão de muitos rootkits, mas não detectará nenhum backdoor que um invasor tenha aberto no SO ou nos aplicativos que você usa.

Por exemplo, você pode entrar em um computador, criar um novo usuário, conceder a ele permissões SSH e sudo e depois limpar, deixando uma configuração de aparência legítima e nenhum rootkits - depois voltar mais tarde e fazer o seu mal .

A melhor coisa a fazer é verificar em quais portas os serviços estão sendo ouvidos, depois verificar a configuração de todos esses serviços e certificar-se de que sejam todos legítimos. Em seguida, analise a configuração do firewall e bloqueie as portas de que você não precisa, tanto de entrada quanto de saída. Em seguida, instale o RKHunter etc para ver se algum script-kiddie soltou um kit de raiz lá bagunçado.

Para ser franco, é provavelmente menos trabalhoso fazer o que JJ sugeriu e reconstruir do que ter absoluta certeza de que o computador não foi comprometido. São os dados que são valiosos, não o sistema operacional e a configuração (além das horas de trabalho para configurar isso).

Você nunca terá certeza de que não foi quebrado por alguém mais esperto que você.

    
por 09.07.2010 / 00:45
0

O primeiro passo deve ser rkhunter / chkrootkit, mas eu também tive sorte no passado com os recursos que vêm embutidos em alguns gerenciadores de pacotes, por exemplo, 'rpmverify', que irá passar por todos os pacotes em seu sistema. e verifique se o MD5Sums dos arquivos incluídos não difere dos arquivos no disco.

Os binários principais devem ter MD5s idênticos aos especificados nos bancos de dados RPM ou DPKG, portanto, se forem diferentes, você sabe que há algo estranho acontecendo.

    
por 09.07.2010 / 00:18
-1

A maneira mais eficaz de determinar se seu sistema em execução está comprometido é usar o Segundo acesso . Ele verificará o kernel e todo o software em execução na memória para garantir que eles sejam consistentes com o que o fornecedor de distribuição enviou. Esta é uma abordagem muito melhor do que rkhunter, chkrootkit, etc., que procura por artefatos de infecções conhecidas específicas. O Second Look não faz suposições sobre a integridade do sistema operacional, portanto, você não precisa usá-lo ou instalá-lo antes de um incidente.

(Isenção de responsabilidade: Eu sou o principal desenvolvedor do Second Look.)

    
por 13.06.2013 / 14:37