ADD SELinux and more

This commit is contained in:
2025-03-13 01:20:24 +01:00
parent ee31579151
commit b0acb41b67
3 changed files with 184 additions and 4 deletions

View File

@@ -120,4 +120,184 @@ Dadurch können /proc/pid/mem-Zugriffe die Speicherzuordnungsberechtigungen für
\subsubsection{Never}
CONFIG\_PROC\_MEM\_NO\_FORCE [=n] \textbf{[N]}\\
Niemals die Berechtigungen für die Speicherzuordnung außer Kraft setzen.
\english{Never override memory mapping permissions}
\english{Never override memory mapping permissions}
%17.4
\subsection{Enable different security models}
CONFIG\_SECURITY [=y] \textbf{[Y]}\\
Damit können Sie verschiedene Sicherheitsmodule auswählen, die in Ihrem Kernel konfiguriert werden sollen.
Wenn diese Option nicht ausgewählt ist, wird das Standard-Linux-Sicherheitsmodell verwendet.\\
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N.
\english{This allows you to choose different security modules to be configured into your kernel.
If this option is not selected, the default Linux security model will be used.\\
If you are unsure how to answer this question, answer N.}
%17.5
\subsection{Enable the securityfs filesystem}
CONFIG\_SECURITYFS [=y] \textbf{[Y]}\\
Damit wird das securityfs-Dateisystem erstellt.
Es wird derzeit von verschiedenen Sicherheitsmodulen (AppArmor, IMA, SafeSetID, TOMOYO, TPM) verwendet.
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N.
\english{This will build the securityfs filesystem.
It is currently used by various security modules (AppArmor, IMA, SafeSetID, TOMOYO, TPM).
If you are unsure how to answer this question, answer N.}
%17.6
\subsection{Socket and Networking Security Hooks}
CONFIG\_SECURITY\_NETWORK [=y] \textbf{[Y]}\\
Damit werden die Socket- und Netzwerksicherheitshaken aktiviert.
Wenn diese Option aktiviert ist, kann ein Sicherheitsmodul diese Hooks verwenden, um Socket- und Netzwerkzugangskontrollen zu implementieren.
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N.
\english{This enables the socket and networking security hooks.
If enabled, a security module can use these hooks to implement socket and networking access controls.
If you are unsure how to answer this question, answer N.}
%17.7
\subsection{Infiniband Security Hooks}
CONFIG\_SECURITY\_INFINIBAND \colorbox{yellow!80}{[=y] \textbf{[N]}}\\
Damit werden die Infiniband-Sicherheitshaken aktiviert.
Wenn diese Option aktiviert ist, kann ein Sicher\-heits\-modul diese Hooks verwenden, um Infiniband-Zugangskontrollen zu implementieren.
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N.
\english{This enables the Infiniband security hooks.
If enabled, a security module can use these hooks to implement Infiniband access controls.
If you are unsure how to answer this question, answer N.}
\note{Da wir am Laptop sicherlich keine Infiniband-Verbindungen haben, wählen wir N.}
%17.8
\subsection{XFRM (IPSec) Networking Security Hooks}
CONFIG\_SECURITY\_NETWORK\_XFRM [=y] \textbf{[Y]}\\
Damit werden die XFRM (IPSec)-Netzwerksicherheitshaken aktiviert.
Wenn diese Option aktiviert ist, kann ein Sicherheitsmodul diese Hooks verwenden, um Zugriffskontrollen pro Paket auf der Grundlage
von Kennzeichnungen zu implementieren, die aus der IPSec-Richtlinie abgeleitet werden.
Nicht-IPSec-Kommunikationen werden als unmarkiert bezeichnet, und nur Sockets, die zur Kommunikation unmarkierter Daten berechtigt sind,
können ohne IPSec senden.
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N.
\english{This enables the XFRM (IPSec) networking security hooks.
If enabled, a security module can use these hooks to implement per-packet access controls based on labels derived from IPSec policy.
Non-IPSec communications are designated as unlabelled, and only sockets authorized to communicate unlabelled data can send without using IPSec.\\
If you are unsure how to answer this question, answer N.}
%17.9
\subsection{Security hooks for pathname based access control}
CONFIG\_SECURITY\_PATH [=y] \textbf{Y}\\
Damit werden die Sicherheitshaken für die auf Pfadnamen basierende Zugriffskontrolle aktiviert.
Wenn diese Option aktiviert ist, kann ein Sicherheitsmodul diese Hooks verwenden,
um eine auf Pfadnamen basierende Zugriffskontrolle zu implementieren.
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N.
\english{This enables the security hooks for pathname based access control.
If enabled, a security module can use these hooks to implement pathname based access controls.
If you are unsure how to answer this question, answer N.}
%17.10
\subsection{Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)}
CONFIG\_INTEL\_TXT [=n] \textbf{[N]}\\
Diese Option aktiviert die Unterstützung für das Booten des Kernels mit dem Trusted Boot (tboot) Modul.
Dadurch wird die Intel(R) Trusted Execution Technology verwendet, um einen gemessenen Start des Kernels durchzuführen.
Wenn das System Intel(R) TXT nicht unterstützt, hat dies keine Auswirkung.\\
Intel TXT bietet eine höhere Sicherheit für die Systemkonfiguration und den Anfangszustand sowie einen Schutz vor Datenrücksetzung.
Damit wird eine robuste anfängliche Kernel-Messung und -Überprüfung durchgeführt, die dazu beiträgt, dass die Kernel-Sicherheitsmechanismen korrekt funktionieren.
Dieses Schutzniveau erfordert eine Vertrauensbasis außerhalb des Kernels selbst.\\
Intel TXT trägt auch dazu bei, die Bedenken der Endbenutzer zu zerstreuen, die sich darauf verlassen wollen, dass ihre Hardware den VMM oder Kernel ausführt,
mit dem sie konfiguriert wurde, insbesondere, da sie dafür verantwortlich sind, VMs und Diensten, die darauf laufen, diese Sicherheit zu geben.
Weitere Informationen über Intel(R) TXT finden Sie unter \url{https://www.intel.com/technology/security/}.
Siehe \url{http://tboot.sourceforge.net} für weitere Informationen über tboot.\\
Unter \texttt{Documentation/arch/x86/intel\_txt.rst} finden Sie eine Beschreibung, wie Sie die Intel TXT-Unterstützung in einem Kernel-Boot aktivieren können.\\
Wenn Sie sich nicht sicher sind, ob dies erforderlich ist, antworten Sie mit N.
\english{This option enables support for booting the kernel with the Trusted Boot (tboot) module.
This will utilize Intel(R) Trusted Execution Technology to perform a measured launch of the kernel.
If the system does not support Intel(R) TXT, this will have no effect.\\
Intel TXT will provide higher assurance of system configuration and initial state as well as data reset protection.
This is used to create a robust initial kernel measurement and verification, which helps to ensure that kernel security mechanisms are functioning correctly.
This level of protection requires a root of trust outside of the kernel itself.\\
Intel TXT also helps solve real end user concerns about having confidence that their hardware is running the VMM or kernel that it was configured with,
especially since they may be responsible for providing such assurances to VMs and services running on it.\\
See \url{https://www.intel.com/technology/security/} for more information about Intel(R) TXT.
See \url{http://tboot.sourceforge.net} for more information about tboot.
See \texttt{Documentation/arch/x86/intel\_txt.rst} for a description of how to enable Intel TXT support in a kernel boot.\\
If you are unsure as to whether this is required, answer N.}
\subsection{Low address space for LSM to protect from user allocation}
CONFIG\_LSM\_MMAP\_MIN\_ADDR [=65536] \textbf{[65536]}\\
Dies ist der Teil des niedrigen virtuellen Speichers, der vor der Zuweisung im Benutzerraum geschützt werden sollte.
Wenn ein Benutzer davon abgehalten wird, auf niedrige Seiten zu schreiben, kann dies dazu beitragen, die Auswirkungen von NULL-Zeiger-Fehlern im Kernel zu verringern.\\
Für die meisten ia64-, ppc64- und x86-Benutzer mit viel Adressraum ist ein Wert von \num{65536} angemessen und sollte keine Probleme verursachen.
Auf ARM und anderen Architekturen sollte er nicht höher als 32768 sein.
Programme, die die vm86-Funktionalität nutzen oder diesen niedrigen Adressraum abbilden müssen, benötigen die für die Systeme, auf denen LSM läuft, spezifische Berechtigung.
\english{This is the portion of low virtual memory which should be protected from userspace allocation.
Keeping a user from writing to low pages can help reduce the impact of kernel NULL pointer bugs.\\
For most ia64, ppc64 and x86 users with lots of address space a value of 65536 is reasonable and should cause no problems.
On arm and other archs it should not be higher than 32768.
Programs which use vm86 functionality or have some need to map this low address space will need the permission specific to the systems running LSM.}
\subsection{Harden memory copies between kernel and userspace}
CONFIG\_HARDENED\_USERCOPY [=y] \textbf{[Y]}\\
Diese Option prüft beim Kopieren von Speicher in den Kernel oder aus dem Kernel (über die Funktionen \texttt{copy\_to\_user()} und \texttt{copy\_from\_user()})
auf offensichtlich falsche Speicherbereiche,
indem Speicher\-bereiche zurückgewiesen werden, die größer als das angegebene Heap-Objekt sind, sich über mehrere separat zugewiesene Seiten erstrecken,
sich nicht auf dem Prozess-Stack befinden oder Teil des Kerneltextes sind.
Dies verhindert ganze Klassen von Heap-Overflow-Exploits und ähnliche Kernel-Speicher-Exponierungen.
\english{This option checks for obviously wrong memory regions when copying memory to/from the kernel (via copy\_to\_user() and copy\_from\_user() functions)
by rejecting memory ranges that are larger than the specified heap object, span multiple separately allocated pages, are not on the process stack, or are part of the kernel text.
This prevents entire classes of heap overflow exploits and similar kernel memory exposures.}
\subsection{Harden common str/mem functions against buffer overflows}
CONFIG\_FORTIFY\_SOURCE [=y] \textbf{[Y]}\\
Erkennung von Pufferüberläufen in gängigen String- und Speicherfunktionen,
bei denen der Compiler die Puffergrößen ermitteln und validieren kann.
\english{Detect overflows of buffers in common string and memory functions where the compiler can determine and validate the buffer sizes.}
\subsection{Force all usermode helper calls through a single binary}
CONFIG\_STATIC\_USERMODEHELPER [=n] \textbf{[N]}\\
Standardmäßig kann der Kernel viele verschiedene Userspace-Binärprogramme über die \glqq usermode helper\grqq{} Kernelschnittstelle aufrufen.
Einige dieser Binärprogramme sind statisch definiert, entweder im Kernelcode selbst oder als Kernelkonfigurationsoption.
Einige von ihnen werden jedoch dynamisch zur Laufzeit erstellt oder können nach dem Start des Kernels geändert werden.
Um eine zusätzliche Sicherheitsebene zu schaffen, leiten Sie alle diese Aufrufe über eine einzige ausführbare Datei, deren Name nicht geändert werden kann.
Beachten Sie, dass es an dieser einzelnen Binärdatei liegt, die entsprechende \glqq echte\grqq{} Usermode-Hilfsprogrammdatei aufzurufen, die auf dem ersten Argument basiert, das ihr übergeben wurde.
Falls gewünscht, kann dieses Programm filtern und auswählen, welche echten Programme aufgerufen werden.
Wenn Sie möchten, dass alle Usermode-Hilfsprogramme deaktiviert werden, wählen Sie diese Option und setzen Sie STATIC\_USERMODEHELPER\_PATH auf eine leere Zeichenkette.
\english{By default, the kernel can call many different userspace binary programs through the ``usermode helper'' kernel interface.
Some of these binaries are statically defined either in the kernel code itself, or as a kernel configuration option.
However, some of these are dynamically created at runtime, or can be modified after the kernel has started up.
To provide an additional layer of security, route all of these calls through a single executable that can not have its name changed.\\
Note, it is up to this single binary to then call the relevant ``real'' usermode helper binary, based on the first argument passed to it.
If desired, this program can filter and pick and choose what real programs are called.
If you wish for all usermode helper programs are to be disabled, choose this option and then set STATIC\_USERMODEHELPER\_PATH
to an empty string.}
\subsection{SELinux Support}
CONFIG\_SECURITY\_SELINUX [=y] \textbf{[Y]}\\
Damit wird Security-Enhanced Linux (SELinux) ausgewählt.
Sie benötigen außerdem eine Richtlinienkonfiguration und ein gekennzeichnetes Dateisystem.
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N.
\english{This selects Security-Enhanced Linux (SELinux).
You will also need a policy configuration and a labeled filesystem.
If you are unsure how to answer this question, answer N.}
\subsubsection{SELinux boot parameter}
CONFIG\_SECURITY\_SELINUX\_BOOTPARAM [=y] \textbf{[Y]}\\
Diese Option fügt einen Kernelparameter `selinux' hinzu, mit dem SELinux beim Booten deaktiviert werden kann.
Wenn diese Option ausgewählt ist, kann die SELinux-Funktionalität mit \texttt{selinux=0} in der Kernel-Befehlszeile deaktiviert werden.
Der Zweck dieser Option ist es, dass ein einzelnes Kernel-Image mit eingebautem,
aber nicht unbedingt aktiviertem SELinux verteilt werden kann.
\english{This option adds a kernel parameter `selinux', which allows SELinux to be disabled at boot.
If this option is selected, SELinux functionality can be disabled with selinux=0 on the kernel command line.
The purpose of this option is to allow a single kernel image to be distributed with SELinux built in, but not
necessarily enabled.}
\subsubsection{SELinux Development Support}
CONFIG\_SECURITY\_SELINUX\_DEVELOP [=y] \textbf{[Y]}\\
Dies aktiviert die Entwicklungsunterstützung von SELinux, die nützlich ist, um mit SELinux zu experimentieren und Richtlinien zu entwickeln.
Wenn Sie unsicher sind, sagen Sie Y.
Wenn diese Option aktiviert ist, startet der Kernel im permissiven Modus (alles protokollieren, nichts verweigern), es sei denn, Sie geben enforcing=1 in der Kernel-Kommandozeile an.
Sie können den Kernel über /sys/fs/selinux/enforce interaktiv zwischen dem erzwingenden und dem erlaubenden Modus umschalten (sofern die Richtlinie dies zulässt).
\english{This enables the development support option of SELinux, which is useful for experimenting with SELinux and developing policies.
If unsure, say Y.
With this option enabled, the kernel will start in permissive mode (log everything, deny nothing) unless you specify enforcing=1
on the kernel command line.
You can interactively toggle the kernel between enforcing mode and permissive mode (if permitted by the policy) via /sys/fs/selinux/enforce.}
\subsubsection{SELinux AVC Statistics}
CONFIG\_SECURITY\_SELINUX\_AVC\_STATS [=y] \textbf{[Y]}\\
Diese Option sammelt Zugriffsvektor-Cache-Statistiken in /sys/fs/selinux/avc/cache_stats, die mit Tools wie avcstat überwacht werden können.
\english{This option collects access vector cache statistics to /sys/fs/selinux/avc/cache_stats, which may be monitored via tools
such as avcstat.}