Apa itu sandbox?

Sandbox adalah lingkungan pengujian yang terisolasi, memungkinkan pengguna menjalankan program atau membuka file tanpa memengaruhi aplikasi, sistem, atau platform tempat program tersebut dijalankan.

Para pengembang perangkat lunak menggunakan sandbox untuk menguji kode pemrograman baru, sementara profesional keamanan siber memanfaatkannya untuk menguji perangkat lunak atau file yang berpotensi berbahaya. Tanpa sandboxing, software atau aplikasi bisa saja memiliki akses tak terbatas ke seluruh data pengguna dan sumber daya sistem dalam suatu jaringan.

Tim keamanan juga menggunakan sandbox untuk mengeksekusi kode berbahaya dengan aman agar tidak merusak perangkat host, jaringan, atau perangkat lain yang terhubung. Menggunakan sandbox untuk mendeteksi malware memberikan lapisan perlindungan tambahan terhadap ancaman keamanan, seperti serangan tersembunyi dan eksploitasi yang memanfaatkan kerentanan zero-day.

Pentingnya sandbox

Seiring dengan semakin canggihnya malware, sangat penting bagi para profesional keamanan siber untuk memiliki lingkungan pengujian yang aman dan terisolasi. Sandbox menyediakan ruang virtual yang aman bagi para peneliti malware dan lainnya untuk mengevaluasi file atau aplikasi mencurigakan tanpa membahayakan endpoint maupun jaringan.

Ancaman siber yang lebih canggih sering menggunakan teknik obfuscation yang bisa menghindari deteksi oleh produk keamanan endpoint maupun jaringan. Oleh karena itu, penting bagi peneliti untuk memeriksa file mencurigakan demi meningkatkan infrastruktur keamanan organisasi.

Penggunaan sandbox

Secara umum, sandbox digunakan untuk menguji program atau membuka file tanpa memengaruhi sistem secara keseluruhan. Pengembang dan peneliti keamanan menggunakan sandbox untuk alasan yang serupa. Pengembang menggunakannya untuk memastikan bahwa kode atau aplikasi baru berjalan seperti yang diharapkan dan untuk menemukan bug sebelum dipublikasikan ke lingkungan produksi. Sementara peneliti keamanan menggunakannya untuk mengamati bagaimana malware dan aplikasi mencurigakan berjalan serta menyerang lingkungan IT tanpa membahayakan sistem secara keseluruhan.

Sandboxing juga merupakan fitur penting dalam bahasa dan lingkungan pemrograman Java, di mana sandbox adalah area program dan sekumpulan aturan yang harus digunakan oleh programmer saat membuat kode Java — yang disebut applet — yang dikirim sebagai bagian dari halaman web.

Sandbox API ditujukan untuk pengembang dan penguji API. Sandbox ini meniru karakteristik lingkungan produksi untuk menciptakan respons simulasi yang mencerminkan perilaku sistem nyata.

Sandboxing dalam Java

Applet Java secara otomatis dikirim ke browser pengguna sebagai bagian dari transmisi halaman web dan bisa langsung dijalankan. Tanpa perlindungan tambahan, kode yang buggy atau berbahaya bisa berjalan tanpa batasan dan menimbulkan kerusakan. Dengan sandbox, kode tersebut dapat diisolasi untuk melindungi sistem dari serangan atau bug yang bisa mengakses memori atau layanan OS secara bebas. Sandbox ini menetapkan batasan ketat pada sumber daya sistem yang bisa diminta atau diakses oleh sebuah applet.

Sandbox Java terdiri dari area program dan aturan-aturan yang wajib diikuti oleh programmer saat membuat kode Java untuk konten web. Batasan sandbox ini ibarat arena bermain kecil tempat applet bisa ‘bermain’ dengan bebas, tapi tidak boleh keluar dari batas tersebut. Analogi ini mirip dengan anak-anak yang bebas bermain di kotak pasir nyata, tapi tetap dalam batas yang telah ditentukan.

Sandbox tidak hanya ditegakkan melalui aturan yang harus diikuti programmer, tetapi juga dengan bantuan pemeriksa kode. Bahasa Java itu sendiri punya fitur-fitur seperti manajemen memori otomatis, garbage collection, dan pemeriksaan rentang alamat dalam string dan array, yang secara alami membantu memastikan kode yang aman.

Kode Java yang telah dikompilasi, disebut bytecode, dilengkapi dengan verifier untuk memastikan kepatuhan terhadap batasan tertentu. Java juga menyediakan namespace lokal untuk membatasi akses kode. VM Java — lapisan yang mengeksekusi bytecode Java di platform tertentu — juga mengatur akses terhadap sumber daya sistem dan membatasi kode sandbox.

Pada model keamanan sandbox awal, kode sandbox umumnya disebut sebagai kode tidak dipercaya. Di versi-versi selanjutnya dari Java Development Kit (JDK), model sandbox ini ditingkatkan dengan memperkenalkan beberapa level kepercayaan yang bisa diatur oleh pengguna terhadap kode sandbox. Semakin tinggi kepercayaan yang diberikan, semakin banyak kemampuan kode untuk “bermain” di luar sandbox.

Di versi JDK 1.1, konsep signed applet diperkenalkan. Applet yang disertai tanda tangan digital dapat dianggap sebagai kode terpercaya yang diizinkan berjalan jika browser klien mengenali tanda tangannya.

Di JDK 2.0, Java memperkenalkan mekanisme pemberian level kepercayaan yang berbeda pada semua kode aplikasi, baik yang dimuat secara lokal maupun dari internet. Mekanisme ini memungkinkan adanya kebijakan keamanan yang menyaring semua kode saat dieksekusi, baik yang ditandatangani maupun tidak.

Manfaat menggunakan sandbox

Menguji perubahan perangkat lunak di dalam sandbox sebelum masuk ke lingkungan produksi bisa mengurangi risiko terjadinya gangguan yang tidak diinginkan.

Sandboxing juga berguna untuk mengkarantina ancaman zero-day yang mengeksploitasi celah keamanan yang belum dilaporkan. Meskipun tidak bisa menjamin 100% keberhasilan dalam menghentikan ancaman ini, sandbox tetap memberikan lapisan perlindungan tambahan dengan memisahkan ancaman dari jaringan utama. Ketika virus dan ancaman berhasil dikarantina, para ahli keamanan dapat mempelajarinya untuk mengenali pola serangan, mencegah serangan di masa depan, dan mengidentifikasi kerentanan lainnya.

Sandboxing melengkapi program keamanan lainnya, seperti pemantauan perilaku dan antivirus. Sandbox memberikan perlindungan ekstra terhadap jenis malware tertentu yang mungkin tidak terdeteksi oleh antivirus biasa. Malware yang lebih canggih bahkan bisa memeriksa apakah ia berjalan dalam sandbox sebelum mengeksekusi aksinya.

Contoh penggunaan sandbox

Sandbox bisa digunakan untuk mengisolasi eksekusi kode dalam hampir semua situasi. Beberapa contoh spesifik penggunaan sandbox antara lain:

  • Browser web. Browser terpercaya bisa dijalankan dalam sandbox. Jika sebuah situs mengeksploitasi celah di browser tersebut, kerusakan hanya terbatas di dalam sandbox.
  • Beberapa tools memungkinkan pengguna menjalankan software yang tidak terpercaya dalam sandbox agar tidak bisa mengakses data pribadi atau merusak perangkat. Karena sandbox terlihat seperti sistem lengkap, software biasanya tidak sadar bahwa ia berada di lingkungan virtual.
  • Riset keamanan. Profesional keamanan informasi menggunakan sandbox untuk riset atau mendeteksi kode berbahaya. Contohnya, sebuah tool keamanan bisa mengunjungi situs web untuk memantau file apa saja yang berubah atau menginstal dan menjalankan software tertentu. Windows Defender memungkinkan pengguna menjalankan antivirus dalam sandbox.
  • Virtualisasi. VM (virtual machine) pada dasarnya juga merupakan bentuk sandbox. Pendekatan ini menggunakan sandbox berbasis VM untuk mengisolasi dan menganalisis program mencurigakan.

Aplikasi sandbox

Aplikasi sandbox antara lain:

  • Konten plugin browser seperti Microsoft Silverlight dan Adobe Flash (yang kini sudah tidak digunakan lagi) pernah mengandalkan sandbox untuk menyaring konten yang dimuat. Meski begitu, jenis konten seperti ini dikenal cukup sulit diamankan. Kini, banyak publisher beralih ke HTML5 yang menyediakan atribut sandbox untuk menonaktifkan fitur berisiko di browser.
  • File PDF dan dokumen lainnya bisa menyertakan kode eksekusi. Mode Terproteksi di Adobe Reader menjalankan file PDF dalam sandbox agar tidak bisa mengakses sistem. Microsoft Office juga punya mode sandbox untuk mencegah makro berbahaya. Pengguna Windows juga bisa memakai fitur Windows Sandbox bawaan.
  • Aplikasi mobile umumnya dijalankan dalam sandbox oleh platform seperti iOS, Android, dan Windows. Aplikasi ini tidak diizinkan mengakses sistem seperti aplikasi desktop. Misalnya, untuk mengakses lokasi pengguna, aplikasi harus meminta izin terlebih dahulu. Sandbox juga mencegah aplikasi saling mengganggu satu sama lain.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *