• Tidak ada hasil yang ditemukan

IMPLEMENTASI TEKNIK OBFUSCATION PADA SOURCE CODE PHP HYPERTEXT PREPROCESSOR TUGAS AKHIR

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMPLEMENTASI TEKNIK OBFUSCATION PADA SOURCE CODE PHP HYPERTEXT PREPROCESSOR TUGAS AKHIR"

Copied!
17
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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.

(4)

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

(5)

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

(6)

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

(7)

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.

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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.

(16)

[10] Rahmatullah, Alam., Rinaldi Munir. “Pencegahan Ancaman Reverse Engineering Dengan Teknik Obfuscation Code Pada Extension PHP”. Institut Teknologi Bandung. 2015.

(17)

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

Referensi

Dokumen terkait

Berdasarkan analisis data, pembahasan hasil penelitian khususnya analisis data seperti yang telah diuraikan dalam pembahasan mengenai peran guru dalam meningkatkan minat

Hasil dari penelitian ini menunjukkan bahwa bentuk pertanggungjawaban pidana terhadap pelaku tindak pidana aborsi (Studi Putusan Nomor 68/Pid.B/2015/PN.Mks)

Wawancara adalah teknik pengumpulan data yang digunakan untuk mendapatkan keterangan-keterangan lisan melalui bercakap-cakap dan berhadapan muka dengan orang yang

Pendidikan geografi bergerak pada ranah pengetahuan, kecakapan, perilaku untuk membentuk pengalaman anak didik yang berwawasan konservasi dan kemampuan mitigasi

STUDI KOMPARATIF PARTISIPASI DAN ASAL SEKOLAH DENGAN HASIL BELAJAR MAHASISWA DENGAN LATAR BELAKANG SEKOLAH YANG BERBEDA DITINJAU DARI PENERAPAN MODEL PEMBELAJARAN JIGSAW

Mata Kuliah Mayor: Ekonomi Mikro-Manajerial, Komunikasi Agribisnis, Teknologi Produksi Tanaman, Manajemen Agribisnis, Manajemen Sumberdaya Lahan dan Air, Teknologi

Dalam Ballenjer JJ Penyakit Telinga, Hidung, Tenggorok, Kepala dan Leher, edisi 13, Jilid Dua, Binarupa Aksara, Jakarta.. Embriologi Anatomi

Bidang Perencanaan dan Pengendalian Produksi dan Persediaan (PPPP) dipimpin oleh seorang manajer yang membawahi empat seksi, yaitu seksi Perencanaan dan Pengendalian Bahan Baku