Sicurezza di o = rwx con permessi Unix classici

7

È comunque insicuro andare a o=rw o o=rwx su file e directory limitato alle directory contrassegnate come o= ?

In altre parole, data la home directory privata ( g=,o= ), è perfettamente sicuro scrivere tutto con o=rw o o=rwx finché tutti i file sono affidabili all'interno della mia casa?

(Non sto cercando di impostare umask 0000 - Mi rendo conto che questo aprirà i miei file /tmp ecc., ma sto scrivendo un programma che vuole farlo, quindi mi piacerebbe sapere se sto facendo qualcosa di stupido.)

    
posta PSkocik 19.06.2016 - 16:07
fonte

2 risposte

5

Questo non è direttamente insicuro, purché questi file e directory abbiano lo stesso proprietario della directory padre, che non ci sia un hard-link che permetta di bypassare le autorizzazioni della directory padre e che non ci siano eccezioni sulla directory principale permessi (come alcuni ACL per esempio).

Tuttavia, lo classificherei comunque come non prudente e non pulito, dato che sta giocando con il fuoco. Ad un certo punto nel futuro, molto probabilmente a causa di una modifica non correlata legata a un software o progetto non correlato, le condizioni di cui sopra non saranno più soddisfatte aprendo la vulnerabilità della sicurezza (e grazie alla legge di Murphy si può presumere che ciò accada nel peggiore momento).

Quando scrivi software, non devi mai scrivere codice non sicuro in base al presupposto che rimarrà protetto da livelli di protezione esterni e quindi non sarà mai sfruttabile perché è "fuori portata". La sicurezza deve essere concepita come un insieme in cui ogni componente deve svolgere il suo ruolo per garantire un buon atteggiamento di sicurezza generale.

Quindi la mia risposta è:

  • Per alcuni test occasionali, molte possibilità sono buone e non ci saranno problemi con questo,
  • Per alcuni sviluppi reali, ti preghiamo di non farlo e di usare i diritti appropriati!
risposta data 19.06.2016 - 16:52
fonte
3

Linux onora i permessi sui file sui socket di dominio, ma ci sono implementazioni Unix che ignora le autorizzazioni sul file socket (es. BSD, HP-UX). Un programma portatile che dipende dal permesso del file system per la sicurezza dovrebbe creare il socket in una directory con l'autorizzazione desiderata piuttosto che impostare l'autorizzazione sul file socket.

Ci sono anche una serie di situazioni in cui le persone possono accedere a un file (e quindi a un socket di dominio) senza poter accedere alla cartella principale. Questi in genere richiedono il privilegio per l'impostazione iniziale, ma possono successivamente accedervi senza privilegi. Ad esempio, se qualcuno ha accesso a un bind mount in una cartella all'interno della tua home directory, allora sarebbe in grado di ignorare il permesso della tua directory home in quanto accederà alla tua cartella attraverso il loro percorso di mount bind. Un altro esempio è se il sistema è configurato con un meccanismo di autorizzazione alternativo (ad esempio ACL), quindi altri utenti potrebbero avere il permesso di accedere a quel file attraverso quei meccanismi di autorizzazione alternativi, nonostante un'autorizzazione restrittiva di Unix.

    
risposta data 19.06.2016 - 17:01
fonte

Leggi altre domande sui tag