Alcune cartelle nella variabile PATH sono scrivibili da chiunque. Pericoloso o no?

20

Ho notato che alcune cartelle nella variabile d'ambiente PATH (ad es. C: \ Python ) danno i privilegi di scrittura a chiunque sul computer, inclusi gli utenti senza diritti di amministratore. Capisco che le persone possano probabilmente modificare gli eseguibili e le cose Python in quella cartella. Tuttavia, quanto è pericoloso se non utilizzo Python? Inoltre, dal momento che la maggior parte dei programmi su Windows viene chiamata tramite GUI o con percorsi assoluti, questo problema potrebbe comunque interessare altre cartelle più sensibili in PATH come System32 ?

    
posta Shao Kun Deng 22.11.2016 - 16:11
fonte

3 risposte

27

How dangerous is it if I don't use Python?

Il tuo uso di Python è irrilevante per il rischio.

La variabile PATH fornisce un mezzo per richiamare i programmi senza dover digitare il loro percorso completo. Mentre le persone di Unix prenderebbero in considerazione l'ipotesi di porre una directory pubblicamente scrivibile (o.) Nella variabile PATH, un peccato capitale. Il rischio è che un utente malintenzionato possa sostituire il programma che un utente intende eseguire con il proprio codice malvagio e quindi indurre la vittima a eseguirlo.

In MS Windows il rischio è più basso ma è più difficile da mitigare:

  • la maggior parte delle persone non usa le righe di comando in MS Windows
  • solitamente i programmi vengono avviati dall'esploratore che utilizza un percorso completo dell'eseguibile
  • MS Windows cerca sempre la directory corrente prima di effettuare il check-in% PATH% per un file eseguibile (ovvero il rischio viene generato in MS Windows in base alla progettazione)
risposta data 22.11.2016 - 16:42
fonte
7

Dichiarazione di non responsabilità: la domanda dell'OP è esplicitamente per Windows, quindi questa risposta si concentra solo su questo sistema. Per un sistema Unix o Unix la risposta sarebbe diversa.

Il problema non è proprio il fatto che alcune cartelle in PATH siano scrivibili da chiunque. PATH è solo un elenco di cartelle da cui è possibile avviare un comando con un nome semplice e non un percorso completo.

Ma il fatto che le cartelle contenenti comandi, siano esse in PATH o no, sono scrivibili da chiunque è un rischio per la sicurezza.

Se la macchina non ha un servizio server attivo e se è fisicamente protetta con un solo utente, il rischio potrebbe essere accettabile: se cancelli / riscrivi un file di sistema o qualsiasi altro eseguibile, dovresti sapere perché e nessun altro di quanto tu possa essere la colpa. Tuttavia, le best practice (come dettate da Windows) consigliano di essere avvisati prima di eseguire un'attività potenzialmente pericolosa, quindi le cartelle di sistema dovrebbero richiedere la possibilità di scrivere i privilegi di amministratore.

Ma se più di una persona (gli amministratori non sono inclusi qui) possono accedere alla macchina, quindi diventa un serio problema di sicurezza. Uno potrebbe volontariamente o non sostituire un eseguibile o una DLL, e un altro potrebbe lanciare un programma indesiderato quando si esegue uno script Python. Non si parla se System32 è pubblicamente scrivibile perché qualsiasi azione potrebbe portare a risultati imprevisti.

TL / DR: a meno che tu non sia l'unico utente della macchina, la cartella Python non dovrebbe essere scrivibile da tutti, ma dovrebbe richiedere un privilegio di amministrazione.

Su un sistema Unix o Unix, il problema sarà diverso. Le prime installazioni di default normalmente non rendono mai le cartelle contenenti eseguibili pubblicamente scrivibili e il PERCORSO è pesantemente utilizzato. Quindi ovviamente avere una cartella in PATH pubblicamente scrivibile sarebbe per sé un serio problema di sicurezza. Ma Windows ha diversi usi ...

    
risposta data 22.11.2016 - 17:30
fonte
0

Sì, può essere un rischio per la sicurezza se le protezioni GPO corrette contro l'esecuzione di eseguibili esterni non sono attive (il che è di per sé un grave rischio per la sicurezza).

Sostituendo una cartella PATH con un'altra, puoi indurre un utente a eseguire un eseguibile diverso da quello che sta tentando di eseguire. Tuttavia, se le politiche di GPO sono sensate, ciò che farebbe di più è far sì che l'utente infastidisca il supporto tecnico per alcuni minuti perché il "loro" programma non verrà eseguito. E questo è SE stanno usando script batch o riga di comando. La maggior parte degli utenti non lo fa.

    
risposta data 22.11.2016 - 18:00
fonte

Leggi altre domande sui tag