Eu tenho um servidor doméstico executando uma distribuição ubuntu de desktop. Encontrei isso no meu crontab
* * * * * /home/username/ /.access.log/y2kupdate >/dev/null 2>&1
e ao procurar nesse diretório (o espaço após o nome de usuário / é um nome de diretório), encontrei muitos scripts que obviamente estão fazendo algo que não deveriam.
Antes de limpar o computador e reinstalar as coisas, gostaria de descobrir o que causou a violação de segurança e quando foi feito. Então eu não abro o mesmo buraco novamente.
Quais arquivos de log devo procurar? Os únicos servidores que eu conheço que estão executando no computador são sshd e lighttpd.
O que devo fazer para detectar se coisas assim acontecem novamente?
Respostas:
Primeiro, verifique se o computador está desconectado de qualquer rede.
Segundo, certifique-se de obter dados importantes das unidades antes de inicializar o sistema operacional invadido novamente.
Comece verificando os carimbos de hora nos arquivos em questão. Muitas vezes eles são precisos.
Faça referência cruzada com os registros httpd e auth, se não tiverem sido limpos. Se um outro foi apagado, você pode apostar que esse foi o meio de entrada. Se ainda estiverem intactos, você poderá obter mais informações sobre como eles entraram no log.
Se todos estiverem limpos, você está completamente ferrado. Provavelmente levaria mais tempo para descobrir o que aconteceu do que vale a pena.
Você mencionou que esses dois serviços estavam em execução. Havia um bom firewall para impedir que todo o resto fosse acessado? Você permitiu o SSH na porta 22; seu login é razoavelmente fácil de adivinhar; você permitiu logins de senha; você teve algum tipo de limitação de taxa real para logins de senha? Você possui algum software adicional instalado com o lighttpd; perl; php; cgi; um CMS ou similar? Você estava executando a versão atualizada de todo o software; você assina notificações de segurança para todo o software executado e avalia cuidadosamente todas as notificações para ver se elas se aplicam ao software que você executa / expõe ao público?
fonte
Esse é um tipo de tópico em si; você pode pesquisar no google forensics linux para obter mais informações. Basicamente, você teria que criar uma imagem de suas unidades para análise offline primeiro, depois limpar o computador e instalar a partir do slate limpo.
E lembre-se de todos os acessórios. Qualquer pessoa que usasse o computador poderia ter suas senhas comprometidas. Altere as senhas, mantenha-as off-line etc. até chegar em uma "sala limpa" (VM isolada).
Caso contrário, é muita verificação de logs (que podem ser falsificados) e verificação de aplicativos (scripts php? Bancos de dados? Atualizado para as correções mais recentes? Outros usuários que fornecem senhas?)
Não há literalmente uma maneira fácil de responder à sua pergunta, pois você precisará fazer um trabalho forense no servidor e verificar se há falhas. Você pode usar algumas ferramentas automatizadas, mas lembre-se de que, se o invasor tiver privs do Root, você não poderá mais confiar nos binários do sistema nem nos logs.
Quanto a ataques futuros, dependendo de quão seguro você queira torná-lo, você pode começar redirecionando seus logs para um sistema que é usado apenas para salvar os logs do sistema. Nenhum outro acesso, para reduzir a pegada de ataque.
Você também executaria um software de soma de verificação em seu sistema, como o Tripwire, para verificar a integridade de seus arquivos.
E, é claro, mantenha-se atualizado com as atualizações e execute o software de verificação que verifica se há rootkits.
Mais uma vez, a segurança não é uma coisa que muda muito. Também pode ser uma especialidade em si mesma. A segurança em camadas pode ser tão rígida quanto a verificação de hosts / IPs que não pertencem à sua rede, criptografar todo o acesso ao sistema, enviar logs diários de alterações encontradas no sistema para você e configurar um honeypot na sua rede para procurar atividade estranha (por que meu servidor está tentando se conectar à porta 25 no computador honeypot?)
Em primeiro lugar, se você deseja verificar a atividade, obtenha a imagem do disco e reinstale o software do servidor. Do princípio. Os binários do servidor não podem mais ser confiáveis.
EDIT - algumas outras coisas que me ocorrem desde que você está executando o SSH - instalam denyhosts. Ele pode ser configurado para que ataques automatizados contra seu sistema no SSHD sejam bloqueados após um número X de tentativas. Ele também pode ser configurado para atualizar de outros servidores denyhost em uma "nuvem" para compartilhar IPs bloqueados e ajudar a minimizar ataques automatizados. Você também pode mover a porta em que está ouvindo; muitas pessoas apontam que é apenas segurança através da obscuridade, mas, dado o número de bots digitalizados, isso reduz significativamente as tentativas aleatórias de invadir.
fonte