Uneori, Ubuntu afișează următoarea fereastră:
Această fereastră pot fi cauzate de unele procese de fundal care rulează, cum ar fi o actualizare automată, sau un proces care rapoarte de bug-uri pentru a Canonice care se manifestă în acest fel:
Deoarece acestea sunt procese de fundal, prima fereastra nu este afișată ca răspuns la o acțiune am făcut eu, într-o situație în care mă așteptam la sistemul de a-mi cere parola. Acest lucru înseamnă că:
Din perspectiva utilizatorului, nu există nici o garanție că solicitarea vine de la sistemul de operare; ar putea fi orice program rău intenționat, care a avut doar o perioadă limitată de permisiunea de a afișa o fereastră, și care, de fapt care ia determinat pentru parola, va avea acces nelimitat la întreaga mașină.
De fapt care ia determinat utilizatorul pentru o parola în mod regulat, sistemul învață utilizatorul care dă parola de sistem ori de câte ori unele aplicații solicită este un lucru perfect natural să facă.
Întrebările mele sunt:
Există vreun mecanism de siguranță în Linux, în general, sau Ubuntu special care previne orice aplicație afișează o casetă de dialog care arată identic cu sistemul pentru a-mi cere parola mea?
Cum ar trebui să, cum ar fi windows concepute pentru a crește siguranța utilizatorului? De ce nu pune în aplicare un sistem similar cu Windows' Ctrl+Alt+Del pe logon?
sesiune, dar la kernel-l's doar o altă aplicație. Sesiunile de logare și conturile de utilizator sunt sandboxed destul de bine de la fiecare alte, dar Linux are o mentalitatea de securitate pe care nu't nevoie pentru a proteja un utilizator din ele-auto. În acest model de securitate, dacă contul este compromis de malware atunci's o cauză pierdută, dar totuși doriți să-l izoleze de alte conturi pentru a proteja sistemul ca un întreg. De exemplu, Linux aplicații au tendința de a crea un low-privilegii de utilizator ca
apachesau " ftp " pe care le conduc, ca atunci când nu au nevoie pentru a face rooty lucruri. Dacă un atacator reușește să preia controlul de o funcționare
apacheproces, se poate muck alte
apache` procese, dar va avea probleme de sărituri cu " ftp " procese.
Rețineți că Windows are o abordare fundamental diferită aici, în mare parte prin convenție că toate lucrurile importante rula ca Sistem tot timpul. Un malware de servicii în Linux are mai puține posibilități de a face lucruri rele decât un proces de malware care rulează ca Sistem, deci Windows trebuie să meargă la eforturi suplimentare pentru a proteja pe cineva cu drepturi de admin de la "le-auto".
GUI medii și un X Server care nu a fost conceput pentru securitate aruncă o cheie în acest model de securitate. În Windows, atunci când un utilizator-procesul cereri privilegiilor, kernel-ul aruncă o protecție specială promptă a cărui memorie și tastatură / mouse-ul de autobuz este izolat de restul restul de mediul desktop. Se poate face acest lucru pentru GUI este construit-in pentru sistemul de OPERARE. În Linux, GUI (X server) este doar o altă aplicație, și, prin urmare, parola solicită aparțin procesul care le-au invocat, care rulează ca tine, de partajare de memorie permissions și o intrare de autobuz cu fiecare alte fereastră și proces care rulează ca tine. Rădăcina prompt poate't face fantezie UAC lucruri Ca de blocare a tastaturii pentru că acele fie nevoie să fie rădăcină deja, sau necesită o complet re-proiectarea X server (vezi Wayland de mai jos). Un catch-22, care în acest caz este un dezavantaj de separare GUI de la kernel. Dar, cel puțin, l's în conformitate cu Linux model de securitate. Dacă ar fi să revizuiască modelul de securitate pentru a combate acest lucru prin adăugarea sandbox între solicitările de parole și alte procese care rulează ca utilizatorul în aceeași GUI sesiune, am putea avea de a re-scrie foarte multe lucruri. Cel puțin, kernel-ul ar trebui să devină GUI conștient, astfel încât acesta este capabil de a crea solicitări (nu este valabil și astăzi). Alte du-te la exemplu este faptul că toate procesele într-un GUI sesiune partaja o tastatură de autobuz. Urmăriți-mă să scriu un keylogger și apoi apăsați câteva taste in un alt window:
➜ ~ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech K400 Plus id=9 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=13 [slave pointer (2)]
➜ ~ xinput test 9
key release 36
key press 44
hkey release 44
key press 40
ekey release 40
key press 33
lkey release 33
key press 33
lkey press 39
okey release 33
key release 39
key press 66
key press 31
Linia de fund: Din perspectiva unui utilizator final, l'nu e rezonabil să ne așteptăm ca Linux-ul să se comporte la fel ca Windows, dar aceasta este una dintre acele cazuri în care aveți nevoie pentru a înțelege un pic despre cum fond al sistemului sistemul funcționează și de ce a fost proiectat în acest fel. Pur și simplu schimbarea punerea în aplicare a solicitărilor de parolă nu va realiza nimic, atât timp cât acesta este deținut de un proces deținute de tine. Pentru Linux pentru a obține aceleași securitate comportamente ca Windows în contextul unui singur utilizator GUI lucru ar necesita re-design al sistemului de OPERARE, asa ca's puțin probabil să se întâmple, dar astfel de lucruri Docker poate oferi o cale de urmat într-o mai mult Linux-modul nativ. În acest caz, diferența importantă este că Linux este conceput la nivel scăzut a fi un multi-server și vor face o decizie de a nu se proteja de un utilizator din ele-auto, în timp ce Windows este proiectat pentru a fi un singur utilizator de stație de lucru, astfel încât aveți nevoie pentru a avea inter-proces protectii într-o sesiune de conectare. L's, de asemenea, relevant faptul că în Windows GUI este parte a sistemului de OPERARE, în timp ce în Linux GUI este doar un alt nivel de utilizator de aplicare.
există nici un mecanism de siguranță în Linux, în general, sau Ubuntu special care previne orice aplicație afișează o casetă de dialog , care pare identic cu sistemul's unul, să-mi ceri parola?
Răspuns rapid: Nr.
Din perspectiva utilizatorului, nu există nici o garanție că prompt vine de la sistemul de operare; ar putea fi rău intenționat program care a avut doar o perioadă limitată de permisiunea de a afișa o fereastră, și de solicită parola, va avea acces nelimitat la tot mașină.
Dacă un program rău intenționat pe computer, nu't contează ce program se afișează caseta de dialog. Dacă este program rău intenționat, ei bine, așa cum este descris în următoarea propoziție, nu't chiar trebuie să-ți arăt un dialog. Dacă acesta este un program de legit, program malitios poate "uita" fereastră și ce-ai're tastarea acolo, în X server medii (terminal este mai bine).
Soluție?
Dacă ai motive să crezi că un program este't de încredere, sandbox (VM sau lucruri mai puțin importante).
Altceva, nu cere parole. Acest dialog este confort pentru utilizatorii non-tehnici. Daca're în cauză pentru securitate, sau a unei organizații de administrare sau similare, nu's absoluetly nu nevoie pentru a afișa un GUI parola de interogare. Configurați permisiunile de utilizator non-root conturi în mod corespunzător (da sau nu, dar nu-ți cer), și nu utilizați un desktop ca root (din cauza asta, și pentru că este o ispită de a folosi rădăcină de mai multe ori decât este necesar).
De fapt care ia determinat utilizatorul pentru parola în mod regulat, sistemul învață utilizatorul care a dat parola de sistem ori de câte ori unele aplicații solicită pentru că este un lucru perfect natural să facă.
Așa cum este descris, doar don't le cere. Ca admin, "dvs." utilizatorii ar trebui să aibă clar definite permisiuni.
Și, despre actualizări auto ca organizație admin: Esti nebun :) Serios, don't lasa multe Ubuntu clientii actualizare randon lucruri la întâmplare ori. Cât despre imagini centrale, care sunt întreținute și testate de tine și apoi laminate; sau, în altă direcție lucruri ca Ansiblu? Complet independente de securitate, actualizări pot sparge lucruri. Ca's de ce.
Da. Acest lucru este nesigur!
Eu personal întotdeauna Anula acel dialog. Nu pentru că ar putea fi false, ci pentru că ar putea fi adevărat.
Eu trebuie să le dau escaladat privilegii pentru "o aplicație" doar pentru că-l întreabă? Nu, nu, nu't cred.
Actualizări de sistem sunt bine, eu fac asta manual, dar ma enerveaza ca eroare de raportare de sistem necesită acest lucru. Bad design.
Contrar a ceea ce simt, (moderne) Windows și Ubuntu modalități de manipulare niveluri de drepturi și privilegii altitudine sunt destul de similare. Motivul este, cu siguranță, că sistemele de operare sunt atât sistemele multi-utilizator cu similar de cazuri de utilizare care se confruntă cu probleme similare.
Ambele sisteme de operare restricționa ceea ce un utilizator obișnuit poate face (prin programe care rulează, desigur). Un utilizator poate distruge propriile date, dar în mod ideal, nu alte persoane's (excepția cazului în care au împărtășit-o), și în mod ideal, pot compromite sau afecta sistemul. În scopul de a citi și scrie date de sistem un program are nevoie de administrator (root) privilegiile pe ambele sisteme de operare, care, de regulă, numai programe de început de admin/root trebuie.
În scopul de a face atât de simplu, ambele sisteme de operare oferă implicit de utilizator cu posibilitatea de a rula singur programe cu "privilegii ridicate" prin sudo respectiv UAC. Atât sistemul de operare Gui foc un dialog, în scopul de a oferi utilizatorului o șansă de a preveni programe de rulare ca administrator/root. Ambele sisteme au, de asemenea, noțiunea de utilizatorii care nu sunt permise pentru a rula privilegiat programe la toate.
Ubuntu dialog cere o parola; Ferestrele de dialog UAC nu't. (Ai par să creadă că un program are nevoie de permisiuni speciale pentru a arăta că de dialog; nu este cazul. Programul este cere pentru ei cu dialogul. Dacă cineva falsuri dialog se obține (utilizator), parola, care este nici un câștig pentru un program care rulează deja ca acel utilizator.)
Linia de jos este că un program poate pretinde că are nevoie de privilegii ridicate pentru ceva util și foc la dialog, dar, odată ce aceasta le-a obținut, format la hard disk.1 Asta este valabil pentru ambele sisteme de operare. Pentru că sub Windows, de obicei, mai multe software-ul terț devine instalat șansă de a lovi un astfel de program este, probabil, mai mare decât pentru Ubuntu.
Ai menționat că în Windows UAC de dialog de obicei este rezultatul unei acțiuni de utilizator, de exemplu, pentru a instala un program, în timp ce Ubuntu incendii de dialog fără un motiv aparent. Un motiv la care mă pot gândi este că Windows actualizări de software sunt inițiate de OPERARE, astfel încât acestea să aibă privilegii ridicate deja. Poate Ubuntu cere înainte de a instala.
Ar fi într-adevăr frumos să avem mai multe informații decât "am nevoie de pașaport, cizme si geaca ta." nu am nici Ubuntu sistem la îndemână aici, dar vad ca o "Detalii" legenda pe partea stângă a casetei de dialog. Te-ai uitat ce se spune? (Desigur, un program poate falsifica orice text acolo, dar ați putea fi capabil de a verifica dacă presupusele program este într-adevăr de funcționare.)
Cel mai sigur mod de a asigurați-vă că parola e't a fost cercetat este de a utiliza SAK secvență: alt + sysrq-k
. Acest lucru va ucide toate programele pe curent VT (inclusiv X11) și init
va da un nou login prompt. Singura atacurile am'm conștienți de implica modificarea kernel keymap sau compromite init în sine, ambele din care au nevoie de rădăcină sau un acces mai bun deja.
Există diverse ușor-mai puțin completă moduri (XTerm are cale de acces X11's "exclusiv de intrare" opțiune), în funcție de cât de mult de sistemul dvs. de încredere, dar ... de ce ar trebui't ai fi capabil să aibă încredere în sistemul dumneavoastră?
Diferența majoră între Linux și Windows security modele este că sub Linux, te nici't doar descărca aleatoare executabile de pe Internet și le-a alerga. (Există unele eforturi pentru pachetul de încredere aplicații Linux într-un Android-cum ar fi pachetul de nisip, dar nimeni nu le foloseste.)
Oribil, oribil lipsa de securitate. Când am văzut-proiectarea de grafice sudo mi-am îngăduit și a făcut sudo passwd root
, urmat de apt-get remove sudo
, apoi am enervat ubuntu IRC oameni buni de ce pledeaza pentru dezinstalarea sudo.
Și totuși înțeles, acest lucru este extrem de nesigur. A fost destul de ok pe terminal (cu atât mai mult atunci când bombele au fost mai slabe a fost relativ necunoscut și atacurile împotriva a n't foarte dezvoltat), dar este o evidentă weakpoint acum.
Voi începe mai degrabă un al doilea X exemplu ca root acum pentru mai puțin decât o dată pe an trebuie să oferi o grafică program de root. (Fac asta de pornire X :1 în mod direct nu prin rularea startx deci nimic, dar aplicația țintă se execută în rădăcină's X exemplu). Dacă ai nevoie de rădăcină de mai multe ori am sfătui apt-get install ssh " și " ssh -X root@localhost
.