Pemrograman Jaringan/Socket dan Eksploitasi Keamanan dengan studi kasus ARP dan ICMP Redirection Games dan Teadrop sebuah Proposal Proyek Akhir oleh R Duddy Yudhiharto - 232 00 071 1. Network/Socket Programming Keperluan akan komunikasi antar komputer membutuhkan suatu skema/aturan komunikasi (protokol) dan implementasinya dalam hardware dan software. Dalam sistem UNIX, disediakan cara untuk berkomunikasi dengan jaringan: socket. Secara umum, socket adalah cara berkomunikasi dengan program lain menggunakan deskriptor file Unix. Dalam Unix, setiap objek dipandang sebagai file dan akses ke objek tersebut menggunakan deskriptor file: suatu nilai intejer yang diasosiasikan dengan suatu file yang dibuka. Socket yang akan dibahas di sini adalah socket internet (DARPA). Socket internet lebih lanjut dibagi lagi dalam dua jenis: stream sockets dan datagram (connectionless) sockets. Keduanya didefinisikan dalam protokol standard yang dibuat oleh DARPA: TCP/IP. Saat ini TCP/IP adalah standard defacto yang digunakan oleh banyak jaringan komputer di dunia. Dari cara pengalamatan (alamat IP), asosiasi socket dengan port, pembukaan koneksi, pertukaran paket, hingga pemutusan koneksi akan dibahas di sini. Semuanya akan menggunakan bahasa C dan raw socket library Linux. 2. Eksploitasi Keamanan Jaringan Dua sumber lubang keamanan jaringan: kesalahan desain dan kesalahan implementasi. Paper ini akan membahas eksploitasi keamanan jaringan melalui manipulasi paket data TCP/IP melalui socket programming untuk masing-masing sumber lubang keamanan. ARP dan ICMP Redirection Game mengeksploitasi kesalahan desain protokol ARP (Address Resolution Protocol) dan ICMP (Internet Common Message Protocol). Akibat darinya adalah serangan DoS (Denial of Service), spoofing, dan pengalihan trafik melalui komputer kita. Pengalihan trafik ICMP memiliki potensi serangan DoS. Akan dibahas mengenai protokol ARP dan ICMP, dan diungkapkan di mana protokol ini akan dieksploitasi. Sebuah program C akan diberikan untuk mengimplementasikan mekanisme serangan itu. Suatu sumber lubang yang berasal dari kesalahan implementasi adalah fragmentasi (pemotongan) paket IP dalam sistem operasi Linux dan Windoz. Ada bukti bahwa sistem tersebut dapat crash ketika mengolah perakitan (reassembly) paket dengan potongan paket IP yang tumpang tindih. Implementasi Linux menunjukkan bahwa panjang potongan memang diperiksa apakah terlalu besar, namun tidak diperiksa apakah terlalu kecil. Contoh program yang akan diberikan akan menggunakan dasar pemrograman socket Unix dan membentuk paket-paket yang akan menyebabkan tereksploitasinya sistem operasi yang rentan. Program hanya digunakan untuk pembuktian lubang keamanan, bukan untuk digunakan menyerang. 3. Penutup Pengetahuan akan pemrograman socket dan implementasi protokol komunikasi jaringan merupakan bekal penting dalam sistem pengamanan jaringan. Dengan membedah protokol dan source code implementasi dalam suatu sistem operasi, dapat segera diketahui lubang keamanan dan bagaimana memperbaikinya (di-patch). 4. Referensi [1] Hall, Brian "Beej", Beej’s Guide to Network Programming, 2001. [2] Volobuev, Yuri, ARP and ICMP Redirection Game, 1997.