Alcuni commenti su capabilities: https://forums.grsecurity.net/viewtopic.php?t=2522
Diciamo che l'utilizzo migliore è appunto CAP_NET_BIND_SERVICE per bindare servizi su porte privileged senza che debbano essere root o raw socket per ping & co. Alcune distro (o solo alcuni hardening?) le usano anche per non dare i privilegi di root a X (ma poi dandogli i permessi di owner su qualsiasi file è quasi uguale eh :)
Se ti interessa l'argomento e una comparazione con altri, vedi: https://media.ccc.de/v/36c3-10519-a_systematic_evaluation_of_openbsd_s_mitig... https://isopenbsdsecu.re/
ciao, I.
On Tue, Feb 25, 2020 at 10:53:14PM +0000, Giulio Roman wrote:
Ciao lista,
recentemente ho scoperto una nuova feature supportata da Linux che non conoscevo, le Capabilities: http://man7.org/linux/man-pages/man7/capabilities.7.html
Praticamente si tratta di un insieme di "permessi" che un file binario eseguibile puo' avere, in aggiunta ai piu' noti rwx a livello di owner, group e other, e ai setuid e setgid che e' possibile assegnare con chmod. Le capabilities non appaiono quando si listano i file con `ls -l` e servono dei comandi appositi per leggerle e scriverle: setcap e getcap.
Nel concreto, gli esempi piu' chiari che ho trovato sono due:
quello di assegnare la capability CAP_NET_BIND_SERVICE per permettere a un eseguibile (lanciato da un utente non root) di aprire un socket su una porta inferiore alla 1024.
per permettere a un utente di creare un socket raw (non tcp o udp), si puo' assegnare la capability CAP_NET_RAW.
In entrambi i casi, un binario che possiede le suddette capabilities e' in grado di effettuare certe operazioni che normalmente solo root puo' fare senza avere setuid o setgid e la ownership di root.
Quello che non mi e' chiaro e': **nel concreto** quando si devono/possono usare queste capabilities? Qualcuno ha degli esempi concreti di applicazioni che necessitano di avere delle capabilities? In che casi e perche' bisognerebbe assegnare una capability piuttosto che assegnare setuid?
Saluti Giulio _______________________________________________ http://lists.lugbz.org/cgi-bin/mailman/listinfo/lugbz-list