sez.~\ref{sec:file_ownership_management}).\\
\constd{CAP\_DAC\_OVERRIDE}& Evitare il controllo dei
permessi di lettura, scrittura ed esecuzione dei
- file, (vedi sez.~\ref{sec:file_access_control}).\\
+ file, (vedi
+ sez.~\ref{sec:file_access_control}).\\
\constd{CAP\_DAC\_READ\_SEARCH}& Evitare il controllo dei
permessi di lettura ed esecuzione per
le directory (vedi
\label{tab:proc_capabilities}
\end{table}
+% TODO: verificare ed aggiungere le nuove capacità CAP_BPF, CAP_PERFMON, vedi
+% https://lwn.net/Articles/822362/ anche CAP_CHECKPOINT_RESTORE vedi
+% https://lwn.net/Articles/822362/ e https://git.kernel.org/linus/74858abbb103
+
\constbeg{CAP\_SETPCAP}
Prima di dettagliare il significato della capacità più generiche, conviene
-
-
\subsection{La gestione del \textit{Secure Computing}.}
\label{sec:procadv_seccomp}
% TODO a partire dal kernel 3.17 è stata introdotta la nuova syscall seccomp,
% vedi http://lwn.net/Articles/600250/ e http://lwn.net/Articles/603321/
+% sempre per seccomp vedi https://lwn.net/Articles/799557/ dal 5.11 supporto
+% per le constant-action bitmaps https://lwn.net/Articles/834785/
+% TODO un esempio di uso di seccomp è su
+% https://blog.cloudflare.com/sandboxing-in-linux-with-zero-lines-of-code/
\itindend{secure~computing~mode}
% TODO: trattare keyctl (man 2 keyctl)
-
+% (fare sezione dedicata ????)
+% TODO documentare la Crypto API del kernel
% TODO trattare le funzioni di protezione della memoria pkey_alloc, pkey_free,
% pkey_mprotect, introdotte con il kernel 4.8, vedi
-% http://lwn.net/Articles/689395/ e Documentation/x86/protection-keys.txt
+% http://lwn.net/Articles/689395/ e Documentation/x86/protection-keys.txt
+
+% TODO documentare la syscall getrandom, introdotta con il kernel 3.17, vedi
+% http://lwn.net/Articles/606141/, ed introdotta con le glibc solo con la
+% versione 2.25 con getentropy, vedi https://lwn.net/Articles/711013/ ed i
+% problemi successivi vedi https://lwn.net/Articles/800509/
+
+%\subsection{La gestione delle chiavi crittografiche}
+%\label{sec:keyctl_management}
+
+% TODO non è chiaro se farlo qui, ma documentare la syscall bpf aggiunta con il
+% kernel 3.18, vedi http://lwn.net/Articles/612878/; al riguardo vedi anche
+% https://lwn.net/Articles/660331/
+
\section{Funzioni di gestione e controllo}
\label{sec:proc_manage_control}
%TODO: trattare PR_CAP_AMBIENT, dal 4.3
%TODO: trattare PR_CAP_FP_*, dal 4.0, solo per MIPS
-%TODO: trattare PR_MPX_*_MANAGEMENT, dal 3.19
+%TODO: trattare PR_MPX_*_MANAGEMENT, dal 3.19, vedi
+% https://lwn.net/Articles/582712/
%TODO: trattare PR_*NO_NEW_PRIVS, dal 3.5
\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
% TODO documentare PR_SPEC_DISABLE_NOEXEC in 5.1, vedi
% https://lwn.net/Articles/782511/
+% TODO documentare PR_SET_IO_FLUSHER in 5.6, vedi
+% https://lwn.net/Articles/811230/
+
+% TODO documentare PR_SET_SYSCALL_USER_DISPATCH in 5.11, vedi
+% https://lwn.net/Articles/826313/
+
\label{sec:prctl_operation}
\end{basedescript}
+
+
\subsection{La funzione \func{ptrace}}
\label{sec:process_ptrace}
% TODO trattare anche clone3 (vedi https://lwn.net/Articles/792628/), aggiunta
% con il kernel 5.3
+% e aggiunte successive, col 5.5
+% il flag CLONE_CLEAR_SIGHAND
+% https://git.kernel.org/linus/49cb2fc42ce4
+% https://git.kernel.org/linus/41585bbeeef9
+
La necessità di avere uno \textit{stack} alternativo c'è solo quando si
intende creare un \textit{thread}, in tal caso infatti il nuovo \textit{task}
% TODO: trattare userfaultfd, introdotta con il 4.23, vedi
-% http://man7.org/linux/man-pages/man2/userfaultfd.2.html
+% http://man7.org/linux/man-pages/man2/userfaultfd.2.html,
+% https://lwn.net/Articles/787308/, https://git.kernel.org/linus/57e5d4f278b9,
+% e hardening della stessa (https://lwn.net/Articles/819834/) nel 5.11
+
% TODO: trattare process_vm_readv/process_vm_writev introdotte con il kernel
% 3.2, vedi http://man7.org/linux/man-pages/man2/process_vm_readv.2.html e i
%
% TODO l'I/O sulle porte di I/O
-% consultare le manpage di ioperm, iopl e outb
+% consultare le manpage di ioperm, iopl e outb e
+% https://lwn.net/Articles/804143/
% non c'entra nulla qui, va trovato un altro posto (altri meccanismi di I/O in
% fileintro ?)
+% emulata a partire dal kernel 5.5, vedi https://lwn.net/Articles/804143/
+%
Da fare