- 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 :
- host based – network based collection
- direct – indirect monitoring
- 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:
- ping
- dir
- free
- df
- du
- lastlog
- uptime
- w
sejumlah
informasi yang diambil:
- Nama host
- Sistem operasi
- Ketersediaan space disk
- Ketersediaan memori JVM
- 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:
- N user berbeda yang melakukan login ke satu host berasal dari satu mesin
- Login berasal dari satu mesin ke N host berbeda ( kemungkinan penyusupan terdistribusi)
- Serangan terhadap memori
- Serangan terhadap space disk
- Serangan terhadap direktory temporary (/tmp)
- Mendeteksi port aktif dari trojan yang sudah diketahui atau mendeteksi port aneh (weird connection)
- Mendeteksi proses tertentu yang tidak diperkenankan/ dicurigai
- 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:
- Host-host yang aktif dan kondisinya
- 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 :
- no (int(11) , PRIMARY KEY, NOT NULL , auto_increment): untuk primary key tabel.
- pengambilan (varchar (50)): saat pengambilan informasi deteksi dilakukan
- 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 :
- Telah di kenal alamat IP-nya dan alamat IP tersebut dapat diakses melalui jaringan
- Telah dipasang JDK ( Java Development Kit) versi 1.1.8 serta aglet viewer tahiti berjalan dengan nomor port yang telah ditentukan
- 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 :
- Langkah pertama adalah Admin menentukan host-host mana yang akan dideteksi
- 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.
- Mengirimkan agen ke host tersebut. Agar agen dapat sampai ke tujuan, sebelumnya harus diketahui terlebih dahulu alamat IP atau nama host dari host tujuan.
- Di tiap host yang disinggahi, agen akan melakukan pengambilan informasi yang diperlukan untuk deteksi penyusupan.
- Mobile agent membawa rencana perjalanannya (itinerary) dan akan berpindah ke host berikutnya dalam rencana perjalanan tersebut.
- Setelah semua host dalam rencana perjalanan dikunjungi, agen kembali ke host pengirim dengan membawa serta informasi yang telah dikumpulkan tersebut.
- 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:
- MasterIDS
- FrameIDS
- 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:
- boolean handleMessage(Message msg): menangani pesan dari agen Slave
- 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:
- Menerima masukan penambahan dan pengurangan host-host yang akan menjadi tujuan perjalanan mobile agent (itinerary), serta perintah pengiriman agent
- Menampilkan informasi deteksi yang diperoleh oleh mobile agent, atau menampilkan informasi deteksi yang sudah tersimpan pada database.
- 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:
- 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.
- boolean handle Message(Message msg): penanganan pesan dari agen master.
- void start ( ): diaktifkan untuk memulai perjalanan berkeliling jaringan
- 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.