arp spoofing
TRANSCRIPT
TUGAS MATA KULIAH KEAMANAN SISTEM INFORMASI
II5166
ARP SPOOFING METODE PENYERANGAN, DETEKSI DAN
PENGAMANAN
BENI KRISBIANTORO
23210318
MAGISTER TEKNOLOGI MEDIA DIGITAL DAN GAME INSTITUT TEKNOLOGI BANDUNG
2011
ii
DAFTAR ISI
DAFTAR ISI .....................................................................................................................ii
DAFTAR GAMBAR ......................................................................................................... iii
DAFTAR TABEL ............................................................................................................. iv
ABSTRAK ........................................................................................................................ v
BAB I PENDAHULUAN .................................................................................................... 1
1.1 Latar Belakang ....................................................................................................... 1
1.2 Permasalahan ........................................................................................................ 1
1.3 Tujuan .................................................................................................................... 2
BAB II KAJIAN PUSTAKA ................................................................................................ 3
2.1 Protokol TCP/IP ..................................................................................................... 3
2.2 Model Lapisan TCP/IP ........................................................................................... 3
2.3 Pengalamatan .......................................................................................................5
2.4 MAC Address ...................................................................................................... 6
2.5 ARP (Address Resolution Protocol) ...................................................................... 7
BAB III PEMBAHASAN ................................................................................................. 10
3.1 ARP Spoofing ...................................................................................................... 10
3.3 Tujuan ARP Spoofing .......................................................................................... 14
3.4 Metode Deteksi ARP Spoofing ........................................................................... 18
3.5 Pengamanan Terhadap ARP Spoofing ................................................................ 19
3.6 Algoritma untuk Penanggulangan ARP Spoofing............................................... 20
BAB IV KESIMPULAN ................................................................................................... 23
BIBLIOGRAPHY ............................................................................................................24
iii
DAFTAR GAMBAR
Gambar 1. Model Lapisan TCP/IP ................................................................................... 4
Gambar 2. Alamat pada Host ....................................................................................... 7
Gambar 3. ARP Request ............................................................................................... 8
Gambar 4. ARP Response ............................................................................................. 8
Gambar 5. Isi Tabel ARP ............................................................................................... 9
Gambar 7. Isi Tabel ARP pada kondisi tidak terspoofing .............................................. 10
Gambar 8. Isi Tabel ARP ketika terjadi spoofing .......................................................... 10
Gambar 9. Program spoofing ..................................................................................... 12
Gambar 10. Program deteksi terjadinya IP konflik ....................................................... 13
Gambar 11. Program recovery spoofing ....................................................................... 13
Gambar 12. Sniffing dari luar jaringan ......................................................................... 14
Gambar 13. Sniffing dari dalam jaringan ....................................................................... 16
Gambar 14. Pseucode ARP request dan ARP response yang diperbaiki ..................... 22
iv
DAFTAR TABEL
Tabel 1. Paket ARP response yang dirimkan ke host A ................................................. 15
Tabel 2. Paket ARP response yang dikirimkan ke host A .............................................. 16
Tabel 3. Paket ARP response yang dikirim ke host B ................................................... 17
v
ABSTRAK
Protokol ARP berfungsi untuk melakukan resolusi IP address suatu host untuk
didapatkan MAC addressnya. Tabel ARP menyimpan padanan MAC address dan IP
address yang dikenali oleh host pada jaringan. Protokol ARP mempunyai kelemahan
dimana isi tabel ARP dapat dimodifikasi (spoofing) oleh penyerang pada ARP request
dan ARP response karena tidak terdapat mekanisme “authentifikasi”.
ARP spoofing dapat diperkecil serangannya dengan metode yang ada, tetapi tetap
tidak dapat dihilangkan. Untuk itu perlu ada perubahan pada algoritma ARP request
dan ARP response yang dapat mencegah terjadinya manipulasi terhadap isi tabel
ARP.
Keyword: ARP, spoofing, ARP request, ARP response.
1
BAB I PENDAHULUAN
1.1 Latar Belakang
Address Resolution Protocol (ARP) adalah sebuah protokol dalam TCP/IP Protocol
yang digunakan untuk melakukan resolusi IP address ke dalam Media Access Control
(MAC) address. Ketika sebuah host dalam jaringan mencoba untuk mengakses host
lain dengan menggunakan IP address, maka IP address yang dimiliki oleh host yang
dituju harus diterjemahkan terlebih dahulu ke dalam MAC address agar frame-frame
data dapat diteruskan ke tujuan dan diletakkan di atas media transmisi, setelah
diproses terlebih dahulu oleh Network Interface Card (NIC). Hal ini dikarenakan NIC
beroperasi dengan menggunakan alamat fisik yang berupa MAC address daripada
menggunakan alamat logis (alamat IP) untuk melakukan komunikasi data dalam
jaringan. Jika memang alamat yang dituju berada di luar jaringan lokal, maka ARP
akan mencoba untuk mendapatkan MAC address dari antarmuka router lokal yang
menghubungkan jaringan lokal ke luar jaringan (di mana komputer yang dituju
berada).
Setiap host akan menyimpan ARP broadcast request ini kedalam ARP cache. ARP
cache ini akan disimpan di RAM dan besifat sementara. ARP cache ini berisi tabel IP
host serta phisical address komputer. ARP cache akan bertambah jika ARP Request
mendapat jawaban.
Pada jaringan yang terdiri dari banyak host dengan berbagai jenis pengguna, maka
perlu untuk disadari akan munculnya berbagai jenis ancaman dan serangan yang
berakibat kepada tidak terpenuhinya aspek Confidentiality, Integrity dan
Authentication. Salah satu bentuk serangan dalam jaringan adalah berupa ARP
spoofing yaitu dengan memalsukan atau memodifikasi isi dari ARP cache yang ada di
suatu host yang diserang. Dengan melakukan ARP spoofing, penyerang dapat
mengalihkan paket data yang berasal dari host korban untuk dibelokkan ke host
penyerang untuk selanjutnya dilakukan sniffing (penyadapan) terhadap data-data
yang berasal dari host korban.
Pada tulisan kali ini akan dibahas mengenai teknik penyerangan pada kegiatan ARP
spoofing, tindakan pengamanan dan penanggulangannya yang diharapkan dapat
memperkecil kemungkinan terjadinya ARP spoofing.
1.2 Permasalahan
a. Bagaimana teknik serangan ARP spoofing?
2
b. Bagaimana cara mendeteksi ARP spoofing?
c. Bagaimana teknik pengamanan terhadap serangan ARP spoofing?
1.3 Tujuan
a. Memahami teknik dan algoritma untuk melakukan ARP spoofing.
b. Memahami metode untuk mendeteksi terjadinya ARP spoofing di dalam
jaringan.
c. Melakukan teknik pengamanan terhadap serangan ARP spoofing.
3
BAB II KAJIAN PUSTAKA
2.1 Protokol TCP/IP
Internet Protocol Suite (umumnya dikenal sebagai TCP/IP) adalah seperangkat
protokol yang digunakan untuk komunikasi internet dan jaringan lain yang serupa.
Penamaan ini berasal dari dua protokol yang paling penting di dalamnya, yaitu:
Transmission Control Protocol (TCP), dan
Internet Protocol (IP),
Saat ini jaringan berbasis IP merupakan perpaduan dari beberapa perkembangan
yang mulai dimulai pada tahun 1960-an dan 1970-an, yaitu Internet dan LAN (Local
Area Network), yang muncul di pertengahan tahun 1980-an ke-akhir. Lebih lanjut
setelah jaringan TCP/IP dikenal dan banyak digunakan, muncullah berbagai layanan
baru yang dapat berjalan di atas protokol TCP/IP, misalnya email, telnet, ftp, gopher,
dan yang paling phenomenal adalah kedatangan layanan WWW (World Wide Web)
pada awal tahun 1990-an yang membuat banyak tertarik untuk mengakses Internet.
Internet Protocol Suite, seperti banyak protokol suite, dapat dilihat sebagai satu set
layers. Setiap lapisan memecahkan sejumlah masalah yang didalamnya melibatkan
transmisi data, serta menyediakan fungsi layanan yang berkaitan dengan lapisan yang
lebih atas dari beberapa lapisan dibawahnya. Lapisan atas adalah secara logis lebih
dekat dengan pengguna dan menangani data yang lebih abstrak, sementara lapisan
lebih bawah digunakan untuk menerjemahkan data ke dalam bentuk akhir yang dapat
dikirim melalui media jaringan. [7]
Model TCP/IP terdiri dari empat (4) lapisan (menurut RFC 1122). Dari terendah ke
tertinggi, yaitu:
Link Layer
Internet Layer
Transport Layer
Application Layer
2.2 Model Lapisan TCP/IP
Tidak seperti model OSI, model TCP/IP bukanlah standard internasional dan
definisinya dapat berbeda-beda. Namun demikian, sering dipakai sebagai model
praktis untuk mengerti dalam mencari kesalahan pada jaringan Internet. Mayoritas
jaringan Internet memakai TCP/IP. Model TCP/IP dibuat agar dapat lebih mudah
4
dimengerti untuk dipelajari dan diimplementasikan. Model TCP/IP dari jaringan
digambarkan dalam lima lapisan berikut:
Gambar 1. Model Lapisan TCP/IP (Diadopsi dari [8])
Dibandingkan dengan model OSI, maka di lapisan TCP/IP ini lapisan ke lima hingga ke
tujuh tergabung menjadi lapisan paling atas (lapisan aplikasi). Sementara empat
lapisan berikutnya adalah sama.
Model TCP/IP dapat dibandingkan dengan orang yang mengantarkan surat ke sebuah
bangunan di pusat kota. Orang terlebih dulu perlu menggunakan jalan (lapisan Fisik),
meperhatikan lalu-lintas lain di jalan (lapisan Data Link), belok di tempat yang benar
untuk meneruskan perjalanan ke jalan lain dan tiba di alamat yang benar (lapisan
Internet), pergi ke lantai dan kamar yang benar (lapisan Transport), dan akhirnya
memberikannya kepada seorang resepsionis yang bisa mengambil surat tersebut
(lapisan Aplikasi). Saat surat di berikan kepada resepsionis, pengatar bebas untuk
kembali.
Fungsi dari tiap lapisan pada model TCP/IP adalah sebagai berikut:
1. Lapisan aplikasi
Bertanggung jawab untuk menyediakan akses kepada aplikasi terhadap layanan
jaringan TCP/IP. Protokol ini mencakup beberapa protokol, antara lain:
Dynamic Host Configuration Protocol (DHCP),
Domain Name System (DNS),
Hypertext Transfer Protocol (HTTP),
File Transfer Protocol (FTP),
Telnet, Simple Mail Transfer Protocol (SMTP),
5
Simple Network Management Protocol (SNMP), dan masih banyak protokol
lainnya.
Dalam beberapa implementasi stack protokol, seperti halnya Microsoft TCP/IP,
protokol-protokol lapisan aplikasi berinteraksi dengan menggunakan antarmuka
Windows Sockets (Winsock) atau NetBIOS over TCP/IP (NetBT).
2. Lapisan Transport
Berguna untuk membuat komunikasi menggunakan sesi koneksi yang bersifat
connection-oriented atau broadcast yang bersifat connectionless. Protokol dalam
lapisan ini adalah Transmission Control Protocol (TCP) dan User Datagram Protocol
(UDP).
3. Lapisan Internet
Bertanggung jawab untuk melakukan pemetaan (routing) dan enkapsulasi paket-
paket data jaringan menjadi paket-paket IP. Protokol yang bekerja dalam lapisan ini
adalah:
Internet Protocol (IP),
Address Resolution Protocol (ARP),
Internet Control Message Protocol (ICMP), dan
Internet Group Management Protocol (IGMP)
4. Lapisan Phisik
Bertanggung jawab untuk meletakkan frame-frame jaringan di atas media jaringan
yang digunakan. TCP/IP dapat bekerja dengan banyak teknologi transport, mulai dari
teknologi transport dalam LAN (seperti halnya Ethernet dan Token Ring), MAN dan
WAN (seperti halnya dial-up modem yang berjalan di atas Public Switched Telephone
Network (PSTN), Integrated Services Digital Network (ISDN), serta Asynchronous
Transfer Mode (ATM). [8]
2.3 Pengalamatan
Protokol TCP/IP menggunakan dua buah skema pengalamatan yang dapat digunakan
untuk mengidentifikasikan sebuah komputer dalam sebuah jaringan atau jaringan
dalam sebuah internetwork, yakni sebagai berikut:
1. Pengalamatan IP
Berupa alamat logik yang terdiri atas 32-bit (empat oktet berukuran 8-bit) yang
umumnya ditulis dalam format www.xxx.yyy.zzz. Dengan menggunakan subnet mask
yang diasosiasikan dengannya, sebuah alamat IP pun dapat dibagi menjadi dua
bagian, yakni Network Identifier (NetID) yang dapat mengidentifikasikan jaringan
lokal dalam sebuah internetwork dan Host identifier (HostID) yang dapat
6
mengidentifikasikan host dalam jaringan tersebut. Sebagai contoh, alamat
205.116.008.044 dapat dibagi dengan menggunakan subnet mask 255.255.255.000 ke
dalam Network ID 205.116.008.000 dan Host ID 44. Alamat IP merupakan kewajiban
yang harus ditetapkan untuk sebuah host, yang dapat dilakukan secara manual
(statis) atau menggunakan Dynamic Host Configuration Protocol (DHCP) (dinamis).
2. Fully qualified domain name (FQDN)
Alamat ini merupakan alamat yang direpresentasikan dalam nama alfanumerik yang
diekspresikan dalam bentuk <nama_host>.<nama_domain>, di mana <nama_domain>
mengindentifikasikan jaringan di mana sebuah komputer berada, dan <nama_host>
mengidentifikasikan sebuah komputer dalam jaringan. Pengalamatan FQDN
digunakan oleh skema penamaan domain Domain Name System (DNS). Sebagai
contoh, alamat FQDN id.wikipedia.org merepresentasikan sebuah host dengan nama
"id" yang terdapat di dalam domain jaringan "wikipedia.org". Nama domain
wikipedia.org merupakan second-level domain yang terdaftar di dalam top-level
domain .org, yang terdaftar dalam root DNS, yang memiliki nama "." (titik).
Penggunaan FQDN lebih bersahabat dan lebih mudah diingat ketimbang dengan
menggunakan alamat IP. Akan tetapi, dalam TCP/IP, agar komunikasi dapat berjalan,
FQDN harus diterjemahkan terlebih dahulu (proses penerjemahan ini disebut sebagai
resolusi nama) ke dalam alamat IP dengan menggunakan server yang menjalankan
DNS, yang disebut dengan Name Server atau dengan menggunakan berkas hosts
(/etc/hosts atau %systemroot%\system32\drivers\etc\hosts) yang
disimpan di dalam mesin yang bersangkutan. [12]
2.4 MAC Address
MAC address adalah sebuah alamat jaringan yang diimplementasikan pada lapisan
data-link dalam tujuh lapisan model OSI, yang merepresentasikan sebuah node
tertentu dalam jaringan. Dalam sebuah jaringan berbasis Ethernet, MAC address
merupakan alamat yang unik yang memiliki panjang 48-bit (6 byte) yang
mengidentifikasikan sebuah komputer, interface dalam sebuah router, atau node
lainnya dalam jaringan. MAC Address juga sering disebut sebagai Ethernet address,
physical address, atau hardware address.
Dalam sebuah komputer, MAC address ditetapkan ke sebuah NIC yang digunakan
untuk menghubungkan komputer yang bersangkutan ke jaringan. MAC address
umumnya tidak dapat diubah karena telah dimasukkan ke dalam ROM. Beberapa
kartu jaringan menyediakan utilitas yang mengizinkan pengguna untuk mengubah
MAC address, meski hal ini kurang disarankan. Jika dalam sebuah jaringan terdapat
dua kartu jaringan yang memiliki MAC address yang sama, maka akan terjadi konflik
alamat dan komputer pun tidak dapat saling berkomunikasi antara satu dengan
7
lainnya. Beberapa kartu jaringan, seperti halnya kartu Token Ring mengharuskan
pengguna untuk mengatur MAC address (tidak dimasukkan ke dalam ROM), sebelum
dapat digunakan.
Karena MAC address harus unik, maka badan Institute of Electrical and Electronics
Engineers (IEEE) bertugas mengalokasikan blok-blok dalam MAC address. 24 bit
pertama dari MAC address merepresentasikan siapa pembuat kartu tersebut, dan 24
bit sisanya merepresentasikan nomor kartu tersebut. Setiap kelompok 24 bit tersebut
dapat direpresentasikan dengan menggunakan enam digit bilangan heksadesimal,
sehingga menjadikan total 12 digit bilangan heksadesimal yang merepresentasikan
keseluruhan MAC address. [11]
2.5 ARP (Address Resolution Protocol)
ARP merupakan protokol dalam TCP/IP Protocol Suite yang bertanggungjawab untuk
melakukan resolusi IP address ke dalam Media Access Control (MAC) address. ARP
didefinisikan di dalam RFC 826. Ketika sebuah aplikasi yang mendukung protokol
TCP/IP mencoba untuk mengakses sebuah host TCP/IP dengan menggunakan IP
address, maka IP address yang dimiliki oleh host yang dituju harus diterjemahkan
terlebih dahulu ke dalam MAC address agar frame-frame data dapat diteruskan ke
tujuan dan diletakkan di atas media transmisi (kabel, radio, atau cahaya), setelah
diproses terlebih dahulu oleh Network Interface Card (NIC). Hal ini dikarenakan NIC
beroperasi dalam lapisan fisik dan lapisan data-link pada tujuh lapis model referensi
OSI dan menggunakan alamat fisik daripada menggunakan alamat logis (seperti
halnya IP address atau nama NetBIOS) untuk melakukan komunikasi data dalam
jaringan. [6]
Mekanisme dari protokol ARP adalah sebagai berikut:
1. Ketika sebuah host dengan IP address 132.92.121.1 MAC address
00:80:48:E3:D2:69 ingin mengirim data ke host lain dengan IP address
132.92.121.2, maka host tersebut harus mengetahui terlebih dahulu MAC address
host yang dituju.
Gambar 2. Alamat pada Host (Diadopsi dari [6])
2. Jika ternyata MAC address host tujuan ini tidak ada di dalam cache ARP, ARP
bertugas mencari di dalam jaringan (lokal) dengan mengirimkan broadcast ke
8
jaringan. Maka host 132.92.121.1 akan mengirimkan ARP Request menanyakan
MAC address host 132.92.121.2, yang di tandai dengan MAC address
00:00:00:00:00:00 pada MAC address target di pesan ARP Request.
Gambar 3. ARP Request (diadopsi dari [6])
3. Host 132.92.121.2 dengan MAC address 00:80:AD:17:96:34 yang berada di LAN
memonitor permohonan dari host 132.92.121.1. Maka host 132.92.121.2 akan
menjawab dengan ARP responnse, yang memberikan MAC address host
132.92.121.2. Host lain yang tidak sesuai akan diam saja.
Gambar 4. ARP Response (Diadopsi dari [6])
9
4. Informasi MAC address host 132.92.121.2 akan dimasukan ke dalam tabel ARP yang
ada di host 132.92.121.1. Selanjutnya setelah penerima mendapatkan MAC address
host tujuan, paket dapat dikirim ke host tujuan.
Gambar 5. Isi Tabel ARP (Diadopsi dari [6])
10
BAB III PEMBAHASAN
3.1 ARP Spoofing
ARP spoofing atau disebut juga dengan ARP cache poisoning, merupakan metode
hacking dengan memanipulasi atau memalsukan isi dari tabel ARP yang terdapat
pada satu host di dalam jaringan. Protokol ARP berasaskan mutually trust, yang juga
sifatnya adalah “stateles”. Untuk melakukan resolve dalam ARP sebuah host akan
melakukan broadcast ke jaringan. Setiap host dalam jaringan yang tidak menerima
request dapat mengirim paket ARP response secara random. Ketika ARP buffer
menerima ARP response, dalam hal ini tanpa harus ada mekanisme authentikasi
terlebih dahulu, maka akan dilakukan update isi ARP cache secara dinamis dengan
seketika. Mekanisme ARP request dan ARP response yang seperti ini sangat
memungkinkan untuk terjadinya ARP spoofing. [10]
Gambar 6. Isi Tabel ARP pada kondisi tidak terspoofing
Gambar 7. Isi Tabel ARP ketika terjadi spoofing
11
ARP spoofing dapat dilakukan dengan menggunakan bantuan program atau tools
yang ada, misalnya WinArpSpoofer. WinArpSpoofer merupakan program yang
didesain untuk memanipulasi isi dari tabel ARP pada suatu host dalam jaringan lokal.
Keistimewaan program ini adalah dapat digunakan untuk merubah nilai MAC address
router yang ada di dalam tabel ARP host yang mengakibatkan semua paket dapat
membelokkan semua paket dalam jaringan lokal yang seharusnya dilewatkan router
(gateway). Setelah semua paket berhasil dibelokkan dan dikumpulkan, program akan
meneruskan paket-paket tadi ke router. Jika program ini digabungkan dengan paket
sniffer maka bisa didapatkan user ID atau password pengguna dalam jaringan jika
paket-paket tadi mengandung informasi user ID atau password. [1]
1. Class CbuildPacket
CbuildPacket merupakan class yang ada di dalam program WinArpSpoofer yang
digunakan untuk membuat dan mengirim paket ARP ke dalam jaringan.
Fungsi dan fitur yang terdapat dalam dalam program WinArpSpoofer antara lain:
a. Dapat menarik dan mengumpulkan semua paket yang ada dalam jaringan lokal
b. Dapat melakukan scanning dan memperlihatkan semua host yang aktif dalam
jaringan dalam waktu yang singkat
c. Selama melakukan spoofing tabel ARP, dapat bertindak seakan-akan dirinya
berfungsi sebagai gateway lain (atau ip-forwareder) tanpa diketahui oleh
pengguna dalam jaringan
d. Dapat mengumpulkan dan meneruskan paket dengan melakukan filter inbound,
outbound atau keduanya untuk dikirimkan ke Internet
e. Sebuah tabel ARP dapat disusun secara otomatis dalam waktu yang cukup
singkat (sekitar 30 detik), selain itu program ini juga dapat tetap melakukan
spoofing secara terus-menerus dengan periode tertentu
f. Jika misalkan terdapat lebih dari sebuah NIC terpasang pada suatu host, program
ini mampu untuk melakukan scanning dan spoofing terhadap sebuah NIC yang
telah ditentukan.
2. Metode spoofing
a. Melakukan spoofing tabel ARP
ARPrequest: Attacker -> Target with (aIP, AttackerMAC, TargetIP,TargetMAC)
atau,
ARPreply: Attacker -> Target with (aIP, AttackerMAC, TargetIP,TargetMAC)
12
ARPrequest yang berisi informasi yang tidak benar dikirimkan ke host target dan
host target mengetahui bahwa MAC address dari host A adalah MAC address
penyerang berdasarkan isi tabel ARP. Akan tetapi, semua paket yang dikirimkan
oleh target kepada host A ternyata akan dikirimkan ke penyerang.
ARPreply merupakan paket yang digunakan untuk menjaga proses ARP spoofing.
Seperti sebelumnya, target mengetahui bahwa MAC address dari A adalah MAC
address yang dipunyai oleh penyerang berdasar isi tabel ARP. Sebagai akibatnya,
semua paket yang dikirimkan oleh target kepada A akan dikirimkan ke penyerang.
#include <packet32.h> #include <BuildPacket.h> CString Target; // Ethernet Address of Target CString Attacker; // Ethernet Address of Attacker CString Gateway; // Ethernet Address of Gateway CString TargetIP; // IP Address of Target CString AttackerIP; // IP Address of Attacker CString GatewayIP; // IP Address of Gateway CString TargetMAC; // MAC Address of Target CString AttackerMAC; // MAC Address of Attacker CString GatewayMAC; // MAC Address of Gateway . . . void SpoofApp::SpoofTarget() { CBuildPacket *arpPacket = new CBuildPacket; arpPacket.OpenAdapter( AdapterName ); // To open an adapter arpPacket.BuildARP( // To build a ARP packet Attacker, Target, ARPOP_REQUEST // for Transmission on MAC // layer GatewayIP, AttackerMAC, // Spoof IP address of // Gateway to Attacker IP TargetIP, TargetMAC // ); arpPacket.SendPacket(); // Send a packet to network arpPacket.CloseAdapter(); // To close the adapter }
Gambar 8. Program spoofing
(Diadopsi dari [1])
b. Mengetahui apakah terdapat IP address yang sama dalam jaringan
ARPreply: Attacker -> Target with (TargetIP, aMAC, TargetIP,TargetMAC)
atau,
13
ARPrequest: Attacker -> Target with (TargetIP, aMAC, TargetIP,TargetMAC)
Digunakan agar host target mengetahui bahwa terdapat IP address yang sama
dalam jaringan. Jika terjadi maka target host akan memunculkan pesan “terdapat
ip address yang konflik”.
void SpoofApp::CollideTargetIP() { CBuildPacket *arpPacket = new CBuildPacket; arpPacket.OpenAdapter( AdapterName ); // To open an adapter arpPacket.BuildARP( // To build a ARP packet Attacker, Target, ARPOP_REQUEST // for Transmission on MAC // layer TargetIP, AttackerMAC, // Collision because source // TargetIP is dest TargetIP TargetIP, TargetMAC // ); arpPacket.SendPacket(); // Send a packet to network arpPacket.CloseAdapter(); // To close the adapter }
Gambar 9. Program deteksi terjadinya IP konflik
(Diadopsi dari [1])
c. Melakukan pemulihan terhadap spoofing (unspoofing)
ARPreply : Attacker -> Target with (aIP, aMAC, TargetIP,TargetMAC)
Jika paket ARPreply yang benar dikirimkan ke host target, proses spoofing
dihentikan dan tabel ARP host target akan dipulihkan.
void SpoofApp::UnspoofTarget () { CBuildPacket *arpPacket = new CBuildPacket; arpPacket.OpenAdapter( AdapterName ); // To open an adapter arpPacket.BuildARP( // To build a ARP packet Attacker, Target, ARPOP_REPLY // for Transmission on MAC layer GatewayIP, GatewayMAC, // To recover spoofed ARP Table TargetIP, TargetMAC // ); arpPacket.SendPacket(); // Send a packet to network arpPacket.CloseAdapter(); // To close the adapter }
Gambar 10. Program recovery spoofing
(Diadopsi dari [1])
14
3.3 Tujuan ARP Spoofing
Umumnya attacker melakukan ARP spoofing dengan tujuan adalah sebagai berikut:
[4]
1. Sniffing
Sniffing adalah penyerang memposisikan diri di antara dua host yang sedang
berhubungan untuk mendapatkan informasi yang saling dikirimkan. Penyerang harus
menjaga agar komunikasi antara dua host ini tetap berjalan tanpa terputus. Untuk itu
penyerang ketika menerima pesan dari host pengirim harus meneruskan pesan
tersebut ke host penerima secara terus menerus. [2][10]
Ada 2 jenis kegiatan sniffing yang dapat terjadi, yaitu sniffing dari dalam jaringan dan
sniffing dari luar jaringan.
a. Sniffing dari luar jaringan
Diasumsikan terdapat host A dan host B yang terletak pada suatu jaringan yang sama
dan saling berhubungan antara yang satu dengan yang lain. Sementara terdapat host
C yang terletak di luar jaringan sebagaimana terdapat pada Gambar 1.
Gambar 11. Sniffing dari luar jaringan (Sumber [4])
Jika penyerang, dalam hal ini adalah host C, ingin melakukan sinffing terhadap
komunikasi yang terjadi antara host A dan host B maka hubungi harus dilakukan
15
dengan melewati router. Karena arah dari pesan adalah dari dalam jaringan menuju
keluar jaringan maka penyerang harus melakukan modifikasi pada TTL (Time to Live)
dari IP untuk meyakinkan bahwa terdapat cukup waktu untuk mengirimkan paket
respon ke host tujuan. Host C akan mengirimkan paket ARP response ke host A.
Format dari paket ini dapat dilihat pada Tabel 1:
Tabel 1. Paket ARP response yang dirimkan ke host A
Source MAC Address
Source IP Address Destination MAC Address
Destination IP Address
0C-1C-2C-3C-4C-CC 10.1.1.200 0A-1A-2A-3A-4A-AA 10.1.1.100
Ketika host A menerima paket ARP response, maka isi dari buffer (cache ARP) akan
diupdate dengan data yang baru. Begitu host A berhasil dispoof, ketika host A
bermaksud mengirim pesan ke host B, maka tanpa disadari sebenarnya pesan
tersebut akan dikirimkan ke host dengan MAC address dari host C.
ARP merupakan protokol yang hanya dterdapat di dalam jaringan LAN (Local Arena
Network). Untuk kasus ini karena host C berada di luar jaringan yang dipisahkan oleh
router, maka host A tidak dapat mengirimkan pesan keluar router. Host C akan
melakukan update tabel routing milik host A dengan menggunakan protokol ICMP
(Internet Control Message Protocol). Pesan yang tadinya akan dikirimkan ke host B,
pertama kali akan dilewatkan router dan selanjutnya diteruskan ke penyerang.
Dengan demikian host C telah berhasil melakukan sniffing terhadap semua trafik host
A yang ditujukan kepada host B.
b. Sniffing dari dalam jaringan
Di sini diasumsikan host A akan melakukan hubungan dengan host B. Sementara
penyerang, yaitu host C, akan melakukan sniffing terhadap isi pesan komunikasi
antara host A terhadap host B seperti terlihat pada Gambar 2.
16
Gambar 12. Sniffing dari dalam jaringan (Sumber [4])
Berdasar IP address yang diketahui, penyerang C dapat memperoleh MAC address
dari host lain dengan cara mengumpulkan pesan ARP request dan ARP response atau
dengan menggunakan perintah PING yang ada di protokol ICMP. Host akan mengest
NIC (Network Interface Card) pada mode promiscuous dengan fungsi pengirman
ulang.
Host C akan mengeluarkan paket ARP spoofing dan mengirim paket respon ke host A.
Format dari paket ini digambarkan pada Tabel 2:
Tabel 2. Paket ARP response yang dikirimkan ke host A
Source MAC Address
Source IP Address Destination MAC Address
Destination IP Address
0C-1C-2C-3C-4C-CC 10.1.1.200 0A-1A-2A-3A-4A-AA 10.1.1.100
Berkat kelemahan pada protokol ARP, host A akan menerima paket respon yang
dibuat oleh host C dan secara otomatis mengupdate isi buffer ARP. Untuk
menghindari kegagalan pada proses spoofing, maka host C harus mengirimkan paket
ARP reponse secara terus menerus untuk mmempertahankan proses spoofing ini.
Dengan prinsip yang sama, host C mengirimkan paket ARP response ke host B.
Format dari paket ARP response yang dikirimkan ke host B terlihat pada Tabel 3:
17
Tabel 3. Paket ARP response yang dikirim ke host B
Source MAC Address
Source IP Address Destination MAC Address
Destination IP Address
0C-1C-2C-3C-4C-CC 10.1.1.100 0B-1B-2B-3B-4B-BB 10.1.1.200
Komunikasi antara host A dan host B sekarang berhasil disusupi oleh penyerang serta
pernyerang dapat menerima dan meneruskan pesan dari kedua pihak yang
berkomunikasi tanpa diketahui. [2]
2. Intersep
Berdasar kepada sniffing dari dalam atau luar jaringan, jika penyerang C menyamar
sebagai host A dan mengirimkan pesan yang tidak benar kepada host B untuk
menguasai jalur komunikasi, maka host B tidak dapat berkomunikasi dengan host A.
Di sini penyerang akan mengambil alih dan berkomunikasi dengan host A dengan
menggantikan dirinya seakan-akan sebagai host A. Jika sukses maka tujuan host C
melakukan intersep telah tercapai.
3. Malice attacking
Bentuk-bentuk dari serangan antara lain:
a. Penyerang mengirim paket respon ke semua ARP request, kemudian mengisinya
dengan MAC address yang sama yang sebenarnya tidak ada ke dalam paket
respon. Akibatnya host-host menjadi tidak dapat mencari alamat phisik dari host
yang dituju dan komunikasi akan terhenti.
b. Penyerang mengirim paket ARP response yang berisi MAC address yang tidak ada
ke host tujuan yang membuat host tersebut mengupdate isi ARP buffer. Host
akan kehilangan paket respon setelah menerima pesan dari host lain dan tidak
dapat menjaga terjadinya komunikasi.
c. Penyerang mengirim paket ARP response ke semua request, kemudian mengisi
semua paket respon dengan MAC address yang sama yang sebetulnya MAC
address tersebut adalah tidak ada. Akibatnya akan muncul aliran data ke gateway
dari host-host dalam jaringan dan beban dari gateway akan naik secara signifikan.
Jaringan akan padat dan macet sehingga mengakibatkan komunikasi menjadi
terhenti.
18
3.4 Metode Deteksi ARP Spoofing
ARP spoffing merupakan ancaman yang cukup serius dalam keamanan jaringan
terutama karena lalu lintas jaringan dari suatu host dapat dibelokkan ke host lain yang
melakukan serangan untuk didapatkan paket jaringannya. ARP spoofing dapat
dideteksi dengan melakukan pengecekan antara IP address dan MAC address yang
terdapat di dalam ARP buffer apakah sesuai dengan yang seharusnya atau tidak.
Beberapa metode yang dapat digunakan untuk mendeteksi adanya ARP spoofing di
dalam jaringan, antara lain: [4]
1. Metode Echo time
Biasanya ketika sebuah host yang terkena serangan dan mendapatkan ARP palsu
akan didapatkan informasinya oleh penyerang. Agar supaya host yang diserang dapat
terus dipalsukan nilai ARP buffernya, maka penyerang harus terus menerus
memberikan informasi yang berisi informasi ARP palsu kepada host yang diserang.
Dengan demikian maka nilai Echo time dari suatu host yang melakukan serangan
pada jaringan akan menjadi meningkat dibandingkan dengan Echo time ketika
jaringan normal, karena host tersebut cukup sibuk untuk terus-menerus mengirimkan
informasi ‘sampah’ kepada host yang diserangnya.
2. Melakukan pencocokan IP address
Ketika sebuah host menerima ARP request, maka dia akan melakukan pengecekan
terhadap IP address di dalam frame yang direquest dan IP address dari host tersebut.
Jika nilainya adalah sama, maka kemungkinan ada host lain dalam jaringan yang
melakukan spoofing. Host juga dapat mengirimkan paket request untuk mengecek IP
address ini secara berkala, jika ternyata IP address yang diterima adalah frame
response dari IP address host maka kemungkinan juga ada host lain yang melakukan
spoofing.
3. Melakukan analisa terhadap ARP answer
Menurut mekanisme dari ARP spoofing, penyerang yang ingin melakukan pemalsuan ARP harus mengirim suatu report text dari ARP palsu secara periodik dan terus menerus. System dapat dikonfigurasi untuk melakukan wiretap terhadap report text ini dalam jaringan, jika system mendeteksi banyak frame tanpa adanya ARP answer, maka dapat disimpulkan bahwa terlah terjadi pemalsuan ARP.
4. Mendeteksi frame data
Meskipun paket respon ARP yang terkena spoofing tidak meninggalkan alamat dari
penyerang, tetapi frame ARP respon mengandung informasi dari alamat penyerang.
Pada kondisi normal, MAC address sumber dan MAC address tujuan di dalam head
19
dari frame seharusnya sesuai dengan ARP message di dalam frame paket data. Jika
tidak sama maka kemungkinan terjadi spoofing.
5. Pemeriksaan dengan software
Dengan menggunakan software utility untuk melakukan pengecekan kesesuaian
antara IP address dan MAC address, misalnya Ethereal, NetWatch, NETCAM,
ARPwatch dan sebagainya. [4]
3.5 Pengamanan Terhadap ARP Spoofing
Beberapa teknik penanggulangan terhadap serangan ARP spoofing yang dapat
dilakukan antara lain: [4]
1. Metode update ARP cache
Untuk protokol ARP yang menerima ARP response dan melakukan update isi ARP
cache tanpa adanya ARP request, ini akan memungkinkan timbulnya kondisi ARP
spoofing. Sehingga diperlukan rule untuk proses update dari ARP cache. Ditetapkan
bahwa proses urutan penerimaan pada protokol ARP seharusnya adalah: pertama kali
mengirimkan ARP request, baru kemudian dilanjutkan dengan paket ARP response
yang sesuai. Paket nonresponse response atau respon yang tidak sesuai akan
dihapus, sehingga dapat mencegah ARP spoofing secara efisien.
2. Mengeset nilai ARP secara statis
Pada kondisi yang umum, nilai dari ARP cache (padanan IP address dengan MAC
address) akan berubah secara dinamis. Kondisi ARP cache yang berubah secara
dinamis ini memungkinkan untuk terjadinya ARP spoofing. Jika nilai tabel ARP ini diset
secara statis atau manual oleh administrator jaringan, maka paket ARP spoofing tidak
dapat melakukan perubahan terhadap ARP cache. Dengan demikian maka tidak akan
terjadi ARP spoofing. Akan tetapi mengeset table ARP secara manual merupakan
pekerjaan yang cukup memakan waktu dan belum lagi jika terjadi kesalahan nilai yang
diset. Jika konfigurasi jaringan berubah, maka nilai tabel ARP juga harus ikut diubah,
sehingga tidak efisien.
Mengeset ARP statis dari IP address 192.168.0.1 dengan MAC address 00-1e-58-3f-c5-
de dapat dilakukan dengan memberikan perintah sebagai berikut: [5]
arp -s 192.168.0.1 00-1e-58-3f-c5-de
20
3. Eliminasi dari perangkat switch
Menggunakan perangkat switch pada jaringan akan membagi sebuah jaringan yang
secara phisik berukuran besar menjadi segment-segment yang lebih kecil. Ternyata
teknik ini juga dapat digunakan untuk memperkecil kemungkinan terjadinya ARP
spoofing atau setidak-tidaknya mencegah terjadinya ARP spoofing menyebar ke
seluruh jaringan yang besar jika menggunakan perangkat hub.
Pada perangkat switch (terutama switch yang manageable), terdapat kemampuan
untuk melakukan binding IP address dengan MAC address secara statis yang dapat
diset oleh administrator jaringan. Switch akan membandingkan alamat pengirim
dengan informasi yang berkaitan dengan port dari alamat pengirim yang dipunyainya
ketika menerima pesan. Jika ternyata tidak sesuai, maka port tersebut akan diblokir
untuk sementara waktu sampai masalah ini tidak muncul. Fungsi isolasi yang ada di
switch ini mirip dengan yang terdapat pada perangkat router. Dengan karakteristik
perangkat yang seperti ini, maka ARP palsu tidak dapat menyebar dan melintasi
jaringan untuk menyerang host atau server yang terdapat dalam jaringan. [9] [3]
4. Enkripsi data
Berdasarkan kepada terjadinya ARP spoffing, maka tujuan akhirnya adalah berupa
kegiatan sniffing untuk mencuri data yang keluar masuk dari host yang berhasil
dikuasai. Kejadian ini adalah termasuk sulit untuk dilakukan pemeriksaan. Untuk
menghindari terjadinya kebocoran data karena sniffing, maka dapat dilakukan proses
enkripsi pada saat proses pengiriman data di kedua sisi pengirm dan penerima.
Sehingga misalkan ketika paket tersebut dapat disadap oleh penyerang, tetapi
informasi di dalamnya tetap aman dan tidak dapat dibongkar, tanpa mengetahui
kunci atau algoritma dekripsi yang digunakan.
5. Mengecek isi ARP cache secara periodik
Administrator dapat menganalisa ARP request dan ARP response secara periodik,
selanjutnya memeriksa ARP response untuk meyakinkan bahwa tidak dicurigai
kemungkinan terjadi ARP spoofing. Juga secara periodik dilakukan pemeriksaan yang
berkaitan dengan isi ARP cache suatu host, IP address dan MAC address.
3.6 Algoritma untuk Penanggulangan ARP Spoofing
ARP spoofing biasanya dilakukan dengan melakukan modifikasi pada paket ARP
request dan ARP response atau melakukan pengubahan isi dari ARP buffer dengan
tujuan spoofing. Teknik pengamanan terhadap ARP spoofing yang telah dijabarkan
pada bagian di depan mempunyai keterbatasan, sehingga diperlukan teknik yang lain
untuk menghadapi ARP spoofing.
21
Diperlukan adanya perbaikan dari algoritma ARP request dan ARP response yang
selama ini digunakan karena dengan tidak adanya mekanisme authentikasi, terbukti
protokol ARP rawan untuk dilakukan ARP spoofing. Teknik di bawah ini diharapkan
dapat memperbaiki protokol ARP yang sudah ada, dengan berdasarkan pada konsep
ARP request dan ARP response yang diterima untuk mencegah terjadinya
pengubahan pada ARP cache. Dengan demikian diharapkan dapat mencegah
terjadinya spoofing secara lebih efektif.
struct ether_header { u_int8_t ether_dhost[6]; // Destination MAC address of data frame u_int8_t ether_shost[6]; // Source MAC address of data frame u_int16_t ether_type; }; The algorithm is described by natural language and C language if(ntohs(ether_protocol->ether_type)==0x0806) //ARP packet void ARPRequest () { GetIpNetTable() //read ARP cache if(have MAC-IP mapping) { if( in ARP cache IP==arp_protocol ->arp_source_ip_address ) { Send_ARP_Response(); } else if(have the same MAC and in ARP cache source IP != arp_protocol->arp_source_ip_address) { if(ether_protocol-> ether_shost !=arp_protocol-> arp_source_ethernet_address) { Droppacket(); NoSetIpNetEntry(); //didn’t refresh ARP cache; } else { use arp_protocol->arp_source_ip_address obsequent resolution MAC of sender; if(requester’s MAC==arp_protocol->arp_source_ethernet_address) { SetIpNetEntry(); // refresh ARP cache Send_ARP_Response(); } else {
22
Droppacket(); NoSetIpNetEntry(); } } } } else if (haven’t MAC-IP mapping) { if(ether_protocol->ether_shost!=arp_protocol->arp_source_ethernet_address) { Droppacket(); NoSetIpNetEntry(); } else { use arp_protocol->arp_source_ip_address obsequent resolution MAC of sender; if(requester’s MAC==arp_protocol->arp_source_ethernet_address) { SetIpNetEntry(); Send_ARP_Response(); } else { Droppacket(); NoSetIpNetEntry(); } } } } void ARPResponse () { The processing is just as ARPRequest (); }
Gambar 13. Pseucode ARP request dan ARP response yang diperbaiki
(Diadopsi dari [4])
23
BAB IV KESIMPULAN
Dari pembahasan yang telah ditulis, dapat disimpulkan beberapa hal sebagai berikut:
1. Pada ARP spoofing, penyerang biasanya memanfaatkan kelemahan pada
protokol ARP yang mempunyau karakteristik “stateles” untuk menyebarkan ARP
palsu yang dapat mengancam masalah keamanan pada jaringan.
2. Ada beberapa teknik untuk mendeteksi ataupun menanggulangi ARP spoofing
pada jaringan: baik dengan menerapkan kebijakan yang sesuai, dengan bantuan
software utility, maupun dari sisi design jaringan yang baik dengan penggunaan
perangkat keras jaringan yang dapat mengeliminasi terjadinya penyebaran ARP
spoofing.
3. Meskipun demikian, serangan ARP spoofing tetap saja bisa terjadi kapanpun
tanpa dapat dihindari. Melakukan penyempurnaan terhadap protokol ARP dapat
diusulkan agar kelemahan dari protokol ARP terhadap munculnya ARP spoofing
ini dapat dihilangkan.
24
BIBLIOGRAPHY
[1]. CodeGuru (2004, Maret 31), Spoofing the ARP Table of Remote Computers on a
LAN, Available: http://www.codeguru.com/cpp/i-
n/network/basicnetworkoperations/article.php/c6861 (Diakses: 20 Oktober
2011)
[2]. Dood, D., (2011, Sept 15), Network Security: Arp Cache Poisoning and Sniffing
Packets, Available: http://security.sys-con.com/node/1945802 (Diakses: 28
Oktober 2011)
[3]. King, J., Lauerman, K., (2010), ARP Poisoning Attack and Mitigation Techniques,
Available:
http://www.cisco.com/en/US/prod/collateral/switches/ps5718/ps708/white_pap
er_c11_603839.html (Diakses: 4 Desember 2011)
[4]. Liu, Y., Dong, K., Dong, L., & Li, B., Research of the ARP Spoofing Principle and a
Defensive Algorithm, International Journal of Communications, Issue 4, Vol 1, pp.
143-147, 2007
[5]. Microsoft TechNet, (2005, Januari 21), Add a static ARP cache entry, Available:
http://technet.microsoft.com/en-us/library/cc781485%28WS.10%29.aspx
(Diakses: 10 Desember 2011)
[6]. Open Source Telkom Speedy, (2010, Juni 20), Address Resolution Protocol,
Available: http://opensource.telkomspeedy.com/wiki/index.php/ARP (Diakses:
10 Desember 2011)
[7]. Open Source Telkom Speedy, (2011, Agusuts 17), TCP/IP, Available:
http://opensource.telkomspeedy.com/wiki/index.php/Protokol_internet
(Diakses: 10 Desember 2011)
[8]. Stevens, W. R., TCP/IPIllustrated (Volume1: The Protocols), Addison-Wesley, 1994
[9]. Vidya, S., & Bhaskaran, R., Subnet Based Intrusion Detection Scheme for Tracking
down the Origin of Man-In-The-Middle Attack, International Journal of Computer
Science Issues. Vol. 8, Issue 5, No 1, September 2011
[10]. Whalen, S., (2001, April), An Introduction to ARP Spoofing, Available:
http://www.rootsecure.net/content/downloads/pdf/arp_spoofing_intro.pdf
25
[11]. Wikipedia, (2011, Oktober 23), MAC Address, Available:
http://id.wikipedia.org/wiki/MAC_address (Diakses: 10 Desember 2011)
[12]. Wikipedia, (2009, April 23), Transmission Control Protocol/Internet Protocol,
Available:
http://id.wikipedia.org/wiki/Transmission_Control_Protocol/Internet_Protocol
(Diakses: 10 Desember 2011)