Perché è una pessima idea implementare misure restrittive in .bashrc?

3

Chiedere questo perché apparentemente ci sono più persone che sinceramente non si rendono conto solo quanto sia pessima questa idea, e voglio che ci sia un posto unico, facile da trovare, da inviare / inviare.

    
posta Parthian Shot 18.07.2015 - 05:41
fonte

1 risposta

2

Esistono diversi motivi per cui questa è una cattiva idea.

Prima di tutto, bash, fondamentalmente, è scritto per facilitare agli utenti quello che vogliono fare. È stato scritto per rendere facile fare qualsiasi cosa tu voglia fare un gran numero di modi diversi, e di conseguenza è possibile fare la maggior parte delle cose in un gran numero di modi diversi. Non è stato scritto con i controlli di accesso in mente e, di conseguenza, manca di controlli di accesso. Di conseguenza, l'aggiunta di controlli di accesso su di esso e l'impossibilità di svolgere determinati compiti al suo interno, è un po 'come provare a utilizzare un bulldozer per ricamo; forse non impossibile, ma molto, molto difficile.

Quindi, ad esempio, qualsiasi comando eseguito da .bashrc può essere interrotto, in background o ucciso se l'utente (o più probabilmente uno script che l'utente ha scritto) è abbastanza veloce (inviando ^C o ^Z ). Sulla riga di comando, gli utenti possono annullare le variabili, aprire le subshell, possono specificare percorsi diretti per i file eseguibili (molti dei quali sono in posizioni prevedibili) e possono persino inviare cose attraverso la rete anche se non si dispone di alcuna rete -accessibilità delle applicazioni a loro accessibili, perché possono aprire flussi tcp direttamente da bash .

Ora, questo è un problema noto, ed è il motivo per cui rbash è stato sviluppato. Ma anche rbash non è una soluzione chiavi in mano , e alla fine della giornata è anche abbastanza lassista:

These restrictions are enforced after any startup files are read.

When a command that is found to be a shell script is executed (see Shell Scripts), rbash >turns off any restrictions in the shell spawned to execute the script.

E poi, naturalmente, c'è il fatto che devi assicurarti costantemente che la tua versione di bash sia aggiornata , e che il tuo kernel è aggiornato e che stai utilizzando un approccio di whitelisting esplicito e esaminando attentamente ciascuna applicazione permettere. È un compito piuttosto erculeo e la maggior parte delle volte c'è un modo migliore / più semplice per realizzare ciò che si vuole ottenere.

Se hai in mente una particolare impostazione di sicurezza e stavi considerando l'utilizzo di .bashrc , allora:

  1. Fai qualche ricerca in più su Internet (Google e DuckDuckGo sono entrambi abbastanza utili per questo, anche se il sito che stai leggendo è una delle migliori risorse che troverai) e una volta che hai in mente alcune alternative e alcune ricerche a sostegno di ciascuna,
  2. Chiedi informazioni sulla configurazione qui! Leggi le Domande frequenti sul sito e cerca di assicurarti che la tua domanda non sia un duplicato, per prima cosa. Ma a parte questo, è qui che vorresti porre le domande che stai facendo.
risposta data 18.07.2015 - 05:59
fonte

Leggi altre domande sui tag