Bab 2 Tinjauan Pustaka 2.1 Penelitian Sebelumnya Pada
penelitian
yang
berjudul
“Sistem
Deteksi
Dan
Penanganan Intruisi Menggunakan Snort dan Base Implementasi Pada PT. Oasys Solusi Teknologi” telah mengimplementasikan Intrusion Detection System (IDS) berbasis Snort yang mampu mendeteksi adanya serangan dan menampilkan alerts serangan tersebut melalui web BASE (Kuswardani, dkk, 2011). Pada penelitian yang telah dilakukan, ada dua macam pengujian sistem yaitu dengan simulasi serangan ICMP flooding dan Port Scanning. Pada simulasi ICMP flooding, attacker melakukan ping dengan bytes besar agar memenuhi bandwidth dan membanjiri jaringan dengan request pengiriman paket besar-besaran sekaligus. Ping yang diberikan adalah 1001 bytes, berbeda dengan ping normal yang hanya 56 bytes sehingga Snort akan menganggap ping tersebut sebagai suatu intrusion.
Gambar 2.1 Ping Normal (Kuswardani, dkk, 2011)
8
Gambar 2.1 menjelaskan ping dalam jumlah kecil yang akan dibaca Snort bukan sebagai intrusion karena tidak sesuai dengan pola yang ada pada rules Snort.
Gambar 2.2 Ping dengan 1001 Bytes (Kuswardani, dkk, 2011)
Gambar 2.2 menjelaskan ping dengan 1001 bytes yang akan dianggap sebagai intrusion karena pola yang ada sesuai dengan pola pada rules Snort (Kuswardani, dkk, 2011). Pada penelitian yang berjudul “Effective SQL Injection Attack Reconstruction Using Network Recording” membahas tentang bagaimana pola serangan SQL Injection itu terjadi. Selain itu juga dibahas bagaimana rekonstruksi yang dilakukan agar dapat mengetahui sumber dari serangan SQL Injection (Pomeroy, 2010). Beberapa penelitian di atas telah memberikan beberapa pengetahuan yang sangat berguna. Maka dari itu, selanjutnya dapat digunakan sebagai pendukung dalam proyek tugas akhir ini, yaitu untuk membangun sebuah Intrusion Detection System (IDS) berbasis Snort yang bertujuan untuk mendeteksi adanya serangan atau penyusupan. Dari hasil deteksi tersebut, kemudian akan dilakukan proses rekonstruksi guna menemukan sumber serangan. 9
2.2 Network Forensic Network
Forensic
(forensik
jaringan)
adalah
proses
menangkap, mencatat dan menganalisa aktifitas jaringan guna menemukan bukti digital (digital evidence) dari suatu serangan atau kejahatan
yang dijalankan menggunakan
jaringan komputer
sehingga pelaku kejahatan dapat dituntut sesuai hukum yang berlaku (Sadimin, 2011). Bukti digital (digital evidence) dapat diidentifikasi dari pola serangan yang dikenali, penyimpangan dari perilaku normal jaringan ataupun penyimpangan dari kebijakan keamanan yang diterapkan pada jaringan. Adapun fokus utama dari forensik jaringan adalah mengidentifikasi semua kemungkinan yang dapat menyebabkan
pelanggaran
keamanan
sistem
dan
membuat
mekanisme pendeteksian dan pencegahan yang dapat meminimalisir kerugian yang lebih banyak. Forensik jaringan merupakan bagian dari forensik digital, dimana bukti ditangkap dari jaringan dan diinterpretasikan berdasarkan pengetahuan dari serangan. Forensik jaringan ini dapat digunakan untuk menemukan kejahatan di dunia maya seperti cybercrime
yaitu
dengan
melakukan
rekonstruksi
serangan
berdasarkan analisis bukti penyusupan. Misalnya saja seorang administrator jaringan tidak bisa seluruhnya bergantung pada IDS untuk menjaga jaringannya. Administrator juga memerlukan proses investigasi dan alat audit untuk melakukan investigasi kejadian secara lengkap dan memulihkan jaringan dari ancaman atau serangan yang terjadi. Adapun dalam melakukan proses forensik jaringan terdiri dari beberapa tahap antara lain: 10
1.
Akuisisi dan Pengintaian (Reconnaissance) Tahap awal proses forensik merupakan hal yang kritis karena
tahap ini akan menentukan keberhasilan dalam proses forensik. Tahap ini merupakan proses pengumpulan data dan pengintaian, baik data volatil (jika bekerja pada sistem online) maupun data nonvolatil (disk terkait). Pada proses ini terdiri dari beberapa tahap yaitu: Pengumpulan Data Volatil Data volatil dikumpulkan dari berbagai sumber, yakni register proses, memori virtual dan fisik, proses-proses yang sedang
berjalan,
maupun
keadaan
jaringan.
Sumber
informasi tersebut pada umumnya mempunyai informasi dalam periode yang singkat, sehingga waktu pengumpulan bersifat kritis dan harus sesegera mungkin diambil setelah terjadi insiden. Melakukan Trap dan Trace Trap dan trace merupakan proses untuk memonitor header dari trafik internet tanpa memonitor isinya (tidaklah legal untuk memonitor isi dari suatu komunikasi data). Proses ini merupakan cara non intrusif untuk menentukan sumber serangan jaringan atau untuk mendeteksi kelainan trafik karena hanya mengumpulkan header paket TCP/IP dan bukan isinya. 2.
Analisis Data Pada tahap ini meliputi proses menganalisa data yang
diperoleh dari proses sebelumnya, seperti analisa real-time dari data volatil, analisa file log, korelasi data dari berbagai device pada 11
jaringan yang dilalui serangan dan pembuatan time-lining dari informasi yang diperoleh. Pada proses ini terdiri dari beberapa tahap yaitu: File log sebagai sumber informasi File log dapat merupakan sumber informasi yang penting bagi proses forensik. File log mengandung informasi tentang berbagai sumber daya sistem, proses-proses dan aktifitas pengguna. Interpretasi trafik jaringan Untuk dapat mengidentifikasi trafik jaringan yang tidak normal dan mencurigakan harus dapat mengenali dengan baik pola trafik jaringan yang normal. Jika pola trafik tidak normal indikasinya biasanya alamat IP sumber terlihat tidak lazim (palsu) karena berupa satu set alamat IP cadangan yang biasanya digunakan di dalam jaringan sebagai alamat privat (misalnya dengan NAT) dan tidak pernah muncul di internet. Juga time-stamp terlalu berdekatan, source port dan nomor urut yang naik secara seragam merupakan petunjuk bahwa hal ini merupakan paket yang tidak normal. Paket ini menjadi SYN flood, suatu jenis DoS (denial of service) atau suatu serangan terhadap server. Pembuatan time lining MAC (Modified Access Creation) time merupakan tool yang sangat berguna untuk menentukan perubahan file, yang dapat digunakan untuk membuat time lining dari kejadian-kejadian. M-times berisi informasi tentang kapan file dimodifikasi terakhir kali, A-times mengandung informasi waktu akses 12
terakhir (membaca atau mengeksekusi) dan C-times berisi waktu terakhir status file diubah. 3.
Recovery Tahap ini meliputi proses untuk mendapatkan/memulihkan
kembali data yang telah hilang akibat adanya intrusi, khususnya informasi pada disk yang berupa file atau direktori.
2.3 Cybercrime 2.3.1 Pengertian Cybercrime Seiring
dengan
perkembangan
teknologi,
menyebabkan
munculnya kejahatan yang disebut dengan Cybercrime atau kejahatan melalui jaringan internet. Munculnya beberapa kasus cybercrime di Indonesia, seperti pencurian kartu kredit, hacking beberapa situs, menyadap transmisi data orang lain, misalnya email, dan memanipulasi data dengan cara menyiapkan perintah yang tidak dikehendaki cybercrime
ke dalam ini
telah
program menjadi
komputer. Dengan adanya ancaman
stabilitas,
sehingga
pemerintah sulit mengimbangi teknik kejahatan yang dilakukan dengan teknologi komputer, khususnya jaringan internet. Cybercrime dapat diartikan sebagai bentuk-bentuk kejahatan yang timbul karena pemanfaatan teknologi internet. Cybercrime sering diidentikkan dengan computer cryme. Menurut The U.S. Department of Justice, computer cryme diartikan sebagai “…any illegal act requiring knowledge of computer technology for its perpetration, investigation, or prosecution”. Adapun menurut Andi Hamzah mengartikan kejahatan komputer sebagai “Kejahatan di 13
bidang komputer secara umum dapat diartikan sebagai penggunaan komputer secara ilegal”. Jadi secara ringkas cybercrime dapat didefinisikan sebagai perbuatan melawan hukum yang dilakukan dengan menggunakan internet yang berbasis pada kecanggihan teknologi komputer dan telekomunikasi.
2.3.2 Motif Kegiatan Cybercrime Berdasarkan motif kegiatan yang dilakukannya, cybercrime dapat digolongkan menjadi dua jenis, yaitu: 1.
Cybercrime sebagai tindakan murni kriminal Kejahatan yang murni merupakan tindak kriminal merupakan
kejahatan yang dilakukan karena motif kriminalitas. Kejahatan jenis ini biasanya menggunakan internet hanya sebagai sarana kejahatan. Contoh kejahatan semacam ini adalah Carding, yaitu pencurian nomor kartu kredit milik orang lain untuk digunakan dalam transaksi perdagangan di internet. 2.
Cybercrime sebagai kejahatan “abu-abu” Pada jenis kejahatan di internet yang masuk dalam wilayah
“abu-abu” cukup sulit menentukan apakah itu merupakan tindak kriminal atau bukan mengingat motif kegiatannya terkadang bukan untuk kejahatan. Salah satu contohnya adalah probing atau portscanning.
Ini adalah sebutan untuk semacam tindakan
pengintaian terhadap sistem milik orang lain dengan mengumpulkan informasi sebanyak-banyaknya dari sistem yang diintai, termasuk sistem operasi yang digunakan, port-port yang ada, baik yang terbuka maupun tertutup dan sebagainya. 14
2.3.3 Sasaran Kejahatan Cybercrime Berdasarkan
sasaran
kejahatan,
cybercrime
dapat
dikelompokan menjadi beberapa kategori, yaitu: 1.
Cybercrime yang menyerang individu (Against Person) Jenis kejahatan ini, sasaran serangannya ditujukan kepada
perorangan atau individu yang memiliki sifat atau kriteria tertentu sesuai tujuan penyerangan tersebut. Beberapa contoh kejahatan ini antara lain: Pornografi yaitu kegiatan yang dilakukan dengan membuat, memasang, mendistribusikan, dan menyebarkan material yang berbau pornografi, cabul, serta mengekspos hal-hal yang tidak pantas. Cyberstalking
yaitu
kegiatan
mengganggu
atau
melecehkan
yang
dilakukan seseorang
untuk dengan
memanfaatkan komputer, misalnya dengan menggunakan email yang dilakukan secara berulang-ulang seperti halnya teror di dunia cyber. Gangguan tersebut bisa saja berbau seksual, religius, dan lain sebagainya. Cyber-Tresspass yaitu kegiatan yang dilakukan melanggar area privasi orang lain seperti misalnya web hacking, probing, port scanning dan lain sebagainya. 2.
Cybercrime yang menyerang hak milik (Against Property) Cybercrime yang dilakukan untuk menggangu atau menyerang
hak milik orang lain. Beberapa contoh kejahatan jenis ini misalnya pengaksesan komputer secara tidak sah melalui dunia cyber, pemilikan informasi elektronik secara tidak sah/pencurian informasi, 15
carding, cybersquating, hijacking, data forgery dan segala kegiatan yang bersifat merugikan hak milik orang lain. 3.
Cybercrime
yang
menyerang
pemerintah
(Against
Government) Cybercrime Againts Government dilakukan dengan tujuan khusus penyerangan terhadap pemerintah. Kegiatan tersebut misalnya cyber terorism sebagai tindakan yang mengancam pemerintah termasuk juga cracking ke situs resmi pemerintah atau situs militer.
2.3.4 Jenis Cybercrime Berdasarkan jenis aktifitas yang dilakukannya, cybercrime dapat digolongkan menjadi beberapa jenis, yaitu: 1.
Unauthorized Access Merupakan kejahatan yang terjadi ketika seseorang memasuki
atau menyusup ke dalam suatu sistem jaringan komputer secara tidak sah, tanpa izin, atau tanpa sepengetahuan dari pemilik sistem jaringan komputer yang dimasukinya. 2.
Illegal Contents Merupakan kejahatan yang dilakukan dengan memasukkan
data atau informasi ke internet tentang suatu hal yang tidak benar, tidak etis, dan dapat dianggap melanggar hukum atau menggangu ketertiban umum, contohnya adalah penyebaran pornografi. 3.
Data Forgery Kejahatan jenis ini dilakukan dengan tujuan memalsukan data
pada dokumen-dokumen penting yang ada di internet. Dokumen-
16
dokumen ini biasanya dimiliki oleh institusi atau lembaga yang memiliki situs berbasis web database. 4.
Cyber Espionage, sabotase dan Extortion Cyber Espionage merupakan kejahatan yang memanfaatkan
jaringan internet untuk melakukan kegiatan mata-mata terhadap pihak lain, dengan memasuki sistem jaringan komputer pihak sasaran. Adapun sabotage and extortion merupakan jenis kejahatan yang dilakukan dengan membuat gangguan, perusakan atau penghancuran terhadap suatu data, program komputer atau sistem jaringan komputer yang terhubung dengan internet. 5.
Hacking, cracker dan Carding Istilah hacker biasanya mengacu pada seseorang yang punya
minat besar untuk mempelajari sistem komputer secara detail dan bagaimana meningkatkan kapabilitasnya. Adapun mereka yang sering melakukan aksi-aksi perusakan di internet lazimnya disebut cracker. Boleh dibilang cracker ini sebenarnya adalah hacker yang yang memanfaatkan kemampuannya untuk hal-hal yang negatif. Aktivitas cracking di internet memiliki lingkup yang sangat luas, mulai dari pembajakan account milik orang lain, pembajakan situs web, probing, menyebarkan virus, hingga pelumpuhan target sasaran. Tindakan yang terakhir disebut sebagai DoS (Denial Of Service).
2.3.5 Penanggulanggan Cybercrime Aktifitas pokok dari cybercrime adalah penyerangan terhadap content, computer system dan communication system milik orang lain atau umum di dalam cyberspace. Fenomena cybercrime 17
memang harus diwaspadai karena kejahatan ini agak berbeda dengan kejahatan lain pada umumnya. Cybercrime dapat dilakukan tanpa mengenal batas teritorial dan tidak memerlukan interaksi langsung antara pelaku dengan korban kejahatan. Mengamankan sistem merupakan salah satu cara dalam menanggulangi cybercrime. Pengamanan sistem secara terintegrasi sangat diperlukan untuk meminimalisasikan kemungkinan perusakan tersebut. Membangun sebuah keamanan sistem harus sesuai dengan langkah-langkah yang terintegrasi pada keseluruhan subsistemnya, dengan tujuan dapat mempersempit
atau
bahkan
menutup
adanya
celah-celah
unauthorized actions yang merugikan. Pengamanan secara personal dapat dilakukan mulai dari tahap instalasi sistem sampai akhirnya menuju ke tahap pengamanan fisik dan pengamanan data. Pengaman akan adanya penyerangan sistem melaui jaringan juga dapat dilakukan dengan melakukan pengamanan FTP, SMTP, Telnet dan pengamanan Web Server.
2.4 SQL Injection 2.4.1 Pengertian SQL Injection SQL singkatan dari Structured Query Language yg merupakan bahasa komputer standar yang ditetapkan oleh ANSI (American National Standard Institute) untuk mengakses dan memanipulasi sistem database. SQL bekerja dengan program database seperti MS Access, DB 2, Informix, MS SQL Server, Oracle dan lain sebagainya. SQL Injection merupakan sebuah teknik serangan yang memanfaatkan celah keamanan pada sisi website yang mengizinkan 18
attacker untuk menginputkan malicious code. Inputan tersebut biasanya di masukan pada box search, form-form web atau bagianbagian tertentu dari website yang berinteraksi dengan database SQL. Celah
keamanan
tersebut
ditunjukkan
pada
saat
attacker
memasukkan nilai string dan karakter-karakter control lainnya yang ada dalam instruksi SQL dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client sehingga memungkinkan attacker untuk memasukkan kode-kode SQL untuk mendapatkan informasi dan akses ke database server. Data dari user akan dianggap sebagai bagian dari input, tetapi saat dijalankan, perintah ini dapat mengubah, menghapus atau membeberkan data sensitif. Lebih parah lagi jika sampai ke sistem eksekusi kode akses yaitu mematikan database itu sendiri, sehingga database tidak bisa memberi layanan kepada web server. Serangan SQL Injection cukup kuat dan sulit dihentikan, karena tidak masuk ke dalam platform software apapun (Nidiaswari, 2010). 2.4.2 Karakterisik SQL Injection SQL Injection memerlukan karakter khusus agar bisa dimanipulasi secara paksa. Karakter – karakter inilah yang menjadi dasar penyusupan suatu situs dengan teknik SQL Injection. Beberapa karakter khusus tersebut antara lain: 1.
Double Minus (--) Tanda ini adalah tanda akhir suatu statement SQL sehingga
perintah dibelakangnya tidak akan dibaca dan dieksekusi oleh MySQL. Tanda ini sangat berguna terutama untuk statement yang menggunakan operator logika OR atau AND. Misalnya: 19
SELECT * FROM user WHERE username=‟$username‟ AND password=‟$password‟ Jika diberikan tanda (--) setelah klausa username, maka perintah diatas akan menjadi SELECT * FROM user WHERE username=‟$username-‟ AND password=‟$password‟ Hal itu akan membuat seseorang bisa login tanpa harus memiliki password, karena MySQL hanya akan membaca perintah sampai (username = „$username‟) dan mengabaikan sisanya. Pada beberapa versi dan software database, pemakaian tanda (--) seringkali diganti dengan dengan tanda pagar (#). Contoh sintaks SQL Injection bypassing pada halaman login, antara lain sebagai berikut: „ or 1=1- „ or 1=1# or 0=0 - " or 1=1 # " or 1=1- „) or „1‟=‟1-2.
Union Union adalah perintah untuk menggabungkan dua atau lebih
perintah SQL, biasanya penggunaan union dalam SQL Injection dilakukan untuk memberikan perintah error dalam query. Contoh penggunaannya: 20
SELECT isi FROM konten WHERE id = „$id‟ UNION SELECT 1,2,3,4,5 FROM user Biasanya penggunaan perintah diatas adalah untuk mencari jumlah kolom dari suatu tabel. Untuk nama tabel, bisa dicari dengan memanfaatkan tabel information_schema pada MySQL yang menyimpan informasi semua tabel yang terdapat dalam database tersebut (Vicky, dkk, 2012).
2.5 Cross Site Scripting (XSS) 2.5.1 Pengertian Cross Site Scripting (XSS) Cross Site Scripting atau lebih dikenal dengan XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS dilakukan
oleh
penyerang
dengan
cara
memasukkan
kode HTML atau client script code lainnya ke suatu situs. Serangan ini akan seolah-olah datang dari situs tersebut. Akibat serangan ini antara lain penyerang dapat mencuri cookie komputer seseorang, mendapatkan informasi sensitif atau menyimpan aplikasi berbahaya. Cross site scripting (XSS) merupakan kelemahan yang populer untuk dieksploitasi. Namun sayangnya, banyak penyedia layanan yang tidak mengakui kelemahan tersebut dan melakukan perubahan pada sistem yang mereka gunakan. Citra penyedia layanan merupakan harga yang dipertaruhkan ketika mereka mengakui kelemahan tersebut. Sayangnya dengan tindakan ini konsumen atau pengguna menjadi pihak yang dirugikan.
21
2.5.2 Cara Kerja XSS Cross Site Scripting (XSS) bekerja dengan cara mengelabui orang yang tidak waspada. Attacker biasanya akan mencari web-web yang memiliki kelemahan XSS. Selanjutnya attacker akan mencari tahu apakah website tersebut menerbitkan informasi yang dapat digunakan untuk melakukan pencurian informasi lebih lanjut, misalnya cookie. Selanjutnya attacker akan menyiapkan sebuah link tentunya yang sudah mengandung malicious code dengan tujuan untuk mendapatkan cookie dari korban. Attacker akan membujuk korbannya untuk mengakses link yang telah disiapkan. Jika attacker berhasil membuat korban mengakses link tersebut, maka attacker akan melakukan pencurian informasi-informasi penting dari korbannya dengan memanfaatkan cookie yang didapat. 2.5.3 Jenis Crosss Site Scripting (XSS) Serangan Cross Site Scripting (XSS) dibedakan menjadi dua, yaitu: 1.
Reflected atau Nonpersistent Jenis serangan ini paling umum dan yang sering digunakan
attacker dalam melancarkan aksinya. Umumnya celah keamanan ini ditemukan pada halaman pencarian karena hasil dari pencarian akan di tampilkan kembali ke user, dan apabila respon yang akan dikirimkan tidak secara benar melakukan parsing atau pembatasan terhadap tag HTML, maka akan terjadilah celah keamanan ini. Untuk memanfaatkan celah ini lebih lanjut, umumnya celah reflected ini akan di kombinasikan dengan jenis serangan lain seperti phishing, dimana attacker akan mengirimkan email berupa alamat URL situs yang legitimate tetapi mengandung XSS payload yang 22
akan di eksekusi oleh target. Dengan cara ini, attacker bisa mendapatkan cookie dari pengguna yang bisa digunakan untuk mencuri informasi-informasi penting. 2.
Stored atau Persistent. Hal ini terjadi apabila data yang dimasukkan attacker akan
disimpan oleh server dan secara permanen ditampilkan saat halaman web tersebut di buka. Celah keamanan yang banyak terjadi adalah pada halaman buku tamu dan juga forum diskusi. Celah persistent XSS ini jauh lebih berbahaya bagi user dari suatu situs web yang memiliki
celah,
karena
pengguna
yang
mengakses
akan
mengeksekusi XSS payload yang di render oleh server, sehingga seluruh user yang mengakses web tersebut akan rentan terkena serangan ini (Muamar, 2013).
2.6 Intrusion Detection System (IDS) Intrusion Detection System (IDS) merupakan sebuah aplikasi perangkat lunak atau perangkat keras yang dapat mendeteksi aktifitas yang mencurigakan dalam sebuah jaringan. IDS dapat melakukan inspeksi terhadap lalu lintas inbound dan outbound dalam sebuah jaringan, melakukan analisis dan mencari bukti dari percobaan intrusion (Jannah, dkk, 2009). Intrusion Detection System (IDS) dapat didefinisikan sebagai tools, metode, sumber daya yang memberikan bantuan untuk melakukan identifikasi, memberikan laporan terhadap aktifitas jaringan komputer. IDS adalah pemberi sinyal pertama jika attacker mencoba membobol sistem keamanan komputer. Secara umum penyusupan bisa berarti serangan atau ancaman terhadap keamanan 23
dan integritas data, serta tindakan atau percobaan untuk melewati sebuah sistem keamanan yang dilakukan oleh attacker dari internet maupun dari dalam sistem.
2.6.1 Tujuan Penggunaan IDS IDS merupakan software atau hardware yang melakukan otomatisasi proses monitoring kejadian yang muncul di sistem komputer
atau
jaringan,
menganalisanya
untuk
menemukan
permasalahan keamanan. Dengan adanya monitoring, kejadiankejadian yang tidak lazim pada jaringan dapat diketahui lebih awal sehingga
seorang
administrator
dapat
melakukan
tindakan
pencegahan dan bersiap atas kemungkinan yang akan terjadi. IDS tidak dibuat untuk menggantikan fungsi firewall karena kegunaanya berbeda. Sebuah sistem firewall tidak bisa mengetahui apakah sebuah serangan sedang terjadi atau tidak. Namun IDS mengetahui jika sedang terjadi serangan. Secara singkat, fungsi IDS adalah pemberi peringatan kepada administrator atas serangan yang terjadi pada sistem. Alasan mempergunakan IDS antara lain: 1.
Mencegah resiko keamanan yang terus meningkat karena banyak ditemukan kegiatan ilegal yang diperbuat oleh orangorang yang tidak bertanggung jawab.
2.
Untuk mendeteksi serangan dan pelanggaran keamanan yang tidak bisa dicegah oleh perangkat keamanan lainnya seperti firewall. Biasanya penyusupan berlangsung dalam tahapan yang bisa diprediksi. Tahapan pertama adalah probing atau eksploitasi pencarian titik masuk. Pada sistem tanpa IDS, penyusup memiliki kebebasan melakukannya dengan resiko 24
kepergok lebih kecil. IDS yang mendapati probing, bisa melakukan
blok
akses
dan
memberitahukan
kepada
administrator untuk mengambil tindakan lebih lanjut. 3.
Untuk bertindak sebagai pengendali kualitas pada administrasi dan perancangan keamanan, khususnya pada organisasi yang besar dan kompleks. Saat ini IDS dijalankan dalam waktu tertentu, pola dari pemakaian sistem dan masalah yang ditemui bisa nampak sehingga akan membantu pengelolaan keamanan dan memperbaiki kekurangan sebelum menyebabkan insiden.
2.6.2 Cara Kerja IDS Ada dua cara bagaimana IDS bekerja dalam mendeteksi serangan yaitu: 1.
Signature Based Signature Based merupakan cara yang paling popular, yaitu
dengan menggunakan pendeteksian berbasis
signature
yang
melibatkan pencocokan lalu lintas jaringan dengan database yang ada pada rules Snort. Rules Snort tersebut berisi cara-cara serangan dan penyususpan yang sering dilakukan oleh attacker. Kekurangan dari signature based yaitu, hanya bisa mendeteksi serangan yang sudah terdapat sebelumnya di database Snort, untuk serangan baru kemungkinan akan gagal. Deteksi signature IDS yang baru lemah pada false negatives tapi tidak pada false positives. 2.
Anomaly based Anomaly based mendeteksi adanya anomali. Jenis ini
melibatkan pola lalu lintas yang mungkin merupakan sebuah serangan yang sedang dilakukan oleh attacker. Umumnya, dilakukan 25
dengan menggunakan teknik statistik untuk membandingkan lalu lintas yang sedang dipantau dengan lalu lintas normal yang biasa terjadi. Metode anomaly based
ini
menawarkan kelebihan
dibandingkan dengan signature based, karena anomaly based dapat mendeteksi bentuk serangan yang baru dan belum terdapat di dalam database rules Snort. Dasar dari IDS adalah mengumpulkan data, melakukan preprocess dan mengklasifikasi data tersebut. Dengan analisis statistik, suatu aktifitas yang tidak normal akan bisa dilihat, sehingga IDS bisa mencocokan dengan data dan pola yang sudah ada. Jika data dan pola cocok dengan keadaan yang tidak normal maka akan dikirim respons tentang aktifitas tersebut.
2.7 Snort Snort merupakan suatu aplikasi open source yang berfungsi untuk memeriksa data-data yang masuk dan melaporkan ke administrator apabila terdapat aktifitas-aktifitas mencurigakan. Snort mampu melakukan analisa real time dan packet logger pada IP network
dan
dapat
menganalisa
protokol
dan
melakukan
pendeteksian variasi penyerangan. Snort pertama kali dibuat dan dikembangkan oleh Martin Roesch, lalu menjadi sebuah open source project (www.snort.org). Snort dapat dioperasikan dalam tiga mode, yaitu: 1.
Paket Sniffer Mode ini digunakan untuk melihat paket-paket yang lewat
pada jaringan dan akan menampilkanya dalam bentuk aliran tak terputus pada terminal. Mode ini bisa dijalankan dengan perintah: 26
Snort -v
: perintah tersebut akan menjalankan Snort dan hanya menampilkan header TCP/IP yang lewat.
Snort -vd
: perintah tersebut akan menginstruksikan Snort agar
menampilkan
data-data
sebagaimana
dalam header TCP/IP yang lewat. Snort –vde
: perintah tersebut akan menginstruksikan Snort agar menampilkan header dari layer data link.
2.
Paket Logger Mode ini digunakan untuk mencatat log dari paket-paket ke
dalam
harddisk.
Mode
ini
digunakan
bilamana
seorang
administrator ingin menyimpan paket-paket data yang lewat ke dalam sebuah file untuk dilihat kemudian. Beberapa perintah yang sering digunakan antara lain: Snort –dev –l /log Snort –dev –l /log 192.168.1.0/24 Snort –dev –i eth0 –L /var/log/snort/snort.log 3.
NIDS deteksi penyusup pada jaringan. Pada mode ini Snort berfungsi untuk mendeteksi serangan
yang dilakukan melalui jaringan komputer. Untuk menggunakan mode ini, diperlukan berbagai konfigurasi pada rules yang akan membedakan sebuah paket normal dengan paket yang membawa serangan. Beberapa perintah untuk menjalankan mode ini antara lain: Snort –d –l /var/log/snort –c /etc/snort/snort.conf Snort
-dev
-h
192.168.50.0/24
/var/log/snort –c /etc/snort/snort.conf 27
host
(no_ip_snort)
-l
2.7.1 Komponen Snort 1.
Snort Rules Rule Snort (Snort Rules) merupakan aturan-aturan atau
kondisi-kondisi yang bertujuan mengklasifikasikan aktifitas-aktifitas jaringan yang normal dan yang mencurigakan. Rules Snort ini merupakan database yang berisi pola-pola serangan berupa signature jenis-jenis serangan. Rules Snort ini harus diupdate secara rutin agar ketika ada suatu teknik serangan yang baru, serangan tersebut dapat dideteksi (Rafiudin, 2010). Rules Snort ini setidaknya terstruktur atas dua bagian utama, yaitu:
Rule Header merupakan bagian rule dimana aksi-aksi rule teridentifikasi seperti Alert, Log, Pass, Activate, Dynamic dan lain-lain.
Rule Options merupakan bagian rule dimana pesan-pesan peringatan (alert messages) diidentifikasi. Sebagai contoh rule pada Snort sebagai berikut:
Gambar 2.3 Rule Snort
Gambar 2.3 merupakan contoh rule Snort. Snort akan menentukan paket data yang lewat dianggap sebagai serangan atau bukan. Paket data akan dibandingkan dengan rules Snort, jika pola 28
paket yang dibandingakan cocok dengan rules Snort, maka paket akan dianggap sebagai serangan. Demikian juga sebaliknya, jika tidak ada dalam rules Snort maka dianggap bukan sebagai serangan. 2.
Snort Engine Snort Engine merupakan program yang berjalan sebagai
daemon proses yang selalu bekerja untuk membaca paket data dan akan membandingkannya dengan rules Snort. 3.
Alert Alert merupakan catatan serangan yang dideteksi oleh Snort
engine. Jika Snort engine mendeteksi adanya serangan, maka Snort engine
akan
mengirimkan
alerts
berupa
log
file.
Untuk
mempermudah analisa biasanya alerts disimpan dalam database, sebagai contoh BASE. Hubungan ketiga komponen IDS tersebut dapat digambarkan seperti berikut:
Gambar 2.4 Hubungan Komponen IDS
2.8 Squid Squid adalah proxy caching untuk web yang mendukung HTTP, HTTPS, FTP dan banyak lagi. Hal ini mengurangi bandwidth dan meningkatkan waktu respon dengan caching dan menggunakan kembali halaman web yang sering diminta. 29
Squid adalah sebuah daemon yang digunakan sebagai proxy server dan web cache. Squid memiliki banyak jenis penggunaan, mulai dari mempercepat server web dengan melakukan caching permintaan yang berulang-ulang, caching DNS, caching situs web dan caching pencarian komputer di dalam jaringan untuk sekelompok komputer yang menggunakan sumber daya jaringan yang sama, hingga pada membantu keamanan dengan cara melakukan penyaringan (filter) lalu lintas. Meskipun seringnya digunakan untuk protokol HTTP dan FTP, Squid juga menawarkan dukungan terbatas untuk beberapa protokol lainnya termasuk Transport Layer Security (TLS), Secure Socket Layer (SSL), Internet Gopher, dan HTTPS. Versi Squid 3.1 mencakup dukungan protokol IPv6 dan Internet Content Adaptation Protocol (ICAP) (Wessels, 2004).
2.8.1 Access Log Access log merupakan file yang berisi daftar permintaan request atau akses dari semua user dalam suatu jaringan. Di dalam file access log ini terdapat informasi-informasi penting tentang semua aktifitas dari user. Informasi seperti timestamp, request website, client address dan lain-lain. Format dari access log terdiri dari 10 kolom dengan masingmasing dipisahkan oleh kolom spasi. Tabel 2.1 Format Access Log
Kolom
Deskripsi
1. Time
Informasi waktu (timestamp) dalam detik 30
UTC, dengan resolusi milidetik 2. Duration
Durasi waktu dalam milidetik transaksi yang menyibukan cache.
3. Client Address
Ip address dari client yang melakukan request.
4. Resut Code
Kode keluaran. Kolom ini terdiri dari dua entri yang dipisahkan tanda slash. Keluaran cache dari sebuah request yang memuat informasi seputar request tersebut dipenuhi atau gagal.
5. Bytes
Ukuran byte data, yaitu jumlah byte data yang dihantarkan ke client
6. Request
Metode request untuk mendapatkan object.
7. URL
Informasi tentang URL yang di-request oleh client.
8. Rfc931
Memuat lookup ident untuk client yang merequest. Lookup ident dapat mempengaruhi performasi, maka konfigurasi default untuk ident_lookups
dinonaktifkan
sehingga
informasi ident tidak akan tersedia dan hanya akan terlihat tanda “-“. 9. Hierarchy code Informasi pada hierarchy terdiri dari tiga jenis, yaitu:
Tag hierarchy akan diawali dengan 31
TIMEOUT_, menunggu
jika timeout terjadi saat reply
ICP
komplit
dari
neighbor.
Sebuah
kode
akan
diberikan
menjeaskan request ditangani,
untuk misal
dengan meneruskan ke sebuah peer atau pergi kembali ke sumbernya.
Ip address atau hostname dimana request telah di-forward (jika terjadi kegagalan). Untuk request yang dikirim ke server asal, maka nilainya adalah IP address server bersangkutan. Untuk request yang dikirim ke cache neighbor, maka nilainya berupa hostname neighbor tersebut.
10. Type
Jenis konten (content type) dari objek, sebagaimana terlihat dari header reply HTTP. Pertukaran ICP yang tidak memiliki content type, maka di-log sebagai “-“, dan beberapa jenis reply memberikan content type “.” Atau bahkan kosong. Terdapat dua kolom atau lebih dalam
acces.log
jika
(log_mine_headers) diaktifkan.
32
opsi
debug