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

Warum den Linux-Kernel vor dem Root-Benutzer schützen?

Wenn ein Angreifer root wird, besitzt er die Maschine nicht auch ohne Kernel-Zugriff, indem er Dinge wie das Ändern von Binärdateien tut?

Vielleicht, vielleicht nicht. Mit SELinux können Sie den Zugriff auf Blockgeräte einschränken, sogar für den Root-Benutzer. Wenn Ihre Root-Partition also schreibgeschützt ist (und das System mit OverlayFS ausgeführt wird, um nicht dauerhafte Änderungen zu ermöglichen), kann das Schützen des Kernels vor Root einen konsistenten Zustand beim Neustart garantieren, selbst wenn die Maschine kompromittiert wurde Stammebene.

Wenn der Kernel dagegen nicht vor dem Root-Benutzer geschützt ist, können Sie solche Garantien nicht haben.


Ohne verifizierten Boot, zusammen mit verifizierten Modulen und kexec Sie geben dem Kernel eine bessere Chance, sich angesichts einer Privilegien-Eskalation gegen Angriffe zu verteidigen. Standardmäßig sind die beiden Funktionen deaktiviert:

kexec_load_disabled:

Ein Umschalter, der anzeigt, ob der Systemaufruf kexec_load deaktiviert wurde. Dieser Wert ist standardmäßig 0 (false:kexec_load aktiviert), kann aber auf 1 gesetzt werden (true:kexec_load deaktiviert). Sobald es wahr ist, kann kexec nicht mehr verwendet werden, und der Schalter kann nicht wieder auf falsch gesetzt werden. Dadurch kann ein kexec-Image geladen werden, bevor der Systemaufruf deaktiviert wird, sodass ein System ein Image einrichten (und später verwenden) kann, ohne dass es geändert wird. Wird im Allgemeinen zusammen mit dem "modules_disabled" sysctl verwendet.

module_disabled:

Ein Umschaltwert, der angibt, ob Module in einen ansonsten modularen Kernel geladen werden dürfen. Dieser Umschalter ist standardmäßig auf „off“ (0) eingestellt, kann aber auf „true“ (1) gesetzt werden. Sobald es wahr ist, können Module weder geladen noch entladen werden, und der Schalter kann nicht wieder auf falsch gesetzt werden. Wird im Allgemeinen mit dem Schalter „kexec_load_disabled“ verwendet.


Linux
  1. Der Lebenszyklus des Linux-Kernel-Testens

  2. Linux – Warum ist kein Rootfs-Dateisystem auf dem System vorhanden?

  3. Die Funktion von User Group Root??

  4. Linux – Warum kann der Kernel Init nicht ausführen?

  5. Wie funktioniert copy_from_user aus dem Linux-Kernel intern?

Meine Linux-Geschichte:Vom Linux-Benutzer zum Mitwirkenden

Wie deaktiviere ich die SSH-Anmeldung für den Root-Benutzer in Linux?

Setzen Sie das Root-Benutzerkennwort aus dem Rettungsmodus zurück

Warum gibt pr_debug des Linux-Kernels keine Ausgabe aus?

Warum heißt der mächtigste Benutzer auf einem Unix/Linux-System „root“?

Wie kann ich einen Speicherblock aus dem Linux-Kernel reservieren?