Remote Procedure Call
(RPC)
Definisi RPC
adalah suatu protokol yang menyediakan suatu
mekanisme komunikasi 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 RPC mengijinkan pengguna untuk bekerja dengan remote sebagaimana bekerja dengan prosedur lokal.
Protocol 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
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 RPC 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
- ”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.
•
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
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”
• 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.
• 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 1 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.
• 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.
Langganan:
Posting Komentar (Atom)
Posting Komentar