Der Rohzugriff auf den Speicher ist nützlich, wenn Sie Datenforensik durchführen oder Geräte hacken. Manchmal benötigen Sie einen Snapshot des Speichers, um analysieren zu können, was mit gesperrten Bootloadern passiert Schnappschuss eines Speicherorts, um einen Fehler aufzuspüren oder einfach nur, um den richtigen Speicherort Ihres Angry herauszufinden Vögel punkten. Hier kommt Linux Memory Extractor, auch bekannt als LiME-Forensik, kommt herein. LiME ist ein ladbares Kernelmodul, das Ihnen den Zugriff auf den gesamten Gerätespeicher ermöglicht. Sobald das Kernelmodul in den Speicher geladen wird, erstellt es grundsätzlich einen Snapshot, was ein sehr effizientes Debuggen ermöglicht.
Ich habe Joe Sylve, den Autor von LiME Forensics, gebeten, die Vorteile von LiME gegenüber herkömmlichen Tools wie viewmem zu erklären:
Um Ihre Fragen zu beantworten, wurden die Werkzeuge für unterschiedliche Verwendungszwecke entwickelt. LiME wurde entwickelt, um einen vollständigen Dump des physischen Speicherlayouts des RAM für forensische Analysen oder Sicherheitsforschung zu erfassen. Es erledigt alles im Kernel-Space und kann ein Image entweder im lokalen Dateisystem oder über TCP sichern. Es ist so konzipiert, dass Sie eine möglichst genaue Kopie des physischen Speichers erhalten und gleichzeitig dessen Interaktion mit dem System minimieren.
Es scheint, dass viewmem ein Userland-Programm ist, das eine Reihe virtueller Speicheradressen von einem Speichergerät wie /dev/mem oder /dev/kmem liest und den Inhalt auf stdout ausgibt. Ich bin mir nicht sicher, ob es mehr bewirkt, als nur dd auf einem dieser Geräte zu verwenden.
Dies ist in der Forensik aus mehreren Gründen weniger akzeptabel. Erstens werden /dev/mem und /dev/kmem auslaufen und immer mehr Geräte werden nicht mit diesen Geräten ausgeliefert. Zweitens beschränken Sie /dev/mem und /dev/kmem auf das Lesen aus den ersten 896 MB RAM. Außerdem verursacht das Tool bei jedem gelesenen Speicherblock mehrere Kontextwechsel zwischen Userland und Kernelland und überschreibt RAM mit seinen Puffern.
Ich würde sagen, jedes Werkzeug hat seinen Nutzen. Wenn Sie nur den Inhalt einer Adresse kennen müssen, die sich innerhalb der ersten 896 MB RAM befindet und über die Ihr Gerät verfügt /dev/mem und /dev/kmem und es Ihnen egal ist, ein forensisch einwandfreies Bild aufzunehmen, dann wäre viewmem (oder dd) das Richtige nützlich. Allerdings wurde LiME nicht speziell für diesen Anwendungsfall entwickelt.
Das Wichtigste für alle Speicher-Hacker da draußen ist, dass viewmem auf das angewiesen ist /dev/mem Und /dev/kmem Geräte. Seit der /dev/mem Und /dev/kmem Da Geräte den direkten Zugriff auf den Gerätespeicher ermöglichen, stellen sie eine Sicherheitslücke dar. Diese Linux-Geräte werden aus dem Verkehr gezogen, da sie in letzter Zeit das Ziel mehrerer Exploits waren. LiME ersetzt nicht nur das Dienstprogramm viewmem, es macht es sogar noch besser.
Hersteller aufgepasst: Indem Sie die von Entwicklern gewünschten Funktionen sperren, fördern Sie die Entwicklung besserer Tools.
Quelle: LiME-Forensik & Interview mit Autor Joe Sylve
[Bildnachweis: LiME-Präsentation von Joe Sylve]