Råadgang til hukommelse er nyttig, mens du udfører dataefterforskning eller under hacking af enheder. Nogle gange har du brug for et snapshot af hukommelsen for at kunne analysere, hvad der foregår med låste bootloadere, få en snapshot af en hukommelsesplacering for at spore en fejl, eller bare for at finde ud af den korrekte hukommelsesplacering for din Angry Fugle score. Det er her Linux Memory Extractor, a.k.a. LiME Forensics, kommer i. LiME er et indlæst kernemodul, der giver dig adgang til hele rækken af enhedshukommelse. Så snart kernemodulet er indlæst i hukommelsen, tager det dybest set et øjebliksbillede, hvilket muliggør en meget effektiv debugging.
Jeg bad Joe Sylve, forfatteren af LiME Forensics, om at forklare fordelene ved LiME i forhold til traditionelle værktøjer som viewmem:
For at besvare dine spørgsmål blev værktøjerne designet med forskellige formål. LiME er designet til at erhverve en fuld dump af det fysiske hukommelseslayout af RAM til retsmedicinsk analyse eller sikkerhedsforskning. Det gør det hele i kernerummet og kan dumpe et billede enten til det lokale filsystem eller over TCP. Den er designet til at give dig så tæt på en kopi af den fysiske hukommelse som muligt, samtidig med at dens interaktion med systemet minimeres.
Det ser ud til, at viewmem er et brugerlandsprogram, som læser en række virtuelle hukommelsesadresser fra en hukommelsesenhed, såsom /dev/mem eller /dev/kmem og udskriver indholdet til stdout. Jeg er ikke sikker på, at det gør mere end blot at bruge dd på en af disse enheder.
Dette er mindre acceptabelt i retsmedicin af flere årsager. Først og fremmest bliver /dev/mem og /dev/kmem udfaset, og flere og flere enheder sendes ikke med disse enheder. For det andet begrænser /dev/mem og /dev/kmem dig til at læse fra de første 896 MB RAM. Værktøjet forårsager også adskillige kontekstskift mellem brugerland og kernelland for hver blok af hukommelse, der læses og overskriver RAM med dets buffere.
Jeg vil sige, at hvert værktøj har deres brug. Hvis du bare har brug for at kende indholdet af en adresse, der er inden for de første 896 MB RAM, og din enhed har /dev/mem og /dev/kmem og du er ligeglad med at tage et retsmedicinsk forsvarligt billede, så ville viewmem (eller dd) være nyttig. LiME blev dog ikke designet specifikt til den pågældende brugssag.
Det vigtigste for jer memory hackere derude er, at viewmem er afhængig af /dev/mem og /dev/kmem enheder. Siden /dev/mem og /dev/kmem enheder giver direkte adgang til enhedens hukommelse, de er en sårbarhed. Disse Linux-enheder er ved at blive udfaset, da de på det seneste har været mål for flere udnyttelser. LiME erstatter ikke kun viewmem-værktøjet, det gør det bedre.
Producenter noterer sig: Ved at låse funktioner, som udviklere ønsker, fremmer du udviklingen af bedre værktøjer.
Kilde: LiME Forensics & Interview med forfatter Joe Sylve
[Billedkredit: LiME præsentation af Joe Sylve]