GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kernel:/dev/kmem und /dev/mem deaktivieren

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.


Linux
  1. So generieren Sie ein zufälliges Passwort unter Linux mit /dev/random

  2. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

  3. Wie portabel sind /dev/stdin, /dev/stdout und /dev/stderr?

  4. Wann sollte /dev/random vs. /dev/urandom verwendet werden?

  5. So ordnen Sie /dev/sdX- und /dev/mapper/mpathY-Geräte vom /dev/dm-Z-Gerät zu

tty (/dev/tty ) vs. pts (/dev/pts) unter Linux

DD von /dev/zero nach /dev/null ... was eigentlich passiert

Wie Linux /dev/tty und /dev/tty0 verwendet

Ist es falsch, /dev/random unter Linux mit /dev/urandom zu verknüpfen?

echo oder print /dev/stdin /dev/stdout /dev/stderr

Unterschiede zwischen /dev/sda und /dev/sda1