Kotak Pasir Aplikasi dalam pengembangan mobile — apa itu, mekanisme dan prinsip kerja

Penulis: IT Sectr Diterbitkan: 2026-05-18 Waktu membaca: 8 mnt

Kotak Pasir Aplikasi (App Sandbox) — mekanisme isolasi yang membatasi akses aplikasi ke sistem file, data aplikasi lain, dan sumber daya sistem operasi. Setiap aplikasi berjalan di lingkungan terisolasi sendiri dengan hak istimewa minimal, meminta akses ke kemampuan tambahan melalui izin. Menurut Apple Security Documentation (2025), Sandbox adalah elemen fundamental perlindungan data pada platform mobile. App Sandbox mencegah akses tidak sah ke data pengguna bahkan saat aplikasi individual dikompromikan.

Poin Utama

  • App Sandbox — mekanisme isolasi aplikasi yang membatasi akses ke sistem file, proses, dan data aplikasi lain di tingkat sistem operasi.
  • Prinsip kerja — setiap aplikasi menerima direktori sendiri dengan hak terbatas dan dijalankan dengan hak istimewa minimal melalui kontrol akses wajib (MAC).
  • iOS — menggunakan isolasi ketat di tingkat kernel: setiap aplikasi berjalan di lingkungan mirip chroot sendiri dengan UID unik.
  • Android — menerapkan isolasi melalui SELinux dan pemisahan UID, setiap aplikasi berjalan sebagai pengguna Linux terpisah dengan proses dan data sendiri.
  • Pengecualian — akses ke sumber daya bersama (kontak, foto, geolokasi) hanya dimungkinkan melalui API sistem dengan persetujuan eksplisit pengguna.

Apa itu App Sandbox?

Kotak Pasir Aplikasi (App Sandbox) — mekanisme keamanan arsitektural yang mengisolasi setiap aplikasi di lingkungan eksekusi sendiri dengan akses terbatas ke sumber daya sistem. Istilah ini berasal dari konsep “kotak pasir” untuk anak-anak — ruang aman di mana anak dapat bermain tanpa akses ke benda berbahaya. Secara analogi, aplikasi berjalan di lingkungan terbatas, tanpa akses ke data aplikasi lain atau komponen sistem kritis.

Tujuan utama Sandbox adalah implementasi prinsip hak istimewa minimal: setiap aplikasi hanya menerima hak yang diperlukan untuk menjalankan fungsi yang dideklarasikan. Bahkan jika penyerang menemukan kerentanan di aplikasi, sandbox tidak memungkinkannya mengakses data aplikasi lain, foto, kontak, atau file sistem. Kerusakan terbatas pada lingkup satu aplikasi.

Sistem operasi mobile menerapkan sandbox lebih awal daripada desktop. iOS menggunakan Sandbox sejak rilis versi pertama SDK (2008), Android — sejak versi 1.0 (2008), tetapi dengan penguatan di Android 4.3 (2013) melalui SELinux. Sistem desktop menyusul: macOS menerapkan Sandbox pada tahun 2012, Windows — aplikasi UWP terisolasi di Windows 8.

Bagaimana cara kerja isolasi di sandbox?

Isolasi di sandbox dicapai melalui kombinasi beberapa mekanisme di berbagai tingkat sistem operasi. Di tingkat sistem file, setiap aplikasi diberikan direktori terlindungi sendiri yang hanya dapat diakses penuh olehnya. Di tingkat proses, pengidentifikasi pengguna unik (UID) digunakan untuk setiap aplikasi. Di tingkat kernel, kontrol akses wajib (MAC) diterapkan melalui SELinux atau mekanisme serupa.

Isolasi sistem file

Setiap aplikasi menerima direktori root sendiri di sistem file perangkat. Di iOS ini adalah direktori /var/mobile/Containers/Data/Application/{UUID}, di Android — /data/data/{package_name}. Aplikasi hanya dapat membaca dan menulis file di dalam direktori ini. Akses ke file apa pun di luar direktori ini diblokir di tingkat kernel sistem operasi.

Sistem juga menyediakan direktori bersama khusus dengan akses terbatas. Di iOS ini adalah direktori Documents untuk data pengguna, Library untuk pengaturan, dan Caches untuk file sementara. Di Android — penyimpanan internal (getFilesDir) dan penyimpanan eksternal (getExternalFilesDir), yang aksesnya tidak memerlukan izin tambahan.

Isolasi proses dan UID

Di Android, setiap aplikasi dijalankan sebagai proses Linux terpisah dengan UID unik (User ID). UID ditetapkan saat instalasi aplikasi dan tetap tidak berubah sepanjang siklus hidup. Proses dengan UID berbeda diisolasi satu sama lain di tingkat kernel — mereka tidak dapat mengakses memori atau file satu sama lain. Mekanisme serupa bekerja di iOS melalui kernel XNU dan sistem perlindungannya.

Tingkat perlindungan tambahan di Android disediakan oleh SELinux (Security-Enhanced Linux) dalam mode enforcing sejak Android 4.3. SELinux mengimplementasikan kontrol akses wajib (MAC): setiap tindakan proses diperiksa kesesuaiannya dengan kebijakan keamanan terlepas dari hak pemilik file. Bahkan jika aplikasi berjalan dengan UID root, SELinux dapat memblokir akses ke sumber daya tertentu.

Sandbox di iOS

Sandbox iOS dianggap sebagai salah satu yang paling ketat di antara sistem operasi mobile. Setiap aplikasi diisolasi di tingkat kontainer — area sistem file yang dilindungi yang tidak dapat diakses dari aplikasi lain. iOS menggunakan kombinasi kontrol akses wajib melalui Sandbox Kernel Extension (Sandbox.kext) dan mekanisme entitlement untuk memberikan hak yang diperluas.

Struktur kontainer iOS

Kontainer aplikasi iOS terdiri dari beberapa direktori dengan tingkat akses berbeda. Documents — untuk data pengguna yang disimpan saat pencadangan melalui iCloud dan iTunes. Library — untuk file konfigurasi dan cache. tmp — untuk data sementara yang dapat dihapus sistem kapan saja. AppName.app — paket aplikasi itu sendiri, yang hanya dapat dibaca.

Akses ke data aplikasi lain dilarang keras. iOS tidak menyediakan API untuk membaca file dari kontainer aplikasi lain. Satu-satunya cara pertukaran data adalah melalui mekanisme sistem: UIActivityViewController untuk berbagi, UIPasteboard untuk clipboard, App Groups untuk aplikasi pengembang yang sama. Setiap mekanisme ini bekerja di bawah kendali sistem operasi.

Entitlements dan App Sandbox di iOS

Kemampuan yang diperluas di luar sandbox standar disediakan melalui Entitlements — tanda tangan digital yang ditambahkan ke tanda tangan kode aplikasi. Misalnya, entitlement com.apple.security.application-groups memungkinkan aplikasi dalam satu grup memiliki kontainer bersama. Notifikasi Push, iCloud, Apple Pay — semua fitur ini memerlukan entitlements yang sesuai.

Penting untuk dicatat bahwa entitlements di iOS tidak sama dengan izin (permissions). Izin diminta dari pengguna saat runtime (misalnya, akses ke kamera), sedangkan entitlements diperiksa oleh sistem pada tahap instalasi dan tidak dapat diubah oleh pengguna. Entitlement ditentukan oleh pengembang dan ditandatangani oleh Apple dalam proses peninjauan aplikasi.

Sandbox di Android

Android menggunakan model sandbox berlapis yang didasarkan pada kernel Linux. Setiap aplikasi berjalan sebagai pengguna Linux terpisah dengan UID unik, yang menyediakan isolasi dasar di tingkat proses dan file. Lapisan tambahan — SELinux untuk kontrol akses wajib dan Permissions untuk kontrol akses ke API sistem.

SELinux dan isolasi UID

SELinux di Android berjalan dalam mode enforcing, yang berarti penerapan kebijakan keamanan secara wajib. Setiap aplikasi diberi konteks keamanan (security context), dan semua panggilan sistem diperiksa kesesuaiannya dengan kebijakan. SELinux di Android berisi lebih dari 1500 aturan yang mencakup sistem file, komunikasi antarproses, soket, dan panggilan sistem.

Isolasi UID mencegah akses langsung aplikasi ke file aplikasi lain. Misalnya, aplikasi A dengan UID 10001 tidak dapat membaca file aplikasi B dengan UID 10002, bahkan jika keduanya berjalan atas nama pengguna telepon yang sama. Ini adalah prinsip dasar keamanan multi-pengguna Linux yang diadaptasi untuk perangkat mobile.

java
// Akses ke direktori sendiri aplikasi di Android
File appDir = context.getFilesDir();
File cacheDir = context.getCacheDir();
File externalDir = context.getExternalFilesDir(null);

// Upaya mengakses direktori orang lain akan menyebabkan SecurityException
// File otherApp = new File("/data/data/com.other.app/shared_prefs/");

// Menggunakan FileProvider untuk berbagi file yang aman
Uri contentUri = FileProvider.getUriForFile(
    context, "com.example.fileprovider", file
);

Android menyediakan mekanisme tambahan untuk pertukaran data yang aman antar aplikasi. ContentProvider — komponen Android yang memungkinkan aplikasi menyediakan akses ke datanya kepada aplikasi lain melalui URI yang ditentukan secara ketat. FileProvider — cara aman untuk berbagi file tanpa mengungkapkan jalur sistem file.

Keterbatasan dan keamanan sandbox

Meskipun App Sandbox adalah mekanisme perlindungan yang kuat, ia memiliki keterbatasan fundamental. Sandbox melindungi dari akses horizontal (aplikasi-ke-aplikasi), tetapi tidak dari akses vertikal (malware di tingkat kernel atau akses fisik ke perangkat). Pada jailbreak atau akses root, sandbox dapat dilewati karena penyerang mendapatkan hak superuser.

Keterbatasan kedua — izin berbahaya. Jika pengguna memberikan akses aplikasi ke kontak dan mikrofon, sandbox tidak dapat mencegah pengumpulan data ini karena aplikasi menggunakan API sistem yang sah. Perlindungan dalam kasus ini beralih ke tingkat kesadaran pengguna dan peninjauan App Store serta Google Play.

Keterbatasan ketiga — interaksi antar sandbox. Beberapa layanan sistem (NotificationListenerService, AccessibilityService) memiliki akses yang diperluas ke data aplikasi lain. Penyerang dapat menggunakan layanan ini untuk melewati sandbox jika mendapatkan izin yang sesuai. Google dan Apple terus memperbarui kebijakan untuk layanan tersebut.

Meskipun memiliki keterbatasan, sandbox adalah komponen keamanan kritis sistem operasi mobile. Menurut Android Security Report (2024), isolasi sandbox mencegah lebih dari 99% upaya akses antar-aplikasi ke data. Dalam kombinasi dengan Code Signing, App Review, dan izin runtime, Sandbox membentuk perlindungan berlapis perangkat mobile modern.

Pertanyaan yang Sering Diajukan

Apa itu App Sandbox dengan kata sederhana?

Kotak Pasir Aplikasi — sistem isolasi di mana setiap aplikasi berjalan di ruang terisolasi sendiri, tanpa akses ke data aplikasi lain tanpa izin eksplisit pengguna.

Apa perbedaan sandbox di iOS dan Android?

iOS menggunakan isolasi kontainer ketat melalui Sandbox.kext dan entitlements. Android menggunakan pemisahan UID di tingkat kernel Linux dan SELinux. Prinsipnya sama, tetapi implementasi dan fleksibilitasnya berbeda.

Bisakah sandbox aplikasi dilewati?

Melewati sandbox hanya mungkin dilakukan dengan jailbreak (iOS) atau akses root (Android). Pada perangkat standar tanpa modifikasi OS, melewati sandbox tidak mungkin dilakukan melalui API yang sah.

Bagaimana aplikasi bertukar data melalui sandbox?

iOS menggunakan UIActivityViewController dan App Groups. Android — ContentProvider, FileProvider, dan Intents. Semua mekanisme bekerja melalui API sistem dengan kontrol keamanan.

Apa prinsip hak istimewa minimal di Sandbox?

Prinsip ini berarti aplikasi hanya menerima hak yang diperlukan untuk operasinya. Akses ke sumber daya tambahan diminta melalui izin dan diberikan oleh pengguna.

Kesimpulan

  • App Sandbox — mekanisme keamanan fundamental sistem operasi mobile yang mengisolasi aplikasi satu sama lain di tingkat sistem file dan proses.
  • Prinsip kerja — setiap aplikasi menerima UID sendiri, direktori terisolasi, dan hak istimewa minimal dengan kontrol akses di tingkat kernel.
  • iOS — isolasi kontainer ketat melalui Sandbox.kext, hak yang diperluas melalui entitlements, pertukaran data melalui kontroler sistem.
  • Android — pemisahan UID Linux, SELinux dalam mode enforcing, ContentProvider dan FileProvider untuk berbagi aman.
  • Pengecualian — layanan sistem (AccessibilityService) dan izin pengguna (kontak, mikrofon) dapat sebagian melewati isolasi.
  • Keterbatasan — sandbox tidak melindungi dari root/jailbreak dan dari pengumpulan data sah melalui API yang diizinkan.
  • Efektivitas — mencegah lebih dari 99% upaya akses antar-aplikasi, menurut Android Security Report 2024.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga