Ce este sandboxing și cum să sandbox un program

Cutiile de nisip există pentru că nisipul este distractiv, dar nu dorim să fie urmărit în toată curtea școlii și în casă. Dacă ați petrecut vreodată un timp pe o plajă, știți cât de greu este nisipul și cât de greu poate fi să scăpați. Înainte de a-l cunoaște, există nisip pe holuri, nisip în spălătorie și nisip în duș.

În lumea computerelor, există aceeași problemă cu programele. Programele care rulează pe computer împărtășesc resursele calculatorului respectiv. Toate programele dvs. utilizează același spațiu de stocare static, cum ar fi unitățile de disc, aceeași memorie și aceeași unitate centrală de procesare (CPU). Atunci când resurse comune ca acestea sunt partajate, puteți ajunge la o problemă cu nisip. Un program se termină pe tot computerul, deoarece scrie date în toate părțile discurilor dvs., accesează memoria din toate zonele memoriei dvs. și trimite cereri către CPU împreună cu orice alt program. Păstrăm nisipul într-o cutie de nisip pentru același motiv pentru care programele de calculator pentru sandbox: să conținem nisipul – sau programul – într-un domeniu gestionabil.

Proiectarea de bază a computerului facilitează schimbul de resurse. Permițând programelor să partajeze resurse, computerul poate aparent multi-sarcină și se pare că face multe lucruri simultan. Acesta este exact tipul de comportament pe care am solicitat-o ​​computerului, telefoanelor, tabletelor și ceasurilor noastre de-a lungul anilor, dar aceste funcții pot provoca efecte secundare nedorite. Programele se pot comporta prost și se pot prăbuși sau pot provoca blocarea altor programe; pot avea o dependență de o altă aplicație pe computer care intră în conflict cu nevoile altor programe; și, din ce în ce mai mult, programele sunt dăunătoare și încearcă să acceseze zone în afara limitelor pentru a face lucruri rele.

Sandboxing-ul browserului

Web-ul mondial (www) a luat ființă în 1989, iar primul browser cu adevărat popular, Mosaic, a propulsat internetul în cultura populară. Web-ul a fost proiectat pentru a partaja documente; nu a fost proiectat pentru a sprijini ceea ce avem acum: un sistem de livrare bazat pe internet în care software-ul rulează în cloud. Această prăpastie între design și utilizarea reală a creat nenumărate oportunități pentru băieții răi de a utiliza browserele web ca mecanism de livrare pentru malware-urile lor.

Linia în care se termină un computer fizic și începe internetul este foarte încețoșată. Majoritatea programelor pe care le rulăm astăzi depind parțial sau complet de o conexiune la internet în direct pentru a funcționa. Odată cu această conectivitate constantă la internet care se îndepărtează în fundal, devine evident că un vector de atac foarte atractiv sunt programele pe care le folosim pentru a accesa internetul. În partea de sus a acestei liste se află venerabilul browser web. De fapt, în 2016, compania de securitate a internetului Sucuri a înregistrat peste o jumătate de miliard (adică miliarde cu un B) cereri rău intenționate destinate site-urilor web și browserelor într-o singură perioadă de 30 de zile.

Deoarece browserele sunt atât de prolifice și mereu active, ele sunt demne de o atenție specială. Multe dintre browserele de astăzi sunt proiectate să funcționeze automat în propriile lor cutii de nisip, fără a fi configurate de la utilizator.

Google Chrome a fost testat de la început.
Mozilla Firefox a luat mai mult timp pentru a implementa sandboxing, dar acum este aproape 100%.
Internet Explorer a introdus un anumit nivel de sandboxing în 2006 cu IE 7, iar Microsoft Edge sandboxes toate procesele acum.
Browserul Safari Apple rulează și site-uri web în procese separate.

Dacă utilizați un browser exotic sau doriți o separare și mai mare între sistemul de operare și browserul dvs., poate doriți să aruncați o privire asupra opțiunilor manuale de sandbox listate în secțiunea următoare..

Sandboxing manual

Deși browserele reprezintă o slăbiciune foarte importantă în orice sistem de operare, nu sunt în niciun caz singura slăbiciune. Orice aplicație are potențialul de a fi rău intenționat și, prin urmare, postura de securitate a oricărui computer poate fi consolidată prin utilizarea sandboxing-ului. Sandboxing-ul manual este procesul de configurare intenționată a sistemului pentru sandbox-ul unei aplicații care altfel ar putea avea acces complet la sistemul dvs..

Mașini virtuale

Virtualizarea desktop a parcurs un drum lung în ultimii ani și acum este destul de ușor să instalați și să folosiți mașini virtuale. O mașină virtuală este așa cum sună: o „mașină” care nu este reală. Este într-adevăr doar o aplicație software. Cea mai obișnuită utilizare a unei mașini virtuale este să instalați o copie a sistemului de operare în ea și să rulați mașina virtuală pe desktop ca și cum ar fi o altă mașină fizică. Acest tip de separare oferă o mare siguranță, deoarece programele pot accesa resurse doar în interiorul mașinii virtuale. Dacă o parte a programelor malware ar pune stăpânire și să vă infecteze sistemul, acesta ar putea doar să infecteze mașina virtuală, ceea ce limitează cantitatea de daune pe care o poate face. Este chiar posibil să rulați sisteme de operare alternative într-o mașină virtuală, cum ar fi rularea unei distribuții Linux într-o mașină virtuală pe un computer Windows.

Există multe aplicații de virtualizare, fiecare vizând un tip specific de caz de utilizare. Cele mai populare și mature aplicații de virtualizare desktop pe care utilizatorii normali le pot trata în mod obișnuit sunt VirtualBox și Parallels.

Istoric: O virtualizare este formată din două părți principale. Termenul gazdă se referă la computerul fizic care rulează software-ul de virtualizare. Termenul oaspete se referă la sistemul de operare care rulează în cadrul aplicației de virtualizare.

VirtualBox

VirtualBox este deținut de Oracle și are clienți pentru fiecare sistem de operare important. După instalarea VirtualBox, puteți crea o mașină virtuală folosind butonul Nou. Va trebui să furnizați suportul de instalare a sistemului de operare, deoarece VirtualBox nu vine cu asta. Distribuțiile Linux se găsesc cu ușurință pe internet – o listă bună este distrowatch-ul site-ului, iar pentru sisteme de operare proprii precum Windows, va trebui să aveți CD-ul de instalare la îndemână..

Parallels

Parallels este foarte asemănător cu VirtualBox, cu excepția notabilă că rulează numai pe macOS și este construit special pentru a rula Windows în mașina virtuală. Dacă sunteți în căutarea acestei combinații – rularea Windows pe desktopul macOS – atunci Parallels poate fi cea mai bună soluție pentru dvs. Parallels nu este gratuit, cu toate acestea, există un proces gratuit de 30 de zile.

Sandboxie

Motto-ul lui Sandboxie este „Trust No Program”. Funcționează exclusiv pe Windows și pretinde să separe programele de rulare de sistemul de operare de bază. Panoul de control Sandboxie este utilizat pentru a nominaliza anumite programe care să fie rulate într-o cutie de nisip. Cele mai frecvente programe care prezintă cele mai mari amenințări, cum ar fi browserele și programele de e-mail, sunt listate ca opțiuni de configurare în mod implicit, iar alte aplicații pot fi adăugate după caz.

Datele din Sandboxie sunt distruse atunci când o cutie de nisip este închisă, dar este posibil să configurați Sandboxie pentru a lăsa date nealterate importante. Folderele care conțin e-mailuri și marcajele browserului web sunt exemple de date care pot supraviețui unei ștergeri a cutiei de nisip.

Sandboxie este conceput pentru utilizatorii de acasă și asta se reflectă în prețurile sale ieftine.

Sistem de operare Qubes

QubesOS (pronunță „Cubes”) merită o mențiune specială pentru virtualizare. Qubes folosește hipervizorul Xen în loc de VirtualBox. Acesta lansează mai multe sisteme de operare invitate și fiecare este separat de celălalt. Aceasta permite sandboxing-ul aplicațiilor individuale, fiecare în cadrul propriei sale mașini virtuale, mai degrabă apoi doar sandboxing-ul întregului sistem de operare invitat. Diferența distinctivă a QubesOS este că Xen este propriul sistem de operare; nu există niciun sistem de operare „gazdă” sub el. Am scris mai multe despre Qubes și alte distribuții Linux axate pe anonimat aici.

Preluându-vă timpul necesar pentru a vă folosi sandbox-ul, puteți oferi o apărare solidă împotriva multor tipuri de malware și vă poate ajuta la dezvoltarea software-ului. Nu există un substitut pentru o doză sănătoasă de paranoia atunci când utilizați internetul, dar izolarea aplicațiilor dvs. mai vulnerabile vă poate ajuta.

Tipuri de probleme care pot fi cauzate de programele care nu au fost instalate în nisip

Programele se prăbușesc între ele

În primele zile de calcul, procesorul a distribuit resurse pe baza primului venit. Acest lucru a funcționat bine atunci când calculatoarele noastre nu făceau mare lucru, dar în zilele noastre sunt utilizate metode mult mai complexe de alocare a resurselor. CPU procesează apărarea limitelor resurselor alocate și, dacă un program încearcă să acceseze o resursă care nu a fost desemnată special, programul sau alte programe se pot bloca.

Rularea unui program într-o cutie de nisip permite sistemului să pre-aloce resurse, cum ar fi spațiul de memorie și disc înainte de programul care solicită orice. Acest lucru asigură că aceste resurse sunt gata pentru program ori de câte ori are nevoie, și, de asemenea, se asigură că niciun alt program nu poate utiliza aceste resurse.

Programe cu diferite dependențe

Fiecare program are numeroase versiuni de sine. Foarte puține programe sunt perfecte în toate privințele la lansarea inițială, motiv pentru care am fost permanent supuși ciclului de actualizare fără încetare. Dispozitivele noastre ne spun pentru totdeauna că trebuie aplicate actualizări sau că sunt disponibile versiuni noi ale programelor noastre. Este important să permiteți aceste actualizări să aibă loc cât mai curând posibil, deoarece multe dintre aceste actualizări sunt legate de probleme de securitate sau de performanță. Renunțarea la actualizări face ca dispozitivul dvs. să fie mai puțin securizat și să funcționeze într-o stare mai mică decât ideală.

Sub principalele aplicații cu care folosim și interacționăm în fiecare zi se află un set de programe de ajutor. Aceste programe există pentru a ajuta aplicația principală să funcționeze corect. Noi, oamenii, rareori suntem conștienți de aceste programe, dar programul principal nu ar putea funcționa fără ele. Aceste programe de ajutor sunt numite dependențe în limbajul dezvoltatorilor. La fel ca orice alt program, aceste dependențe se actualizează și se schimbă în mod constant, lucru care poate fi complicat.

Dacă un program principal folosește o anumită funcție pe care o furnizează dependența, dar dependența este actualizată și brusc nu mai are această funcție, atunci aplicația principală se va prăbuși. Aplicația principală nu obține rezultatul scontat de la dependența respectivă. În multe cazuri, eroarea de dependență este atât de neașteptată, încât aplicația principală se va bloca fără restricții. Principalul dezvoltator de aplicații probabil nu este avertizat în prealabil cu privire la modificările dependenței, astfel încât poate fi dificil să vă dați seama de o astfel de situație și să o gestionați cu grație.

Majoritatea programatorilor fac tot posibilul să se asigure compatibilitate înapoi, ceea ce înseamnă că, chiar dacă o versiune mai nouă a aplicației lor nu are o funcție pe care a avut-o în trecut, va gestiona în continuare cu atenție cererile pentru această funcție, astfel încât alte aplicații care depind de aceasta să nu se defecteze. Cu toate acestea, unele excepții foarte notabile, cum ar fi Java și Python, sunt cunoscute pentru că sunt foarte dificil de lucrat în timpul unei actualizări. În lumea Linux, cunoscuta frază „iadul de dependență” se referă la problemele inerente actualizărilor de sistem mari. În unele cazuri, programele de dependență au propriile lor dependențe și nu este imposibil de terminat într-o situație de actualizare în care nu este posibil să satisfacă toate dependențele. De exemplu, dacă programul meu Puppy Vet Tracker are nevoie de versiunea 2.0 a unui program dependent, dar programul meu Daily Star Wars Quote are nevoie de versiunea 1.0 a aceluiași program dependent, atunci nu este posibil să îndeplinesc această cerință pentru ambele programe..

Dezvoltatorii se confruntă frecvent cu acest tip de problemă, iar sandboxing-ul este o modalitate de a-l aborda. Crearea unui sandbox și instalarea meu Puppy Vet Tracker în acesta ar permite modernizarea programului dependent la versiunea 2.0. Principalul sistem informatic ar rămâne cu versiunea 1 a programului dependent și, prin urmare, pot primi în continuare cotatia mea zilnică Star Wars. Win-win.

Programe rău intenționate

Luați în considerare o situație în care o aplicație partajează computerul cu toate celelalte programe care rulează. Unele dintre programele care rulează pe computer pot conține informații sensibile. Poate că aveți documente legale, foi de calcul bugetare sau un administrator de parole deschise, iar aceste aplicații stochează unele date în memorie. Există programe dăunătoare care sondează în jurul zonelor computerului alocate altor programe pentru a vedea ce pot găsi. În ultimii ani, alocarea resurselor a devenit mai bună, astfel încât este mai greu pentru un program să acceseze date care nu se află în zone special alocate acestuia, dar tehnicile de hacking, cum ar fi încercarea de a citi dincolo de memoria atribuită programului pot funcționa..

Trucul pentru exfiltrarea cu succes a datelor (eliminarea datelor din sistem) s-a bazat întotdeauna pe păcălirea utilizatorului computerului în instalarea programelor malware. Acest lucru se realizează, de obicei, cu ajutorul tehnicii de inginerie socială sau de phishing și poate duce la compromisul cu ridicata al unui sistem în care fiecare fișier poate fi furat.

Programele de sandboxing pot oferi o apărare foarte puternică împotriva programelor dăunătoare. Când un program este setat în mod corespunzător, acesta poate accesa doar memoria și spațiul de disc alocat acestuia. Prin urmare, deschiderea de documente sensibile într-o cutie de nisip va împiedica, de obicei, abilitatea programului dăunător de a le accesa, deoarece documentul nu se află în același spațiu de memorie ca programul dăunător. Acestea fiind spuse, există un efort foarte concertat al hackerilor de a pătrunde în interiorul sau în afara căsuțelor de nisip. Aceasta se numește evadarea mediului virtual și este considerat a fi un tip atât de grav de atac, încât Microsoft a plătit recent o sumă de 105.000 USD unei echipe de hacking cu pălării albe care a demonstrat că este posibil folosind browserul Edge.

About the author

Comments

  1. Cutia de nisip este o soluție excelentă pentru a gestiona programele de calculator și pentru a evita problemele cauzate de partajarea resurselor. Acest lucru este similar cu problema nisipului pe care îl întâlnim pe plajă și în curțile școlilor și caselor noastre. În lumea computerelor, programele care rulează pe calculator împărtășesc resursele calculatorului, ceea ce poate duce la probleme cu nisipul. Prin utilizarea cutiei de nisip, putem gestiona programele într-un domeniu gestionabil și putem evita problemele cauzate de partajarea resurselor. Acest lucru este foarte important în cazul browserelor web, care sunt vulnerabile la atacurile malware-ului. Multe browsere de astăzi sunt proiectate să funcționeze automat în propriile lor cutii de nisip, fără a fi configurate de la utilizator. Acest lucru ne ajută să ne protejăm împotriva atacurilor malware-ului și să ne bucurăm de navigarea pe internet în siguranță.

  2. anță nisipul de pe computerul dvs.? Există câteva lucruri pe care le puteți face pentru a vă proteja de programele rău intenționate și pentru a vă asigura că computerul dvs. rulează într-un mediu sigur. În primul rând, asigurați-vă că aveți un program antivirus bun instalat și actualizat. Acesta va ajuta la detectarea și eliminarea oricăror programe dăunătoare care ar putea încerca să acceseze computerul dvs. În al doilea rând, utilizați un browser care rulează într-o cutie de nisip. Acest lucru va ajuta la prevenirea atacurilor de malware prin separarea browserului de restul sistemului dvs. În cele din urmă, fiți atenți la ceea ce descărcați și instalați pe computerul dvs. Nu instalați programe din surse necunoscute sau suspecte și nu faceți clic pe link-uri sau atașamente din e-mail-uri suspecte. Prin urmarea acestor sfaturi simple, puteți ajuta la protejarea computerului dvs. și a datelor dvs. personale de programele rău intenționate și de atacurile de malware.

  3. înlăturați programele rău intenționate

    Pentru a proteja computerul și datele personale, este important să identificați și să înlăturați programele rău intenționate. În primul rând, asigurați-vă că aveți un program antivirus actualizat și rulați o scanare completă a sistemului. Dacă antivirusul detectează un program rău intenționat, urmați instrucțiunile pentru a-l înlătura.

    De asemenea, puteți utiliza un program anti-malware pentru a căuta și înlătura programele rău intenționate. Este important să descărcați un astfel de program de pe un site de încredere și să-l actualizați în mod regulat.

    În plus, fiți atenți la semnele de avertizare ale unui program rău intenționat, cum ar fi pop-up-uri neașteptate, schimbări neautorizate ale setărilor browserului sau încetinirea computerului. Dacă observați astfel de semne, opriți imediat utilizarea computerului și căutați ajutor de la un specialist în securitate informatică.

Comments are closed.