Mobil inkişafda tətbiq sandboksu — bu nədir, mexanizmi və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-05-18 Oxuma vaxtı: 8 dəq

Tətbiq sandboksu (App Sandbox) — tətbiqin fayl sisteminə, digər tətbiqlərin məlumatlarına və əməliyyat sisteminin sistem resurslarına girişini məhdudlaşdıran izolyasiya mexanizmidir. Hər bir tətbiq minimal imtiyazlarla öz izolyasiya edilmiş mühitində işləyir və əlavə imkanlara girişi icazələr vasitəsilə tələb edir. Apple Security Documentation (2025)-a görə, Sandbox mobil platformalarda məlumatların qorunmasının fundamental elementidir. App Sandbox ayrı bir tətbiqin komprometasiyası zamanı belə istifadəçi məlumatlarına icazəsiz girişin qarşısını alır.

Vacib olanlar

  • App Sandbox — əməliyyat sistemi səviyyəsində tətbiqlərin fayl sisteminə, proseslərə və digər tətbiqlərin məlumatlarına girişini məhdudlaşdıran izolyasiya mexanizmidir.
  • İş prinsipi — hər bir tətbiq məhdud hüquqlarla öz kataloqunu alır və məcburi giriş nəzarəti (MAC) vasitəsilə minimal imtiyazlarla işə salınır.
  • iOS — nüvə səviyyəsində ciddi izolyasiyadan istifadə edir: hər bir tətbiq unikal UID ilə öz chroot-oxşar mühitində işləyir.
  • Android — SELinux və UID bölgüsü vasitəsilə izolyasiya tətbiq edir, hər bir tətbiq öz prosesi və məlumatları ilə ayrı bir Linux istifadəçisi kimi işə salınır.
  • İstisnalar — ümumi resurslara (kontaktlar, fotolar, geolokasiya) giriş yalnız sistem API-ləri vasitəsilə istifadəçinin açıq razılığı ilə mümkündür.

App Sandbox nədir?

Tətbiq sandboksu (App Sandbox) — hər bir tətbiqi sistem resurslarına məhdud girişlə öz icra mühitində təcrid edən memarlıq təhlükəsizlik mexanizmidir. Termin uşaqlar üçün «qum qutusu» konsepsiyasından gəlir — uşağın təhlükəli əşyalara girişi olmadan oynaya biləcəyi təhlükəsiz məkan. Bənzər şəkildə, tətbiq digər tətbiqlərin məlumatlarına və ya kritik sistem komponentlərinə girişi olmayan məhdud mühitdə işləyir.

Sandbox-un əsas məqsədi minimal imtiyazlar prinsipini həyata keçirməkdir: hər bir tətbiq yalnız bəyan edilmiş funksiyaları yerinə yetirmək üçün zəruri olan hüquqları alır. Hücumçu tətbiqdə zəiflik tapsa belə, sandbox ona digər tətbiqlərin məlumatlarına, fotolara, kontaktlara və ya sistem fayllarına giriş əldə etməyə imkan vermir. Zərər bir tətbiq çərçivəsi ilə məhdudlaşır.

Mobil əməliyyat sistemləri sandboksları desktop sistemlərdən daha əvvəl tətbiq etdilər. iOS SDK-nın ilk versiyasından (2008) etibarən Sandbox-dan istifadə edir, Android — 1.0 versiyasından (2008), lakin Android 4.3 (2013)-də SELinux vasitəsilə gücləndirilməklə. Desktop sistemlər yetişirlər: macOS 2012-ci ildə Sandbox-ı tətbiq etdi, Windows — Windows 8-də izolyasiya edilmiş UWP tətbiqləri.

Sandbokda izolyasiya necə işləyir?

Sandbokda izolyasiya əməliyyat sisteminin müxtəlif səviyyələrində bir neçə mexanizmin birləşməsi ilə əldə edilir. Fayl sistemi səviyyəsində hər bir tətbiqə yalnız onun tam girişi olan öz qorunan kataloqu ayrılır. Proses səviyyəsində hər bir tətbiq üçün unikal istifadəçi identifikatoru (UID) istifadə olunur. Nüvə səviyyəsində SELinux və ya oxşar mexanizmlər vasitəsilə məcburi giriş nəzarəti (MAC) tətbiq edilir.

Fayl sisteminin izolyasiyası

Hər bir tətbiq cihazın fayl sistemində öz kök kataloqunu alır. iOS-da bu /var/mobile/Containers/Data/Application/{UUID} kataloqu, Android-də isə /data/data/{package_name} kataloqudur. Tətbiq yalnız bu kataloq daxilində faylları oxuya və yaza bilər. Bu kataloqdan kənarda olan hər hansı fayla giriş əməliyyat sistemi nüvəsi səviyyəsində bloklanır.

Sistem həmçinin məhdud girişli xüsusi ümumi kataloqlar təqdim edir. iOS-da bunlar istifadəçi məlumatları üçün Documents kataloqu, parametrlər üçün Library və müvəqqəti fayllar üçün Caches-dir. Android-də — daxili yaddaş (getFilesDir) və əlavə icazə tələb etməyən xarici yaddaş (getExternalFilesDir).

Proseslərin və UID-in izolyasiyası

Android-də hər bir tətbiq unikal UID (User ID) ilə ayrı bir Linux prosesi kimi işə salınır. UID tətbiqin quraşdırılması zamanı təyin edilir və bütün həyat dövrü boyunca dəyişməz qalır. Müxtəlif UID-ləri olan proseslər nüvə səviyyəsində bir-birindən təcrid olunur — onlar bir-birinin yaddaşına və ya fayllarına giriş əldə edə bilməzlər. Oxşar mexanizm iOS-da XNU nüvəsi və onun mühafizə sistemi vasitəsilə işləyir.

Android-də əlavə qoruma səviyyəsini Android 4.3 versiyasından enforcing rejimində SELinux (Security-Enhanced Linux) təmin edir. SELinux məcburi giriş nəzarətini (MAC) həyata keçirir: prosesin hər bir hərəkəti fayl sahibinin hüquqlarından asılı olmayaraq təhlükəsizlik siyasətinə uyğunluq baxımından yoxlanılır. Tətbiq root UID ilə işləsə belə, SELinux müəyyən resurslara girişi bloklaya bilər.

iOS-da sandbox

iOS sandboksu mobil əməliyyat sistemləri arasında ən ciddi olanlardan biri hesab olunur. Hər bir tətbiq konteyner səviyyəsində təcrid olunur — digər tətbiqlərdən girişi mümkün olmayan qorunan fayl sistemi sahəsi. iOS Sandbox Kernel Extension (Sandbox.kext) vasitəsilə məcburi giriş nəzarətinin birləşməsindən və genişləndirilmiş hüquqların verilməsi üçün entitlement mexanizmindən istifadə edir.

iOS konteyner strukturu

iOS tətbiqinin konteyneri müxtəlif giriş səviyyələrinə malik bir neçə kataloqdan ibarətdir. Documents — iCloud və iTunes vasitəsilə ehtiyat köçürmə zamanı saxlanılan istifadəçi məlumatları üçün. Library — konfiqurasiya faylları və keş üçün. tmp — sistemin istənilən vaxt silə biləcəyi müvəqqəti məlumatlar üçün. AppName.app — yalnız oxunmaq üçün açıq olan tətbiq paketinin özü.

Digər tətbiqlərin məlumatlarına giriş qəti qadağandır. iOS başqa tətbiqin konteynerindən faylları oxumaq üçün API təqdim etmir. Məlumat mübadiləsinin yeganə yolu sistem mexanizmləridir: paylaşma üçün UIActivityViewController, bufer üçün UIPasteboard, bir tərtibatçının tətbiqləri üçün App Groups. Bu mexanizmlərin hər biri əməliyyat sisteminin nəzarəti altında işləyir.

iOS-da Entitlements və App Sandbox

Standart sandbokdan kənarda genişləndirilmiş imkanlar Entitlements vasitəsilə təmin edilir — tətbiqin kod imzasına əlavə edilən rəqəmsal imzalar. Məsələn, com.apple.security.application-groups entitlement-ı bir qrupdakı tətbiqlərə ümumi konteynerə sahib olmağa imkan verir. Push bildirişləri, iCloud, Apple Pay — bütün bu funksiyalar müvafiq entitlements tələb edir.

Qeyd etmək vacibdir ki, iOS-da entitlements icazələrlə (permissions) eyni şey deyil. İcazələr iş vaxtı istifadəçidən tələb olunur (məsələn, kameraya giriş), entitlements isə quraşdırma mərhələsində sistem tərəfindən yoxlanılır və istifadəçi tərəfindən dəyişdirilə bilməz. Entitlement tərtibatçı tərəfindən müəyyən edilir və tətbiqin baxış prosesi zamanı Apple tərəfindən imzalanır.

Android-də sandbox

Android Linux nüvəsinə əsaslanan çoxqat sandbox modelindən istifadə edir. Hər bir tətbiq unikal UID ilə ayrı bir Linux istifadəçisi kimi işləyir ki, bu da proses və fayl səviyyəsində əsas izolyasiyanı təmin edir. Əlavə qatlar — məcburi giriş nəzarəti üçün SELinux və sistem API-lərinə girişi idarə etmək üçün Permissions.

SELinux və UID izolyasiyası

Android-də SELinux enforcing rejimində işləyir, yəni təhlükəsizlik siyasətlərinin məcburi tətbiqi deməkdir. Hər bir tətbiqə təhlükəsizlik konteksti (security context) təyin edilir və bütün sistem çağırışları siyasətə uyğunluq baxımından yoxlanılır. Android-də SELinux fayl sistemini, proseslərarası çağırışları, soketləri və sistem çağırışlarını əhatə edən 1500-dən çox qaydadan ibarətdir.

UID izolyasiyası tətbiqin digər tətbiqin fayllarına birbaşa girişinin qarşısını alır. Məsələn, UID 10001 olan A tətbiqi UID 10002 olan B tətbiqinin fayllarını oxuya bilməz, hər ikisi eyni telefon istifadəçisi adından işləsə belə. Bu, mobil cihazlar üçün uyğullaşdırılmış Linux-un çoxistifadəçi təhlükəsizliyinin əsas prinsipidir.

java
// Android-də tətbiqin öz kataloquna giriş
File appDir = context.getFilesDir();
File cacheDir = context.getCacheDir();
File externalDir = context.getExternalFilesDir(null);

// Başqasının kataloquna giriş cəhdi SecurityException yaradacaq
// File otherApp = new File("/data/data/com.other.app/shared_prefs/");

// Faylların təhlükəsiz paylaşılması üçün FileProvider-dan istifadə
Uri contentUri = FileProvider.getUriForFile(
    context, "com.example.fileprovider", file
);

Android tətbiqlər arasında təhlükəsiz məlumat mübadiləsi üçün əlavə mexanizmlər təqdim edir. ContentProvider — tətbiqə öz məlumatlarına ciddi müəyyən edilmiş URI vasitəsilə girişi təmin etməyə imkan verən Android komponenti. FileProvider — fayl sistemi yollarını açmadan faylları paylaşmağın təhlükəsiz yolu.

Sandbokun məhdudiyyətləri və təhlükəsizliyi

App Sandbox güclü mühafizə mexanizmi olsa da, onun fundamental məhdudiyyətləri var. Sandbox üfqi girişdən (tətbiqdən-tətbiqə) qoruyur, lakin şaquli girişdən (nüvə səviyyəsində zırarlı proqram və ya cihaza fiziki giriş) qorumur. Jailbreak və ya root girişi zamanı sandbox yan keçilə bilər, çünki hücumçu superistifadəçi hüquqları əldə edir.

İkinci məhdudiyyət — zırarlı icazələr. İstifadəçi tətbiqə kontaktlara və mikrofona giriş verərsə, sandbox bu məlumatların toplanmasının qarşısını ala bilməz, çünki tətbiq qanuni sistem API-lərindən istifadə edir. Bu halda mühafizə istifadəçi məlumatlılığı və App Store və Google Play baxışı səviyyəsinə keçir.

Üçüncü məhdudiyyət — sandbokslar arasında qarşılıqlı əlaqə. Bəzi sistem xidmətləri (NotificationListenerService, AccessibilityService) digər tətbiqlərin məlumatlarına genişləndirilmiş girişə malikdir. Hücumçu müvafiq icazələri əldə edərsə, bu xidmətlərdən sandbox-u yan keçmək üçün istifadə edə bilər. Google və Apple bu cür xidmətlər üçün siyasətləri daim yeniləyir.

Məhdudiyyətlərə baxmayaraq, sandbox mobil əməliyyat sistemlərinin kritik təhlükəsizlik komponentidir. Android Security Report (2024)-a görə, sandbox izolyasiyası tətbiqlərarası məlumat girişi cəhdlərinin 99%-dən çoxunun qarşısını alır. Code Signing, App Review və runtime permissions ilə birlikdə Sandbox müasir mobil cihazın çoxqat mühafizəsini formalaşdırır.

Tez-tez verilən suallar

App Sandbox sadə sözlərlə nədir?

Tətbiq sandboksu — hər bir tətbiqin istifadəçinin açıq razılığı olmadan digər tətbiqlərin məlumatlarına girişi olmayan öz izolyasiya edilmiş məkanında işlədiyi izolyasiya sistemidir.

iOS və Android sandboksu arasındakı fərq nədir?

iOS Sandbox.kext və entitlements vasitəsilə ciddi konteyner izolyasiyasından istifadə edir. Android Linux nüvə səviyyəsində UID bölgüsü və SELinux-dan istifadə edir. Prinsip eynidir, lakin tətbiq və çeviklik fərqlidir.

Tətbiq sandboksu yan keçilə bilərmi?

Sandbox-un yan keçilməsi yalnız jailbreak (iOS) və ya root girişi (Android) ilə mümkündür. ƏS modifikasiyası olmayan standart cihazlarda sandbox-un qanuni API-lər vasitəsilə yan keçilməsi mümkün deyil.

Tətbiqlər sandbox vasitəsilə məlumatları necə mübadilə edir?

iOS UIActivityViewController və App Groups-dan istifadə edir. Android — ContentProvider, FileProvider və Intents. Bütün mexanizmlər təhlükəsizlik nəzarəti ilə sistem API-ləri vasitəsilə işləyir.

Sandbox-da minimal imtiyazlar prinsipi nə deməkdir?

Prinsip o deməkdir ki, tətbiq yalnız işi üçün zəruri olan hüquqları alır. Əlavə resurslara giriş icazələr vasitəsilə tələb olunur və istifadəçi tərəfindən təmin edilir.

Xülasə

  • App Sandbox — tətbiqləri fayl sistemi və proses səviyyəsində bir-birindən təcrid edən mobil ƏS-lərin fundamental təhlükəsizlik mexanizmi.
  • İş prinsipi — hər bir tətbiq öz UID-sini, izolyasiya edilmiş kataloqunu və nüvə səviyyəsində giriş nəzarəti ilə minimal imtiyazları alır.
  • iOS — Sandbox.kext vasitəsilə ciddi konteyner izolyasiyası, entitlements ilə genişləndirilmiş hüquqlar, sistem kontrollerləri vasitəsilə məlumat mübadiləsi.
  • Android — Linux UID bölgüsü, enforcing rejimində SELinux, təhlükəsiz paylaşma üçün ContentProvider və FileProvider.
  • İstisnalar — sistem xidmətləri (AccessibilityService) və istifadəçi icazələri (kontaktlar, mikrofon) izolyasiyanı qismən yan keçə bilər.
  • Məhdudiyyətlər — sandbox root/jailbreak-dən və icazə verilmiş API-lər vasitəsilə qanuni məlumat toplanmasından qorumur.
  • Səmərəlilik — Android Security Report 2024-ə görə, tətbiqlərarası giriş cəhdlərinin 99%-dən çoxunun qarşısını alır.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun