aaa

Berusaha yang TERBAIK

Selasa, 16 Oktober 2012

Melacak Sumber Program Perusak


Freezing The Scene (Bagian 4)

Hal yang menarik bagi pelaku penyusupan kejahatan dan komputer adalah faktor anonimitas, artinya pembuat virus, trojan, atau pelaku compromise tidak merasa khawatir akan dikenali. Di sisi lain, insiden penyusupan virus,worm, trojan dan cracker kadang meninggalkan potongan program. Bisakah dengan peninggalan tersebut diidentifikasi sumbernya? Peninggalan dari serangan tersebut bisa berupa source program, kode object, shell script, perubahan pada program yang ada, atau file teks yang dibuat oleh penyusup. Hal tersebut bisa dipergunakan untuk mengidentifikasi sumber dari serangan, serupa dengan analisis tulisan tangan yang dilakukan oleh aparat hukum untuk mengenali penulis suatu dokumen. Hal ini biasa disebut forensik perangkat lunak. Forensik perangkat lunak bisa dilakukan pada :
1.        Kode executable.
Biasanya dilakukan pada virus atau worm. Sayangnya banyak feature yang bisa berguna dalam analisis telah terhapus, misalkan komentar, identasi dan identifier. Optimisasi juga dilakukan sehingga program telah berbeda dengan program semula. Beberapa feature yang masih bisa dipertimbangkan di antaranya:
  • Algoritma dan struktur data: Pilihan algoritma dan struktur data bisa menunjukkan background dari pembuat
  • Kompilator: Dalam kasus virus bisa ditentukan bahasa pemrogramannya dan dari vendor mana, karena rutin-rutin dan library yang dipergunakan
  • Pengetahuan pemrograman: Bisa dilihat tingkat kemampuan pemrogram dari penggunaan fungsi dan error checking semacam exception handling
  • Pilihan system call
  • Kesalahan: Beberapa programmer membuat kesalahan serupa pada program-programnya

2.        Kode Sumber.
Ini mampu memberikan informasi yang lebih banyak. Beberapa feature yang bisa dianalisis :
  • Bahasa : Menunjukkan pengetahuan dan ketersediaan pada pemrogram
  • Format : Biasanya konsisten, misal identasi dan deklarasi
  • Komentar
  • Nama variabel
  • Ejaan: Ada pemrogram yang melakukan kesalahan eja secara tetap
  • Feature bahasa: Beberapa pemrogram lebih suka menggunakan pilihan tertentu, misal antara perulangan for dengan repeat until atau while
  • Scope: pemilihan variabel lokal dan global
  • Jalur eksekusi: adanya kode yang tidak pernah dieksekusi
  •  Bug: Kesalahan serupa yang dibuat dalam program-programnya.

Analisis Unknown Program
            Untuk mempelajari perilaku suatu program yang tidak kita ketahui sumber dan kegunaannya terdapat beberapa cara: 
  1. Analisis statik
    Mempelajari program tanpa benar-benar mengeksekusinya. Tool yang dipergunakan adalah dissasembler, decompiler, tool analisis kode sumber, dan tool dasar semacam grep. Dalam kenyataannya bisa memberikan suatu gambaran pendekatan mengenai program.

     2.  Analisis dinamik

Mempelajari program saat dieksekusi. Tool yang dipergunakan adalah debugger, tracer, emulator mesin, analisis logika dan terkadang sniffer jaringan. Keuntungan dari analisis dinamik adalah cepat dan akurat. Kasus khusus dari analisis dinamik adalah analisis kotak hitam (black box), yaitu analisis dinamik tanpa mengakses internal program. Dalam kasus ini, pengamatan dilakukan pada input dan output eksternal, serta karakteristik pewaktuannya.

     3.  Analisis postmortem

Mempelajari perilaku perangkat lunak dengan mengamati dampak setelah eksekusi program. Bisa jadi ini merupakan satu-satunya alat yang tersedia setelah penyusupan sistem.
            Analisis dinamik harus dilakukan sehingga tidak menimbulkan kerusakan yang berbahaya, sehingga eksekusi program bisa dijalankan pada :
1.        Mesin “percobaan” tanpa koneksi jaringan
2.        Mesin dengan sandbox Virtual Machine
Untuk memantau kemajuan (progress) suatu program, pengamatan bisa dilakukan dengan cara:
·           Pengamatan pada level instruksi mesin
·           Pengamatan system call yang dipergunakan
            
Suatu mesin yang mengalami compromise tidak akan bisa dipercaya, dan semua informasi yang berasal dari mesin tersebut perlu diragukan. Perubahan pada suatu program aplikasi dan file data mudah dideteksi jika diketahui file mana yang mengalami perubahan. Perubahan pada proses yang berjalan lebih susah dideteksi, begitu pula dengan perubahan pada level kernel sistem operasi, atau bahkan perubahan pada tingkat di bawah level kernel.

References :

http://akumamikazuki.blogspot.com/2011/10/analisis-unknown-program.html

Tidak ada komentar:

Posting Komentar