L'accesso non elaborato alla memoria è utile durante l'esecuzione di analisi forensi dei dati o durante l'hacking dei dispositivi. A volte hai bisogno di un'istantanea della memoria per poter analizzare cosa sta succedendo con i bootloader bloccati, ottieni un file istantanea di una posizione di memoria per rintracciare un bug o semplicemente per capire la posizione di memoria corretta del tuo Angry Punteggio degli uccelli. Qui è dove Linux Memory Extractor, a.k.a. LiME Forense, entra. LiME è un modulo kernel caricabile che ti consente di accedere all'intera gamma di memoria del dispositivo. Non appena il modulo del kernel viene caricato in memoria, esegue sostanzialmente uno snapshot, consentendo un debug molto efficiente.
Ho chiesto a Joe Sylve, l'autore di LiME Forensics, di spiegare i vantaggi di LiME rispetto agli strumenti tradizionali come viewmem:
Per rispondere alle tue domande, gli strumenti sono stati progettati con scopi diversi. LiME è progettato per acquisire un dump completo del layout della memoria fisica della RAM per analisi forensi o ricerche sulla sicurezza. Fa tutto nello spazio del kernel e può eseguire il dump di un'immagine nel file system locale o su TCP. È progettato per offrirti una copia quanto più fedele possibile della memoria fisica, riducendo al minimo l'interazione con il sistema.
Sembra che viewmem sia un programma userland che legge un intervallo di indirizzi di memoria virtuale da un dispositivo di memoria, come /dev/mem o /dev/kmem e stampa il contenuto su stdout. Non sono sicuro che faccia di più del semplice utilizzo di dd su uno di questi dispositivi.
Questo è meno accettabile in medicina legale per diversi motivi. Prima di tutto, /dev/mem e /dev/kmem verranno gradualmente eliminati e sempre più dispositivi non verranno forniti con tali dispositivi. In secondo luogo, /dev/mem e /dev/kmem ti limitano alla lettura dei primi 896 MB di RAM. Inoltre, lo strumento provoca diversi cambi di contesto tra userland e kernelland per ogni blocco di memoria letto e sovrascrive la RAM con i suoi buffer.
Direi che ogni strumento ha il suo utilizzo. Se hai solo bisogno di conoscere il contenuto di un indirizzo compreso nei primi 896 MB di RAM e il tuo dispositivo ha /dev/mem e /dev/kmem e non ti interessa catturare un'immagine valida dal punto di vista forense, allora viewmem (o dd) sarebbe utile. Tuttavia, LiME non è stato progettato specificamente per quel caso d’uso.
La cosa più importante, per voi hacker di memoria là fuori, è che viewmem si basa su /dev/mem E /dev/kmem dispositivi. Dal momento che /dev/mem E /dev/kmem i dispositivi consentono l'accesso diretto alla memoria del dispositivo, rappresentano una vulnerabilità. Questi dispositivi Linux vengono gradualmente eliminati, poiché negli ultimi tempi sono stati oggetto di numerosi exploit. LiME non solo sostituisce l'utility viewmem, ma lo fa meglio.
I produttori prendono nota: bloccando le funzionalità desiderate dagli sviluppatori, si promuove lo sviluppo di strumenti migliori.
Fonte: LiME Forense e intervista con l'autore Joe Sylve
[Credito immagine: Presentazione LiME di Joe Sylve]