Como fazer um post-mortem de um servidor hack

28

Eu tenho uma máquina Windows Server 2003 SP2 com o IIS6, o SQL Server 2005, o MySQL 5 e o PHP 4.3 instalados nela. Esta não é uma máquina de produção, mas está exposta ao mundo através de um nome de domínio. A área de trabalho remota está ativada na máquina e duas contas administrativas estão ativas nela.

Esta manhã, descobri que a máquina tinha sido desconectada com o nome de um usuário desconhecido ainda na caixa de texto de login. Após investigação adicional, descobri que dois usuários do Windows foram criados, o antivírus foi desinstalado e um punhado de arquivos .exe foram descartados na unidade C :.

O que eu gostaria de saber é, quais etapas devo tomar para garantir que isso não aconteça novamente e as áreas em que devo me concentrar para determinar o caminho de entrada. Eu já verifiquei netstat -a para ver quais portas estão abertas, e nada parece estranho lá. Eu encontrei arquivos desconhecidos na pasta de dados do MySQL, o que eu acho que pode ter sido o ponto de entrada, mas não tenho certeza.

Eu realmente aprecio os passos para conduzir um bom post-mortem de um hack de servidor para que eu possa evitar isso no futuro.

Revisão pós-investigação

Depois de algumas investigações, acho que descobri o que aconteceu. Primeiro, a máquina não esteve on-line durante o período de agosto '08 a outubro '09. Durante esse período, foi descoberta uma vulnerabilidade de segurança, a Vulnerabilidade MS08-067 . "Esta é uma vulnerabilidade de execução remota de código. Um invasor que explorar com êxito essa vulnerabilidade poderá assumir o controle total de um sistema afectado remotamente. Em Microsoft Windows 2000-baseado, baseado no Windows XP, e Windows Server 2003 sistemas baseados em, um invasor pode explorar esta vulnerabilidade sobre RPC sem autenticação e poderia executar código arbitrário. " Essa vulnerabilidade foi corrigida com a Atualização de Segurança KB958644, lançada em outubro de 2008.

Como a máquina estava off-line no momento e perdi essa atualização, acredito que essa vulnerabilidade foi explorada logo após a máquina ter voltado a funcionar em outubro de 2009. Eu encontrei referências a um programa bycnboy.exe que tem sido descrito como um programa backdoor que então cria muita confusão em um sistema infectado. Logo depois que a máquina ficou on-line, as atualizações automáticas instalaram o patch que impedia o controle remoto do sistema. Como o backdoor estava fechado agora, acredito que o invasor criou contas físicas na máquina e conseguiu utilizar a máquina por mais uma semana até que eu percebesse o que estava acontecendo.

Após processar agressivamente o código malicioso, .exes e .dlls, removendo sites de hospedagem própria e contas de usuário, a máquina está novamente em um estado de funcionamento. No futuro próximo, estarei monitorando o sistema e revendo os logs do servidor para determinar se uma repetição do incidente está acontecendo.

Obrigado pelas informações e etapas fornecidas.

    
por Chris 28.01.2010 / 21:14

1 resposta

26

Fazer um post-mortem é uma arte negra em si mesmo. É um pouco diferente a cada vez, porque na verdade não há dois arrombamentos iguais. Com isso em mente, uma visão geral básica do meu processo recomendado está abaixo, com algumas notas específicas para sua situação:

  1. Desconecte fisicamente a máquina da rede. (Realmente. Faça agora.)
  2. Etapa opcional: faça uma cópia da imagem binária do disco rígido para uso futuro.
  3. Faça uma cópia de todos os arquivos de log, dados valiosos etc. em um disco rígido removível
    • Opcionalmente, copie todas as "ferramentas de hackers" que você encontrar também
  4. Comece o post-mortem real. No seu caso:
    • Anote todas as contas de usuário novas ou ausentes. Veja se suas pastas iniciais têm algum conteúdo "interessante".
    • Anote quaisquer programas / binários / arquivos de dados novos ou ausentes.
    • Verifique primeiro os logs do MySQL - Procure por algo "incomum"
    • Verifique o restante dos registros do servidor. Veja se você pode encontrar os novos usuários que estão sendo criados, endereços de onde eles entraram, etc.
    • Procure por evidência de dano ou roubo de dados
  5. Quando você encontrar a causa do problema, observe como evitar que isso aconteça novamente.
  6. Limpe o servidor: formate e reinstale tudo, restaure seus dados & ligue o orifício original com as suas notas do # 5.

Você normalmente realiza a etapa 2 se estiver envolvendo a aplicação da lei. Você realiza a Etapa 3 para poder revisar as informações depois que o servidor for reconstruído sem precisar ler a cópia da imagem feita na etapa 2.

O grau de detalhamento da etapa 4 depende de seus objetivos: apenas conectar o buraco é um tipo diferente de investigação do que rastrear quem roubou alguns dados importantes:)

O passo 6 é IMHO crítico. Você não "conserta" um host comprometido: você o limpa e recomeça de um bom estado conhecido. Isso garante que você não vai sentir falta de uma pepita de sobra na caixa como uma bomba-relógio.

Isso não é de forma alguma um esboço post-mortem completo. Estou marcando isso como wiki da comunidade, pois estou sempre procurando melhorias no processo - não o uso com frequência: -)

    
por 28.01.2010 / 21:36