Rabu, 16 Januari 2013

JURNAL APLIKASI MOBILE AGENT UNTUK DETEKSI PENYUSUPAN PADA JARINGAN KOMPUTER



  •   Latar Belakang

Jaringan komputer terus mengalami perkembangan, baik dari skalabilitas, jumlah node dan teknologi yang digunakan. Hal ini memerlukan pengelolaan jaringan yang baik agar ketersediaan jaringan selalu tinggi.  Tugas pengelolaan jaringan yang dilakukan administrator jaringan memiliki banyak permasalahan, diantaranya yang berkaitan dengan keamanan jaringan komputer.
Penyusupan (intrusion) adalah seseorang yang berusaha merusak atau menyalahgunakan sistem, atau setiap usaha yang melakukan compromise integritas,kepercayaan atau ketersediaan suatu sumberdaya komputer. Definisi ini tidak bergantung pada sukses atau gagalnya aksi tersebut, sehingga berkaitan dengan suatu serangan pada sistem komputer.
Intrusion detection (ID) singkatnya adalah usaha mengidentifikasi adanya penyusup yang memasuki sistem tanpa otorisasi (misal cracker) atau seorang user yang sah tetapi menyalahgunakan (abuse) privelege sumberdaya sistem ( misal insider threath). Intrusion Detection System (IDS) atau Sistem Deteksi Penyusupan adalah sistem komputer (bisa merupakan kombinasi software dan hardware) yang berusaha melakukan deteksi penyusupan . IDS akan melakukan pemberitahuan saat mendeteksi sesuatu yang dianggap sebagai mencurigakan atau tindakan ilegal. IDS tidak melakukan pencegahan terjadinya penyusupan. Pengamatan untuk melakukan pemberitahuan itu bergantung pada bagaimana baik melakukan konfigurasi IDS.
Software Agent (selanjutnya disebut agent saja) adalah entitas perangkat lunak yang didedikasikan untuk tujuan tertentu. Agen bisa memiliki ide sendiri mengenai bagaimana menyelesaikan suatu pekerjaan tertentu.  Sejumlah riset tentang agentelah membuat bermacam aplikasi, misal untuk distributed meeting scheduler, network mapping,auction, dan searching database.

  •            Indentifikasi masalah

Saat ini jenis serangan baru pada jaringan komputer tumbuh dengan cepat melebihi kemampuan update dari sistem.  Suatu jaringan komputer yang kompleks harus selalu dijaga keamananya oleh administrator  jaringan.  Namun demikian,harus juga diperhatikan agar jangan sampai usaha untuk mengelola keamanan justru akan menurunkan ketersediaan jaringan karena banyak bandwith jaringan yang dipakai untuk pengelolaan jaringan tersebut.
Di samping itu,  seorang administrator jaringan tidak mungkin sepanjang waktu selalu berada di dekat jaringan komputer yang dikelolanya. Apabila diperlukan,  seorang administrator masih dapat melakukan aktivitas pengelolaan keamanan jaringan komputer. Meskipun ia berada jauh dari jaringan komputer yang dikelolanya.
Pada prakteknya terdapat kesulitan untuk memungkinkan perangkat lunak yang dapat melakukan pemantauan kebijaksanaan keamanan dalam lingkungan yang terdistribusi dan heterogen.  Solusi tersebut harus dapat menjamin penetapan kebijakan keamanan  yang konsisten diseluruh sistem, dan memantau kemungkinan terjadinya kebocoran dan inkonsistensi,  khususnya bila terjadi  penambahan atau pengurangan sumberdaya sistem.
Untuk itu diperlukan suatu Agent yang dapat melakukan tugas-tugas pengelolaan keamanan jaringan komputer, dan dapat beroperasi melalui jaringan internet atau intranet.  Salah satu pendekatan yang mungkin adalah dengan menerapkan mobile agent  Java.       
IDS pada umumnya melakukan dua pekerjaan, yaitu pengumpulan data dan analisis data.  Penggolongan IDS bisa dilakukan berdasar banyak karakteristik, diantaranya adalah :
  1. host based – network based collection
  2. direct – indirect monitoring
  3. internal – external sensor
Penerapan IDS telah mengalami peningkatan pesat pada tahun-tahun belakangan ini.  Salah satu alasannya adalah perkembangan dari internet dan jumlah jaringan yang cukup besar pada setiap organisasi.  Peningkatan jumlah mesin pada jaringan ini memunculkan aktivitas yang tidak diinginkan, tidak hanya dari serangan luar,  tetapi juga dari dalam seperti disgruntled employes dan orang yang menyalahgunakan privelege untuk keperluan pribadi.


  •     Tujuan

Mobile agent adalah agen yang aktif dan dapat bergerak menuju ke komputer lain, atau menjelajahi jaringan untuk menjalankan tugasnya. Penelitian ini menghasilkan rancangan aplikasi mobile agent untuk membentuk suatu prototype sistem deteksi penyusupan terdistribusi ( Distributed Intrusion Detection System ) .
IDS yang ada ,  diharap bisa melakukan pekerjaanya mendekati realtime, tahan terhadap serangan, dan overhead yang cukup kecil pada host, baik untuk penggunaan  memori dan CPU.  Dalam report ini mencoba  mendeskripsikan konsep dari penggunaan IDS  berbasis mobile agent,  karakteristik dan kemampuannya.  Pendekatan ini diusahakan mampu menangani masalah skalabilitas, reliabilitas, dan konfigurabilitas.
Tujuannya mempelajari pendekatan ini dan kemampuan deteksinya.  Dengan ini akan diperoleh kemampuan dan keterbatasan pendekatan berbasis agen saat diterapkan pada dunia nyata.


  •        Batasan Masalah

Sebelumnya akan dijelaskan klasifikasi sumber data untuk deteksi penyusupan dan mekanisme pengaksesannya.  IDS yang ada kebanyakan mempergunakan analisis data terpusat atau pengumpulan data per host dan komponen analisis yang diimplementasikan sebgai proses terpisah pada satu atau lebih komputer pada jaringan.  Permasalahan skalabilitas, konfigurabilitas, dan efisiensi dari IDS umumnya berasal dari rancangannya yang berupa suatu entitas monolithic tunggal. Pada arsitektur tersebut data dikumpulkandan diproses oleh host tunggal.
Dalam report ini diajukan suatu arsitektur terdistribusi yang mempergunakan entitas-entitas disebut agen otonom ( atau disebut agen saja), untuk mendeteksi perilaku anomali atau penyalahgunaan.  Rancangan ini diharapkan memiliki keunggulan dari arsitektur lainnya dalam skalabilitas, efisiensi, fault tolerance , dan konfigurabilitas.
Di sini mobile agent adalah program komputer yang bisa berjalan-jalan pada jaringan.  Mobile agent akan melakukan pengambilan informasi pada suatu host tujuan, meliputi : ketersediaan memori, ketersediaan space disk, informasi log dari login user, keaktifan port dan proses tertentu.  Kemudian hasil pengambilan tersebut akan dianalisa berdasarkan konfigurasi kebijakan jaringan yang ditetapkan administrator  ( disini dengan memakai suatu file), sehingga akan didapat informasi penting yang perlu diperhatikan dari setiap host.  Informasi tersebut akan berguna bagi administrator untuk memperhatikan kemungkinan adanya potensi penyusupan.  Tidak semua kemungkinan serangan atau usaha penyusupan  ditangani oleh perangkat lunak ini. Perangkat lunak ini bisa di implementasikan dengan bahasa pemrograman java, memanfaatkan tool untuk pengembangan software agents yaitu Aglets Software Development Kit, serta diharapkan bisa berjalan pada platform sistem operasi Windows dan Linux.

  •  Sumber data
Pada dasarnya mobile agent melakukan pengumpulan kondisi pada host di jaringan. Sumber data diambil dengan menggunakan fungsi-fungsi sistem dan jaringan yang disediakan oleh Java. Serta perintah yang disediakan oleh sistem operasi windows atau Linux:
  1. ping
  2. dir
  3. free
  4. df
  5. du
  6. lastlog
  7. uptime
  8. w
sejumlah informasi yang diambil:
  1. Nama host
  2. Sistem operasi
  3. Ketersediaan space disk
  4. Ketersediaan memori JVM
  5. port tertentu yang aktif
Untuk host yang menjalankan sistem operasi Linux, akan diambil juga informasi berikut:
1. Ketersediaan memori
2. Proses tertentu yang aktif
3. Waktu uptime
4. Ukuran direktory temporary
5. Mesin asal user melakukan login
4.4  Informasi Deteksi penyusupan
sejumlah kegiatan yang akan berusaha dideteksi dan dicurigai sebagai penyusupan bergantung pada kebijakan jaringan yang ditentukan administrator:
  1. N user berbeda yang melakukan login ke satu host berasal dari satu mesin
  2. Login berasal dari satu mesin ke N host berbeda ( kemungkinan penyusupan terdistribusi)
  3. Serangan terhadap memori
  4. Serangan terhadap space disk
  5. Serangan terhadap direktory temporary (/tmp)
  6. Mendeteksi port aktif dari trojan yang sudah diketahui atau mendeteksi port aneh (weird connection)
  7. Mendeteksi proses tertentu yang tidak diperkenankan/ dicurigai
  8. Kemungkinan mesin pernah mengalami rebooting, berdasar waktu uptime
Konfigurasi aturan untuk penentuan nilai parameter tersebut akan disimpan dalam sebuah file yang bisa diedit oleh administrator secara manual.
            Informasi deteksi penyusupan yang dikumpulkan diambil dari host-host yang sedang aktif pada saat proses pengumpulan sedang berlangsung. Informasi tersebut adalah:
  1. Host-host yang aktif dan kondisinya
  2. Event yang terjadi dan perlu mendapat perhatian
Informasi ini akan ditampilkan, dan juga disimpan ke database. Aplikasi ini menggunakan Mysql sebgai database server untuk menyimpan informasi hasil deteksi penyusupan. Driver MM.MySQL dipergunakan sebagai JDBC (JAVA Database Connectivity) untuk berhubungan ke program java. Struktur tabel untuk menampung informasi, sebagai berikut :
  1. no (int(11) , PRIMARY KEY, NOT NULL , auto_increment): untuk primary key tabel.
  2. pengambilan (varchar (50)): saat pengambilan informasi deteksi dilakukan
  3. laporan (text): berisi laporan hasil deteksi
Laporan hasil deteksi akan memuat informasi penting yang perlu diperhatikan, serta informasi keseluruhan yang diambil dari host tujuan.
4.5 Penentuan batasan Sistem
Sebelum melangkah ke proses desain selanjutnya, perlu ditentukan dahulu beberapa syarat batas minimal yang harus dipenuhi agar proses deteksi penyusupan berjalan dengan sukses.
Deteksi penyusupan dilakukan dengan mengirimkan agen melalui jaringan dari satu host ke host tujuan yang berada dalam jaringan komputer. Agar proses pengiriman agen tidak menghabiskan banyak waktu dan bandwith jaringan, agen tersebut harus berukuran cukup kecil, hanya beberapa puluh kilobyte saja. Bahasa pemrograman yang cocok untuk keperluan tersebut adalah Java karena hasil kompilasi Java cukup kecil dan Java sangat handal untuk aplikasi jaringan.
Syarat host yang akan menjadi tujuan pengiriman mobile agent adalah :
  1. Telah di kenal alamat IP-nya dan alamat IP tersebut dapat diakses melalui jaringan
  2. Telah dipasang JDK ( Java Development Kit) versi 1.1.8 serta aglet viewer tahiti berjalan dengan nomor port yang telah ditentukan
  3. Sistem operasi menggunakan NT/2000/XP atau Linux
Untuk syarat terakhir, yaitu mengenai sistem operasi yang digunakan oleh host yang akan menjadi tujuan pengiriman mobile agent, perlu sedikit modifikasi pada salah satu class dari mobile agent bila menggunakan sistem operasi selain tersebut di atas.
4.6 Skema Dasar Proses Deteksi Penyusupan
Urutan langkah deteksi penyusupan suatu jaringan komputer ditunjukan dengan gambar skema deteksi penyusupan seperti pada gambar 4.2. di bawah ini akan dijelaskan urutan langkah proses deteksi penyusupan dari suatu jaringan komputer tersebut. Dengan asumsi setiap host sudah dijalankan aglet server yang siap menerima aglet yang  masuk pada port yang sudah ditentukan. Sementara tahiti dijalankan pada komputer asal dimana administrator akan melihat hasil kerja agen tersebut.
 Langkahnya sebagai berikut :
  1. Langkah pertama adalah Admin menentukan host-host mana yang akan dideteksi
  2. Melakukan scanning nama host yang aktif. Untuk mempercepat proses, terlebih dahulu dilakukan pengiriman paket ping ke masing-masing host untuk memeriksa apakah host yang bersangkutan sedang aktif atau tidak. Bila sampai batas waktu tertentu tidak diperoleh balasan (reply) dari host yang bersangkutan. Maka dapat disimpulkan bahwa host tersebut sedang tidak aktif atau sedang tidak terhubung ke jaringan sehingga tidak dilakukan proses pengiriman mobile agent. Hanya terhadap host-host yang sedang aktif saja proses tersebut dilakukan.
  3. Mengirimkan agen ke host  tersebut. Agar agen dapat sampai ke tujuan, sebelumnya harus diketahui terlebih dahulu alamat IP atau nama host dari host tujuan.
  4. Di tiap host yang disinggahi, agen akan melakukan pengambilan informasi yang diperlukan untuk deteksi penyusupan.
  5. Mobile agent membawa rencana perjalanannya (itinerary) dan akan berpindah ke host berikutnya dalam rencana perjalanan tersebut.
  6. Setelah semua host dalam rencana perjalanan dikunjungi, agen kembali ke host pengirim dengan membawa serta informasi yang telah dikumpulkan tersebut.
  7. Untuk kemudian dilakukan analisa dan ditampilkan hasilnya di komputer pengirim agen. Informasi yang ditampilkan dalam bentuk informasi setiap host, maupun informasi penting seluruh host pada jaringan.




  • Antarmuka User
Antarmuka user di sini selain sudah disediakan oleh Tahiti, juga dilakukan oleh agen Master dengan membuat frame dialog. Ini memungkinkan user untuk memasukan alamat dari host-host yang menjadi tujuan deteksi penyusupan. Kemudian di akhir perjalanan, agen master akan menampilkan hasil dari pengumpulan dan analisa informasi deteksi penyusupan yang diperoleh. 
4.9 Lingkungan Implementasi
Program diimplementasikan dengan memanfaatkan:
1.                            Aglet API Development Kit versi 1.1.0. Karena kemampuannya membuat lighweight agent, maka Aglet API sering disebut RISC mobile agent.
2.                            Bahasa pemrograman yang dipergunakan adalah Java dengan tool pengembangan JDK versi 1.1.8 for linux/windows
3.                            Semua perangkat lunak dipergunakan pada sistem operasi windows dan Linux RedHat 7.0
4.                            MySQL merupakan server database yang memiliki kemampuan multiuser, berukuran kecil, memiliki kecepatan dan kinerja yang baik. Selain itu juga merupakan proyek open source yang bebas dipergunakan secara gratis.

4.10 Pembuatan Class
Aplikasi mobile agent ini terdiri dari tiga buah class utama, yang bertugas untuk melakukan deteksi dan interaksi masukan/keluaran dengan user.
Class tersebut adalah:
  1. MasterIDS
  2. FrameIDS
  3. SlaveIDS
 
  • Class MasterIDS
Class ini merupakan class utama yang akan dijalankan pertama kali oleh user dari antarmuka Tahiti. Class MasterIDS merupakan stationary agent yang mengontrol masukan dari class FrameIDS, serta bertugas membentuk, mengirimkan /menerima informasi dari class SlaveIDS. Class ini dimodifikasi dari class CirculateAglet.
            Karena ada kemungkinan tidak semua host tujuan sedang aktif, maka class ini memiliki fungsi ping untuk memeriksa host yang aktif. Selanjutnya pengiriman mobile agent hanya akan ditujukan pada host yang aktif saja. Hal ini bertujuan untuk mempercepat proses deteksi. Sejumlah fungsi yang ada:
  1. boolean handleMessage(Message msg): menangani pesan dari agen Slave
  2. boolean ping ( String  pingAddress): menemukan host tujuan yang aktif

  •  Class FrameIDS
Class ini merupakan class yang bertujuan membuat tampilan dialog untuk interaksi dengan user. Sejumlah pekerjaan yang dilakukannya:
  1. Menerima masukan penambahan dan pengurangan host-host yang akan menjadi tujuan perjalanan mobile agent (itinerary), serta perintah pengiriman agent
  2. Menampilkan informasi deteksi yang diperoleh oleh mobile agent, atau menampilkan informasi deteksi yang sudah tersimpan pada database.
  3. Menampilkan status keberangkatan / kepulangan suatu mobile agent
Class ini dimodifikasi dari class CirculateFrame pada aplikasi CirculateAglet yang terdapat pada Aglets. Fungsi yang ada disini adalah :
voidactionPerformed (ActionEvent) untuk menangani event.
4.10.3 Class Slave IDS
Ini adalah class mobile agent yang akan berkeliling jaringan. Class ini dibuat oleh MasterIDS, dikirimkan ke host tujuan, mengambil informasi dari host, dan melanjutkan perjalanan sesuai rencana perjalanan (itinerary). Class ini dimodifikasi dari class FingerSlave yang terdapat pada aplikasi Finger di Aglets. Sejumlah pekerjaan yang dilakukan oleh class SlaveIDS:
1.               Melakukan inisialisasi yang diperlukan untuk memulai perjalanan, seperti rencana perjalanan
2.               Melakukan perjalanan ke host-host tujuan
3.               Mengambil informasi pada host tersebut
4.               Kembali ke host asal pengiriman, memberikan pesan kepulangan ke class MasterIDS
5.               Melakukan analisa dan penyimpanan hasil ke database
Class Slave IDS mempergunakan sejumlah fungsi:
  1. void onCreation (Object ini): dijalankan saat agen ini tercipta, lalu akan memanggil fungsi void readConfig ( ) untuk membaca file konfigurasi (aturan.txt) untuk menentukan inisialisasi sejumlah variabel sesuai kebijakan jaringan.
  2. boolean handle Message(Message msg): penanganan pesan dari agen master.
  3. void start ( ): diaktifkan untuk memulai perjalanan berkeliling jaringan
  4. void doJob ( ) : diaktifkan pengambilan informasi yang dilakukan di tiap host. Untuk keperluan itu mempergunakan fungsi-fungsi:
a.       void ambilport ( ) : mengambil port tertentu yang aktif
b.      void ambilDIR ( ): mengambil free disk space di windows
c.       void ambildf ( ) :  mengambil free disk space di linux
d.      void ambilfree ( ) : mengambil free memori di linux
e.       void ambiluptime ( ): mengambil waktu uptime di linux
f.       void ambiltmp ( ): mengambil ukuran direktory /tmp di linux
g.      void ambillog ( ): mengambil informasi login di linux
h.      void ambilproses ( ) : mengambil perintah tertentu yang aktif
5.   void doResult ( ): menangani dan analisa informasi deteksi, penyimpanan ke database


  • Kesimpulan
Dalam perkembangannya, sistem deteksi penyusupan telah dirancang dengan bermacam-macam algoritma dan struktur deteksi. Diawali dengan host-based, lalu berubah ke sistem network-based, dan dalam beberapa tahun kemudian memiliki kecenderungan kombinasi terdistribusi dari keduanya. Bagaimanapun, selama perubahan itu, sumber informasi yang dipergunakan tidak berubah. Diharapkan hasil kerja ini akan memberikan suatu panduan untuk integrasi pada perancangan sistem selanjutnya yang akan berdampak pada peningkatan kinerja. Beberapa kontribusi utama :
1.      Menyatakan properti dari mobile agent berkaitan dengan penggunaannya untuk deteksi penyusupan, dan arsitektur untuk pembuatan IDS berdasar pada mobile agent.
2.      Merancang suatu prototype dari IDS mempergunakan arsitektur tersebut, sehingga menunjukkan kemungkinan mempergunakan mobile agent untuk melakukan deteksi penyusupan yang dapat dijalankan di paltform sistem operasi berbeda.
3.      Mobile agent bisa meningkatkan kemampuan deteksi sistem, mengeksplorasi kemampuan deteksi serangan tertentu yang susah bila diimplementasikan dengan IDS tradisional. Dengan sekumpulan agen ini menembus batasan tradisional dari IDS dengan host based aatau network based.