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
- 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".
- Existe uma ferramenta chamada Lynis que é uma ferramenta de auditoria de segurança que vamos analisar
- Use autenticação de chave pública / privada no servidor para SSH. Limite especificamente quais contas são permitidas para fazer o login
- Use um serviço de auditoria SaaS / scanner - estamos planejando executar isso em uma base regular
- 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.