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

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.