Tiga Serangan yang Pernah Terjadi pada Cloud Database

Cloud computing

Pada dunia digital seperti sekarang cloud computing sudah ada dimana-mana. Cloud computing tidak hanya solusi teknis yang dapat mengurangi biaya infrastruktur, tetapi juga model bisnis yang dapat dijual dan disewakan [4]. Dalam berbagai kasus pengguna menggunakan cloud tanpa mengetahui bagaimana menggunakannya. Hal ini menimbulkan sejumlah ancaman keamanan yang terkait dengan cloud computing. Cloud computing didefinisikan oleh US National Institute of Standards and Technology (NIST). Mereka mendefinisikan cloud computing sebagai model untuk dapat akses jaringan on-demand yang ada dimana-mana ke kumpulan sumber daya computing yang dapat dikonfigurasi (misalnya jaringan, server, penyimpanan, aplikasi, dan layanan)[2]. Skema cloud computing secara sederhana bisa dilihat pada Gambar 1. Skema Cloud Computing[3].

Gambar 1. Skema Cloud Computing [3]

Cloud computing terbagi menjadi 3 jenis, pada artikel ini pembahasan akan fokus kepada cloud computing platform as a service yaitu cloud database. Berdasarkan jenisnya cloud computing terbagi ke dalam beberapa jenis seperti pada Gambar 2. Jenis Cloud Computing [5].

Gambar 2. Jenis Cloud Computing [5]

Cloud database

Cloud computing tidak hanya mempengaruhi teknologi tetapi juga masuk ke dalam lingkup database. Semakin berkembangnya teknologi cloud computing, maka permintaan layanan database juga bisa semakin banyak. Cloud database merupakan database yang dapat diakses oleh client dari cloud service yang didistribusikan ke user melalui internet oleh cloud provider. cloud database membantu penyimpanan data yang semula menggunakan hard driver, CD ataupun hardware lainnya. Dengan menggunakan cloud data hanya perlu disimpan pada remote database yang telah disediakan oleh pihak ketiga [1], [2]. terdapat dua cara cloud database, yang pertama adalah menjalankan database pada server bersama di layanan cloud. Kedua adalah cloud database yang disediakan oleh penyedia cloud yang menghosting database dan menyediakan akses ke pengguna. Pengguna dapat memilih database sesuai dengan kebutuhan setiap penyedia layanan.[11]

  1. Untuk mode virtual machine image, pengguna cloud database dapat membeli ruang server dari penyedia, karena pengguna dapat menjalankan database pilihan pengguna dan mengunggah virtual machine image dengan salinan database yang optimal. Hal ini dapat dilakukan dengan membuat cloud database dengan mudahnya karena vendor sudah membuatnya dengan sederhana dan mudah untuk dipahami. Edisi oracle 11 g enterprise bisa untuk go image di layanan web Amazon EC2. Seseorang dapat membuat cloud database dengan oracle untuk microsoft azure, dengan cara yang sama.
  2. Penyedia layanan cloud database juga memiliki layanan DBaaS. Salah satu keuntungan dari mode cloud database ini yaitu semuanya menjadi tanggung jawab dari penyedia layanan. Pengguna hanya membayar berdasarkan penggunaan saja.
  3. Penyedia hosting cloud database bekerjasama dengan pihak ketiga. Misalnya MongoDB tersedia di layanan web Amazon dan juga Azure. Konsol yang disediakan oleh penyedia layanan cloud membantu mengakses dan menggunakan database. penguna dapat membuat cloud database, backup dan memantau operasi.
Gambar 3. Cloud Database [11]

Hal yang berkaitan dengan keamanan sistem informasi adalah yang berkaitan dengan jaringan komputer dan data yang ditransfer melalui jaringan komputer tersebut. Beberapa ancaman bisa terjadi dan dapat menyebabkan kerugian yang cukup besar, hal ini harus disadari oleh setiap individu yang terlibat dalam pemakaian cloud database. Oleh karena itu, setiap individu sudah seharusnya mengetahui ancaman apa saja yang mungkin terjadi dan pernah terjadi, dan bagaimana hal itu dapat terjadi.

Serangan-serangan yang pernah terjadi pada cloud database

Ancaman serangan dan contoh kasus serangan yang mungkin dan pernah terjadi pada cloud database  adalah sebagai berikut:

Continue reading Tiga Serangan yang Pernah Terjadi pada Cloud Database

Multi-tenancy pada Cloud, Pertimbangan dan Resiko Keamananya

Anda tentu sudah tidak asing lagi dengan istilah “cloud” yang sejak beberapa tahun silam menjadi sangat populer di telinga kita bahkan sampai saat ini terus berkembang dan para raksasa IT di dunia terus bersaing untuk menjadi penyedia layanan cloud yang terbaik. Kali ini kita akan coba eksplorasi walau tidak secara medalam tentang ide dibalik arsitektur cloud yaitu multi-tenancy.

Multi-tenancy adalah arsitektur cloud yang memungkinkan setiap tenant dari suatu layanan cloud berbagi daya komputasi dengan tenant Continue reading Multi-tenancy pada Cloud, Pertimbangan dan Resiko Keamananya

Kebocoran Data Hasil Uji Darah pada Repositori Awan Amazon

Penggunaan Komputasi Awan dalam mendukung keberlangsungan bisnis suatu perusahaan telah banyak ditemui di seluruh dunia. Hasil yang diperoleh lebih baik dan membutuhkan waktu implementasi yang sedikit dibandingkan dengan investasi dan pembangunan data center sendiri. Namun semakin besarnya keuntungan yang ditawarkan, terdapat pula banyak kerentanan yang dapat membahayakan data yang dimiliki perusahaan.

sumber Continue reading Kebocoran Data Hasil Uji Darah pada Repositori Awan Amazon

Top 10 Risiko Keamanan Pada Cloud

Top 10 Risiko Keamanan Pada Cloud

Dengan banyaknya perkembangan teknologi zaman sekarang baik dari segi infrakstruktur, jaringan dan telekomunikasi. Salah satu perkembangan teknologi tersebut adalah Cloud. Cloud bisa disebut sebuah teknologi yang mana dapat diakses dimanapun menggunakan jaringan internet. Menurut [1] cloud juga dapat mengarah kepada software dan service yang berjalan di internet dibandingkan di computer sendiri. Beberapa contoh layanan penyedia cloud diantaranya : Apple iCLoud, Dropbox, Netflix, Amazon cloud drive, Google Driver dan lain-lain. Banyak keuntungan yang didapatkan jika menggunakan cloud diantaranya setiap data yang disimpan di Cloud, dapat diakses dimana saja dan kapanpun dengan menggunakan koneksi internet. Disamping beberapa keuntungan yang dimiliki oleh CLoud, cloud juga juga memiliki beberapa resiko keamanan.

OWASP (The Open Web Application Security Projek) merupakan organisasi/komunitas yang fokus dibidang Keamanan Aplikasi. Semua kegiatan OWASP didedikasikan agar dapat membantu organisasi memahami, mengembangkan, memperoleh, mengoperasikan dan me-maintain aplikasi yang aman atau dapat dipercaya. Semua hasil penelitian yang dilakukan oleh OWASP di sosialisasikan kepada siapapun yang ingin meningkatkan keamanan aplikasi dan semua itu bersifat terbuka baik berupa dokumen, tool, metodologi, artikel, serta teknologi. OWASP tidak melakukan afiliasi dengan perusahan teknologi manapun. Hal ini agar owasp bebas dari tekanan dan mampu bersifat objektif dalam memberikan informasi mengenai keamanan yang erat kaitannya dengan teknologi informasi.

OWASP mempublikasikan top 10 resiko keamanan pada cloud. Risiko keamanan tersebut diantaranya

  1. R1: Accountability & Data Risk
  2. R2: User Identity Federation
  3. R3: Regulatory Compliance
  4. R4: Business Continuity & Resilliency
  5. R5: User Privacy and Secondary Usage of Data
  6. R6: Service and Data Integration
  7. R7: Multi Tenancy and Physical Security
  8. R8: Incidence Analysis and Forensic Support
  9. R9: Infrastructure Security
  10. R10: Non Production Environment Exposure

Continue reading Top 10 Risiko Keamanan Pada Cloud

Standard Keamanan Cloud Computing dan Hukumnya di Indonesia

Pendahuluan

Cloud computing (CC) atau terjemah bebas dalam bahasa Indonesia, Komputasi Awan, merupakan suatu model yang memberikan kenyamanan akses suatu jaringan sesuai keperluan pada suatu wadah bersama terdiri atas sumber daya komputasi (seperti jaringan, server, penyimpanan, aplikasi, dan layanan) yang dapat dikonfigurasi dengan cepat. [1] Namun, dibalik kenyamanan tersebut terdapat beberapa ancaman yang dapat membahayakan, baik individu, kelompok, bahkan negara. Beberapa ancaman yang dapat membahayakan cloud computing adalah kebocoran data, pencurian kredensial, peretasan API, eksploitasi kerentanan sistem, pembajakan akun, hilangnya data secara permanen, penyalahgunaan layanan cloud, dan serangan DOS. [2] Oleh karena itu, perlu ada standar keamanan yang diterapkan pada penyedia cloud computing. Selain itu, perlu juga hukum yang membatasi penggunaan cloud computing, terutama data yang menyangkut banyak orang dan data rahasia. Pada tulisan ini akan dibahas standar keamanan yang perlu dipenuhi suatu penyedia cloud computing serta hukum yang berlaku di Indonesia terkait cloud computing.

Jenis Layanan Cloud

Beberapa jenis layanan cloud [1], yaitu:

  • Infrastructure as a Service (IaaS): IaaS menyediakan penyimpanan atau sumber daya komputasi yang dapat diakses online. Misalnya, Google Cloud Storage, Microsoft Windows Azure Storage, dan Dropbox.
  • Platform as a Service (PaaS): PaaS menyediakan sebuah platform kepada pelanggan untuk menjalankan aplikasi. Biasanya PaaS menyediakan software development tool untuk membangun suatu aplikasi pada platform. Jenis aplikasi umum yang biasa dijalankan pada platform adalah suatu skrip (seperti PHP, Python) atau kode byte (seperti C#). Contoh penyedia PaaS, seperti Google App Engine atau Microsoft Azure.
  • Software as a Service (SaaS): SaaS menyediakan akses penuh terhadap software atau aplikasi. Aplikasi tersebut seperti email server, email client, atau document editor. Biasanya layanan SaaS dapat diakses melalui browser.

Ilustrasi jenis-jenis layanan cloud adalah seperti pada gambar berikut.

Gambar 1. Jenis-jenis layanan cloud computing [3]

Standard Keamanan

Suatu penyedia cloud computing perlu memenuhi standard untuk menjamin keamanan penggunanya. Berikut ini merupakan pemetaan standard keamanan yang perlu diperhatikan oleh penyedia cloud computing. [4]

Tabel 1. Standard keamanan: autentikasi dan otorisasi

Kategori Standard yang Tersedia Organisasi
Autentikasi dan Otorisasi RFC 5246

Secure Sockets Layer (SSL)/ Transport Layer Security (TLS)

IETF
RFC 3820: X.509

Public Key Infrastructure (PKI) Proxy Certificate Profile

IETF
RFC5280: Internet X.509

Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

IETF
RFC 5849

OAuth (Open Authorization Protocol)

IETF
ISO/IEC 9594-8:2008 | X.509

Information technology — Open Systems Interconnection — The Directory: Public-key and attribute certificate frameworks

ISO/IEC

& ITU-T

ISO/IEC 29115 | X.1254

Information technology — Security techniques — Entity authentication assurance framework

ISO/IEC

& ITU-T

FIPS 181

Automated Password Generator

NIST
FIPS 190

Guideline for the Use of Advanced Authentication Technology Alternatives

NIST
FIPS 196

Entity Authentication Using Public Key Cryptography

NIST
OpenID Authentication OpenID
eXtensible Access Control Markup Language (XACML) OASIS
Security Assertion Markup Language (SAML) OASIS

Tabel 2. Standard keamanan: kerahasiaan (confidentiality)

Kategori Standard yang Tersedia Organisasi
Kerahasiaan RFC 5246

Secure Sockets Layer (SSL)/ Transport Layer Security (TLS)

IETF
Key Management Interoperability Protocol (KMIP) OASIS
XML Encryption Syntax and Processing W3C
FIPS 140-2

Security Requirements for Cryptographic Modules

NIST
FIPS 185

Escrowed Encryption Standard (EES)

NIST
FIPS 197

Advanced Encryption Standard (AES)

NIST
FIPS 188

Standard Security Label for Information Transfer

NIST

Tabel 3. Standard keamanan: integritas (integrity)

Kategori Standard yang Tersedia Organisasi
Integritas XML signature (XMLDSig) W3C
FIPS 180-4

Secure Hash Standard (SHS)

NIST
FIPS 186-4

Digital Signature Standard (DSS)

NIST
FIPS 198-1

The Keyed-Hash Message Authentication Code (HMAC)

NIST

Tabel 4. Standard keamanan: manajemen identitas

Kategori Standard yang Tersedia Organisasi
Manajemen identitas X.idmcc

Requirement of IdM in Cloud Computing

ITU-T
FIPS 201-1

Personal Identity Verification (PIV) of Federal Employees and Contractors

NIST
Service Provisioning Markup Language (SPML) OASIS
Web Services Federation Language (WS-Federation) Version 1.2 OASIS
WS-Trust 1.3 OASIS
Security Assertion Markup Language (SAML) OASIS
OpenID Authentication 1.1 OpenID Foundation

Tabel 5. Standard keamanan: monitoring keamanan dan respon insiden

Kategori Standard yang Tersedia Organisasi
Monitoring Keamanan dan Respon Insiden ISO/IEC WD 27035-1

Information technology — Security techniques — Information security incident management — Part 1: Principles of incident management

ISO/IEC
ISO/IEC WD 27035-3

Information technology — Security techniques — Information security incident management — Part 3: Guidelines for CSIRT operations

ISO/IEC
ISO/IEC WD 27039; Information technology — Security techniques — Selection, deployment and operations of intrusion detection systems ISO/IEC
ISO/IEC 18180

Information technology – Specification for the Extensible Configuration Checklist Description Format (XCCDF) Version 1.2 (NIST IR 7275)

ISO/IEC
X.1500

Cybersecurity information exchange techniques

ITU-T
X.1520: Common vulnerabilities and exposures ITU-T
X.1521

Common Vulnerability Scoring System

ITU-T
PCI Data Security Standard PCI
FIPS 191

Guideline for the Analysis of Local Area Network Security

NIST

Tabel 6. Standard keamanan: kendali keamanan

Kategori Standard yang Tersedia Organisasi
Kendali Keamanan Cloud Controls Matrix Version 1.3 CSA
ISO/IEC 27001:2005

Information Technology – Security Techniques Information Security Management Systems Requirements

ISO/IEC
ISO/IEC WD TS 27017

Information technology — Security techniques — Information security management – Guidelines on information security controls for the use of cloud computing services based on ISO/IEC 27002

ISO/IEC
ISO/IEC 27018

Code of Practice for Data Protection Controls for Public Cloud Computing Services

ISO/IEC
ISO/IEC 1st WD 27036-4

Information technology – Security techniques – Information security for supplier relationships – Part 4: Guidelines for security of cloud services

ISO/IEC

Tabel 7. Standard keamanan: manajemen kebijakan keamanan

Kategori Standard yang Tersedia Organisasi
Manajemen Kebijakan Keamanan ATIS-02000008

Trusted Information Exchange (TIE)

ATIS
FIPS 199

Standards for Security Categorization of Federal Information and Information Systems

NIST
FIPS 200

Minimum Security Requirements for Federal Information and Information Systems

NIST
ISO/IEC 27002

Code of practice for information security management

ISO/IEC
eXtensible Access Control Markup Language (XACML) OASIS

Tabel 8. Standard keamanan: ketersediaan (availability)

Kategori Standard yang Tersedia Organisasi
Ketersediaan ATIS-02000009

Cloud Services Lifecycle Checklist

ATIS
ISO/PAS 22399:2007

Societal security – Guideline for incident preparedness and operational continuity management

ISO

Peraturan di Indonesia

Berdasakan definisi yang pada awal tulisan, dapat dilihat bahwa cloud computing dapat digunakan oleh pribadi, kelompok, perusahaan, maupun pemerintahan. Pengguna memiliki kebebasan terhadap layanan cloud computing yang dipakainya. Namun, kebebasan tersebut perlu dibatasi terutama hal-hal yang berkaitan dengan keamanan negara atau data-data rahasia. Oleh karena itu, perlu aturan yang membatasi penggunaan cloud computing.

Berdasarkan Undang-undang Nomor 11 Tahun 2008 tentang Informasi dan Transaksi Elektronik (UU ITE) [5] dan Peraturan Pemerintah No. 82 Tahun 2012 tentang Penyelenggaraan Sistem dan Transaksi Elektronik (PP PSTE) [6], penyedia layanan cloud computing termasuk ke dalam kategori Penyelenggara Sistem Elektronik (PSE) yang perlu mematuhi aturan-aturan berikut. [6]

  • Kewajiban pendaftaran bagi PSE pelayanan publik (Pasal 5)
  • Kewajiban sertifikasi kelaikan hardware (Pasal 6)
  • Kewajiban didaftarkannya software bagi PSE pelayanan publik (Pasal 7)
  • Ketentuan tentang penggunaan tenaga ahli (Pasal 10)
  • Kewajiban-kewajiban dalam tata kelola sistem elektronik (Pasal 12)
  • Penerapan manajemen risiko penyelenggaraan sistem elektronik (Pasal 13)
  • Kewajiban memiliki kebijakan tata kelola dan SOP (Pasal 14)
  • Kewajiban dan ketentuan tentang pengelolaan kerahasiaan, keutuhan, dan ketersediaan data pribadi (Pasal 15)
  • Pemenuhan persyaratan tata kelola bagi PSE untuk pelayanan publik (Pasal 16)
  • Penempatan pusat data dan pusat pemulihan bencana serta mitigasi atas rencana keberlangsungan kegiatan penyelenggara sistem elektronik (Pasal 17)
  • Pengamanan penyelenggaraan sistem elektronik (Pasal 18 s.d. 19)
  • Kewajiban sertifikasi kelaikan sistem bagi PSE pelayanan publik (Pasal 30 s.d. 32)

Aturan Penempatan Pusat Data dan Pusat Pemulihan Data

Berdasarkan PP PSTE Pasal 17 ayat (2) dan (3), yaitu PSE untuk pelayanan publik diwajibkan untuk menempatkan pusat data dan pusat pemulihan bencana di wilayah Indonesia. Adapun isi dari PP PSTE Pasal 17 ayat (2) dan (3) sebagai berikut.

  • Ayat (2): Penyelenggara Sistem Elektronik untuk pelayanan publik wajib menempatkan pusat data dan pusat pemulihan bencana di wilayah Indonesia untuk kepentingan penegakan hukum, perlindungan, dan penegakan kedaulatan negara terhadap data warga negaranya.
  • Ayat (3): Ketentuan lebih lanjut mengenai kewajiban penempatan pusat data dan pusat pemulihan bencana di wilayah Indonesia sebagaimana dimaksud pada ayat (2) diatur oleh Instansi Pengawas dan Pengatur Sektor terkait sesuai dengan ketentuan peraturan perundang-undangan setelah berkoordinasi dengan Menteri.

Berdasarkan penjelasan pada PP PSTE, pusat data yang dimaksud pada ayat (2) di atas adalah suatu fasilitas yang digunakan untuk menempatkan Sistem Elektronik dan komponen terkaitnya untuk keperluan penempatan, penyimpanan, dan pengolahan data. Sedangkan pusat pemulihan bencana adalah suatu fasilitas yang digunakan untuk memulihkan kembali data atau informasi serta fungsi-fungsi penting Sistem Elektronik yang terganggu atau rusak akibat terjadinya bencana yang disebabkan oleh alam atau manusia.

Meskipun ada aturan yang membatasi penempatan pusat data, sanksi untuk penyelenggara yang melanggar tidak diatur secara tegas. Berdasarkan Pasal 84 PP PSTE tentang sanksi administratif, sanksi diberikan jika PSE pelayanan publik tidak memiliki rencana keberlangsungan kegiatan untuk menanggulangi gangguan atau bencana sesuai dengan risiko dari dampak yang ditimbulkan (Pasal 17 ayat 1 PP PSTE). Permasalahannya adalah pelanggaran terhadap aturan penempatan pusat data atau pusat pemulihan data termasuk ke dalam “tidak memiliki rencana keberlangsungan kegiatan” atau tidak. Hal tersebut tidak ada penjelasannya pada dokumen PP PSTE.

Aturan Penempatan Informasi Elektronik

Setelah pembahasan penempatan pusat data dan pusat pemulihan data, berikutnya adalah penempatan informasi elektronik. Pada bagian ini akan dibahas aturan penempatan informasi elektronik bagi suatu lembaga atau perusahaan pelayanan publik dalam penempatan data-datanya ketika menggunakan jasa penyedia cloud computing. Oleh karena itu, dua paragraf berikut menjelaskan lebih dahulu mengenai definisi pelayanan publik dan hal-hal yang berkaitan dengannya.

Berdasarkan Undang-Undang Nomor 25 Tahun 2009 tentang Pelayanan Publik [7] dan Peraturan Pemerintah Nomor 96 Tahun 2012  tentang Pelaksanaan Undang-Undang Nomor 25 Tahun 2009 tentang Pelayanan Publik (PP Pelayanan Publik) [8], definisi Pelayanan Publik adalah kegiatan atau rangkaian kegiatan dalam rangka pemenuhan kebutuhan pelayanan sesuai dengan peraturan perundang-undangan bagi setiap warga negara dan penduduk atas barang, jasa, dan/atau pelayanan administratif yang disediakan oleh penyelenggara pelayanan publik. Lalu, definisi Penyelenggara Pelayanan Publik adalah setiap institusi penyelenggara negara, korporasi, lembaga independen yang dibentuk berdasarkan undang-undang untuk kegiatan pelayanan publik, dan badan hukum lain yang dibentuk semata-mata untuk kegiatan pelayanan publik (Pasal 1 angka 2 PP Pelayanan Publik).

Berdasarkan PP Pelayanan Publik [8], penyelenggaraan Pelayanan Publik termasuk dalam kategori pelayanan jasa publik yang pembiayaannya tidak bersumber dari anggaran pendapatan dan belanja negara atau anggaran pendapatan dan belanja daerah  tetapi ketersediaannya menjadi misi negara yang ditetapkan dalam peraturan perundang-undangan (Pasal 5 huruf c PP Pelayanan Publik). Penyelenggara Pelayanan Publik dapat berupa badan hukum lain (selain instansi pemerintah, BUMN, atau lembaga independen) yang menyelenggarakan Pelayanan Publik dalam rangka pelaksanaan Misi Negara (Pasal 10 ayat 1 huruf b PP Pelayanan Publik). Badan hukum lain yang dimaksud adalah badan swasta (korporasi atau yayasan) yang menyelenggarakan Pelayanan Publik dalam rangka pelaksanaan Misi Negara. Hal tersebut terjadi karena keterbatasan kemampuan pemerintah sehingga dilaksanakan oleh badan swasta dengan biaya dai pemerintah atau subsidi. Badan hukum lain dapat dikategorikan sebagai Pelayanan Publik jika memiliki besaran nilai aktiva paling sedikitk 50 kali besaran pendapatan per kapita per tahun di wilayah administrasi pemerintahan penyelenggara pada tahun berjalan dan jaringan pelayanan yang pengguna pelayanannya tidak dibatasi oleh wilayah administrasi pemerintahan (Pasal 10 ayat 2 PP Pelayanan Publik).

Berdasarkan penjelasan dua paragraf di atas, misalkan ada rumah sakit menggunakan jasa penyedia cloud computing. Lalu, rumah sakit tersebut memiliki nilai aktiva (aset) sebesar Rp300 miliar, dengan asumsi pendapatkan per kapita nasional sebesar Rp50 juta, maka nilai minal pengkategorian sebuah badan hukum yang menjalankan misi negara sebagai penyelenggara pelayanan publik adalah sebesar Rp2,5 miliar (Rp50 juta dikali 50). Oleh karena itu, rumah sakit tersebut termasuk ke dalam kategori penyelenggaraan layanan publik. Konsekuensinya adalah rumah sakit tersebut harus menggunakan jasa penyedia cloud computing yang lokasi pusat data dan pusat pemulihan datanya ada di wilayah Indonesia (Pasal 17 ayat 2 PP PSTE).  Hal tersebut berarti, secara tidak langsung penyedia jasa cloud computing yang dipakai oleh rumah sakit tersebut termasuk ke dalam PSE pelayananan publik.

Berbeda hal jika penyedia jasa cloud computing memberikan pelayanan kepada perusahaan perminyakan untuk keperluan internal sistem informasi manajemen perusahaan, maka penyedia jasa cloud computing tersebut tidak termasuk ke dalam PSE pelayanan publik atau tidak memiliki kewajiban terhadap pasal-pasal PP PSTE terkait penyelenggaraan PSE untuk pelayanan publik.

Daftar Pustaka

[1]         P. Mell and T. Grance, “The NIST Definition of Cloud Computing Recommendations of the National Institute of Standards and Technology,” Nist Spec. Publ., vol. 145, p. 7, 2011.

[2]         F. Y. Rashid, “The dirty dozen: 12 cloud security threats,” 2016. [Online]. Available: https://www.infoworld.com/article/3041078/security/the-dirty-dozen-12-cloud-security-threats.html.

[3]         Security European Union Agency for Network and Information, “Cloud standards and security,” no. August, pp. 1–23, 2014.

[4]         W. Bumpus, “NIST Cloud Computing Standards Roadmap,” NIST Cloud Comput. Stand., pp. 1–3, 2013.

[5]         Presiden RI, “Undang-Undang Nomor 11 Tahun 2008 Tentang Informasi danTransaksi Layanan Elektronik,” no. 1, pp. 1–29, 2008.

[6]         Government of Indonesia, “PP No. 82/2012 Penyelenggaraan Sistem dan Transaksi Elektronik,” pp. 1–54, 2012.

[7]         P. R. INDONESIA, “UU RI No.25/2009 Tentang Pelayanan Publik,” pp. 1–44, 2009.

[8]         P. R. INDONESIA, “Pelaksanaan Undang-Undang Nomor 25 Tahun 2009 Tentang Pelayanan Publik,” pp. 1–26, 2012.

Ancaman Ransomware terhadap Basis Data pada Infrastruktur Komputasi Awan

sumber

 


Komputasi awan (cloud computing) merupakan paradigma dalam dunia teknologi informasi yang menyediakan akses terhadap sumber daya komputer dengan performa tinggi untuk digunakan secara bersama-sama dengan membuat mesin-mesin virtual yang dapat dikonfigurasi dengan mudah untuk menjalankan aplikasi atau layanan. Penggunaan bersama sumber daya komputer akan meningkatkan efisiensi karena alokasi sumber daya komputasi dapat diatur dengan mudah untuk setiap mesin virtual yang berjalan.

Salah satu aplikasi atau layanan yang dewasa ini mulai mencari tempat hidup baru pada komputasi awan adalah basis data (database). Sebelumnya, perusahaan atau organisasi menggunakan komputer fisik yang disimpan pada fasilitas fisik milik mereka untuk menjalankan aplikasi atau layanan basis data bagi perusahaan atau organisasi tersebut. Hal tersebut sudah bergeser semenjak adanya komputasi awan yang memiliki banyak kelebihan dibandingkan infrastruktur on-site. Di sisi lain, banyaknya perusahaan dan organisasi yang melakukan migrasi basis data ke infrastruktur komputasi awan menimbulkan masalah tersendiri salah satunya adalah keamanan data yang disimpan. Dengan letaknya yang off-site dari fasilitas fisik perusahaan atau organisasi, potensi masalah keamanan data akan lebih kompleks.

Pada artikel ini akan dibahas latar belakang popularitas implementasi basis data dalam infrastruktur komputasi awan terutama dari segi keunggulan-keunggulan yang ditawarkan bagi perusahaan atau organisasi yang membuat mereka tertarik melakukan migrasi. Selanjutnya, akan dibahas perkembangan ransomware sebagai salah satu ancaman keamanan yang menghantui dunia IT yang kembali popular beberapa tahun belakangan ini. Di samping itu, akan dibahas serangan ransomware pada basis data yang disimpan di infrastruktur komputasi awan khususnya untuk MongoDB yang terjadi tahun ini dan mengakibatkan kerugian yang cukup besar. Di akhir artikel, diberikan beberapa langkah pencegahan terhadap serangan malware dan sebuah pertanyaan yang disisakan bagi pembaca apakah migrasi basis data ke infrastruktur komputasi awan merupakan kebutuhan saat ini bagi perusahaan atau organisasi yang bersangkutan.


Popularitas Basis Data pada Infrastruktur Komputasi Awan

sumber

Penggunaan infrastruktur komputasi awan (cloud computing) untuk menyimpan, mengelola, dan mejalankan basis data (database) merupakan sebuah tren beberapa tahun belakangan ini terutama ketika perusahaan ternama merilis layanan komputasi awan seperti Microsoft dengan Azure dan Amazon dengan AWS. Beberapa keuntungan melakukan migrasi basis data ke infrastruktur komputasi awan menurut [1] adalah sebagai berikut.

  • Penghematan biaya

Dengan menggunakan infrastruktur komputasi awan, perusahaan dapat mengurangi biaya operasional dan biaya kepemilikan seperti penghematan biaya dari pengurangan jumlah pekerja dan penghematan penggunaan lahan dan fasilitas fisik untuk infrastruktur IT. Selain itu, kebutuhan akan peralatan dan sumber daya lain untuk mengelola dan mengoperasikan peralatan IT yang kompleks dapat dikurangi.

  • Skalabilitas dan elastisitas

Umumnya, penyedia layanan komputasi awan mengizinkan pemakai layanan untuk melakukan peningkatan (upscale) atau pengurangan (downscale) kapasitas dari infrastruktur IT yang digunakan apabila diperlukan. Dengan demikian, baik perangkat keras maupun perangkat lunak dapat disesuaikan kapasitasnya sesuai dengan kebutuhan pengguna. Sementara itu, istilah elastisitas adalah kemampuan sebuah aplikasi untuk melakukan penambahan mesin virtual (virtual machine) untuk memenuhi kapasitas dalam melayani permintaan pengguna.

  • Pemulihan dari bencana

Penggunaan infrastruktur komputasi awan untuk membantu pemulihan dari bencana (disaster recovery) sudah umum dilakukan oleh perusahaan-perusahaan yang operasionalnya mengandalkan IT. Dengan menggunakan infrastruktur komputasi awan, masing-masing komputer server umumnya diimplementasikan sebagai sebuah mesin virtual yang dapat dicadangkan atau disalin dengan mudah untuk membuat mesin virtual baru. Hal ini dapat mengurangi biaya dan mempercepat pemulihan dari bencana karena tidak perlu melakukan konfigurasi masing-masing komponen pada komputer server.

  • Aksesibilitas

Penggunaan infrastruktur komputasi awan memudahkan pihak-pihak berwenang dalam perusahaan, contohnya karyawan, untuk mengakses data dan aplikasi dari mana saja sehingga meningkatkan produktivitas.

  • Kelincahan

Kelincahan (agility) adalah kemampuan sebuah perusahaan untuk beradaptasi dengan cepat dan efisien dari sisi biaya. Dengan keunggulan komputasi awan yang dijelaskan sebelumnya yaitu skalabilitas dan elastisitas, sebuah perusahaan akan lebih lincah untuk beradaptasi terhadap kebutuhan bisnis yang cenderung tidak konstan.

Dengan sederet keunggulan yang ditawarkan oleh infrastruktur komputasi awan, perusahaan berbondong-bondong memindahkan basis datanya ke infrastruktur komputasi awan. Sebuah situs DB-Engines mencatat adanya peningkatan yang signifikan terhadap basis data menggunakan komputasi awan sebesar sepuluh kali lipat pada Februari 2017 dibandingkan dengan empat tahun yang lalu [2].

sumber

Pemain besar basis data pada komputasi awan seperti Amazon, Microsoft, Google, dan IBM juga mencatatkan peningkatan pada peringkat popularitas seperti yang tercatat pada DB-Engines. Hampir semua pemain besar basis data pada komputasi awan memiliki peringkat popularitas yang lebih baik dibandingkan tahun lalu dengan Amazon DynamoDB memiliki peringkat ke-22 (dari ke-26 pada 2016), Microsoft Azure SQL Database memiliki peringkat ke-27 (dari ke-30 pada 2016), dan Google BigQuery memiliki peringkat ke-37 (dari ke-43 pada 2016) [2].

sumber

Selain itu, DB-Engines juga meyakini bahwa tren peningkatan popularitas penggunaan basis data pada komputasi awan baru memasuki tahap awal. Dengan kata lain, di masa mendatang, semakin banyak perusahaan yang akan melakukan migrasi basis data yang dimilikinya dari infrastruktur IT lokal ke infrastruktur komputasi awan. Hal ini menciptakan masalah tersendiri yang berkaitan dengan keamanan data yang disimpan pada komputasi awan.


Ancaman ransomware yang menghantui dunia IT

sumber

Ransomware adalah sebuah tipe malware yang mencegah atau membatasi pengguna untuk melakukan akses terhadap sistem mereka, baik dengan mengunci layar (screen lock) maupun mengunci data milik pengguna (data lock) [3]. Beberapa ransomware modern yang disebut crypto-ransomware menggunakan kriptografi dalam mengunci sistem atau data dengan suatu kunci tertentu yang dijanjikan untuk diberikan kepada pengguna apabila pengguna telah membayar sejumlah tebusan yang juga menggunakan mata uang kriptografi (cryptocurrency). Anonimitas yang ditawarkan oleh mata uang kriptografi membuat para pembuat ransomware menyenangi metode pembayaran tebusan menggunakan mata uang kriptografi walaupun ada beberapa ransomware yang menerima pembayaran menggunakan kartu hadiah (gift card) dari Amazon atau iTunes.

Secara umum, ransomware dapat masuk ke dalam sistem milik korban akibat ketidaktelitian korban dalam mengunduh data. Ransomware dapat dengan tidak sengaja terunduh ketika korban mengakses sebuah website ilegal atau website yang telah dibobol. Selain itu, ransomware juga dapat diperoleh dari malware lain, misalnya program-program untuk melakukan aktivasi perangkat lunak bajakan (crack, keygen, patcher) dan program-program yang dibagikan secara gratis melalui iklan di internet.

Menurut [4], pada tahun 2017, setiap 10 detik terdapat satu komputer rumahan yang terinfeksi oleh ransomware dan setiap 40 detik terdapat satu perusahaan yang infrastruktur IT-nya terinfeksi ransomware. Hal ini merupakan peningkatan yang signifikan dibanding tahun 2016 dengan angka satu infeksi komputer rumahan setiap 20 detik dan satu infeksi komputer perusahaan setiap dua menit.

Serangan ransomware terhadap perusahaan akan meningkat lebih jauh dibanding terhadap individual karena keuntungan dari pembayaran uang tebusan dengan korban sebuah perusahaan sangat besar. Pembuat ransomware juga perlu mengetahui statistik perusahaan yang ia serang dan besar uang tebusan yang diminta sehingga memberikan tawaran menarik bagi perusahaan tersebut untuk membayar uang tebusan agar dapat memperoleh datanya kembali.

Pada Februari 2016, sebuah rumah sakit bernama Hollywood Presbyterian Medical Center (HPMC) menjadi korban ransomware yang menyebabkan jaringan, e-mail, dan data pasien menjadi lumpuh total dengan tebusan yang diminta oleh ransomware adalah sebesar USD17000 [5]. Selain itu, pada Desember 2016, sebuah universitas bernama Los Angeles Valley College diharuskan membayar USD28000 untuk memulihkan kembali data dan infrastruktur IT yang terkena serangan ransomware [6].

Menurut [4], terdapat beberapa tren ransomware yang akan terus meningkat di masa mendatang. Ransomware akan lebih agresif menginfeksi perusahaan dan sektor bisnis lainnya karena keuntungan yang diperoleh lebih besar. Selain itu, lampiran e-mail akan menjadi metode terfavorit penyebaran ransomware yang diprediksi akan memiliki lebih banyak jenis pada tahun 2017. Dengan banyaknya jenis ransomware yang akan muncul, efektivitas ransomware dalam hal infeksi dan distribusi akan semakin meningkat. Beberapa perusahaan dengan perlindungan keamanan berlapis dilaporkan tetap dapat ditembus oleh ransomware model terbaru.

Beberapa ransomware tidak hanya melakukan enkripsi terhadap data milik korban, namun juga mencuri data-data penting yang memungkinkan untuk mengambil keuntungan dari data tersebut. Sebagai contoh, ransomware bernama Cerber juga dilaporkan melakukan pencurian data dompet beberapa mata uang kriptografi (cryptocurrency wallet) seperti Bitcoin dan Ethereum [7]. Selain itu, menurut [7] ransomware juga mampu mencuri password yang disimpan pada penjelajah web (web browser) seperti Google Chrome dan Mozilla Firefox.

Dengan maraknya infeksi ransomware pada perangkat IT baik milik individu maupun perusahaan dengan metode persebaran paling banyak adalah melalui lampiran pada e-mail, kebanyakan orang mengira bahwa cara terbaik untuk mengamankan data mereka adalah dengan menggunakan infrastruktur komputasi awan. Salah satu contohnya adalah menggunakan komputasi awan untuk melakukan penyimpanan data (cloud storage). Beberapa penyedia layanan penyimpanan (storage) dan pencadangan (backup) menjadikan momen ini sebagai promosi layanan yang mereka sediakan bahwa komputasi awan dapat mencegah infeksi ransomware pada data-data yang disimpan.

Hal tersebut tentu tidak sepenuhnya benar. Walaupun infeksi ransomware memang dilakukan pada komputer lokal, beberapa program klien untuk melakukan sinkronisasi data dari media penyimpan lokal ke media penyimpan pada infrastruktur komputasi awan akan secara otomatis mengunggah data yang telah terinfeksi dan menimpa data asli yang disimpan pada cloud storage tersebut. Apabila penyedia layanan penyimpan dan pencadangan berbasis infrastruktur komputasi awan tidak menyediakan fitur sejarah data (file history / file versioning), tentu saja data yang disimpan pada cloud storage tidak dapat dikembalikan ke kondisi semula karena sudah tertimpa data yang telah terinfeksi.

Selanjutnya adalah kaitannya dengan basis data yang disimpan pada infrastruktur komputasi awan. Tentu banyak orang yang beranggapan bahwa berbeda dengan data pada umumnya yang secara otomatis dilakukan sinkronisasi dari media penyimpan lokal ke media penyimpan berbasis awan, basis data yang disimpan pada infrastruktur komputasi awan tidak diperlukan sinkronisasi dengan media penyimpan lokal. Aplikasi-aplikasi yang memerlukan akses ke basis data tersebut langsung dapat mengakses pada server tersebut sehingga versi terbaru selalu berada pada infrastruktur komputasi awan. Hal ini tentu akan mengurangi potensi infeksi ransomware yang, seperti telah dijelaskan sebelumnya, umumnya menyebar melalui lampiran e-mail yang dibuka pada komputer lokal. Dengan kata lain, basis data berbasis infrastruktur komputasi awan akan sangat aman dari serangan ransomware.

Sayangnya, hal tersebut tidaklah sepenuhnya benar. Basis data yang disimpan pada infrastruktur komputasi awan tidak sepenuhnya aman dari ransomware dan jenis ancaman keamanan lainnya. Khusus untuk ransomware, mereka memanfaatkan celah keamanan yang ada pada basis data tersebut. Celah keamanan ini dapat berasal dari kesalahan pengembangan infrastruktur khususnya perangkat lunak ataupun berasal dari kesalahan konfigurasi dari basis data itu sendiri. Pada bagian selanjutnya akan dibahas sebuah tragedi serangan ransomware pada beberapa basis data khususnya yang terjadi akhir-akhir ini yaitu basis data dengan nama MongoDB.


Tragedi MongoDB yang Berakhir Menggenaskan dan Menyisakan Duka Lara

sumber

MongoDB adalah sebuah basis data sumber terbuka (open source database) yang menggunakan model data berorientasi pada dokumen (document-oriented data model) [8]. Di bawah bendera NoSQL, MongoDB merupakan salah satu basis data yang mulai diminati pada tahun 2000. Berbeda dengan basis data SQL yang menggunakan tabel dan baris serta relasional di antara mereka, arsitektur MongoDB tersusun atas dokumen yang berisi banyak set pasangan kunci dengan nilai serta koleksi yang tersusun atas banyak dokumen dan fungsi. Data-data modern umumnya berukuran sangat besar, tidak terstruktur, dan terkadang sulit dipakai. Dengan ekspektasi yang tinggi terhadap data tersebut, NoSQL lahir untuk membantu mengolah dan menyimpan data yang kompleks tersebut.

 

sumber

Menurut [9], MongoDB sangat unggul dibanding tipe basis data relasional (SQL) bila digunakan dalam keperluan sebagai berikut.

  • Penyimpanan data bervolume besar tanpa struktur yang jelas.

Basis data relasional menyimpan data secara terstruktur, contohnya data buku telepon. Namun, pertumbuhan data yang tak terstruktur seperti minat dari pelanggan, lokasi pelanggan, dan pembelian di masa lampau oleh pelanggan akan sangat sulit disimpan pada basis data relasional. Sebuah basis data NoSQL tidak memberi batasan untuk menambahkan berbagai jenis data berbeda apabila suatu saat dibutuhkan perubahan. Dikarenakan MongoDB fleksibel dan berbasis dokumen, pengguna dapat menyimpan data biner JSON (disebut BSON) pada suatu tempat tanpa harus mendefinisikan apa tipe data tersebut di awal.

  • Penggunaan infrastruktur komputasi awan dan penyimpanan awan.

Seperti yang telah dijelaskan sebelumnya, infrastruktur penyimpanan data berbasis awan memiliki keunggulan dari sisi biaya yang rendah, namun memerlukan teknik penyimpanan data yang dapat tersebar pada banyak server untuk alasan skalabilitas. MongoDB dapat mengambil data dengan volume yang besar dan memberi fleksibilitas dalam hal penyimpanan dan penyediaan data pada lingkungan komputasi awan dengan fitur yang bernama sharding yang membuat pembagian data (data partition) dan penyebaran data (data spread) pada banyak server menjadi mudah.

  • Pengembangan dan peluncuran yang cepat.

Apabila basis data yang digunakan sangat cepat berubah seperti perubahan terhadap struktur data, basis data relasional memerlukan waktu yang lama dan kemungkinan tak dapat diakses ketika pembaruan sedang diimplementasikan. MongoDB memiliki dynamic schemas yang memungkinkan pengembang untuk mencoba berbagai macam hal baru secara cepat dengan biaya yang rendah.

  • Peningkatan arsitektur basis data secara efisien dan murah.

MongoDB membuat penyebaran data menjadi mudah dan murah tanpa memerlukan perangkat lunak tambahan.

Dengan semakin populernya penggunaan infrastruktur komputasi awan untuk menyimpan basis data dan keunggulan yang ditawarkan oleh MongoDB, adopsi penggunaan MongoDB pada perusahaan dan organisasi di dunia mengalami peningkatan dari tahun ke tahun. Data dari [10] menunjukkan popularitas MongoDB yang meningkat dari tahun ke tahun. MongoDB juga dikabarkan pada [11] telah mengambil pasar yang cukup besar dari yang dipegang oleh Oracle. Sayangnya, pada tahun 2016 hingga 2017 MongoDB diterpa sebuah masalah keamanan terhadap serangan ransomware.

sumber

Dua orang peneliti di bidang keamanan, Victor Gevers and Niall Merrigan, melakukan pemantauan menarik terhadap serangan ransomware yang menjadikan MongoDB sebagai targetnya. Kejadian yang diberi nama MongoDB Apocalypse [12] memakan korban yang tidak sedikit. Serangan ini dimulai pada bulan Desember 2016 oleh sebuah kelompok bernama harak1r1. Awal mulanya, serangan yang dilakukan cukup kecil karena hanya dilakukan oleh kelompok tersebut saja.

Berbeda dengan serangan ransomware pada sebuah komputer pribadi atau komputer perusahaan yang dilakukan dengan mengenkripsi semua data yang ada, serangan yang dilakukan oleh kelompok ini dilakukan dengan meretas masuk server basis data MongoDB yang tidak terlindungi, mengambil seluruh data yang ada, menghapus atau menimpa data tersebut dengan data lain, dan meminta bayaran dalam bentuk Bitcoin agar korban dapat memperoleh datanya kembali.

Pada tanggal 7 Januari 2017, tercatat 10.500 server basis data MongoDB yang menjadi korban keganasan ransomware [12]. Dua hari kemudian, tanggal 9 Januari 2017, jumlah serangan ransomware terhadap basis data MongoDB meningkat lebih dua kali lipat menjadi 28.200 akibat keikutsertaan kelompok profesional ransomware bernama Kraken [12]. Hal ini menunjukkan bahwa serangan terhadap basis data MongoDB merupakan serangan yang menjanjikan, khususnya terhadap perusahaan atau organisasi komersial, karena korban memiliki keinginan besar untuk mengembalikan data-data yang telah diretas dengan membayar sejumlah uang kepada para penyerang.

Sebuah dokumen yang dapat diakses online mendata kelompok-kelompok penyerang, jumlah tebusan (ransom) yang diminta, alamat pengiriman bitcoin, beserta identifikasi bekas serangan dan jumlah korban [22]. Beberapa korban di antaranya membayar tebusan namun tidak mendapatkan kembali data yang telah diambil. Oleh karena itu, disarankan untuk melakukan pemeriksaan log file terlebih dahulu sebelum melakukan pembayaran tebusan karena pada log file terlihat aktivitas penyerang apakah ia melakukan ekspor data sebelum menghapus semua data yang ada.

Gevers menambahkan, penyerangan ini terjadi akibat perusahaan atau organisasi yang menjadi korban menggunakan versi MongoDB yang lama yang dipasang pada layanan komputasi awan. Basis data MongoDB yang paling mudah dibuka dan paling rentan dapat ditemui pada layanan komputasi awan Amazon Web Services (AWS) karena AWS merupakan tempat yang paling diminati oleh perusahaan atau organisasi untuk mengimplementasikan infrastruktur basis datanya pada infrastruktur komputasi awan. Sekitar 78% dari instalasi MongoDB yang ada di AWS merupakan versi yang memang rentan terhadap ancaman. Salah satu kerentanan versi MongoDB ini adalah konfigurasi bawaan yang mengizinkan basis data menerima koneksi dari luar (internet). [13]

Serangan ini umumnya dilakukan dengan sederhana. Untuk versi MongoDB sebelum versi 2.6.0, konfigurasi bawaan mengizinkan basis data MongoDB menerima koneksi dari jaringan luar (internet). Lebih jauh lagi, autentikasi tidak diperlukan sehingga instalasi MongoDB dengan konfigurasi bawaan sebelum versi 2.6.0 dengan senang hati menerima koneksi tidak terautentikasi dari jaringan luar (internet) [13]. Hal ini tentu dapat diatasi dengan melakukan konfigurasi secara manual pada file mongodb.conf yang banyak dilewatkan oleh para pengguna. Penyerang dapat dengan mudah mengidentifikasi basis data MongoDB yang memiliki celah keamanan seperti ini untuk dijadikan kandidat penyerangan dengan memanfaatkan mesin pencari seperti Shodan atau ZoomEye.

Yang menarik adalah, dari Github Check-In yang sudah lama [14] dengan cap waktu (timestamp) 26 September 2013, dapat diketahui bahwa konfigurasi bawaan pada file mongod.conf tidak mengizinkan koneksi dari luar (baris ke-17 dan ke-18). Namun, versi terakhir dari MongoDB yang masih secara bawaan mengizinkan koneksi dari luar yaitu versi 2.4.14 yang dirilis pada 28 April 2015 tidak menggunakan file mongod.conf pada [14].

Di sisi lain, isu konfigurasi bawaan yang mengizinkan koneksi dari luar ini telah dikemukakan pada 4 November 2011 oleh Roman Shtylman pada halaman JIRA MongoDB [15]. Isu ini dianggap enteng karena pada saat itu, penggunaan infrastruktur komputasi awan untuk menyimpan basis data belum populer. Instalasi yang dilakukan pada umumnya masih menggunakan komputer pada perusahaan atau organisasi masing-masing yang kebanyakan menggunakan NAT atau Firewall yang secara bawaan tidak mengizinkan akses pada port 27017 yang merupakan port bawaan dari MongoDB.

Dari sisi pengguna, konfigurasi bawaan yang tidak aman juga berpengaruh terhadap banyaknya serangan yang muncul. Berdasarkan studi pada [16] dan [17] disimpulkan bahwa pada umumnya pengguna tidak akan mengubah-ubah konfigurasi bawaan (default). Banyak diantaranya berpendapat bahwa konfigurasi bawaan merupakan konfigurasi paling baik karena didefinisikan oleh pengembang / pembuat aplikasi tersebut sehingga tidak perlu diubah. Hal ini tentu sangat berbahaya apabila konfigurasi bawaan mengandung celah yang bisa dimanfaatkan oleh penyerang tanpa diketahui oleh pengguna itu sendiri.

Dengan semakin populernya infrastruktur komputasi awan untuk menyimpan basis data, hal ini, MongoDB Inc., perusahaan pengembang basis data MongoDB, mengeluarkan versi MongoDB terbaru yang menambal kerentanan yang menjadi jalan bagi para penyerang untuk mengambil alih basis data. Dengan merilis versi 2.6.0-rc0, konfigurasi bawaan basis data MongoDB tidak lagi mengizinkan koneksi dari luar (internet) kecuali memang diaktifkan oleh pengguna. Dengan demikian, butuh waktu lebih dari dua tahun untuk memperbaiki isu yang terlihat mudah namun berdampak besar bagi pengguna dikemudian hari.

Sayangnya, walaupun MongoDB Inc. telah memberikan pembaruan yang menambal celah keamanan tersebut, umumnya pengguna tidak melakukan pemeliharaan yang baik karena tidak memperbarui versi MongoDB yang mereka pasang. Hal ini terbukti dari masih banyaknya instalasi MongoDB dengan versi lama dan menunggu untuk diserang. Memang, pembaruan versi atau migrasi versi sebuah infrastruktur akan sedikit mengganggu operasional dan memerlukan usaha lebih.

Oleh karena itu, melalui laman resminya, MongoDB Inc. memberikan tata cara mitigasi masalah serangan ransomware yang memanfaatkan celah ini [19] [20]. MongoDB Inc. juga memberi dorongan kepada pengguna untuk memperbarui versi MongoDB ke versi yang lebih baru. Selain itu, bersamaan dengan rilis versi 2.6.0-rc0, MongoDB Inc. membuka kesempatan bagi publik untuk berlomba-lomba menemukan celah pada basis data MongoDB (bug hunter) yang kemudian disampaikan kepada pengembang MongoDB sehingga berkesempatan mendapatkan hadiah [21].


Langkah Pencegahan yang Harus Dilakukan atau Membayar Mahal Di Akhir

sumber

Tragedi penyerangan MongoDB selain menyisakan duka dan lara, juga menyisakan pelajaran yang bisa diambil. Pelajaran ini tidak hanya sebatas pada basis data MongoDB, namun juga basis data lain yang mungkin juga memiliki celah keamanan. Sebagai contoh, serangan ransomware juga terjadi pada basis data MySQL [23].

Berikut ini adalah langkah-langkah pencegahan yang dapat dilakukan untuk menghindari serangan ransomware. Memang beberapa langkah ini membutuhkan biaya dan kerja ekstra untuk melakukannya, namun mengingat data merupakan sesuatu yang sangat penting tentu langkah-langkah tersebut akan sangat baik apabila dilakukan saat menggunakan infrastruktur komputasi awan sebagai server basis data.

  • Memilih mesin basis data dengan fitur yang sesuai dan dukungan yang baik.

Sebelum melakukan pemilihan penyedia layanan infrastruktur komputasi awan dilakukan, kita perlu menentukan mesin basis data yang diperlukan untuk memenuhi kebutuhan penyimpanan dan pengolahan data yang akan kita lakukan. Beberapa mesin basis data menyediakan versi berbayar (enterprise) yang memiliki dukungan dari pengembang yang sangat baik, fitur keamanan yang lebih kompleks, fitur distribusi data untuk pemerataan beban akses (load balance), dan sebagainya. Namun, untuk perusahaan atau organisasi yang tidak memiliki biaya untuk menggunakan versi berbayar, versi gratis atau sumber terbuka (open-source) dapat menjadi pilihan yang menarik. Gunakan mesin data yang masih dengan aktif dikelola oleh pengembangnya.

  • Memilih penyedia infrastruktur komputasi awan yang tepercaya.

Pemilihan penyedia infrastruktur komputasi awan merupakan sesuatu yang sangat penting karena kita tidak bisa sepenuhnya mengontrol aset IT yang kita letakan di infrastruktur mereka. Pelajari dengan baik syarat layanan (Terms of Services), perjanjian layanan (Service-level Agreement), dan reputasinya dari berbagai macam sisi termasuk keamanan sebelum memutuskan untuk menggunakan layanan mereka. Beberapa penyedia infrastruktur komputasi awan juga memberikan beberapa jenis layanan yang memang dikhususkan untuk mesin basis data yang akan kita gunakan sehingga dapat berjalan lebih optimal.

Selain ketentuan-ketentuan pada saat kita melakukan implementasi (commisioning) dan operasional (operational), perlu dilihat juga kebijakan pada saat kita mengakhiri langganan kita terhadap layanan mereka (decomissioning). Walaupun data-data kita telah dihapus, bisa jadi ada peluang untuk dipanggil kembali yang tentu menjadi ancaman terhadap data-data sensitif.

  • Melakukan instalasi mesin basis data sesuai rekomendasi dari pembuat dan sesuai dengan standar keamanan.

Setelah pemilihan penyedia infrastruktur komputasi awan dilakukan, kini saatnya kita melakukan instalasi mesin basis data pada komputer server yang telah kita sewa tersebut. Ikuti petunjuk instalasi yang disediakan oleh pembuat, periksa setiap konfigurasi yang ada dan jangan biarkan kita tidak mengetahui maksud nilai konfigurasi bawaan dari pembuatnya.

  • Melakukan pencadangan secara berkala baik di dalam mesin yang sama maupun di luar mesin yang sama.

Pencadangan adalah keharusan bagi mereka yang tidak ingin menyesal di masa depan bila terjadi masalah. Memang, pencadangan akan menambah biaya operasional sesuai dengan frekuensi pencadangan yang dilakukan dan lama hasil pencadangan disimpan sebelum ditimpa dengan yang baru. Namun, apabila di masa depan terjadi sesuatu dan tidak ada pencadangan apapun, kerugian yang dialami perusahaan atau organisasi akan sangat besar.

Oleh karena itu, terapkan pencadangan secara berkala dengan frekuensi pencadangan disesuaikan dengan aktivitas basis data yang ada. Gunakan metode pencadangan yang menyimpan sejarah (snapshot) dari basis data sebagai pencadangan dengan frekuensi yang tinggi (per-jam atau per-hari). Di sisi lain, kita tetap harus membuat pencadangan penuh (full backup) dengan frekuensi yang lebih lama (misalkan per-minggu atau per-bulan).

Selain itu, penyimpanan hasil pencadangan juga tidak boleh terfokus pada server yang sama dengan tempat basis data tersebut disimpan. Onsite backup memang diperlukan untuk pemulihan dengan cepat pada saat terjadi bencana, namun offsite backup juga tidak kalah penting. Terlebih lagi, dengan menggunakan mesin virtual, pencadangan dapat dilakukan satu mesin penuh.

  • Mengikuti perkembangan berkaitan dengan mesin basis data yang digunakan dan melakukan pembaruan apabila diperlukan.

Seiring berjalannya waktu, pembuat mesin data akan merilis pembaruan terbaru untuk meningkatkan performa, menambal celah keamanan, atau menambah fitur baru. Akan sangat penting bagi pengurus mesin basis data untuk mengikuti perkembangan tersebut dan memperbarui versi mesin basis data yang digunakan apabila diperlukan. Forum-forum diskusi yang biasanya ada pada setiap halaman pembuat juga dapat dimanfaatkan untuk bertukar pikiran dengan pengurus mesin basis data di perusahaan atau organisasi lain.

  • Memantau dan mengamati log sistem secara rutin untuk melakukan pemeriksaan terhadap hal-hal yang mencurigakan.

Semua aktivitas yang terjadi pada basis data dapat direkam dalam bentuk log. Ukuran file log ini dapat menjadi sangat besar apabila terlalu banyak parameter yang direkam sehingga diperlukan pemilihan terhadap kejadian atau parameter penting yang akan direkam. Selain itu, log harus dibedakan antara informasi, peringatan, dan bahaya sehingga pengamatan intensif dapat dilakukan pada log dengan urgensi yang tinggi.


Simpulan

sumber

Jadi, apakah lebih baik tetap di darat atau pindah ke awan? Itu merupakan pilihan masing-masing perusahaan atau organisasi. Dengan sederet keunggulan yang ditawarkan oleh komputasi awan, diperlukan sederet persiapan pula untuk menjamin tingkat keamanan basis data yang akan diimplementasikan pada infrastruktur tersebut. Dengan mengikuti prosedur keamanan standar yang direkomendasikan baik oleh penyedia layanan komputasi awan, pembuat mesin basis data, ataupun pakar-pakar keamanan yang lain ditambah dengan pencadangan, perawatan, dan pemantauan mesin basis data, ancaman keamanan dapat diminimalisir sekecil mungkin.

© 2017 Bagus Hanindhito (23217009) [hanindhito (at) bagus (dot) my (dot) id]

Sumber

[1] http://stepshot.net/database-migration-trend-towards-cloud-based-databases/
[2] https://db-engines.com/en/blog_post/68
[3] https://www.trendmicro.com/vinfo/us/security/definition/ransomware
[4] https://blog.barkly.com/new-ransomware-trends-2017
[5] https://venturebeat.com/2016/03/26/next-wave-of-ransomware-could-demand-millions/
[6] https://www.bleepingcomputer.com/news/security/los-angeles-valley-college-pays-a-whopping-30-000-in-ransomware-incident/
[7] https://securityintelligence.com/news/cerber-ransomware-now-steals-bitcoin-data/
[8] http://searchdatamanagement.techtarget.com/definition/MongoDB
[9] https://www.upwork.com/hiring/data/should-you-use-mongodb-a-look-at-the-leading-nosql-database/
[10] https://db-engines.com/en/ranking_trend/system/MongoDB
[11] https://www.forbes.com/sites/petercohan/2017/05/30/mongodb-taking-share-from-oracle-in-40-billion-market/#5334a07e3156
[12] https://www.bleepingcomputer.com/news/security/mongodb-apocalypse-professional-ransomware-group-gets-involved-infections-reach-28k-servers/
[13] https://snyk.io/blog/mongodb-hack-and-secure-defaults/
[14] https://github.com/mongodb/mongo/blob/e01dfe96c73e89fb5e20f55faff4fcbfb54de1b5/debian/mongod.conf
[15] https://jira.mongodb.org/browse/SERVER-4216
[16] https://www.nngroup.com/articles/the-power-of-defaults/
[17] https://www.uie.com/brainsparks/2011/09/14/do-users-change-their-settings/
[18] https://www.mongodb.com/blog/post/announcing-the-mongodb-bug-hunt-260-rc0
[19] https://www.mongodb.com/blog/post/how-to-avoid-a-malicious-attack-that-ransoms-your-data
[20] https://www.mongodb.com/blog/post/update-how-to-avoid-a-malicious-attack-that-ransoms-your-data
[21] https://www.mongodb.com/blog/post/announcing-the-mongodb-bug-hunt-260-rc0
[22] https://docs.google.com/spreadsheets/d/1QonE9oeMOQHVh8heFIyeqrjfKEViL0poLnY8mAakKhM/edit#gid=1781677175
[23] https://www.guardicore.com/2017/02/0-2-btc-strikes-back-now-attacking-mysql-databases/

Teknik Introspeksi Hypervisor Sebagai Bentuk Pengembangan Teknik Instrospeksi Mesin Virtual

Latar Belakang Teknik Instrospeksi Hypervisor

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

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

VMI 1
Gambar 1. Penerapan teknik VMI

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

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

Di dalam mesin virtual (In-VM)

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

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

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

  • Livewire

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

  • XenAccess

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

  • VMwatcher

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

  • Virtuoso

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

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

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

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

Berbasis penanganan perangkap (Trap handling)

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

Berbasis pemaksaan perangkap (Trap forcing)

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

  • Ether

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

  • Nitro

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

  • Hypertap

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

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

Teknik hibrida

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

  • Berbasis pemaksaan perangkap

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

  • Pengarahan ulang data / pembayangan memory

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

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

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

  • Pencangkokan proses

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

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

  • Injeksi pemanggilan fungsi

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

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

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

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

Pengantar Instrospeksi Hypervisor

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

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

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

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

comparison HVI

Gambar 2. Perbandingan teknik VMI dengan HVI [4]

Arsitektur HVI

Gambar 3. Arsitektur HVI [4]

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

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

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

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

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

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

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

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

  1. Pemindahan berkas berukuran besar

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

  1. Pembuatan shell pintu belakang

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

Ada beberpa teknik yang digunakan untuk melawan teknik HI yaitu:

  1. Memasukkan noise ke dalam jam mesin virtual

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

  1. Pertahanan penjadwal

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

  1. Mengacak interval pemantauan

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

  1. Melakukan pemantauan tanpa penangguhan

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

HVI BitDefender

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

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

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

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

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

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

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

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

 

Pembahasan dan Rangkuman

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

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

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

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

 

Daftar Pustaka

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

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

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

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

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

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

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

 

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

Ancaman Keamanan NTP dan Penanggulangannya

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

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

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

I.            Sekilas Tentang NTP

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

a.      Cara Kerja NTP

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

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

  • Stratum 0

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

  • Stratum 1

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

  • Stratum 2

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

  • Stratum 3 dan seterusnya

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

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

1

t0 : timestamp client mengirimkan paket request.

t1 : timestamp server menerima paket request.

t2 : timestamp server mengirimkan paket respon.

t3 : timestamp client menerima paket respon.

Dan offset θ:

2

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

b.      Mode Operasi

NTP beroperasi dengan beberapa bentuk:

  • NTP Client mode

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

  • NTP Server mode

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

  • NTP Peer mode

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

  • Broadcast/Multicast

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

II.            Serangan Terhadap Network Time Protocol

a.      Tujuan Serangan

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

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

b.      Tipe Serangan

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

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

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

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

c.      Skenario  Serangan

Skenario serangan yang mungkin dilakukan adalah sebagai berikut:

  • Middleman Attack

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

  • Masquearade Attack

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

  • Delay Attack

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

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

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

  • Denial of Service (DoS) Attack

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

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

III.            NTP Security Model

Gambar 2: NTP Security Model

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

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

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

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

a.      On-Wire Protocol

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

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

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

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

b.      Message Digest

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

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

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

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

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

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

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

c.      Autokey Sequence

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

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

Client/Server dan Peer Mode

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

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

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

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

Broadcast Modes

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

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

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

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

d.      Autokey Protocol

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

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

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

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

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

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

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

Timestamp di-update dari variabel paket hanya jika:

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

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

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

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

IV.            Serangan Menggunakan Network Time Protocol

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

a.      NTP DDoS Amplification Attack

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

b.      Cara Kerja NTP DDoS Attack

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

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

c.      Mitigasi

NTP DDoS attack dapat dimitigasi dengan cara berikut:

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

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

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

V.            Kesimpulan

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

Terdapat beberapa skenario serangan yang mungkin terjadi terhadap operasi NTP:

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

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

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

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

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

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

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

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

Referensi

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

Hidden Operating System CipherShed

1         CipherShed

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

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

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

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

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

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

1.1       System Requirement

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

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

a. Memory/RAM

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

b. Hardisk/HDD

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

gb1

Gambar 1. Ukuran file hasil instalasi

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

1.2       Fitur CipherShed

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

a. Encryption Container

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

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

gb2

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

b. Encryption Drive

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

c. Encryption Operating System

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

gb3

Gambar 3. Layout partisi Hidden OS

1.3       Algoritma Enkripsi dan Algoritma Hash

ChiperShed menyediakan pilihan algoritma enkripsi kepada user sebagaimana table berikut :

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

AES

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

Serpent

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

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

Twofish

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

AES-Twofish

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

AES-Twofish-Serpent

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

Twofish-Serpent

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

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

1.4       Format Layout Container

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

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

2         Proses Verifikasi Password

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

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

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

3         Hidden Encryption Operating System

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

3.1       Step-by-step Pembuatan Hidden OS

Langkah- pembuatan Hidden OS adalah sebagai berikut:

3.1.1. Install CipherShed

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

3.1.2. Buat Hidden OS

Langkah pembuatan Hidden OS adalah sebagai berikut:

a.Klik create volume

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

b.Pilih Encrypt the system partition or entire system drive

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

gb4

c.Pilih Hidden

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

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

d.Pilih Algoritma Enkripsi dan Algoritma Hash

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

e. Masukkan password untuk Container encryption (Outer Volume)

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

gb5

f. Masukkan Password untuk Hidden OS

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

gb6

g. Wipe OS asli

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

3.1.3. Install Decoy OS

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

3.1.4. Instal CipherShed dan buat Normal OS Encryption

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

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

3.2       Kelebihan/kekurangan Hidden OS

Kelebihan dari adanya Hidden OS ini adalah sebagai berikut:

a. Sangat sulit dibuktikan keberadaannya.

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

b. Dapat digunakan untuk Menyimpan file yang sangat rahasia

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

c. Plausible Deniability

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

Sedangkan kekurangan Hidden OS adalah sebagai berikut:

a. Lebih lambat dari system Normal

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

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

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

c. hidden OS sangat rentan terhadap kerusakan system OS.

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

 

Referensi

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

 

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

Vulnerability pada IOS

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

Alur kerja sistem Komputer

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

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

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

  1. Sejarah iOS

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

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

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

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

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

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

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

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

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

 

  1. Vulnerability

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

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

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

 

  1. Penanganan

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

  1. Kesimpulan

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

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

Referensi:

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