Teknik Introspeksi Hypervisor Sebagai Bentuk Pengembangan Teknik Instrospeksi Mesin Virtual

Latar Belakang Teknik Instrospeksi Hypervisor

Teknik instrospeksi hypervisor berasal dari teknik introspeksi mesin virtual (VMI). VMI merupakan sebuah teknik yang dapat memantau mesin virtual dalam lapisan hypervisor [2]. VMI menyediakan akses level rendah terperinci dari mesin virtual. VMI dapat dilakukan oleh hypervisor atau mesin virtual yang terisolasi. Inspeksi dilakukan terhadap kondisi (CPU register, memory, devais) dan aktivitas dari mesin virtual yang berjalan atau sistem operasi tamu.

Konsep VMI berasal dari sebuah sistem pendeteksi intrusi (IDS) yang menggabungkan kelebihan dari sistem berbasis jaringan dan berbasis inang. Aplikasi berbasis VMI memiliki sifat resistensi tamper, efisien dalam memeriksa aktivitas dan kondisi sistem operasi, memiliki pandangan yang lengkap dan dapat memodifikasi serta menginterupsi kondisi dan aktivitas sistem operasi. Hal tersebut dimungkinkan oleh adanya hypervisor yang terletak di antara lapisan perangkat keras dan sistem operasi.

VMI 1
Gambar 1. Penerapan teknik VMI

Tantangan yang muncul dari penggunaan teknik VMI adalah kesenjangan semantik. Hypervisor melihat sistem operasi tamu sebagai kumpulan bit dan byte dengan tambahan informasi berupa daftar perangkat keras. Pada tingkat hypervisor tidak ada abtraksi sistem operasi dan tidak ada semantik dengan peringkat yang tinggi seperti proses, berkas, socket dan struktur data. Beberapa penelitian telah difokuskan untuk menciptakan sejumlah semantik berperingkat tinggi yang dapat memeriksa kondisi dan aktivitas yang mencurigakan dari aplikasi sasaran.

Terdapat 4 kategori besar teknik VMI berdasarkan cara informasi semantik didapatkan [2]:

Di dalam mesin virtual (In-VM)

Dalam teknik ini, hypervisor berkoordinasi dengan agen yang terletak di dalam mesin virtual ketika melakukan pemantauan agar terhindar dari masalah kesenjangan semantik. Terdapat 2 sistem yang dikembangkan yaitu Lares dan kerangka kerja SIM. Di dalam Lares, hypervisor menginjeksi hook ke dalam komponen kernel yang menjadi sasaran pemantauan. Setiap hook membangkitkan handler ketika aktivitas yang terpantau dijalankan. Handler tersebut juga diinjeksi oleh hypervisor. Informasi yang berasal dari aktivitas terpantau dikirim ke hypervisor melalui sarana hypercall. Hypervisor melindungi hook dan handler yang terinjeksi dengan menggunakan proteksi tulis dari bagian memory tempat hook dan handler berada. Di dalam kerangka kerja SIM, mekanisme yang terjadi hampir sama, perbedaannya terdapat pada penggunaan bagian memory yang aman untuk menyimpan informasi aktivitas yang terpantau. Bagian memory tersebut hanya dapat diakses oleh hypervisor atau mesin virtual yang berfungsi sebagai pemantau. Kelemahan dari teknik ini berasal dari keterbatasan agen di dalam mesin virtual. Di antaranya adalah keterbatasan jangkauan pantau hanya untuk komponen yang terpapar oleh API sistem operasi, pemaparan terhadap serangan malware dan kurangnya transparansi.

Di luar mesin virtual terkirim (Out-of-VM delivered)

Dalam kategori ini, informasi semantik berupa pengetahuan tentang sistem operasi tamu (faktor-faktor internal dan lokasi struktur data) harus terkandung secara eksplisit dalam sistem VMI, diekstrak dari kode sumber sistem operasi, dan didapatkan melalui simbol kernel jika ada. Ada 4 sistem yang dikembangkan yaitu:

  • Livewire

Livewire dibuat dengan tujuan mendeteksi intrusi dalam mesin virtual linux yang dijalankan oleh hypervisor VMware. Livewire mendapatkan informasi semantik tentang struktur data linux dengan menggunakan hypervisor dan alat analisis kernel dump linux. Livewire membandingkan kondisi sistem operasi yang didapat dari hypervisor dengan yang didapat dari alat bawaan sistem operasi melalui remote shell. Intrusi akan terlihat apabila ada perbedaan di antara keduanya.

  • XenAccess

XenAccess mendukung sistem VMI dalam memetakan alamat virtual kernel, simbol kernel tertentu dan alamat virtual sebuah proses dalam ruang memory. XenAccess menelusuri struktur data yang berbeda dengan menggunakan pengetahuan yang didapatkan dari kode sumber linux dan referensi teknis windows. LibVMI merupakan sebuah bentuk pengembangan dari XenAccess yang mengintegrasikan kerangka kerja forensik memory volatility di dalamnya.

  • VMwatcher

VMwatcher menjembatani kesenjangan semantik dengan menggunakan berkas simbol kernel system.map dalam menentukan struktur data yang mencurigakan di memory mesin virtual. Kondisi virtual disk juga dipaparkan sebagai disk yang terpasang oleh perangkat lunak anti malware. VMwatcher juga memiliki fungsi yang ada dalam livewire yaitu membandingkan kondisi sistem operasi dari sumber hypervisor dan alat bawaan sistem operasi untuk mencari rootkit dan malware tersembunyi.

  • Virtuoso

Virtuoso merupakan sebuah sistem yang melakukan otomasi terhadap pengurangan kesenjangan semantik dan pembuatan alat introspeksi tanpa mengetahui kondisi internal sistem operasi. Ide dasar virtuoso adalah membangkitkan secara otomatis alat introspeksi dengan merekam dan belajar dari eksekusi intruksi tingkat rendah.

Kelemahan dari teknik ini adalah penggunaan informasi semantik terkirim menyebabkan VMI bergantung pada jenis dan versi sistem operasi yang dipakai. Informasi semantik terkirim menjadi tidak berguna apabila sistem operasi diperbaharui atau diganti dengan sistem operasi lain. Kelemahan lain adalah sistem yang bergantung pada penggunaan simbol kernel dapat menjadi tidak akurat atau berhenti apabila simbol kernel terkorupsi atau tidak tersedia. Apabila struktur data sistem operasi tidak berubah saat dijalankan maka VMI rentan terhadap serangan manipulasi langsung struktur kernel (DKSM) dan manipulasi langsung obyek kernel (DKOM). Serangan DKSM membuat informasi semantik usang dikirim ke VMI yang menyebabkan sudut pandang VMI menjadi tidak akurat. Serangan DKOM mengubah struktur data kernel sesuai aktivitas sistem operasi tamu. Sebuah rootkit dapat menghilangkan sebuah proses berbahaya dari daftar proses tapi tetap dipertahankan dalam daftar pengelola jadwal (scheduler). Proses tersebut akan dianggap normal dan tidak terdeteksi oleh VMI.

Di luar mesin virtual diambil (Out-of-VM derived)

Teknik ini dikembangkan dengan ketergantungan penuh pada informasi semantik yang diambil dari pengetahuan terhadap arsitektur perangkat keras. Arsitektur perangkat keras dipakai karena berdampak pada fungsionalitas sistem operasi modern seperti multitasking, privilege pengguna, proteksi dan pengaturan memory, serta virtualisasi. Inspeksi terhadap aktivitas sistem operasi tamu dilakukan dengan mengamati dan menerjemahkan kondisi dan kejadian pada perangkat keras. Dengan demikian teknik ini tahan terhadap serangan kernel dan pengelakan malware. Teknik ini dibagi menjadi 2 kategori yaitu:

Berbasis penanganan perangkap (Trap handling)

Dalam subkategori penanganan perangkap, sistem VMI melakukan pemantauan secara aktif menggunakan informasi yang diambil dari daftar atau konteks prosesor ketika hypervisor menerima perangkap seperti keluarnya mesin virtual (VMexit) untuk menangani operasi sensitif dari sistem operasi tamu. Perangkap dipicu secara otomatis atau diminta oleh pengaturan bit kendali dalam struktur kendali mesin virtual (VMCS). Antfarm merupakan sistem VMI pertama yang mengambil informasi semantik dari arsitektur x86. Antfarm melacak pembuatan, pengalihan dan pengeluaran proses dengan melacak ruang alamat proses. Hal ini dilakukan dengan melacak penulisan daftar kendali CR3. Penulisan CR3 membangkitkan perangkap yang akan diambil hypervisor. Antfarm membandingkan daftar proses berdasarkan nilai CR3 yang sudah ada dan yang baru diambil. Kinerja mesin virtual yang turun akibat penggunaan antfarm dapat dikurangi dengan membatasi jumlah nilai CR3 yang diamati. Hal ini dimungkinkan oleh keberadaan teknologi perangkat keras tambahan Intel yaitu CR3 target value list. Lycosid diciptakan untuk mengembangkan kemampuan antfarm untuk mendeteksi pergerakan proses tersembunyi dengan cara membandingkan ukuran panjang dari 2 daftar proses yang sama namun diambil dari 2 sumber berbeda. Daftar proses pertama diambil dari sistem VMI sementara yang kedua diambil dari alat pemantau di dalam mesin virtual. Perbedaan waktu pemakaian CPU akan menunjukkan adanya proses tersembunyi. Kelemahan subkategori ini adalah ruang lingkupnya yang hanya berisi daftar kejadian yang secara otomatis memicu perangkap dan dikirim ke hypervisor.

Berbasis pemaksaan perangkap (Trap forcing)

Subkategori ini menggunakan hook berbasis perangkat keras untuk memaksakan perangkap interrupts, exception, dan faults pada aktivitas sistem operasi tamu yang mencurigakan seperti syscall yang pada umumnya tidak mengakibatkan VMexit. Terdapat 3 sistem VMI yang memanfaatkan teknik ini yaitu:

  • Ether

Ether adalah sistem pertama yang berhasil menggunakan teknologi tambahan virtualisasi Intel VT-x dan AMD SVM untuk membuat alat analisis malware setingkat hypervisor. Ether mengeksekusi instruksi satu per satu untuk melihat dan menghindar dari deteksi malware.

  • Nitro

Nitro adalah alat berbasis VMI yang digunakan untuk melacak syscall dalam arsitektur x86. AMD SVM menyediakan mekanisme untuk memerangkap secara otomatis semua interrupt sementara Intel VT-x hanya dapat memerangkap otomatis 32 interrupt pertama (system interrupt). Untuk mengakomodasi kedua platform tersebut, Nitro mengubah ukuran daftar tabel interrupt descriptor (IDTR) menjadi 32 masukan.

  • Hypertap

Hypertap bergantung pada penanganan VMexit dan melacak paksa proses, thread, dan syscall. Hal tersebut diperlukan untuk mendeteksi sistem operasi tamu yang hang, rootkit dan malware tersembunyi, serangan eskalasi privilege. Hypertap melacak eksekusi proses dan waktu konsumsi CPU untuk setiap proses dengan menangani perangkap yang diaktifkan oleh proses penulisan CR3.

Kelemahan teknik ini adalah keterbatasan ruang lingkup yang berkisar pada perangkat keras yang digunakan dan implikasinya terhadap aktivitas sistem operasi tamu.

Teknik hibrida

Teknik hibrida VMI menggunakan kombinasi dari ketiga teknik di atas untuk mendapatkan kelebihan berupa kekuatan, kehandalan dan perluasan aplikasi VMI. Teknik ini terbagi menjadi 4 kategori yaitu:

  • Berbasis pemaksaan perangkap

SecVisor merupakan perangkat hypervisor yang bertujuan memastikan keutuhan kode kernel sistem operasi linux dan melindunginya dari serangan injeksi kode. SecVisor membutuhkan implementasi ulang bootstrapping dan fungsi bongkar-muat modul kernel. Hal ini diperlukan untuk menjalankan hypercall ke SecVisor yang menyetujui penggunaan kode kernel dalam memory berdasarkan kebijakan berbasis daftar putih. SecVisor menggunakan proteksi perangkat keras memory yang disediakan oleh AMD SVM berupa mekanisme nested page tables (NPT). Mekanisme ini melindungi kode kernel dari modifikasi dan eksekusi ilegal. SecVisor membagi NPT ke dalam 2 mode yaitu mode kernel dan mode pengguna. Kode kernel mendapat proteksi tulis dari modifikasi yang terjadi di dalam mesin virtual. Perangkap dikirim ke SecVisor ketika CPU berpindah antara mode pengguna dan mode kernel.

  • Pengarahan ulang data / pembayangan memory

Nickle merupakan sistem VMI yang dibuat sebagai pengembangan sistem Qemu. Nickle bertujuan mencegah eksekusi rootkit setingkat kernel dengan menggunakan skema pembayangan memory. Nickle membagi memory fisik menjadi 2 fungsi yaitu memory standar dan memory bayangan. Memory bayangan tidak dapat diakses oleh sistem operasi tamu dan memuat kode kernel yang telah disetujui. Kode kernel mendapat persetujuan dengan mengambil informasi spesifik sistem operasi. Informasi ini didapatkan dari penyadapan fungsi bongkar muat modul kernel dan eksekusi bootstrap. Kode kernel yang disetujui disalin dari memory standar ke memory bayangan. Ketika mesin virtual dijalankan, nickle akan membandingkan kode kernel di antara kedua memory. Apabila instruksi kernel tidak tersedia dalam memory bayangan, eksekusi kode kernel dimatikan.

VMST merupakan sistem introspeksi mesin virtual ganda yang secara otomatis menjembatani kesenjangan semantik. Hal ini dilakukan dengan mengubah alat pemantau (ps dan lsmod) dari mesin virtual pengaman (secure VM) menjadi program yang mengintrospeksi mesin virtual tamu (GVM). Mesin virtual pengaman (SVM) dan tamu (GVM) harus memiliki sistem operasi yang sama. VMST secara otomatis memakai ulang kode biner dari program pemantau dalam SVM. Akses program pemantau terhadap data kernel diubah menuju memory dari GVM. VMST mendeteksi bagian awal dan akhir dari syscall dengan memantau eksekusi dari instruksi yang terkait (SYSENTER, SYSEXIT, INT 0x80, IRET). Exterior merupakan sebuah shell out-of-VM yang dapat digunakan untuk menginstrospeksi kondisi dan aktivitas GVM, mengkonfigurasi ulang dan memulihkan pada kondisi semula pasca penyerangan yang sukses. Exterior menggunakan teknik yang sama dengan VMST dalam menjalankan syscall yang dipanggil oleh perintah shell SVM untuk melakukan operasi baca-tulis pada status GVM.

Hybrid-bridge adalah sebuah arsitektur introspeksi VM rangkap tiga yang memiliki kesamaan tujuan dengan VMST namun disertai dengan pengurangan kerugian kinerja. Arsitektur ini memerlukan 2 buah SVM yang memiliki versi kernel identik dengan GVM. SVM pertama yang disebut sebagai slowbridge menjalankan VMST yang sedikit dimodifikasi. Slow-bridge mengklasifikasikan intruksi dari program pemantau menurut kemampuan pengarahan dari operand terhadap instruksi yang memanipulasi data kernel terarah. Metadata dari kemampuan pengarahan instruksi ini disimpan dalam memory bersama. SVM kedua yang disebut sebagai fast-bridge berjalan pada lingkungan virtualisasi berbasis perangkat keras. Fast-bridge menggunakan Nitro untuk mendeteksi konteks eksekusi syscall dan metadata yang dibagikan oleh slow-bridge. Hal ini dilakukan untuk menemukan kebijakan pengarahan dari setiap instruksi syscall. Jika ada metadata instruksi yang hilang, fast-bridge akan menangguhkan GVM dan memanggil slow-bridge untuk melakukan analisis noda terhadap foto GVM. Penggunaan 2 mesin virtual dengan versi kernel yang sama tidak memiliki kepraktisan dalam lingkungan nyata cloud.

  • Pencangkokan proses

Process implanting adalah sebuah teknik yang menjalankan VMI bersifat aktif melalui pencangkokan program instrospeksi yang berdiri sendiri di dalam sistem operasi tamu. Untuk melakukan VMI, hypervisor memilih sebuah proses secara acak dari dalam sistem operasi tamu, menyimpan konteksnya dan mengganti kodenya dengan kode yang tersimpan di dalam program introspeksi. Dengan demikian, eksekusi program introspeksi akan mengikuti jadwal berjalannya proses terpilih. Kelebihan dari teknik ini adalah terhindarnya permasalahan kesenjangan semantik. Kekurangannya adalah proses yang terpilih dapat berupa proses yang kecil kemungkinannya terjadwal atau proses yang penting. Teknik ini juga rentan terhadap serangan DKOM dan DKSM.

Process outgrafting adalah teknik dengan pendekatan terbalik dari process implanting. Teknik ini mencangkokkan proses mencurigakan yang berasal dari sistem operasi tamu ke dalam sistem operasi inang. Tujuannya adalah menghindari kesenjangan semantik selama inspeksi terhadap proses outgrafted dilakukan. Inspeksi dilakukan oleh alat keamanan tradisional seperti antivirus dan pelacak syscall di dalam sistem operasi inang. Hypervisor membuat proses dummy di dalam sistem operasi inang untuk memuat konteks proses outgrafted. Proses out-grafted akan dieksekusi berdasarkan jadwal proses dummy. Untuk melindungi sistem operasi inang, hypervisor hanya memperbolehkan eksekusi kode tingkat pengguna dan mengarahkan kembali syscall dan page fault ke dalam sistem operasi tamu. Pada fase ini, hypervisor menyembunyikan antarmuka syscall dari proses outgrafted dan menjebaknya dalam usaha melakukan pemanggilan syscall.

  • Injeksi pemanggilan fungsi

Syringe adalah sebuah pendekatan introspeksi yang bertujuan memadukan keamanan dari teknik out-of-VM dan kekuatan dari teknik in-VM. Syringe menjembatani kesenjangan semantik dengan cara menyuntikkan pemanggilan fungsi (function calls) dari SVM ke API sistem operasi tamu. Dengan cara ini, syringe dapat memperoleh informasi kondisi sistem operasi tamu melalui API-nya tanpa mengurangi kinerjanya. Aplikasi pemantauan syringe terbatas pada jumlah fungsi pemantau dalam sistem operasi tamu. Syringe tidak dapat bertindak apabila terjadi intrusi.

Hypershell adalah sebuah shell berbasis VMI yang dibuat dengan pemahaman bahwa syscall berfungsi sebagai antarmuka untuk aplikasi pengguna yang menggunakan layanan kernel sistem operasi tamu dan mengatur kondisi tingkat rendahnya. Cara kerja hypershell adalah sebagai berikut:

  1. Administrator sistem operasi inang menjalankan perintah shell (ps, lsmod) di dalam hypershell.
  2. Syscall yang dibangkitkan perintah shell dihadang oleh hypershell menggunakan teknik interposisi library
  3. Semua syscall yang terkait dengan pembentukan proses, pemuatan library dinamis, pengaturan memory dan keluaran layar dijalankan di dalam sistem operasi inang sementara sisanya yang disebut sebagai R-syscall disuntik dan dijalankan oleh proses pembantu dalam sistem operasi tamu.
  4. Proses pembantu menjalankan syscall yang diinginkan dan mengembalikan datanya ke hypershell untuk diperiksa.

Teknik VMI mampu melakukan deteksi dan pencegahan terhadap sebuah malware. VMI mengembangkan kemampuan dari hypervisor dengan cara memeriksa secara mendalam perilaku dari proses yang mencurigakan atau berbahaya. VMI juga memampukan hypervisor untuk melacak syscall dengan memantau pembuatnya. VMI juga dapat mendeteksi dan mengambil kode yang dibangkitkan secara dinamis dengan memerangkap eksekusi halaman memory yang dimodifikasi.

Pengantar Instrospeksi Hypervisor

Teknik instrospeksi hypervisor (HVI) merupakan sebuah cara untuk memantau dan melindungi hypervisor yang menjadi dasar dari lingkungan cloud. Teknik ini bermula dari teknik VMI di atas. Perangkat berbasis VMI umumnya dipasang pada hypervisor atau mesin virtual yang terisolasi. Sebelum HVI tidak ada teknik yang mampu memantau serangan terhadap hypervisor yang juga berperan sebagai landasan dari teknik VMI.

Seperti halnya syscall dapat dipakai oleh penyerang untuk meningkatkan privilege, hypercall dapat digunakan oleh penyerang untuk menerobos isolasi mesin virtual, keluar dari pembatas mesin virtual dan menyerang hypervisor. CVE-2015-2045 membahas tentang pengguna tamu lokal yang mampu memperoleh informasi sensitif melalui vektor yang tidak disebutkan. Menurut Milenkoski [3] serangan injeksi hypercall terbagi menjadi 3 yaitu: membangkitkan hypercall dari situs dengan irregular call, membangkitkan hypercall dengan nilai parameter yang tidak sesuai (di luar rentang yang sah atau dirancang untuk mengeksploitasi kerentanan tertentu), pembangkitan rangkaian hypercall dengan urutan acak termasuk eksekusi yang berulang dari 1 atau lebih hypercall.

Ada pula kerentanan dari penangan hypercall yang terbagi menjadi 2 kategori yaitu kesalahan implementasi dan di luar implementasi. Termasuk dalam kesalahan implementasi adalah validasi nilai dan prosedur pembalik. Pada hypervisor dengan kode terbuka seperti Xen dan KVM, terdapat kemungkinan keberadaan kode yang telah diubah dan hypercall berbahaya yang tersembunyi untuk membuat pintu belakang sebagai jalan masuk serangan tradisional.

Untuk mendeteksi serangan berbasis hypercall, J. Shi et al. [4] merancang konsep HVI sebagai perluasan teknik VMI. Tujuan HVI adalah mendapatkan hypercall yang keluar dari hypervisor dan memantau eksekusi GVM. Hypercall diinisialisasi oleh kernel tamu sehingga sulit dideteksi dari dalam GVM. Detektor hypercall dapat ditempatkan dalam area dom0 untuk menemukan hypercall dari area domU namun dom0 dapat terinfeksi dan dipakai untuk mengedarkan hypercall berbahaya. Dengan demikian, penempatan detektor dipindah ke dalam hypervisor L0 untuk menemukan semua hypercall yang diinisialisasi oleh tamu terhadap hypervisor L1.

comparison HVI

Gambar 2. Perbandingan teknik VMI dengan HVI [4]

Arsitektur HVI

Gambar 3. Arsitektur HVI [4]

Arsitektur utama HVI terdiri dari 2 bagian yaitu penghadang dan penganalisa HVI. Arsitektur ini berbasis pada virtualisasi bersarang yang dibantu dengan perangkat keras untuk menemukan eksekusi instruksi privilege CPU. Penghadang menggunakan 2 metode untuk menangkap hypercall dari L1. Metode pertama adalah menyuntik 0xCC ke dalam fungsi hypercall dan menghadang #BP (breakpoint exception) yang disebabkan oleh hypercall. Penghadang berkomunikasi dengan hypervisor L0 melalui library XenControl untuk mendapatkan #BP yang disebabkan oleh kejadian VMexit. Proses penyuntikan breakpoint diselesaikan dengan bantuan libVMI, pemerangkap kejadian perangkat keras dan akses terhadap register vCPU. Metode kedua adalah dengan menggunakan fitur proteksi EPT (extended page table) dari CPU Intel. Dengan mengatur eksekusi proteksi pada halaman hypercall, semua panggilan terhadap hypercall akan dianggap sebagai pelanggaran EPT dan menyebabkan L1 memasuki VMexit. Informasi tentang hypercall didapat dari kejadian VMexit yang ditangani. Penganalisa menerima informasi hypercall dari penghadang seperti nomor dan argumen hypercall.

Introspeksi Hypervisor (HI): Sebuah Teknik dalam Menghindari Pemantauan Pasif Mesin Virtual

Komputasi awan telah banyak diadopsi oleh banyak perusahaan dan organisasi namun fitur keamanannya masih tergolong baru dan eksperimental. Pengelola infrastruktur awan mulai menerapkan sejumlah metode pengamanan untuk mendeteksi aktivitas berbahaya di dalamnya. Perangkat yang dipakai adalah perangkat pendeteksi intrusi yang berbasis jaringan dan inang. Selain itu dipakai teknik VMI sebagai fitur tambahan dalam lingkungan virtualisasi.

Ada 2 macam teknik pemantauan VMI yaitu aktif dan pasif. Pemantauan aktif VMI melibatkan pemantauan yang memeriksa pemicu dari suatu kejadian seperti akses terhadap daftar perangkat keras atau bagian dari memory. Pemantauan pasif VMI melibatkan pemantauan yang memeriksa dalam rentang waktu yang telah ditentukan seperti proses yang berjalan selama beberapa detik.

Wang et al. [5] mendemonstrasikan bahwa tidak semua aktivitas hypervisor terisolasi dari GVM. GVM juga mampu menemukan keberadaan sistem VMI pasif dan frekuensi pemantauannya melalui pengukuran waktu side-channel. Teknik ini diberi nama instrospeksi hypervisor (HI) yang merupakan kebalikan dari cara kerja VMI.

Teknik HI mengandalkan pengukuran side-channel dan dugaan adanya aktivitas dari hypervisor. Hypervisor memantau kondisi mesin virtual dengan melakukan penangguhan. Durasi waktu penangguhan ini menjadi dugaan sistem HI akan adanya aktivitas oleh hypervisor. Pengukuran durasi waktu ini menggunakan agen in-VM. Untuk membedakan waktu penangguhan VM dan jeda di antara pemanggilan fungsi selama sistem operasi berjalan normal, pengguna HI harus mengetahui penjadwalan proses dalam sistem operasi mesin virtual.

HI memiliki 2 macam keterbatasan yaitu ketelitian interval pemantauan yang diukur oleh HI dan nilai ambang batas durasi penangguhan mesin virtual. Ketelitian interval pemantauan HI adalah sebesar 0,1 detik atau 10 Hz. Sementara nilai ambang batas untuk mendapatkan ketelitian itu adalah di antara 5 sampai 32 milidetik (ms).

HI bukan merupakan teknik penghindaran deteksi VMI secara mandiri. HI hanya digunakan sebagai teknik pelengkap atau pembantu untuk teknik lain. Ada dua penerapan teknik HI untuk menyembunyikan aktivitas berbahaya yaitu:

  1. Pemindahan berkas berukuran besar

Berkas berukuran besar dapat dipindahkan tanpa memicu alarm VMI dengan cara membaginya dalam beberapa bagian berkas beukuran kecil. Setiap bagian dikirimkan di antara waktu penangguhan.

  1. Pembuatan shell pintu belakang

Sebuah pintu belakang dapat menghindari sistem pasif VMI dengan cara pengulangan koneksi terhadap server penyerang di antara interval pemantauan. Sebuah agen pintu belakang berjalan di dalam mesin virtual di antara interval waktu pemantauan. Server penyerang telah menyiapkan rangkaian perintah yang akan dikirimkan ke agen tersebut apabila koneksi terbuka. Rangkaian perintah ini akan dibagi menjadi siklus perintah oleh agen pintu belakang.

Ada beberpa teknik yang digunakan untuk melawan teknik HI yaitu:

  1. Memasukkan noise ke dalam jam mesin virtual

HI bergantung pada ketelitian hasil pengukuran waktu untuk menentukan kejadian penangguhan mesin virtual. Apabila ketelitian jam mesin virtual berkurang, HI tidak mungkin mengetahui informasi tersebut. Selain itu dapat juga digunakan jam virtual yang hanya menyala saat instruksi diberikan. Jam virtual ini akan menyembunyikan waktu penangguhan mesin virtual.

  1. Pertahanan penjadwal

Penerapan kebijakan penjadwalan akan memaksa beberapa proses untuk berjalan dalam rentang waktu tertentu. Penggunaan waktu berjalan minimum yang lebih besar dari ambang batas penangguhan mesin virtual dapat melumpuhkan teknik HI. Penerapan kebijakan ini akan menambah beban CPU.

  1. Mengacak interval pemantauan

Mengacak interval pemantauan mungkin akan menghentikan teknik HI karena bergantung pada kemiripan durasi penangguhan VM. Tetapi hal ini dapat dihindari oleh penyerang dengan menerapkan batas bawah sebagai durasi antar pemantauan.

  1. Melakukan pemantauan tanpa penangguhan

Melakukan pemantauan tanpa penangguhan memiliki resiko timbulnya kejadian yang lolos tanpa terdeteksi. Teknik pemantauan ini tidak dapat menjamin konsistensi dari kondisi mesin virtual.

HVI BitDefender

Artikel yang diterbitkan oleh PR Newswire [1], menceritakan tentang BitDefender, sebuah perusahaan teknologi keamanan global, yang mempromosikan produk terbarunya. Produk ini adalah sebuah Introspeksi hypervisor yang dikembangkan bersama dengan Citrix untuk memindai memory dan memantau mesin virtual secara berkesinambungan. Introspeksi hypervisor Bitdefender (HVI) diintegrasikan dengan Direct API dan dipasarkan sebagai bagian dari XenServer7. HVI berjalan dalam posisi di luar area terancam yaitu di bawah sistem operasi dengan perangkat keras terisolasi. Posisi ini berada pada lingkar nol minus satu [6]. Dengan posisi ini, penyerang tidak dapat menimbulkan gangguan dan menghindar dari deteksinya seperti yang terjadi pada alat keamanan endpoint biasa (antivirus). HVI berfungsi sebagai perangkat tanpa agen yang bekerjasama dengan alat keamanan dengan mendeteksi ancaman mendalam. HVI juga dapat menginjeksi alat remidiasi untuk menghilangkan ancaman.

gravityZone-panel
Gambar 4. Antarmuka HVI Bitdefender [7]

Carbanak adalah salah satu ancaman yang menjadi sasaran penghapusan HVI [7]. Pada tahun 2013, dalam sebuah investigasi terhadap bank di Kiev, ditemukan sebuah malware terselubung yang telah beroperasi selama beberapa bulan dalam sistem bank tersebut. Malware ini bekerja dengan sukses dalam menghapus jejaknya, mencatat pergerakan karyawan, mengirimkan aliran video dan gambar tanpa menimbulkan kecurigaan. Carbanak adalah salah satu metode serangan mutakhir yang mampu menggunakan malware terselubung untuk mendapatkan informasi dengan cara masuk ke dalam sistem dengan menghindari pendeteksi.

HVI Bitdefender bekerja dengan pendekatan bare-metal hypervisor yaitu sebuah alat yang dapat memantau sejumlah mesin virtual namun terisolasi dari mesin tersebut. HVI menciptakan sebuah lapisan keamanan yang tidak terjangkau oleh malware. HVI beroperasi dengan tidak memanfaatkan informasi yang disediakan oleh sistem operasi namun dengan mengekstrak langsung dari memory mesin virtual. HVI memantau lapisan keamanan sistem operasi dalam 2 moda yaitu moda pengguna dan moda kernel. Di dalam mode pengguna, HVI memantau faktor-faktor berikut untuk mendeteksi serangan:

  • Perangkat hook untuk DLL kritis dalam moda pengguna
  • Tulisan asing dalam proses sasaran
  • Berbagai eksploit
  • Hooking dalam WinSock

Dalam moda kernel, faktor yang dipantau oleh HVI sebagai berikut:

  • Percobaan memasukkan nilai yang salah dalam daftar kendali spesifik
  • Percobaan mengubah integritas daftar pemanggil sistem (Interrupt Descriptor Table dan Global Descriptor Table)
  • Proteksi driver antimalware
  • Proteksi driver Xen
  • Proteksi image kernel
  • Proteksi driver inti sistem operasi

Serangan yang terpantau oleh HVI akan dibersihkan oleh alat keamanan yang terpasang dalam server atau mesin virtual.

 

Pembahasan dan Rangkuman

Keamanan sistem operasi melibatkan berbagai unsur seperti pengerasan sistem operasi, penggunaan aplikasi keamanan, melakukan pemeliharaan, keamanan virtualisasi dan mengaudit fitur keamanan yang tersedia. Pengerasan sistem operasi melibatkan instalasi, pengaturan penambalan dan pembaharuan, konfigurasi pengguna dan kendali sumber daya. Audit melibatkan pengaktifan, penyimpanan dan pemeriksaan log keamanan.

Keamanan virtualisasi adalah suatu bentuk teknik keamanan yang berkembang seturut dipopulerkannya teknologi awan. Teknik pertama yang muncul untuk mengamankan lingkungan virtual adalah VMI atau introspeksi mesin virtual. VMI muncul karena keterbatasan perangkat keamanan tradisional seperti IDS berbasis jaringan atau inang. Ada beberapa kategori teknik VMI yaitu in-VM, out-of-VM delivered, out-of-VM derived dan teknik hibrida. Di dalam kategori out-of-VM derived terdapat 2 subkategori yaitu trap-forcing dan trap-handling. Sistem yang menggunakan teknik In-VM adalah lares dan kerangka SIM. Sistem out-of-VM delivered adalah livewire, VMwatcher, XenAccess, dan Virtuoso. Sistem berbasis trap-handling adalah antfarm dan lycosid. Sistem berbasis trap-forcing adalah ether, nitro dan hypertap. Sistem dengan teknik hibrida adalah SecVisor, nickle, VMST, exterior, hybrid-bridge, process implantation, process out-grafted, syringe dan hypershell. Hypershell adalah sistem VMI yang paling sesuai diterapkan dalam pemakaian di dunia nyata.

Teknik introspeksi hypervisor muncul dan berkembang dari teknik VMI. Ada 2 arah pengembangan introspeksi hypervisor yaitu yang pertama bersifat ofensif adalah HI dan yang kedua bersifat defensif bernama HVI. HI digunakan untuk mengelabui atau menghindar dari sistem VMI yang dijalankan oleh hypervisor. HI ditempatkan di dalam sistem operasi tamu. Durasi waktu penangguhan mesin virtual dan interval pemantauan adalah aset utama teknik HI. Teknik HI tidak dapat bekerja secara mandiri namun melengkapi teknik infiltrasi yang sudah ada seperti pemindahan berkas berukuran besar dan pembuatan shell pintu belakang. Pertahanan terhadap teknik HI umumnya memiliki masalah berupa penurunan kinerja perangkat keras khususnya CPU dan sistem VMI itu sendiri.

Teknik HVI adalah teknik yang menggunakan hypervisor untuk memantau hypervisor tempat bernaungnya lingkungan virtualisasi. Teknik HVI memiliki 2 komponen utama yaitu penghadang dan penganalisa. Penghadang melakukan penangkapan hypercall sementara penganalisa memproses hypercall yang dikirim oleh penghadang. HVI Bitdefender adalah sistem introspeksi hypervisor pertama yang bersifat komersial dan bukan eksperimental. Namun sistem yang tercantum dalam lembar datanya lebih menyerupai sistem yang dimiliki oleh VMI daripada sistem HVI yang diajukan oleh J. Shi. HVI Bitdefender memiliki tujuan utama menemukan malware terselubung seperti carbanak.

 

Daftar Pustaka

[1]      Bitdefender, “At Citrix Synergy, Bitdefender Unveils Revolutionary Security Architecture against Targeted Attacks.” [Online]. Available: http://www.prnewswire.com/news-releases/at-citrix-synergy-bitdefender-unveils-revolutionary-security-architecture-against-targeted-attacks-580629081.html. [Accessed: 07-Sep-2016].

[2]      Y. Hebbal, S. Laniepce, and J.-M. Menaud, “Virtual Machine Introspection: Techniques and Applications,” 2015, pp. 676–685.

[3]      A. Milenkoski, B. D. Payne, N. Antunes, M. Vieira, and S. Kounev, “HInjector: injecting hypercall attacks for evaluating VMI-based intrusion detection systems,” in Poster Reception at the 2013 Annual Computer Security Applications Conference (ACSAC 2013), 2013.

[4]      J. Shi, Y. Yang, and C. Tang, “Hardware assisted hypervisor introspection,” SpringerPlus, vol. 5, 2016.

[5]      G. Wang, Z. J. Estrada, C. Pham, Z. Kalbarczyk, and R. K. Iyer, “Hypervisor introspection: a technique for evading passive virtual machine monitoring,” presented at the Proceedings of the 9th USENIX Conference on Offensive Technologies, 2015, pp. 12–12.

[6]      “Bitdefender Dictates New Standard for Virtualized Infrastructure Security | Business Wire,” 13-May-2015. [Online]. Available: http://www.businesswire.com/news/home/20150513005411/en/Bitdefender-Dictates-Standard-Virtualized-Infrastructure-Security. [Accessed: 07-Sep-2016].

[7]     “Bitdefender HVI.” [Online]. Available: http://www.bitdefender.com/business/hypervisor-introspection.html. [Accessed: 07-Sep-2016].

 

Artikel ini dibuat oleh Ignatius Leo Sri Hendarto sebagai tugas mata kuliah EL5228 Keamanan Sistem Operasi di program studi S2 Teknik Elektro

Ancaman Keamanan NTP dan Penanggulangannya

Network Time Protocol atau NTP beroperasi sebagai layanan sinkronisasi waktu melalui jaringan internet publik, sehingga dalam pengoperasiannya, NTP rentan terhadap berbagai jenis serangan yang bertujuan untuk mengganggu protokol maupun data yang dikirimkan.

Serangan terhadap protokol maupun data NTP dapat menyebabkan sebuah server yang sebenarnya telah terbukti otentik, mengirimkan data waktu yang tidak benar ke sistem yang menggunakan NTP. Hal ini dapat menjadi ancaman serius untuk aplikasi atau layanan dalam sistem operasi yang sangat bergantung pada ketepatan timestamp, seperti pencatatan log pada sistem operasi.

Dalam tulisan ini akan dipaparkan model keamanan NTP dan skenario-skenario serangan yang mungkin terjadi beserta penanggulangan yang telah diterapkan pada protokol NTP.

I.            Sekilas Tentang NTP

NTP atau Network Time Protocol adalah protokol sinkronisasi waktu dalam jaringan antar dua komputer atau lebih. NTP bertujuan untuk mensinkronisasi semua komputer yang terhubung dalam beberapa milidetik dari Coordinated Universal Time (UTC) serta dapat mempertahankan akurasi hinga puluhan milidetik melalui internet publik, bisa mencapai akurasi kurang dari satu milidetik pada jaringan lokal.

a.      Cara Kerja NTP

Gambar 1: Sistem hierarki NTP. Garis kuning mengindikasikan koneksi langsung, garis merah mengindikasikan koneksi via jaringan (internet atau lokal)

NTP pada prinsipnya berbasis client-server, dengan menggunakan sistem hierarki yang disebut stratum untuk mengambil referensi waktu seperti yang ditunjukkan pada Gambar 1:

  • Stratum 0

Hierarki ini mencakup perangkat-perangkat ketepatan waktu presisi tinggi seperti jam atom, GPS receiver, dll. Perangkat-perangkat ini menghasilkan sinyal PPS (pulse per second) yang akurat yang men-trigger interrupt dan timestamp pada komputer yang terhubung. Perangkat stratum 0 disebut juga reference clocks.

  • Stratum 1

Merupakan komputer yang tersinkronisasi secara langsung dengan perangkat-perangkat stratum 0 dalam rentang beberapa mikrodetik. Berfungsi sebagai time server utama, server stratum 1 bisa melakukan komunikasi peer-to-peer dengan server stratum 1 yang lain untuk pengecekan dan backup.

  • Stratum 2

Perangkat stratum 2 tersinkronisasi dengan server stratum 1. Perangkat-perangkat ini bisa menerima timestamp dari satu atau lebih server stratum 1, dan juga dengan perangkat stratum 2 yang lain.

  • Stratum 3 dan seterusnya

Perangkat-perangkat pada stratum 3 tersinkronisasi dengan perangkat stratum 2, dan bertindak sebagai server terhadap perangkat stratum 4, dan seterusnya.

NTP client menghubungi tiga atau lebih server dengan interval tertentu. Untuk melakukan sinkronisasi dengan server, client perlu menghitung round-trip delay dan offset. Round-trip delay δ dikomputasi dengan:

1

t0 : timestamp client mengirimkan paket request.

t1 : timestamp server menerima paket request.

t2 : timestamp server mengirimkan paket respon.

t3 : timestamp client menerima paket respon.

Dan offset θ:

2

Nilai delay dan offset dijadikan bahan analisis dan menentukan server mana yang digunakan sebagai referensi waktu oleh NTP client.

b.      Mode Operasi

NTP beroperasi dengan beberapa bentuk:

  • NTP Client mode

NTP client dikonfigurasi untuk mensinkronisasikan waktu di perangkatnya sendiri dengan time server eksternal. NTP client tidak menyediakan layanan sinkronisasi ke perangkat lain dalam jaringan.

  • NTP Server mode

NTP server menjalankan NTP service dan dikonfigurasi untuk memberikan informasi waktu ke NTP client. NTP server hanya menyediakan informasi waktu untuk NTP client dan tidak akan menerima informasi sinkronisasi waktu dari perangkat lain.

  • NTP Peer mode

NTP peer tidak memiliki otoritas lebih tinggi dari perangkat lain. Dalam NTP peer mode, masing-masing perangkat dapat menerima atau memberikan sinkronisasi waktu ke perangkat lainnya.

  • Broadcast/Multicast

Dalam broadcast/multicast mode, NTP server melakukan broadcasts/multicasts informasi sinkronisasi waktu ke semua NTP client sekaligus.

II.            Serangan Terhadap Network Time Protocol

a.      Tujuan Serangan

Serangan terhadap sistem yang menggunakan NTP dilakukan dengan berbagai tujuan. Tujuan serangan yang paling jelas adalah agar sistem menghasilkan nilai waktu yang tidak benar atau tidak konsisten serhingga dapat menyebabkan layanan-layanan yang kritikal terhadap waktu tidak dapat bekerja dengan benar. Dalam hal sistem operasi, hal ini akan mengganggu ketepatan logging, report, system clock, dll.

Tujuan lainnya adalah untuk menggangu operasi protokol, menyebabkan tersumbatnya jaringan, server atau client dengan trafik bervolume besar, atau memaksa protokol menggunakan sejumlah besar sumber daya seperti komputasi kriptografi.

b.      Tipe Serangan

Tipe serangan yang mungkin terjadi ada bermacam-macam. Beberapa diantaranya adalah:

  • Bogus attack – Penyerang memalsukan paket yang diterima oleh client atau server;
  • Wiretap attack – Penyerang menyalin (menyadap) paket-paket yang dikirimkan client atau server, sehingga dapat disimpan atau digunakan untuk jenis serangan berikutnya;
  • Replay attack – Penyerang mengirimkan kembali salah satu atau lebih paket yang didapat sebelumnya disimpan (old duplicate), atau mengirimkan ulang paket yang terakhir dikirimkan.

Paket-paket yang dikirimkan dalam NTP bersifat publik; tidak ada usaha sama sekali untuk menyamarkan atau mengenkripsi isinya, hanya untuk memastikan keotentikan sumber paket tersebut. Oleh karena itu, serangan-serangan tersebut dapat dilakukan oleh komputer manapun dalam jaringan.

Selain tipe serangan diatas, beberapa kondisi tertentu juga memungkinkan paket NTP hilang dan menyebebkan protokol melakukan restart, sehingga menyebabkan delay yang lebih besar daripada yang seharusnya. Hal ini bisa disebabkan oleh collisions, queue overflow, dan cheksum failure, baik yang terjadi secara alami maupun karena terdapat serangan.

c.      Skenario  Serangan

Skenario serangan yang mungkin dilakukan adalah sebagai berikut:

  • Middleman Attack

Penyerang menyadap paket dari client atau server sehingga paket tersebut tidak langsung mencapai tujuannya. Penyerang kemudian memalsukan paket NTP tersebut atau membuatnya menjadi tidak akurat, namun tetap akan dapat diterima oleh client dan server.

  • Masquearade Attack

Penyerang berpura-pura bertindak sebagai server NTP. Hal ini mungkin dilakukan apabila router dalam jaringan sudah diserang atau menggunakan DNS server palsu.

  • Delay Attack

Penyerang menyebabkan paket NTP tertunda selama beberapa waktu, namun tidak mengubah isinya.

Apabila delay di dua arah antara client dan server berkisaran sama, offset error mungkin tidak terlalu signifikan. Hal ini seperti yang terjadi dalam link data di luar angkasa yang disebabkan karena pergerakan satelit atau pesawat luar angkasa.

Namun apabila delay di kedua arah tersebut memiliki perbedaan secara signifikan, offset error mencapai separuh dari perbedaan delay di kedua arah tersebut.

  • Denial of Service (DoS) Attack

Satu atau lebih penyerang dapat berkolaborasi untuk melakukan DoS attack, dengan membanjiri jaringan, client atau server, dengan sejumlah besar trafik sehingga layanan menjadi terganggu.

Dari pengalaman sebelumnya, serangan DoS belum pernah efektif dilakukan, karena sumber daya perangkat keras dan perangkat lunak yang digunakan oleh NTP cukup minim. Namun, serangan DoS dapat efektif apabila serangan memaksa sistem melakukan kalkulasi kriptografi yang besar dan tidak dibutuhkan.

III.            NTP Security Model

Gambar 2: NTP Security Model

Dalam usaha menanggulangi serangan-serangan yang disebutkan sebelumnya, NTP telah menerapkan security model berbentuk hierarki seperti pada Gambar 2. Pertahanan terhadap serangan dimulai dari lapisan paling bawah (On-Wire Protocol). Apabila serangan lolos dari lapisan ini, pertahanan berikutnya berada dilapisan diatasnya, lapisan Message Digest, menggunakan symmetric key cryptography.

Apabila serangan dapat lolos juga dari lapisan ini, berikutnya adalah lapisan Autokey Sequence, yang menggunakan nilai hash atau teknik pseudo-random sequence untuk mengaitkan setiap paket ke suatu digital signature.

Pertahanan terhadap masquerade attack sangat bergantung terhadap lapisan Autokey Protocol, yang menggunakan public key cryptography untuk mengaitkan server credentials ke digital signatures.

Dapat dilihat apabila suatu serangan tidak dapat digagalkan pada salah satu lapisan, serangan tersebut mungkin dapat digagalkan oleh lapisan diatasnya. Secara umum, lapisan diatas On-Wire Protocol layer bersifat opsional; symmetric key cryptography hanya menggunakan dua lapisan terbawah sementara public key cryptography menggunakan keempat-empatnya.

a.      On-Wire Protocol

On-wire protocol digunakan pada transportasi paket antara client dan server. Secara ringkas, protokol menggunakan timestamp paket NTP ditransmisikan, disebut transmit timestamp, untuk mendeteksi paket palsu atau duplikat dengan melakukan loopback test: beberapa bit acak dimasukkan ke bit non-signifikan dalam 64-bit transmit timestamp. Sangat kecil kemungkinannya penyerang dapat memprediksi transmit timestamp yang dihasilkan. Transmit timestamp tidak harus benar-benar tepat waktu, atau memiliki pola tertentu, asalkan setiap transmit timestamp berbeda satu sama lain dan tidak dapat diprediksi secara tepat dalam kisaran 0.232 ns.

Dalam setiap mode operasi NTP, paket duplikat dapat dideteksi apabila transmit timestamp ditemukan sama dengan paket yang pernah diterima sebelumnya. Dalam hal ini paket duplikat akan dibuang sehingga tidak mengganggu kalkulasi timestamp. Dalam mode client/server dan peer, loopback test membandingkan transmit timestamp di paket client request  dengan timestamp asli di paket server reply. Perbedaan yang terlalu jauh mengindikasikan paket palsu, duplikat, atau hilang di transit.

Menggunakan loopback test pada mode client/server dan peer, semua serangan wiretap yang didekripsikan sebelumnya dapat dihalangi. Namun dalam broadcast mode, on-wire protocol tidak dapat mendeteksi paket palsu dan duplikat, karena loopback test tidak dapat dilakukan (broadcast mode mengirimkan paket ke beberapa client sekaligus).

Namun protokol ini mengasumsikan isi paket tidak dimodifikasi di transit. Serangan yang memodifikasi isi paket tidak akan terdeteksi oleh on-wire protocol, namun dapat dideteksi oleh lapisan berikutnya.

b.      Message Digest

Router tipuan atau yang telah disusupi oleh penyerang, atau bahkan server yang sudah disusupi, dapat memodifikasi bagian manapun dalam paket NTP, kecuali kolom transmit timestamp. Hal ini akan menyebabkan paket salah diklasifikasikan atau dikirimkan pada waktu yang salah. Untuk menanggulangi tipe serangan ini, lapisan message digest menggunakan symmetric key cryptography untuk menghitung sebuah message digest setiap paket.

Message digest adalah nilai kriptografi hash yang dihitung dengan algoritma seperti MD5 atau SHA. Ketika otentikasi dibutuhkan, algoritma menghitung nilai hash sebagai message authentication code (MAC) dari header dan ekstensi paket (bila ada), dan menambahkannya ke akhir paket.

MAC terdiri dari 32-bit identifier (key ID) diikuti dengan 128 atau 160-bit message digest, yang kemudian ditambahkan ke ujung paket ketika paket akan dikirimkan. Ketika paket diterima, penerima paket menghitung message digest dan membandingkannya dengan MAC yang dibawa oleh paket tersebut saat transmisi.

Paket hanya akan diterima apabila message digest identik; apabila tidak, client akan mengabaikan paket tersebut dan memberikan peringatan. Apabila hal ini terjadi pada paket yang diterima oleh server, server akan mengembalikan pesan khusus yang disebut crypto-NAK.

Dengan asumsi bahwa kunci simetris yang digunakan untuk mengenkripsi message digest hanya dibagikan antara server dan client yang benar-benar terlibat, lapisan message digest akan dapat menanggulangi sebagian besar ancaman-ancaman yang didekripsikan sebelumnya, termasuk middleman attack atau masquerade attack.

Symmetric key cryptography dianggap sangat reliabel dan sulit dikelabuhi. Meskipun dalam perkembangan terakhir, diketahui ada kemungkinkan memalsukan paket denga nilai MD5 tertentu, kewajiban paket memiliki format NTP dan transmit timestamp yang valid membuat bahkan algoritma MD5 dapat digunakan sebagai algoritma yang kuat secara kriptografi.

Namun, untuk sebuah time server bertaraf nasional dengan ribuan client, kewajiban memiliki shared message digest keys menjadi terlalu besar, apabila setiap pengguna dan setiap grup harus memiliki kunci message digest yang berbeda. Kolom key ID terbatas untuk 65.534 kunci berbeda. Penggunaan symmetric key cryptography mungkin hanya efektif apabila time server tersebut menggunakan broadcast/multicast modes.

c.      Autokey Sequence

Autokey sequences digunakan untuk mengotentikasi paket NTP menggunakan public key cryptography dan digital signature. Karena public key algorithm umumnya memiliki waktu eksekusi yang panjang dan bervariasi, tidak semua paket NTP dapat menggunakannya. Autokey sequence menggunakan paket yang memiliki digital signature untuk beberapa paket, dan mengaitkan paket-paket berikutnya ke paket tersebut menggunakan fungsi hash atau teknik pseudo-random sequence. Digital signatures digunakan hanya pada respon protokol dari server ke client, dan hanya jika server sudah disinkronisasikan dengan sumber otentik.

Protokol ini memiliki dua pendekatan: satu untuk client/server mode dan peer modes; dan satu untuk broadcast mode.

Client/Server dan Peer Mode

Dalam mode client-server, server mendistribusikan cookie unik per client. Server mengkomputasi cookie klien sebagai MD5 hash dari autokey dengan klien dan alamat IP server, kunci ID dan cookie Server. Ketika menerima request, server mengembalikan client cookie yang terenkripsi dan ditandatangani menggunakan private key server. Di sisi client, client mendekripsi client cookie dan memverifikasinya menggunakan public key server yang ada dalam sertifikat kunci publik. Untuk request-request berikutnya, baik client dan server menghitung dan memverifikasi message digest menggunakan client cookie.

Dalam peer mode, setiap peer beroperasi sebagai server terhadap peer lain yang beroperasi sebagai client; namun setiap peer memiliki sertifikat kunci publik unik, private/public sign key pair dan private/public host key pair masing-masing. Setiap peer mendapatkan client cookie dengan cara yang sama dengan yang didekripsikan diatas. Setelah client cookie didapatkan, masing-masing peer menghitung shared peer cookie sebagai nilai eksklusif OR dari client cookienya sendiri dengan client cookie dari peer lain.

Dengan hal ini, penyerang tidak akan dapat memalsukan sebuah paket tanpa memiliki client cookie, yang juga terkait dengan signature milik server, sehingga middleman attack tidak akan dapat membuat paket palsu atau memodifikasi paket yang dikirimkan antara client dan server.

Namun, terdapat celah keamanan yang disebut cookie snactcher, dimana middleman melakukan wiretap terhadap client cookie request untuk mengetahui IP address client dan server. Middleman kemudian mengirimkan client cookie request menggunakan kunci miliknya sendiri ke server. Dalam hal ini, masquerade attack dapat dilakukan.

Broadcast Modes

Desain protokol dalam broadcast mode jauh lebih rumit karena pertukaran dua arah tidak dimungkinkan. Secara garis besar, broadcast server mengkonstruksi sebuah key list yang digunakan untuk mengkomputasi message digest berdasarkan system clock.

Masing-masing client dan server menghitung kunci message digest dari autokey yang dibuat dari IP address dan key ID didalam paket, dan cookie. Secara prinsip, wiretap attack dapat dilakukan untuk memalsukan paket dengan key ID palsu dan message digest yang valid, namun pada praktiknya, message digest tidak akan cocok dengan key ID sebelumnya.

Dalam kasus terdapat paket palsu atau duplikat, jumlah repetisi nilai hash akan melebihi nilai maksimum yang dispesifikasikan nilai autokey. Dalam hal paket hilang, paket berikutnya akan menyebabkan client mengulangi nilai hash, namun nilai hash tersebut akan cocok dengan nilai autokey setelah beberapa waktu.

Middleman dapat melakukan wiretap terhadap paket NTP valid, mengganti nilai headernya dan menghitung ulang message digest. Namun, karena paket dikirimkan secara broadcast, hal ini akan cukup sulit dilakukan.

d.      Autokey Protocol

Autokey protocol digunakan untuk mengambil dan memperbaharui media kriptografi seperti sertifikat dan kunci identitas. Protokol ini didesain untuk beroperasi tanpa infrastruktur tambahan. Setelah pertukaran awal selesai, tidak akan ada overhead header paket lain untuk tujuan otentikasi.

Media kriptografi dalam protokol ini terbagi dalam dua kategori, nilai private (private values) dan public/private key pair. Private values adalah nilai sekali pakai yang memiliki waktu pakai terbatas, memuat nilai seed autokey dan server cookie. Nilai private secara rutin dibuat dan disamarkan dengan komputasi hash.

Public/private key pairs mencakup host keys, sign keys dan identity keys.

  • Host keys digunakan untuk mengenkripsi client cookie seperti yang dibahas pada autokey sequence sebelumnya.
  • Sign keys digunakan oleh sertifikat untuk memverifikasi signature paket. Apabila sign keys diganti, semua sertifikat yang menggunakannya harus dibuat ulang. Sertifikat memiliki waktu pakai terbatas, umumnya satu tahun, dan dibuat ulang sesuai keperluan.
  • Identity keys digunakan untuk mempersulit masquerade attack. Fungsi utamanya adalah untuk mengotentikasi sign keys ketika sertifikat tidak bisa didapatkan. Identity keys memiliki waktu pakai yang panjang dan digunakan dalam algoritma-algoritma yang sulit di-kriptoanalisis.

Referensi implementasi mengharuskan server dan client memuat RSA host key pair, RSA atau DSA sign key pair dan trusted certificate terkait, dan identity key pair opsional dari file-file ketika NTP pertama kali dijalankan. Client mendapatkan komponen public dari key pair-key pair ini setelah protokol berjalan.

Pesan autokey protocol disimpan di kolom ekstensi paket, yang ditandatangani dengan server private sign key dan diverifikasi menggunakan server public key sign key dari sertifikat server. Paket autokey memuat header NTP diikuti oleh satu atau lebih kolom ekstensi dan diakhiri dengan MAC.

Untuk melindungi dari replay attack yang dapat memakan sumber daya berlebihan, nilai client association mengikutsertakan timestamp setiap media kriptografi seperti client cookie, nilai autokey, dll. Kolom ekstensi memuat tipe pesan, association ID dan timestamp. Kolom init juga memuat filestamp yang digunakan untuk memverifikasi media kriptografi. Association ID adalah nilai sekali pakai yang diberikan ketika client diasosiasikan dengan signature. Timestamp diberikan ketika signature di-update dan filestamp diberikan ketika media di-update.

Timestamp di-update dari variabel paket hanya jika:

  • Tipe pesan dan association ID sama dengan nilai client association. Hal ini mencegah middleman mengganti isi kolom ekstensi sebuah client dengan isi kolom ekstensi milik client lain.
  • Timestamp lebih baru dari media timestamp. Hal ini mencegah middleman mengganti kolom ekstensi dengan nilai dari paket sebelumnya untuk replay attack.
  • Filestamp sama atau lebih baru dari media filestamp. Hal ini untuk memastikan dilakukannnya remobilisasi apabila media diperbaharui.
  • Kolom ekstensi signature valid.

Apabila kriteria diatas tidak terpenuhi, paket akan dibuang. Jika tidak ada paket valid yang diterima dalam suatu periode waktu, asosiasi di remobilisasi dan variabel media kriptografi diperbaharui. Apabila server clock dimundurkan karena alasan tertentu, kolom ekstensinya akan dibuang hingga menyebabkan timeout.

Penyerang dapat mencoba melakukan DoS attack yang memakan sumber daya komputasi server. Sebagai contoh, penyerang dapat melakukan replay sejumlah besar cookie request valid dengan kecepatan tinggi, sehingga menyebabkan server terhambat karena melakukan proses enkripsi dan perhitungan signature terus menerus.

Penceganan efektif terhadap serangan ini dan serangan DoS lainnya adalah dengan menggunakan manajemen rate seperti yang dideskripsikan dalam referensi implementasi. Hal ini akan membatasi operasi kriptografi dari setiap client selama tidak lebih dari satu paket per dua detik. Paket-paket yang berlebih akan dibuang tanpa mengganggu komputasi kriptografi yang berjalan.

IV.            Serangan Menggunakan Network Time Protocol

Selain menjadi target serangan, NTP juga dapat digunakan untuk melakukan serangan ke suatu sistem. Jenis serangan yang paling umum adalah NTP DdoS amplification attack.

a.      NTP DDoS Amplification Attack

NTP DDoS Amplification attack adalah tipe serangan DDoS yang mengeksploitasi NTP server publik untuk menyerang target dengan trafik UDP. Penyerang melakukan NTP DDoS dengan memalsukan pesan request berukuran beberapa byte, yang kemudian akan direspon oleh server dalam runtutan paket hingga berukuran besar.

b.      Cara Kerja NTP DDoS Attack

Protokol NTP didesain menggunakan UDP, yang tidak membutuhkan proses handshake sebagaimana halnya TCP, sehingga tidak selalu ada catatan request. NTP DDoS attack dimulai ketika penyerang membuat paket dengan memalsukan bagian alamat IP sumber, sehingga paket seakan-akan dikirim dari alamat IP yang menjadi target serangan, ke NTP server. Paket ini berukuran beberapa byte, namun NTP akan merespon dengan sejumlah besar data sehingga memperbesar ukurang serangan ini.

Pada ntpd versi 4.2.7 kebawah, serangan ini dapat dilakukan dengan menggunakan perintah MONLIST. Perintah ini sangat jarang digunakan, namun perintah ini memberikan detail 600 client terakhir yang terhubung ke NTP server. Penyerang membuat paket berisi perintah ini, dengan memalsukan alamat IP-nya, sehingga NTP server akan mengirimkan paket-paket berisi detail client terakhir tersebut ke alamat IP target.

c.      Mitigasi

NTP DDoS attack dapat dimitigasi dengan cara berikut:

  • Update NTP server. Semua versi ntpd dibawah versi 4.2.7 rentan dengan serangan ini. Dengan meng-upgrade ntpd ke versi yang lebih baru, serangan ini dapat dimitigasi.
  • Untuk server yang tidak dapat meng-upgrade ntpd ke versi yang lebih baru, fungsi monlist dapat di-disable dengan menambahkan noquery directive di ntp.conf sebagai berikut:

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

  • Men-disable eksekusi remote perintah monlist. Sebagai contoh, sebagiann besar distro unix/linux membatasi perintah monlist hanya dapat dieksekusi dari localhost.

V.            Kesimpulan

Serangan terhadap protokol NTP dapat menyebabkan sistem operasi menggunakan referensi waktu yang tidak tepat, sehingga mengganggu proses-proses yang membutuhkan referensi waktu seperti logging.

Terdapat beberapa skenario serangan yang mungkin terjadi terhadap operasi NTP:

  • middleman attack, melakukan wiretap atau menyadap jaringan;
  • masquarade attack, berpura-pura menjadi NTP server yang sah;
  • delay attack, memperlambat transmisi paket;
  • denial of service, membanjiri target dengan paket NTP atau memaksa target melakukan komputasi kriptografi yang tidak diperlukan.

Masing-masing skenario melakukan berbagai kombinasi tipe serangan seperti bogus attack, wiretap, dan replay attack. Untuk menanggulangi serangan-serangan ini, protokol NTP sudah menerapkan NTP security model yang terdiri dari On-Wire Protocol, Message Digest, Autokey Sequence dan Autokey Protocol.

Dalam NTP client/server mode dan peer mode, on-wire protocol dapat melindungi dari wiretap attack, termasuk dari paket palsu, replay, maupun paket hilang. Dalam broadcast mode, protokol ini melindungi dari paket palsu dan duplikat. Namun dalam semua mode, on-wire protocol belum melindungi dari middleman attack atau DoS attack.

Rate management yang disertakan dalam referensi implementasi NTP dapat melindungi dari sebagian besar serangan DoS, termasuk yang menarget algoritma kriptografi. Namun hal ini belum melindungi dari serangan distributed DoS (DDoS).

Message digest layer menggunakan symmetric key cryptography untuk melindungi dari middleman attack, termasuk paket palsu, modifikasi pesan dan masquerade attack. Namun hal ini tidak praktis dilakukan apabila jumlah client yang sangat banayak.

Autokey protocol dalam mode client/server dan peer mode rentan terhadap cookie snatcher, yang merupakan akibat dari dimungkinkannya middleman melakukan wiretap terhadap client request, mendapatkan client cookie dan berpura-pura menjadi NTP server yang sah. Serangan yang sama akan sulit dilakukan jika NTP dalam broadcast mode.

Selain menjadi target serangan, NTP juga dapat digunakan sebagai alat serangan, sebagaimana dalam hal NTP DDoS amplification attack, yang rentan dilakukan apabila NTP server masih menggunakan ntpd versi 4.2.7 atau sebelumnya.

Artikel ini dibuat oleh Agung Utama Putra (23215061) sebagai tugas akhir mata kuliah EL5228 Keamanan Sistem Operasi di program studi S2 Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.

Referensi

  • https://www.eecis.udel.edu/~mills/security.html
  • http://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/
  • https://www.incapsula.com/ddos/attack-glossary/ntp-amplification.html
  • http://www.omnisecu.com/ccna-security/ntp-network-time-protocol-modes-of-operation.php
  • https://www.eecis.udel.edu/~mills/onwire.html

Hidden Operating System CipherShed

1         CipherShed

Ciphershed adalah sebuah program yang dapat digunakan untuk melakukan enkripsi file, enkripsi drive pada harddisk (termasuk flashdisk dan eksternal HDD) bahkan enkripsi system operasi. Ciphershed mulai ada pada Juni 2014 sebagai pengganti program Truecrypt. Tidak ada alasan pasti mengapa Truecrypt tidak dilanjutkan lagi pengembangannya namun salah satu isu yang beredar yaitu berkaitan dengan hak paten. Release terakhir Truecrypt yaitu versi 7.2 dan merupakan software enkripsi yang paling banyak digunakan pada saat itu. CipherShed dikembangkan oleh Bill Cox, Alain Forget, Chris Horrocks, Niklas lemcke dan Jason Pyeron. Mereka juga sebelumnya merupakan pengembang dari Truecrypt. ChiperShed saat ini sudah mencapai release 0.7.4 pada tanggal 1 Februari 2016. CipherShed mewarisi kehandalan dan efisiensi dari Truecrypt yang lebih baik dibandingkan beberapa aplikasi enkripsi lainnya seperti Bitlocker, File Vault, dan PGP.

Ciphershed adalah software yang digunakan untuk membuat dan mengelola sebuah media penyimpanan dengan metode on-the-fly-encryption. On-the-fly-encryption berarti bahwa data yang akan disimpan di dalam harddisk akan di enkripsi terdahulu dan akan dilakukan dekripsi ketika data akan di load. Semua proses tersebut dilakukan tanpa instruksi dari user. Tidak ada data yang disimpan dalam drive dalam keadaan tidak terenkripsi. Seluruh file system yang dienkripsi termasuk nama file, nama folder, isi setiap file, ruang kosong di dalam volume, metadata dan lain-lainnya.

File dapat di copy dari atau ke dalam volume yang sudah di mount dengan Ciphershed dengan mudah seperti operasi copy/paste yang biasa termasuk drag and drop. File yang di akses atau di copy dari dalam volume yang terenkripsi Ciphershed akan dienkripsi secara otomatis karena proses enkripsi terjadi secara on-the-fly(di memori atau RAM). Namun bukan berarti seluruh file atau folder yang akan dienkripsi/didekripsi harus dimasukkan seutuhnya kedalam RAM.

Berikut adalah ilustrasi cara kerja Ciphershed sehingga tidak dibutuhkan tambahan RAM untuk operasinya. Sebagai contoh kita menyimpan file video dengan ekstensi .avi di dalam volume yang terenkripsi Ciphershed. Kemudian user memasukkan password (dan/atau key file) dan mount (open) volume tersebut. Selanjutnya user mengakses file video tersebut dan program pemutar video bekerja. Ketika program pemutar video bekerja maka program tersebut mengambil satu blok kecil file tersebut dan memasukkannya kedalam RAM. Dan didalam RAM blok tersebut di dekripsi secara otomatis. Selanjutnya satu blok tersebut akan di buka oleh program pemutar video. Selama proses pemutaran video dari blok pertama, program pemutar video mengambil blok kedua dari file video tersebut dan dimasukkan kedalam RAM untuk di dekripsi dan di buka oleh pemutar video. Proses ini berulang hingga blok terakhir dari file video tersebut. Proses ini dikenal dengan istilah on-the-fly enkripsi/dekripsi file. Operasi on-the-fly enkripsi/dekripsi ini bekerja pada semua jenis file (tidak hanya untuk file video).

Tidak ada data yang disimpan dalam volume dalam kondisi terdekripsi. Bahkan file temporary yang dalam kondisi terenkripsi. Bahkan ketika volume sudah di mount file didalamnya tetap dalam keadaan masih terenkripsi. Ketika komputer di shutdown atau restart maka volume tersebut akan dilakukan unmount secara otomatis dan file didalamnya tidak akan bisa diakses (terenkripsi). Termasuk ketika terjadi kehilangan arus sehingga komputer mendadak mati (tanpa proses shutdown), file didalam volume tidak akan bisa diakses sampai dilakukan mount kembali volume tersebut dengan password dan atau keyfile yang tepat.

Chipershed tersedia dalam berbagai system operasi baik Windows, GNU/Linux maupun Mac OS. File instalasi untuk masing-masing jenis system operasi dapat di download pada link berikut https://ciphershed.org/download/.

1.1       System Requirement

Selama penyusunan tulisan ini penulis tidak menemukan spesifikasi khusus system computer yang digunakan untuk instalasi program Ciphershed ini. Hal ini mungkin dikarenakan program Ciphershed kecil ukurannya yaitu pada versi 0.7.4 hanya berukuran tidak lebih dari 4 MB dan tidak terlalu banyak menggunakan system resource sehingga diasumsikan oleh developer program bahwa sistem komputer saat ini sudah cukup mengoperasikan CipherShed.

Namun demikian penulis mencoba sedikit mengumpulkan informasi dari proses instalasi dan penggunaan Ciphershed dengan rincian sebagai berikut :

a. Memory/RAM

Tidak ada ukuran persyaratan RAM untuk aplikasi Ciphershed ini hal ini kami asumsikan karena selama proses enkripsi/dekripsi yang dilakukan Ciphershed hanya memindahkan satu blok kecil dari file dan memprosesnya kemudian dilanjutkan dengan blok-blok berikutnya. Namun tidak ditemukan keterangan berapa bit, Byte atau KiloByte ukuran blok per operasi. Ukuran blok yang terdapat dalam userguide hanya ukuran block cipher. Namun demikian bisa jadi ukuran blok yang dienkripsi dan ukuran blok yang diproses sama yaitu 128 bit. Sehingga dengan spesifikasi system operasi saat ini diasumsikan sudah cukup untuk mendukung proses dari CipherShed.

b. Hardisk/HDD

Didalam user guide dari software ini juga tidak ditemukan adanya syarat ukuran hardisk minimum. Namun demikian sebagai gambaran file instalasi untuk system operasi windows memiliki ukuran 3,33 MB dan folder hasil instalasi Ciphershed yang terdapat pada C:\Program Files\CipherShed berukuran 7,92 MB sebagaimana pada gambar berikut:

gb1

Gambar 1. Ukuran file hasil instalasi

Sedangkan syarat minimum untuk ukuran harddisk yang harus dipenuhi untuk mengelola file terenkripsi, yaitu untuk ukuran file volume yang akan di enkripsi. File ini harus memiliki ukuran minimum file container tergantung jenis filesystem yang digunakan. Ukuran file container untuk systemfile FAT yaitu minimum 275 KB dan untuk filesystem NTFS yaitu minimum 2829 KB

1.2       Fitur CipherShed

Fitur enkripsi yang disediakan CipherShed yaitu enkripsi container, drive dan operating system. Pada masing-masing jenis tersebut juga dibagi menjadi dua jenis yaitu normal encryption dan hidden encryption. Penjelasan detailnya adalah sebagai berikut:

a. Encryption Container

Encryption Container dibagi menjadi dua jenis, yaitu normal encryption container dan Hidden encryption container. Normal encryption container yaitu pembuatan file yang dinamakan sebagai volume tempat menyimpan file-file yang akan dienkripsi dengan CipherShed. Untuk mengakses data didalam normal encryption container maka file volume harus di mount ke dalam drive tertentu. Seterusnya selama dalam kondisi mount data akan dienkripsi sebelum sampai ke user dan akan di dekripsi tepat sebelum di tulis ke harddisk.

Hidden Encryption Container adalah pembuatan volume enkripsi didalam normal encryption container. Hidden enkripsi bisa menggunakan metode enkripsi dan hash algoritma yang berbeda dengan normal container tempat disimpannya hidden enkripsi. secara logic normal encryption dan hidden encryption sama namun menggunakan satu buah container yang sama dan berada pada file container yang sama. Password yang digunakan untuk normal encryption dan hidden encryption harus berbeda. Sehingga ketika kita akan mengakses file pada normal encryption kita memasukkan password untuk normal encryption dan ketika kita akan mengakses hidden encryption maka kita unmounts dahulu normal encryption dan mount kembali container tersebut dengan password untuk hidden encryption container. Masing-masing menempati partisi yang berbeda didalam file container.  Berikut adalah layout container CipherShed.

gb2

Gambar 2. Layout CipherShed Container sebelum dan sesudah adanya Hidden Container

b. Encryption Drive

Encryption Drive juga dibagi kedalam dua kategori yaitu normal drive encryption dan hidden drive encryption. Secara logic encryption container dan encryption drive sama yang membedakan adalah pada media yang di enkripsi. pada encryption container dibuat file container untuk enkripsi semua file didalamnya. Sedangkan pada drive encryption yaitu keseluruhan drive yang di enkripsi. Cara aksesnya yaitu dengan memilih drive dan mount dengan memasukkan password enkripsi. Begitu cara mengakses hidden drive encryption dengan memasukkan password untuk hidden encryption drive. Secara fisik layout normal drive dan hidden drive sama dengan container pada gambar 2 di atas.

c. Encryption Operating System

Pada Encryption OS juga dibagi menjadi dua kategori yaitu Normal Encryption OS dan Hidden Ecryption OS. Encryption OS mirip dengan fitur lainnya dari CipherShed yang membedakan yaitu password diinput oleh user sebelum booting system operasi. Perbedaan lainnya yaitu pad layout hiddwnnya dimana volume OS hidden disimpan didalam normal encryption drive. Sedangkan OS Decoy pada satu buah drive tersendiri. Untuk membuat Hidden OS ini disarankan menggunakan algoritma enkripsi dan hash yang sama dengan container nya.

gb3

Gambar 3. Layout partisi Hidden OS

1.3       Algoritma Enkripsi dan Algoritma Hash

ChiperShed menyediakan pilihan algoritma enkripsi kepada user sebagaimana table berikut :

Algoritma Desainer Algoritma Key Size (Bits) Block Size (Bits) Mode of Operation
AES J. Daemen, V. RIjmen 256 128 XTS
Serpent R. Anderson, E. Biham, L. Knudsen 256 128 XTS
Twofish B. Schneier, J. Kelsey, D. Whiting, D. Wagner, C. Hall, N. Ferguson 256 128 XTS
AES-Twofish 256, 256 128 XTS
AES-Twofish-Serpent 256¸256, 256 128 XTS
Serpent-AES 256, 256 128 XTS
Serpent-twofish-AES 256, 256, 256 128 XTS
Twofish-Serpent 256, 256 128 XTS

AES

Advanced Encryption Standard (AES) merupakan algoritma yang didesain oleh Rijndael (Vincent Rijmen dan Joan Daemen, diterbitkan pada tahun 1998). Pada bulan Juni 2003, setelah NSA (Badan Keamanan Nasional Amerika) melakukan review dan analisis AES, U.S. CNSS (Committee on National Security Systems) mengumumkan bahwa desain dan kekuatan AES-256 (dan AES-192 ) cukup untuk melindungi informasi rahasia sampai ke tingkat Top Secret. Hal ini berlaku untuk semua Departemen Pemerintah di Amerika atau Instansi yang mempertimbangkan akuisisi atau penggunaan produk yang menggunakan Advanced Encryption Standard (AES) untuk memenuhi persyaratan Information Assurance yang terkait dengan perlindungan sistem keamanan nasional dan/atau informasi keamanan nasional. CipherShed menggunakan AES dengan 14 ronde dan kunci 256-bit (yaitu, AES-256, yang diterbitkan pada tahun 2001) yang beroperasi dalam mode XTS.

Serpent

Serpent dirancang oleh Ross Anderson, Eli Biham, dan Lars Knudsen yang diterbitkan pada tahun 1998. Algoritma ini menggunakan kunci 256-bit, 128-bit blok, dan beroperasi dalam mode XTS. Serpent adalah salah satu finalis AES. Algoritma ini tidak terpilih sebagai algoritma AES yang diusulkan meskipun tampaknya memiliki keamanan yang lebih tinggi daripada Rijndael. Lebih konkret, Serpent memiliki keamanan yang tinggi, sementara Rijndael hanya memiliki marjin keamanan yang cukup memadai. Rijndael juga telah menerima beberapa kritik bahwa struktur matematika yang mungkin menyebabkan serangan di masa depan.

Tim Twofish menyajikan tabel faktor keamanan bagi para finalis AES. Faktor keamanan didefinisikan sebagai jumlah putaran dari cipher dibagi dengan jumlah terbesar dari putaran yang telah rusak. Oleh karena itu, cipher yang rusak memiliki faktor keamanan terendah. Serpent memiliki faktor keamanan tertinggi dari semua finalis AES yaitu 3.56 (untuk semua ukuran kunci yang disupport). Rijndael-256 memiliki faktor keamanan sebesar 1,56. Terlepas dari fakta-fakta ini, Rijndael dianggap pilihan yang tepat untuk AES untuk kombinasi dari keamanan, kinerja, efisiensi, implementability, dan fleksibilitas.

Twofish

Twofish dirancang oleh Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, dan Niels Ferguson yang diterbitkan pada tahun 1998. Algoritma ini menggunakan 256-bit kunci dan 128-bit blok dan beroperasi dalam mode XTS. Twofish adalah salah satu finalis AES. Cipher  ini menggunakan key-dependent S-boxes. Tim Twofish menegaskan bahwa key-dependent S-boxes merupakan bentuk margin keamanan terhadap serangan tidak diketahui .

AES-Twofish

Dua cipher beroperasi dalam mode XTS. Setiap blok 128-bit pertama dienkripsi dengan Twofish (256-bit key) dalam modus XTS dan kemudian dengan AES (256-bit key) dalam modus XTS. Setiap cipher menggunakan kunci sendiri. Semua kunci enkripsi saling independen (perhatikan bahwa tombol header juga independen, meskipun mereka berasal dari satu password. Lihat tabel di atas untuk informasi tentang cipher.

AES-Twofish-Serpent

Tiga cipher beroperasi dalam mode XTS . Setiap blok 128-bit pertama dienkripsi dengan Serpent (256-bit key) dalam modus XTS, kemudian dengan Twofish (256-bit key) dalam modus XTS, dan akhirnya dengan AES (256-bit key) dalam modus XTS. Setiap cipher menggunakan kunci sendiri. Semua kunci enkripsi saling independen (perhatikan bahwa kunci header juga independen, meskipun mereka berasal dari satu password.

Twofish-Serpent

Dua cipher beroperasi dalam mode XTS. Setiap blok 128-bit blok pertama dienkripsi dengan Serpent (256-bit key) dalam modus XTS dan kemudian dengan Twofish (256-bit key) dalam modus XTS. Setiap cipher menggunakan kunci sendiri. Semua kunci enkripsi adalah saling independen (perhatikan bahwa kunci header juga independen, meskipun mereka berasal dari satu password. Lihat tabel di atas untuk informasi tentang cipher.

Sedangkan algoritma hash yang disediakan yaitu RIPEMD-160, SHA-512(SHA2), dan Whirlpool. Secara default algoritma hash yang akan dipilih yaitu RIPEMD-160.

1.4       Format Layout Container

Pada subbab diatas sudah dijelaskan gambaran besar di dalam container CipherShed. Pada subbab ini akan dibahas lebih detail mengenai rincian isi byte per byte di dalam container. Untuk lebih jelas dengan format Container CipherShed dapat dilihat pada table berikut:

Offset (bytes) Size (Bytes) Encryption Status Description
0 64 Unencrypted Salt
64 4 Encrypted ASCII string “TRUE”
68 2 Encrypted Volume header format version
70 2 Encrypted Minimum program version required
72 4 Encrypted CRC – 32 checksum
76 16 Encrypted Reserved
92 8 Encrypted Size of hidden volume
100 8 Encrypted Size of volume
108 8 Encrypted Byte offset of the start of the master key scope
116 8 Encrypted Size of the encrypted area
124 4 Encrypted Flag bits
128 4 Encrypted Sector size (in bytes)
132 120 Encrypted Reserved
252 4 Encrypted CRC – 32 checksum
256 Var. Encrypted Concatenated primary and secondary master keys
512 65024 Encrypted Reserved
65536 65536 Encrypted/ Unencrypted Hidden volume header
131072 Var. Encrypted Data area
S-131072 65536 Encrypted/ Unencrypted Backup header
S-65535 65536 Encrypted/ Unencrypted Backup header for hidden volume

2         Proses Verifikasi Password

CipherShed merupakan aplikasi opensource sehingga kita bisa melihat algoritma dan script didalamnya. Dan dari source code tersebut kita bisa melihat proses verifikasi password untuk mount Container. Selain melalui sourcecode kita juga bisa melihat proses verifikasi tersebut berdasarkan user guide dari aplikasi CipherShed. Proses verifikasi password pada saat mount container merupakan kombinasi dari jumlah algoritma enkripsi dan algoritma hash yang disediakan  sehingga secara keseluruhan yaitu 3 algoritma hash dan 8 algoritma enkripsi total 24 kombinasi4. Proses verifikasi password pada CipherShed adalah sebagai berikut:

  • Ketika proses mount di jalankan, maka 512 byte pertama dari container akan dibaca oleh RAM dimana 64 byte pertamanya merupakan salt.
  • 512 byte pertama dari header hidden container juga dimasukkan ke RAM. Jika menurut offset yaitu berada pada byte ke 65536-66047. Rincian 512 byte header dari hidden container sama dengan normal container.
  • CipherShed akan melakukan dekripsi dari header pada step 1. Semua proses terjadi di RAM dan tidak ditulis ke harddisk. Proses disini merupakan proses trial and error untuk menguji semua kombinasi berikut rinciannya:
    1. PRF digunakan oleh fungsi penurunan header key yang sudah ditentukan dalam PKCS-5 yaitu salah satu dari SHA-512, RIPEMD-160, Whirlpool. Password yang diberikan oleh user akan melalui fungsi penurunan header key dan menghasilkan nilai sequence dari header encryption key dan secondary header key(XTS mode). Key tersebut merupakan key untuk dekripsi header volume.
    2. Enkripsi algoritma AES-256, Serpent, Twofish, AES-Serpent, AES-Twofish-Serpent, dan seterusnya.
    3.  Mode operasi: XTS, LRW, CBC.
    4. Key Size(s).

Proses dekripsi berhasil jika 4 byte pertama dari data yang didekripsi berisi string ASCII “TRUE” dan jika CRC-32 Checksum dari 256 byte terakhir dari data yang didekripsi (header volume) sesuai dengan nilai yang terletak di byte ke 8 dari data yang didekripsi. Jika kondisi tidak terpenuhi, proses diulangi dari step 3 namun data yang dibaca bukan dari step1 tapi dari step 2. Yaitu pada hidden container. Jika kondisi tidak terpenuhi juga maka proses mount berhenti dikarenakan salah password, volume corrupted, atau dikarenaka file tersebut bukan file CipherShed.

3         Hidden Encryption Operating System

Hidden Encryption Operating System (Hidden OS) sebagaimana sudah dijelaskan secara singkat sebelumnya merupakan salah satu fitur dari CipherShed yang mampu menyembunyikan Sistem operasi kita secara sempurna. Keberadaan Hidden OS sangat sulit dibuktikan karena disimpan didalam drive yang sama dengan encryption container. Hal ini membuat didalam drive tersebut terdapat hidden OS ataupun tidak didalamnya tetap berisi random number.  Untuk mengakses Hidden OS user cukup memasukkan password hidden OS sebelum booting. Dan ketika user ingin mengakses kedalam OS decoy yang isinya tidak terlalu penting dan tidak perlu dirahasiakan maka user hanya memasukkan password OS decoy nya. Karena Hidden OS dan OS decoy menggunakan bootloader yang sama untuk mengakses masing-masing OS tersebut.

3.1       Step-by-step Pembuatan Hidden OS

Langkah- pembuatan Hidden OS adalah sebagai berikut:

3.1.1. Install CipherShed

CipherShed merupakan aplikasi opensources yang tersedia untuk berbagai platform baik linux, Windows, maupun MAC OS. Instalasi CipherShed sangat mudah seperti aplikasi lain pada umumnya. Penulis sendiri yang pernah mencoba melakukan instalasi pada platform Linux dan Windows. Untuk Windows cukup klik dua kali pada file instalasi dan seterusnya ikuti petunjuk instalasi. Sedangkan pada platform linux dengan perintah melalui terminal dengan mengetikkan ./ciphershed.sh kemudian ikuti petunjuk instalasi nya hingga selesai.

3.1.2. Buat Hidden OS

Langkah pembuatan Hidden OS adalah sebagai berikut:

a.Klik create volume

Klik create volume hingga muncul windows pilihan jenis fitur enkripsi yang ada pada CipherShed.

b.Pilih Encrypt the system partition or entire system drive

Di antara 3 pilihan tersebut yaitu pembuatan container encryption, drive encryption dan dan encrypt the system partition. Pilih encrypt the system partition untuk melakukan enkripsi file system dari Operating System dan klik next.

gb4

c.Pilih Hidden

Terdapat dua menu pilihan yaitu menu normal dan hidden. Normal yaitu untuk membuat normal OS encryption dan Hidden untuk hidden OS encryption. Pada menu normal maka yang di enkripsi adalah system operasi yang sedang berjalan tempat instalasi CipherShed. Sedangkan pada menu Hidden OS yaitu akan membuat drive kedua sebagai outer volume (encryption drive) dengan didalamnya hidden ecryption container berisi Hidden OS. Hidden OS yang terbentuk adalah hasil clone dari OS yang berjalan saat ini.

Hal yang perlu diperhatikan juga yaitu drive tempat disimpannya Hidden OS harus lebih besar dari OS yang sedang berjalan saat ini. Karena Hidden OS di clone dari OS yang sedang berjalan. Selanjutnya ikuti petunjuk dengan klik next hingga masuk ke tahap berikutnya.

d.Pilih Algoritma Enkripsi dan Algoritma Hash

Pilih jenis elgoritma enkripsi dan algoritma hash. Sebaiknya menggunakan default yaitu algoritma enkripsi AES dan algoritma hash RIPEMD160. Karena algoritma AES menggunakan source memori paling sedikit. Hal yang perlu diperhatikan yaitu pada saat membuat OS decoy juga harus menggunakan algoritma enkripsi dan Hash yang sama dengan Hidden OS. Karena OS decoy dan OS Hidden menggunakan bootloader yang sama.

e. Masukkan password untuk Container encryption (Outer Volume)

Selanjutnya akan diminta untuk memberikan password untuk encryption drive (outer volume). Setelah password untuk outer volume dibuat maka akan dilakukan format untuk mengambil random poolkey.

gb5

f. Masukkan Password untuk Hidden OS

Proses format diatas akan membutuhkan waktu yang lama tergantung dengan ukuran drive OS yang akan dicopy. Langkah selanjutnya setelah format yaitu dengan memasukkan password untuk Hidden OS dan dilanjutkan dengan klik next untuk mulai clone OS yang ada saat ini. Untuk memulai proses cone maka OS akan restart dan diminta untuk memasukkan password dari Hidden OS hingga proses clone berjalan.

gb6

g. Wipe OS asli

Dengan selesainya proses cloning maka pembuatan hidden OS sudah selesai. Untuk mengakses Hidden OS user cukup memasukkan password sebelum mulai booting. Sedangkan OS decoy masih belum dibuat. Untuk mengakses OS sebelumnya pada saat booting tekan tombol ESC. Langkah selanjutnya setelah clone OS asli yaitu wipe OS asli melalui hidden OS. Ketika masuk ke Hidden OS maka cipherShed akan otomatis terbuka untuk menawarkan wipe OS asli (hapus OS). Ikuti petunjuknya untuk wipe OS asli.

3.1.3. Install Decoy OS

Langkah selanjutnya yaitu dengan menginstall Decoy OS. Decoy OS bisa menggunakan jenis OS yang berbeda dengan Hidden OS. Dengan menginstal ulang OS maka bootloader untuk Hidden OS akan terhapus, namun jangan khawatir karena setelah install decoy OS dan istall CiphrShed, Hidden OS akan bisa di akses kembali. Pastikan install decoy OS bukan pada drive tempan tersimpannya Hidden OS.

3.1.4. Instal CipherShed dan buat Normal OS Encryption

Setelah Decoy OS berhasil diinstal langkah selanjutnya yaitu menginstall CipherShed. Kemudian membuat normal OS encryption. Untuk pembuatan Normal OS encryption dengan pilih create volume kemudian pilih Encrypt the system partition or entire system drive dan selanjutnya pilih normal dan next hingga pembuatan file ISO bootable selesai dan burn ke CD sehigga proses enkripsi bisa dilanjutkan hingga selesai. Proses pembuatan Decoy OS dan Hidden OS sudah berhasil.

Decoy OS dan Hidden OS sudah terpasang pada satu system computer. Untuk mengakses Decoy OS maka pada saat booting cukup memasukkan password untuk Decoy OS dan untuk mengakses Hidden OS juga cukup memasukkan password untuk Hidden OS.

3.2       Kelebihan/kekurangan Hidden OS

Kelebihan dari adanya Hidden OS ini adalah sebagai berikut:

a. Sangat sulit dibuktikan keberadaannya.

Hidden OS sangat sulit dibuktikan keberadaannya karena menempati space kosong pada encryption drive. Pada space kosong tersebut baik terdapat hidden OS atau tidak ada space kosong tersebut akan di isi random number.

b. Dapat digunakan untuk Menyimpan file yang sangat rahasia

Hidden OS dapat digunakan untuk menyimpan file atau program yang sangat rahasia. Karena sangat sulit dibuktikan keberadaannya kita bisa menyimpan file dan program yang sangat rahasia didalam Hidden OS. Dan menyimpan file yang tidak terlalu penting pada decoy OS.

c. Plausible Deniability

Hidden OS bisa digunakan untuk Plausible Deniability (penyangkalan yang masuk akal) karena keberadaannya yang sangat sulit dibuktikan. Sehingga ketika sedang terdesak dan dipaksa mengungkapkan password untuk akses OS kita maka cukup memberikan password dari Decoy OS dimana hanya terdapat file-file yang tidak terlalu rahasia.

Sedangkan kekurangan Hidden OS adalah sebagai berikut:

a. Lebih lambat dari system Normal

Karena Hidden OS bekerja dengan metode on-the-fly encryption maka prosesnya berjalan didalam memory(RAM), sehingga semua proses dekripsi dan enkripsi dilakukan didalam RAM yang tentu saja menambah waktu proses dari setiap operasi. Namun demikian baik Hidden OS maupun Decoy OS akan bekerja sama lambatnya karena sama-sama bekerja dengan metode enkripsi yang sama.

b. Tidak berguna untuk sistem server yang membutuhkan akses realtime.

Untuk system server yang membutuhkan akses realtime setiap saat sangat tidak direkomendasikan menggunakan Hidden OS. Karena selain kinerja system yang menjadi lebih lambat, juga jika attacker menyerang melalui aplikasi atau software yang terinstall didalam system tetap akan bisa mengaskses data didalam harddisk seperti tidak terenkripsi.

c. hidden OS sangat rentan terhadap kerusakan system OS.

Hidden OS menempati drive yang sama dengan encryption drive di dalam system computer. Sehingga ketika user mengakses encryption drive nya menjadi sangat rentan. Terjadi corrupt file dari Hidden OS. Untuk menghindari masalah ini maka user harus membatasi penyimpanan file pada ecryption drive sehingga tidak merusak file dari Hidden OS didalamnya.

 

Referensi

    1. CipherShed software. “0.7.4.0 released! | CipherShed.” Available at http://www.cipheshed.org
    2. CipherShed software. “CipherShed User’s Guide, Version 0.7.3,” available at http://www.cipheshed.org/doc/ CipherShed User’s Guide.pdf
    3. Zhang, Y. Zhou, and J. Fan, “The forensic analysis of encrypted Truecrypt volumes,” in Progress in Informatics and Computing (PIC), 2014 International Conference on, 2014, pp. 405–409.
    4. Matt, “Tips for dealing with TrueCrypt Files during Forensic exams | Digital Forensics Tips.” Available at http://digitalforensicstips.com/2014/05/some-basic-options-when-dealing-with-truecrypt-aka-finally-a-forensics-post/
    5. Hargreaves and H. Chivers, “Recovery of Encryption Keys from Memory Using a Linear Scan,” 2008, pp. 1369–1376.
    6. Thurner, M. Grün, S. Schmitt, and H. Baier, “Improving the Detection of Encrypted Data on Storage Devices,” in 2015 Ninth International Conference on IT Security Incident Management IT Forensics (IMF), 2015, pp. 26–39.

 

Artikel ini dibuat oleh M. Alimuddin sebagai tugas akhir mata kuliah Keamanan Sistem Operasi (EL5233) di Program Studi S2 Rekayasa Manajemen keamanan Informasi. Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.

Vulnerability pada IOS

Pada era ini, Sistem Operasi merupakan elemen penting dari suatu sistem komputer. Sistem Operasi adalah software yang berfungsi untuk menjalankan semua operasi-operasi dasar sistem komputer, melakukan manajemen dan kontrol hardware, serta menyediakan layanan untuk menjalankan aplikasi software lainnya. Jadi user tidak dapat menjalankan aplikasi-aplikasi yang ada pada suatu komputer tanpa adanya Sistem Operasi. Sistem operasi mempunyai penjadwalan yang sistematis mencakup perhitungan penggunaan memori, pemrosesan data, penyimpanan data, dan sumber daya lainnya.

Alur kerja sistem Komputer

Sudah menjadi logika yang sangat umum bahwa sesuatu hal yang penting itu sangat rentan untuk dibajak atau dicuri oleh orang lain. Begitu juga halnya dengan Sistem Operasi yang sangat rentan di-hack oleh orang-orang yang tidak bertanggung jawab. Oleh karena itu, Keamanan dari suatu Sistem Operasi adalah kebutuhan utama dan sangat penting. Dapat dibayangkan jika suatu Sistem Operasi berjalan tanpa adanya fitur keamanan, akan banyak sekali serangan-serangan yang datang, seperti virus, spam, trojan, dll. Namun tingkat keamanan suatu sistem operasi dapat berbeda-beda, tergantung kebutuhan user.

Kebutuhan tingkat keamanan suatu Sistem Operasi juga didasari dari aplikasi-aplikasi yang berjalan diatas sistem operasi tersebut. Contohnya tingkat keamanan suatu sistem operasi yang diatasnya menjalankan aplikasi perbankan berbeda dengan tingkat keamanan suatu sistem operasi yang menjalankan aplikasi Web Server.

Pada artikel kali ini, penulis akan mencoba memaparkan penerapan keamanan informasi pada Operating System iOS yang menjadi OS smartphone iPhone. Sistem operasi dari Apple ini adalah salah satu sistem operasi yang cukup populer pada zaman ini. Meskipun sistem operasi ini cenderung eksklusif, namun masih bisa dibiang sukses. Terbukti dari banyaknya peminat yang membeli perangkat Apple yang menggunakan iOS. Padahal, awalnya iOS ini adalah sistem operasi untuk produk ponsel cerdas, iPhone. Namun, iOS kemudian diterapkan pada produk Apple lainnya, seperti iPad, iPod Touch, bahkan Apple TV. Bahkan yang terbaru, iOS telah diterpakan pada perangkat jam tangan pintar (Smartwatch).

  1. Sejarah iOS

Hingga saat ini, perusahaan Apple Computer, Inc. Telah merilis hingga iOS versi 9. Berikut adalah penjelasan singkat mengenai sejarah iOS.

Pemilik Apple, Steve Jobs pertamakali memperkenalkan iPhone pertama kali pada tahun 2007. Saat itu, Steve Jobs menyematkan iOS versi pertama pada produk ponsel cerdas pertama besutan perusahaannya tersebut. Versi pertama iOS ini merupakan perkembangkan dari OS X yang telah ada lebih dulu pada perangkat laptop Apple. Sistem operasinya sendiri saat itu masih tertutup untuk pengembang pihak ketiga. Hingga kemudian Apple merilis iPhone 2G yang juga mengusung iOS versi 1.0.

Masih pada tahun yang sama, atau lebih tepatnya pada bulan september 2007, Apple merilis update dari iOS yang baru mereka luncurkan pada awal tahun menjadi iOS 2.0.  Versi inilah yang akhirnya dapat membuat perangkat iPhone menjadi lebih dikenal dunia. Hal itu dikarenakan dukungan dari pihak ketiga telah terbuka. Artinya, pengembang bisa membuat aplikasi pendukung di sistem operasi ini. Hal itu berarti, App Store pertama kali ada ketika iOS 2.0 meluncur. Namun, pengguna baru bisa merasakan sistem yang baru ini pada Juli 2008 saat iPhone 3G diluncurkan.

Úpdate terbaru dari iOS muncul seiring dengan dibesutnya perangkat iPhone 3GS oleh perusahaan Apple itu sendiri. Namun bukan lah Apple namanya jika tidak ada planning matang dibalik seluruh keputusan yang diambil, oleh karena itu, untuk mendukung perangkat ini, Apple meluncurkan sistem operasi generasi berikutnya, iOS 3.0. Pada sistem operasi ini, banyak fitur-fitur menarik seperti dukungan terhadap MMS, push notification, keyboard landscpae, voice note, dan kompas. Sistem operasi ini juga telah mendukung IMAP dan shake to shuffle.

Pada versi keempatnya, atau dikenal dengan iOS 4, Apple menyuntikan pembaruan yang cukup besar. Diantaranya adalah dukungan multitasking yang lebih efektif agar baterai lebih hemat, pengaturan menyalakan dan mematikan data seluler, penambahan dukungan fitur pada foto, pengaturan playlist yang lebih kreatif, serta dukungan passcode. Tentunya, penambahan fitur yang banyak ini membuat sistem operasi yang dirilis tahun 2010 termasuk salah satu sistem operasi Apple yang cukup bagus.

Pada versi kelimanya, iOS juga membawa fitur yang cukup banyak. Fitur-fitur yang ada di iOS 5 ini cukup penting. Contohnya adalah iMessage, kemudahan mengambil foto dengan menekan tombol, serta notifikasi yang muncul pada bagian atas. Fitur notifikasi inilah yang cukup menarik karena kemudahan pengguna dalam membaca informasi yang masuk. Selain itu, pada iOS 5 ini juga terdapat dukungan cloud storage, sinkronisasi iTunes melalui jaringan Wi-Fi, serta kehadiran Siri. Siri merupakan perubahan terbesar yang ada di iOS 5. Pasalnya, kehadiran Siri cukup membawa perubahan penggunaan teknologi karena Siri adalah aplikasi asisten pintar untuk pengguna. Sistem operasi iOS 5 cukup populer lantaran produknya, seri iPhone 4S cukup laku di pasaran.

Versi keenam iOS yang dirilis pada tahun 2012 cukup membawa masalah. Masalah yang cukup serius adalah tidak didukungnya Google Maps, aplikasi peta terkenal yang banyak digunakan. Apple mencoba menggantinya dengan Apple Maps. Tetapi aplikasi dianggap kurang baik oleh pengguna. Terlepas dari masalah yang ada, iOS 6 membawa fitur menarik seperti integrasi Facebook, fitur Facetime, notification center, serta metode pembayaran Passbook.

Pada versi ketujuh, tidak ada penambahan fitur baru yang cukup baru yang berpengaruh besar. Kalaupun ada tidaklah terlalu menarik. Contoh fitur barunya adalah control center untuk pengaturan cepat dan Airdrop untuk berbagi konten. Yang justru menarik perhatian dari iOS 7 adalah tampilan antarmukanya yang benar-benar baru. Sistem operasi yang keluar tahun 2013 ini hadir dengan desain ikon yang lebih sederhana serta latar animasi yang menarik.

Diluncurkan pertama kali pada tahun 2014, iOS 8 membawa aplikasi-aplikasi baru bernama Healt yang tentunya dapat didownload di Apple Store. Pada sistem operasi ini juga terdapat peningkatan fitur pada foto, dukungan iCloud Drive, fitur berbagi konten untuk keluarga, aktivasi Siri lewat suara, serta pengetikan yang lebih cepat lewat Quicktype. Sistem operasi ini juga hadir dengan desain antarmuka yang lebih flat dibandingkan sebelumnya.

 

  1. Vulnerability

Sudah menjadi rahasia umum bahwa iOS merupakan salah satu Operating System yang terbaik dalam hal keamanan. Bahkan baru-baru ini telah tersiar berita yang intinya Biro Investigasi Federal atau FBI meminta Apple untuk membuat Backdoor guna melakukan penyelidikan terhadap teroris. Hal itu dilakukan FBI karena pihak FBI sendiri kesulitan dalam menembus sisi keamanan perangkat iOS tersebut. Tentu saja permintaan tersebut ditolak Apple karena dapat mengancam keamanan data pelanggan Apple.

Namun hal tersebut bukan berarti iOS tidak memiliki celah keamanan. Baru-baru ini telah ditemukan Bug pada mesin rendering web, yaitu Webkit yang ada pada  iOS sebelum versi 9.3, aplikasi Safari sebelum versi 9.1, dan tvOS sebelum versi 9.2. Webkit adalah salah satu mesin pembaca atau penampil web (rendering web) yang dipakai oleh browser-browser web yang ada saat ini. Webkit merupakan salah satu engine yang menguasai pasar engine Web Browser dengan banyaknya web browser yang menggunakannya. Webkit pada awalnya dikembangkan oleh perusahaan Apple, KDE, Nokia, Google, RIM, Palm, Samsung, dan perusahaan lainnya. Dalam bahasa awamnya,webkit adalah salah satu GUI dimana kita diperbolehkan menggunakan format HTML untuk menampilkannya di browser yang lebih dikenal dengan istilah embedding. Web browser dapat dijadikan sebaga widgets di dalam sebuah aktivitas untuk menampilkan format HTML. Web browser di android dikenal dengan istilanh Webkit, sama dengan istilah Safari web browser kalau di produk Apple.

Seperti yang telah dipublikasikan di CVE-2016-1783, memungkinkan penyerang remote untuk mengeksekusi kode arbitrary atau menyebabkan penolakan layanan (korupsi memori) melalui situs dibuat. Pengolahan konten web jahat dibuat dapat menyebabkan eksekusi kode sewenang-wenang. Berdasarkan dokumen yang dipublikasikan CVE tersebut, vulnerability ini dapat menyerang 4 aspek keamanan penting, yaitu Confidentiality, Integrity, Availability, dan Access. Hal tersebut karena vulnerability ini dapat mengakibatkan kebocoran informasi yang dapat menyebabkan file sistem juga terungkap. Selain itu dapat juga menyerang integritas dan availability sistem.

 

  1. Penanganan

Pada dasarnya untuk bug pada Webkit ini telah diatasi oleh patch baru yang telah dikeluarkan pada, yaitu pada iOS 9.3. Namun masih ada informasi di forum-forum yang mengatakan bahwa masih ada masalah-masalah yang timbul akibat bug Webkit ini. Namun informasi terkait masalah-masalah yang belum terselesaikan masih belum terbukti kebenarannya.

  1. Kesimpulan

Bug yang ada pada Webkit di Sistem Operasi iOS ini memang dapat memberikan ancaman-ancaman serius terhadap filesistem iOS tersebut. Namun setelah mengetahui adanya bug pada Webkit ini, Apple langsung bertindak cepat dalam melakukan perbaikan dengan merilis update patch terbaru yang mana bugs Webkit ini telah dapat diatasi.

Artikel ini dibuat oleh Muhamad Fadil Al Anwary (23215096) sebagai tugas mata kuliah EL5228 Keamanan Sistem Operasi di program studi S2 Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.

Referensi:

  1. http://www.pricebook.co.id/article/news/2015/01/26/630/sejarah-perkembangan-ios-dari-awal-sampai-versi-kedelapan
  2. https://www.cvedetails.com/cve/CVE-2016-1783/
  3. https://support.apple.com/en-us/HT206166
  4. http://www.livehacking.com/tag/webkit/
  5. https://support.apple.com/en-us/HT206171

Keamanan Platform Smartphone

Dengan perkembangan teknologi yang semakin canggih, kini orang-orang lebih memilih melakukan segala aktivitasnya menggunakan perangkat yang dapat dibawa kemana saja seperti smartphone. Saat ini smartphone menjadi perangkat yang penting dan hampir setiap orang memiliki smartphone dalam genggaman mereka dengan fitur dan aplikasi yang berbeda-beda. Dengan fitur dan aplikasi tersebut maka smartphone saat ini memiliki kapabilitas yang hampir sama seperti komputer. Aktivitas yang biasa orang-orang lakukan menggunakan perangkat tersebut yaitu untuk menelepon, mengirimkan SMS, mengirimkan e-mail, chatting, internet browsing, games, GPS, menyimpan gambar atau video ataupun menjalankan aplikasi lainnya. Dengan melakukan segala aktivitas tersebut maka pada perangkat tersebut terdapat berbagai macam informasi mengenai pengguna yang sangatlah rentan terhadap berbagai macam kejahatan pada dunia cyber. Oleh karena itu, keamanan perangkat ini perlu diperhatikan karena pengguna mungkin saja mengakses wireless yang tidak aman ataupun meng-download aplikasi yang sudah ditanami malware/virus yang menjadi celah untuk melakukan serangan.

Kejahatan pada dunia cyber sudah menjadi hal yang biasa sejak berkembangnya teknologi. Banyak para hacker yang menggunakan kemampuannya untuk melakukan hal yang merugikan orang lain hanya untuk kepuasan ataupun dengan modus finansial. Menurut Kaspersky Lab, pada tahun 2015 terjadi peningkatan jumlah aplikasi berbahaya pada perangkat smartphone. Peningkatan ini bukanlah hal yang aneh karena pengguna smartphone pun meningkat sehingga attacker pun mulai beralih menyerang perangkat smartphone.

Untuk mengantisipasi serangan yang mungkin terjadi maka kita perlu sadar akan kepentingan keamanan pada smartphone kita. Karena apabila terdapat celah keamanan pada smartphone kita maka akan membuka kesempatan bagi para attacker untuk dijadikan sarana penyerangan. Namun apabila kita membahas mengenai keamanan pada smartphone, terdapat beberapa tantangan yang dihadapi seperti solusi keamanan yang tidak efisien, terbatasnya signature deteksi malware,  kendurnya kontrol terhadap aplikasi pihak ketiga, dan pengguna yang ceroboh [5]. Sedangkan beberapa ancaman dan serangan pada smartphone yang pernah dilaporkan, yaitu malware, sniffing, spamming, spoofing, phishing, pharming, vishing, data leakage, Dos, dll [5]. Namun menurut [6] pertumbuhan serangan malware lebih tinggi dibandingkan serangan lainnya.

Malware atau malicious software merupakan program yang tugas utamanya yaitu menyebabkan kerusakan. Kerusakan yang dimaksud seperti mengubah data (menghapus, menyembunyikan, mencuri), menghabiskan bandwidth, menginstal aplikasi tanpa sepengetahuan kita atau mendapatkan akses ke sumber sistem tanpa seizin pengguna. Oleh karena itu, malware dikatakan berbahaya. Malware terdiri dari beberapa elemen yang memiliki kapabilitas untuk melakukan berbagai macam tugas seperti: [9]

  • Trojan merupakan program yang terlihat legal namun setelah kita menginstalnya maka akan menyebabkan kerugian bagi user.
  • Worm merupakan program mencurigakan yang mereplikasi dirinya sendiri. Contoh worm yaitu Selfmite.b yang menyebarkan pesan berisi link url address yang sudah ditanami malicious code.
  • Spyware merupakan malware yang tujuan utamanya yaitu mengakses dan mengintai data personal dari perangkat user.
  • Adware merupakan program dimana banner iklan ditampilkan namun ternyata terdapat program lain yang berjalan dibelakangnya.

Setelah mengetahui ancaman atau serangan yang mengancam smartphone kita, maka akan timbul pertanyaan mengapa kita harus peduli terhadap serangan-serangan tersebut? Dan apa akibatnya apabila smartphone kita menjadi korban dari serangan tersebut? Sama halnya seperti komputer yang terkena serangan, contohnya malware, apabila smartphone kita terkena malware maka smartphone kita akan mengalami gangguan seperti performa yang menurun, adanya pesan spam, operasi berjalan lambat, atau yang parahnya mungkin kita tidak dapat menerima atau membuat panggilan serta besar kemungkinan kita dapat kehilangan data yang mungkin berpengaruh pada finansial kita. Akibat dari serangan ini dapat berbeda-beda antar usernya. Oleh karenanya kepedulian akan keamanan smartphone harus ditingkatkan agar data yang ada pada smartphone kita terjaga. Data di smartphone yang mungkin menjadi target dari penyerangan yaitu log SMS, identifikasi lokasi ataupun riwayat telepon.

Banyak cara yang dapat dilakukan attacker untuk melakukan serangan ke smartphone, antara lain [18] melalui aplikasi chatting (cara hacker ini meretas melalui penambahan kontak baru, melalui pesan, melalui panggilan tidak diketahui, atau mengirim URL video, lalu dari sana hacker akan mendapatkan informasi celah keamanan smartphone), melalui SMS dan MMS (hacker meretas melalui SMS dan MMS yang telah disisipkan kode khusus yang secara otomatis masuk ke dalam inbox), untuk perangkat android bisa melalui certifi-Gate (dengan adanya certifi-Gate ini memungkinkan plugin pihak ketiga untuk menduplikasi layar perangkat dan melakukan tindakan ke perangkat), melalui kunci sidik jari (hacker ini akan masuk ke dalam smartphone melalui internet lalu menyisipkan kode untuk mencuri data dari sidik jari), melalui aplikasi baterai (karena aplikasi baterai ini meneliti semua data pada smartphone kita, mulai dari aplikasi yang berjalan, cookies, cache,dll). Namun berikut ini merupakan skenario serangan yang pernah terjadi pada smartphone [2]:

  • Attacker membuat suatu website dan mengundang user untuk membuka website
  • Pada website tersebut ditampilkan halaman untuk meng-download aplikasi yang telah ditanami malware.
  • Halaman website tersebut dibuat semenarik mungkin sehingga user meng-download aplikasi tersebut.
  • Setelah user meng-download aplikasi tersebut maka smartphone telah terinfeksi malware dan attacker dapat melakukan apa saja apabila smartphone telah terinfeksi.

Dari contoh serangan dan skenario serangan yang mengancam smartphone kita maka kita perlu untuk mengetahui celah keamanan yang mungkin ada pada perangkat kita. Pada setiap perangkat, baik komputer ataupun smartphone, pasti memiliki celah keamanan. Berikut merupakan celah keamanan yang mungkin ada pada smartphone [5],[7]:

  • Celah keamanan yang pertama dan merupakan celah keamanan yang ada pada perangkat apapun yaitu pengguna perangkat tersebut. Dengan menggunakan social engineering mungkin attacker memiliki informasi mengenai karakteristik atau cara kita dalam menggunakan smartphone sehingga membuat attacker lebih mudah dalam merancang skenarion untuk melakukan penyerangan. Karakteristik atau cara pengguna menggunakan smartphone-nya akan berpengaruh terhadap penyerangan karena apabila seorang yang menggunakan smartphone untuk keperluan bisnis akan lebih memperhatikan keamanan smartphone-nya sedangkan pengguna yang hanya menggunakan smartphone-nya hanya untuk game tidak akan terlalu peduli terhadap keamanan. Selain itu, karena biasanya smartphone ini tidak akan lama digunakan oleh penggunanya maka pengguna mungkin lebih mengharapkan smartphone mereka rusak atau hilang sehingga bisa beli yang baru.
  • Celah keamanan selanjutnya yaitu dari sistem operasi yang ditanamkan pada smartphone seperti iOS, android, blackberry, atau windows phone. Untuk melakukan penyerangan biasanya attacker mencari informasi mengenai kelemahan sistem operasi yang kita gunakan pada Kelemahan sistem operasi ini yang akan digunakan attacker untuk melakukan penyerangan seperti mencuri data.
  • Celah keamanan lainnya yaitu apabila smartphone kita terkoneksi dengan bluetooth atau terkoneksi ke jaringan 2G/3G/4G atau jaringan Wi-Fi sehingga dapat mengakses internet. Saat perangkat kita terkoneksi pada sebuah jaringan maka kemungkinan terdapat attacker yang merekam lalu lintas pada jaringan tersebut.
  • Celah keamanan yang paling banyak mengancam smartphone kita yaitu celah keamanan yang ada pada aplikasi yang kita instal. Karena terdapat sistem operasi yang mengizinkan pihak ketiga dalam membuat aplikasinya, maka kemungkinan adanya bug pada aplikasi tersebut dapat mejadi celah keamanan bagi smartphone
  • Tempat penyimpanan data yang tidak aman juga dapat menjadi salah satu celah keamanan smartphone kita karena dapat menimbulkan aplikasi saling mencuri data.
  • Embedded sensor yang tertanam pada perangkat kita pun dapat dijadikan sebagai celah keamanan smartphone

Dengan adanya celah keamanan tersebut maka attacker dapat menjadikannya tempat untuk melakukan serangan. Dan untuk mengetahui apakah celah keamanan atau aplikasi berbahaya yang ada pada smartphone kita, kita dapat mengujinya. Pengujian ini berfokus pada aktivitas yang berbahaya/mencurigakan, celah keamanan, risiko keamanan, dll [5]:

  • Mobile forensik

Mobile forensik merupakan cara yang legal untuk mendapatkan dan memeriksa data pada smartphone. Data yang didapati dapat berupa salinan SMS/MMS, emails, call log, calendar events, web traffic, bookmark, gambar, voice mail, informasi lokasi, aplikasi data, dll.

  • Penetration test

Penetration test ini juga dapat digunakan untuk menguji keamanan dari sebuah smartphone. Penetration test ini terdiri dari konfigurasi pengujian lingkungan, melakukan prosedur pengujian, membandingkan dan menganalisa hasil dari pengujian, dll.

  • Static analysis

Static anaysis ini proses analisis aplikasi tanpa menjalankan aplikasi tersebut. Static analysis ini akan me-review kodingan dari aplikasi untuk menemukan fungsi yang mencurigakan. Keluaran dari proses ini yaitu signature yang dapat digunakan sebagai signature untuk software pendeteksi malware.

  • Dynamic analysis

Dynamic analysis merupakan proses analisis aplikasi saat menjalankan aplikasi tersebut pada lingkungan yang terlindungi. Analisis ini akan memonitor trafik jaringan dan komunikasi lainnya untuk mengetahui aktivitas yang mencurigakan.

Menurut [4] keamanan dibagi menjadi 5 bagian, yaitu keamanan fisik, keamanan jaringan, keamanan host, keamanan aplikasi dan keamanan data. Diantara 5 keamanan tersebut, [4] memilih keamanan host menjadi keamanan yang paling penting karena keamanan host akan mempengaruhi keseluruhan sistem informasi. Namun keamanan host ini pun bergantung dari keamanan sistem operasi yang digunakan. Mengapa sistem operasi menjadi hal yang penting? Karena apabila sebuah perangkat tidak memiliki sistem operasi maka perangkat tersebut hanyalah benda yang tidak ada gunanya. Menurut Wikipedia, sistem operasi merupakan seperangkat program yang mengelola sumber daya perangkat keras atau hardware dan menyediakan layanan umum untuk perangkat lunak (software). Sistem operasi adalah hal yang paling penting dari perangkat lunak sistem. Tanpa sistem operasi, pengguna tidak dapat menjalankan aplikasi pada perangkat mereka [16]. Dari pengertian sistem operasi tersebut maka pendapat [4] yang memilih keamanan host menjadi hal yang paling penting tidak diragukan. Dan dari contoh serangan yang telah dijelaskan maka salah satu cara untuk meningkatkan keamanan smartphone yaitu dengan memperhatikan sistem operasi yang digunakan pada smartphone tersebut, seperti android, blackberry, windows atau iOS. Berikut merupakan beberapa aspek yang perlu diperhatikan agar keamanan sistem operasi smartphone terjamin [1]:

  • Autentikasi

Autentikasi merupakan cara sistem untuk mengetahui user yang mempunyai otoritas untuk masuk berdasarkan identitasnya. Autentikasi ini berfungsi untuk mengetahui program apa saja yang dapat dijalankan oleh user. Hampir semua sistem operasi smartphone memiliki proses autentikasi yang sama, seperti menggunakan password (tidak aman karena mudah diketahui) atau menggunakan teknik biometrik (lebih aman dari password).  

  • Enkripsi

Enkripsi merupakan cara untuk menjaga kerahasiaan data dengan mengubah data yang dapat dibaca (plaintext) menjadi tidak dapat dibaca (chipertext) menggunakan algoritma dan kunci tertentu. Enkripsi ini merupakan cara agar data yang ada pada smartphone kita terjaga kerahasiaannya. Beberapa sistem operasi memiliki fitur enkripsi sebagian yang mana maksudnya yaitu user dapat memilih data mana yang ingin dijaga kerahasiaannya. Berikut merupakan perbandingan sistem operasi smartphone yang menggunakan enkripsi pada platform-nya:

Android Blackberry Windows iOS
Versi 3.0 dan selanjutnya memiliki fitur enkripsi file system (enkripsi menggunakan algoritma AES128, CBC, SHA256) Enkripsi menggunakan kunci enkripsi simetrik saat transfer data antara Blackberry device dan Blackberry enterprise serve Memiliki  beberapa algoritma enkripsi seperti AES, SHA1, SHA256, HMACSHA1, HMACSHA256 iOS4 dan selanjutnya memiliki fitur enkripsi dengan algoritma AES256 untuk mengenkripsi semua data yang tersimpan di memori
  Dapat memilih data yang akan dienkripsi Dapat menyimpan data di secure server dengan mengirimkan data melalui SSL  
  • Application signing

Digital signing merupakan cara untuk meyakinkan bahwa aplikasi yang kita instal legal atau tidak. Sistem operasi smartphone seharusnya memiliki mekanisme untuk mengidentifikasi aplikasi mana yang diperbolehkan untuk diinstal. Ini menjadi hal yang penting karena apabila user menginstal aplikasi yang ilegal dapat menyebabkan kehilangan atau dicurinya data pada smartphone user. Untuk mengatasi masalah ini maka setiap sistem operasi smartphone memiliki mekanismenya masing-masing agar dapat memverifikasi aplikasi tersebut dan apabila hasil verifikasi tidak sesuai dengan ketentuan yang ada maka aplikasi tersebut akan langsung ditolak untuk diinstal. Berikut merupakan signing yang ada pada setiap platform:

Android Blackberry Windows iOS
Setiap signed application tersimpan di sandbox application sehingga setiap aplikasi bekerja secara terpisah tanpa mengganggu aplikasi lainnya Menggunakan verifikasi signature pada setiap aplikasinya untuk menjamin bahwa aplikasi tersebut tidak diubah-ubah Menggunakan application testing dan signing program untuk membedakan aplikasi yang legal dan tidak. Developer harus melalui proses register yang kompleks untuk meluncurkan aplikasinya dan baru mendapatkan digital sign
  • Reliability

Reliability merupakan kemampuan sistem untuk dapat bekerja pada situasi apapun dan kemampuan untuk recover dari eror yang tidak terduga. Perangkat yang tiba-tiba berhenti berkerja akan menyebabkan hilangnya pekerjaan yang dilakukan user.

Dari penjelasan diatas kita dapat mengetahui aspek apa saja yang harus diperhatikan agar kita dapat mengetahui sistem operasi mana yang aman untuk perangkat kita. Berikut penjelasan lebih lanjut mengenai keamanan setiap sistem operasi smartphone:

  • iOS [3]

iOS menkombinasikan software, hardware, dan services agar dapat bekerja dengan baik untuk mendapatkan keamanan yang maksimum. iOS tidak hanya menjaga perangkat dan data, tetapi keseluruhan ecosystem. Sistem operasi iOS ini menyediakan fitur keamanan seperti:

  • system security: membuktikan bahwa software dan hardware yang digunakan terintegrasi dan aman. Hal yang termasuk dari keamanan sistem yaitu boot-up process, software update, secure enclave.
  • encryption and data protection: arsitektur dan desain digunakan untuk menjaga data user jika perangkat hilang, dicuri, atau mencegah unauthorized user untuk menggunakan atau mengubah data tersebut.
  • App security: elemen yang penting dimana sistem mengizinkan aplikasi untuk berjalan dengan memastikan aplikasi tersebut telah di-signed dan diverifikasi.
  • Network security: protokol jaringan standar yang menyediakan fitur autentikasi dan autorisasi secara aman serta mengenkripsi data pada saat dikirimkan.
  • Apple pay: implementasi secure payments.
  • Internet services: infrastruktur jaringan untuk messaging, syncing, dan
  • Device controls: metode yang mengizinkan manajemen perangkat iOS mencegah unauthorized masuk sistem, dan mengizinkan remote wipe jika perangkat hilang atau dicuri.
  • Privacy controls: kapabilitas iOS dapat digunakan untuk kontrol akses ke lokasi services dan user data.

Dari fitur keamanan tersebut, kita dapat melihat bahwa iOS telah memenuhi aspek yang dibutuhkan untuk meningkatkan keamanan smartphone. Namun dengan memenuhi aspek tersebut dan memiliki beberapa fitur keamanan bukan berarti sistem operasi iOS ini benar-benar aman. Celah keamanan akan selalu ada pada setiap sistem operasi ataupun aplikasinya, salah satu contoh celah keamanan yang ada pada iOS yaitu “masque Attack” dimana iOS tidak dapat mencocokan sertifikat aplikasi apabila bundle identifier-nya sama.

  • Android

Sistem operasi android ini dapat dikatakan sebagai raja sistem operasi smartphone. Kemudahan dalam pengelolaan aplikasinya, kemudahan kostumisasi, kebebasan untuk memodifikasi, dan pilihan aplikasi gratis yang begitu banyak di PlayStore [16] yang membuat sistem operasi satu ini sangat diminati sehingga penggunanya pun banyak. Namun sistem operasi ini juga yang dikatakan sebagai sistem operasi yang memiliki kerentanan tertinggi terhadap serangan. Faktor keamanan yang ada pada sistem operasi ini yang kerap menjadi isu yang dikhawatirkan. Berikut akan dijelaskan mengenai arsitektur, mekanisme keamanan, serta fitur keamanan lainnya pada android.

Arsitektur sistem operasi Android ini terdiri dari beberapa layer [8], layer terendah pada arsitektur android ini adalah linux kernel yang berisi hardware driver yang melakukan fungsi low level seperti memory management, threading, dan power management. Sedangkan layer atasnya merupakan set dari C dan library C++ yang terdiri dari graphic libraries, SQL engine, beberapa library C, media codecs, dan web browser engine. Layer selanjutnya yaitu android runtime yang terdiri dari spesifik virtual machine android  dan beberapa library inti. Lalu layer framework aplikasi yang menyediakan API untuk mengizinkan aplikasi berinteraksi dengan aplikasi lainnya atau berinteraksi dengan hardware dan layer terkahir merupakan layer aplikasi. Sedangkan untuk mekanisme keamanan pada android yaitu [8]:

  • Mekanisme Sandboxing

Android memiliki fitur keamanan yang mengeksekusi mekanisme sandboxing untuk menjalankan setiap aplikasi pada prosesnya masing-masing. Setiap aplikasi yang terinstal di android akan diberikan user ID yang unik (UID). UID ini yang akan menentukan bahwa aplikasi yang berbeda tidak dapat berjalan pada proses yang sama. Sanboxing ini berguna agar aplikasi tidak dapat mengakses informasi yang sensitif yang tersimpan di sistem dan informasi yang ada pada aplikasi lainnya.

  • Mekanisme perizinan aplikasi (permission)

Android menggunakan model perizinan deklarasi untuk keamanan tingkat aplikasi yang membatasi operasi tertentu yang aplikasi ingin lakukan. Permission dibuat sendiri oleh aplikasi dan akan memberitahukan kepada pengguna sebelum proses instalasi, jika pengguna setuju dengan permission-nya maka proses instalasi akan berlangsung, namun jika pengguna tidak setuju dengan permission-nya maka proses instalasi tidak akan berjalan. Saat pengguna telah menyetujui permission ini maka pengguna tidak dapat mengubahnya ketika proses instalasi selesai. Permasalahan permission ini yaitu biasanya pengguna tidak mempedulikan permission yang diminta aplikasi sebelum proses instalasi sehingga apabila aplikasi meminta permission yang mencurigakan biasanya pengguna tidak mengetahuinya.

Beberapa fitur keamanan pada android lainnya sebagai berikut:

  • Isolasi: setiap aplikasi biasanya berjalan dengan user yang berbeda (multi-user linux os).
  • Komunikasi antar linux user id: komunikasi dapat berjalan dengan membagikan linux user id yang sama (saling mengakses file, memungkinkan membagikan proses linux dan Dalvik VM yang sama)
  • Aplikasi sandbox: setiap aplikasi berjalan dengan UID pada Dalvik Virtual machine (menyediakan keamanan CPU, menjaga memori), dan aplikasi mengumumkan persyaratan permission seperti menulis whitelist model serta komunikasi antar komponen mereferensikan monitor cek permission.
  • dlmalloc (Doug Lea): menyimpan meta data di band, tumpukan serangan konsolidasi (tumpukan overflow dapat menimpa pointer sebelum atau setelah chunks yang tidak terkonsolidasi, dan timpaan pointer ini mengizinkan eksekusi remote code), dan meningkatkan keamanan (mengecek integritas forward dan backward pointer dan meningkatkan kesulitan tumpukan overflow).

Dari fitur dan mekanisme keamanan yang telah dijelaskan berikut merupakan perbedaan keamanan antara sistem operasi iOS dan android, yaitu:

Proses aplikasi disetujui Application permissions Bahasa pemrograman
Aplikasi android didapati dari open app store sehingga keamanannya perlu diperhatikan Android permission berdasarkan instal time manifest Ditulis di java, tidak ada buffer overflow
iOS vendor kontrol penyimpanan aplikasi vetted Semua iOS memiliki set privileges “sandbox” yang sama. Ditulis di objektif-c
  • Windows Phone

Sistem operasi windows phone ini bersifat tertutup sehingga para vendor dan developer tidak dapat memodifikasi atau menambah fitur lain pada perangkat mereka. Sistem operasi ini dapat dikatakan masih cukup jauh dalam hal fitur atau koleksi aplikasi dibandingkan sistem operasi saingannya iOS dan Android. Namun dalam hal kestabilan dan keamanan, sistem operasi windows phone ini dapat dikatakan lebih baik dari pada kedua sistem operasi saingannya. Fitur keamanan yang ada pada sistem operasi windows phone ini diantara lain sebagai berikut:

  • Secure boot
  • Semua binaries telah di-signed
  • Perangkat terenkripsi
  • Model keamanan dengan isolasi dan kapabilitas
  • Setiap aplikasi berjalan di isolasi chamber-nya masing-masing (semua aplikasi mempunyai basic permission tetapi tidak dapat mengakses memori atau data dari aplikasi lainnya)
  • Tidak ada komunikasi antar channels aplikasi
  • Aplikasi non-MS yang didistribusikan melalui marketplace berhenti di background (ketika user meng-switch aplikasi maka aplikasi sebelumnya mati)

Dari penjelasan diatas kita telah mengetahui aspek-aspek yang perlu diperhatikan dan penjelasan lebih rinci mengenai keamanan pada setiap sistem operasi smartphone. Setelah mengetahui hal tersebut maka diharapkan kita dapat memilih sistem operasi mana yang terbaik untuk smartphone kita. Jadi sebelum kita membeli smartphone lebih baik kita mempertimbangkan aspek keamananya seperti sistem operasi apa yang digunakan. Menurut Steve Lord dari White Hat, sistem operasi smartphone yang paling sulit diretas yaitu Windows Phone dan Android menjadi yang paling mudah diretas apabila dia memiliki akses fisik ke perangkat [13]. Kaspersky pun menambahkan kekuatan pendapat ini dengan mengatakan bahwa iOS atau Android bukanlah sistem operasi yang aman untuk digunakan pada smartphone karena kedua sistem operasi ini memiliki celah keamanan yang banyak, Windows Phone lah yang paling bersih dari serangan. Namun Kaspersky mengatakan Windows Phone menjadi sistem operasi yang paling bersih dimungkinkan karena penggunanya yang belum sebanyak sistem operasi iOS dan Android [14]. Lord pun memberi saran untuk menggunakan smartphone berbasis Windows Phone 8 atau versi terbaru.

Pendapat Steve Lord dan Kaspersky seharusnya membuat kita semakin sadar bahwa dengan terpenuhinya semua aspek keamanan smartphone dan adanya fitur keamanan pada sistem operasi smartphone belum menjamin bahwa perangkat kita akan aman, oleh karena itu terdapat beberapa cara lainnya yang harus diperhatikan untuk menjamin keamanan smartphone. Mekanisme keamanan sistem operasi menurut [4] terdiri dari mekanisme keamanan hardware dan keamanan software. Ini berarti bahwa untuk menjamin keamanan sistem operasi smartphone kita pun perlu memperhatikan keamanan software dan hardware-nya. Namun menurut [7] telah banyak perusahaan yang mulai untuk meng-explore solusi mengenai masalah keamanan smartphone ini. Dan didapatkan hasil bahwa ternyata keamanan smartphone tidak hanya dilihat dari sisi sistem operasinya, melainkan melibatkan user service provider, dan industry partners. Dari penjelasan tersebut maka kita dapat mengetahui bahwa untuk menjamin keamanan pada smartphone tidak se-simple yang dipikirkan. Namun terdapat beberapa cara yang dapat kita lakukan untuk meningkatkan keamanan pada smartphone kita dan memonitor perangkat kita tanpa memperdulikan celah keamanan apa yang ada pada setiap sistem operasi yang kita gunakan:

  • Pengguna harus meningkatkan kesadaran akan pentingnya keamanan dengan sadar akan adanya ancaman dan serangan yang mungkin terjadi ketika menginstal software atau mengotorisasikan flash memory atau smartphone sensor.
  • Perangkat kita harus memiliki proses identifikasi dan autentikasi seperti yang telah dijelaskan pada aspek keamanan sistem operasi smartphone
  • Pengguna harus memiliki kesadaran akan pentingnya keamanan dengan melakukan hal ini: mengubah password secara teratur, mem-backup data, dan update/upgrade software.
  • Pengguna harus selalu mengunci smartphone dengan menggunakan password, pola, atau biometrik untuk mencegah dicuri atau diubahnya data kita apabila smartphone hilang/dicuri.
  • Pengguna harus menginstal antivirus pada smartphone agar antivirus tersebut dapat mendeteksi apabila kita menginstal aplikasi yang berbahaya sehingga kita dapat mencegah program berbahaya dan mencegah smartphone corrupt. Namun ada yang berpendapat bahwa antivirus yang ada pada android tidak efektif karena akses untuk memeriksa sistem operasi dan aplikasi android dibatasi oleh sandbox. Selain itu, antivirus pada android ini tidak otomatis menghapus perangkat lunak berbahaya [17].
  • Apabila perangkat kita memiliki fitur enkripsi maka kita dapat mengaktifkan fitur enkripsi tersebut pada Dengan mengenkripsi data yang ada pada perangkat kita maka kerahasiaan data dapat terjamin karena attacker akan sulit membacanya apabila dia berhasil mendapatkan data tersebut.
  • Pengguna harus selalu memperbarui atau mem-patched sistem operasi atau aplikasi pada perangkat smartphone mereka untuk menghindari risiko dan ancaman yang ada. Google, sebagai pemilik sistem operasi android terus berupaya untuk memperbaiki sistem operasinya dengan memperbaharuinya setiap bulan, namun hanya sedikit produsen smartphone yang menerapkan proses pembaharuan ini [15]. Jadi untuk meningkatkan keamanan smartphone dibutuhkan kerjasama antara developer dan produsennya.
  • Apabila kita terlalu takut akan serangan yang mungkin dapat mengancam smartphone kita, maka agar lebih aman kita dapat memblokir instalasi aplikasi dari pihak ketiga atau hanya meng-download aplikasi pada market yang terpercaya.
  • Memastikan perangkat kita memiliki akses kontrol yang berisi mengenai mekanisme untuk membatasi akses yaitu hanya user yang memiliki otoritas yang dapat masuk ke sistem.
  • Untuk lebih amannya kita dapat memasang firewall dan intrusion prevention pada perangkat kita untuk meningkatkan keamanan.
  • Saat kita ingin akses ke jaringan jangan lupa untuk selalu memastikan bahwa untuk berkomunikasi melalui jaringan tersebut menggunakan jalur yang aman, seperti hanya menghubungkan perangkat ke jaringan Wi-Fi yang aman.
  • Untuk mengantisipasi kejadian perangkat smarphone kita hilang atau dicuri maka kita dapat memasang layanan keamanan aplikasi seperti pelacakan perangkat menggunakan fungsi GPS serta aplikasi yang secara remote mengunci perangkat melalui internet dan menghapus data pada perangkat.
  • Tidak me-root
  • Jangan menyimpan password pada perangkat anda dan jangan lupa selalu logout apabila kita telah melakukan transaksi
  • Apabila kita melakukan aktivitas yang tidak memerlukan koneksi ke jaringan seperti saat kita tidur, mungkin sebaiknya kita matikan bluetooth, Wi-Fi, data network dan NFC.
  • Apabila kita menggunakan Android Lollipop 5.1 maka aktifkanlah screen pinning dan nonaktifkan Screen pinning ini berguna agar pengguna dapat berbagi atau meminjamkan smartphone kita dengan tetap menjaga privasi dari orang lain. Sementara smartlock apabila diaktifkan akan berbahaya karena sensornya tidak bekerja khusu untuk tubuh pengguan namun untuk semua manusia [17].
  • Seperti yang telah dijelaskan pada penejelasan mengenai mekanisme keamanan android. Permission sebuah aplikasi dapat menjadi celah keamanan. Oleh karena itu, saat kita akan menginstal aplikasi lebih baiknya kita memperhatikan permission tersebut, apabila terdapat permission yang mencurigakan maka kita dapat langsung membatalkan proses instalasi. Contoh permission yang mencurigakan yaitu apabila kita akan menginstal aplikasi game maka aplikasi game tersebut seharusnya hanya perlu meminta izin untuk dapat mengakses terhadap getaran, sistem suara, ataupun menyimpan data pada memori perangkat, namun apabila aplikasi game tersebut meminta izin agar dapat mengakses SMS, phonebook, atau lainnya yang dirasa tidak perlu maka lebih baik kita tidak menginstal aplikasi tersebut.
  • Selain melakukan pencegahan dari serangan yang mungkin mengancam smartphone kita, kita pun perlu memonitor atau melihat behaviour perangkat kita dengan melihat konsumsi data dan baterai. Apabila konsumsi data dan baterai kita meningkat dari biasanya maka kemungkinan perangkat kita telah terinfeksi malware karena biasanya malware akan selalu melakukan aktivitasnya tanpa sepengetahuan kita sehingga konsumsi data dan baterai kita ikut terkuras.
  • Selain memonitor konsumsi data dan baterai, kita pun dapat memonitor perangkat kita apabila perangkat kita melakukan hal yang tidak biasanya seperti aplikasi yang selalu mengalami crash atau aplikasi berjalan lambat.
  • Untuk menjaga keamanan data maka kita dapat menghapus aplikasi ataupun file yang sudah tidak digunakan atau yang dirasa mencurigakan.
  • Dan apabila kita memang benar-benar takut akan hilangnya atau dicurinya data kita maka akan lebih baik apabila kita tidak menyimpan data penting di smartphone
  • Selalu waspada dan mencurigai apabila adanya pesan SMS, attachment email atau link url address dari pengirim yang tidak dikenal. Saat kita melakukan browsing pun akan lebih baik apabila kita tidak asal mengklik iklan atau website.
  • Dan apabila kita berniat untuk menjual perangkat smartphone kita, maka kita harus mengubah setting-an smartphone kita ke awal saat kita membelinya, non-aktifkan semua aplikasi seperti email, whatsapp, dan aplikasi lainnya.

Referensi:

[1]  R.M.Nabi, R.A.Mohammed, R.M. Nabi. “Smartphone Platform Security a Comparison Study”, International Journal of Advanced Reasearch in Computer Science and Software Engineering.  November, 2015.

[2]  Kaspersky Lab & Interpol Joint Report. Mobile Cyber Threats. October,2014.

[3]  iOS Security. May, 2016.

[4]  J. Song, G. Hu, Q.Xu. “Operating System Security and Host Vulnerability Evaluation”. IEEE. 2009

[5]  Y. Wang, Y. Alshboul. “Mobile Security Testing Approaches and Challenges”.

[6]  H. Pieterse, M.S. Olivier. “Security Steps for Smartphone Users”. IEEE. 2013.

[7]  Y.Wang, K.Streff, S.Raman. “Smartphone Security Challenges”. IEEE Computer Society. 2012.

[8] S. Khan, M.Nauman, A.T. Othman, S.Musa. “How Secure is Your Smartphone: An Analysis of Smartphone Security Mechanisms”.

[9] D. Hrestak, S.Picek, Z.Rumenjak. “Improving the Android Smartphone Security against Various Malware Threats”.

[10] A.D.Schmidt, H.G.Schmidt, dkk. “Enhancing Security of Linux-based Android Devices”.

[11] A. Eshmawi, S. Nair. “Smartphone Applications Security : Survey of New Vectors and Solutions”. IEEE. 2013.

[12] M.Al-Hadadi, A. Al-Shidhani. “Smartphone Security Awaremess: Time to Act”.

[13] http://www.trentekno.com/13930/inilah-sistem-operasi-smartphone-yang-paling-susah-diretas/

[14]http://www.tuxindonesia.com/2015/07/sistem-operasi-smartphone-yang-paling-aman-menurut-kasperksy.html

[15]http://www.merdeka.com/teknologi/bukan-ios-ini-sistem-operasi-mobile-paling-aman-menurut-hacker.html

[16]https://cokkey.wordpress.com/2014/12/13/macam-macam-sistem-operasi-smartphone/

[17] http://www.webkeren.net/2015/04/menjaga-keamanan-smartphone-android.html

[18] https://www.maxmanroe.com/5-cara-hacker-membobol-smartphone-android.html

Artikel ini dibuat oleh Friska Puspita Juhara sebagai tugas mata kuliah EL5233 Keamanan Sistem Operasi di program studi s2 Rekayasa dan Manajemen Kemanan Informasi.

Analisis Keamaman Remote Backup dan Recovery pada Sistem Terdistribusi untuk Proteksi Web Server

Pendahuluan

Backup dan recovery data merupakan proses penting dalam suatu sistem untuk menjaga integritas sistem dan data pengguna. Kehilangan dan kerusakan data dalam sistem dapat disebabkan oleh beberapa hal diantaranya hardware atau software failure, kerusakan yang disengaja maupun tidak disengaja, seperti bencana alam, dan lain sebagainya. Backup dilakukan dengan membuat salinan data secara berkala sehingga dapat dilakukan recovery pada data yang rusak atau hilang [1]. Dengan demikian, backup dan recovery tidak hanya menjaga pertahanan sistem tetapi juga dalam disaster recovery [2].

Metode backup dan recovery ditentukan dalam tahap perencanaan sistem sesuai dengan kebutuhan dan kebijakan organisasi, apakah salinan data tersedia online atau offline, disimpan secara lokal atau ditransmisikan ke remote site. Pada setiap metode terdapat trade off yang perlu dipertimbangkan yaitu kemudahan implementasi dan biaya terhadap keamanan dan ketahanan sistem [1]. Remote backup menjadi pilihan karena apabila attacker berhasil menyerang sistem maka semua data di dalam server tidak dapat lagi dipercaya, yang kemudian perlu dilakukan recovery data yang berasal dari remote site [2]. Metode backup ini menggunakan multi version control, transfer data dilakukan dengan Rsync [3], dan File Transfer Protocol (FTP), standar protokol jaringan yang digunakan dalam proses transmisi data [2]. Selain itu, ada juga beberapa teknik dalam backup dan recovery pada lingkungan cloud, seperti RAID, HSDRT, PCS, ERGOT, Linux Box, Cold and Hot Backup Technique, SBBR, REN, dan sebagainya [4].

Continue reading Analisis Keamaman Remote Backup dan Recovery pada Sistem Terdistribusi untuk Proteksi Web Server

ANCAMAN BUG “STAGEFRIGHT” PADA SISTEM OPERASI ANDROID V2

ANCAMAN BUG “STAGEFRIGHT” PADA SISTEM OPERASI ANDROID

A. Sistem Operasi Android
Saat ini sistem operasi android sudah menjadi salah satu sistem operasi terbesar yang menguasai pangsa pasar smartphone, sistem operasi ini adalah sistem operasi berbasis linux yang khusus dirancang untuk perangkat smartphone dengan layar sentuh. Android awalnya dikembangkan oleh Android, Inc., dengan dukungan finansial dari Google, yang kemudian membelinya pada tahun 2005. Sistem operasi ini dirilis secara resmi pada tahun 2007, bersamaan dengan didirikannya Open Handset Alliance, sebuah konsorsium dari perusahaan – perusahaan perangkat keras, perangkat lunak dan telekomunikasi.
a. Sejarah
Android, Inc. didirikan di Palo Alto, California, pada bulan Oktober 2003 oleh Andy Rubin, Rich Miner, Nick Sears dan Chris White dengan tujuan untuk semakin mengembangkan perangkat smartphone yang lebih sadar akan lokasi dan preferensi penggunanya. Tujuan awal pengembangan sistem operasi android ini adalah untuk mencoba mengembangkan sebuah sistem operasi yang diperuntukkan untuk kamera digital, namun kemudian disadari bahwa pasar unuk perangkat tersebut tidak cukup besar dan pengembangan android kemudian dialihkan bagi pasar smartphone untuk menyaingi Symbian dan Windows Mobile.
Meskipun pengembang sistem operasi android ini adalah pakar – pakar teknologi yang sudah berpengalaman, Android, Inc. ternyata dioperasikan secara diam – diam, hanya diungkapkan bahwa para pengembang sedang mempersiapkan sebuah sistem operasi yang diperuntukkan bagi smartphone.
Google secara resmi mengakuisisi Andorid, Inc. pada tanggal 17 Agustus 2005 silam, menjadikannya sebagai anak perusahaan yang sepenuhnya dimiliki oleh Google. Pendiri android sendiri tetap bekerja di perusahaan setelah diakuisisi oleh Google. Di Google, tim yagn dipimpin oleh Rubin mulai mengembangkan platform smartphone dengan menggunakan kernel linux. Google memasarkan platform tersebut kepada produsen perangkat seluler dan operator telekomunikasi dengan janji bahwa mereka akan menyediakan sistem yang fleksibel dan bisa diperbarui. Google telah memilih beberapa mitra perusahaan perangkat lunak dan perangkat keras, serta mengisyaratkan kepada operator telekomunikasi bahwa kerja sama ini terbuka bagi siapapun yang ingin berpartisipasi.

Beberapa spekulasi kemudian muncul dan berkembang tentang niat Google untuk memasuki pasar komunikasi seluler terus berkembang hingga bulan Desember 2006. BBC dan Wall Street Journal melaporkan bahwa Google sedang bekerja keras untuk menyertakan aplikasi dan mesin pencarinya di perangkat seluler. Berbagai media cetak dan media online mengabarkan bahwa Google sedang mengembangkan perangkat seluler dengan merek Google. Beberapa di antaranya berspekulasi bahwa Google telah menentukan spesifikasi teknisnya, termasuk produsen telepon seluler dan operator jaringan. Pada bulan Desember 2007, InformationWeek melaporkan bahwa Google telah mengajukan beberapa aplikasi paten di bidang telepon seluler.

Pada tanggal 5 November 2007, Open Handset Alliance (OHA) didirikan. OHA adalah konsorsium dari perusahaan-perusahaan teknologi seperti Google, produsen perangkat seluler seperti HTC, Sony dan Samsung, operator nirkabel seperti Sprint Nextel dan T-Mobile, serta produsen chipset seperti Qualcomm dan Texas Instruments. OHA sendiri bertujuan untuk mengembangkan standar terbuka bagi perangkat seluler. Saat itu, Android diresmikan sebagai produk pertamanya; sebuah platform perangkat seluler yang menggunakan kernel Linux versi 2.6. Telepon seluler komersial pertama yang menggunakan sistem operasi Android adalah HTC Dream, yang diluncurkan pada 22 Oktober 2008.

Pada tahun 2010, Google merilis seri Nexus; perangkat telepon pintar dan tablet dengan sistem operasi Android yang diproduksi oleh mitra produsen telepon seluler seperti HTC, LG, dan Samsung. HTC bekerja sama dengan Google dalam merilis produk telepon pintar Nexus pertama, yakni Nexus One. Seri ini telah diperbarui dengan perangkat yang lebih baru, misalnya telepon pintar Nexus 4 dan tablet Nexus 10 yang diproduksi oleh LG dan Samsung. Pada 15 Oktober 2014, Google mengumumkan Nexus 6 dan Nexus 9 yang diproduksi oleh Motorola dan HTC. Pada 13 Maret 2013, Larry Page mengumumkan dalam postingan blognya bahwa Andy Rubin telah pindah dari divisi Android untuk mengerjakan proyek-proyek baru di Google. Ia digantikan oleh Sundar Pichai, yang sebelumnya menjabat sebagai kepala divisi Google Chrome, yang mengembangkan Chrome OS.

b. Versi Android
Versi android diawali dengan dirilisnya Android beta pada bulan November 2007. Versi komersial pertama, android 1.0 dirilis pada September 2008. Android dikembangkan secara terus menerus oleh Google dan Open Handset Alliance, yang telah merilis sejumlah pembaruan sistem operasi ini sejak dirilis di versi awal.
Sejak April 2009, versi android dikembangkan dengan nama kode yang dinamai berdasarkan makanan pencuci mulut dan panganan manis. Masing masing versi dirilis sesuai urutan alfabet, yakni
1. Android Versi 1.0 (Astro)
Android 1.0 atau dikenal dengan Astro (API level 1) adalah versi komersial pertama dari sistem operasi android, dirilis pada tanggal 23 September 2008. Perangkat android pertama yang tersedia secara komersial adalah HTC Dream.
2. Android Versi 1.1 (Bender)
Android 1.1 atau dikenal dengan Bender (API level 2) adalah versi yang dirilis pada tanggal 9 Februari 2009. Seri ini awalnya hanya dirilis untuk HTC Dream. Android 1.1 juga dikenal dengan nama lain yaitu “Petit Four” meskipun nama ini tidak digunakan secara resmi. Versi ini memperbaiki beberapa bug, mengubah API android dan menambahkan beberapa fitur pada sistem operasi android.
3. Android Versi 1.5 (Cupcake)
Android 1.5 atau dikenal dengan Cupcake (API level 3) adalah penerus dari versi android pendahulunya. Seri android ini diperkenalkan pada akhir bulan April 2009. Seri ini dirilis menggunakan versi kernel linux 2.6.27. Versi ini adalah rilis pertama yang secara resmi menggunakan nama kode berdasarkan nama – nama makanan pencuci mulut (“Cupcake”).
4. Android Versi 1.6 (Donut)
Android 1.6 atau dikenal dengan Donut (API level 4) adalah versi selanjutnya dari sistem operasi android. Seri ini sudah menggunakan versi kernel linux yang lebih tinggi dari sebelumnya yaitu seri 2.6.29. Selain mengupdate kernelnya seri ini juga melakukan beberapa penambahan fitur dari sistem operasi android itu sendiri.
5. Android Versi 2.0/2.1 (Éclair)
Android 2.0 / 2.1 yang lebih dikenal dengan Éclair (API level 5) merupakan seri sistem operasi android yang masih sama – sama menggunakan versi kernel linux 2.6.29. Seri ini dirilis pada tanggal 26 Oktober 2009. Seri android ini sendiri terdapat beberapa update walau masih dalam nama yang sama yaitu Éclair. Diantaranya adalah android 2.0.1 (API level 6) dan Android 2.1 (API level 7).
6. Android Versi 2.2 (Froyo)
Versi selanjutnya dari Éclair adalah seri android 2.1 atau yang biasa disebut dengan Froyo atau Frozen Yogurt (API level 8). Seri selanjutnya dari Éclair ini sudah menggunakan seri kernel baru dari linux yaitu 2.6.32. Seri ini diperkenalkan pada 20 Mei 2010.
7. Android Versi 2.3 (Gingerbread)
Versi android selanjutnya yaitu Gingerbread yang memiliki beberapa varian dari seri 2.3 – 2.3.7. Android ini sudah dibekali dengan versi kernel terbaru dari linux yaitu versi 2.6.35. Seri ini diperkenalkan pertama kali pada tanggal 6 Desember 2010. Seri android 2.3 – 2.3.2 dikenal juga dengan API level 9) sedangkan android 2.3.3 – 2.3.7 dikenal juga dengan API level 10
8. Android Versi 3.0/3.1 (Honeycomb)
Android 3.0 dikenal dengan sebutan Honeycomb (API Level 11) adalah sistem operasi android pertama yang ditujukan hanya untuk komputer tablet. Seri ini dirilis berdasarkan seri kernel linux 2.6.36. Seri ini diperkenalkan pada tanggal 22 Februari 2011. Perangkat pertama yang menggunakan versi ini adalah table Motorola Xoom yang dirilis pada 24 Februari 2011. Seri lain yang juga menggunakan nama Honeycomb antara lain adalah versi android 3.1 (API level 12) dan android 3.2 (API level 13). Google TV generasi pertama dan kedua menggunakan Honeycomb 3.2.
9. Android Versi 4.0 (ICS : Ice Cream Sandwich)
Seri android selanjutnya dari Honeycomb adalah seri android 4.0 – 4.0.2 atau yang biasa dikenal dengan Ice Cream Sandwich (API level 14). Seri ini dibangun menggunakan kernel linux 3.0.1. Diperkenalkan pertama kali pada tanggal 19 Oktober 2011. Petinggi Google, Gabe Cohen menyatakan bahwa Android 4.0 secara teoritis kompatibel dengan perangkat android 2.3x yang diproduksi saat itu. Seri selanjutnya yang juga menggunakan nama ICS adalah seri android 4.0.3 – 4.0.4 (API level 15). Seri terakhir dari ICS ini sudah mendukung Flash Player yang disediakan oleh Adobe Systems. Seri ini dirilis pada tanggal 16 Desember 2011.
10. Android Versi 4.1 (Jelly Bean)
Untuk seri android selanjutnya adalah android 4.1 atau yang biasa dikenal dengan sebutan Jelly Bean (API level 16). Google secara resmi mengumumkan android 4.1 ini pada acara konfrensi Google I/O pada tanggal 27 Juni 2012. Seri ini dibangun menggunakan kernel linux 3.0.31, seri jelly bean ini di usung – usung menjadi salah satu pembaruan terpenting karena tujuannya yang meningkatkan fungsi dan kinerja dari UI. Pembaruan ini diwujudkan melalui “Proyek Butter”, perbaikan ini meliputi antisipasi sentuh, triple buffering, perpanjangan waktu vsync dan peningkatan frame rate hingga 60 fps untuk menciptakan UI yang lebih halus. Perangkat pertama yang menggunakan sistem operasi ini adalah tablet Nexus 7 yang dirilis pada 13 Juli 2012.
Seri selanjutnya yang sama – sama menggunakan nama Jelly Bean adalah android versi 4.2 (API level 17). Jelly Bean 4.2 didasarkan pada kernel linux 3.4.0 dan pertama kali digunakan pada Nexus 4 LG dan Nexus 10 Samsung yang dirilis pada 13 November 2012.
Masih dengan nama yang sama Jelly Bean, android versi 4.3 (API level 18) resmi dirilis pada tanggal 24 Juli 2013 di San Fransisco. Nexus 7 generasi kedua adalah perangkat pertama yang menggunakan sistem operasi android 4.3 ini.
11. Android Versi 4.4 (KitKat)
Seri android 4.4 yang selanjutnya dikenal dengan nama Kitkat (API level 19) seri ini terlebih dahulu mendapatkan izin dari Nestle dan Hershey. Seri ini di rilis pada tanggal 31 Oktober 2013. Pada saat seri ini di umumkan sempat ada isu – isu bahwa google selanjutnya akan memberi nama untuk android 5.0 dengan nama “Key Lime Pie”.
12. Android Versi 5.0 (Lollipop)
Salah satu seri terbaru dari sistem operasi android adalah seri 5.0 – 5.1 atau yang biasa dikenal dengan Lollipop, seri ini secara resmi diperkenalkan oleh google pada acara Google I/O yang diselenggarakan pada bulan Juni 2014. Hingga Februari 2016 lalu statistik google menunjukkan bahwa 34,1% smartphone yang mengakses Google Play menggunakan sistem operasi Android Lollipop ini.
13. Android Versi 6.0 (Marshmallow)
Android 6.0 atau yang biasa dikenal dengan M atau Marshmalow ini pertama kali diperkenalkan pada acara Google I/O yang digelar pada bulan Mei 2015 dan secara resmi dirilis pada bulan Oktober 2015. Tujuan utama seri Marshmalow ini dibangun adalah untuk penyempurnaan UI dari seri sebelumnya yaitu Lollipop, seri ini juga memperkenalkan arsitektur perizinan yang baru dan juga sistem power management yang diperbarui.
c. Keamanan dan Privasi
Aplikasi android berjalan di atas sistem sandbox, sistem sandbox adalah sebuah area yang terisolasi yang tidak memiliki akses pada sistem, kecuali izin akses yang secara eksplisit diberikan oleh pengguna ketika memasang aplikasi. Sebelum memasang aplikasi, Play Store akan menampilkan semua izin yang diperlukan, misalnya : sebuah aplasi perlu mengaktifkan camera atau menyimpan data pada memori internal atau sd card tapi tidak memerlukan izin untuk membaca sms atau mengakses phone book. Setelah meninjau ijin yang diperlukan, pengguna dapat memilik untuk menerima atau menolaknya, dan bisa memasang aplikasi hanya jika mereka menerimanya.

Sistem sandbox dan perizinan pada Android bisa mengurangi dampak kerentanan terhadap bug pada aplikasi, namun ketidaktahuan pengembang dan terbatasnya dokumentasi telah menghasilkan aplikasi yang secara rutin meminta izin yang tidak perlu, sehingga mengurangi efektivitasnya. Beberapa perusahaan keamanan perangkat lunak seperti Avast, Lookout Mobile Security, AVG Technologies dan McAfee, telah merilis perangkat lunak antivirus ciptaan mereka untuk perangkat Android. Perangkat lunak ini sebenarnya tidak bekerja secara efektif karena sandbox juga bekerja pada aplikasi tersebut, sehingga membatasi kemampuannya untuk memindai sistem secara lebih mendalam.

Hasil penelitian perusahaan keamanan Trend Micro menunjukkan bahwa penyalahgunaan layanan premium adalah tipe perangkat perusak (malware) paling umum yang menyerang Android; pesan teks akan dikirim dari ponsel yang telah terinfeksi ke nomor telepon premium tanpa persetujuan atau sepengetahuan pengguna. Perangkat perusak lainnya akan menampilkan iklan yang tidak diinginkan pada perangkat, atau mengirim informasi pribadi pada pihak ketiga yang tak berwenang. Ancaman keamanan pada Android dilaporkan tumbuh secara bertahap, namun teknisi di Google menyatakan bahwa perangkat perusak dan ancaman virus pada Android hanya dibesar-besarkan oleh perusahaan antivirus untuk alasan komersial dan menuduh industri antivirus memanfaatkan situasi tersebut untuk menjual produknya kepada pengguna. Google menegaskan bahwa keberadaan perangkat perusak berbahaya pada Android sebenarnya sangat jarang dan survei yang dilakukan oleh F-Secure menunjukkan bahwa hanya 0,5% dari perangkat perusak Android yang berasal dari Google Play.

Google baru-baru ini menggunakan pemindai perangkat perusak atau yang lebih dikenal dengan sebutan Google Bouncer untuk mengawasi dan memindai aplikasi di Google Play. Tindakan ini bertujuan untuk menandai aplikasi yang mencurigakan dan memperingatkan pengguna atas potensi masalah pada aplikasi sebelum mereka mengunduh aplikasi tersebut dari Google Play. Android versi 4.2 Jelly Bean dirilis pada tahun 2012 dengan peningkatan yang cukup baik pada fitur keamanannya, termasuk pemindai perangkat perusak yang disertakan dalam sistem; pemindai ini tidak hanya memeriksa aplikasi yang dipasang dari Google Play, namun juga bisa memindai aplikasi yang diunduh dari situs-situs pihak ketiga. Sistem akan memberikan peringatan yang memberitahukan pengguna ketika aplikasi mencoba mengirim pesan teks premium, dan memblokir pesan tersebut, kecuali jika pengguna mengizinkannya.

Telepon pintar Android memiliki kemampuan untuk melaporkan lokasi titik akses Wi-Fi, terutama jika pengguna sedang bepergian, untuk menciptakan basis data yang berisi lokasi fisik dari ratusan juta titik akses tersebut. Basis data ini membentuk peta elektronik yang bisa memosisikan lokasi telepon pintar. Hal ini memungkinkan pengguna untuk menjalankan aplikasi seperti Foursquare, Google Latitude, Facebook Places, dan untuk mengirimkan iklan berbasis lokasi.Beberapa perangkat lunak pemantau pihak ketiga juga bisa mendeteksi saat informasi pribadi dikirim dari aplikasi ke server jarak jauh. Sifat dari sistem operasi Android yaitu open source memungkinkan perusahaan keamanan untuk menyesuaikan perangkat dengan penggunaan yang sangat aman. Misalnya, Samsung bekerja sama dengan General Dynamics melalui proyek “Knox” Open Kernel Labs.

Pada September 2013, terungkap bahwa badan intelijen Amerika Serikat dan Britania; NSA dan Government Communications Headquarters (GCHQ), memiliki akses terhadap data pengguna pada perangkat iPhone, Blackberry, dan Android. Mereka bisa membaca hampir keseluruhan informasi pada telepon pintar, termasuk SMS, lokasi, surel, dan catatan.

B. Bug “Stagefright”
Bug “Stagefright” pertama kali ditemukan oleh Joshua Drake dari perusahaan Zimperium Security, bug ini secara resmi pertama kali diperkenalkan pada 27 Juli 2015 silam. Sebelum mengumumkan bug ini secara resmi Drake terlebih dahulu melaporkan bug ini pada google sekitar bulan April 2015, yang kemudian di tanggapi dengan dirilisnya patch untuk menutupi bug ini 2 hari setelah menerima laporan tersebut. Pada bulan Juli 2015 Evegeny Legerov seorang peneliti keamanan yang berbasis di Moscow mengumumkan bahwa dia menemukan 2 jenis serangan yang sejenis dengan yang dilaporkan Drage yang sama – sama memanfaatkan heap overflow zero-day vulnerabilities pada librari stagefright. Legerov juga menambahkan bahwa 2 bug yang ia temukan tersebut sudah tidak lagi dapat di exploit setelah melakukan patch yang Drake berikan pada Google.

a. Mengenali bug “stagefright”
“Stagefright” adalah sebuah nama yang diberikan pada sekumpulan bug yang ada pada sistem operasi android dengan memanfaatkan celah pada librari stagefright. Bug – bug ini mengancam hampir keseluruhan dari seri sistem operasi android, hal ini dikarenakan bug ini mengancam sistem operasi android dari mulai seri 2.2 atau yang lebih dikenal dengan froyo hingga sistem operasi terbaru yang dirilis oleh google yaitu seri 6.0 atau yang biasa disebut Android M (Marshmalow).
Joshua Drake, peneliti dari Zimperium Labs yang berhasil menemukan beberapa bug pada sistem operasi android dan melaporkannya pada google. Bug yang memungkinkan serangan hanya dengan mengirimkan 1 buah MMS untuk melakukan hacking terhadap hampir 950 juta smartphone, mungkin saja bisa menjadi lebih kaya dari kondisinya saat ini. Jika ia menjualnya pada pemerintah atau pada “pedagang” exploit dia bisa mendapatkan $100.000 atau setara dengan sekitar 133 milyar rupiah bahkan lebih. Salah satu dari “pedagang” exploit yaitu Zerodium menyatakan berani menawarkan harga sampai $100.000 untuk nya agar memberikan bug tersebut kepada mereka.

tawaran

Gambar 31 Penawaran Zerodium untuk bug Stagefright

Tapi sayangnya Drake ternyata menjadi salah seorang yang masih memegang teguh prinsip bahwa bug yang ia temukan haruslah di berikan pada pengembangnya, sehingga ia kemudian memberikan bugs dan patch pada google yang hanya membayarnya dengan $1.337 saja.
b. CVE “stagefright”
CVE atau Common Vulnerabilities and Exposures adalah sebuah Standard for Information Security Vulnerabilites Names yang dikelola oleh MITRE. Bug – bug stagefright pun mendapatkan nomor khusus pada CVE diantaranya adalah :
1. CVE-2015-1538
Serangan ini memanfaatkan integer overflow pada fungsi SampleTabe::setSampleToChunkParams di SampleTable.cpp yang ada pada library stagefright.
2. CVE-2015-1539
Serangan ini memanfaatkan integer overflow pada ESDS::parseESDescriptor yang ada pada ESDS.cpp pada library stagefright.
3. CVE-2015-3824
Serangan ini memanfaatkan fungsi MPEG4Extractor::parseChunk pada MPEG4Extractor.cpp yang bisa ditemukan pada library stagefright.
4. CVE-2015-3826
Serangan ini memanfaatkan funsi dari MPEG4Extractor::parse3GPPMetaData pada MPEG4Extractor.cpp yang bisa ditemukan pada librari stagefright. Serangan ini mengakibatkan denial of service menggunakan metode integer uderflow, buffer over-read, dan mediaserver process crash.
5. CVE-2015-3827
Serangan ini memanfaatkan fungsi MPEG4Extractor::parseChunk pada MPEG4Extractor.cpp yang bisa ditemukan pada librari stagefright. Serangan ini mengakibatkan denial of service menggunakan metode integer underflow dan memory corruption.
6. CVE-2015-3828
Serangan ini memanfaatkan fungsi MPEG4Extractor::parse3GPPMetaData pada MPEG4Extractor.cpp yang bisa ditemukan pada librari stagefright. Serangan ini mengakibatkan denial of servie menggunakan metode integer underflow dan memory corruption.
7. CVE-2015-3829
Serangan ini memanfaatkan one-by-one error yang ada pada fungsi MPEG4Extractor::parseChunk pada MPEG4Extractor.cpp yang bisa ditemukan pada librari stagefright. Serangan ini mengakibatkan denial of service menggunakan metode integer underflow dan memory corruption.
8. CVE-2015-3864
Serangan ini memanfaatkan integer underflow yang ada pada fungsi MPEG4Extractor::parseChunk pada MPEG4Extractor.cpp yang bisa ditemukan pada librari stagefright.
9. CVE-2015-3876
Serangan ini memanfaatkan librari stagefright yang memperbolehkan penyerang mengeksekusi arbitary code.
10. CVE-2015-6602
Serangan ini memanfaatkan libutils yang memperbolehkan penyerang mengeksekusi arbitary code.
11. CVE-2015-6575-1
12. CVE-2015-6575-2
13. CVE-2015-6575-3
14. CVE-2016-0828
15. CVE-2016-0829

c. Bahaya “stagefright”
Dari banyaknya nomor CVE diatas sebenarnya cukup menunjukkan dampak besar yang ditimbulkan dari bug pada library stagefright ini. Bug stagefright ini pun banyak dibicarakan sebagai bug terbesar sepanjang sejarang sistem operasi android. Hal ini dikarenakan tidak seperti metode serangan lainnya yang membutuhkan interaksi dari user, bug “stagefright” sama sekali tidak membutuhkan hal terebut. Sebagai contoh serangan spear phising yang dikirmkan ke smartphone membutuhkan interaksi user untuk mendownload attachment yang disediakan penyerang. Hal ini sangat berbeda dengan serangan yang memanfaatkan bug stagefright, karena hal tersebut sama sekali tidak dibutuhkan, misalnya salah satu bug stagefright yang memanfaatkan media MMS dengan cara mengirimkan video yang sudah dimanipulasi terlebih dahulu struktur data dan codenya maka ketika mms tersebut diterima oleh smartphone target maka saat itu pula penyerang mendapatkan akses ke smartphone target. Hal ini dikarenakan secara default beberapa aplikasi pesan menlakukan download content secara otomatis dengan tujuan saat user ingin membukanya content sudah dalam keadaan siap. Kemungkinan terburuknya adalah serangan tersebut dilakukan pada malam hari saat target sedang beristirahat, setelah mendapatkan akses ke smartphone target maka penyerang hanya butuh menghapus bukti atau notifikasi dari smartphone target terebut. Maka secara otomatis target tidak merasa curiga sama sekali bahkan menggunakan smartphone yang sudah terjangkit virus tersebut dengan normal seperti biasanya.

d. Pendeteksi bug stagefright
Beberapa aplikasi pada google play store sebenarnya menawarkan fasilitas untuk melakukan pengecekan terhadap smartphone apakah bug – bug stagefright masih dapat dimanfaatkan (di exploit) atau tidak. Dari banyaknya aplikasi tersebut ada 2 aplikasi yang terlihat cukup menjanjikan untuk dapat melakukan pengecekan tersebut. 2 aplikasi tersebut adalah Lookout Mobile Stagefright Detector dan Zimperium Stagefright Detector.

e. Celah keamanan stagefright varian baru
Tahun 2016 ini kembali ditemukan varian baru dari celah keamanan stagefright yang pada tahun 2015 silam sudah banyak update dikerluarkan hanya untuk menambal celah – celah yang ada pada library tersebut. Hampir setiap bulan google mengeluarkan update untuk sistem operasi nya yang kemudian di susul oleh produsen – produsen smartphone yang menggunakan sistem operasi besutan google tersebut. Ketika sebuah update sudah dirilis, hanya sebagian kecil saja yang benar – benar melakukan update pada sistem operasinya. Google sendiri berencana untuk mencoba memperbaiki secara keseluruhan bug pada stagefright pada android seri N, tapi tentu saja hal itu membutuhkan waktu yang tidak sebentar bahkan bisa memakan waktu hingga bertahun – tahun sampai seluruh pengguna android menggunakan sistem operasi Android N+. Hal ini diperparah dengan banyaknya produsen smartphone, membuat update dengan begitu banyak produsen bukan lah sebuah proses yang mudah.
Satu hal yang mungkin saja terjadi adalah penyebaran worm dari satu smartphone ke smartphone lain menggunakan metode social engineering. Seperti worm yang akan menjangkit smartphone dengan cara mengirimkan link menggunakan SMS, MMS, Instant Messages atau email. Jika user membuka file atau link yang diberikan maka smartphone yang digunakan akan langsung terkena serangan dengan menggunakan celah keamanan stagefright ini. Namun sebenarnya ada 2 metode serangan lain yang cukup berbahaya yang masih mungkin terjadi dan sama – sama tidak membutuhkan interaksi dengan usernya.
Kemungkinan pertama dari serangan ini adalah dengan menggunakan metode watering hole attack. Dengan cara ini penyerang mencoba menebak website yang paling sering di akses oleh sebuah grup atau instansi. Kemudian menginfeksi salah satu dari website tersebut dengan malware. Maka secara tidak langsung target akan mengunjungi website yang sudah disusupi malware tadi dan penyerang mendapatkan smartphone target.
Kemungkinan kedua dari serangan ini adalah dengan menggunakan metode MITM (Man in the Middle). Serangan ini bisa dilakukan menggunakan media Wi-Fi access point, dengan membuat rogue base station atau dengan menggunakan bagian dari sistem yang memang sudah berhasil diserang.

C. Pencegahan
Cara yang paling baik untuk mencegah serangan ini agar tidak berhasil melakukan serangannya terhadap smartphone adalah dengan cara menonaktifkan auto download pesan – pesan MMS, hal ini guna meminimalisir kemungkinan serangan yang dilakukan penyerang dengan memanfaatkan bug pada MediaServer pada smartphone. Hal ini tentu saja menjadi tidak berlaku apabila penyerang menyembunyikan “media” yang digunakan untuk masuk ke smartphone target pada cara – cara yang lain seperti melalui bluetooth, website, maupun cara – cara yang lainnya. Saran lainnya untuk mencegah serangan ini adalah jangan pernah membuka website – website yang memiliki nama yang aneh atau membuka website yang dipandang memiliki content yang seperti menggiring pembacanya untuk membuka website tersebut. Untuk media bluetooth jangan pernah membiarkan perangkat bluetooth pada smartphone dibiarkan selalu menyala atau jangan sembarangan menerima file trasfer dari perangkat yang tidak benar – benar dikenal.

D. Penanganan
Sebagai penanganan dari seragan pada celah keamanan stagefright ini sebenarnya google sendiri sudah mengeluarkan beberapa patch untuk menutup setiap celah yang ditimbulkan. Namun, walaupun google dan beberapa produsen besar sudah mengeluarkan patch yang cukup banyak untuk menutupi semua celah keamanan tersebut, keputusan terakhir tentu saja kembali pada pengguna dari smartphone tersebut. Apakah pengguna selalu melakukan update terhadap sistem operasi android yang mereka miliki atau justru bersifat acuh terhadap update yang diberikan oleh google dan produsen smartphone. Dibawah ini beberapa gambar statistik dari beberapa CVE yang terkait dengan stagefright dan berapa presentase pengguna yang melakukan update dan yang tidak melakukan update pada beberapa negara besar di dunia.

3864-vulnerable-by-country-894x1024

Gambar 2 Penggunaan patch CVE-2015-3864

cve-2015-6602-vulnerable-by-country-894x1024

Gambar 3 Penggunaan patch CVE-2015-6602

cve-2015-6575-3-vulnerable-by-country-894x1024

Gambar 4 Penggunaan patch CVE-2015-6575-3

cve-2015-6575-2-vulnerable-by-country-894x1024

Gambar 5 Penggunaan patch CVE-2015-6575-2

cve-2015-6575-1-vulnerable-by-country-894x1024

Gambar 6 Penggunaan patch CVE-2015-6575-1

cve-2015-3876-vulnerable-by-country-894x1024

Gambar 7 Penggunaan patch CVE-2015-3876

cve-2015-3827-vulnerable-by-country-894x1024

Gambar 8 Penggunaan patch CVE-2015-3827

cve-2015-3829-vulnerable-by-country-894x1024

Gambar 9 Penggunaan patch CVE-2015-3829

cve-2015-3824-vulnerable-by-country-894x1024

Gambar 10 Penggunaan patch CVE-2015-3824

cve-2015-1538-vulnerable-by-country-894x1024

Gambar 11 Penggunaan patch CVE-2015-1538

Bisa sedikit terlihat gambaran jelas dari banyaknya patch yang dikeluarkan baik itu oleh google maupun produsen – produsen smartphone. Pilihan terakhir terletak pada penggunanya sendiri, beberapa pengguna atau mungkin mayoritas dari pengguna sistem operasi android sendiri merasa acuh terhadap update sistem operasi yang diberikan. Hal ini bisa didasari oleh beberapa hal, salah satunya adalah cukup mahalnya harga yang harus di bayar oleh pengguna untuk mendapatkan akses internet yang cukup baik atau penyebaran akses internet yang masih tidak merata pada negara – negara berkembang terutama kita bisa lihat pada Indonesia. Hal lain yang tentu saja tidak kalah penting adalah kesadaran pengguna smartphone itu sendiri yang terkadang merasa tidak perlu atau bahkan sebenarnya tidak faham mengenai keamanan informasi yang seharusnya menjadi tanggung jawab bukan hanya produsen maupun pengembang sistem operasi android tapi juga penggunanya itu sendiri. Karena sekali lagi sebaik apapun sebuah sistem atau hardware jika penggunananya tidak memiliki awarness yang cukup baik mengenai keamanan informasi maka sudah bisa dipastikan software maupun hardware tersebut tetap saja dapat diserang oleh orang – orang yang tidak bertanggung jawab.

E. Kesimpulan dan Saran
1. Kesimpulan
Beberapa kesimpulan yang dapat diambil dari makalah ini antara lain adalah dalam proses pertukaran informasi di era yang canggih saat ini paling tidak ada 3 aspek penting yang berperan cukup besar yaitu software atau perangkat lunak dapat berupa sistem operasi maupun aplikasi, hardware atau perangkat keras dapat berupa handphone, smartphone, tablet dan lain – lain. Dan yang terakhir adalah brainware atau yang biasa dikenal dengan pengguna. Ketika para pengguna menginginkan atau bahkan membutuhkan “keamanan” maka hal ini tentu saja tidak bisa dilakukan hanya oleh 2 atau bahkan salah 1 dari ketiga aspek diatas. Namun, untuk mewujudkan hal itu diperlukan aksi maupun peran serta dari ketiga aspek tersebut agar “keamanan” dapat terwujud.
2. Saran
Saran yang bisa diberikan terkait dengan masalah ini adalah agar pengguna mulai dapat lebih aware terhadap keamanan informasi. Baik itu yang terkait hanya untuk informasi dirinya sendiri maupun yang terkait instansi atau bahkan negara. Dengan adanya awarness dari pengguna sebenarnya sudah cukup mengurangi kemungkinan pemanfaatan celah keamanan baik itu dari sisi sistem operasi, aplikasi maupun hardwarenya itu sendiri.

Artikel ini dibuat oleh Miftahul Fadli Muttaqin (23215026) sebagai tugas mata kuliah EL5228 Keamanan Sistem Operasi di program studi S2 Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.

Referensi
1. https://id.wikipedia.org/wiki/Android_(sistem_operasi), diakses pada tanggal 4 Mei 2016.
2. https://id.wikipedia.org/wiki/Daftar_versi_Android, diakses pada tanggal 4 Mei 2016.
3. http://www.openhandsetalliance.com/android_overview.html, diakes pada tanggal 5 Mei 2016.
4. http://www.seputarit.com/sejarah-dan-perkembangan-sistem-operasi-android.html, diakses pada tanggal 5 Mei 2016.
5. http://www.techradar.com/reviews/pc-mac/software/operating-systems/android-5-0-lollipop-1271651/review, diakses pada tanggal 7 Mei 2016.
6. https://en.wikipedia.org/wiki/Android_Marshmallow, diakses pada tanggal 7 Mei 2016.
7. https://en.wikipedia.org/wiki/Stagefright_(bug), diakses pada tanggal 10 Mei 2016.
8. http://www.androidcentral.com/stagefright, diakses pada tanggal 10 Mei 2016.
9. http://www.wired.co.uk/news/archive/2016-03/16/stagefright-android-real-world-hack, diakses pada tanggal 11 Mei 2016.
10. http://www.wired.co.uk/news/archive/2015-07/27/stagefight-android-bug, diakses pada tanggal 11 Mei 2016.
11. http://www.infoworld.com/article/3045383/security/new-exploit-spotlights-androids-stagefright-vulnerability.html, diakses pada tanggal 12 Mei 2016.
12. https://blog.zimperium.com/zimperium-zlabs-is-raising-the-volume-new-vulnerability-processing-mp3mp4-media/, diakses pada tanggal 13 Mei 2016.
13. https://blog.zimperium.com/reflecting-on-stagefright-patches/, diakses pada tanggal 13 Mei 2016.
14. http://www.realita.co/index.php?news=Mengenal-Bugs-Mematikan-Android-Stagefright-2.0~3b1ca0a43b79bdfd9f9305b81298296216b28dda2fa71f38117835c30af9076b, diakses pada tanggal 13 Mei 2016.
15. http://www.merdeka.com/teknologi/malware-ini-menginfeksi-1-juta-pengguna-android-di-seluruh-dunia.html, diakses pada tanggal 13 Mei 2016.
16. http://www.forbes.com/sites/thomasbrewster/2015/07/30/stagefright-vulnerabilties-ready-for-testing/#785fd9033ef9, diakses pada tanggal 14 Mei 2016
17. https://blog.exodusintel.com/2015/08/13/stagefright-mission-accomplished/, diakses pada tanggal 14 Mei 2016.
18. https://blog.zimperium.com/reflecting-on-stagefright-patches/, diakses pada tanggal 14 Mei 2016
19. http://www.spiegel.de/international/world/privacy-scandal-nsa-can-spy-on-smart-phone-data-a-920971.html, diakses pada tanggal 14 Mei 2016.

Apakah Perangkat kita benar-benar terbebas dari malware???

Malware (malicious software) adalah singkatan dari perangkat lunak berbahaya dan digunakan sebagai istilah tunggal untuk menyebut virus, spyware, worm dll. Malware dirancang untuk menyebabkan kerusakan pada suatu komputer atau banyak pc yang ada di suatu jaringan. Jadi di mana pun istilah malware yang digunakan itu berarti sebuah program yang dirancang untuk merusak komputer Anda. Program itu bisa berbentuk Virus, Worm,  Trojan, ataupun program berbahaya lainnya.

 

Worm adalah program berbahaya yang mengcopy dirinya sendiri terus menerus dalam suatu local drive, network shares, dll. Tujuan utama dari worm adalah untuk menghabiskan resources yang kosong. Worm tidak merusak data/file pada suatu komputer seperti virus.  Worm menyebar dengan memanfaatkan kerentanan dalam sistem operasi.

Contoh worm adalah:

  • SillyFDC.BBY
  • Generic.236
  • Troresba

Karena sifatnya mereplika dirinya sendiri pada suatu local drive, hal tersebut tentu menghabiskan banyak ruang kosong pada hard drive dan meningkatkan penggunaan CPU yang dapat membuat PC menjadi lambat, dan juga dapat menghabiskan bandwidth jaringan.

 

Virus program berbahaya yang ditulikan untuk memasuki suatu komputer dan merusak file/data yang ada pada komputer tersebut. Virus dapat merusak atau bahkan menghapus data pada suatu komputer, karena itu virus jauh lebih berbahaya dari worm yang hanya akan mereplika dirinya sendiri namun tidak bisa merusak atau merubah file/data yang ada pada komputer. Virus juga dapat mereplikasi dirinya sendiri.

Contoh Virus adalah:

  • Sfc!mod
  • Rivpas.A
  • 3773

Virus dapat masuk ke suatu komputer melalui attachment pada email yang bebentuk images, software, atau file video/audio. Virus juga dapat masuk melalui file/software gratis/trial yang dapat didownload di internet. Jadi sebelum mengunduh file/software apapun di internet, pastikan file/software tersebut aman. Hampir semua virus yang ada melekat pada sebuah file/program executable, yang berarti virus tersebut mungkin ada di komputer Anda, tetapi itu benar-benar tidak dapat menginfeksi komputer Anda kecuali Anda menjalankan atau membuka file/program tersebut. Hal penting yang perlu diingat dari virus adalah virus tidak akan bisa menyebar kecuali ada action yang dilakukan oleh pengguna, seperti menjalankan program atau membuka file yang telah terinfeksi.

 

 

 

Trojan Horse adalah program perusak yang terlihat sebagai program asli. Tidak seperti virus, trojan horses tidak mereplikasi dirinya sendiri, tetapi trojan horses bekerja sebagai perusak. Trojan juga dapat membuat backdoor pada suatu komputer yang dapat memberikan akses masuk ke sistem untuk user/program yang berbahaya dan dapat mencuri informasi-informasi yang ada pada sistem.

Contoh Trojan adalah JS.Debeski.

Trojan horse dibagi dalam klasifikasi berdasarkan bagaimana mereka mempengaruhi sistem dan kerusakan yang dapat diciptakan. Berikut adalah 7 klasifikasi trojan:

  • Remote Access Trojans,
  • Data Sending Trojans,
  • Destructive Trojans,
  • Proxy Trojans,
  • FTP Trojans,
  • Security Software Disabler Trojans, dan
  • Denial-of-Service Attack Trojans.

Jadi setelah mengetahui apa yang dimaksud dengan malware dan jenis-jenisnya, hal yang akan menjadi pertanyaan selanjutnya adalah, “siapa yang menciptakan itu, dan mengapa mereka menciptakan itu?”

Hari-hari ketika sebagian besar malware diciptakan oleh seorang remaja yang jahil sudah lama berlalu. Malware saat ini sebagian besar dirancang oleh dan untuk penjahat profesional. Penjahat tersebut dapat menggunakan berbagai taktik canggih. Dalam beberapa kasus, seperti yang dijelaskan pada http://www.govtech.com/, penjahat cyber telah dapat membuat suatu data komputer menjad  “terkunci” – membuat informasi tidak dapat diakses oleh user – kemudian menuntut uang tebusan dari para pengguna agar data dapat diakses kembali, malware tersebut disebut Ransomware.

Tetapi risiko utama yang dapat ditimbulkan oleh penjahat cyber adalah pencurian data informasi perbankan online, seperti data rekening perbankan, kartu kredit, dan password. Selanjutnya para penjahat cyber ini akan menggunakan data informasi tersebut untuk menguras rekening nasabah atau menggunakan kartu kredit sampai batas limit penggunaan nasabah. Atau bahkan penjahat cyber tersebut menjual informasi akun nasabah tersebut ke black market, dimana informasi ini dapat dijual dengan harga yang tinggi.

 

So, setelah mengetahui pengertian dan siapa pembuat malware tersebut, pertanyaan terbesarnya adalah: “Bagaimana kita dapat memastikan bahwa komputer atau jaringan kita terbebas dari malware?”

Untuk perangkat/device (seperti server atau PC) yang baru dibeli dari distributor resmi, dapat dipastikan bahwa perangkat tersebut terbebas dari malware, karena malware bekerja di level aplikasi yang mana membutuhkan OS untuk bekerja. Walaupun ada penelitian yang menyebutkan bahwa saat ini sudah ada malware yang dapat menyerang BIOS (yang artinya dapat bekerja tanpa ada OS)  yang disebut BadBIOS seperti yang dijelaskan pada http://www.pcworld.com/article/2060360/security-researcher-says-new-malware-can-affect-your-bios-be-transmitted-via-the-air.html, namun hal tersebut masih belum dapat dibuktikan kebenarannya karena belum ditemukan kasus yang benar-benar terjadi.

Lain halnya dengan BIOS yang sudah di costumize. Untuk dapat memastikan apakah BIOS tersebut sudah di customize atau belum, dapat dilihat saat perangkat baru dijalankan dan masuk ke BIOS. Disitu dapat dilihat versi BIOSnya. Setelah mengetahui versi BIOS tersebut, kita dapat mengecek di situs resmi produsen BIOS tersebut, apakah versi tersebut adalah versi resmi (official) atau bukan (yang berarti sudah di custom). Untuk perangkat yang sudah di customize, kita dapat mengembalikannya ke versi resminya dengan cara melakukan flashing.

Sedangkan untuk perangkat/device baru yang bersifat plug and play (jadi tidak membutuhkan OS), untuk memastikannya terbebas dari malware dapat menggunakan malware scanner.

Lalu bagaimana perangkat/device yang sedang dipakai? Apakah perangkat/device tersebut masih aman dari malware?

Jawabannya memiliki dua bagian: kewaspadaan pribadi, dan protective tools. Salah satu cara yang paling populer untuk menyebarkan malware adalah dengan email, yang dapat disamarkan terlihat seolah-olah email tersebut adalah email resmi dari perusahaan seperti bank, atau email pribadi dari seorang teman.

Berhati-hatilah terhadap email yang meminta untuk memasukkan password. Atau email yang tampaknya dari teman-teman, tapi hanya memiliki pesan seperti “check out this cool website!” diikuti oleh link.

Kewaspadaan pribadi adalah lapisan pertama perlindungan terhadap malware, tetapi hanya berhati-hati tidaklah cukup. Karena keamanan bisnis tidak ada yang benar-benar sempurna, bahkan mengunduh file dari situs yang resmi kadang-kadang juga telah terpasang malware. Yang berarti bahwa bahkan pengguna yang sah tetap berisiko, kecuali jika Anda mengambil langkah-langkah tambahan, seperti menggunakan protective tools (seperti Malware Security Protection).

Malware Security Protection lapisan kedua dalam memberikan perlindungan terhadap komputer dan jaringan. Sebuah software antivirus ataupun antimalware yang kuat adalah komponen utama dalam pertahanan teknologi yang harus dimiliki oleh setiap sistem komputer pribadi dan bisnis.

Program anti-malware dapat memerangi malware dalam dua cara:

  1. Anti-Malware dapat memberikan perlindungan real-time terhadap instalasi software pada komputer. Jenis perlindungan malware ini bekerja dengan cara yang sama seperti yang antivirus lakukan, dimana Software anti-malware akan melakukan scan pada semua data jaringan yang masuk untuk untuk pengecekan apakah ada malware dan blok setiap ancaman yang datang.
  2. Software Anti-malware dapat digunakan semata-mata untuk deteksi dan penghapusan malware yang telah diinstal ke komputer. Jenis software anti-malware melakukan scan terhadap isi dari registry Windows, file sistem operasi, dan program yang diinstal pada komputer dan akan memberikan daftar dari setiap ancaman yang ditemukan, yang memungkinkan pengguna untuk memilih file untuk menghapus atau tetap, atau untuk membandingkan daftar ini untuk daftar komponen malware yang dikenal, menghapus file yang cocok.

Kesimpulan yang dapat kita ambil :

  1. Banyak sekali jenis malware yang ada saat ini. Seperti Worm, Virus, Trojan, Spam, Rootkits, Spyware, Spam, dll.
  2. Saat ini umumnya malware digunakan untuk melakukan kejahatan professional, seperti pencurian informasi data perbankan.
  3. Untuk perangkat/device (seperti server atau PC) yang baru dibeli dari distributor resmi, dapat dipastikan bahwa perangkat/device tersebut aman dari malware.
  4. Ada kemungkinan bahwa perangkat/device(seperti server atau PC) memiliki BIOS yang telah di customize (yang mana bisa jadi telah dimasukkan malware). Untuk hal ini, dapat dilakukan pengecekan dengan masuk ke BIOS, lalu di cek versi BIOS tersebut. Setelah versi BIOS tersebut diketahui, dapat dilakukan pengecekan di situs produsen BIOS tersebut, apakah versi BIOS tersebut resmi atau telah di customize. Untuk BIOS yang telah di customize, user dapat melakukan flashing untuk mengembalikan versi BIOS yang telah di customize tersebut ke versi resmi (official).
  5. Untuk perangkat/device yang bersifat plug and play, pengecekan dapat dilakukan menggunakan malware scanner.
  6. Untuk perangkat/device yang telah digunakan, ada 2 hal penting yang dapat melindungi perangkat, yaitu Kewaspadaan pribadi (Personal vigilance) dan protective tools (contohnya anti-malware).
  7. Hal yang paling dasar yang harus diingat oleh user adalah tidak ada perlindungan yang pasti (absolute). Namun kombinasi dari kesadaran pribadi dan alat pelindung yang dirancang dengan baik akan membuat komputer Anda aman.

 

Sumber:

  1. http://www.symantec.com
  2. http://usa.kaspersky.com
  3. https://en.wikipedia.org/wiki/Malware
  4. http://www.pcworld.com

 

 

PIL BIRU: SEBUAH VIRTUALISASI TERSEMBUNYI

Sumber: Wikipedia
Sumber: Wikipedia

SEKILAS TENTANG PIL MERAH DAN PIL BIRU

Pil biru merupakan hasil pemikiran dari seorang peneliti utama Joanna Rutkowska yang berkebangsaan Polandia bersama dengan timnya yang berada pada laboratorium malware COSEINC yang berlokasi di Singapura. Penamaan pil biru terinspirasi oleh adegan film “The Matrix” saat karakter utama Neo ditawari oleh karakter Morpheus 2 buah pil. Pil merah akan membawa Neo ke dunia nyata sementara pil biru akan membangunkan Neo dari tidurnya dan tetap berada di dunia Matrix. Pil merah yang juga hasil pemikiran Joanna dirancang untuk membantu malware mencari tahu  apakah malware tersebut berada pada lingkungan mesin virtual (VME) atau berada pada platform host OS. Sementara pil biru adalah sebuah malware yang akan memindahkan host OS ke dalam lingkungan mesin virtual.

PENGENALAN VIRTUALISASI

Virtualisasi memiliki arti abstraksi sumber daya komputer. Definisi yang lebih panjang dari virtualisasi adalah sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari cara sistem lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Tujuan dari pemakaian virtualisasi adalah sebagai berikut:

  • Mengurangi jumlah server fisik (konsolidasi berbagai server dalam platform perangkat keras tunggal)
  • Penemuan ancaman dan eksploitasi keamanan baru
  • Menyediakan daftar kelemahan yang harus di waspadai

Berikut adalah ilustrasi lingkungan mesin virtual yang berisi tentang aplikasi pengguna yang berjalan pada guest OS dalam arsitektur x86

Sumber: http://www.intelguardians.com
Sumber: http://www.intelguardians.com

Macam-macam Virtual Machine Monitor (VMM):

  1. VMware
  2. VirtualPC
  3. Xen
  4. BOCHS

VMM memperbolehkan pengguna atau administrator menjalankan guest OS di atas host OS. Setiap guest OS berjalan pada lingkungan yang teremulasi dan mendapat akses sumber daya perangkat keras nyata maupun maya. Setiap VME yang dikendalikan VMM terisolasi, mandiri dan terpisah dari sistem nyata.

Lapisan virtualisasi terletak di antara perangkat keras dan sistem operasi. Lapisan virtualisasi menyediakan sarana untuk menjalankan berbagai sistem operasi secara bersamaan. Ada 2 pendekatan virtualisasi yang berlaku dalam arsitektur x86 yaitu pendekatan host dan pendekatan hypervisor. Pendekatan host memasang dan menjalankan lapisan virtualisasi sebagai aplikasi di atas sistem operasi dan mendukung konfigurasi perangkat keras dalam kisaran yang luas. Pendekatan hypervisor memasang lapisan virtualisasi pada sistem x86 yang bersih dan memiliki akses langsung terhadap perangkat keras. Pendekatan hypervisor lebih efisien dan memiliki skalabilitas, kinerja dan ketahanan yang tinggi.

Sumber: VMware paravirtualization
Sumber: VMware paravirtualization

MACAM-MACAM VIRTUALISASI

Sistem operasi x86 dirancang untuk berjalan langsung dari perangkat keras, sehingga secara alami memiliki perangkat keras tersebut. Arsitektur x86 memiliki 4 tingkat privilege yaitu:

  • lingkar 0
  • lingkar 1
  • lingkar 2
  • lingkar 3

Aplikasi pengguna umumnya berjalan dalam lingkar 3 sementara sistem operasi berjalan dalam lingkar 0.

Sumber: VMware paravirtualization
Sumber: VMware paravirtualization

3 macam teknik yang ada untuk menangani instruksi yang sensitif dan khusus untuk virtualisasi CPU dalam arsitektur x86:

  1. Virtualisasi penuh dengan menggunakan translasi biner
  2. Virtualisasi yang dijalankan sistem operasi atau paravirtualisasi
  3. Virtualisasi terbantu perangkat keras (generasi perdana)

Di dalam teknik pertama, kombinasi dari tranlasi biner dan eksekusi langsung (lapisan virtualisasi) membuat virtualisasi penuh guest OS benar-benar terpisah dari perangkat keras. Guest OS tidak sadar berada pada lingkungan virtual dan tidak perlu dimodifikasi. Hypervisor menerjemahkan semua instruksi secara “on-the-fly” dan menyimpan hasilnya untuk penggunaan berikutnya. Sementara, intruksi tingkat pengguna dijalankan tanpa perubahan dengan kecepatan sama.

Sumber: VMware paravirtualization
Sumber: VMware paravirtualization

Di dalam teknik kedua, paravirtualisasi mengacu pada komunikasi antara guest OS dan hypervisor untuk meningkatkan kinerja dan efisiensi. Hypervisor menyediakan antarmuka hypercall untuk menjalankan operasi kernel kritis seperti pengaturan memori, penanganan interupsi, dan pendataan waktu.

Sumber: VMware paravirtualization
Sumber: VMware paravirtualization

Dalam teknik ketiga, pengembangan generasi perdana Intel (VT-x) dan AMD (AMD-V) menargetkan instruksi khusus dengan fitur moda eksekusi CPU. Fitur ini memungkinkan VMM berjalan dalam moda root di bawah lingkar 0. Instruksi sensitif dan khusus secara otomatis terperangkap dalam hypervisor. Tahapan guest tersimpan dalam struktur kendali mesin virtual (VMCS untuk VT-x) atau blok kendali mesin virtual (VMCB untuk AMD-V).

Sumber: VMware paravirtualization
Sumber: VMware paravirtualization

PIL BIRU OLEH J. RUTKOWSKA

Latar belakang terciptanya pil biru adalah sebuah pertanyaan mengenai kemungkinan merancang malware yang:

  • Tidak bergantung pada konsep untuk menjadi tidak terdeteksi
  • Tidak terdeteksi walaupun algoritmanya diketahui secara umum
  • Tidak terdeteksi meskipun kodenya diketahui umum

Seperti malware pada umumnya, pil biru harus bisa mendapatkan kendali terhadap sistem melalui pemantauan, pencegatan dan modifikasi.

Ide dasar dari pil biru:

  • Eksploitasi ekstensi SVM pada amd64 untuk memindahkan host OS ke mesin virtual
  • Menyediakan thin hypervisor untuk mengendalikan OS
  • Hypervisor bertanggungjawab terhadap peristiwa yang berlangsung di dalam guest OS

REFERENSI

[1] J. Rutkowska (2005). Red Pill… or how to detect VMM using (almost) one CPU instruction, [Online]. Available:http://invisiblethings.org/papers/redpill.html.

[2] J. Rutkowska. “Subverting VistaTM Kernel For Fun And Profit”. Black Hat Brief-ings. Las Vegas, USA (2006)

[3] T. Liston and E. Skodis (2006),  On the Cutting Edge: Thwarting Virtual Machine Detection[Online]. Available: http://www.intelguardians.com/

[4] Understanding Full Virtualization, Paravirtualization and Hardware Assist, VMware, 2008.

 

Device Driver

Driver merupakan software yang menghubungkan sistem komputer dengan device. Dapat dimisalkan sebuah aplikasi membutuhkan suatu data dari device, maka aplikasi tersebut akan memanggil fungsi yang terdapat pada os dan os akan memanggil fungsi yang terdapat pada driver. Driver ini lah yang akan berkomunikasi dengan device untuk mendapatkan data. Setelah driver mendapatkan data dari device maka data tersebut dikirimkan ke os lalu ke aplikasi. Sebagian besar device tidak akan dapat berjalan tanpa adanya driver yang sesuai yang terinstal pada os.

driver windows

Gambar 1. Hubungan Sistem Komper dengan Device driver

Source https://msdn.microsoft.com/ru-ru/library/ff554678(v=vs.85).aspx

Device driver dapat berjalan pada 2 mode, yaitu user mode dan kernel mode. Mode yang digunakan bergantung pada tipe code yang sedang berjalan.. Driver yang berjalan di user mode tidak dapat mengakses virtual address yang dicadangkan untuk os. Pembatasan ini mencegah aplikasi dari mengubah atau merusak data pada os. Sedangkan dalam kernel mode, driver berbagi virtual address sehingga apabila driver mengalami crash maka seluruh os akan mengalaminya juga.

driver

Gambar 2. User mode dan Kernel mode

Source https://msdn.microsoft.com/ru-ru/library/ff554836(v=vs.85).aspx

Karena driver adalah sebuah software maka driver rentan memiliki bug. Bug ini dapat menimbulkan masalah pada operasional komputer, oleh karena itu driver yang berjalan pada kernel mode perlu diperhatikan lebih lanjut. Selain itu, karena driver dapat dibuat oleh third party hardware provider maka tidak mengejutkan apabila driver pada linux ataupun windows sering menimbulkan crash. (Anda dapat mengetahui berbagai vulnerability pada device driver di internet)

Untuk mengurangi dampak dari masalah tersebut maka sebelum proses instalasi device driver sebaiknya kita mengetahui apakah driver tersebut aman untuk diinstal.

Proses instalasi device driver pada windows dapat dilakukan dengan 2 cara, yaitu:

  • Cara otomatis

Pilih setting – Change PC setting – Update and Recovery – Windows Update

  • Cara manual

Download dan install driver dari website terpercaya (Manufacture’s website).

Mendowload driver dari website terpercaya pun tidak menjamin bahwa driver yang akan kita instal tersebut aman. Oleh karena itu, windows memberikan proteksi tambahan untuk mengetahui apakah driver yang kita instal aman dengan memberikan notifikasi sebagai berikut:

  • Windows can’t verify the publisher of this driver software

Driver tidak memiliki digital signature atau terdapat digital signature yang tidak terverifikasi oleh Certification Authorithy.

  • This driver hasn’t been signed

Driver tidak memiliki digital signature yang terverifikasi publisher. Driver mungkin telah diubah untuk menyertakan malware.

  • Windows requires a digitally signed driver

Driver tidak memiliki digital signature yang valid atau memiliki digital signature yang berubah.

Namun dengan men-download dari situs terpercaya dan adanya digital signature saja tidak menjamin bahwa driver tersebut terbebas dari malware. Sehingga diperlukan beberapa teknik untuk menambah proteksi. Salah satu proteksi lainnya yaitu dengan mengaktifkan anti-virus/anti-malware pada komputer. Contoh anti-virus/anti-malware yang terdapat pada windows yaitu windows defender yang dapat membantu mengidentifikasi dan menghapus virus atau software berbahaya lainnya. Tetapi sayangnya malware memiliki sistem pertahanan sendiri dan sangat memungkinkan untuk menyembunyikan diri dari antivirus atau bahkan menginfeksi antivirus itu sendiri. Oleh karena itu, banyak literature yang membahas mengenai keamanan driver ini dan mengajukan berbagai macam teknik untuk mendeteksi atau mencegah malware pada driver. Beberapa literature tersebut menjelaskan mengenai:

  • Reverse Engineering Device Driver

Reverse Engineering merupakan metode yang banyak digunakan dalam proses analisa malware. Reverse engineering digunakan untuk mencari sebuah informasi yang tidak diketahui atau disembunyikan. Informasi yang didapat merupakan sebuah celah keamanan. Keuntungan melakukan reverse engineering pada analisa malware adalah malware tidak kita jalankan sehingga meminimalisir kemungkinan komputer terinfeksi.

Tahapan analisa malware dengan reverse engineering yaitu:

  1. Malware defined: mengklasifikasi tipe dan jenis malware.
  2. Define goal malware analysis: menentukan apa yang terjadi, memastikan file, dan mesin yang mungkin terinfeksi malware.
  3. Malware analysis environment and requirement: komponen, design, dan arsitektur untuk analisa malware, contoh: malware source, virtual machine environment network hub.
  4. Basic analysis
  5. Disassembly, decompile, debugging: pembongkaran source untuk membuktikan hipotesa awal.
  • Nooks yang mengurangi konsekuensi kegagalan driver dengan cara mengisolasi aplikasi user mode.

mikrodriver

Gambar 3. Arsitektur Nooks

Nooks merupakan proteksi kernel untuk mencegah os mengalami crash karena device driver. Nooks juga dapat diartikan sebagai subsistem handal yang bertujuan untuk lebih meningkatkan kehandalan os dengan mengisolasi os dari kegagalan driver. Nooks mengisolasi driver dalam ruang alamat kernel dimana hardware dan software mencegah driver merusak kernel.

Sekarang, nooks menambah shadow driver. Shadow driver memiliki 2 tugas, pertama,  terdapat agen kernel yang menyembunyikan kegagalan driver dari user, os, ataupun aplikasi. Dan agen kernel lainnya secara transparan memulihkan driver ke fungsi sebelumnya. Dengan cara ini, aplikasi dan os tidak menyadari bahwa driver mengalami crash dan terus menjalankan fungsinya.

  • Microkernels yang berjalan pada user mode

nooks

Gambar 4. Arsitektur Microkernels

Microkernel dirancang untuk mengatasi permasalahan yang disebabkan karena pertumbuhan kernel yang membesar dan kesulitan mengelolanya. Microkernel merupakan modul inti yang menyediakan beragam mekanisme yang dibutuhkan untuk mengembangkan sebuah os. Layanan yang disediakan oleh os diantaranya adalah device driver, protokol jaringan, sistem berkas, dan kode antarmuka pengguna yang berada dalam user mode.

  • Microdriver yang mengurangi jumlah driver code berjalan pada kernel

mikrokernel

Gambar 5. Arsitektur Microdriver

Microdriver merupakan penyambung antara kernel monolitik dengan microkernel, dan meningkatkan kehandalan dan juga performansi. Microdriver membagi fungsi device driver antara kernel mode dan user mode. Kernel mode terdiri dari fungsi kritis dan yang sering digunakan, seperti mengirim dan menerima paket jaringan dan memproses perintah SCSI. Sedangakan user mode berisi fungsi non-kritis dan yang jarang digunakan seperti startup/shutdown dan penanganan eror.

 

Sumber:

http://julismail.staff.telkomuniversity.ac.id/reverse-engineering/

https://msdn.microsoft.com/en-us/library/windows/hardware/ff554678(v=vs.85).aspx

http://nooks.cs.washington.edu/

https://id.wikipedia.org/wiki/Mikrokernel

http://usenix.org/legacy/event/hotos07/tech/full_papers/ganapathy/ganapathy_html/index.html

Nugroho, Heru Adi dan Prayudi, Yudi. 2015. Penggunaan Teknik Reverse Engineering pda Malware Analysis Untuk Identifikasi Serangan Malware. Yogyakarta