Ripristino del database da un sistema compromesso

5

È stata violata una macchina virtuale Linux con Postgres 9.4. (Due processi che prendono il 100% della cpu, file strani in / tmp, non si ripresentano dopo l'uccisione (i) e il riavvio.) Si è deciso di installare il sistema da zero su una nuova macchina (con Postgres 9.6). Gli unici dati necessari erano in uno dei database postgres. Dopo l'attacco è stato creato un pg_dump del database.

Indipendentemente dal fatto che i dati - le tabelle / righe / ecc. - sono stati modificati durante l'attacco: è sicuro ripristinare il database nel nuovo sistema?

P.S. Considero l'utilizzo di pg_restore con l'opzione -O che ignora le autorizzazioni utente

    
posta user1713059 01.12.2016 - 16:29
fonte

1 risposta

1

No. Non è sicuro ripristinare i dati senza adottare misure per garantire che i dati non siano corrotti in modi che possono portare a più buchi di sicurezza. È inoltre improbabile che l'aggiornamento dalla versione 9.4 alla 9.6 possa fare alcuna differenza e potrebbe effettivamente complicare il restauro.

Molti attacchi comportano la modifica delle informazioni di sicurezza memorizzate nel database. Anche se non si dispone di tali tabelle, è altrettanto comune che gli autori di attacchi incorporino il codice in quelli che normalmente sarebbero considerati dati e sfruttano i buchi di sicurezza nei confini tra codice e dati.

Il modo corretto di procedere è prendere una discarica immediatamente prima dell'attacco e confrontarla con l'ultimo dump. Questo richiede un po 'di abilità e potresti dover ipotizzare uno scenario peggiore se non riesci ad accertarti dai file di controllo e di registro all'avvio dell'attacco.

Prova a trovare modi per confrontare i discarichi precedenti e successivi, eliminando le modifiche legittime con ciascuna iterazione di confronto. Alla fine non troverai nulla, nel qual caso potresti dover correre il rischio di importare i dati o ripristinare all'ultimo backup conosciuto e vivere con la perdita.

Sarebbe meglio se potessi usare il confronto e registrare e verificare le informazioni su reverse engineer (best case) o determinare la probabile ampiezza (meno sicura) dell'attacco.

Per quanto infelice la verità è in questo caso. Questo è come la scienza missilistica. Potrebbe essere necessario fare più domande. Naturalmente, molto dipende da quanto è necessario essere sicuri di aver pulito tutte le potenziali minacce dal sistema, che dipende dalla criticità dei dati e degli account degli utenti.

    
risposta data 26.01.2017 - 04:45
fonte

Leggi altre domande sui tag