Se il mio server è stato compromesso, il mio database è sicuro?

0

Ho un'istanza AWS che esegue un'app per rails che non mantengo attivamente. Poiché non ho tenuto traccia di ciò che stava accadendo con questa app, non l'ho aggiornato tempestivamente quando sono state scoperte tutte le vulnerabilità delle rotaie, quindi penso ci siano buone probabilità che sia stato compromesso. Voglio salvare alcuni dei dati su di esso tramite ftp'ing una copia del database (SQLite, se è importante) prima di pulirlo. È sicuro farlo e rimettere il database una volta che tutto è stato cancellato? C'è un modo per controllare il database per vedere se è sicuro?

    
posta user20771 14.02.2013 - 10:04
fonte

3 risposte

1

Il tuo database non è affidabile. Per lo meno, ripristinare tutte le password amministrative memorizzate nel database - se si dispone di un piccolo insieme di utenti ripristinare tutte le password. Inoltre, non dovresti aver fiducia che gli account falsi non siano stati creati arbitrariamente o che gli indirizzi email degli account admin siano stati modificati. Mi assicurerei inoltre che l'account che esegue il server web non abbia una password impostata e non possa accedere. (Supponendo una configurazione di Linux in cui apache / nginx tipicamente viene eseguito come utente www-data ).

La recente vulnerabilità delle rotaie ha dato agli abili abilità di eseguire comandi remoti arbitrari sul server attraverso incorporamento di un oggetto con codifica YAML in una richiesta HTTP XML . Sarebbe difficile escludere che tu sia stato attaccato; normalmente la tua ipotesi migliore sarebbe quella di consultare i registri del tuo server web - tuttavia un utente malintenzionato esperto potrebbe alterare questi registri (dato che l'utente del tuo server web ha il permesso di aggiornare questi registri) - e questi attacchi avrebbero potuto essere sfruttati in qualsiasi momento negli ultimi 6 anni (anche prima che diventasse di dominio pubblico) probabilmente i tuoi log non tornano abbastanza indietro.

    
risposta data 14.02.2013 - 14:05
fonte
2

Ci sono un paio di modi per verificare la validità dei tuoi dati. Non trovare segni di manomissione non significa che i tuoi dati sono stati non compromessi perché anche i log potrebbero essere compromessi. I registri devono essere conservati in un contenitore di sicurezza diverso.

  • Verifica le modifiche rispetto a un backup. Anche se il backup è vecchio, puoi comunque identificare le modifiche ai vecchi dati.
  • Controlla i log del server HTTP per le richieste che avrebbero toccato i dati.
  • Controllare i log del server DB per le query che modificano i dati in modo diverso rispetto all'applicazione Web. Puoi eliminare query valide e identificare quelle malevoli ordinando le query per tipo e conteggio.
risposta data 14.02.2013 - 10:50
fonte
0

Potresti anche voler esaminare il controllo dell'integrità di SQLite, che ti darà una certa sicurezza che il la struttura sottostante del DB non è stata danneggiata.

Questo non ti dirà se qualche dato è stato modificato; vedi la risposta di Cristian per questo.

    
risposta data 14.02.2013 - 11:35
fonte

Leggi altre domande sui tag