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 menemukan bahwa 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

 

Bug pada Keyring Facilities di Kernel Linux

Pada akhir tahun 2015, tim Perception Point menemukan bug pada fasilitas keyring di kernel linux versi 4.4.1 dan sebelumnya. Bug ini, yang mendapatkan identitas CVE-2016-0728, pada saat dibuka ke publik, diperkirakan mempengaruhi sekitar puluhan juta PC dan server dengan sistem operasi Linux, dan 66% perangkat Android. CVE-2016-0728 adalah bug yang disebabkan oleh reference leak pada fasilitas keyring.

Penyebab Terjadinya Bug

Fasilitas keyring (keyring facilities) adalah metode yang disediakan kernel untuk driver-driver men-cache data keamanan, kunci otentikasi, kunci enkripsi dan data lainnya. Antarmuka system call (syscall) keyctl disediakan agar program-program pada userspace dapat mengelola keyring ini dan menggunakan fasilitas untuk tujuannya masing-masing.

Setiap proses dapat membuat keyring pada sesi berjalan (session keyring) menggunakan syscall keyctl(KEYCTL_JOIN_SESSION_KEYRING, name) dan dapat memberikan nama pada keyring tersebut, atau memberi nilai NULL pada bagian nama. Obyek keyring dapat digunakan bersama oleh beberapa proses yang menggunakan nama keyring yang sama.

Apabila suatu proses sudah memiliki session keyring, syscall yang sama akan menimpa keyring sebelumnya dengan yang baru. Apabila suatu obyek keyring digunakan bersama oleh beberapa proses, nilai internal refcount milik obyek tersebut yang tersimpan pada field bernama usage ditambah satu.

‘Kebocoran’ terjadi pada saat suatu proses mencoba untuk menimpa session keyring yang sedang digunakan dengan keyring yang itu juga.  Hal ini terjadi karena pada fungsi join_session_keyring, fungsi tersebut menyimpar reference ke keyring yang diminta. Namun apabila keyring yang sama sedang digunakan oleh proses yang memanggil syscall tersebut, kernel tidak mengurangi nilai internal refcount pada field usage, sehingga memory yang digunakan oleh keyring menjadi lebih besar dari yang digunakan (memory leak).

Uji Coba pada Server

Bug di ujicoba pada Ubuntu Server yang terinstall pada server kuliah el5228-05 menggunakan source code berikut (https://gist.github.com/PerceptionPointTeam/3864cf0c2a77f7ebd1dd#file-leak-c , diakses 9/2/2016):

/* $ gcc leak.c -o leak -lkeyutils -Wall */
/* $ ./leak */
/* $ cat /proc/keys */

#include 
#include 
#include <sys/types.h>
#include 

int main(int argc, const char *argv[])
{
    int i = 0;
    key_serial_t serial;

    serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, "leaked-keyring");
    if (serial < 0) {
        perror("keyctl");
        return -1;
    }

    if (keyctl(KEYCTL_SETPERM, serial, KEY_POS_ALL | KEY_USR_ALL) < 0) {
        perror("keyctl");
        return -1;
    }

    for (i = 0; i < 100; i++) {
        serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, "leaked-keyring");
        if (serial < 0) {
            perror("keyctl");
            return -1;
        }
    }

    return 0;
}

Source code membutukan librari libkeyutils-dev dan compiler gcc, sehingga kedua paket ini harus diinstal dulu di server. Setelah gcc dan libkeyutils-dev terinstall, source code di-compile dengan perintah:

gcc leak.c -o leak -lkeyutils -Wall

Berikut adalah screenshot keyrings sebelum dan sesudah program “leak“ dijalankan.

aaaa
Sebelum program dijalankan
bbbb
Setelah program dijalankan

Setelah program dijalankan, akan terlihat bahwa keyring bernama leaked-keyring seakan-akan digunakan oleh 100 proses, walaupun sebenarnya leaked-keyring hanya digunakan oleh satu proses milik satu program diatas. Namun karena program diatas memanggil syscall keyctl pada loop hingga 100 kali, nilai usage tidak dikurangi dan akibatnya, kernel mengira keyring tersebut sedang digunakan 100 proses.

Konsekuensi Terjadinya Bug

Seperti yang diperlihatkan diatas, bug ini dapat menyebabkan memory leak. Namun ada konsekuensi lain. Nilai reference count pada kolom usage diatas dapat mengalami integer overflow. Tidak ada pengecekan yang dilakukan untuk menghindari terjadinya overflow pada kolom usage ini.

Apabila suatu proses dapat membuat kernel mengalami leak referensi ke 0x100000000 (maksimum integer + 1) pada proses yang sama, ini dapat menyebabkan kernel mengira bahwa obyek tidak lagi direferensi dan membebaskan memori yang digunakan obyek tersebut, men-dealokasi, atau me-realokasi memori, yang sebenarnya masih digunakan. Hal ini akan menyebabkan munculnya kelemahan use-after-free: suatu program menggunakan suatu pointer ke alamat memori yang sebenarnya sudah dibebaskan oleh kernel, sehingga bisa terjadi perilaku yang tidak didefinisikan oleh program.

Penyerang dapat memanfaatkan kelemahan user-after-free yang terjadi dengan membuat program yang melakukan hal berikut:

  1. Membuat referensi yang benar ke suatu obyek keyring
  2. Overflow nilai usage keyring tersebut
  3. Perintahkan kernel untuk membebaskan obyek keyring tersebut
  4. Alokasikan obyek kernel yang berbeda dari userspace, dengan konten yang dikendalikan pengguna (arbitrary code), pada alamat memory yang sebelumnya digunakan oleh obyek keyring yang dibebaskan.
  5. Gunakan referensi ke obyek keyring yang sudah dibebaskan tersebut sehingga memicu eksekusi kode.

Pada exploit yang digunakan oleh tim Perception Point sebagai contoh, exploit dijalankan pada kernel versi 3.18 64-bit dan memakan waktu hingga 30 menit pada Intel Core i7-5500. Hasil yang didapatkan tim Perception Point, exploit dapat memberikan akses root pada shell.

cve_2016_0728
Hak akses root didapatkan

Mitigasi

Karena bug ini hanya mempengaruhi kernel linux versi 4.4.1, mengupgrade ke versi yang lebih baru akan menutup kelemahan yang disebabkan bug. Selain itu, Supervisor Mode Execution Program atau SMEP (suatu fitur keamanan pada beberapa CPU Intel) dan SELinux pada perangkat Android akan mempersulit berjalankan exploit pada komputer target.

Referensi

Software Patches & OS Updates

Patch adalah bagian software yang dirancang untuk mengupdate komputer program atau data pendukungnya untuk memperbaiki atau memperbaharuinya, termasuk memperbaiki:

  • kelemahan keamanan,
  • bug,
  • penambahan fitur,
  • memperbaiki performance.

Tanpa melakukan patch, suatu sistem dapat memiliki celah untuk malware.

Patch biasa dilakukan dengan mengaktifkan update otomatis pada sistem operasi atau software, sehingga dapat diinstal setelah patch dirilis oleh vendor. Namun demikian, mekanisme update otomatis adalah sesuatu yang problematik dalam perusahaan. Administrator IT harus melakukan penilaian terhadap dampak dari dilakukannya patch terhadap sistem yang ada.

Continue reading Software Patches & OS Updates

Pengecekan fisik keamanan Hardware dan cara Malware Deity Bounce menginfeksi BIOS

Tulisan ini sengaja saya buat sebagai tugas dari mata kuliah Operating System Security yang sedang saya jalani.

 

Pertanyaan besarnya dalam tugas ini adalah apakah hardware yang kita beli itu secure(aman) dari malware?

yup, memang tidak ada jaminan bahwa setiap hardware yang kita beli baik Motherboard, Memory(RAM), Harddisk, bahkan flashdisk kita, aman dari malware atau kode2 yang menyusup, merusak atau “mencuri” data dan informasi di dalamnya.

 

Dari hasil searching di www.google.com tidak ditemukan bagaimana mengecek fisik hardware yang kita beli aman, sehingga saya coba merangkum sendiri tulisan ini.

 

berikut adalah ulasannya:

 

hal dasar…!!!

malware, trojan, virus dan semua malicious-code yang ada hanya akan bekerja ketika ada arus mengalir kepada suatu perangkat(hardware) dan perangkat tersebut terhubung dengan perangkat lainnya.

 

maka pengecekan awal yang bisa dilakukan yaitu secara fisik dari perangkat tersebut, yaitu :

  1. cari informasi security hole (celah keamanan) dari hardware yang akan dibeli di internet. Jika ada, maka kita bisa mengganti pilihan kepada hardware yang lain yang tidak ada atau belum ada info security hole nya. Klo hardware tersebut sudah terlanjur beli, maka segera update firmware dan anti malware yang bisa menghapus malware tersebut.

 

  1. pastikan semua komponen hardware tersebut utuh dan tidak cacat ataupun tidak rapih.

Walaupun hal ini tidak menjamin bahwa hardware yang kita beli setidaknya dengan mendapatkan hardware dengan kondisi tanpa cacat dan rapih akan lebih menjamin aspek availability dari aspek security hardware.

 

  1. pastikan tidak ada komponen tambahan atau berkurangnya komponen hardware dari produk asli yang sama berdasarkan informasi yang didapat.

 

Malware hanya bisa disimpan pada media penyimpanan, maka untuk bisa menyisipkan pada hardware harus meletakkan part yang bisa menyimpan data yang tentu saja membutuhkan tempat(slot) khusus. Contoh: pada motherboard part yang bisa menyimpan data yaitu pada Read Only Memory(RAM)maka malware hanya bisa disimpan pada ROM atau part lain yang disisipkan didalam motherboard.

 

  1. pastikan batre cmos dalam keadaan terisi

 

karena jika  batre cmos habis maka configurasi untuk motherboard akan kembali lagi kepada settingan default termasuk settingan password bios kita.

 

 

Untuk menambah bobot tulisan isi saya juga menambahkan tulisan tentang malware Deity Bounce, yaitu malware yang mampu meninfeksi BIOS pada motherboard.

 

Malware atau Malicious-Software adalah sebuah program atau software jahat yang menyusup kedalam system computer dan mengakibatkan berbagai kerugian kepada pengguna computer. Karena berupa software maka malware biasanya berada pada media penyimpanan berupa harddisk atau falshdisk. Pertanyaannya adalah bisakah malware menginfeksi BIOS? Karena BIOS pada motherboard juga merupakan media penyimpanan.

 

 

Malware Deity Bounce adalah malware yang bisa meninfeksi BIOS pada motherboard. Deity Bounce merupakan malware yang digunakan NSA (National Security Agen) untuk melakukan spionase. Malware ini mulai dikenal ketika Edward Snowden membocorkan dokumen tentang operasi NSA. Salah satu dokumen yang dibocorkan Snowden adalah tentang peralatan yang digunakan NSA untuk melakukan penyadapan. Salahsatunya adalah system ANT Server. System NAT Server inilah yang menggunakan malware Deity Bounce. Malware Deity Bounce khusus menyerang system server yang menggunakan DELL POWEREDGE. Malware ini melakukan exploit pada BIOS motherboard dan menggunakan System Management Mode untuk mengendalikan Operating system. Malware ini mampu menjalankan kode tertentu tanpa terdeteksi oleh operating system atau aplikasi yang dijalankan operating system.

 

Malware ini dibuat untuk Server DELL POWEREDGE seri 1850/2850/1950/2950 dan menggunakan Operating System Windows 2000, XP dan 2003 Server.

 

Analisa tentang ANT Server dapat dilihat pada link berikut ini:

 

https://nsa.gov1.info/dni/nsa-ant-catalog/servers/index.html

 

penjelasan tentang exploit yang memanfaatkan SMM dapat dilihat pada majalah phrack berikut ini :

 

http://phrack.org/issues/66/11.html

 

 

sumber :

julismail.staff.telkomuniversity.ac.id/deitybounce

 

 

 

 

 

Keamanan Sistem Operasi NetBSD untuk Aplikasi Berbasis Web – Bagian VII Hardening NetBSD

Penambalan celah keamanan pada instalasi

Salah satu fitur menarik dalam NetBSD adalah kita bisa melakukan pemeriksaan terhadap celah keamanan dengan mudah, Netbsd memiliki sebuah tool untuk melakukan audit terhadap keamanan paket-paketnya yaitu pkg_admin, pkg_admin ini adalah tools untuk melakukan berbagai pekerjaan untuk administrasi paket, didalamnya disertakan fungsi untuk mengaudit paket.

Paket diaudit dengan cara :

  • Mengunduh file audit
  • Membandingkan file audit dengan meta data paket pada sistem
  • Paket yang ada diaudit untuk diperiksa integritas datanya dengan hash MD5
  • Paket diaudit versinya agar dapat diketahui apakah versi yang digunakan memiliki vulneribilitas atau tidak
  • Melaporkan vulnerabilitas apabila ditemukan

METADATA PAKET

Ketika sebuah paket diinstal maka akan dibuat sebuah meta data yang terletak pada /var/db/pkg, didalam folder tersebut juga terdapat sebuah file bernama pkg-vulnerabilities yang berisi informasi mengenai kelemahan software yang terdapat didalam paket. Untuk meninjau paket ini dapat dilihat dengan perintah :
varidbpkg
Isi dari metadata ini selain struktur file didalam paket, juga beberapa script shell untuk mengadministrasi paket tersebut.

Audit Vulneribilitas Paket yang Terisntal

Untuk melakukan audit terhadap paket yang terisntal pada sistem kita, langkah pertama adalah mengunduh daftar vulnerabilitas terbaru yang terdapat pada repositori netbsd dengan perintah:

# pkg_admin fetch-pkg-vulnerabilities

 

Kemudian kita harus periksa keabsan paket yang baru kita unduh tadi dengan nilai hash md5 yg terdapat di server dengan perintah :

#pkg_admin check-pkg-vulnerabilities /var/db/pkg/pkg-vulnerabilities

pkgadminfetch

 

langkah selanjutnya adalah melakukan audit terhadap paket-paket yang ada dengan membandingkannya dengan  dengan file pkg-vulnerabilities yang baru saja kita unduh dengan perintah :

# pkg_admin audit

Hasilnya apabila ditemukan kelemahan maka akan muncul hasil seperti ini :vulnerabilities

Bila ditemukan seperti diatas maka lakukan segera upgrade ke versi terbaru dengan perintah

#pkgin upgrade

atau

#pkgin fullupgrade

Mengaudit Integritas File Paket Dengan Hash

Paket yang terisntall seluruhnya dapat diperiksa integritasnya dengan MD5 dengan sebuah opsi “check” perintah pada pkg_admin, hal ini berguna untuk mengetahui apakah ada file paket yang dimodifikasi oleh pihak yang tidak bertanggungjawab.

# pkg_admin check
admin check

Menambahkan Log-Log Penting

Untuk menambah keawasan kita akan status mesin, maka kita wajib menambahkan log-log penting dengan menambahkan baris-baris berikut pada /etc/newsyslog.conf.

#echo "/var/log/php-fpm.log 640 7 * * BZ /var/run/php-fpm.pid SIGUSR1" >> /etc/newsyslog.conf

#echo "/var/log/nginx/access.log 640 7 * 24 Z /var/run/nginx.pid SIGUSR1" >> /etc/newsyslog.conf

#echo "/var/log/nginx/error.log 640 7 * 24 Z /var/run/nginx.pid SIGUSR1" >> /etc/newsyslog.conf

 

Strategi Mitigasi #12 – Aplikasi Firewall Berbasis Perangkat Lunak, Menghalau Masuknya Lalulintas dalam Jaringan

Mitigasi

Implementasi dari aplikasi firewall berbasis perangakt lunak, menghalau masuknya lalulintas dalam jaringan yang dapat berupa hal perusak atau tidak terotorisasi dan menolak lalu lintas jaringan secara default.

Dasar Pemikiran

Menghalau sambungan jaringan yang tidak diperlukan dan mengurangai potensi serangan yang muncul dengan membatasi pembongkaran ke servis jaringan yang berjalan pada statiun kerja dan peladen, juga dapat mengurangi kemampuan musuh dunia maya untuk merambat sepanjang jaringan organisasi sebagai bagian dari bagian kedua dari intrusi dunia maya,

Panduan Implementasi

Titik akhir perlindungan atau perangkat lunak anti-perangkat perusak dari vendor termasuk aplikasi yang berfungsi sebagai firewall berbasis perangakat lunak.

Informasi lebih lanjut

ISM controls: 0380, 0941, 1017.

Strategi Mitigasi #14 – Non‐persistent virtualised sandboxed trusted operating environment

Mitigasi

Implementasi dari aplikasi firewall berbasis perangakt lunak, menghalau keluarnya lalulintas dalam jaringan yang tidak dibuat oleh daftar putih aplikasi  dan menolak lalu lintas jaringan secara default.

Dasar Pemikiran

Menghalau keluarnya lalulintas pada jaringan yang tidak dibuat oleh daftar putih aplikasi agar dapat mencegah musuh dunia maya untuk merambat sepanjang jaringan organisasi sebagai bagian dari bagian kedua dari intrusi dunia maya.

Panduan Implementasi

Titik akhir perlindungan atau perangkat lunak anti-perangkat perusak dari vendor termasuk aplikasi yang berfungsi sebagai firewall berbasis perangakat lunak.

Informasi lebih lanjut

ISM controls: 0380, 0941, 1017.

Strategi Mitigasi #11 – Otentikasi multi-faktor

Mitigasi

Implementasi otentikasi multi faktor, terutama untuk Target Paling Mungkin, akses jarak jauh, dan ketika pengguna akan melakukan hak khusus (termasuk administrasi sistem) atau mengakses penyimpanan informasi sensitive.

Otentikasi multi-faktor melibatkan pengguna untuk memverifikasi identitatas mereka menggunakan paling sedikit dua dari tiga mekanisme berikut:

  • Sesuatu yang diketahui pengguna, seperti passphrase atau PIN
  • Sesuatu yang dimiliki pengguna, seperti token fisik atau sertifikat perangkat lunak
  • Sesuatu yang membuktikan pengguna, seperti sidik jari

Dasar Pemikiran

Otentikasi multi-faktor membantu mencegah musuh dunia maya untuk merambat sepanjang jaringan organisasi sebagai bagian dari bagian kedua dari intrusi dunia maya,

Jika diimplematiskan secara benar, otentikasi multi-faktor dapat membuat musuh dunia maya, secara signifikan, lebih sulit dalam mencuri kredensial yang sah untuk memfasilitasi aktifitas yang merusak lebih jauh dalam jaringan.

Panduan Implementasi

Mekanisme otentikasi multi-faktor menyediakan berbagai macam level keamanan

  • Token yang terpisah secara fisik dengan nilai yang berdasar waktu, yang tidak terhubung dengan statiun kerja, mungkin menjadi pilihan paling aman bergantung pada kegunaan dan implementasi. Otentikasi multi-faktor debgan token yang terpisah secara fisik dengan nilai beradasar waktu membantu untuk mencegah musuh dunia maya untuk membangun VPN atau hubungan akses jarak jauh ke jaringan organisasi.
  • Kartu pintar mungkin pilihan kurang aman, bergantung pada penggunaan dan implementasi termasuk apakah kartu pintar tetap terhubung dengan statiun kerja, dan juga derajat perangkat lunak yang berjalan pada statiun kerja yang berinteraksi dengan kartu pintar.
  • Perangakat lunak yang berbasi sertifikat yang disimpan dan dilindungi oleh sistem operasi lebih kurang aman. Hal ini dikarenakan musuh dunia maya dapat menyalinnya tanpa memerlukan hak khusus administrative

Amankan peladen yang menyimpan data otentikasi pengguna dan melakukan otentikasi pengguna  karena peladen seperti ini sering di target oleh musuh dunia maya.

Kegunaan dari otentikasi multi-faktor untuk akses jarak jauh tidak mengurangi penggunaan pengguna dalam memasukan passphrase. Musuh dunia maya dapat mengambil passphrase pengguna ketika dimasukkan pada compromised computing device untuk melakukan akses jarak jauh. Passphrase ini mungkin digunakan sebagai bagian dari intrusi dunia maya, conth musuh dunia maya mendapatkan akses gisik ke statiun kerja perusahaan dan melakukan log in sebagai pengguna atau dengan menggunakan passphrase  untuk mengakses resource sensitive perusahaan sebagai bagian dari instrusi dunia maya jarak jauh terhadap jaringan perusahaan. Mitigasi termasuk menggunakan otentikasi multi-faktor untuk semua login pengguna termasuk statiun kerja perusahaan di dalam kantor, atau memastikan passphrase pengguna untuk akses jarak jauh berbeda dengan yang digunakan dari kantor.

Pastikan bahwa akun servis admistratif dan akun lain yang tidak dapat menggunakan otentikasi multi-faktor untuk menggunakan passphrase  yang memenuhi kebutuhan ISM

Informasi lebih lanjut

Panduan lebih jauh dari otentikasi multi-faktor:
http://www.asd.gov.au/publications/csocprotect/multi_factor_authentication.htm

ISM controls: 1039, 1265, 1173, 0974, 1384, 1357.

Strategi 20 # Menangkal Email Palsu

Mitigasi

Menangkal email palsu menggunakan ID pengirim atau menggunakan Sender Policy Framework (SPF) untuk memeriksa email yang masuk dan sebuah catatan “hard fail” SPF untuk membantu mencegah pemalsuan dari domain organisasi anda.

Dasar Pemikiran

SPF atau implementasi alternatif seperti ID Pengirim, membantu dalam pendeteksian email palsu dan mengurangi tingkat keberhasilan dari semacam metode instrusi siber.

Panduan implementasi

  • Konfigurasi catatan SPF untuk domain organisasi anda termasuk subdomainnya, dan konfigurasi sebuah wildcard catatan SPF untuk mencocokkan subdomain yang tidak ada;
  • ID Pengirim adalah sebuah versi alternatif dari SPF yang memeriksa keasilian dari alamat surat elektronik pengirim dimana muncul dan terlihat pada penerima surat elektronik. Implementasi tambahan termasuk DomainKeys Identified Mail (DKIM);
  • Domain‐based Message Authentication, Reporting and Conformance (DMARC) membuat standar bagaimana penerima surat elektronik melakukan otentikasi surat elektronik menggunakna mekanisme SPF dan DKIM;
  • Menolak surat elektronik dari Internet dimana domain organisasi anda sebagai pengirim surat elektronik tersebut.

Informasi lebih lanjut

Pandian lebih lanjut tentang strategi mitigasi email palsu tersedia pada:

http://www.asd.gov.au/publications/csocprotect/spoof_email_sender_policy_framework.html

Kendali ISM : 0574, 1151‐1152, 0861, 1025‐1027, 0561, 1183.