LiME Forensics Kernel Module for Raw Memory Snapshots

Rå tilgang til minne er nyttig mens du utfører dataetterforskning eller mens du hacker enheter. Noen ganger trenger du et øyeblikksbilde av minnet for å kunne analysere hva som skjer med låste bootloadere, få en øyeblikksbilde av en minneplassering for å spore opp en feil, eller bare for å finne ut den riktige minneplasseringen til Angry Fugler score. Det er her Linux Memory Extractor, a.k.a. LiME Forensics, kommer inn. LiME er en lastbar kjernemodul som lar deg få tilgang til hele spekteret av enhetsminne. Så snart kjernemodulen er lastet inn i minnet, tar den i utgangspunktet et øyeblikksbilde, noe som gir svært effektiv feilsøking.

Jeg spurte Joe Sylve, forfatteren av LiME Forensics om å forklare fordelene med LiME fremfor tradisjonelle verktøy som viewmem:

For å svare på spørsmålene dine ble verktøyene designet med forskjellige formål. LiME er designet for å få en full dump av det fysiske minneoppsettet til RAM for rettsmedisinske analyser eller sikkerhetsundersøkelser. Den gjør alt i kjerneplass og kan dumpe et bilde enten til det lokale filsystemet eller over TCP. Den er designet for å gi deg så nær en kopi av det fysiske minnet som mulig, samtidig som det minimerer interaksjonen med systemet.

Det ser ut til at viewmem er et brukerlandsprogram som leser en rekke virtuelle minneadresser fra en minneenhet, for eksempel /dev/mem eller /dev/kmem og skriver ut innholdet til stdout. Jeg er ikke sikker på at det gjør mer enn bare å bruke dd på en av disse enhetene.

Dette er mindre akseptabelt i rettsmedisin av flere grunner. Først av alt, /dev/mem og /dev/kmem fases ut, og flere og flere enheter sendes ikke med disse enhetene. For det andre begrenser /dev/mem og /dev/kmem deg til å lese fra de første 896 MB RAM. Verktøyet forårsaker også flere kontekstbytter mellom brukerland og kjerneland for hver minneblokk som leses og overskriver RAM med buffere.

Jeg vil si at hvert verktøy har sin bruk. Hvis du bare trenger å vite innholdet i en adresse som er innenfor de første 896 MB RAM og enheten din har /dev/mem og /dev/kmem og du ikke bryr deg om å ta et rettsmedisinsk forsvarlig bilde, da ville viewmem (eller dd) vært nyttig. LiME ble imidlertid ikke designet spesifikt for den brukssaken.

Det viktigste for dere minnehackere der ute, er at viewmem er avhengig av /dev/mem og /dev/kmem enheter. Siden /dev/mem og /dev/kmem enheter gir direkte tilgang til enhetsminne, de er en sårbarhet. Disse Linux-enhetene fases ut, siden de har vært mål for flere utnyttelser i det siste. LiME erstatter ikke bare viewmem-verktøyet, det gjør det bedre.

Produsenter merker seg: Ved å låse ned funksjoner som utviklere ønsker, fremmer du utviklingen av bedre verktøy.

Kilde: LiME Forensics & Intervju med forfatter Joe Sylve

[Bildekreditt: LiME-presentasjon av Joe Sylve]