Hallo Mitübersetzer, und angehängt Teil 8 mit der Bitte um konstruktive Kritik.
Vielen Dank & Grüße Helge -- Dr. Helge Kreutzmann deb...@helgefjell.de Dipl.-Phys. http://www.helgefjell.de/debian.php 64bit GNU powered gpg signed mail preferred Help keep free software "libre": http://www.ffii.de/
#. type: IP #, no-wrap msgid "6." msgstr "6." # #. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" #. type: Plain text msgid "" "If access has not been denied by any of the preceding steps, then access is " "allowed." msgstr "" "Falls der Zugriff in den vorhergehenden Schritten nicht verweigert wurde, " "dann wird er erlaubt." #. type: SS #, no-wrap msgid "/proc/sys/kernel/yama/ptrace_scope" msgstr "/proc/sys/kernel/yama/ptrace_scope" #. commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb #. type: Plain text msgid "" "On systems with the Yama Linux Security Module (LSM) installed (i.e., the " "kernel was configured with B<CONFIG_SECURITY_YAMA>), the I</proc/sys/kernel/" "yama/ptrace_scope> file (available since Linux 3.4) can be used to restrict " "the ability to trace a process with B<ptrace>() (and thus also the ability " "to use tools such as B<strace>(1) and B<gdb>(1)). The goal of such " "restrictions is to prevent attack escalation whereby a compromised process " "can ptrace-attach to other sensitive processes (e.g., a GPG agent or an SSH " "session) owned by the user in order to gain additional credentials that may " "exist in memory and thus expand the scope of the attack." msgstr "" "Auf Systemen, auf denen das Yama Linux Security Module (LSM) installiert (d." "h. der Kernel mit B<CONFIG_SECURITY_YAMA> konfiguriert worden) ist kann die " "Datei I</proc/sys/kernel/yama/ptrace_scope> (verfügbar seit Linux 3.4) zum " "Einschränken der Nachverfolgung von Prozesse mit B<ptrace>() verwandt werden " "(und damit auch die Möglichkeit, Werkzeuge wie B<strace>(1) und B<gdb>(1) zu " "verwenden). Das Ziel einer solchen Einschränkung besteht darin, " "Angriffseskalationen zu vermeiden, bei denen ein kompromitierter Prozess " "sich mittels Ptrace an andere sensitive Prozesse (z.B. einem GPG-Agenten " "oder einer SSH-Sitzung), die dem Benutzer gehören, anhängen könnte, um " "zusätzliche Berechtigungsnachweise zu erlangen, die im Speicher existieren, " "und damit den Umfang des Angriffs zu erhöhen." #. type: Plain text msgid "More precisely, the Yama LSM limits two types of operations:" msgstr "Genauer gesagt begrenzt die Yama LSM zwei Arten von Aktionen:" #. type: Plain text msgid "" "Any operation that performs a ptrace access mode B<PTRACE_MODE_ATTACH> check" "\\(emfor example, B<ptrace>() B<PTRACE_ATTACH>. (See the \"Ptrace access " "mode checking\" discussion above.)" msgstr "" "Jede Aktion, die eine Ptrace-Zugriffsbeschränkungsüberprüfung " "B<PTRACE_MODE_ATTACH> durchführt – beispielsweise B<ptrace>() " "B<PTRACE_ATTACH>. (Siehe die obige Diskussion »Ptrace-" "Zugriffsmodusüberprüfung«)." #. type: Plain text msgid "B<ptrace>() B<PTRACE_TRACEME>." msgstr "B<ptrace>() B<PTRACE_TRACEME>." #. type: Plain text msgid "" "A process that has the B<CAP_SYS_PTRACE> capability can update the I</proc/" "sys/kernel/yama/ptrace_scope> file with one of the following values:" msgstr "" "Ein Prozess, der über die Capability B<CAP_SYS_PTRACE> verfügt, kann die " "Datei I</proc/sys/kernel/yama/ptrace_scope> mit einem der folgenden Werte " "aktualisieren:" #. type: TP #, no-wrap msgid "0 (\"classic ptrace permissions\")" msgstr "0 (»klassische Ptrace-Berechtigungen«)" #. type: Plain text msgid "" "No additional restrictions on operations that perform B<PTRACE_MODE_ATTACH> " "checks (beyond those imposed by the commoncap and other LSMs)." msgstr "" "Keine zusätzlichen Beschränkungen bei Aktionen, die B<PTRACE_MODE_ATTACH>-" "Überprüfungen durchführen (die über die von Commoncap und anderen LSMs " "hinausgehen)." #. type: Plain text msgid "The use of B<PTRACE_TRACEME> is unchanged." msgstr "B<PTRACE_TRACEME> wird unverändert verwandt." #. type: TP #, no-wrap msgid "1 (\"restricted ptrace\") [default value]" msgstr "1 (»eingeschränkter Ptrace«) [Vorgabewert]" #. type: Plain text msgid "" "When performing an operation that requires a B<PTRACE_MODE_ATTACH> check, " "the calling process must either have the B<CAP_SYS_PTRACE> capability in the " "user namespace of the target process or it must have a predefined " "relationship with the target process. By default, the predefined " "relationship is that the target process must be a descendant of the caller." msgstr "" "Wenn eine Aktion durchgeführt wird, die eine B<PTRACE_MODE_ATTACH>-" "Überprüfung benötigt, muss der aufrufende Prozess entweder über die " "Capability B<CAP_SYS_PTRACE> in dem Benutzernamensraum des Zielprozesses " "verfügen oder er muss eine vorbestimmte Beziehung zum Zielprozess haben. " "Standardmäßig ist die vorbestimmte Beziehung, dass der Zielprozess ein " "Nachkomme des Aufrufenden sein muss." #. type: Plain text msgid "" "A target process can employ the B<prctl>(2) B<PR_SET_PTRACER> operation to " "declare an additional PID that is allowed to perform B<PTRACE_MODE_ATTACH> " "operations on the target. See the kernel source file I<Documentation/" "security/Yama.txt> for further details." msgstr "" "Ein Zielprozess kann die B<prctl>(2)-Aktion B<PR_SET_PTRACER> einsetzen, um " "eine zusätzliche PID zu erklären, der es erlaubt ist, B<PTRACE_MODE_ATTACH>-" "Aktionen auf dem Ziel durchzuführen. Siehe die Kernelquelldatei " "I<Documentation/security/Yama.txt> für weitere Details." #. type: TP #, no-wrap msgid "2 (\"admin-only attach\")" msgstr "2 (»nur Admin-Anhängung«)" #. type: Plain text msgid "" "Only processes with the B<CAP_SYS_PTRACE> capability in the user namespace " "of the target process may perform B<PTRACE_MODE_ATTACH> operations or trace " "children that employ B<PTRACE_TRACEME>." msgstr "" "Nur Prozesse mit der Capability B<CAP_SYS_PTRACE> im Benutzernamensraum des " "Zielprozesses dürfen B<PTRACE_MODE_ATTACH>-Aktionen durchführen oder Kinder, " "die B<PTRACE_TRACEME> einsetzen, verfolgen." #. type: TP #, no-wrap msgid "3 (\"no attach\")" msgstr "3 (»keine Anhängung«)" #. type: Plain text msgid "" "No process may perform B<PTRACE_MODE_ATTACH> operations or trace children " "that employ B<PTRACE_TRACEME>." msgstr "" "Kein Prozess darf B<PTRACE_MODE_ATTACH>-Aktionen durchführen oder Kinder " "verfolgen, die B<PTRACE_TRACEME> einsetzen." #. type: Plain text msgid "Once this value has been written to the file, it cannot be changed." msgstr "" "Sobald dieser Wert in die Datei geschrieben wurde, kann er nicht mehr " "geändert werden." # #. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" #. type: Plain text msgid "" "With respect to values 1 and 2, note that creating a new user namespace " "effectively removes the protection offered by Yama. This is because a " "process in the parent user namespace whose effective UID matches the UID of " "the creator of a child namespace has all capabilities (including " "B<CAP_SYS_PTRACE>) when performing operations within the child user " "namespace (and further-removed descendants of that namespace). " "Consequently, when a process tries to use user namespaces to sandbox itself, " "it inadvertently weakens the protections offered by the Yama LSM." msgstr "" "Beachten Sie im Hinblick auf die Werte 1 und 2, dass die Erstellung eines " "neuen Benutzernamensraums effektiv den durch Yama bereitgestellte Schutz " "entfernt. Dies rührt daher, dass der Prozess in dem Elternbenutzerraum, " "dessen effektive UID auf die UID des Erstellers des Kindnamensraums passt, " "über alle Capabilities (einschließlich B<CAP_SYS_PTRACE>) verfügt, wenn der " "Aktionen innerhalb des Kindnamensraums (und weiter entfernter Nachkommen " "dieses Namensraums) durchführt. Wenn ein Prozess versucht, einen " "Benutzernamensraum zu verwenden, um sich in eine Sandbox zu bringen, wird er " "konsequenterweise den durch das Yama LSM bereitgestellten Schutz schwächen." #. type: SS #, no-wrap msgid "C library/kernel differences" msgstr "Unterschiede C-Bibliothek/Kernel" #. type: Plain text msgid "" "At the system call level, the B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>, and " "B<PTRACE_PEEKUSER> requests have a different API: they store the result at " "the address specified by the I<data> parameter, and the return value is the " "error flag. The glibc wrapper function provides the API given in " "DESCRIPTION above, with the result being returned via the function return " "value." msgstr "" "Auf der Systemaufrufebene haben die Anfragen B<PTRACE_PEEKTEXT>, " "B<PTRACE_PEEKDATA> und B<PTRACE_PEEKUSER> eine unterschiedliche " "Programmierschnittstelle: Sie speichern das Ergebnis an der durch den " "Parameter I<Daten> angegebenen Adresse und der Rückgabewert ist ein " "Fehlercode. Die Glibc-Wrapper-Funktion stellt die oben in BESCHREIBUNG " "angegebene Programmierschnittstelle bereit. Ihr Ergebnis wird über den " "Rückgabewert der Funktion zurückgegeben." #. type: SH #, no-wrap msgid "BUGS" msgstr "FEHLER" #. type: Plain text msgid "" "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a " "different value than the one for 2.4. This leads to applications compiled " "with 2.6 kernel headers failing when run on 2.4 kernels. This can be worked " "around by redefining B<PTRACE_SETOPTIONS> to B<PTRACE_OLDSETOPTIONS>, if " "that is defined." msgstr "" "Auf Rechnern mit 2.6 Kernel-Headern ist B<PTRACE_SETOPTIONS> mit einem " "anderen Wert deklariert, als auf einem für 2.4. Dies führt dazu, dass " "Anwendungen, die mit 2.6-Kernel-Headern kompiliert wurden, bei der " "Ausführung auf 2.4er Kerneln scheitern. Dies kann durch Neudefinieren von " "B<PTRACE_SETOPTIONS> zu B<PTRACE_OLDSETOPTIONS> umgangen werden, wenn dies " "definiert ist." #. type: Plain text msgid "" "Group-stop notifications are sent to the tracer, but not to real parent. " "Last confirmed on 2.6.38.6." msgstr "" "Gruppenstoppbenachrichtigungen werden an der Verfolger gesandt, aber nicht " "an den echten Elternprozess. Zuletzt auf 2.6.38.6 bestätigt." #. Note from Denys Vlasenko: #. Here "exits" means any kind of death - _exit, exit_group, #. signal death. Signal death and exit_group cases are trivial, #. though: since signal death and exit_group kill all other threads #. too, "until all other threads exit" thing happens rather soon #. in these cases. Therefore, only _exit presents observably #. puzzling behavior to ptrace users: thread leader _exit's, #. but WIFEXITED isn't reported! We are trying to explain here #. why it is so. #. FIXME . need to test/verify this scenario #. type: Plain text msgid "" "If a thread group leader is traced and exits by calling B<_exit>(2), a " "B<PTRACE_EVENT_EXIT> stop will happen for it (if requested), but the " "subsequent B<WIFEXITED> notification will not be delivered until all other " "threads exit. As explained above, if one of other threads calls " "B<execve>(2), the death of the thread group leader will I<never> be " "reported. If the execed thread is not traced by this tracer, the tracer " "will never know that B<execve>(2) happened. One possible workaround is to " "B<PTRACE_DETACH> the thread group leader instead of restarting it in this " "case. Last confirmed on 2.6.38.6." msgstr "" "Falls ein führender Thread einer Gruppe verfolgt und durch den Aufruf von " "B<_exit>(2) beendet wird, wird es für ihn zu einem B<PTRACE_EVENT_EXIT>-" "Stopp kommen (falls angefordert), aber die nachfolgende B<WIFEXITED>-" "Benachrichtigung wird nicht gesandt, bis alle anderen Threads beendet sind. " "Wie oben erklärt, wird der Tod des führenden Prozesses der Gruppe gemeldet, " "falls einer der anderen Threads B<execve>(2) aufruft. Falls der ausgeführte " "Thread nicht durch den Verfolger verfolgt wird, wird der Verfolger niemals " "erfahren, dass B<execve>(2) auftrat. Eine mögliche Notlösung ist ein " "B<PTRACE_DETACH> für den führenden Thread der Gruppe, anstatt ihn in diesem " "Fall neu zu starten. Zuletzt auf 2.6.38.6 bestätigt." #. type: Plain text msgid "" "A B<SIGKILL> signal may still cause a B<PTRACE_EVENT_EXIT> stop before " "actual signal death. This may be changed in the future; B<SIGKILL> is meant " "to always immediately kill tasks even under ptrace. Last confirmed on Linux " "3.13." msgstr "" "Ein B<SIGKILL>-Signal kann immer noch einen B<PTRACE_EVENT_EXIT>-Stopp vor " "dem tatsächlichen Signaltod verursachen. Dies könnte in Zukunft geändert " "werden; B<SIGKILL> ist dazu gedacht, Aufgaben immer sofort zu killen, sogar " "unter Ptrace. Zuletzt auf Linux 3.13 bestätigt." #. type: Plain text msgid "" "Some system calls return with B<EINTR> if a signal was sent to a tracee, but " "delivery was suppressed by the tracer. (This is very typical operation: it " "is usually done by debuggers on every attach, in order to not introduce a " "bogus B<SIGSTOP>). As of Linux 3.2.9, the following system calls are " "affected (this list is likely incomplete): B<epoll_wait>(2), and B<read>(2) " "from an B<inotify>(7) file descriptor. The usual symptom of this bug is " "that when you attach to a quiescent process with the command" msgstr "" "Einige Systemaufrufe kehren mit B<EINTR> zurück, falls ein Signal an den " "verfolgten Prozess gesandt, die Auslieferung aber durch den Verfolger " "unterdrückt wurde. (Dies ist eine ganz typische Aktion: Sie wird " "normalerweise von Fehlersuchprogrammen bei jedem Anhängen durchgeführt, um " "kein fingiertes B<SIGSTOP> einzuleiten.) Ab Linux 3.2.9 werden die folgenden " "Systemaufrufe beeinflusst (diese Liste ist wahrscheinlich nicht " "vollständig): B<epoll_wait>(2) und B<read>(2) von einem B<inotify>(7)-" "Dateideskriptor. Das übliche Anzeichen für diesen Fehler ist, falls Sie " "einen ruhenden Prozess mit dem Befehl" #. type: Plain text #, no-wrap msgid " strace -p E<lt>process-IDE<gt>\n" msgstr " strace -p E<lt>Prozess-IDE<gt>\n" #. type: Plain text msgid "then, instead of the usual and expected one-line output such as" msgstr "anhängen, dass Sie statt der erwarteten einzeilige Ausgabe, wie" #. type: Plain text #, no-wrap msgid " restart_syscall(E<lt>... resuming interrupted call ...E<gt>_\n" msgstr " restart_syscall(E<lt>… resuming interrupted call …E<gt>_\n" #. type: Plain text #, no-wrap msgid " select(6, [5], NULL, [5], NULL_\n" msgstr " select(6, [5], NULL, [5], NULL_\n" #. type: Plain text msgid "" "('_' denotes the cursor position), you observe more than one line. For " "example:" msgstr "" "('_' kennzeichnet die Cursor-Position) mehr als eine Zeile beobachten " "können, zum Beispiel:" #. type: Plain text #, no-wrap msgid "" " clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n" " epoll_wait(4,_\n" msgstr "" " clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n" " epoll_wait(4,_\n" # http://de.wikipedia.org/wiki/Mode-Setting#Mode-Setting_im_User-Space #. type: Plain text msgid "" "What is not visible here is that the process was blocked in " "B<epoll_wait>(2) before B<strace>(1) has attached to it. Attaching caused " "B<epoll_wait>(2) to return to user space with the error B<EINTR>. In this " "particular case, the program reacted to B<EINTR> by checking the current " "time, and then executing B<epoll_wait>(2) again. (Programs which do not " "expect such \"stray\" B<EINTR> errors may behave in an unintended way upon " "an B<strace>(1) attach.)" msgstr "" "Was hier nicht sichtbar ist, ist, dass der Prozess in B<epoll_wait>(2) " "blockiert wurde, bevor B<strace>(1) an ihn angehängt hat. Das Anhängen " "verursachte ein B<epoll_wait>(2), um zum Anwendungsraum mit dem Fehler B<EINTR> " "zurückzukehren. In diesem besonderen Fall reagiert das Programm auf " "B<EINTR>, indem die aktuelle Zeit geprüft und dann B<epoll_wait>(2) erneut " "ausgeführt wird. (Programme, die keine derartigen »verirrten« B<EINTR>-" "Fehler erwarten, können sich bei einem B<strace>(1)-Anhängen in " "unbeabsichtigter Weise verhalten.)" #. type: SH #, no-wrap msgid "SEE ALSO" msgstr "SIEHE AUCH" #. type: Plain text msgid "" "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2), " "B<gettid>(2), B<prctl>(2), B<seccomp>(2), B<sigaction>(2), B<tgkill>(2), " "B<vfork>(2), B<waitpid>(2), B<exec>(3), B<capabilities>(7), B<signal>(7)" msgstr "" "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2), " "B<gettid>(2), B<prctl>(2), B<seccomp>(2), B<sigaction>(2), B<tgkill>(2), " "B<vfork>(2), B<waitpid>(2), B<exec>(3), B<capabilities>(7), B<signal>(7)" #. type: SH #, no-wrap msgid "COLOPHON" msgstr "KOLOPHON" #. type: Plain text msgid "" "This page is part of release 4.09 of the Linux I<man-pages> project. A " "description of the project, information about reporting bugs, and the latest " "version of this page, can be found at \\%https://www.kernel.org/doc/man-" "pages/." msgstr "" "Diese Seite ist Teil der Veröffentlichung 4.09 des Projekts Linux-I<man-" "pages>. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet " "werden können sowie die aktuelle Version dieser Seite finden sich unter \\" "%https://www.kernel.org/doc/man-pages/."
signature.asc
Description: Digital signature