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

 

 

Celah Keamanan Android – Stagefright

stagefright

Zimperium Mobile Security baru saja mengumumkan hadirnya ancaman baru bagi pengguna Android. Ancaman ini disebut sebagai “Stagefright” ini merupakan satu bug (kesalahan implementasi kode) yang terdapat pada media engine internal Android, yang diberi bernama sama: Stagefright. Kerentanan ini memungkinkan orang melakukan eksploit RCE (Remote Code Execution) alias membajak perangkatmu–cukup dengan mengetahui nomor hapemu. Caranya, dengan mengirimkan SMS Multimedia (MMS), sebuah video, yang sudah ditanami malware atau program pembajak. Dengan pengaturan normal (default), hapemu akan langsung mengunduh video itu dan mulai mempersiapkannya untuk dimainkan. Begitu video itu diakses, malware akan aktif dan bug pada Stagefright akan memungkinkan si pembajak mengakses dan mengendalikan perangkatmu dari jauh.

 

Kerentanan ini ditemukan tanggal 27 Juli 2015 lalu oleh Joshua Drake, seorang peneliti pada Zimperium zLabs, sebuah perusahaan keamanan perangkat bergerak. Menurutnya, karena media engine Stagefright ditanam pada semua perangkat Android sejak versi 2.2 (Froyo), 950 juta perangkat Android rentan dieksploitasi lewat bug ini. Dari keterangan ini, dan kenyataan bahwa Android baru masuk ke Indonesia sejak versi Froyo, bisa dibilang semua perangkat Android di Indonesia rentan dieksploitasi lewat Stagefright.
Kita harus bersyukur bahwa Drake memilih untuk mengungkap temuan ini pada Google, dengan hanya mendapat USD 1.137 untuk temuan ini–bukannya menjualnya pada pasar gelap, di mana tawaran terendah yang sudah masuk bernilai USD 100.000! Kita harus bersyukur bahwa dunia IT tidak hanya berisi pembuat hoax, tapi masih ada orang baik di dalamnya.
Melalui Android Open Source Project (AOSP) tiga patch telah dikeluarkan untuk mengatasi kerentanan ini. Namun patch ini tetap tidak akan terlalu efektif untuk perangkat Android sebelum versi 4.1. Ini karena, untuk sementara ini, patch mengandalkan Address Space Layout Randomization (ASLR) untuk mitigasi isu ini–dan ASLR baru diaktifkan sepenuhnya pada Android 4.1.
Lebih jauh lagi, Google tidak langsung melakukan patch secara online, melainkan menyerahkannya pada masing-masing vendor. Sampai 28 Juli lalu, hanya vendor Blackphone dan Firefox yang sudah aman dari eksploit ini.
Kalau Android-mu punya versi lebih lawas dari 4.1, atau kalau kamu tidak yakin vendor hapemu sudah melakukan patch, ada cara untuk melindungi perangkatmu dari eksploit Stagefright ini: matikan pengunduhan MMS dan video secara otomatis dari semua aplikasi pesan instan. Dengan demikian, kita dapat meninjau terlebih dahulu: dari siapa pesan ini dikirimkan, atau video macam apa yang dikirim. Jika pengirim tak dikenal, hapus saja. Jika video yang dikirim berupa “video heboh”, hapus saja. Kita tidak bisa mengambil resiko perangkat orang yang kita telah di-hack, dan dipakai mengirim video yang sudah ditanami perangkat pembajak.

Untuk versi CVE nya sendiri adalah :

  • CVE-2015-1538
  • CVE-2015-1539
  • CVE-2015-3824
  • CVE-2015-3826
  • CVE-2015-3827
  • CVE-2015-3828
  • CVE-2015-3829

Untuk versi kembangan nya dari zimperium sendiri ada beberapa seri seperti :

  • CVE-2015-1538, P0006, Google Stagefright ‘stsc’ MP4 Atom Integer Overflow Remote Code Execution
  • CVE-2015-1538, P0004, Google Stagefright ‘ctts’ MP4 Atom Integer Overflow Remote Code Execution
  • CVE-2015-1538, P0004, Google Stagefright ‘stts’ MP4 Atom Integer Overflow Remote Code Execution
  • CVE-2015-1538, P0004, Google Stagefright ‘stss’ MP4 Atom Integer Overflow Remote Code Execution
  • CVE-2015-1539, P0007, Google Stagefright ‘esds’ MP4 Atom Integer Underflow Remote Code Execution
  • CVE-2015-3827, P0008, Google Stagefright ‘covr’ MP4 Atom Integer Underflow Remote Code Execution
  • CVE-2015-3826, P0009, Google Stagefright 3GPP Metadata Buffer Overread
  • CVE-2015-3828, P0010, Google Stagefright 3GPP Integer Underflow Remote Code Execution
  • CVE-2015-3824, P0011, Google Stagefright ‘tx3g’ MP4 Atom Integer Overflow Remote Code Execution
  • CVE-2015-3829, P0012, Google Stagefright ‘covr’ MP4 Atom Integer Overflow Remote Code Execution

Untuk POC nya sudah di sediakan dan dapat di download di alamat :

https://s3.amazonaws.com/zhafiles/Zimperium-Handset-Alliance/ZHA-Crash-PoC.zip

Bagi yang ingin mencoba bisa melakukannya dengan file testing yang disediakan dari zimperium. File ini di tulis dalam bahasa phyton dapat di download di link :

https://raw.githubusercontent.com/jduck/cve-2015-1538-1/master/Stagefright_CVE-2015-1538-1_Exploit.py

Untuk mengetahui apakah smartphone kita terkena dampak dari stagefright ini dapat diketahui salah satu cara yang paling mudah adalah dengan menginstall aplikasi Stagefright detector yang bisa di download di sini :

https://play.google.com/store/apps/details?id=com.zimperium.stagefrightdetector

Sedangkan cara untuk mengantisipasinya, salah satunya dengan cara di bawah ini :

  1. Untuk SMS: Setting –> Multimedia Message (MMS) –> Auto-retrieve –>  hilangkan centang pada semua kartu yang tersedia (apabila memakai dual- SIM);
  2. Untuk Whatsapp: Setting –> Chat setting –> Media auto-download –>  When connected on Wi-Fi –> hilangkan semua centang kecuali image.
  3. Untuk Hangouts: Settings –> SMS –> hilangkan centang pada Auto- retrieve MMS
  4. Untuk Facebook Messenger: Settings –> Advanced –> hilangkan centang  pada Auto-retrieve MMS

 

Daftar Pustaka

[1] https://jalantikus.com/gadgets/awas-virus-stagefright-mengincar-14-milyar-pengguna-android (Di akses 16 Februari 2016)

[2] http://www.indosains.net/article/darurat-lindungi-android-mu-dari-stagefright (Di akses 16 Februari 2016)

[3] https://blog.zimperium.com/the-latest-on-stagefright-cve-2015-1538-exploit-is-now-available-for-testing-purposes/ (Diakses 16 Februari 2016)

[4] https://blog.zimperium.com/stagefright-vulnerability-details-stagefright-detector-tool-released/ (Diakses 16 Februari 2016)

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