Como gerir uma falha de segurança no seu servidor

Os servidores modernos executam frequentemente uma multiplicidade de aplicações de software.

No nosso caso, usamos o Docker no servidor para executar vários serviços.

Um destes serviços, Gitlab, tinha um problema de segurança (gitlab workhorse mais especificamente).

O que levou a uma infecção por troianos. (No nosso caso, os binários eram chamados de "wate" no caso de isso importar para alguém - embora isso também pudesse ter sido puramente nomes aleatórios).

Tomamos consciência disso devido ao nosso anfitrião, Hetzner, desligando o nosso IP (e enviando várias mensagens de aviso). O trojan tinha sido usado como parte de um ataque DDoS a um IP chinês e estava a gerar quantidades suspeitas de pacotes.

Tomámos medidas, e alguns conhecimentos úteis surgiram devido a esta situação.

Felizmente, o servidor era acessível através de um IP diferente (e a propósito - Hetzner também lhe permitirá fazer uma lista branca de um IP durante 2 horas para que você possa trabalhar até mesmo com um servidor com apenas um IP).

Aqui estão algumas dicas chave para diagnosticar tal falha de segurança

  • Não entre em pânico. Proteja os logs do docker primeiro (e possivelmente crie um backup) antes de desligar o servidor - você pode precisar desses logs para diagnosticar o problema.
  • verificar quais foram os últimos utilizadores a entrar / se foram criadas novas contas
  • Use um verificador de vírus no seu servidor (no sistema operacional do Docker). Nós usamos clamav para encontrar os trojans.
    • Nota: se você estiver rodando um servidor de e-mail também (como nós fazemos), o verificador de vírus provavelmente pegará um monte de e-mails suspeitos também.
  • Use um scanner rootkit - há dois que usamos, rkhunter e chkrootkit
  • Use o htop para descobrir quais processos estão a carregar o servidor
  • Use um utilitário de monitoramento de tráfego de rede
  • olhar através da saída de ps -aux para ver quaisquer processos suspeitos

A minha recomendação é que antes de fechando o recipiente você vai criar um depósito de ps -aux | grep wate (no nosso caso) para ver os processos de trojan em execução, e depois de fechá-lo novamente.

Desta forma, você poderá confirmar para si mesmo que a quebra de segurança foi contida e que os processos não se espalharam para fora do contentor do Docker.

Problemas de desempenho do WordPress

Também tivemos alguns problemas de desempenho do WordPress durante esta situação - enquanto o IP principal do servidor estava bloqueado.

Depois do Hetzner desbloquear o nosso IP, os problemas de desempenho desapareceram. (A nossa suspeita inicial era de que a violação tinha sido feita num contentor WordPress)

Ações para evitar a situação no futuro

  1. Nós vamos configurar atualizações automáticas de contêineres. O namorado da minha irmã recomendou-me o contentor Docker "Torre de Vigilância".
  2. Existe uma ferramenta chamada Lynis que é uma ferramenta de auditoria de segurança que vamos analisar
  3. Use autenticação de chave pública / privada no servidor para SSH. Limite especificamente quais contas são permitidas para fazer o login
  4. Use um serviço de auditoria SaaS / scanner - estamos planejando executar isso em uma base regular
  5. Comece a criar backups rolantes se ainda não os está a fazer - para que possa voltar a uma data passada

Não há vergonha num erro - a informática moderna é um esforço complexo. Enquanto você continuar aprendendo com as situações, e usando diferentes abordagens aos problemas de TI (e à vida em geral), há crescimento e movimento em frente. A vida.

Felizmente, a maioria das situações pode ser gerida e virada. Esperamos que você tenha backups no local e que possa se recuperar da sua situação.

Boa sorte e obrigado por ler isto.