Thursday, October 24, 2013

Posted by Unknown |
Code obfuscation merupakan implementasi dari prinsip security Through Obscurity (STO) yang digunakan juga dalam software engineering, yang percaya bahwa keamanan dapat diraih dengan merahasiakan mekanisme sistem. Implementasi lain dari STO dalam sistem komputer adalah menyembunyikan password dalam kode biner atau mengirimkan dokumen terenkripsi. Bagi programmer, umumnya code obfuscation digunakan untuk melindungi karya intelektualnya dari usaha reverse code engineering pihak lain. Programmer disini termasuk juga pembuat malware, yang dari perspektifnya, digunakan untuk menghindari pendeteksian antivirus dan/atau mempersulit peniliti virus untuk menganalisis malware buatannya. Code obfuscation terkadang juga menantang jiwa programmer untuk memecahkannya, atau sebaliknya, merangsang programmer untuk membuat kode terlihat serumit mungkin dan susah dimengerti. Tidak jarang terdapat kontes pemrogramman untuk membuat kode terlihat susah dimengerti. Berikut adalah salah satu contoh sederhana code obfuscation pada script PHP: PHP merupakan bahasa server side scripting dalam web development dimana source code tersimpan pada server. Jika seseorang memiliki akses masuk ke folder tempat file script PHP tersebut disimpan, maka script biasa dapat terbaca tanpa kesulitan. Kegunaan code obfuscation seperti contoh diatas dapat mempersulit pembacaan dan modifikasi script oleh pihak lain. Jika dieksekusi, script tersebut akan menampilkan kata "hello" (tanpa tanda petik) pada browser. Tanpa di-obfuscate, script dapat dituliskan sebagai berikut: Apa yang dilakukan contoh script PHP yang terobfuscate tersebut hingga dapat menampilkan string "hello"? Ternyata, kode \x68e\1541\157 secara berurutan menyimpan arti: - \x86 (merupakan karakter "h" dalam hexadecimal) - e (karakter "e") - \154 (merupakan karakter "l" dalam octal) - l (karakter "l") - \157 (merupakan karakter "o" dalam octal) Jadi tergantung dari bahasa pemrograman yang digunakan, teknik obfuscation sangat bervariasi. Bahkan tidak terbatas mengganti variabel atau format string, melainkan juga dengan mengubah perintah/instruksi, yang walaupun berbeda tetapi tetap dapat berfungsi sama. Melakukan code obfuscation umumnya membuat programmer memelihara dua jenis kode, yang original dan yang di-obfuscated untuk dirilis. Selain melakukan obfuscation secara manual, beberapa aplikasi/tool juga dapat menghasilkan code obfuscation, atau sebaliknya, berusaha melakukan deobfuscation. Baik digunakan untuk melindungi hak cipta ataupun menyamarkan malware, code obfuscation tidak menjamin kode akan aman dari usaha reverse engineering. hal ini juga yang mendorong programmer untuk terus melahirkan teknik baru yang menambah level keamanan, walaupun barangkali, tidak ada batas akhirnya.

Kembali Ke Halaman Awal atau Melihat Daftar Is

0 komentar:

Post a Comment