Rete o alimentazione? (per contian un server rootato)


11

Quando un server viene rootato ( ad esempio una situazione come questa ), una delle prime cose che potresti decidere di fare è il contenimento . Alcuni specialisti della sicurezza consigliano di non avviare immediatamente la riparazione e di mantenere il server online fino al completamento delle analisi forensi. Questi consigli sono di solito per APT . È diverso se hai occasionali violazioni di Script per bambini , quindi potresti decidere di rimediare (risolvere le cose) in anticipo. Uno dei passaggi nella correzione è il contenimento del server. Citando la risposta di Robert Moir - "disconnettere la vittima dai suoi rapinatori".

Un server può essere contenuto tirando il cavo di rete o il cavo di alimentazione .

Quale metodo è migliore?

Tenendo conto della necessità di:

  1. Proteggere le vittime da ulteriori danni
  2. Esecuzione di analisi forensi efficaci
  3. (Forse) Protezione di dati preziosi sul server

Modifica: 5 ipotesi

assumendo:

  1. Hai rilevato in anticipo: 24 ore.
  2. Vuoi recuperare in anticipo: 3 giorni di 1 amministratore di sistema sul lavoro (medicina legale e recupero).
  3. Il server non è una macchina virtuale o un contenitore in grado di eseguire un'istantanea per acquisire il contenuto della memoria del server.
  4. Decidi di non tentare di perseguire.
  5. Sospetti che l'utente malintenzionato stia utilizzando una qualche forma di software (possibilmente sofisticato) e che questo software sia ancora in esecuzione sul server.

2
Potresti voler passare anche qui: security.stackexchange.com
sysadmin1138


2
@ Tom - non è un duplicato, è una discussione di estensione di un punto specifico da quella domanda.
mfinni,

3
@ sysadmin1138, in particolare prova security.stackexchange.com/q/181/33
AviD

Risposte:


6

Se stai affrontando un APT, l'opzione migliore è impostare un honeypot e indagare a fondo su tutto il traffico che fluisce dentro e fuori da esso, oltre a monitorare il server.

La misura del passare attraverso la memoria è così costosa in termini di tempo e fatica che di solito non vale la pena a meno che tu non abbia provato tutti gli altri metodi e se determini che vale la pena, è generalmente meglio impostare un honeypot che ti consenta di scaricare facilmente la memoria e lo stato del sistema su un altro computer al volo in modo da poter eseguire analisi con meno rischi di essere rilevati mentre il computer è in funzione.

Ho avuto una situazione in cui l'attaccante ha tenuto tutto in memoria nella misura in cui, ad eccezione dei registri, la macchina sembrava esattamente come la sua immagine una volta spenta e riaccesa. Avrebbero quindi hackerato e ricominciato a usarlo perché la vulnerabilità era ancora lì - non avevano bisogno di lasciare backdoor per se stessi. Una valutazione della memoria avrebbe potuto essere d'aiuto, ma in questo caso guardare il traffico era sufficiente per identificare rapidamente la vulnerabilità.

Perciò:

L'unico motivo per evitare di tirare fuori la potenza e fare una valutazione del disco offline è se hai intenzione di fare un'analisi approfondita della memoria della minaccia mentre è in atto e operativa. Se sei arrivato al punto in cui è necessario, non c'è motivo di staccare nessuna delle due spine.

Se non stai effettuando un'analisi della memoria, la soluzione migliore è staccare la spina di alimentazione - tirare Ethernet (o usare un comando di spegnimento) darà solo un preavviso al software dell'attaccante - che importa di tanto in tanto.

Così:

Tirali entrambi, a meno che tu non stia facendo un'analisi della memoria, nel qual caso, non tirare neanche.


16

La medicina legale della RAM (ad es. / Dev / shm) può essere utile.

Ma preferisco scollegare il cavo di alimentazione (ma prima prova ad accedere e rsync / proc).

Le ragioni per scegliere il cavo di alimentazione sono:

  1. Quando fai studi forensi in un sistema hackerato, stai "calpestando tutta la scena del crimine"
  2. Il kit di root continua a funzionare - non è così difficile per i malintenzionati eseguire qualcosa (ad es. Cancellare il sistema) nell'evento Network Link Down .

Kyle Rankin ha fatto una bella introduzione al discorso forense - qui consiglia di tirare il cavo di alimentazione.


+1 per "calpestare tutta la scena del crimine". A meno che tu non sappia esattamente cosa stai facendo o non ti interessi davvero di raccogliere prove forensi esatte, allora potresti voler chiamare gli esperti piuttosto che inquinare le prove mentre impari a fare la medicina legale ...
Dunxd

10

Disconnetti la rete. L'attaccante non può ottenere ulteriori informazioni se non è presente alcuna connessione di rete. È molto difficile (leggi: impossibile) fare forensi senza potere.


3
Puoi (e probabilmente dovresti) fare analisi forensi da off-line (A) tramite CD live, (B) spostando il disco rigido su un sistema diverso o (C) dopo aver scattato le immagini dei dischi rigidi interessati (tramite CD live) .
Aleksandr Levchuk,

3
Spesso prove utili sono in memoria. Questo deve essere consentito prima di segnalare qualsiasi perdita di potenza.
Sirex,

Pensa anche a disconnettere l'interfaccia LOM per sicurezza :)
Kedare

7

Al giorno d'oggi, potrebbe essere una macchina virtuale, quindi entrambi i metodi sono facili e possono anche essere eseguiti in remoto. (Le macchine virtuali danno la possibilità di usare anche le istantanee, ovviamente)

Suggerirei di disconnettersi dalla rete come primo passo automatico, perché questo ti dà il tempo di meditare su quale dovrebbe essere il prossimo passo, sia che il prossimo passo stia strappando il cavo di alimentazione o qualcos'altro. Se sai che le tue "procedure di risposta alla sicurezza" aziendali non ti permetteranno di passare il tempo a scavare nel dettaglio della macchina, conservare i contenuti della RAM potrebbe non essere così importante.

Suggerirei che fare "separare la vittima dai suoi rapinatori" in qualche modo sia più importante del come, quindi entrambi gli approcci sono validi. Non avrei problemi a tirare da solo il Powercord, diciamo così.


+1 per la VM. Se scolleghi la rete, il rootkit continua a funzionare - non è così difficile per i malintenzionati eseguire qualcosa (ad es.
Cancellare il

6
Le istantanee dello stato del sistema in esecuzione sono un'ottima idea che mi faccia incazzare per non averci pensato.
jgoldschrafe,

@Alexsandr - Sto provando a pensare all'esempio reale e sto disegnando uno spazio vuoto, ma mi sembra di ricordare un rootkit che rimane interamente in memoria, quindi andrebbe perso quando viene staccata la spina. Penso che sia un caso in entrambi i casi c'è il rischio di perdere prove.
Rob Moir,

6

Questa non è una situazione / o. Generalmente vuoi fare entrambe le cose: vuoi eseguire determinate analisi forensi (dump di processi in esecuzione, socket di ascolto, file in / tmp, ecc.) Su un sistema che è stato rimosso dalla rete e quindi eseguire la diagnostica rimanente da una cassaforte ambiente (ovvero un CD live). Ci sono situazioni in cui nessuno dei due approcci è quello giusto, tuttavia, e devi pensare e capire quali potrebbero essere nella tua organizzazione.


Se si scollega la rete, il rootkit continua a funzionare - non è così difficile per il codice dannoso eseguire qualcosa (ad esempio la cancellazione del sistema) su un evento Network Link Down .
Aleksandr Levchuk,

Questo è sicuramente vero, ed è un'opportunità che devi valutare e decidere se vuoi prendere in base alla sensibilità della situazione. Alcuni rootkit sono solo residenti in memoria e se si uccide il potere del sistema, si elimina ogni possibilità di capire come è arrivato lì. Potresti provare a bloccare il traffico fuori dalla porta dello switch mantenendo lo stato dei collegamenti, ma qualsiasi rootkit è un software e può fare qualsiasi cosa qualsiasi altro software possa fare - non c'è nulla che li impedisce di sondare il gateway predefinito e di attivare la stessa bomba se è irraggiungibile.
jgoldschrafe,

4

Prima di fare qualsiasi cosa, capire se è necessario conservare le prove per un eventuale procedimento giudiziario. La gestione delle prove è un argomento molto complicato e non per i deboli addestrati. Una volta che hai risposto, il tecnico forense del computer qualificato può prenderlo da lì.


1
In primo luogo, penso che uno dovrebbe decidere di perseguire o no? . Kyle Rankin nel suo discorso ( goo.gl/g21Ok ). Inizia discutendo questo. Per perseguire uno si dovrebbe fornire la prova della perdita sostanziale di controllo.
Aleksandr Levchuk,

1
@Aleksander Generalmente è necessario sapere molto, molto presto nel processo se è possibile riutilizzare l'hardware e i dati compromessi o se è necessario immagazzinarlo e costruire un nuovo sistema da parti completamente nuove. Questo è molto probabilmente ancora prima che tu abbia provato perdite di reputazione finanziaria o commerciale. Preservare la catena di prove deve avvenire nel momento in cui qualcuno ha realizzato che si è verificato un evento potenzialmente attuabile.
sysadmin1138

Spesso è meglio iniziare mantenendo le opzioni aperte per perseguire o meno, poiché potresti non sapere se esiste una perdita monetaria, quindi nelle prime fasi di fare tutto secondo il libro, mantenere la catena di custodia è importante.
Rory Alsop,

3

Non è necessario spegnere il server. Puoi semplicemente disabilitare la connettività dal gateway / router di confine. Una regola firewall sarà sufficiente per scartare qualsiasi altro pacchetto inviato / ricevuto.


+1 Questa è una delle ragioni per cui avere un gateway è una buona idea. E se non ne avessi uno? Se si scollega il cavo di rete diretto, il rootkit può ricevere l' evento Network Link Down . E non accedere al server rootato e fare qualcosa lì il giorno 0 non è una cattiva idea?
Aleksandr Levchuk,

2

La risposta dipende in gran parte da cosa intendi per "radicato". Sollevare la rete è di solito una buona idea, in particolare se si ritiene che si tratti di un aggressore umano attivo in cerca di informazioni sensibili.

Tirare il potere è molto più difficile rispondere. Se ritieni che ci sia codice dannoso in esecuzione che possa coprire le sue tracce, fallo. Tuttavia, se ritieni che possa esserci la prova di un irruzione nella memoria, lascialo in esecuzione.

Nel complesso, dipende se hai a che fare con codice dannoso, personale scontento o qualcuno con un obiettivo specifico in mente.

In caso di errori sul lato della cautela, tirare il potere. Perderai una piccola quantità di prove potenziali, ma potresti impedire la massiccia rimozione di altre prove tramite codice automatizzato.

- Ancora una volta, se ritieni che la macchina sia stata compromessa e sai che non ha dati sensibili su di essa, sei molto fiducioso della tua sicurezza di rete altrove e comprendi le conseguenze di farlo, forse ottieni una bara forense al più presto e vedi se riesci a rintracciare o capire l'attacco e andare da lì. Normalmente non è una buona idea


1

La mia risposta era prima della modifica, con i 5 presupposti.
La mia ipotesi era che se il tuo server è stato rootato, hai a che fare con un aggressore sofisticato e mirato e che non hai modo di sapere quando e da dove proviene l'attacco. (Dal momento che la macchina era radicata, ovviamente non puoi fidarti di tutto ciò che ti dice. Tuttavia, potresti avere alcune informazioni fuori dalla scatola, ad esempio IDS ...)
Ho assunto anche che tu abbia interesse a trattare con il tuo aggressore, e non solo a sventolare lui via come una mosca fastidiosa. Se l'attaccante ipotizzato è un kiddie dello script, questo sarebbe diverso. Ho anche ipotizzato che, poiché l'attaccante è mirato e sofisticato, è probabile che abbiano un software personalizzato in esecuzione sul tuo computer, in grado di rispondere alle tue azioni su di esso ...


Nessuno dei due.
Dai un'occhiata a /security//q/181/33 , in entrambi i casi è una cattiva idea.
È come dare un paio di cerotti al cavaliere nero ... troppo poco, troppo tardi, non sarà di grande aiuto.


Per tutti coloro che ritengono che questa risposta sia troppo lontana, o semplicemente non abbastanza "attenta alla sicurezza", è necessario rendersi conto che è già troppo tardi .
Non è più il tuo server, anche se lo disconnetti completamente. Anche se ti spegni, esegui tutti i tuoi AV e qualunque cosa tu non possieda più, lo fanno.
È un po 'la definizione di "radicato".

Ora, supponendo che lo possiedano e che possano nasconderti la loro proprietà, devi considerare: che cosa lo disconnetterà?
L' unica cosa che otterrà - dal momento che continuerà ad essere radicata a prescindere - è far sapere al tuo avversario che ci stai provando. Il che semplicemente mette in guardia le loro guardie e li fa iniziare a ripulire dopo se stessi (se non lo hanno già fatto), il che ucciderà qualsiasi speranza di medicina legale.
Non stai ancora proteggendo quel server o alcuno dei suoi dati. Da quanto tempo è stato radicato? Come lo sapresti?

Cosa stai facendo meglio:

  • Lascia il server attivo e funzionante ...
  • Isolalo dal resto della tua rete interna, da altri server, ecc., Ma è meglio collegare un tipo di simulazione, quindi sembra connesso.
  • Avvia tranquillamente analisi forensi in tempo reale / di rete, esegui tracce, ecc.
  • Prova a capire l'entità e la lunghezza del danno (ovviamente è diverso se è successo 2 ore fa o 2 mesi fa).
  • Continua da lì ... Solo dopo aver mitigato il danno reale , vai avanti e puliscilo.
  • Ovviamente non dimenticare di indagare sulle cause alla radice e applicare qualsiasi controllo per garantire che non accada di nuovo ...

2
Penso che questo possa funzionare in una situazione in cui è possibile spostarlo rapidamente in un ambiente simulato / isolato, ma così poche organizzazioni possono farlo che in realtà vogliono andare per il lato "minimizzare l'impatto" delle cose, quindi scollegare l'alimentazione o la rete è spesso la rimozione istantanea di quella minaccia. (ancora ti ho fatto +1 come vorrei che fosse così :-)
Rory Alsop il

Il problema di @Rory è che non puoi minimizzare l'impatto, il server è già sviluppato. Non lo stai recuperando e anche i dati sensibili vengono potenzialmente rubati, dal momento che non sai da quanto tempo hanno accesso. Detto questo, l'ambiente simulato è solo la ciliegina sulla torta, è l'isolamento che è importante - e credo che la maggior parte delle organizzazioni abbia un solido firewall in atto, capovolga alcune regole di accesso e sei d'oro. Questo è un altro motivo per cui i server accessibili dovrebbero trovarsi in una DMZ - rende più facile quella parte ....
AviD

Inoltre, voglio chiarire qualcosa: quanto sopra si applica quando il SO è rootato . Se esiste una qualche forma di vulnerabilità a livello di applicazione (ad esempio SQL Injection) sfruttata nel tuo sito Web, ASSOLUTAMENTE chiudila e tira tutti i fili su cui puoi mettere le mani! Ma il root del sistema operativo è diverso: controllano l'intera infrastruttura della tua macchina. Non hai più alcun controllo.
AviD

2
no, intendevo minimizzare l'impatto oltre quella macchina radicata. Sono d'accordo che sia totalmente perso, ma se non riesci a isolarlo rapidamente, non hai modo di sapere cosa potrebbe fare il controller con il resto dei tuoi sistemi
Rory Alsop,

0

Dopo aver esaminato le tue ipotesi, fai entrambe le cose. Utilizzare un supporto basato su CD / DVD per scaricare lo stato corrente. In primo luogo vorrai essere in grado di determinare come sei stato compromesso. È inoltre possibile tentare di ripristinare i dati utente non presenti nelle immagini di backup. yo

Quindi ricostruire il sistema dall'ultimo supporto di backup non contaminato. Verificare questo con checksum, se possibile. In alternativa, reinstallare il software dal supporto di installazione e riconfigurare. La riconfigurazione dovrebbe essere automatica se si sta usando Puppet o cfEngine per configurare il proprio server.

Ricarica i dati utente e scansiona i componenti del root kit. Verifica di non avere programmi setuid o setgid nelle directory dei dati.

Determinare e chiudere il metodo di accesso utilizzato per infettare il sistema. Riattivazione in fase del server che consente di verificare se le applicazioni sono in esecuzione come previsto. Monitorare attentamente i nuovi tentativi di infezione.

Tutto questo presuppone che l'infezione sia a livello di radice. Le infezioni Web possono essere eseguite modificando il codice eseguito dal server Web. Consentire al server Web l'accesso in scrittura al proprio codice può semplificare l'operazione. Potresti comunque voler trattare questo caso come se l'account di root fosse stato compromesso.

Se il root su un sistema è stato compromesso su un sistema, è possibile che siano compromessi più sistemi. Valuta attentamente a quali sistemi è possibile accedere senza una password dal sistema infetto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.