Sandboxul aplicațiilor în dezvoltarea mobilă — ce este, mecanismul și principiul de funcționare

Autor: IT Sectr Publicat: 2026-05-18 Timp de citire: 8 min

Sandboxul aplicațiilor (App Sandbox) — este un mecanism de izolare care limitează accesul aplicației la sistemul de fișiere, datele altor aplicații și resursele sistemului de operare. Fiecare aplicație rulează în propriul mediu izolat cu privilegii minime, solicitând acces la capacități suplimentare prin permisiuni. Conform Apple Security Documentation (2025), Sandbox este un element fundamental al protecției datelor pe platformele mobile. App Sandbox previne accesul neautorizat la datele utilizatorului chiar și în cazul compromiterii unei aplicații individuale.

Principalele

  • App Sandbox — mecanism de izolare a aplicațiilor care limitează accesul la sistemul de fișiere, procese și datele altor aplicații la nivelul sistemului de operare.
  • Principiul de funcționare — fiecare aplicație primește propriul director cu drepturi limitate și este lansată cu privilegii minime prin controlul obligatoriu al accesului (MAC).
  • iOS — utilizează izolarea strictă la nivelul nucleului: fiecare aplicație rulează în propriul mediu asemănător chroot cu un UID unic.
  • Android — aplică izolarea prin SELinux și separarea UID, fiecare aplicație rulează ca un utilizator Linux separat cu propriul proces și date.
  • Excepții — accesul la resurse comune (contacte, fotografii, geolocație) este posibil doar prin API-uri de sistem cu consimțământul explicit al utilizatorului.

Ce este App Sandbox?

Sandboxul aplicațiilor (App Sandbox) — este un mecanism arhitectural de securitate care izolează fiecare aplicație în propriul mediu de execuție cu acces limitat la resursele sistemului. Termenul provine din conceptul de „cutie cu nisip” pentru copii — un spațiu sigur în care copilul se poate juca fără a avea acces la obiecte periculoase. Analog, aplicația rulează într-un mediu restricționat, neavând acces la datele altor aplicații sau la componentele critice ale sistemului.

Scopul principal al Sandbox este implementarea principiului privilegiilor minime: fiecare aplicație primește doar drepturile necesare pentru îndeplinirea funcțiilor declarate. Chiar dacă un atacator găsește o vulnerabilitate în aplicație, sandboxul nu îi permite să acceseze datele altor aplicații, fotografii, contacte sau fișiere de sistem. Dauna este limitată la cadrul unei singure aplicații.

Sistemele de operare mobile au implementat sandboxurile mai devreme decât cele desktop. iOS utilizează Sandbox de la lansarea primei versiuni SDK (2008), Android — de la versiunea 1.0 (2008), dar cu întărire în Android 4.3 (2013) prin SELinux. Sistemele desktop recuperează: macOS a implementat Sandbox în 2012, Windows — aplicațiile izolate UWP în Windows 8.

Cum funcționează izolarea în sandbox?

Izolarea în sandbox este realizată printr-o combinație de mai multe mecanisme la diferite niveluri ale sistemului de operare. La nivelul sistemului de fișiere, fiecărei aplicații i se alocă un director protejat propriu la care doar ea are acces complet. La nivelul proceselor se utilizează un identificator unic de utilizator (UID) pentru fiecare aplicație. La nivelul nucleului se aplică controlul obligatoriu al accesului (MAC) prin SELinux sau mecanisme similare.

Izolarea sistemului de fișiere

Fiecare aplicație primește propriul director rădăcină în sistemul de fișiere al dispozitivului. În iOS acesta este directorul /var/mobile/Containers/Data/Application/{UUID}, în Android — /data/data/{package_name}. Aplicația poate citi și scrie fișiere doar în interiorul acestui director. Accesul la orice fișiere în afara acestui director este blocat la nivelul nucleului sistemului de operare.

Sistemul oferă, de asemenea, directoare comune speciale cu acces limitat. În iOS acestea sunt directorul Documents pentru datele utilizatorului, Library pentru setări și Caches pentru fișiere temporare. În Android — stocarea internă (getFilesDir) și stocarea externă (getExternalFilesDir), accesul la care nu necesită permisiuni suplimentare.

Izolarea proceselor și UID

În Android, fiecare aplicație rulează ca un proces Linux separat cu un UID unic (User ID). UID este atribuit la instalarea aplicației și rămâne neschimbat pe tot parcursul ciclului de viață. Procesele cu UID diferite sunt izolate unele de altele la nivelul nucleului — nu pot accesa memoria sau fișierele celuilalt. Un mecanism similar funcționează în iOS prin nucleul XNU și sistemul său de protecție.

Un nivel suplimentar de protecție în Android este asigurat de SELinux (Security-Enhanced Linux) în modul enforcing începând cu Android 4.3. SELinux implementează controlul obligatoriu al accesului (MAC): fiecare acțiune a procesului este verificată pentru conformitatea cu politica de securitate, independent de drepturile proprietarului fișierului. Chiar dacă aplicația rulează cu UID root, SELinux poate bloca accesul la anumite resurse.

Sandbox în iOS

Sandboxul iOS este considerat unul dintre cele mai stricte dintre sistemele de operare mobile. Fiecare aplicație este izolată la nivelul containerului — o zonă protejată a sistemului de fișiere la care accesul este imposibil din alte aplicații. iOS utilizează o combinație de control obligatoriu al accesului prin Sandbox Kernel Extension (Sandbox.kext) și mecanismul entitlement pentru acordarea de drepturi extinse.

Structura containerului iOS

Containerul aplicației iOS constă din mai multe directoare cu niveluri diferite de acces. Documents — pentru datele utilizatorului care se păstrează la backup prin iCloud și iTunes. Library — pentru fișiere de configurare și cache. tmp — pentru date temporare pe care sistemul le poate șterge oricând. AppName.app — pachetul aplicației în sine, care este disponibil doar pentru citire.

Accesul la datele altor aplicații este categoric interzis. iOS nu oferă API pentru citirea fișierelor din containerul altei aplicații. Singura modalitate de schimb de date este prin mecanismele de sistem: UIActivityViewController pentru partajare, UIPasteboard pentru clipboard, App Groups pentru aplicațiile aceluiași dezvoltator. Fiecare dintre aceste mecanisme funcționează sub controlul sistemului de operare.

Entitlements și App Sandbox în iOS

Capabilitățile extinse dincolo de sandboxul standard sunt oferite prin Entitlements — semnături digitale care sunt adăugate la semnătura de cod a aplicației. De exemplu, entitlement-ul com.apple.security.application-groups permite aplicațiilor dintr-un grup să aibă un container comun. Notificările Push, iCloud, Apple Pay — toate aceste funcții necesită entitlements corespunzătoare.

Este important de menționat că entitlements în iOS nu sunt același lucru cu permisiunile (permissions). Permisiunile sunt solicitate de la utilizator în runtime (de exemplu, accesul la cameră), iar entitlements sunt verificate de sistem în faza de instalare și nu pot fi modificate de utilizator. Entitlement-ul este determinat de dezvoltator și semnat de Apple în procesul de revizuire a aplicației.

Sandbox în Android

Android utilizează un model de sandbox multistrat bazat pe nucleul Linux. Fiecare aplicație rulează ca un utilizator Linux separat cu un UID unic, ceea ce asigură izolarea de bază la nivel de procese și fișiere. Straturi suplimentare — SELinux pentru controlul obligatoriu al accesului și Permissions pentru controlul accesului la API-urile sistemului.

SELinux și izolarea UID

SELinux în Android funcționează în modul enforcing, ceea ce înseamnă aplicarea obligatorie a politicilor de securitate. Fiecărei aplicații i se atribuie un context de securitate (security context), iar toate apelurile de sistem sunt verificate pentru conformitatea cu politica. SELinux în Android conține peste 1500 de reguli care acoperă sistemul de fișiere, comunicarea interproces, socket-urile și apelurile de sistem.

Izolarea UID previne accesul direct al unei aplicații la fișierele altei aplicații. De exemplu, aplicația A cu UID 10001 nu poate citi fișierele aplicației B cu UID 10002, chiar dacă ambele rulează în numele aceluiași utilizator al telefonului. Acesta este principiul de bază al securității multi-utilizator Linux, adaptat pentru dispozitive mobile.

java
// Accesul la propriul director al aplicației în Android
File appDir = context.getFilesDir();
File cacheDir = context.getCacheDir();
File externalDir = context.getExternalFilesDir(null);

// Încercarea de acces la directorul altcuiva va genera SecurityException
// File otherApp = new File("/data/data/com.other.app/shared_prefs/");

// Utilizarea FileProvider pentru partajarea sigură a fișierelor
Uri contentUri = FileProvider.getUriForFile(
    context, "com.example.fileprovider", file
);

Android oferă mecanisme suplimentare pentru schimbul securizat de date între aplicații. ContentProvider — o componentă Android care permite aplicației să ofere acces la datele sale altor aplicații printr-un URI strict definit. FileProvider — o modalitate sigură de partajare a fișierelor fără dezvăluirea căilor sistemului de fișiere.

Limitări și securitatea sandboxului

Deși App Sandbox este un mecanism puternic de protecție, are limitări fundamentale. Sandboxul protejează împotriva accesului orizontal (aplicație-la-aplicație), dar nu și împotriva celui vertical (software malițios la nivelul nucleului sau acces fizic la dispozitiv). La jailbreak sau acces root, sandboxul poate fi ocolit, deoarece atacatorul obține drepturi de superutilizator.

A doua limitare — permisiunile malițioase. Dacă utilizatorul acordă aplicației acces la contacte și microfon, sandboxul nu poate preveni colectarea acestor date, deoarece aplicația utilizează API-uri de sistem legitime. Protecția în acest caz trece la nivelul conștientizării utilizatorului și al revizuirii App Store și Google Play.

A treia limitare — interacțiunea între sandboxuri. Unele servicii de sistem (NotificationListenerService, AccessibilityService) au acces extins la datele altor aplicații. Un atacator poate folosi aceste servicii pentru a ocoli sandboxul dacă obține permisiunile corespunzătoare. Google și Apple actualizează constant politicile pentru astfel de servicii.

În ciuda limitărilor, sandboxul este o componentă critică de securitate a sistemelor de operare mobile. Conform Android Security Report (2024), izolarea sandbox previne peste 99% din încercările de acces inter-aplicații la date. În combinație cu Code Signing, App Review și permisiunile runtime, Sandbox formează protecția multistrat a unui dispozitiv mobil modern.

Întrebări frecvente

Ce este App Sandbox în cuvinte simple?

Sandboxul aplicațiilor — este un sistem de izolare în care fiecare aplicație rulează în propriul spațiu izolat, neavând acces la datele altor aplicații fără permisiunea explicită a utilizatorului.

Care este diferența dintre sandboxul iOS și Android?

iOS utilizează izolarea strictă prin container cu Sandbox.kext și entitlements. Android utilizează separarea UID la nivelul nucleului Linux și SELinux. Principiul este același, dar implementarea și flexibilitatea diferă.

Poate fi ocolit sandboxul aplicației?

Ocolirea sandboxului este posibilă doar cu jailbreak (iOS) sau acces root (Android). Pe dispozitive standard fără modificarea sistemului de operare, ocolirea sandboxului este imposibilă prin API-uri legitime.

Cum fac aplicațiile schimb de date prin sandbox?

iOS utilizează UIActivityViewController și App Groups. Android — ContentProvider, FileProvider și Intents. Toate mecanismele funcționează prin API-uri de sistem cu control de securitate.

Ce este principiul privilegiilor minime în Sandbox?

Principiul înseamnă că aplicația primește doar acele drepturi care sunt necesare pentru funcționarea sa. Accesul la resurse suplimentare este solicitat prin permisiuni și acordat de utilizator.

Concluzii

  • App Sandbox — mecanism fundamental de securitate al sistemelor de operare mobile, care izolează aplicațiile unele de altele la nivelul sistemului de fișiere și al proceselor.
  • Principiul de funcționare — fiecare aplicație primește propriul UID, director izolat și privilegii minime cu control al accesului la nivelul nucleului.
  • iOS — izolare strictă prin container cu Sandbox.kext, drepturi extinse prin entitlements, schimb de date prin controlere de sistem.
  • Android — separare UID Linux, SELinux în modul enforcing, ContentProvider și FileProvider pentru partajare sigură.
  • Excepții — serviciile de sistem (AccessibilityService) și permisiunile utilizatorului (contacte, microfon) pot ocoli parțial izolarea.
  • Limitări — sandboxul nu protejează împotriva root/jailbreak și împotriva colectării legitime de date prin API-uri permise.
  • Eficiență — previne peste 99% din încercările de acces inter-aplicații, conform Android Security Report 2024.

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și