Es gibt eine Folie von Scale 7x 2009 mit dem Titel:Unterminierung des Linux-Kernels:Malicious Code Injection via /dev/mem, die diese 2 Aufzählungszeichen enthielt.
Wer braucht das?
- X-Server (Videospeicher &Steuerregister)
- DOSEmu
Nach allem, was ich bisher bei der Suche gefunden habe, scheinen diese beiden Kugeln die Spitzenreiter für legitime Verwendungen zu sein.
Referenzen
- Anthony Lineberry auf /dev/mem Rootkits – LJ 8/2009 von Mick Bauer
- Wer braucht /dev/kmem?
Es ist erwähnenswert, dass dies auch dann der Fall ist, wenn Sie /dev/mem
deaktiviert haben und /dev/kmem
dieser Speicher kann immer noch gelöscht werden; werfen Sie einen Blick auf man proc
um /proc/kcore
aufzudecken; es ist der physische Speicher des Systems. Ein wirklich gutes Forensik-Toolkit Rekall hat ein Tool, das dies bereits tut; es dumpt den Speicher (und /boot
Dateien), damit sie analysiert werden können.
Tatsächlich deaktiviert Ubuntu standardmäßig /dev/kmem
:
Es gibt keine moderne Verwendung von /dev/kmem
mehr als Angreifer, die es zum Laden von Kernel-Rootkits verwenden. CONFIG_DEVKMEM
auf "n" gesetzt ist. Während die /dev/kmem
Der Geräteknoten existiert noch in Ubuntu 8.04 LTS bis Ubuntu 9.04, er ist eigentlich mit nichts im Kernel verbunden.
Ubuntu deaktiviert /dev/mem
nicht weil es von Anwendungen benötigt wird.
Einige Anwendungen (Xorg) benötigen direkten Zugriff auf den physischen Speicher aus dem Benutzerbereich. Die spezielle Datei /dev/mem
existiert, um diesen Zugang zu ermöglichen. In der Vergangenheit war es möglich, Kernel-Speicher aus dieser Datei anzuzeigen und zu ändern, wenn ein Angreifer Root-Zugriff hatte. Die CONFIG_STRICT_DEVMEM
Die Kernel-Option wurde eingeführt, um den Zugriff auf den Speicher außerhalb des Geräts zu blockieren (ursprünglich CONFIG_NONPROMISC_DEVMEM
).
So deaktivieren Sie /proc/kcore
?
CONFIG_PROC_KCORE
nicht aktivieren beim Erstellen des Kernels.
Wie deaktivieren Sie /dev/mem
?
Sehen Sie sich man mem
an gibt uns einige Details darüber, wie es erstellt wird:
mknod -m 660 /dev/mem c 1 1
chown root:kmem /dev/mem
Sie sollten nur rm -rf /dev/mem
können; Sie können während der Kernel-Erstellungsphase deaktivieren, indem Sie CONFIG_STRICT_DEVMEM
nicht aktivieren .
So deaktivieren Sie /dev/kmem
?
Stellen Sie sicher, dass CONFIG_DEVKMEM
wird beim Kernel-Build nicht aktiviert.
Wie verhindert man Cold-Boot-Angriffe?
Was wäre, wenn ich /proc/kcore
deaktivieren könnte , /dev/mem
, /dev/kmem
und dann eine verschlüsselte Swap-Partition verwendet oder überhaupt keinen Swap verwendet? Nun, Ihr Gedächtnis könnte einfach eingefroren und auf diese Weise abgerufen werden. Wie verhindern Sie diesen Angriff? Sie verschlüsseln Ihren Arbeitsspeicher; wie verschlüsselst du deinen RAM? Du kannst nicht. Siehe TRESOR für Details.