Privilegiul escaladării

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În tehnologia informației , escaladarea privilegiu (destinate ca depășire a autorizațiilor ) este exploatarea unui defect , a unui proiect sau configurație de eroare a unei aplicații software sau a unui sistem de operare pentru controlul dobândi al resurselor de mașini , care sunt în mod normal , exclusa. Unui utilizator sau aplicație. O aplicație cu autorizații mai mari decât cele furnizate de dezvoltarea originală sau stabilite de administratorul de sistem poate, desigur, să efectueze acțiuni neprevăzute și neautorizate.

Note generale

„Urcarea” la un nivel mai înalt de permisiuni este posibilă în cazul unui proiect incorect sau a unei funcționalități slab gestionate a sistemului: aceasta deschide un defect de securitate prin care un utilizator sau un software rău intenționat poate implementa acțiuni de următoarele tipuri:

  1. Urcare verticală : un utilizator accesează funcții, autorizații și privilegii superioare celor atribuite acestuia: pentru a da un exemplu financiar, un utilizator care accesează niveluri de administrare.
    1. Ca corolar, aceasta implică, de asemenea, posibilitatea ca utilizatorul care a devenit administrator să retrogradeze privilegiile altor administratori la nivelul de utilizator simplu.
  2. Urcare orizontală : un utilizator cu același nivel de autorizare ca alți utilizatori, dar cu acces la zone diferite decât acesta din urmă, obține acces la zonele menționate.

Escalare de privilegii pe verticală

Acest tip de escaladare a privilegiilor există atunci când utilizatorul sau procesul este capabil să obțină un nivel de acces mai mare decât cel al unui administrator sau cel dorit de dezvoltatorul de sistem, posibil prin efectuarea de operațiuni la nivel de nucleu.

Exemple de escaladare verticală a privilegiilor

În unele cazuri, se presupune că o aplicație extrem de privilegiată are doar o intrare care se potrivește interfeței sale specifice, dar nu va valida intrarea. Un atacator poate fi apoi capabil să utilizeze această presupunere astfel încât un cod neautorizat să ruleze cu aceleași privilegii ca și aplicația:

  1. Unele servicii Windows sunt configurate pentru a rula sub un cont de utilizator de sistem local . O vulnerabilitate precum depășirea bufferului ar putea fi utilizată pentru a executa cod arbitrar cu privilegii ridicate pe sistemul local . Alternativ, un serviciu de sistem care pretinde a fi un utilizator minor își poate ridica privilegiile dacă erorile rezultate nu sunt tratate corect în timp ce fac acest lucru.
  2. În unele versiuni anterioare ale sistemului de operare Microsoft Windows , toate protectorile de ecran ale tuturor utilizatorilor rulează sub contul de sistem local , orice cont care poate înlocui screensaver-ul binar curent în sistemul de fișiere sau în registru poate, prin urmare, crește privilegiile.
  3. * În anumite versiuni ale kernel-ului Linux a fost posibil să scrieți un program care ar trebui să plaseze directorul său curent în /etc/cron.d , pentru a solicita ca un dump de bază să fie capabil să se prăbușească și el însuși să fie ucis de un alt proces. Fișierul de descărcare de bază ar trebui să fie plasat în directorul curent al programului, adică /etc/cron.d , iar cron ar trebui tratat ca un fișier text, instruindu-l să ruleze programele în timp. Deoarece conținutul fișierelor ar trebui să fie sub controlul atacatorului, acesta ar trebui să poată rula orice program cu privilegii de root .
  4. Cross Zone Scripting este un tip de atac de creștere a privilegiilor în care un site web subversează modelul de securitate al browserelor web, astfel încât acesta să poată rula codul rău intenționat pe computerele de tip client .
  5. Un jailbreak este actul sau instrumentul folosit pentru a chroot sau închisoare evaziune în unix cum ar fi sistemele de operare sau ocolirea de gestionare a drepturilor digitale ( DRM ). În primul caz, acesta permite utilizatorului să vadă fișiere externe sistemului de fișiere pe care administratorul intenționează să le pună la dispoziția aplicațiilor sau la cererea utilizatorilor. În contextul DRM, acest lucru permite utilizatorului să ruleze în mod arbitrar un cod definit pe dispozitivele cu DRM, precum și să se sustragă de restricțiile chroot . Dispozitivele încărcate cu DRM, cum ar fi Xbox , PSP , iPhone și iPod touch, au fost supuse în mod repetat la jailbreaks, permițând executarea arbitrară a codului, dar au avut jailbreaks dezactivate prin actualizări de la furnizorii lor respectivi.
  • IPhone, în special, a fost un câmp de luptă fertil. Cu toate acestea, grupul de hackeri iPod touch / iPhone răspunde la cele mai recente actualizări ale furnizorilor, creând noi modalități de a permite aplicații terțe aproape instantaneu. Abia când popularitatea iPhone - ului a crescut , termenul jailbreaking a devenit bine cunoscut în întreaga lume.
  • O metodă similară de jailbreaking există pentru platforma smartphone-ului S60 , care necesită instalarea de patch-uri în stil softmod, care necesită corecția anumitor fișiere ROM în timp ce acestea sunt încărcate în RAM sau în firmware-ul editat (similar cu firmware-ul M33 hack folosit pentru PlayStation Portable ) pentru a ocoli restricțiile privind codul nesemnat. Nokia a lansat actualizări pentru a pune capăt jailbreak-ului neautorizat, similar cu Apple .
  1. Există, de asemenea, situații în care o aplicație poate utiliza alte servicii cu privilegii ridicate și presupuneri incorecte despre modul în care un client ar putea manipula utilizarea acestor servicii. O aplicație care poate rula o linie de comandă sau un shell de comandă ar putea avea o vulnerabilitate Shell Injection dacă folosește intrări invalidate ca parte a unei comenzi executate. Un atacator ar trebui să poată rula comenzi de sistem folosind privilegiile aplicației.
  2. Calculatoarele Texas Instruments (în special TI-85 și TI-83 ) au fost inițial concepute pentru a utiliza numai programe interpretate scrise în dialectica TI-BASIC ; cu toate acestea, după ce utilizatorii au descoperit erori care ar putea fi utilizate pentru a permite codului Z-80 nativ să ruleze pe hardware-ul computerului, Texas Instruments a lansat date de programare pentru a sprijini dezvoltarea terților. (Acest lucru nu împinge înainte TI-Nspire bazat pe ARM , pentru care jailbreak-urile nu au fost încă găsite cu succes.)

Faimos exemplu de atac folosind Demon Cron

Un exemplu celebru a fost un program care folosea demonul cron care le permitea utilizatorilor să programeze joburi. De obicei, a funcționat ca root, având astfel acces gratuit la toate fișierele de sistem și toate conturile de utilizator. În principal, atacul s-a întâmplat astfel:

  1. Atacatorul creează un program care va avea daemonul cron ca director de lucru.
  2. După aceea, trebuie creată o descărcare de bază și acest lucru se poate întâmpla în 2 moduri, fie intră în eroare, astfel încât să genereze o descărcare de bază, sau se lasă omorât pentru a obține oricum o descărcare de bază .
  3. Dumpurile de bază sunt generate în directorul de lucru, care în acest caz coincide cu cel al demonului cron . Deoarece depozitele sunt realizate de sistem, acestea pot fi scrise fără a fi oprite de sistemul de protecție. Imaginea de memorie a programului de atac a fost atât de structurată încât a constat dintr-un set valid de comenzi pentru demonul cron care le putea rula ca rădăcină de sistem cu privilegii maxime.
  4. În acest moment, atacatorul a găsit un cod arbitrar care rulează ca superutilizator .

Din fericire, acest bug special a fost remediat, dar rămâne în continuare un exemplu excelent al acestui tip de atac.

Strategii pentru reducerea riscului

Sistemele de operare și utilizatorii pot utiliza următoarele strategii pentru a reduce riscul escaladării privilegiilor:

  1. Prevenire executare date
  2. Randomizarea aspectului spațiului de adrese (pentru a face depășirile de tampon mai dificile și a executa instrucțiuni privilegiate pentru adresele cunoscute din memorie)
  3. Rularea aplicațiilor cu privilegii minime (de exemplu, rularea Internet Explorer cu SID-ul administratorului dezactivat în procesul de tokenizare ) pentru a reduce capacitatea acțiunii de depășire a bufferului de a abuza de privilegiile unui utilizator ridicat.
  4. Se cere ca codul modului kernel să fie semnat digital
  5. Software antivirus actualizat
  6. Făcând patch-uri
  7. Folosind compilatoare care trișează depășirea bufferului
  8. Prin criptarea componentelor software și / sau firmware

Escalarea orizontală a privilegiilor

Escaladarea orizontală a privilegiilor are loc atunci când o aplicație permite atacatorului să obțină acces la resurse care ar fi trebuit să fie protejate în mod normal de o aplicație sau de un utilizator. Rezultatul este că aplicația efectuează acțiuni cu același context diferit de securitate decât cel intenționat de dezvoltatorul aplicației sau de administratorul de sistem; aceasta este efectiv o formă limitată de escaladare a privilegiilor (în mod specific, presupunerea neautorizată cu privire la capacitatea de a imita alți utilizatori).

Exemple de escaladare a privilegiilor pe orizontală

Această problemă apare adesea în aplicațiile web. Să luăm în considerare următorul exemplu:

  1. Utilizatorul A are acces la contul bancar într-o aplicație bancară online.
  2. Utilizatorul B are acces la contul bancar din aceeași aplicație bancară online.
  3. Vulnerabilitatea apare atunci când utilizatorul A este capabil să se conecteze la contul utilizatorului B efectuând un fel de activitate rău intenționată.

Această activitate rău intenționată poate fi posibilă din cauza slăbiciunilor sau vulnerabilităților aplicațiilor web obișnuite. Potențialele vulnerabilități ale aplicațiilor web care pot duce la această condiție includ:

  1. ID - ul sesiunii previzibile din cookie-ul HTTP al utilizatorului
  2. Fixarea sesiunii
  3. Scripturi între site-uri
  4. Simpla intuiție a parolelor

Bibliografie

Elemente conexe