Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
IMPLEMENTASI TEKNIK OBFUSCATION PADA SOURCE
CODE PHP HYPERTEXT PREPROCESSOR
TUGAS AKHIR
Diajukan Untuk Memenuhi
Persyaratan Guna Meraih Gelar Sarjana Strata 1
Teknik Informatika Universitas Muhammadiyah Malang
Ahmad Sirojul Miftakh
201310370311016
JURUSAN TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH MALANG
2017
i
ABSTRAK
Source code aplikasi berbasis website rawan dimanipulasi akibat dari
penyalahgunaan tindakan reverse engineering. Hal tersebut disebabkan karena
source code tidak dikompilasi menjadi executable file Hal ini mengakibatkan
source code dengan mudah dibaca, digandakan, bahkan diubah tanpa izin dari
pembuat perangkat lunak. Salah satu teknik yang dapat digunakan untuk
mengamankan source code aplikasi berbasis website adalah menerapkan
obfuscation. Obfuscation merupakan teknik pengacakan terhadap source code
perangkat lunak berbasis website dengan tetap memelihara isi data, serta alur
program yang dibangun didalam aplikasi. Namun, penerapan teknik ini dapat
mengakibatkan respon dari perangkat lunak berjalan lebih lama. Hal tersebut
dikarenakan adanya proses deobfuscation terhadap source code perangkat lunak
yang telah teracak sebelum akhirnya di interprete oleh web server. Pada penelitian
ini akan dirancang metode obfuscation dengan tetap menjaga agar performa
aplikasi berbasis website dapat bekerja dengan optimal.
Kata kunci : Obfuscation, Encryption, Reverse Engineering
ii
ABSTRACT
Source code of a web application being prone to manipulated because of
misuse of reverse engineering action. This can occur because the source code is
not compiled into executable file, so that it easily to read, copied, modified, even
without permission from the software developer. A technique that can be used to
secure the source code is implemented obfuscation technique. Obfuscation is a
technique to randomize sourcec ode of a web application. However, the
obfuscated program may affect the response time of software becaouse there is a
deobfuscation process within the obfuscated software before the original source
code will be interpreted by the web server. In this research will be designed an
obfuscation technique to keep performance of web application in order to work
optimally.
Keywords : Obfuscation, Encryption, Reverse Engineering
iii
LEMBAR PERSETUJUAN
IMPLEMENTASI TEKNIK OBFUSCATION PADA SOURCE
CODE PHP HYPERTEXT PREPROCESSOR
TUGAS AKHIR
Diajukan Untuk Memenuhi
Persyaratan Guna Meraih Gelar Sarjana Strata 1
Teknik Informatika Universitas Muhammadiyah Malang
Disusun Oleh:
Ahmad Sirojul Miftakh
201310370311016
Menyetujui,
Pembimbing I
Maskur, S.Kom.,M.Kom. NIP. 108.1410.0542
Pembimbing II
Ali Sofyan Kholimi, S.Kom.,M.Kom. NIP. 108.1410.0562
iv
LEMBAR PENGESAHAN
IMPLEMENTASI TEKNIK OBFUSCATION PADA SOURCE
CODE PHP HYPERTEXT PREPROCESSOR
TUGAS AKHIR
Diajukan Untuk Memenuhi
Persyaratan Guna Meraih Gelar Sarjana Strata 1
Teknik Informatika Universitas Muhammadiyah Malang
Disusun Oleh:
Ahmad Sirojul Miftakh
201310370311016
Tugas Akhir ini telah diuji dan dinyatakan lulus melalui sidang majelis penguji
Menyetujui,
Penguji I
Mahar Faiqurahman, S.Kom.,M.T. NIP. 108.0811.0462
Penguji II
Setio Basuki, S.T.,M.T. NIP. 108.0907.0477
Mengetahui,
Ketua Jurusan Teknik Informatika
Yuda Munarko, S.Kom.,M.Sc. NIP. 108.0611.0443
v
LEMBAR PERNYATAAN
Yang bertanda tangan dibawah ini :
NAMA : AHMAD SIROJUL MIFTAKH
NIM : 201310370311016
FAK/JUR : TEKNIK / TEKNIK INFORMATIKA
Dengan ini, saya menyatakan bahwa Tugas Akhir yang berjudul
“IMPLEMENTASI TEKNIK OBFUSCATION PADA SOURCE CODE
PHP HYPERTEXT PREPROCESSOR” adalah karya saya sendiri dan bukan
karya milik orang lain, baik sebagian maupun seluruhnya, kecuali dalam bentuk
kutipan yang telah saya sebutkan sumbernya.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya. Apabila
kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam karya
saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka saya
akan siap menanggung segala bentuk resiko/sanksi yang berlaku.
Malang, 28 Juli 2017
Yang Menyatakan
Ahmad Sirojul Miftakh NIM. 201310370311016
Mengetahui,
Pembimbing I
Maskur, S.Kom.,M.Kom. NIP. 108.1410.0542
Pembimbing II
Ali Sofyan Kholimi, S.Kom.,M.Kom. NIP. 108.1410.0562
vi
LEMBAR PERSEMBAHAN
Puji syukur kepada Allah SWT atas rahmat dan karunia-Nya sehingga saya
dapat menyelesaikan Tugas Akhir ini. Maka dari itu saya menyampaikan ucapan
terima kasih yang sebesar-besarnya kepada :
1. Allah SWT yang Maha Pemberi Petunjuk, Maha Pemurah, lagi Maha
Penyayang. Sungguh besar kuasa dan ridho-Mu yang senantiasa
memberikan keteguhan hati dan kesabaran.
2. Rasulullah Muhammad SAW. Imam dan penuntun menuju Al-Jannah.
3. Kedua orang tua, Bapak Abdul Ghafur dan Ibu Suprihatin yang senantiasa
mendoakan untuk keberhasilan putra-putrinya, juga Mbak Imah yang selalu
mendukung adiknya agar selalu semangat menjalani kuliah.
4. Bapak Maskur, S.Kom.,M.Kom. dan Bapak Ali Sofyan Kholimi,
S.Kom.,M.Kom. yang senantiasa membimbing dalam pengerjaan Tugas
Akhir ini.
5. Bapak Mahar Faiqurahman, S.Kom.,M.T. dan Bapak Setio Basuki, S.T.,
M.T. yang senantiasa memberikan koreksi agar semakin baik dalam
pengerjaan Tugas Akhir ini.
6. Bapak Yuda Munarko, S.Kom.,M.Sc. selaku Pimpinan Jurusan Teknik
Informatika pada Universitas Muhammadiyah Malang.
7. Bapak dan Ibu Dosen Jurusan Teknik Informatika yang senantiasa
memotivasi, menasehati, dan mengajarkan ilmunya, serta seluruh Staff Tata
Usaha Jurusan Teknik Informatika Universitas Muhammadiyah Malang.
8. Teman-teman Asisten Laboratorium Teknik Informatika yang saling
membantu dan memotivasi dalam menyelesaikan Tugas Akhir ini.
9. Teman-teman seperjuangan Teknik Informatika Universitas
Muhammadiyah Malang angkatan 2013.
10. Dan semua pihak yang telah membantu hingga terselesaikannya Tugas
Akhir ini.
vii
KATA PENGANTAR
Segala puji bagi Allah SWT, yang telah memberikan Rahmat dan Karunia-
Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul :
“IMPLEMENTASI TEKNIK OBFUSCATION PADA SOURCE
CODE PHP HYPERTEXT PREPROCESSOR”
Skripsi ini merupakan salah satu syarat studi yang harus ditempuh oleh
mahasiswa Universitas Muhammadiyah Malang, guna menyelesaikan studi pada
jenjang program Strata I.
Peneliti menyadari masih terdapat banyak kekurangan dan keterbatasan
dalam penulisan Tugas Akhir ini. Untuk itu, penulis sangat mengharapkan saran
yang membangun agar tulisan ini dapat berguna untuk perkembangan ilmu
pengetahuan.
Malang, 28 Juli 2017
Penulis
Ahmad Sirojul Miftakh NIM. 201310370311016
viii
DAFTAR ISI
ABSTRAK ............................................................................................................... i
ABSTRACT ............................................................................................................ ii
LEMBAR PERSETUJUAN................................................................................... iii
LEMBAR PENGESAHAN ................................................................................... iv
LEMBAR PERNYATAAN .................................................................................... v
LEMBAR PERSEMBAHAN ................................................................................ vi
KATA PENGANTAR .......................................................................................... vii
DAFTAR ISI ........................................................................................................ viii
DAFTAR GAMBAR ............................................................................................ xii
DAFTAR TABEL ................................................................................................ xiii
BAB I PENDAHULUAN ....................................................................................... 1
1.1. Latar Belakang ............................................................................................. 1
1.2. Rumusan Masalah ........................................................................................ 2
1.3. Batasan Masalah........................................................................................... 2
1.4. Tujuan Penelitian ......................................................................................... 2
1.5. Metodologi Penelitian .................................................................................. 3
1.6. Sistematika Penulisan................................................................................... 5
BAB II LANDASAN TEORI ................................................................................. 6
2.1. Definisi Obfuscation .................................................................................... 6
2.2. Algoritma Rivest Cipher 4 ........................................................................... 6
a. Metode Enkripsi Rivest Cipher 4 ................................................................. 7
1. Pengisian state array ............................................................................ 7
2. Key Scheduling ..................................................................................... 7
3. Pseudo Random Generation ................................................................. 7
4. Exclusive Or Encryption ....................................................................... 7
ix
b. Metode Dekripsi Rivest Cipher 4 ................................................................. 8
2.3. PHP Hypertext Preprocessor ........................................................................ 9
2.3.1. Penulisan Script PHP ............................................................................ 9
2.3.2. Penulisan Komentar Dalam PHP ........................................................ 10
2.3.2.1. Single Line Comment .................................................................. 10
2.3.2.2. Multi Line Comment ................................................................... 10
2.3.3. Penulisan Variabel Dalam PHP .......................................................... 11
2.3.4. Operator Aritmatika Dalam PHP ........................................................ 11
2.3.5. Operator Logika Dalam PHP .............................................................. 12
2.3.6. Operator Perbandingan Dalam PHP ................................................... 12
2.3.7. Operator Percabangan Dalam PHP ..................................................... 13
2.3.7.1. Percabangan IF-ELSE ................................................................. 13
2.3.7.2. Percabangan IF-ELSEIF-ELSE ................................................... 14
2.3.7.3. Percabangan SWITCH-CASE ..................................................... 15
2.3.8. Operator Perulangan Dalam PHP ....................................................... 15
2.3.8.1. Perulangan While ........................................................................ 15
2.3.8.2. Perulangan Do-While .................................................................. 16
2.3.8.3. Perulangan For............................................................................. 17
2.3.8.4. Perulangan Foreach ..................................................................... 17
2.4. Manipulasi String ....................................................................................... 18
2.4.1. Formatting ........................................................................................... 18
2.4.2. Joining ................................................................................................. 18
2.4.3. Splitting ............................................................................................... 19
2.4.4. Comparing .......................................................................................... 19
2.4.5. Matching ............................................................................................. 19
2.4.6. Replacement........................................................................................ 19
x
2.4.7. Regular Expression ............................................................................. 20
BAB III ANALISIS DAN PERANCANGAN ..................................................... 22
3.1. Analisis Masalah ........................................................................................ 22
3.2. Analisis Sistem ........................................................................................... 22
3.2.1. Skema Obfuscation ............................................................................. 23
3.2.2. Skema Eksekusi Source Code............................................................. 24
3.2.3. Analisis Kebutuhan ............................................................................. 26
3.3. Perancangan Sistem ................................................................................... 27
3.3.1. Desain Database ................................................................................. 27
3.3.2. Desain User interface ......................................................................... 28
3.3.2.1. Halaman Login ............................................................................ 28
3.3.2.2. Halaman Registration .................................................................. 28
3.3.2.3. Halaman Dashboard .................................................................... 29
3.3.2.4. Halaman Setting .......................................................................... 30
3.3.2.5. Halaman Obfuscation .................................................................. 30
3.3.2.6. Halaman Deobfuscation .............................................................. 31
3.3.2.7. Halaman Kelola File Project ....................................................... 31
BAB IV IMPLEMENTASI DAN PENGUJIAN .................................................. 32
4.1. Implementasi .............................................................................................. 32
4.1.1. Kode Program ..................................................................................... 32
4.1.1.1. Source Code Tahap Obfuscation ................................................. 32
4.1.1.3. Source Code pada Loader ........................................................... 34
4.1.2. User Interface ..................................................................................... 35
4.1.2.1. Login............................................................................................ 35
4.1.2.2. Registration.................................................................................. 35
4.1.2.3. Dashboard .................................................................................... 36
xi
4.1.2.4. Project .......................................................................................... 36
4.1.2.5. Setting .......................................................................................... 37
4.2. Konfigurasi PHP Loader ........................................................................... 38
4.3. Pengujian .................................................................................................... 38
4.3.1. Pengujian Kehandalan Website .......................................................... 38
4.3.1.1. Pengujian Website Tanpa Menggunakan Obfuscation ................ 39
4.3.1.2. Pengujian Website Dengan Menggunakan Obfuscation.............. 39
4.3.1.3. Perbandingan Hasil Pengujian Aplikasi Web. ............................. 40
4.3.1.4. Hasil Pengujian Kehandalan Website ......................................... 41
4.3.2. Pengujian Fungsional Aplikasi Wanna Crypt ..................................... 42
4.3.2.1. Pengujian Fitur Obfuscation ........................................................ 42
4.3.2.2. Pengujian Eksekusi Source Code Teracak .................................. 43
BAB V KESIMPULAN DAN SARAN ................................................................ 45
5.1. Kesimpulan ................................................................................................ 45
5.2. Saran ........................................................................................................... 45
DAFTAR PUSTAKA ........................................................................................... 46
BIOGRAFI PENULIS .......................................................................................... 48
xii
DAFTAR GAMBAR
Gambar 1. 1 Metodologi Penelitian ........................................................................ 3
Gambar 2. 1 Contoh skrip php yang telah teracak .................................................. 6
Gambar 3. 1 Skema pengacakan source code pada wanna crypt ......................... 23
Gambar 3. 2 Skema eksekusi source code teracak pada wanna crypt .................. 25
Gambar 3. 3 Desain database aplikasi wanna crypt ............................................. 27
Gambar 3. 4 Desain user interface login .............................................................. 28
Gambar 3. 5 Desain user interface registration .................................................... 28
Gambar 3. 6 Desain user interface dashboard...................................................... 29
Gambar 3. 7 Desain user interface setting ............................................................ 30
Gambar 3. 8 Desain user interface code obfuscation ........................................... 30
Gambar 3. 9 Desain user interface code deobfuscation ........................................ 31
Gambar 3. 10 Desain user interface kelola file project ........................................ 31
Gambar 4. 1 Source code proses obfuscation ....................................................... 32
Gambar 4. 2 Source code redistribusi karakter ..................................................... 33
Gambar 4. 3 Source code untuk proses enkripsi di dalam loader ......................... 34
Gambar 4. 4 User Interface Login ........................................................................ 35
Gambar 4. 5 User Interface Registration .............................................................. 35
Gambar 4. 6 User Interface Dashboard ................................................................ 36
Gambar 4. 7 User Interface Project ...................................................................... 36
Gambar 4. 8 User Interface List File pada sebuah Project ................................... 37
Gambar 4. 9 User Interface Setting....................................................................... 37
Gambar 4. 10 Contoh Lokasi Penempatan Loader ............................................... 38
Gambar 4. 11 Konfigurasi Pemanggilan Loader .................................................. 38
Gambar 4. 12 Grafik perbandingan hasil pengujian aplikasi web ........................ 41
Gambar 4. 13 Pengujian Obfuscation ................................................................... 42
Gambar 4. 14 Hasil Pengacakan Source Code ...................................................... 42
Gambar 4. 15 Hasil Eksekusi Source Code Teracak............................................. 43
Gambar 4. 16 Pengujian Deobfuscation Gagal ..................................................... 43
Gambar 4. 17 Pengujian Deobfuscation Berhasil ................................................. 44
xiii
DAFTAR TABEL
Tabel 2. 1 Contoh konversi nilai desimal menjadi biner ........................................ 8
Tabel 2. 2 Aturan penghitungan nilai xor ............................................................... 8
Tabel 2. 3 Penulisan kode php tanpa tag penutup ................................................... 9
Tabel 2. 4 Penulisan kode php dengan tag penutup ................................................ 9
Tabel 2. 5 Penulisan single line comment ............................................................. 10
Tabel 2. 6 Penulisan multi line comment .............................................................. 10
Tabel 2. 7 Penulisan variable pada php ................................................................ 11
Tabel 2. 8 Operator aritmatika pada php ............................................................... 12
Tabel 2. 9 Operator gerbang logika pada php ....................................................... 12
Tabel 2. 10 Operator perbandingan pada php ....................................................... 13
Tabel 2. 11 Contoh kode percabangan if else ....................................................... 14
Tabel 2. 12 Contoh kode percabangan if elseif else .............................................. 14
Tabel 2. 13 Contoh kode percabangan switch case............................................... 15
Tabel 2. 14 Contoh kode program perulangan while ............................................ 16
Tabel 2. 15 Contoh kode program perulangan do while ....................................... 16
Tabel 2. 16 Contoh kode program perulangan for ................................................ 17
Tabel 2. 17 Contoh kode program perulangan foreach......................................... 17
Tabel 2. 18 Contoh program pencarian posisi suatu string ................................... 20
Tabel 2. 19 Contoh pengecekan string berdasarkan kata awalan ......................... 21
Tabel 2. 20 Aturan regular expression yang dapat diterapkan pada php .............. 21
Tabel 3. 1 Kebutuhan perangkat lunak (software) ................................................ 26
Tabel 3. 2 Kebutuhan perangkat keras (hardware) ............................................... 27
Tabel 4. 1 Hasil pengujian aplikasi web tanpa menggunakan obfuscation ........... 39
Tabel 4. 2 Hasil pengujian aplikasi web dengan menggunakan obfuscation ........ 40
Tabel 4. 3 Perbandingan hasil pengujian aplikasi web ......................................... 40
46
DAFTAR PUSTAKA
[1] Pradana, Krisma. “Aplikasi PHP Encoder dan Decoder Menggunakan
Algoritma Base64 dan Kunci Keamanan”. Universitas Muhammadiyah
Malang. 2015.
[2] O. Setiawan, R. Fiati dan T. Listyorini, “Algoritma Enkripsi RC4 Sebagai
Metode Obfuscation Source Code PHP,” dalam Seminar Nasional
Teknologi Industri dan Informatika, Kudus, 2014.
[3] S. Han, M. Ryu, dkk. “HOTDOL: HTML Obfuscation with Text
Distribution to Overlapping Layers”. IEEE International Conference on
Computer and Information Technology. Hanyang University. Seoul: South
Korea. 2014.
[4] Kurniadi, Irwansyah, Fatmasari. “Penerapan Algoritma Rivest Cipher 4
Untuk Enkripsi Keamanan Data”. Universitas Bina Darma. Palembang:
Sumatera Selatan. 2015.
[5] H. Dermawan, D. Alamsyah. “Penerapan Algoritma Rivest Cipher 4 untuk
Enkripsi dan Dekripsi SMS Berbasis Android”. Seminar Perkembangan dan
Hasil Penelitian Ilmu Komputer (SPHP-ILKOM). STIMIK Global
Informatika MDP. 2014.
[6] Sun, Y., & Huang, G. (2014, January). Code Obfuscation Technology Based
on Renaming Identifier. In Proceedings of the 9th International Symposium
on Linear Drives for Industry Applications, Volume 1 (pp. 625-631).
Springer Berlin Heidelberg.
[7] A. T. Sholeh, E. Gunadhi, A. D. Supriatna. “Mengamankan Script Pada
Bahasa Pemrograman PHP dengan Menggunakan Kriptografi Base64”.
Sekolah Tinggi Teknologi Garut. 2013.
[8] P. S. Nugroho, E. Aribowo. “Pengembangan Modul Enkripsi dan Dekripsi
Pada PHP dengan Modifikasi Metode Kriptografi Vigenere Cipher dan
Cipher Block Chaining”. Jurnal Sarjana Teknik Informatika Volume 2
Nomor 1. 2014. Halaman: 1004-1012.
[9] S, Steven, Janet Valade. “PHP, MySQL, JavaScript, & HTML5 All in One
For Dummies”. New Jersey: John Wiley & Sons, Inc. 2013.
47
[10] Rahmatullah, Alam., Rinaldi Munir. “Pencegahan Ancaman Reverse
Engineering Dengan Teknik Obfuscation Code Pada Extension PHP”. Institut
Teknologi Bandung. 2015.
48
BIOGRAFI PENULIS
Ahmad Sirojul Miftakh, lahir di Manokwari, 5
Agustus 1995. Seorang mahasiswa jurusan Teknik
Informatika Universitas Muhammadiyah Malang.
Menyelesaikan pendidikan di SD Negeri Yos
Sudarso 1 (sekarang SDN 6 Sanggeng) pada tahun
2007, di SMP Negeri 3 Manokwari pada tahun
2010 ,di SMA Negeri 1 Manokwari pada tahun
2013, hingga menyelesaikan jenjang perguruan
tinggi Strata 1 Teknik Informatika di Universitas
Muhammadiyah Malang pada tahun 2017. Sejak
2014 hingga menuju akhir perjalanan studi di tahun 2017, penulis aktif menjadi
asisten pada Laboratorium Teknik Informatika atau Infotech. Pada tahun 2015
mulai aktif dalam dunia pemrograman dan praktek lapangan dalam proyek
pengembangan perangkat lunak. Memiliki minat dan ketertarikan pada bidang
keamanan sistem informasi serta rekayasa perangkat lunak.
Penulis dapat dihubungi melalui :
Email : [email protected]
Telepon : 081217040518