arp spoofing

30
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

Upload: beni-krisbiantoro

Post on 17-Jun-2015

1.028 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: ARP Spoofing

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

Page 2: ARP Spoofing

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

Page 3: ARP Spoofing

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

Page 4: ARP Spoofing

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

Page 5: ARP Spoofing

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.

Page 6: ARP Spoofing

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?

Page 7: 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.

Page 8: 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

Page 9: ARP Spoofing

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),

Page 10: ARP Spoofing

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

Page 11: ARP Spoofing

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

Page 12: ARP Spoofing

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

Page 13: ARP Spoofing

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])

Page 14: ARP Spoofing

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])

Page 15: ARP Spoofing

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

Page 16: ARP 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)

Page 17: ARP Spoofing

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,

Page 18: ARP Spoofing

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])

Page 19: ARP Spoofing

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

Page 20: ARP Spoofing

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.

Page 21: ARP Spoofing

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:

Page 22: ARP Spoofing

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.

Page 23: ARP Spoofing

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

Page 24: ARP Spoofing

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

Page 25: ARP Spoofing

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.

Page 26: 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 {

Page 27: ARP Spoofing

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])

Page 28: ARP Spoofing

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.

Page 29: ARP Spoofing

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

Page 30: ARP Spoofing

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)