L'accès brut à la mémoire est utile lors de l'analyse des données ou lors du piratage d'appareils. Parfois, vous avez besoin d'un instantané de la mémoire pour pouvoir analyser ce qui se passe avec les chargeurs de démarrage verrouillés, obtenez un instantané d'un emplacement mémoire pour détecter un bug ou simplement pour déterminer l'emplacement mémoire approprié de votre Angry Score des oiseaux. C'est là que Linux Memory Extractor, alias. LiME Forensique, entre. LiME est un module de noyau chargeable qui vous permet d'accéder à toute la gamme de la mémoire de l'appareil. Dès que le module du noyau est chargé en mémoire, il prend essentiellement un instantané, permettant un débogage très efficace.
J'ai demandé à Joe Sylve, l'auteur de LiME Forensics d'expliquer les avantages de LiME par rapport aux outils traditionnels comme viewmem :
Pour répondre à vos questions, les outils ont été conçus avec différents usages. LiME est conçu pour acquérir un vidage complet de la disposition de la mémoire physique de la RAM à des fins d'analyse médico-légale ou de recherche en matière de sécurité. Il fait tout cela dans l'espace du noyau et peut transférer une image vers le système de fichiers local ou via TCP. Il est conçu pour vous fournir une copie aussi proche que possible de la mémoire physique, tout en minimisant son interaction avec le système.
Il semble que viewmem soit un programme utilisateur qui lit une plage d'adresses de mémoire virtuelle à partir d'un périphérique de mémoire, tel que /dev/mem ou /dev/kmem et imprime le contenu sur la sortie standard. Je ne suis pas sûr que cela fasse plus que simplement utiliser dd sur l'un de ces appareils.
Ceci est moins acceptable en médecine légale pour plusieurs raisons. Tout d'abord, /dev/mem et /dev/kmem sont progressivement supprimés et de plus en plus d'appareils ne sont pas livrés avec ces appareils. Deuxièmement, /dev/mem et /dev/kmem vous limitent à la lecture des premiers 896 Mo de RAM. En outre, l'outil provoque plusieurs changements de contexte entre l'espace utilisateur et l'espace noyau pour chaque bloc de mémoire lu et écrase la RAM avec ses tampons.
Je dirais que chaque outil a son utilité. Si vous avez juste besoin de connaître le contenu d'une adresse située dans les premiers 896 Mo de RAM et que votre appareil dispose /dev/mem et /dev/kmem et que vous ne vous souciez pas de capturer une image médico-légale, alors viewmem (ou dd) serait utile. Cependant, LiME n’a pas été conçu spécifiquement pour ce cas d’utilisation.
La chose la plus importante, pour vous les hackers de mémoire, c'est que viewmem s'appuie sur le /dev/mem et /dev/kmem dispositifs. Depuis le /dev/mem et /dev/kmem les appareils permettent un accès direct à la mémoire de l’appareil, ils constituent une vulnérabilité. Ces appareils Linux sont progressivement supprimés, car ils ont été la cible de multiples exploits ces derniers temps. LiME ne remplace pas seulement l'utilitaire viewmem, il le fait mieux.
Les fabricants en prennent note: en verrouillant les fonctionnalités souhaitées par les développeurs, vous favorisez le développement de meilleurs outils.
Source: LiME Forensique & Entretien avec l'auteur Joe Sylve
[Crédit d'image: Présentation LiME par Joe Sylve]