• Tidak ada hasil yang ditemukan

Pendeteksian Celah Keamanan SSL TLS Menggunakan Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pendeteksian Celah Keamanan SSL TLS Menggunakan Android"

Copied!
20
0
0

Teks penuh

(1)

BAB II

LANDASAN TEORI

Landasan teori ini akan digunakan sebagai landasan pengerjaan aplikasi mendeteksi

celah keamanan SSL pada aplikasi website dan mobile di android. Pembahasan bertujuan untuk mengurai teori tentang keamanan informasi, keamanan web dan

aplikasi android, celah keamanan web dan celah keamanan aplikasi android, dan teori

penunjang yang berhubungan untuk pencegahan heartbleed bug dan kelemahan SSL pada android.

2.1 Keamanan Informasi

Menurut (ISO/IEC 17799:2005) keamanan informasi adalah upaya perlindungan dari

berbagai macam ancaman untuk memastikan keberlanjutan bisnis, meminimalisir

resiko bisnis, dan meningkatkan investasi dan peluang bisnis.

Sehingga keamanan informasi secara tidak langsung dapat menjamin keutuhan

informasi, kontinuitas bisnis, mengurangi resiko-resiko yang terjadi. Karena semakin

banyak informasi perusahaan yang disimpan, dikelola dan di-sharing-kan maka

semakin besar pula resiko terjadi kerusakan, kehilangan atau tereksposnya data ke

pihak eksternal yang tidak diinginkan (Sarno, 2009). Apapun bentuk informasi yang

disampaikan harus selalu dilindungi (ISO/IEC 17799, 2005).

Keamanan Informasi memiliki empat aspek (ISO/IEC 17799, 2005) yaitu sebagai

berikut :

1. Confidentiality

Keamanan informasi menjamin bahwa hanya mereka yang memiliki hak yang

(2)

merupakan tindakan pencegahan dari orang atau pihak yang tidak berhak

untuk mengakses informasi.

2. Integrity

Keamanan informasi menjamin kelengkapan informasi dan menjaga dari

kerusakan atau ancaman lain yang mengakibatkan berubah informasi dari

aslinya. Pengertian lain dari integrity adalah memastikan bahwa informasi

tersebutmasih utuh, akurat, dan belum dimodifikasi oleh pihak yang tidak

berhak.

3. Availability

Keamanan informasi menjamin pengguna dapat mengakses informasi

kapanpun tanpa adanya gangguan dan tidak dalam format yang tidak bisa

digunakan. Pengguna dalam hal ini bisa jadi manusia, atau komputer yang

tentunya dalam hal ini memiliki otorisasi untuk mengakses informasi.

Availability meyakinkan bahwa pengguna mempunyai kesempatan dan akses

pada suatu informasi.

4. Non-repudiation

Kemanan informasi menjaga agar seseorang tidak dapat menyangkal telah

melakukan sebuah transaksi. Sebagai contoh, seseorang yang mengirimkan

email untuk memesan barang tidak dapat menyangkal bahwa dia telah

mengirimkan email tersebut.

2.2 Celah Keamanan / Vulnerability

Vulnerability adalah kelemahan dalam sistem yang dapat dimanfaatkan untuk

melanggar perilaku sistem yang relatif terhadap keselamatan, keamananan,

keandalan, ketersediaan, integritas, dan sebagainya. Dapat didefinisikan perilaku dari

sistem tersebut adalah sebagai berikut:

1. Keselamatan

Keselamatan adalah melakukan atau mengontrol fungsi yang diaktifkanuntuk

mencegah atau meminimalkan efek dari kegagalan sistem keamanan.

2. Keamanan

Keamanan adalah perlindungan sumber daya dari kerusakan dan perlindungan

data terhadap penyingkapan dari orang yang tidak sah atau modifikasi yang

(3)

3. Keandalan

Keandalan adalah kondisi, acara, proses, kontrol, kerja, atau toleransi penting

yang dapat diandalkan sistem.

4. Ketersediaan

Ketersediaan adalah aspek yang menjamin dimana sistem, data dan sumber

daya operasional dapat diakses bila diperlukan.

5. Integritas

Integritas adalah aspek yang menjamin bahwa sistem tidak boleh berubah

tanpa ijin pihak yang berwenang.

Vulnerability yang melekat dalam desain, operasi, atau lingkungan operasional dari sistem tersebut berkembang sebagai hasil dari kesalahan, dari kelalaian, kesalahan

komisi, dan kesalahan operasional yang terjadi selama kehidupan dari suatu sistem

(Herrmann, 2002).

2.2.1 Celah Keamanan Aplikasi Web

Celah keamanan pada aplikasi web adalah suatu celah yang menjadi jalan penyerang untuk menyebabkan kerusakan pada aplikasi web. Jenis celah keamanan web yang umumnya dijumpai adalah sebagai berikut (Stuttard, 2011) :

1. Input Validation Vulnerability

Kelemahahan yang paling umum dari aplikasi web adalah kegagalan untuk

memvalidasi input yang berasal dari pengguna. Kelemahan ini menyebabkan adanya serangan-serangan terhadap aplikasi web seperti SQL Injection, Cross Scripting (XSS), buffer overflow.

2. Broken Authentication

Dalam keamanan komputer autentikasi adalah proses untuk memverifikasi

indentitas digital dari pengirim dalam berkomunikasi. Kelemahan dalam

kategori ini adalah berbagai cacat aplikasi dalam mekanisme login, seorang

penyerang dapat dengan mudahnya untuk menebak password yang lemah,

melancarkan serangan brute force, dan melewati login. 3. Broken Access control / Authority Vulnerability

Dalam keamanan komputer, otorisasi adalah proses setelah autentikasi, untuk

(4)

ini terjadi karena kegagalan aplikasi untuk melindungi akses ke data, sehingga

memungkinkan penyerang untuk melihat data sensitif pengguna lain yang

dimiliki server atau melakukan tindakan istimewa.

4. Information leakage / Error Handling Vulnerability

Aspek penting dari pengembangan aplikasi yang aman adalah mencegah

kebocoran informasi. Dalam kategori kelemahan ini, aplikasi membocorkan

informasi sensitif yang berguna untuk penyerang dalam mengembangkan

serangan selanjutnya terhadap aplikasi melalui pesan kesalahan. Aplikasi gagal

karena menyajikan informasi penting ketika terjadi error.

5. Session Management Vulnerability

Salah satu inti dari aplikasi web adalah mekanisme untuk mengontrol dan memanajemen status / keadaan pengguna ketika berinteraksi dengan aplikasi.

Misalnya saat login bagaimana otentifikasi pengguna dilakukan dan bagaimana yang terjadi terhadap pengguna ketika mereka log out. Kelemahan dalam kategori ini berarti kegagalan aplikasi sehingga dapat digunakan

pengguna dalam konteks tingkatan pengguna dan hak istimewa.

2.2.2 Celah Keamanan Pada Aplikasi Mobile

Celah keamanan pada aplikasi mobile adalah suatu celah yang terdapat pada teknologi

yang ada disisi teknologi yang digunakan klien ataupun server pendukung, yang bisa

menjadi jalan penyerang untuk mengetahui informasi tentang pengguna. Ada beberapa

resiko pada aplikasi mobile yang menjadi sebuah celah keamanan (www.owasp.org) :

1. Weak Server Side Controls

2. Insecure Data Storage

3. Insufficient Transport Layer Protection

4. Unintended Data Leakage

5. Poor Authorization and Authentication

6. Broken Cryptography

7. Client Side Injection

8. Security Decisions Via Untrusted Inputs

9. Improper Session Handling

(5)

2.3 Aplikasi dan Keamanan Aplikasi

Aplikasi berasal dari kata application yang bermakna penerapan, lamaran dan penggunaan. Secara garis besar, aplikasi adalah program yang siap digunakan untuk

menjalankan suatu fungsi tertentu untuk pengguna.

Aplikasi dapat digolongkan menjadi beberapa kelas, antara lain:

1. Enterprise

Digunakan untuk organisasi (perusahaan) yang cukup besar dengan maksud

menghubungkan aliran data dan kebutuhan informasi antar bagian

2. Enterprise – SupPort

Sebagai aplikasi pendukung dari Enterprise. 3. Individual Worker

Sebagai aplikasi yang biasa digunakan untuk mengolah/edit data oleh tiap

individu.

4. Aplikasi Akses Konten

Adalah aplikasi yang digunakan oleh individu (hanya) untuk mengakses

konten tanpa kemampuan untuk mengolah atau mengedit datanya melainkan

hanya melakukan kustomisasi terbatas.

5. Aplikasi Pendidikan

Biasanya berbentuk simulasi dan mengandung konten yang spesifik untuk

pembelajaran.

6. Aplikasi Simulasi

Biasa digunakan untuk melakukan simulasi penelitian, pengembangan dan

lain-lain.

7. Aplikasi Pengembangan Media

Berfungsi untuk mengolah/mengembangkan media biasanya untuk

kepentingan komersial, hiburan dan pendidikan.

8. Aplikasi Mekanika dan Produk

Dibuat sebagai pelaksana/pengolah data yang spesifik untuk kebutuhan

(6)

2.3.1 Aplikasi Web

Aplikasi web adalah suatu aplikasi berbasis web yang diakses menggunakan

penjelajah web (browser) melalui suatu jaringan seperti internet atau intranet. Pada dasarnya aplikasi web adalah sebuah repositori informasi yang berisi dokumen statis.

Aplikasi web dapat dibagi menjadi dua jenis yaitu aplikasi web statis dan dinamis.

Web statis dibentuk dengan menggunakan HTML. Kekurangan web statis terletak

pada pemelihara program secara terus-menerus. Dimana saat informasi di update,

maka program pun perlu diubah. Web dinamis adalah pengembangan dari web statis,

dimana saat dilakukan perubahan informasi, tidak perlu merubah program tetapi

melalui perubahan data.

Arsitektur aplikasi web meliputi klien, web server, middleware dan basis data.

Saat klien berinteraksi melalui penjelajah web (browser) dengan web server. Secara

internal, web server berkomunikasi dengan middleware dan middleware yang

berkomunikasi dengan basis data. Pada web dinamis terjadi tambahan proses

pembentukan halaman yaitu terjadinya pemrosesan di server untuk menerjemahkan

kode PHP menjadi kode HTML, kemudian kode HTML yang telah diterjemahkan

oleh mesin PHP lah yang akan diterima oleh pemakai (Abdul Kadir, 2009).

2.3.2 Aplikasi mobile

Aplikasi mobile adalah sebuah aplikasi yang memungkinkan untuk melakukan

mobilitas dengan menggunakan perlengkapan seperti PDA (Personal Digital Assistant), telepon seluler atau Handphone. Dengan menggunakan aplikasi mobile,

Anda dapat dengan mudah melakukan berbagai macam aktifitas mulai dari hiburan,

berjualan, belajar, mengerjakan pekerjaan kantor, browsing dan lain sebagainya.

Pemanfaatan aplikasi mobile untuk hiburan paling banyak digemari oleh hampir 70%

pengguna telepon seluler, karena dengan memanfaatkan adanya fitur game, music

player, sampai video player membuat kita menjadi semakin mudah menikmati hiburan

(7)

2.3.3 Keamanan Aplikasi

Menurut (Garfinkel, 2001), keamanan aplikasi adalah serangkaian prosedur, praktek,

dan teknologi untuk melindungi web server, pengguna web, dan organisasi sekitarnya. Keamanan melindungi terhadap perilaku tak terduga.

Keamanan aplikasi telah sering dianggap oleh praktisi sebagai kunci

kerberhasilan atau kegagalan vendor yang terkait dengannya. Sering developer

kesulitan untuk menerapkan kebijakan mengenai keamanan di dalam aplikasi yang

mereka bangun. Di samping karena banyaknya faktor keamanan yang harus

diterapkan dengan baik dan benar untuk mencegah orang yang tidak berhak

mengakses sebuah aplikasi, juga karena kurangnya pengetahuan mengenai fitur

keamanan apa saja yang harus diterapkan di seluruh bagian dari aplikasi tersebut.

Apalagi jika harus menerapkannya secara komprehensif (tidak boleh sebagian saja).

Keamanan aplikasi melindungi pengguna dari resiko penipuan, hacking dan phising, sehingga meningkatkan kepercayaan konsumen (Chan et all, 2013). Dalam pengamanannya, ada beberapa hal yang dilakukan sebagai access control terhadap web ataupun mobile, seperti : melakukan pembatasan akses terhadap web sehingga

hanya alamat ip yang terdapat yang dapat mengaksesnya, melakukan pembatasan

terhadap user (user yang terdapat dalam sebuah file dengan password yang dimiliki

dapat mengakses) dan yang paling umum digunakan oleh perusahaan-perusahaan

besar seperti perbankan, korporasi dan lainnya yaitu SSL (Secure Sockets Layer).

2.4 SSL/TLS dan OpenSSL 2.4.1 SSL/TLS

SSL (Secure Sockets Layer) adalah standar keamanan yang melakukan proses enkripsi antara server dan client. Atau mail server dan mail client. TLS (Transport Secure Layer) adalah lanjutan dari SSL. SSL/TLS memungkinkan berisi informasi sensitif seperti nomor kartu kredit, nomor jaminan sosial, dan login untuk ditransmisikan

dengan aman. Biasanya, data yang dikirim antara browser dan server dalam bentuk

plain-text (teks biasa) sehingga rentan terhadap penyadapan. Jika seorang dapat mencegat semua data yang dikirimkan browser ke webserver, maka mereka dapat

(8)

adalah sebuah protokol keamanan. Protokol menggambarkan bagaimana seharusnya

sebuah algoritma digunakan dan dalam hal ini protokol menentukan variabel enkripsi

yang akan digunakan (digicert.com). Enkripsi yang digunakan di SSL/TLS

menggunakan enkripsi asimetris, suatu enkripsi yang menggunakan private key dan

public key.

Perbedaan antara SSL dan TLS sangatlah halus dan sangat teknis, tapi sistem

TLS ini lebih baru dan lebih halus. Keamanan versi SSL 3.0, sebanding dengan TLS

1.0, tapi TLS 1.1 dan 1.2 mampu memberikan keamanan yang sangat tajam. Meski

begitu, dua metode ini sangat mirip. Pengguna dapat mengakses situs web yang

dijamin dengan SSL dan TLS melalui sistem yang disebut Hypertext Transfer

Protocol Secure (HTTPS).

SSL dan TLS sama-sama bertujuan untuk menjamin kerahasiaan, kesatuan dan

keaslian informasi yang terkait. Untuk menjaga informasi, SSL dan TLS

menggunakan kriptografi. Sedangkan untuk menjaga kesatuan informasi

dimungkinkan dengan menggunakan digital signature (tanda tangan digital). Keaslian

informasi dijamin dengan adanya sebuah sertifikat.

1. Algoritma Kriptografi

Kriptografi adalah ilmu pengetahuan seni untuk menjaga pesan atau informasi

agar tetap aman dari pihak-pihak yang tidak dikehendaki. Untuk menjaga

keamanan data, kriptografi melakukan proses penyandian informasi yang

disebut dengan enkripsi. Dimana proses enkripsi bertujuan untuk menyandikan

informasi berupa plainteks kedalam bentuk chiperteks. Proses pengambilan

informasi dalam bentuk cipherteks ke dalam plaintext disebut dengan proses

deskripsi. Proses enkripsi dan deskripsi menggunakan algoritma (cipher) dan

sebuah kunci. Semakin baik algoritma yang digunakan, maka semakin sulit

bagi orang yang tidak mengetahui kunci rahasia untuk dalam memperoleh dan

mengetahui informasi yang disandikan.

Berdasarkan jenis kunci yang digunakan, algoritma kriptografi ada 2 jenis :

1. Kriptografi simetris

Kriptografi simetris menggunakan kunci yang sama saat proses

enkripsi dan deskripsi. Sehingga, dinamakan dengan single-key

(9)

2. Kriptografi Asimetris

Kriptografi asimetris menggunakan kunci yang berbeda saat proses

enkripsi dan deskripsi. Sehingga, asimetris lebih aman untuk

digunakan. Karena, pihak-pihak lain harus mengetahui 2 kunci yang

digunakan.

2. Digital Signature (Tanda Tangan Digital)

Dalam memastikan kesatuan informasi yang dikirimkan dalam setiap

pertukaran informasi dalam SSL dilengkapi dengan adanya sebuah digital

signature. Digital signature memiliki fungsi sebagai penanda pada data yang

memastikan bhwa data tersebut adalah data yang sebenarnya. Digital signature

berupa informasi yang melalui proses enkripsi dengan kunci umum

menggunakan fungsi hash. Hash berfungsi mengubah masukan menjadi

sebuah untaian karakter yang panjangnya tetap dan tertentu. Keluaran dari

fungsi hash disebut nilai hash. Contohnya belanja online, informasi yang

hendak akan dikirim oleh seorang pembeli diubah dengan fungsi hash

sehingga menjadi untaian karakter yang disebut dengan message digest.

Message digest kemudian akan dienkripsi oleh kunci publik menjadi digital signature. Untuk dapat membuka digital signature dibutuhkan kunci privat.

Bila data telah diubah maka digital signature juga telah berubah sehingga

kunci privat yang ada tidak akan bisa membukanya. Sehingga, keaslian data

dapat terjamin dari perubahan-perubahan yang dilakukan pihak luar.

3. Sertifikasi

Dalam hal memastikan siapa saja yang terlibat dalam pertukaran informasi

lewat internet, SSL menggunakan sertifikat digital untuk mengotentikasi

(memastikan indentitas) server. Otentifikasi pengunjung situs tidak harus

dilakukan (optional). Sehingga dengan sertifikat ini maka dapat terhindar dari

pihak yang mengaku sebagai server dengan kunci yang salah. SSL

menggunakan sertifikat X.509 untuk menvalidasi identitas. Sertifikat

mengandung informasi dari pihak yang terkait, termasuk kunci publik dan

(10)

SSL bekerja melalui empat layer protocol (Record Layer, ChangeChiperSpec

protokol, Alert Protokol, dan Handshake Protokol) berfungsi mengenkapsulasi semua komunikasi antara komputer client dengan server sehingga bisa terjalin koneksi yang aman (McKinley, 2015).

1. Record Layer

Record layer berupa layer yang melakukan format terhadap layer lainnya yaitu

ChangeChiperSpec Protocol, Alert Protocol, Handshake Protocol dan

application protokol messages. Format tersebut membentuk sebuah header

untuk tiap pesan dan hash yang dikirim. Header mempunyai nilai 5 byte, yang berisi protocol definition (1 byte), protocol Version (2 bytes), dan Length (2 bytes).

2. ChangeChiperSpec Protocol

Layer ChangeCipherSpec adalah suatu pesan yang memberi sinyal untuk memulai komunikasi yang aman antara client dan server. Meskipun protokol ini menggunakan format record layer, layer ini sebenarnya hanya sebesar 1

byte.

3. Alert Protocol

Protokol ini mengirimkan error, masalah, ataupun warning mengenai koneksi

antara klien dan server. Layer ini terbentuk dari dua field yaitu severity level

dan alert description. Severity Level mengirim pesan dengan nilai “1” atau “2”,

tergantung pada level concern-nya. Pesan dengan nilai “1” berarti sebuah

peringatan agar klien dan server memutus session yang telah mereka lakukan

dan reconnect lagi menggunakan handshake baru. Sedangkan nilai “2” berarti

sebuah fatal alert message dan mengharuskan kedua belah pihak untuk

mengakhiri session mereka. Kemudian field alert description yang bertugas mendeskripsikan secara spesifik error yang menyebabkan alert message

tersebut keluar.

4. Handshake Protocol

Handshake protocol adalah proses pengiriman pesan secara bolak-balik dan terus-menerus antara klien dan server untuk memulai sebuah komunikasi yang

aman. Terdapat beberapa tahap dalam proses handshake ini yaitu: ClientHello,

ServerHello, ServerKeyExChange, ServerHelloDone, ClientKeyExChange,

(11)

TLS merupakan penerus dari SSL. Namun pada pengembangannya, TLS menerapkan

dua level protokol pada kinerja untuk lebih meningkatkan keamanan (McKinley,

2015) :

1. TLS Record Protocol

TLS record protocol berfungsi untuk melakukan koneksi dan negoisasi yang privat dan handal antara klien dan server. Meski record protocol bisa digunakan tanpa enkripsi, namun protokol ini tetap menggunakan kunci

kriptografi simetris (symmetric cryptography Keys) untuk memastikan privasi keamanan koneksi. Koneksi ini diamankan melalui pemakaian fungsi hash

yang dihasilkan oleh Message Authentication Code. 2. TLS Handshake Protokol

TLS Handshake protocol memberikan izin untuk mengautentikasi sebuah komunikasi untuk memulai koneksi antara klien dan server. Protokol ini mengijinkan klien dan server untuk saling berkomunikasi dengan bahasa yang sama dan mengijinkan kedua belah pihak untuk menyetujui sebuah algoritma

enkripsi dan kunci enkripsi terlebih dahulu sebelum protokol aplikasi memulai pengiriman data. Jalanya proses handshake pada TLS ini sama dengan proses yang terjadi pada SSL. TLS menyediakan autentikasi ke server dan juga secara opsional ke klien. Meskipun begitu, ada beberapa perubahan yang terjadi pada

proses handshake tersebut.

2.4.2 OpenSSL

Menurut www.openssl.org, OpenSSL adalah proyek open source yang menyediakan layanan yang kuat, commercial-grade, dan toolkit dengan fitur lengkap untuk

Transport Layer Security (TLS) dan Secure Socket Layer (SSL) protokol. OpenSSL

juga merupakan sebuah library kriptografi untuk tujuan yang sama. OpenSSL toolkit ini di bawah lisensi Apache, yang pada dasarnya berarti bahwa anda bebas untuk

mendapatkan dan menggunakannya untuk tujuan komersial dan non-komersial dan

harus tunduk pada beberapa kondisi lisensi sederhana. OpenSSL memberikan layanan

(12)

2.5 Socket

Socket adalah titik komunikasi dari lalu lintas komunikasi antar proses di dalam

sebuah jaringan komputer. Hampir semua komunikasi antar komputer sekarang

berdasarkan protokol internet, oleh karena itu hampir semua socket di jaringan

komputer adalah Socket Internet. Adapun tujuan utama dari sebuah socket adalah untuk dapat menjembatani komunikasi yang terjadi antara dua buah program yang

dijalankan pada mesin yang sama ataupun berbeda.

Hampir semua sistem operasi menyediakan application programming interface (API) yang memungkinkan sebuah aplikasi komputer mengkontrol dan menggunakan socket jaringan komputer. API socket internet biasanya berdasarkan pada standar berkeley sockets.

Sebuah alamat socket terdiri atas kombinasi sebuah alamat ip dan sebuah

nomor port, mirip seperti sebuah koneksi telpon yang memiliki nomer telpon dan

nomor ekstensinya. Berdasarkan alamat ini, socket internet mengirim paket data yang masuk ke sebuah proses atau thread aplikasi tujuan. Socket mampu menangani banyak klien sekaligus (multiple clients).

Ada 4 jenis socket yang sering digunakan user (Tutorials point,2015) .

1. Stream Socket

Stream Socket digunakan untuk komunikasi 2 arah dan menggunakan

protokol TCP (Transmission Control Protocol). Jika salah satu mengirim 3 item melalui stream socket “A,B,C” dan sebaliknya penerima juga akan mengirimkan data yang sama “A,B,C”. Namun, jika data itu bersifat tidak

mungkin, maka pengirim akan menerima error.

2. Datagram Sockets

Datagram Socket dalam melakukan proses interaksi antara client-server

tidak harus selalu terhubung terus-menerus (connectionless). Klien Dapat mengirimkan data ke server, namun data tersebut ada kemungkinan sampai

ke server atau tidak. Untuk itu client menunggu sinyal „error free‟ dari server. Jika client tidak menerima sinyal „error free‟ dalam suatu kurun

waktu, maka client akan mengirimkan lagi data tersebut. Datagram Socket

(13)

3. Raw Sockets

Raw Socket digunakan untuk melakukan pengiriman pesan ICMP (internet control message protocol) pada layar internet/ip.

4. Sequenced Packet Sockets

Sequenced packet sockets disediakan hanya untuk bagian dari Network

Systems (NS) dan juga digunakan untuk aplikasi NS. Sequenced packet sockets mengizinkan pengguna untuk memanipulasi Sequence Packet Protocol (SPP) atau Internet Datagram Protocol (IDP).

2.6 Android

Menurut Safaat Nazruddin (2011) Android adalah sistem operasi untuk perangkat

mobile berbasis Linux. Android menyediakan platform yang bersifat open source bagi para pengembang untuk menciptakan sebuah aplikasi. Awalnya, Google Inc

mengakuisi Android Inc. Yang mengembangkan software untuk ponsel yang berada di

Palo Alto, California Amerika Serikat. Untuk pengembangannya, dibentuklah Open

Handset Alliance, yaitu konsorsium dari 34 perusahaan hardware, software, dan

telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan

Nvidia. Telepon pertama yang memakai sistem operasi Android adalah HTC Dream,

yang dirilis pada 22 Oktober 2008. Pada penghujung tahun 2009 diperkirakan di dunia

ini paling sedikit terdapat 18 jenis. Dari segi arsitektur sistem, Android merupakan

sekumpulan framework dan virtual machine yang berjalan di atas kernel linux.

Virtual machine Android bernama Dalvik Virtual Machine (DVM), engine ini

berfungsi untuk menginterpretasikan dan menghubungkan seluruh kode mesin yang

digunakan oleh setiap aplikasi dengan kernel linux. Sementara untuk framework

aplikasi sebagian besar dikembangkan oleh google dan sebagian yang lain

dikembangkan oleh pihak ketiga (developer).

Menurut King C, Ableson (2011) Android memiliki empat komponen :

a. Activity

Setiap aplikasi mungkin mempunyai user interface (UI), namun tidak harus memiliki satu UI. Jika sebuah aplikasi memiliki UI, setidaknya

(14)

class yang memperluas dasar kelas activity. Class akan menampilkan user

interface yang terdiri dari views dan merespon kejadian. Kebanyakan

aplikasi terdiri dari beberapa layar. Sebagai contoh, sebuah aplikasi

panggilan telepon mungkin memiliki satu layar yang menunjukkan daftar

kontak untuk memanggil, layar kedua untuk menyimpan nomor telepon

dan layar lain untuk memeriksa pesan masuk atau keluar. Masing-masing

layar akan diimplementasikan sebagai suatu activity. Berpindah ke layar

lain berarti memulai aktivity baru.

b. Broadcast Receiver

Broadcast receiver adalah komponen yang merespon terhadap siaran

(broadcast) yang dikeluarkan oleh sistem. Seperti, broadcast

memberitahukan bahwa layar akan mati, baterai lemah, pesan masuk.

Meskipun broadcast receiver tidak menampilkan user interface, broadcast

receiver bisa membuat notifikasi di status bar untuk memberitahukan user

sedang terjadi broadcast. Secara umum, broadcast receiver hanyalah

sebuah "gerbang" kepada komponen lain dan ditujukan untuk melakukan

pekerjaan yang sangat minimal.

c. Service

Jika sebuah aplikasi memiliki sebuah siklus yang panjang, maka hal

terbaik adalah meletakkannya dalam sebuah layanan. Service melakukan

sinkronisasi data dibalik layar. Contohnya: saat sebuah service

mendownload dari internet tanpa menganggu interaksi user dengan

aktivitas yang lain.

d. Content provider

Jika sebuah aplikasi mengelola data dan butuh untuk mengekspos data ke

aplikasi lain yang ada dalam lingkungan android, anda harus

mempertimbangkan penyedia konten (content provider). Sebuah content provider mengatur sekumpulan data aplikasi yang terbagi (shared). Kita bisa menyimpan data di filesystem, sebuah database SQLite, di web, atau

(15)

2.7 Kelemahan Pada SSL/TLS

2.7.1 Heartbleed Bug (Heartbleed Vulnerability )

Heartbleed Vulnerability adalah sebuah celah keamanan paling fatal, yang secara resmi diidentifikasi oleh CVE-2014-0160. Kelemahan ini memungkinkan seseorang

untuk mencuri informasi yang dilindungi dengan enkripsi SSL/ TLS. SSL/TSL yaitu

sebuah aplikasi untuk mengamankan dan mengenkripsi teks (seperti username dan

password) yang dikirim melalui browser. SSL/TLS menyediakan keamanan

komunikasi dan privasi melalui internet untuk aplikasi seperti web, email, instant messaging (IM) dan beberapa jaringan pribadi virtual (VPN).

Heartbeat adalah salah satu fitur OpenSSL yang diperkenalkan tahun 2012. Tujuan

heartbeat adalah mengecek apakah komputer client masih terhubung ke sebuah server.

Gambar 2.1

Pada gambar 2.1 menunjukkan bagaimana seharusnya client dan server terhubung dan

bagaimana server seharusnya menanggapi request dari klien. Namun, fasilitas

heartbeat ini memiliki kelemahan karena server terlalu percaya dengan komputer pengirim (client). Seperti gambar di bawah, komputer hacker cuma mengirimkan

payload = test namun meminta respon sebanyak 30 karakter.

Gambar 2.2

Pada gambar 2.2, server ternyata tidak mengecek kalau test hanya memiliki 4 karakter.

(16)

memenuhi permintaan 30 karakter. 30 karakter hanyalah ilustrasi, sang hacker bisa

meminta sampai 64.000 karakter.

Kelemahan yang terdapat pada aplikasi heartbeat inilah yang disebut dengan

Heartbleed bug, dimana dengan adanya celah ini, memungkinkan setiap orang di

internet untuk membaca memori dari sistem yang dilindungi OpenSSL dan membuat

penyerang dapat mengamati komunikasi, mencuri data langsung dari layanan dan

pengguna dan juga menyamar sebagai layanan dan pengguna.

2.7.2 Logjam

Logjam adalah sebuah jenis celah keamanan yang memungkinkan seseorang dapat

menyusup kedalam enkripsi sebagai pihak ketiga, dalam proses interaksi secara virtual

dengan tujuan menyadap ataupun melihat dari pesan yang disampaikan pengirim ke

penerima. Celah keamanan ini mengancam keamanan privasi data pengguna. Hacker

dapat melakukan serangan dengan menginjeksikan diri ke komunikasi antara klien dan

server MITM (Man-In-The-Middle). Serangan logjam mempengaruhi setiap server

yang mendukung DHE_EXPORT cipher, dan mempengaruhi semua web browser

yang sudah modern. 8,4% dari Top 1 Juta domain awalnya rentan.

2.7.3 CVE 2015-1793

Selama verifikasi sertifikat berlangsung, OpenSSL (mulai dari versi 1.0.1n dan 1.0.2b)

akan mencoba untuk menemukan alternative certificate chain jika upaya pertama untuk membangun hubungan sertifikat gagal. Kesalahan dalam pegimplementasian

logika, membuat seorang penyerang dapat menyebabkan pemeriksaan tertentu pada

sertifikat yang tidak dipercaya untuk dilewatkan, seperti yang dilakukan CA

(Certificate Authority), kelemahan ini memungkinkan penyerang untuk melewati sertifikat terpercaya seperti CA dan dalam masalah ini yang masuk adalah sertifikat

tidak terpercaya.

Jenis kelemahan ini termasuk MITM attack dan dapat menyebabkan aplikasi

menerima SSL certificate yang tidak valid dan terpercaya seolah SSL certificate yang

(17)

2.8 Pengujian Aplikasi 2.8.1 White-Box Testing

White-Box testing adalah cara pengujian yang berfokus pada pengecekan terhadap

detail perancangan dengan melihat ke dalam modul untuk meneliti kode-kode

program yang ada, dan menganalisis apakah ada kesalahan atau tidak. Jika ada modul

yang menghasilkan output yang tidak sesuai dengan proses bisnis yang dilakukan,

maka baris-baris program, variabel, dan parameter yang terlibat pada unit tersebut

akan dicek satu persatu dan diperbaiki, kemudian di-compile ulang. White-box testing

bertujuan untuk mendapatkan program yang benar secara keseluruhan. White-box testing, perangkat dapat melakukan :

1. Memberikan jaminan bahwa semua jalur independen pada suatu modul telah

digunakan paling tidak satu kali.

2. Menggunakan semua keputusan logis pada sisi true and false

3. Mengeksekusi semua loop pada batasan mereka dan pada batas operasional

mereka.

4. Menggunakan struktur data internal untuk menjamin validitasnya.

Proses Pengujian White-Box testing :

1. Untuk mengetahui cara kerja suatu perangkat lunak secara internal.

2. Untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yang telah

ditetapkan dengan menggunakan struktur dari prosedur yang dirancang.

2.8.2 Black-Box Testing

Black-Box testing berfokus pada persyaratan fungsional perangkat lunak yang

memungkinkan engineers untuk memperoleh set kondisi input yang sepenuhnya akan melaksanakan persyaratan fungsional untuk sebuah program (Pressman, 2010). Black Box Testing bukan merupakan alternatif dari pengujian White Box Testing. Sebaliknya, Black Box Testing adalah pendekatan komplementer yang mungkin untuk mengungkap kelas yang berbeda dari kesalahan daripada metode White Box Testing.

Black-Box testing berusaha untuk menemukan kesalahan dalam kategori berikut: 1. Fungsi yang tidak benar atau fungsi yang hilang

2. Kesalahan antarmuka

(18)

4. Kesalahan perilaku (behavior) atau kesalahan kinerja

5. Inisialisasi dan pemutusan kesalahan

Tes ini dirancang untuk menjawab beberapa pertanyaan-pertanyaan berikut ini:

1. Bagaimana validitas fungsional diuji?

2. Bagaimana perilaku dan kinerja sistem diuji?

3. Apa kelas input akan membuat kasus uji yang baik?

4. Apakah sistem sensitive terhadap nilai input tertentu?

5. Bagaimana batas-batas kelas data yang terisolasi?

6. Kecepatan dan volume data seperti apa yang dapat ditolerir sistem?

7. Efek apakah yang akan menspesifikasikan kombinasi data dalam sistem

operasi?

2.8.3 Gray-Box testing

Gray-Box testing Adalah metode yang merupakan kombinasi dari Black-box testing

dan White-box testing. Dalam pengujian Gray-box testing, struktur internal sebagian dikenal. Ini melibatkan akses ke internal struktur data dan algoritma untuk tujuan

merancang uji kasus, tetapi pengujian pada pengguna atau tingkat Black box adalah

tidak. Grey-box, berusaha menggabungkan kedua metode diatas, mengambil

kelebihan keduanya, dan mengetahui kekurangan keduanya. Teknik verifikasi modern

menerapkan kombinasi kedua metode untuk pengujian aplikasi.

2.9 Penelitian Terdahulu

Penulis memaparkan beberapa metode yang telah digunakan pada penilitian

sebelumnya untuk menguji keamanan aplikasi web dan aplikasi mobile. Seperti yang tercantum pada tabel 2.1, metode black-box digunakan untuk mengurangi kesalahan dalam mengeksploitasi celah keamanan dan juga untuk lebih meningkatkan kinerja

aplikasi untuk menemukan halaman yang nanti digunakan untuk mendeteksi celah

keamanan. Namun, peneliti menggunakan metode black-box testing untuk

memastikan kinerja dan kekuatan dari sebuah teknologi yang digunakan untuk

mengetahui kelemahan yang dapat ditimbulkan dari teknologi tersebut.

Akrout et al. (2014), menggunakan metode black box untuk mengidentifikasi

kelemahan aplikasi web dan mengelompokkan skenario serangan yang digunakan

(19)

of false positives dengan memberikan query dengan tujuan agar eksploitasi tentang

celah keamanan berhasil. Dengan menggunakan metode black box, memungkinkan

aplikasi untuk menemukan halaman baru pada web, yang mungkin berisi poin injeksi

dan halaman yang rentan.

Pada tahun 2014 Gujrathi, memberikan penjelasan secara rinci kerja dari

Heartbleed bug dan bagaimana bug ini dapat mempengaruhi privasi dan integritas

data. Jurnal ini menjelaskan bagaimana seharusnya heartbleed bekerja, dan bagaimana seorang hacker dapat memberikan sebuah script yang dapat mencuri data yang

tersimpan dalam memori server. Gujrathi menjelaskan bagaimana seharusnya user

memproteksi diri dari heartbleed bug.

Pada tahun 2008 Suhina et al, mengusulkan sebuah pendekatan untuk menemukan celah keamanan pada aplikasi web dengan clustering halaman web. Metode yang digunakan bukan seperti teknik pencari kelemahan aplikasi web yang menganalis isi halaman web tetapi dengan menganalis struktur dari halaman web. Kinerja metode yang diusulkan yaitu menganalisis respon dari struktur halaman,

dikelompokkan ke beberapa kategori berdasarkan strukturnya dan menemukan

penyimpangan dari struktur standar halaman.

J Bau et al. (2010), State of the Art: Automated Black-Box Web Application Vulnerability Testing, metode black box bertujuan untuk mendeteksi kelemahan dan

menguji efektivitas sistem dalam mendeteksi celah kelemahan seperti Cross-Site Scripting, SQL Injection, dan bentuk lain dari Cross-Channel Scripting. J Bau et al

menyatakan bahwa script atau kode injeksi berhasil disimpan, yang dikemudian akan

di deteksi lagi.

Pada tahun 2014 Stephan, menjelaskan bahwa heartbleed bug adalah

kelemahan yang terletak pada teknologi heartbeat yang terdapat pada OpenSSL,

dimana terjadi sebuah kesalahan dari server dalam menangani request dari client.

Dijelaskan juga bagaimana seharusnya server dan user menangani bug heartbleed.

Pada tahun 2014 Rick, menjelaskan apa itu teknologi OpenSSL heartbeat

dengan kelemahan didalamnya yang disebut dengan heartbleed dan juga versi

OpenSSL yang rentan terhadap heartbleed. NASA berkolaborasi dengan Linux,

Google, IBM, Microsoft, etc untuk menyelesaikan krisis yang terdapat dalam

(20)

Tabel 2.1 Penelitian Terdahulu

Peneliti Tahun Judul

Akrout et al 2014 An Automated Black Box Approach for

Web Vulnerability Identification and

Attack Scenario Generation

Gujrathi 2014 Heartbleed Bug: AnOpenSSL Heartbeat

Vulnerability

J Bau et al 2010 State of the Art: Automated Black-Box

Web Application Vulnerability Testing

Suhina et al 2008 Detecting Vulnerabilities in Web

Applications by Clustering Web Pages

Stephan Wiesand 2014 The Heartbleed Vulnerability in

OpenSSL

Rick Hess 2014 NASA IV&V and the Heartbleed

Gambar

Gambar 2.2 Pada gambar 2.2, server ternyata tidak mengecek kalau test hanya memiliki 4 karakter
Tabel 2.1 Penelitian Terdahulu

Referensi

Dokumen terkait

Kombinasi vitamin A dengan metotreksat untuk pengobatan Tumor Trofoblastik Gestasional (TTG) risiko rendah dapat mempercepat respon terhadap terapi yang dibuktikan

Teknik pembiusan dengan penyuntikkan obat yang dapat menyebabkan pasien mengantuk, tetapi masih memiliki respon normal terhadap rangsangan verbal dan tetap dapat mempertahankan

Adapun yang dimaksud dengan ancaman adalah setiap usaha dan kegiatan baik dari dalam negeri maupun luar negeri yang dinilai membahayakan kedaulatan negara, keutuhan wilayah negara

Dan dalam pemenuhan kebutuhan tersebut, perilaku yang dimunculkan akan berbeda dalam menghadapi sesuatu, untuk melakukan kebutuhan secara riligius membutuhkan niat

Sesungguhnya Allah subhaanahu wata'ala menutup penglihatan manusia dari hal tersebut, tujuaannya adalah sebagai ujian bagi mereka agar menjadi jelas siapakah yang beriman kepada

Artinya: Diharamkan atas kamu (mengawini) ibu-ibumu; anak-anakmu yang perempuan; saudara-saudaramu yang perempuan, Saudara-saudara bapakmu yang perempuan; Saudara-saudara

Puji syukur kepada Allah SWT atas rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan penyusunan skripsi dengan judul “FAKTOR - FAKTOR YANG MEMPENGARUHI

tempat kerja yang aman, bersih dan sehat Sebagian besar Rumah Sakit kurang menggalang kemitraan untuk meningkatkan upaya pelayanan yang bersifat Preventif dan Promotif Isu