Domanda:
La richiesta di sistema di Ubuntu per la mia password non è falsificabile?
Arseni Mourzenko
2017-08-13 18:10:06 UTC
view on stackexchange narkive permalink

A volte, Ubuntu mostra la seguente finestra:

Screen shot of "Authenticate" dialog box asking for password

Questa finestra può essere causata da alcuni processi in background in esecuzione, come un update, o un processo che segnala bug a Canonical che si manifesta in questo modo:

Screen shot of "System program problem detected" query box

Poiché si tratta di processi in background, la prima finestra è non mostrato in risposta ad un'azione che ho eseguito io stesso, in una situazione in cui mi aspettavo che il sistema mi chiedesse la password. Ciò significa che:

  • Dal punto di vista dell'utente, non vi è alcuna garanzia che il prompt provenga dal sistema operativo; potrebbe essere un qualsiasi programma dannoso che aveva solo un permesso limitato per mostrare una finestra e che, richiedendo la mia password, otterrà accesso illimitato all'intera macchina.

  • Da richiedendo all'utente una password regolarmente, il sistema insegna all'utente che fornire la password di sistema ogni volta che un'applicazione lo richiede è una cosa perfettamente naturale da fare.

Le mie domande sono :

  • Esiste un meccanismo di sicurezza in Linux in generale o in Ubuntu in particolare che impedisce a qualsiasi applicazione di visualizzare una finestra di dialogo che sembra identica a quella di sistema, chiedendomi la password?

  • Come dovrebbero essere progettate tali finestre per aumentare la sicurezza dell'utente? Perché non implementare un sistema simile a Ctrl + Alt + Canc di Windows all'accesso?

I commenti non sono per discussioni estese;questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/64019/discussion-on-question-by-arseni-mourzenko-isnt-ubuntus-system-prompt-for-my-p).
Sei risposte:
Mike Ounsworth
2017-08-13 20:55:53 UTC
view on stackexchange narkive permalink

I tuoi punti sono tutti positivi e hai ragione, ma prima di indignarci al riguardo dobbiamo ricordarci come funziona il modello di sicurezza di Linux e cosa è progettato per proteggere.

Ricorda che Linux Il modello di sicurezza è progettato pensando a un server SSH o solo terminale multiutente. Windows è progettato pensando alla workstation dell'utente finale (ma ho sentito dire che la recente generazione di Windows è più adatta ai terminali). In particolare, la convenzione Linux fa un lavoro migliore di sandboxing delle app negli utenti, mentre in Windows tutto ciò che è importante viene eseguito come Sistema, mentre la GUI di Linux (X Server) fa schifo in termini di sicurezza e la GUI di Windows ha cose fantasiose come l'UAC integrato. Fondamentalmente, Linux è (ed è sempre stato) prima un server e poi una workstation, mentre Windows è il contrario.


Modelli di sicurezza

Per quanto riguarda "il Il sistema operativo "(cioè il kernel) è interessato, hai 7 console tty e un numero qualsiasi di connessioni SSH (note anche come" sessioni di accesso ") - succede solo che Ubuntu viene fornito con script per avviare automaticamente la GUI su tty7 , ma per il kernel è solo un'altra applicazione.

Le sessioni di accesso e gli account utente sono separati in modalità sandbox l'uno dall'altro, ma Linux prende una mentalità di sicurezza che non serve per proteggere un utente da se stessi. In questo modello di sicurezza, se il tuo account viene compromesso da malware è una causa persa, ma vogliamo comunque isolarlo dagli altri account per proteggere il sistema nel suo insieme.

Ad esempio, le app Linux tendono a creare un utente con privilegi limitati come apache o ftp che viene eseguito come quando non è necessario eseguire operazioni di root. Se un utente malintenzionato riesce a prendere il controllo di un processo apache in esecuzione, può rovinare altri processi apache , ma avrà problemi a passare ai processi ftp .

Nota che Windows adotta un approccio fondamentalmente diverso qui, in gran parte attraverso la convenzione che tutte le cose importanti vengono eseguite sempre come Sistema. Un servizio dannoso in Linux ha meno possibilità di fare cose cattive rispetto a un processo dannoso eseguito come Sistema, quindi ha bisogno di compiere ulteriori sforzi per proteggere qualcuno con diritti di amministratore da "se stesso".

Gli ambienti GUI e un server X che non è stato progettato per la sicurezza gettano una chiave inglese in questo modello di sicurezza.


Gnome gksudo vs Windows UAC e keylogger

In Windows, quando un processo utente richiede l'escalation dei privilegi, il kernel lancia uno speciale prompt protetto la cui memoria e il bus tastiera / mouse sono isolati dal resto dell'ambiente desktop. Può farlo perché la GUI è integrata nel sistema operativo. In Linux, la GUI (X server) è solo un'altra applicazione, e quindi le richieste di password appartengono al processo che le ha invocate, in esecuzione come te, condividendo i permessi di memoria e un bus di input con ogni altra finestra e processo in esecuzione come te.

Il prompt di root non può fare le cose stravaganti UAC come bloccare la tastiera perché quelli devono essere già root o richiedono una riprogettazione totale del server X (vedi Wayland sotto). Un problema che in questo caso è uno svantaggio di separare la GUI dal kernel. Ma almeno è in linea con il modello di sicurezza di Linux.

Se dovessimo rivedere il modello di sicurezza per reprimere questo problema aggiungendo sandbox tra le richieste di password e altri processi in esecuzione come l'utente nella stessa sessione della GUI , potremmo dover riscrivere molte cose. Per lo meno, il kernel dovrebbe diventare consapevole della GUI in modo che sia in grado di creare prompt (non vero oggi). L'altro esempio è che tutti i processi in una sessione della GUI condividono un bus della tastiera.

Guardami mentre scrivo un keylogger e poi premo alcuni tasti in una finestra diversa :

  ➜ ~ xinput list
⎡ ID puntatore core virtuale = 2 [puntatore master (3)] ⎜ ↳ ID puntatore XTEST nucleo virtuale = 4 [puntatore slave (2)] ⎜ ↳ ID Logitech K400 Plus = 9 [puntatore slave (2)] ⎜ ↳ ETPS / 2 Elantech Touchpad id = 13 [puntatore slave (2)] ➜ ~ test xinput 9 rilascio tasti 36 pressione tasti 44 h rilascio tasti 44 pressione tasti 40 rilascio tasti 40 pressione tasti 33 rilascio tasti 33 pressione tasti 33 pressione tasti 39 rilascio tasti 33 rilascio tasti 39 tasti premi il tasto 66 premi 31  

Qualsiasi processo in esecuzione poiché puoi annusare la password nel prompt o terminale di un altro processo e quindi chiamare sudo su se stesso (questo segue direttamente dal "non c'è bisogno di proteggerti da te "mentalità), quindi aumentare la sicurezza delle richieste di password è inutile a meno che non cambiamo radicalmente il modello di sicurezza e non facciamo una riscrittura massiccia di tutti i tipi di cose.

(vale la pena notare che Gnome sembra almeno sandbox il bus della tastiera nella schermata di blocco e nella nuova sessione attraverso "Cambia utente" poiché le cose digitate lì non vengono visualizzate nel bus della tastiera della mia sessione)


Wayland

Wayland è un nuovo protocollo che mira sostituire X11. Blocca le applicazioni client in modo che non possano rubare informazioni o influenzare qualcosa al di fuori della loro finestra. L'unico modo in cui i clienti possono comunicare tra loro al di fuori dell'IPC esterno è passare attraverso il compositore che li controlla tutti. Tuttavia, questo non risolve il problema sottostante e sposta semplicemente la necessità di fiducia sul compositore.


Virtualizzazione e contenitori

Se lavori con le tecnologie cloud, " probabilmente stai saltando su e giù dicendo "Docker è la risposta !!". In effetti, punti brownie per te. Sebbene Docker stesso non sia realmente inteso a migliorare la sicurezza (grazie @SvenSlootweg), punta a utilizzare la containerizzazione e / o la virtualizzazione come un forward compatibile con l'attuale architettura Linux.

Due importanti distribuzioni Linux create pensando all'isolamento tra processi:

Sistema operativo Qubes che esegue app a livello utente all'interno di più VM separate in "domini di sicurezza" come come lavoro, operazioni bancarie, navigazione web.

Android che installa ed esegue ogni app come un utente separato con privilegi ridotti, ottenendo così l'isolamento a livello di processo e l'isolamento del file system (ogni app è limitata alla propria directory home) tra le app.


Conclusione: dal punto di vista di un utente finale, non è irragionevole aspettarsi che Linux si comporti allo stesso modo di Windows, ma questo è uno di quei casi in cui è necessario capire un po 'come funziona il sistema sottostante e perché è stato progettato in questo modo. La semplice modifica dell'implementazione delle richieste di password non comporterà nulla fintanto che è di proprietà di un processo di tua proprietà. Affinché Linux ottenga gli stessi comportamenti di sicurezza di Windows nel contesto di una workstation GUI per utente singolo richiederebbe una significativa riprogettazione del sistema operativo, quindi è improbabile che accada, ma cose come Docker potrebbero fornire una via da seguire in un ambiente più Linux- nativo.

In questo caso, la differenza importante è che Linux è progettato a basso livello per essere un server multiutente e prendono la decisione di non proteggere un utente da se stessi, mentre Windows è progettato per essere una workstation per utente singolo, quindi è necessario disporre di protezioni tra processi all'interno di una sessione di accesso. È anche importante che in Windows la GUI faccia parte del sistema operativo, mentre in Linux la GUI sia solo un'altra applicazione a livello di utente.

Non sono riuscito a capire come inserirlo nel corpo, ma [xkcd obbligatorio] (https://xkcd.com/1200/)
Penso che "a basso livello" entrambi i sistemi operativi siano server multiutente a tutti gli effetti, totalmente comparabili.È la parte "GUI fa parte di Windows (!)" E "la sessione X è solo un altro programma utente" che è importante.
Sebbene tutto ciò sia effettivamente corretto, vedo poca relazione con la domanda ...
I commenti non sono per discussioni estese;questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/63876/discussion-on-answer-by-mike-ounsworth-isnt-ubuntus-system-prompt-for-my-passw).
_Ricorda che il modello di sicurezza di Linux è progettato pensando a un server headless o SSH multiutente, e in questo contesto Linux ha più protezioni.Windows è progettato pensando a una workstation dell'utente finale e in questo contesto Windows ha più protezioni._ Da dove l'hai concluso?
@JopV.Principalmente dalle mie esperienze;il server X fa schifo in termini di sicurezza, e anche se non sono un esperto di Windows, sembra che faccia schifo avere più utenti connessi simultaneamente alla GUI e la convenzione che qualsiasi cosa importante venga eseguita come Sistema piuttosto che applicare il principio del minimo privilegio.Sono felice che la mia opinione sia cambiata però.
"* Non sarei scioccato se nei prossimi anni iniziassimo a vedere le distribuzioni Linux containerizzare i browser web e altre applicazioni ad alto rischio *" [Qubes] (https://www.qubes-os.org/) lo fa.
Questa risposta dovrebbe probabilmente affrontare il punto di vista di Wayland sulla sicurezza e su come migliora le cose (ma alla fine aggiunge semplicemente il compositore come un'altra cosa di cui dovresti fidarti)
@Timidger In realtà non so abbastanza di Wayland per parlarne.Sentiti libero di suggerire una modifica però.
@Will che renderebbe il codice che viene eseguito direttamente nel compositore di cui non ti fidi (o codice che potrebbe contenere bug) più sicuro.Tuttavia, devi ancora fidarti dell'implementazione del compositore, perché è la cosa principale con cui i clienti stanno parlando.In altre parole, se immagini un compositore come server e le finestre / applicazioni come client non importa se il server non può scrivere a casa tua ma espone qualunque cosa digiti a qualsiasi client, o lascia che un client disegniqualsiasi cosa ovunque e raschia i pixel dalle applicazioni "affidabili".Tutti gli input passano attraverso il compositore.
@Timidger Come al solito, ciò che conta come "sicuro" è negli occhi di chi guarda e relativo a ciò che stai cercando di proteggere;)
È un peccato che questa risposta parli di Docker come misura di isolamento.__Docker non fornisce un isolamento sicuro da applicazioni dannose__, poiché questo non rientra nell'ambito di ciò per cui è progettato Docker (isolamento dalla contaminazione accidentale di dipendenze e simili).Alcune tecnologie di containerizzazione (OpenVZ, LXC senza privilegi) * possono * fornire un isolamento sicuro, ma Docker non è certamente una di queste.Inoltre, "contenitori" e "VM" non sono lo stesso tipo di cose.
@SvenSlootweg Sto usando un container (piccolo c) nel senso che tutte le VM sono container, ma non tutti i container sono VM.L'articolo di wikipedia linkato dice: "Oltre ai meccanismi di isolamento, il kernel spesso fornisce funzionalità di gestione delle risorse per limitare l'impatto delle attività di un container su altri container." _ A me sembra un certo livello di isolamento sicuro.
@MikeOunsworth "Un certo livello" non è sufficiente, tuttavia, e "isolamento contro comportamenti dannosi" vs. "isolamento contro contaminazione accidentale / uso eccessivo di risorse" sono due cose molto diverse.Docker si occupa solo di quest'ultimo, non del primo, ed è quindi * completamente * insufficiente quando si parla di malware.Vedi anche https://gist.github.com/joepie91/1427c8fb172e07251a4bbc1974cdb9cd#secure-isolation
@SvenSlootweg Questa modifica concorda con i tuoi pensieri?
deviantfan
2017-08-13 20:12:22 UTC
view on stackexchange narkive permalink

Esiste un meccanismo di sicurezza in Linux in generale o in Ubuntu in particolare che impedisce a qualsiasi applicazione di visualizzare una finestra di dialogo che sembra identica a quella del sistema, chiedendomi la password?

Risposta rapida: No.

Dal punto di vista dell'utente, non vi è alcuna garanzia che il prompt provenga dal sistema operativo; potrebbe essere qualsiasi programma dannoso che aveva solo un'autorizzazione limitata a mostrare una finestra e, richiedendo la mia password, otterrà accesso illimitato all'intera macchina.

Se un programma dannoso è attivo il computer, non importa nemmeno quale programma sta mostrando la finestra di dialogo.
Se è il programma dannoso, beh, come descritto nella frase successiva, non ha nemmeno bisogno di mostrarti una finestra di dialogo. Se è un programma legittimo, il programma dannoso può "guardare" la finestra e quello che stai digitando lì, in ambienti server X (il terminale è migliore).

Soluzione?

Se hai motivo di credere che qualche programma non sia affidabile, sandboxing (VM o cose minori).

Altrimenti, non chiedere password . Quella finestra di dialogo è comoda per gli utenti non tecnici. Se sei preoccupato per la sicurezza, o per un amministratore di organizzazioni o simili, non è assolutamente necessario visualizzare una query della password della GUI. Configurare correttamente i permessi degli account utente non root (sì o no, ma senza chiedere) e non utilizzare un desktop come root (per questo motivo e perché si è tentati di utilizzare root più spesso del necessario).

Chiedendo all'utente la password regolarmente, il sistema insegna all'utente che fornire la sua password di sistema ogni volta che un'applicazione lo richiede è una cosa perfettamente naturale da fare.

Come descritto, non chiedere loro. In qualità di amministratore, si suppone che i "tuoi" utenti abbiano autorizzazioni chiaramente definite.

E, riguardo agli aggiornamenti automatici come amministratore dell'organizzazione: Sei pazzo :) Seriamente, non lasciare che molti client Ubuntu aggiornino le cose in momenti casuali. Che ne dici di immagini centrali che vengono mantenute e testate da te e poi implementate; o nell'altra direzione cose come Ansible?
Completamente indipendenti dalla sicurezza, gli aggiornamenti possono rompere le cose. Ecco perché.

Sebbene l'anarchia degli aggiornamenti incontrollati sia davvero pericolosa, il modo più semplice (e probabilmente più comune) per controllare gli aggiornamenti è non eseguirli, il che è anche pericoloso.
Questo va bene per le aziende, ma per quanto riguarda gli utenti domestici e le piccole imprese?Probabilmente lo stanno usando così com'è.In effetti, questo è un punto di forza di Ubuntu (nessuna configurazione elaborata).Se è insicuro nella sua configurazione predefinita, dovrebbero pubblicizzarlo a singoli utenti?
@Kevin Bene, "dovrebbe" ... spesso, la comodità è l'opposto della sicurezza.E purtroppo, questo è un motivo sufficiente per cui la sicurezza è un problema per molti manager e altri dipendenti.Se Ubuntu dice "non ti permetteremo mai di inserire una password in una GUI, nemmeno in XTerm, devi sempre aprire un terminale di root per fare queste cose", non è qualcosa che li aiuterà con la loro quota di mercato.
E comunque, un sistema operativo "sicuro" non sarà possibile finché non sappiamo da cosa proteggerci e quanto sono alti i rischi.Ubuntu non può fare questa scelta per "tutti" gli utenti, solo per una parte di dimensioni ragionevoli.(E quella parte non ha idea di cosa sia un terminale).
@deviantfan E quella parte è anche la più suscettibile agli spoof sudo.Windows ha solo il numero attuale di malware a causa della sua quota di mercato.Man mano che Ubuntu cresce, diventa un bersaglio più interessante per il malware e l'attuale incarnazione del sistema operativo non può difendere gli utenti finali dagli attacchi intelligenti.Questo è un grave errore di progettazione.
@T.Sar Beh, sì, ma qual è la soluzione allora, adatta a tutti i gruppi target?La richiesta di terminali non va bene per gli utenti non tecnici senza un amministratore esperto (= la maggior parte degli utenti).Garantire quel dialogo non è davvero possibile finché esiste X (e Wayland non è ancora finito)
@deviantfan Non sto dicendo che dovresti adattarsi a tutti i gruppi target, solo che per la più grande base di utenti di Ubuntu (utenti finali che non hanno idea di come usare il Terminale), l'attuale implementazione è terribile.Questo, unito al falso senso di sicurezza generato da anni di propaganda "i sistemi basati su Linux non possono essere infettati dai virus" sta creando un ambiente molto pericoloso per l'utente medio.Ubuntu, così com'è, è _dangerous_.Fino a quando Ubuntu non troverà un modo per proteggere l'utente laico da questo tipo di attacco stupido, non lo consiglierei a nessuno.
@deviantfan Non è necessario sostituire X completamente - potresti fare la stessa cosa dell'UAC - quando hai bisogno di mostrare il prompt, passa a un'applicazione privilegiata completamente separata in una sessione di terminale separata che sembra mostrare solo la vecchia GUI.Questo è molto più semplice della sostituzione di X. Non abbastanza forte come l'UAC, ma molto più forte di quello che hanno ora, e puoi evitare di dover inserire la password (quindi niente finte finestre di dialogo).Se ti stai interrogando sulle sessioni remote, quelle sono vulnerabili (ai key-logger sul lato client) anche su Windows, proprio come eseguire il sistema in una VM.
@Luaan Bella idea, solo che non sono sicuro che mixare le sessioni sia davvero più facile che sostituire X ...
Stig Hemmer
2017-08-14 12:41:16 UTC
view on stackexchange narkive permalink

Sì. Questo non è sicuro!

Io personalmente annullo sempre quella finestra di dialogo. Non perché potrebbe essere falso, ma perché potrebbe essere reale.

Dovrei dare privilegi intensificati a "un'applicazione" solo perché chiede? No, non credo.

Gli aggiornamenti di sistema vanno bene, li eseguo manualmente, ma mi dà fastidio che il sistema di segnalazione degli errori lo richieda. Cattivo design.

Ebbene, il * dialogo * non è particolarmente insicuro.Che i programmi possano da soli * chiedere di essere elevati * è un rischio (sarebbe lo stesso rischio sulla riga di comando).Come spesso accade, è una questione di comodità.Se non vuoi eseguire programmi che richiedono i privilegi di root come root automaticamente subito (connettiti alla tua WLAN, aggiorna la tua installazione ecc.) Dovresti aprire una shell di root o eseguire sudo per quello (cosa che apparentemente fai con il tuoaggiornamento).Non è una cattiva idea, ma considerata troppo ingombrante per un sistema operativo orientato alla GUI.
Il problema è che i programmi che richiedono i privilegi di root non sono già suid.Questo è il motivo per cui esiste suid.(Nota: ** NON ** suid l'intero grande programma grafico. Crea un piccolo programma suid che esegua le operazioni necessarie e nient'altro)
Chiaramente non sei un fan di Ubuntu o delle GUI, vero?
In generale sono un fan di Ubuntu, ma penso che abbiano lasciato cadere la palla su questo.
@oldmud0 Non ti ricordi quando è uscito Vista e letteralmente decine di milioni di persone si sono lamentate di dover fare clic su "Ok" costantemente in una finestra di dialogo UAC?Il reclamo diventa ancora peggiore in Ubuntu quando è effettivamente necessario digitare la password ogni volta.Alcune cose mi sconcertano quando chiedono i permessi di escalation ..... come l'installazione di software dal Software Center che solo l'utente corrente utilizzerà (forse questo è cambiato).Penso che Stig abbia ragione.Troppe cose richiedono un'escalation dei privilegi.
Peter - Reinstate Monica
2017-08-14 09:41:05 UTC
view on stackexchange narkive permalink

Contrariamente a quanto si sente, i modi (moderni) di Windows e Ubuntu di gestire i livelli di privilegio e l'elevazione dei privilegi sono abbastanza simili. La ragione è sicuramente che i sistemi operativi sono entrambi sistemi multiutente con casi d'uso simili che affrontano problemi simili.

Entrambi i sistemi operativi limitano ciò che un utente ordinario può fare (eseguendo programmi, ovviamente). Un utente può distruggere i propri dati ma idealmente non gli altri (a meno che non li condividano) e idealmente non può compromettere o danneggiare il sistema. Per poter leggere e scrivere i dati di sistema, un programma necessita dei privilegi di amministratore (root) su entrambi i sistemi operativi, che normalmente solo i programmi avviati da admin / root hanno.

Per renderlo semplice, entrambi i sistemi operativi forniscono all'utente predefinito la possibilità di eseguire singoli programmi con "privilegi elevati" tramite sudo rispettivamente UAC. Entrambe le GUI del sistema operativo attivano una finestra di dialogo per dare all'utente la possibilità di impedire l'esecuzione dei programmi come amministratore / root. Entrambi i sistemi hanno anche la nozione di utenti che non sono autorizzati a eseguire programmi privilegiati.

La finestra di dialogo di Ubuntu richiede una password; la finestra di dialogo Controllo dell'account utente di Windows no. (Sembra che tu pensi che un programma abbia bisogno di permessi speciali per mostrare quella finestra di dialogo; non è così. Il programma sta chiedendo per loro con la finestra di dialogo. Se qualcuno falsifica la finestra di dialogo, ottiene il tuo (utente) password che non è un vantaggio per un programma in esecuzione già come tale utente.)

La conclusione di tutto questo è che un programma dannoso può fingere di aver bisogno di privilegi elevati per qualcosa di utile e attivare la finestra di dialogo, ma una volta ottenuti, formatta il disco rigido. 1 Questo vale per entrambi i sistemi operativi. Poiché in Windows in genere viene installato più software di terze parti, la possibilità di utilizzare un programma del genere è probabilmente maggiore rispetto a Ubuntu.

Dici che in Windows la finestra di dialogo UAC di solito è il risultato di un'azione dell'utente, ad esempio l'installazione di un programma, mentre Ubuntu attiva la finestra di dialogo senza motivo apparente. Un motivo a cui riesco a pensare è che gli aggiornamenti del software Windows vengono avviati dal sistema operativo in modo che abbiano già privilegi elevati. Forse Ubuntu chiede prima di installare.

Sarebbe davvero bello avere più informazioni oltre a "Ho bisogno del tuo passaporto, dei tuoi stivali e della tua giacca". Non ho un sistema Ubuntu a portata di mano qui, ma vedo una didascalia "Dettagli" sul lato sinistro della finestra di dialogo. Hai guardato cosa dice? (Ovviamente un programma dannoso potrebbe falsificare qualsiasi testo presente, ma potresti essere in grado di verificare se il presunto programma è effettivamente in esecuzione.)


1 Che non sarebbe questo terribile, rispetto alla sovrascrittura dei dati.
Bene, la roba UAC di Windows ha una protezione extra che rende più difficile lo spoofing, vedere https://blogs.msdn.microsoft.com/uac/2006/05/03/user-account-control-prompts-on-the-secure-desktop / così su Ubuntu è molto più facile per un programma canaglia falsificare la finestra di dialogo.
@schlenk Hai ragione;l'integrazione della GUI nel sistema operativo fornisce a MS Windows l'autorità di richiedere una finestra di dialogo UAC obbligatoria prima di elevare i privilegi.Mi chiedo come lo gestiscano i server Windows la cui console potrebbe non essere occupata.Probabilmente tutti i programmi che avrebbero bisogno di elevazione a un certo punto vengono eseguiti immediatamente come amministratori.Ma il problema di base sembra essere che Linux richiede "di punto in bianco" mentre il prompt UAC di Windows è (quasi?) Sempre il risultato di un'interazione dell'utente (avvio di un programma ecc.).Il principale vantaggio per la sicurezza del prompt UAC è che non può visualizzare informazioni errate.
@PeterA.Schneider Viene visualizzato il prompt UAC di Windows quando ci si connette tramite RDP, proprio come se fossi alla console.Non so se sia significativamente diverso sotto il cofano, ma sospetto che non sia così tanto.
È necessario fornire una password per l'UAC se non si è connessi come amministratore o se si imposta UAC in modo che la richieda sempre
L'unica volta in cui sono a conoscenza di dove appare di punto in bianco il prompt UAC di Windows è quando un programma che si avvia all'avvio richiede privilegi di amministratore.Di solito compaiono solo entro i primi 10 minuti (su un HDD) o 2-5 minuti (su un SSD) dall'avvio.
@T.Sar Sì, ma c'è una buona ragione per cui non è l'impostazione predefinita: in realtà è meno sicuro.Ti rende vulnerabile a falsi prompt UAC che richiedono la tua password di amministratore (che non può essere impedita dal sistema).Anche solo conoscere la password non ti consente di elevarti senza il prompt UAC, ma può causare alcuni problemi.Se sei un amministratore, non ha senso chiedere la password;in caso contrario, si presume che l'effettivo amministratore sarà abbastanza attento da impedirlo (e circa il 99% delle volte l'amministratore annullerà comunque - pensa all'azienda).
Su Windows, le applicazioni privilegiate possono avviare altre applicazioni privilegiate senza chiedere conferma, quindi i servizi di aggiornamento vengono solitamente installati come privilegiati e non è richiesta alcuna elevazione.Se si comportano bene, gestiscono * solo * l'installazione e autorizzano i binari correttamente, quindi è un netto guadagno in termini di sicurezza.Molti programmi non si comportano bene, ma sta migliorando: sta iniziando a essere che solo le installazioni e le funzioni effettivamente pericolose richiedono l'elevazione.Per quanto riguarda la GUI, * puoi * aggiungere un sottosistema personalizzato, ma hai ragione che non è un'applicazione in modalità utente al 100%, a differenza di X.
o11c
2017-08-14 10:05:04 UTC
view on stackexchange narkive permalink

Il modo più sicuro per assicurarti che la tua password non sia stata snoopata è usare la sequenza SAK: alt-sysrq-k . Questo ucciderà tutti i programmi sull'attuale VT (incluso X11) e init ti darà un nuovo prompt di login. Gli unici attacchi di cui sono a conoscenza riguardano la modifica della keymap del kernel o la compromissione di init stesso, entrambi richiedono già un accesso root o migliore.

Esistono vari modi leggermente meno completi (XTerm ha modo per accedere all'opzione "input esclusivo" di X11), a seconda di quanto del tuo sistema ti fidi, ma ... perché non dovresti essere in grado di fidarti del tuo sistema?

La principale differenza tra Linux e il modello di sicurezza di Windows è che sotto Linux non scarichi semplicemente eseguibili casuali da Internet e li esegui. (Ci sono alcuni tentativi per impacchettare applicazioni Linux non affidabili in una sandbox di pacchetti simile ad Android, ma nessuno le usa.)

Non lo chiamerei un "meccanismo di sicurezza" implementato "in Linux" ... È più una soluzione alternativa.
Non è garantito che il supporto Magic SysRq sia disponibile.Come molto altro nel kernel Linux, è un'opzione selezionabile.
@MichaelKjörling e molto simile al kernel Linux, probabilmente non lo hai disabilitato a meno che tu non sappia cosa stai facendo.
@o11c: molte distribuzioni disabilitano la maggior parte delle funzionalità SysRQ immediatamente.Ad esempio, `/ etc / sysctl.d / 10-magic-sysrq.conf` di Ubuntu imposta` kernel.sysrq = 176` = 128 + 32 + 16 = reBoot / powerOff, remount Ro e Sync sono gli unici comandi abilitati.Vedi anche https://askubuntu.com/questions/11002/alt-sysrq-reisub-doesnt-reboot-my-laptop.IDK perché disabilitano SAK oltre a scaricare il contenuto della memoria sulla console (che disabilitano per motivi di sicurezza).Ma a quanto pare anche OpenSUSE usa 176.vedi anche https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1025467: enable 176, era totalmente disabilitato prima.
Come è questa una risposta alla domanda?
Joshua
2017-08-15 08:16:04 UTC
view on stackexchange narkive permalink

Orribile, orribile mancanza di sicurezza. Quando ho visto il design di sudo grafico ho morso il proiettile e ho fatto sudo passwd root seguito da apt-get remove sudo , quindi ho davvero infastidito gli IRC di Ubuntu sostenendo la disinstallazione sudo.

Eppure la comprensione è ancora del tutto insicura. Era un po 'ok sul terminale (tanto più quando le shell erano più deboli era relativamente sconosciuto e gli attacchi contro di essa non si erano realmente sviluppati) ma ora è un evidente punto debole.

Avvio piuttosto una seconda istanza X come root ora per meno di una volta all'anno devo dare un programma grafico come root. (Lo faccio avviando X: 1 direttamente non eseguendo startx, quindi nient'altro che l'applicazione di destinazione è in esecuzione nell'istanza X di root). Se hai bisogno di root più spesso ti consiglio apt-get install ssh e ssh -X root @ localhost .

Se vuoi motivi per i voti negativi ... a) La disinstallazione di sudo non aiuta perché questa finestra di dialogo non è sudo.b) Questa domanda non riguarda il fatto che sudo sia insicuro, perché non lo è.c) Una seconda istanza di X non aiuterà molto.d) X come root?Non raccomandabile affatto.e) ssh'ing la propria macchina locale non è più sicuro di sudo, al contrario (più possibilità di errori di codice o configurazioni sbagliate)
@deviantfan: L'istantanea dello schermo è chiaramente di un prompt di sudo.X come root non è insicuro;sono i moderni ambienti X che non si preoccupano.
Quello che chiamate "prompt di sudo" non viene eseguito dal programma sudo e quindi non può essere rimosso disinstallando sudo.Provalo, ad es.visualizzando l'elenco dei processi mentre la finestra è aperta.... Non so cosa abbia a che fare la modernità degli ambienti X con qualcosa.X, vecchio e nuovo, si basa su principi che impediscono finestre di password sicure.Non è possibile cambiarlo senza rompere X.
Le sequenze Ctrl-Alt-Fx di @deviantfan: per cambiare ambienti e terminali X funzionano perfettamente.Il mito secondo cui "X come root è insicuro" deriva dalla miriade di moderni window manager, quasi nessuno dei quali è remotamente rafforzato e quindi non dovrebbe mai ottenere il root.C'erano alcuni sicuri ai vecchi tempi.Ho mantenuto il veleno per topi finché i miei problemi agli occhi non sono diventati troppo gravi per non avere il supporto per l'accessibilità.
a) Le combinazioni di chiavi Imho e il veleno per topi sono irrilevanti qui.b) Non ho detto che X come root è automaticamente insicuro.c) Grazie per avermi messo in guardia dal credere ai miti della sicurezza.Per fortuna, sono comunque uno scettico naturale e controllo molte cose da solo prima di crederci.d) Non ne discuto ulteriormente, non c'è motivo.
Il prompt in questione è di Polkit.Sistema completamente diverso.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...