Puxar rede ou energia? (para contianing um servidor raiz)

11

Quando um servidor é enraizado ( por exemplo, uma situação como essa ), uma das primeiras coisas que você pode decidir fazer é a contenção . Alguns especialistas em segurança recomendam não entrar na correção imediatamente e manter o servidor on-line até que o forense seja concluído. Esses conselhos são geralmente para o APT . É diferente se você tiver violações ocasionais de crianças pequenas do Script , portanto, você pode corrigir (consertar as coisas) com antecedência. Uma das etapas da correção é a contenção do servidor. Citando a resposta de Robert Moir - "desconecte a vítima de seus assaltantes".

Um servidor pode ser contido puxando o cabo de rede ou o cabo de alimentação .

Qual método é melhor?

Levando em consideração a necessidade de:

  1. Protegendo as vítimas de mais danos
  2. Executando análises forenses bem-sucedidas
  3. (Possivelmente) Protegendo dados valiosos no servidor

Editar: 5 suposições

Assumindo:

  1. Você detectou cedo: 24 horas.
  2. Você deseja se recuperar mais cedo: 3 dias de 1 administrador de sistemas no trabalho (forense e recuperação).
  3. O servidor não é uma máquina virtual ou um contêiner capaz de tirar uma captura instantânea capturando o conteúdo da memória dos servidores.
  4. Você decide não tentar processar.
  5. Você suspeita que o invasor pode estar usando algum tipo de software (possivelmente sofisticado) e esse software ainda está sendo executado no servidor.
Aleksandr Levchuk
fonte
2
Você também pode querer visitar aqui: security.stackexchange.com
sysadmin1138
possível duplicata do meu servidor foi invadido EMERGÊNCIA
Tom O'Connor
2
@ Tom - não é um tolo, é uma discussão de extensão de um ponto específico dessa pergunta.
mfinni
3
@ sysadmin1138, tente especificamente security.stackexchange.com/q/181/33
AviD 3/11
possível duplicata da reinstalação após um comprometimento raiz?
John Gardeniers

Respostas:

6

Se você está enfrentando um APT, sua melhor opção é configurar um honeypot e investigar minuciosamente todo o tráfego que entra e sai dele, além de monitorar o servidor.

A medida de passar pela memória é tão cara em termos de tempo e esforço que geralmente não vale a pena, a menos que você tente todos os outros métodos e, se você determinar que vale a pena, geralmente é melhor configurar um honeypot que permita que você despeje facilmente a memória e o estado do sistema para outra máquina em tempo real, para que você possa fazer análises com menos ameaças de serem detectadas enquanto a máquina estiver em funcionamento.

Eu tive uma situação em que o invasor mantinha tudo na memória na medida em que, exceto pelos logs, a máquina parecia exatamente com sua imagem uma vez desligada e ligada novamente. Eles então voltariam a usá-lo novamente, porque a vulnerabilidade ainda estava lá - eles não precisavam deixar nenhum backdoor para si. Uma avaliação de memória poderia ter ajudado aqui, mas assistir o tráfego foi suficiente neste caso para identificar a vulnerabilidade rapidamente.

Portanto:

O único motivo para evitar puxar o poder e fazer a avaliação offline do disco é se você estiver enfrentando o problema de fazer uma análise completa da ameaça da ameaça enquanto ela estiver no lugar e em operação. Se você chegou ao ponto em que isso é necessário, não há razão para puxar qualquer um dos plugues.

Se você não estiver fazendo uma análise de memória, puxar o plugue de energia é sua melhor aposta - puxar a Ethernet (ou usar um comando de desligamento) só avisará o software do invasor com antecedência - o que importa ocasionalmente.

Então:

Puxe os dois, a menos que você esteja fazendo uma análise de memória; nesse caso, não puxe também.

Adam Davis
fonte
16

A análise forense da RAM (por exemplo, / dev / shm) pode ser útil.

Mas eu prefiro desconectar o cabo de alimentação (mas tente fazer o login e o rsync / proc logo antes).

Os motivos para optar pelo cabo de alimentação são:

  1. Quando você faz perícia em um sistema hackeado, está "andando por toda a cena do crime"
  2. O kit raiz continua em execução - não é tão difícil para o mal-intencionado executar algo (por exemplo, eliminação do sistema) no evento Network Link Down .

Kyle Rankin deu uma boa introdução à discussão forense - lá ele recomenda puxar o cabo de alimentação.

Aleksandr Levchuk
fonte
+1 por "percorrer toda a cena do crime". A menos que você saiba exatamente o que está fazendo ou realmente não queira coletar evidências forenses exatas, convém chamar os especialistas em vez de poluir as evidências enquanto aprende a fazer
análises
10

Desconecte a rede. O invasor não pode obter informações adicionais se não houver conexão de rede. É muito difícil (leia-se: impossível) realizar análises forenses sem energia.

Jason Berg
fonte
3
Você pode (e provavelmente deve) executar análises forenses off-line (A) via CD ao vivo, (B) movendo o disco rígido para um sistema diferente ou (C) depois de capturar imagens dos discos rígidos afetados (via CD ao vivo) .
Aleksandr Levchuk
3
Muitas vezes, evidências úteis estão na memória. Isso precisa ser permitido antes que qualquer perda de energia seja recomendada.
Sirex
Também pensar para desconectar a interface LOM por segurança :)
Kedare
7

Hoje em dia, ele pode ser uma máquina virtual para que qualquer um dos métodos seja fácil e possa ser feito remotamente. (Máquinas virtuais também dão origem à possibilidade de usar instantâneos)

Eu sugiro desconectar da rede como um primeiro passo automático, porque isso lhe dá tempo para refletir sobre qual deve ser o próximo passo, se o próximo passo é arrancar o cabo de alimentação ou outra coisa. Se você conhece seus "procedimentos de resposta de segurança" corporativos, não permitirá que você gaste tempo pesquisando detalhadamente a máquina, em seguida, preservar o conteúdo da RAM pode não ser tão importante.

Eu sugiro que fazer "separar a vítima de seus assaltantes" seja mais importante do que como, então as duas abordagens são válidas. Eu não teria problemas em puxar o cabo de força, vamos colocar dessa maneira.

Rob Moir
fonte
+1 para a VM. Se desligar a rede, o rootkit continua correndo - não tão difícil para o malicioso para executar alguma coisa (por exemplo, sistema wipe-out) no link de rede de Down evento
Aleksandr Levchuk
6
Instantâneos do estado do sistema em execução são uma ótima idéia. Estou chateado comigo mesmo por não pensar nisso.
Jgoldschrafe #
@ Alexsandr - Eu tenho tentado pensar no exemplo real e estou desenhando um espaço em branco, mas eu me lembro de um rootkit que permanece inteiramente na memória, para que se perdesse quando o plugue fosse puxado. Eu acho que é um caso de qualquer maneira, existe o risco de perder evidências.
quer
6

Esta não é uma situação de ou / ou. Você geralmente deseja fazer as duas coisas - deseja executar determinados testes forenses (despejo de processos em execução, soquetes de escuta, arquivos em / tmp etc.) em um sistema que foi removido da rede e, em seguida, executar o diagnóstico restante de um cofre ambiente (ou seja, um CD ao vivo). Existem situações em que nenhuma das abordagens é a correta, e você precisa pensar e entender quais podem ser sua organização.

jgoldschrafe
fonte
Se você desconectar a rede, o rootkit continua sendo executado - não é tão difícil para o código malicioso executar algo (por exemplo, eliminação do sistema) em um evento de Link de Rede Inativo .
Aleksandr Levchuk
Definitivamente, isso é verdade, e é uma chance de você avaliar e decidir se deseja, dependendo da sensibilidade da situação. Alguns rootkits são residentes apenas na memória e, se você consumir energia do sistema, você elimina qualquer chance de descobrir como ele chegou lá. Você pode tentar bloquear o tráfego da porta do switch enquanto mantém o estado do link, mas qualquer rootkit é um software e pode fazer qualquer coisa que qualquer outro software possa fazer - não há nada impedindo-os de investigar o gateway padrão e acionar a mesma bomba se estiver inacessível.
Jgoldschrafe
4

Antes de fazer qualquer coisa, descubra se precisa preservar evidências para uma eventual acusação. O manuseio de evidências é um assunto muito complicado e não é para os fracamente treinados. Depois de responder, a pessoa forense treinada em computação pode levá-lo a partir daí.

sysadmin1138
fonte
1
Primeiro, acho que se deve decidir processar ou não? . Kyle Rankin em sua palestra ( goo.gl/g21Ok ). Começa discutindo isso. Para processar, seria necessário fornecer evidências de perda monitória substancial.
Aleksandr Levchuk
1
@Aleksander Geralmente, você precisa saber muito, muito cedo no processo, se pode ou não reutilizar o hardware e os dados comprometidos ou se precisará armazená-lo e construir um novo sistema a partir de peças completamente novas. Isso é muito provável antes mesmo de você provar perdas financeiras ou de reputação nos negócios. A preservação da cadeia de evidências precisa acontecer no momento em que alguém percebeu um evento potencialmente acionável.
sysadmin1138
Geralmente, é melhor começar mantendo as opções em aberto ou não, pois você pode não saber se existe perda monetária; portanto, nos estágios iniciais, fazendo tudo de acordo com as regras, é importante manter a cadeia de custódia.
Rory Alsop
3

Não há necessidade de desligar o servidor. Você pode simplesmente desativar a conectividade do gateway / roteador de borda. Uma regra de firewall será suficiente para descartar qualquer outro pacote enviado / recebido.

Khaled
fonte
+1 Essa é uma das razões pelas quais ter um gateway é uma boa ideia. Mas e se você não tiver um? Se você desconectar o cabo de rede direto - o rootkit poderá receber o evento Network Link Down . E não é uma boa ideia fazer login no servidor raiz e fazer algo lá no dia 0?
Aleksandr Levchuk
2

A resposta depende muito do que você quer dizer com "enraizado". Obter a liderança da rede geralmente é uma boa ideia, principalmente se você acredita que este foi um invasor humano ativo que procura informações confidenciais.

Puxar o poder é muito mais difícil de responder. Se você achar que há um código malicioso em execução que pode cobrir suas trilhas, faça-o. No entanto, se você sentir que ainda há evidências de uma invasão na memória, deixe-a em execução.

No geral, depende se você está lidando com código malicioso, equipe insatisfeita ou alguém com um objetivo específico em mente.

Se errar por precaução, puxe a força. Você perderá uma pequena quantidade de evidências em potencial, mas poderá impedir a remoção maciça de outras evidências por código automatizado.

- Então, novamente, se você sente que a máquina foi comprometida e sabe que não possui dados confidenciais, está muito confiante na segurança da sua rede em outro lugar e entende as consequências de fazê-lo. veja se você consegue rastrear ou entender o ataque e partir daí. Normalmente, isso não é uma boa ideia.

Sirex
fonte
1

Minha resposta foi antes da edição, com as 5 suposições.
Minha suposição era que, se seu servidor foi enraizado, você está lidando com um invasor sofisticado e direcionado e não tem como saber quando e de onde o ataque ocorreu. (Como a máquina estava enraizada, obviamente você não pode confiar em nada do
que está dizendo . No entanto, você pode ter algumas informações fora da caixa, por exemplo, IDS ...) Presumi também que você tem interesse em lidar com o invasor e não apenas em acenar como uma mosca incômoda. Se o invasor assumido for um garoto de script, isso seria diferente. Também assumi que, como o invasor é direcionado e sofisticado, é provável que eles tenham um software personalizado em execução na sua máquina, que possa responder às suas ações nele ...


Nem.
Confira /security//q/181/33 , de qualquer maneira é uma má idéia.
É como dar alguns bandaids ao cavaleiro negro ... muito pouco, muito tarde, isso não vai ajudar muito.


Para todos aqueles que acham que essa resposta está muito longe ou simplesmente não são "preocupados com a segurança" - você precisa perceber que já é tarde demais .
Não é mais o seu servidor, mesmo que você o desconecte completamente. Mesmo se você desligar, execute todos os seus AVs e o que quer que seja - você não é mais o proprietário, eles são.
Essa é a definição de "enraizada".

Agora, supondo que eles sejam os donos e possam ocultar sua propriedade de você, você precisa considerar - o que a desconectará?
A única coisa que conseguirá - já que continuará enraizada de qualquer maneira - é deixar seu adversário saber que você está interessado neles. O que simplesmente coloca seus guardas e os faz começar a limpar depois de si mesmos (se ainda não o fizeram), o que acabará com qualquer esperança de forense.
Você ainda não está protegendo esse servidor ou seus dados. Há quanto tempo ele está enraizado? Como você saberia?

O que é melhor fazer:

  • Deixe o servidor em funcionamento ...
  • Isole-o do resto da sua rede interna, de outros servidores, etc. - mas é melhor conectar algum tipo de simulação, para que pareça conectado.
  • Comece silenciosamente o forense em tempo real / rede, execute rastreamentos etc.
  • Tente descobrir a extensão e a duração do dano (obviamente é diferente se aconteceu duas horas atrás ou dois meses atrás).
  • Continue de lá ... Somente depois de mitigar o dano real , vá em frente e limpe-o.
  • É claro que não se esqueça de investigar as causas principais e impor quaisquer controles para garantir que isso não aconteça novamente ...
Ávido
fonte
2
Eu acho que isso pode funcionar em uma situação em que você pode movê-lo rapidamente para um ambiente simulado / isolado, mas poucas organizações conseguem fazer isso que, na realidade, querem ir para o lado 'minimizar o impacto' das coisas, desconectando a energia ou a rede da rede. é frequentemente a remoção instantânea dessa ameaça. (ainda marcaram você com +1 como eu gostaria que fosse assim :-)
Rory Alsop
O problema do @Rory é que você não pode minimizar o impacto, o servidor já está ativo. Você não está recuperando isso e todos os dados confidenciais também são potencialmente roubados, pois você não sabe há quanto tempo eles tiveram acesso. Dito isto, o ambiente simulado é apenas glacê, é o isolamento que é importante - e eu acredito que a maioria das organizações possui um firewall sólido, vire algumas regras de acesso e você é o ouro. Essa é outra razão servidores acessíveis deve estar em uma DMZ - faz com que a parte mais fácil ....
Avid
Além disso, quero deixar algo claro - o acima se aplica quando o sistema operacional está enraizado . Se houver alguma forma de vulnerabilidade no nível do aplicativo (por exemplo, SQL Injection) sendo explorada em seu site, ABSOLUTAMENTE desligue-o e puxe todos os fios que você puder usar! Mas a raiz do SO é diferente - eles controlam toda a infraestrutura da sua máquina. Você não tem mais nenhum controle.
Avid
2
não, o que eu quis dizer foi minimizar o impacto além dessa máquina enraizada. Concordo que está totalmente perdido, mas a menos que você pode obtê-lo isolado rapidamente, você não tem como saber o que o controlador pode fazer para o resto de seus sistemas
Rory Alsop
0

Depois de revisar suas suposições, faça as duas coisas. Use uma mídia baseada em CD / DVD para despejar o estado atual. Principalmente, você poderá determinar como foi comprometido. Você também pode tentar recuperar dados do usuário que não estão nas imagens de backup. Yo

Em seguida, reconstrua o sistema a partir da mídia de backup mais recente que não esteja contaminada. Verifique isso com somas de verificação, se possível. Como alternativa, reinstale o software da mídia de instalação e reconfigure. A reconfiguração deve ser automática se você estiver usando o Puppet ou o cfEngine para configurar seu servidor.

Recarregue os dados do usuário e verifique os componentes do kit raiz. Verifique se você não possui programas setuid ou setgid nos diretórios de dados.

Determine e feche o método de acesso usado para infectar o sistema. Reative o estágio do servidor, permitindo tempo para verificar se os aplicativos estão em execução conforme o esperado. Monitore cuidadosamente novas tentativas de infecção.

Isso tudo pressupõe que a infecção esteja no nível da raiz. As infecções na Web podem ser feitas alterando o código executado pelo servidor da Web. Permitir que o servidor da Web tenha acesso de gravação ao seu código pode facilitar isso. Você ainda pode tratar este caso como se a conta raiz estivesse comprometida.

Se a raiz de um sistema foi comprometida em um sistema, você pode ter mais sistemas comprometidos. Considere cuidadosamente quais sistemas podem ser acessados ​​sem uma senha do sistema infectado.

BillThor
fonte