Ich verstehe das /dev/kmem
und /dev/mem
biete Zugriff auf den Speicher (dh den Roh-RAM) des Systems. Mir ist auch bewusst, dass /dev/kmem
dies im Kernel vollständig deaktiviert werden kann und dass der Zugriff für eingeschränkt werden kann /dev/mem
.
Es scheint mir, roh Zugriff auf Speicher kann für Entwickler und Hacker nützlich sein, aber warum soll ich auf dem Speicher durch Zugriff benötigen /dev/mem
. AFAIK kann im Kernel nicht deaktiviert werden (im Gegensatz zu /dev/kmem
). Der Zugriff auf unformatierten Speicher, der möglicherweise missbraucht / ausgenutzt werden kann, scheint mir nur um Ärger zu bitten.
Gibt es eine praktische Verwendung dafür? Benötigen Benutzerprogramme eine ordnungsgemäße Funktion?
/dev/mem
. Ich bin mir nicht sicher, ob das noch relevant ist./dev/mem
. Laden Sie ein Modul und führen Sie den Code im Kernelmodus aus. Darüber hinaus lohnt es sich nur dann, sich gegen Angreifer mit Root-Zugriff abzusichern, wenn es Dinge gibt, die Root nicht kann, was in typischen Installationen eher nicht der Fall ist.man mem
, wird der Schreibzugriff auf / dev / mem durch Kernel-Lockdown-Patches deaktiviert, die zur Unterstützung von "Secure Boot" verwendet werden (Lockdown kann ohne Secure Boot aktiviert werden). phoronix.com/…Antworten:
Es gibt ein Dia-Deck von Scale 7x 2009 mit dem Titel: Untergrabung des Linux-Kernels: Injection von bösartigem Code über / dev / mem , das diese beiden Aufzählungszeichen enthielt.
Nach allem, was ich bisher bei der Suche gefunden habe, scheinen diese beiden Kugeln die Spitzenreiter für legitime Zwecke zu sein.
Verweise
quelle
X server
auf meinem Server, und somit braucht nicht/dev/mem
. Gibt es eine Möglichkeit,/dev/mem
den Kernel vollständig zu deaktivieren ? Ich konnte nur "Filterzugriff auf / dev / mem" (CONFIG_STRICT_DEVMEM
) finden.Es ist erwähnenswert, dass selbst wenn Sie deaktiviert
/dev/mem
und/dev/kmem
dass der Speicher noch abgeladen werden kann; werfen Sie einen Blick aufman proc
, um zu enthüllen/proc/kcore
; Es ist der physische Speicher des Systems. Ein wirklich gutes Forensik-Toolkit rekall hat ein Tool, das dies bereits tut . Es speichert den Speicher (und die/boot
Dateien), damit sie analysiert werden können.Tatsächlich deaktiviert Ubuntu standardmäßig
/dev/kmem
:Ubuntu wird nicht deaktiviert,
/dev/mem
da es von Anwendungen benötigt wird .Wie deaktiviere ich
/proc/kcore
?CONFIG_PROC_KCORE
Beim Erstellen des Kernels nicht aktivieren .Wie deaktivierst du
/dev/mem
?Wenn
man mem
wir uns das ansehen, erfahren wir einige Details darüber, wie es erstellt wurde:Sie sollten in der Lage sein, nur
rm -rf /dev/mem
; Sie können während der Kernel-Build-Phase deaktivieren, indem Sie nicht aktivierenCONFIG_STRICT_DEVMEM
.Wie deaktiviere ich
/dev/kmem
?Stellen Sie sicher, dass
CONFIG_DEVKMEM
dies beim Erstellen des Kernels nicht aktiviert ist.Wie kann man Kaltstartangriffe verhindern?
Was passiert , wenn ich zu deaktivieren war in der Lage
/proc/kcore
,/dev/mem
,/dev/kmem
und dann eine verschlüsselte Swap - Partition oder nicht genutzt Swap überhaupt verwendet? Nun, Ihr Gedächtnis könnte einfach eingefroren und auf diese Weise abgerufen werden. Wie verhindern Sie diesen Angriff? Sie verschlüsseln Ihren RAM. Wie verschlüsseln Sie Ihren RAM? Das kannst du nicht. Siehe TRESOR für Details .quelle
/dev/kmem
in meinem Kernel deaktiviert und sehe keine/proc/kcore
auf meinem System. Aber ich habe/dev/mem
, und ich möchte es deaktivieren./proc/mem
sollte/dev/mem
ähnlich sein für/proc/kmem
.Wie Sie wissen,
/dev/mem
bietet es Zugriff auf den physischen Speicher eines laufenden Systems./dev/kmem
Bietet Zugriff auf den virtuellen Kernelspeicher. Diese beiden Zeichengeräte können durch Kernel-Konfigurationsoptionen dauerhaft deaktiviert werden (der Code ist die maßgeblichste Informationsquelle und wird daher als Referenz verwendet). Durch Deaktivieren der ersten beiden Optionen werden die entsprechenden Geräte deaktiviert.CONFIG_DEVKMEM
: Bestimmt, ob/dev/kmem
beim Booten erstellt wirdCONFIG_DEVMEM
: Bestimmt, ob/dev/mem
beim Booten erstellt wirdCONFIG_STRICT_DEVMEM
: Wenn/dev/mem
vorhanden, wird festgelegt, ob der Zugriff darauf eingeschränkt istAbhängig von Ihrer Distribution kann Ihre aktuelle Kernelkonfiguration mit etwas wie
zless /proc/config.gz
oder angezeigt werdenless /boot/config-$(uname -r)
.Ich denke, die ursprüngliche Absicht von
/dev/mem
war es, die Interaktion mit Peripheriegeräten mit Speicherzuordnung zu unterstützen . Die offensichtlichen negativen Auswirkungen der Verfügbarkeit dieser virtuellen Geräte auf die Sicherheit (z. B. wenn ein Angreifer in der Lage ist, den Speicher eines anderen Prozesses oder sogar des Kernels im laufenden Betrieb zu patchen) sind seit mindestens einem Jahrzehnt bekannt. Einschränken des Zugriffs auf/dev/mem
hat in den Mainline - Kernel unterstützt seit Anfang 2008 ,/dev/kmem
hat auch optional gewesen , da um dann auch.Vor einem Jahrzehnt schien das
X
abhängig zu sein/dev/mem
, ich glaube nicht, dass dies immer noch wahr ist. Um die Behauptungen über dieX
Notwendigkeit zu testen , habe/dev/mem
ich gestern das virtuelle Gerät von meinem Laptop gelöscht und es funktioniert seitdem scheinbar perfekt. Im Jahr 2017 scheint es keine praktische Verwendung für diese Geräte außerhalb der Forschung und Entwicklung zu geben.Aus Sicherheitsgründen empfiehlt es sich, diese Geräte zu entfernen. Es ist noch erwähnenswert, dass ein Remote - Angreifer, mit erhöhten Rechten, Speicher außerhalb seines Adressraumes lesen kann. Auf den Speicher anderer User Space-Anwendungen kann mit zugegriffen werden
/proc/<pid>/mem
. Auf den Kernel-Speicher kann mit zugegriffen werden/proc/kcore
.quelle
Ich habe
/dev/mem
von Anfang an nicht in mein System aufgenommen. Ich verwende Gentoo Linux, daher ist dies keine Überraschung, da Sie mit dieser Linux-Distribution praktisch jedes Paket selbst erstellen, einschließlich des Linux-Kernels.Ich habe keine Probleme aufgrund des Mangels an
/dev/mem
X.org X11 bemerkt . Erst heute habe ich festgestellt, dass ein Auftauchen des Paketsx11-drivers/xf86-video-vesa
eine Meldung druckt, die besagt, dass es erforderlich ist/dev/mem
, wie folgt:Da ich den VESA-Treiber für den XServer nicht absichtlich oder auch nur als Fallback installiert habe, musste ich ihn eigentlich nie verwenden und habe ihn daher bisher nicht bemerkt.
Dies beweist jedoch, dass a) X11 nicht mehr benötigt
/dev/mem
wird und b) einige X11-Grafiktreiber dies möglicherweise trotzdem tun.Neuere Videotreiber für bestimmte Hardware funktionieren höchstwahrscheinlich ohne diese. Genau wie das moderne X.org-X11 (auf Gentoo
x11-base/xorg-server
) nicht einmal mehr suid root sein muss, sieht Fortschritt so aus ...quelle