L'autorizzazione di attraversamento in un filesystem Unix è sfruttabile da sola, in assenza di altre autorizzazioni / ACL?

1

Scenario / domanda:

Un albero di directory unix ha ACL NTFv4 configurati per consentire l'attraversamento di un account non privilegiato su tutte le directory (ma nessun altro ACL che concede ulteriori diritti su qualsiasi file / directory ovunque

In tal caso, è completamente sicuro concedere universalmente l'attraversamento di directory direttamente a tutti ( setfacl everyone@:x:d:allow /path_to_mountpoint o simili), oppure può essere sfruttato in qualche modo anche se non sono stati impostati altri ACL?

Immagino che in assenza di altre autorizzazioni / ACL che consentano altri diritti, questo dovrebbe comportare l'assenza di qualsiasi diritto di leggere, modificare o controllare qualsiasi oggetto attraversato. Quindi il diritto di attraversamento è valido, ma in pratica è del tutto inutile / sterile.

In questo contesto categorizzo rigorosamente "exploit", e persino la possibilità di elencare i file in una dir (che non aveva altri ACL aggiuntivi impostati su di essa) contava come "sfruttamento" poiché era più che solo trasversale.

In questo senso, è possibile sfruttare gli ACL trasversali, oppure è un diritto "sicuro" (incluso nel senso della privacy dei file) fornire account non protetti / non privilegiati / guest anche su percorsi che non si vuole che facciano uso di?

Spiegazione / caso d'uso:

Penso principalmente all'archivio dati di un file server su FreeBSD ZFS, ma suppongo che sia simile sulla maggior parte degli unix.

Il caso d'uso è: supponiamo che voglio che uno specifico utente non privilegiato acceda solo a una directory nidificata specifica all'interno della mia directory di dati. Anziché impostare l'attraversamento per quell'utente su tutte le directory padre per raggiungere quel percorso, sarebbe amministrativamente più semplice se è sicuro, a

  1. Concedi diritti incrociati universali a tutti sulla intera directory dei dati, ereditata da tutte le directory, ma poi
  2. Controlla l'uso / accesso / scansione effettivi impostando leggi / scrivi / modifica ACL sui file + dirs che possono utilizzare, senza impostare diritti o diritti di rifiuto espliciti, su ogni altro flag ACL su tutti gli altri dirs / file (diversi da "x" su dirs).

Se l'attraversamento non può essere sfruttato, allora il diritto di attraversamento è sterile e inutile a meno che non sia combinato con un percorso / file di destinazione per il quale l'utente abbia effettivamente qualche altro ACL. Ma è corretto, o è sottilmente lacuna-y?

    
posta Stilez 14.04.2018 - 16:49
fonte

1 risposta

2

La concessione del solo attraversamento (il permesso di x nelle directory e nient'altro) non consente a qualcuno di fare molto, ma crea alcuni rischi.

Con l'autorizzazione x sulle directory, un utente può verificare se esiste un file. Senza l'autorizzazione r sulla directory, l'utente non può elencare i file, ma se indovina un nome di file, può verificare se esiste un file con quel nome. Questo di solito non perde molti dati, ma può essere una violazione della privacy.

Oltre a questo, c'è il rischio che alcuni file o directory all'interno dell'albero non siano protetti. È piuttosto comune avere file leggibili in tutto il mondo. Questo è sicuro finché sono sotto una directory che gli utenti non autorizzati non possono attraversare. Se dai il permesso trasversale a tutti, allora tutti possono accedere a quei file leggibili a livello mondiale. Lo stesso rischio esiste con i file scrivibili in tutto il mondo o scrivibili in gruppo.

Invece di dare il permesso di attraversamento alla directory di livello superiore, è più sicuro esporre sottodirectory selezionate. Come al solito, è più sicuro inserire nella whitelist dati pubblici noti rispetto alla lista nera di dati riservati noti. Puoi esporre una sottodirectory di una directory privata attraverso una bind mount . Su FreeBSD, puoi creare un bind mount con nullfs (integrato) o bindfs (FUSE).

    
risposta data 14.04.2018 - 22:30
fonte

Leggi altre domande sui tag