Rååtkomst till minne är användbart när du utför datakriminalteknik eller när du hackar enheter. Ibland behöver du en ögonblicksbild av minnet för att kunna analysera vad som händer med låsta bootloaders, få en ögonblicksbild av en minnesplats för att spåra en bugg, eller bara för att ta reda på rätt minnesplats för din Angry Fåglar poäng. Det är här Linux Memory Extractor, a.k.a. LiME Forensics, kommer in. LiME är en laddningsbar kärnmodul som ger dig tillgång till hela sortimentet av enhetsminne. Så snart kärnmodulen laddas in i minnet tar den i princip en ögonblicksbild, vilket möjliggör mycket effektiv felsökning.
Jag bad Joe Sylve, författaren till LiME Forensics att förklara fördelarna med LiME jämfört med traditionella verktyg som viewmem:
För att svara på dina frågor har verktygen utformats med olika syften. LiME är utformad för att få en fullständig dumpning av den fysiska minneslayouten för RAM för kriminalteknisk analys eller säkerhetsforskning. Den gör allt i kärnutrymmet och kan dumpa en bild antingen till det lokala filsystemet eller över TCP. Den är utformad för att ge dig så nära en kopia av det fysiska minnet som möjligt, samtidigt som det minimerar interaktionen med systemet.
Det verkar som att viewmem är ett användarlandsprogram som läser en rad virtuella minnesadresser från en minnesenhet, såsom /dev/mem eller /dev/kmem och skriver ut innehållet till stdout. Jag är inte säker på att det gör mer än att bara använda dd på en av dessa enheter.
Detta är mindre acceptabelt inom kriminalteknik av flera skäl. Först av allt, /dev/mem och /dev/kmem fasas ut och fler och fler enheter skickas inte med dessa enheter. För det andra begränsar /dev/mem och /dev/kmem dig till att läsa från de första 896 MB RAM. Dessutom orsakar verktyget flera kontextväxlingar mellan användarland och kärnland för varje minnesblock som läses och skriver över RAM med dess buffertar.
Jag skulle säga att varje verktyg har sin användning. Om du bara behöver veta innehållet i en adress som ligger inom de första 896 MB RAM och din enhet har /dev/mem och /dev/kmem och du inte bryr dig om att ta en rättsmedicinskt sund bild, då skulle viewmem (eller dd) vara användbar. Men LiME designades inte specifikt för det användningsfallet.
Det viktigaste för er minneshackare där ute är att viewmem förlitar sig på /dev/mem och /dev/kmem enheter. Sedan /dev/mem och /dev/kmem enheter ger direkt åtkomst till enhetens minne, de är en sårbarhet. Dessa Linux-enheter håller på att fasas ut, eftersom de har varit mål för flera utnyttjande på senare tid. LiME ersätter inte bara viewmem-verktyget, det gör det bättre.
Tillverkare noterar: Genom att låsa ner funktioner som utvecklare vill ha främjar du utvecklingen av bättre verktyg.
Källa: LiME Forensics & Interview med författaren Joe Sylve
[Bildkredit: LiME-presentation av Joe Sylve]