Remote Procedure Call
(RPC)
Definisi RPC
adalah suatu protokol yang menyediakan suatu mekanisme
komuikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu
komputer tanpa terasa adanya eksekusi kode sistem yang jauh (remote system).
- RPC digunakan untk membangun aplikasi klien server yang
terdistribusi.
- Didasarkan pada memperluas konsep konvensional dari suatu
prosedur dimana nantinya mempunyai alamat sama dengan lokasi prosedur
dipanggil.
- RPC mengasumsi keberadaan TCP atau UDP untuk membawa pesan
data dalam komniasi suatu program.
- Protokol RPC dibangun diatas protokol eXternal Data
Representasi (XDR) yang merupakan sandar representasi data dalam komunikasi
remote.
- Protokol RPC
mengijinkan pengguna untuk bekerja dengan remote sebagaimana bekerja dengan
prosedur lokal.
Protokol Message RPC
•Didefinisikan dengan menggunakan deskripsi data XDR yang
meliputi struktur, enumerasi, dan union.
•Membutuhkan faktor-faktor pendukung :
1. Spesifikasi yang unik untuk tiap procedure call
2. Respon message yang sesuai untuk tiap message yang
diminta.
3. Otentifikasi klien untuk tiap layanan
Struktur Protokol Message RPC
a. Call Message
• Dilakukan oleh klien, dimana meminta server untuk
mengeksekusi suatu prosedur.
• Terdapat nilai-nilai unsigned integer yangdigunakan untuk
mengidentifikasi prosedur remote, yang diminta:
1. Nomor Program
2. Nomor Versi dari
Program
3. Nomor Prosedur
b. Reply Message
• Dikirimkan oleh server jaringan, bervariasi tergantung
apakah call message yang diminta klien diterima atau ditolak
•Mengandung informasi:
1. RPM mengeksekusi
call message dengan sukses
2. Implementasi
remote tidak sesuai dengan protokol yang digunakan (versi yang lebih tinggi
atau lebih
rendah ditolak)
3. Program remote tidak
tersedia pada sistem remote
4. Program remote
tidak mendukung versi yang diminta klien
5. Nomor prosedur
yang diminta tidak ada
Fitur dalam RPC
1. Batching Calls
Mengijinkan klien
untuk mengirim message calls ke server dalam jumlah besar secara berurutan.
2. Broadcasting Calls
Menijinkan klien
untuk mengirimkan paket data ke jaringan dan menunggu balasan dari network.
3. Callback Procedures
Mengijinkan server
untuk bertindak sebagai klien dan melakukan PRC callback ke proses yang
dijalankan klien.
4. Select Subrutin
Memeriksa deskripsi
suatu file dan messages dalam antrian untuk melihat apakah siap dibaca atau
ditulis, atau ditahan. (mengijinkan server untuk menginterupsi suatu aktivitas)
Otentifikasi RPC
• Otentifikasi adalah proses yang digunakan untuk
mengidentifikasi server dan klien pada RPC.
• Bagian-bagian otentifikasi RPC, yaitu :
1.Protokol
Otentifikasi RPC
2.Otentifikasi NULL
Digunakan pada
sistem dimana pemanggil RPC tidak mengetahui identitasnya sendiri dan server
tidak membutuhkan identitas pemanggil
3.Otentifikasi UNIX
Digunakan pada
prosedur remote dalam sistem UNIX
4.Otentifikasi Data
Encryption Standard
Membutuhkan
keyserv daemon yang harus berjalan baik di sisi server maupun klien.
5. Protokol
Otentifikasi DES
Meliputi protokol
penanganan DES pada proses otentifikasi RPC.
6. Enkripsi
Diffie-Hellman
Digunakan pada
pembuatan kunci publik pada otentifikasi DES dengan 192-bit kunci.
• RPC tidak berhubungan dengan kontrol akses terhadap layanan
individual yang diberikan.
• Subsistem otentifikasi pada paket RPC bersifat open-ended,
yaitu beberapa otentifikasi dapatdiasosiasikan pada RPC klien
Bahasa RPC
• Merupakan bahasa yang dikembangkan dari bahasa XDR dengan
penambahan program definisi.
• Implementasi layanan protokol dan rutin menggunakan command
rpcgen, yang bekorespondensi denga bahasa C.
Definisi dari bahasa RPC, yaitu :
1. Definition
File dengan bahasa
RPC memiliki beberapa definisi, diantaranya adalah : enum, struct, union,
typedef, const, dan program.
2. Structure
Struktur pada
bahasa RPC dideklarasikan seperti pada pendeklarasian struktur dalam bahasa C
3. Union
Union pada bahasa
RPC berbeda dengan bahasa C. Kemiripan lebih ditunjukkan dengan variasi pada
bahasa Pascal
4. Enumeration
Enumerasi pada
bahasa ini memiliki syntax yang sama dengan bahasa C.
5. TypeDef
Tipe Definisi (
Typedef ) pada bahasa ini memiliki syntax yang sama dengan typedef pada bahasa
C.
6. Constant
Constant pada
bahasa ini dapat digunakan jika variabel integer konstant dibutuhkan.
7. Programs
Program RPC
dideklarasikan dengan syntax berikut secara berurutan : programdefiniton,
version-list, version, procedure-list, procedure.
8. Declarations
Dalam
bahasa ini, terdapat empat
jenis tipe deklarasi yaitu
: simple declarations, fixed length array declarations, variable- length declaration, dan pointer
declaration.
Lapisan RPC
1. Lapisan Tertinggi
• Merupakan lapisan yang bersentuhan langsung dengan sistem
operasi, mesin, dan jaringan tempat RPC berjalan.
• Jenis-jenis servis yang digunakan pada layer ini:
Rutin Description
1. rnusers mengembalikan jumlah user pada
sistem remote
2. rusers mengembalikan informasi mengenai
user tertentu
3. hevedisk memeriksa keberadaan disk pada mesin
remote
4. rstats melihat kinerja dari kernel
remote
5. rwall menulis untuk menentukan mesin remote tertentu
6. yppasswd mengupdate password dari user dalam
yellow pages
2. Lapisan Menengah
• Merupakan
implementasi dari RPC sesungguhnya.
• Layer ini merupakan
layer yang digunakan untuk semua program RPC
• Pada layer ini
terdapat rutin-rutin mengenai "registerrpc()", "callrpc",
dan scv run.
- ”registerrpc()
digunakan untuk memperoleh nomor unik dari tiap prosedur identifikasi dalam
tiap sistem.
- ”callrpc()”
digunakan untuk mengeksekusi prosedur remote
3. Lapisan Terendah
• Merupakan lapisan yang mengatur tentang socket dan sistem
call.
• Lapisan ini tidak memberikan data dan servis secara detail
untuk dapat digunakan.
• Umumnya program yang dibuat untuk lapisan ini merupakan
program yang paling efisien.
Model dan Cara Kerja RPC
Model dan Cara Kerja RPC 2
Implementasi Eksploitasi RPC
• Digunakan beberapa tools untuk melakukan eksploitasi pada
RPC.
• Pada contoh kasus ini, implementasi dilakukan pada LAN
dengan host yang menggunakan SO Microsoft Windows XP.
• Tahapan eksekusi Eksploitasi :
1.Deteksi sistem yang
memiliki kelemahan
2.Penyerangan
terhadap sistem tersebut
3.Eksekusi kode pada
sistem yang telah ter-remote
A. Deteksi Sistem
• Tools yang
digunakan pada tahap ini adalah RPCScan v.2.03
• Software ini dapat
mendetaksi sistem operasi yang memiliki kelemahan yaitu pada layanan DCOM
(Distributed Component Object Model)
• Sistem yang masih
mengaktifkan layanan DCOM akan diberi status ”Vulnerable” dan sebaliknya akan
diberi status ”DCOM Disabled”
• Contoh sistem yang
memiliki kelemahan :
B. Eksploitasi Protokol RPC menggunakan Program
• Pada tahap ini
akan dilakukan eksploitasi protokol RPC, agar terjadi kekeliruan penanganan
message dari penyerang (host1) ke sistem yang diserang (host2) sehingga host1
dapat melakukan eksekusi kode pada host2.
• Tools yang
digunakan bernama “Kaht” .Program ini akan mengeksploitasi port 135 dari sistem
yang terserang.
•Contoh penyerangan :
• Gambar diatas menyatakan bahwa host1( IP 192.168.0.87)
telah berhasil masuk kedalam sistem remote pada host2 (IP 192.168.0.13).
Keberhasilan eksploitasi ini juga dapat dilihat pada kondisi port-port yang
terhubung antara host 21 dan host 2.
• Sebelum tereksploitasi, tidak ada port TCP pada host1 yang
terhubung dengan saipapun. Setelah ekploitasi pada host 2 berhasil dilakukan,
maka terlihat bahwa pada port 135 terjadi koneksi / koneksi sedang berjalan dan
tersambung ( Figure 3.3). Dengan demikian, maka pengeksekusian kode pada host2
oleh host1 dapat dilakukan.
• Sampai tahap ini, host1 hanya merupakan user dengan hak
biasa saja.
• Berikutnya adalah implementasi pengeksekusian kode misalnya
membuat account user baru dengan hak administrator.
- Sebelum dan Sesudah
Eksploitasi :
C. Eksekusi Kode
• Tahap ini merupakan tahap eksekusi kode yang
diinginkan. Pada tahap ini host1 dapat melakukan apa saja. Pada contoh kasus
ini akan dicoba untuk membuat sebuah account baru dengan hak seorang admin.
• Setelah masuk pada sistem host2, maka gunakan
perintah berikut untuk mengeksekusi pembuatan user baru : net user tom2 /add.
• Kemudian hak user ini diubah menjadi hak
Administrator : net localgroup Administrators tom2 /add
• Dengan demikian pada host2 akan didapatkan
satu user baru bernama "tom2" dengan hak seorang administrator.
Pencegahan Eksploitasi
RPC
• Beberapa cara pencegahannya:
1. Memblokir port
135, 137, 138 dan 445 pada UDP dan port 135, 149, 445, dan 593 pada TCP melalui
Firewall. Disfungsikan COM Internet Services ( CIS ) dan RPC melalui HTTP yang
menggunakan port 80 dan 443 terutama pada jaringan remote yang menggunakan VPN
( Virtual Private Network ) atau sejenisnya.
2. Gunakan personal
Firewall seperti Internet Connection Firewall.
3. Blokir semua port
sering diekploitasi dengan menggunakan filter IPSEC.
4. Disfungsikan fitur
DCOM pada setiap komputer atau server. Disable DCOM on all affected machines
5. Khusus Sistem
operasi buatan Microsoft, selalu update security patch untuk meningkatkan
keamanan sistem operasi tersebut.
Tidak ada komentar:
Posting Komentar