D:\research\paper eii\capability eii v2.wpd

advertisement
Proteksi akses memori dalam perangkat keras menggunakan konsep
capability‐based addressing
Yudi S. Gondokaryono1
1
Sekolah Teknik Elektro dan Informatika ‐ ITB
Contact Person:
Yudi S. Gondokaryono
Sekolah Teknik Elektro dan Informatika
Jalan Ganesha 10 Bandung
Phone: 22‐2500985
Email: [email protected]
Abstrak ‐ Setiap komputer yang terhubung pada jaringan
Internet akan menjadi sasaran serangan berbagai virus,
worm dan "crackers." Berbagai metoda untuk
melindungi komputer dari serangan‐serangan tersebut
selalu berbentuk perangkat lunak. Pada prinsipnya
komputer tidak mempunyai perlindungan pada tingkat
perangkat kerasnya. Penulis mengajukan konsep
capability‐based addressing untuk melindungi akses
memori pada tingkat perangkat keras. Konsep capability
ini telah ada sejak lama. Capability pada prinsipnya
adalah suatu kunci yang memberikan pemegang kunci
akses terhadap objek atau entitas dalam sistem
komputer. Capability pada saat ini dimplementasikan
hanya dalam bentuk perangkat lunak seperti sistem
operasi EROS. Dalam tulisan ini akan dibahas
implementasi konsep capability dalam perangkat keras.
Keyword ‐Arsitektur Komputer, Perangkat Keras,
Keamanan, Capability.
1. Pendahuluan
Pada tanggal 7 Februari 2000, serangan Distributed
Denial of Service (DDoS) dilakukan terhadap Yahoo!.
Yahoo! Tidak dapat melakukan layanan selama beberapa
jam, dan dampaknya dirasakan oleh para pengguna
Internet dan komunitas e‐business [12]. Serangan
semacam DDoS masih terus berlangsung dan meningkat
dengan semkain banyaknya pengguna Internet. Beberapa
situs penting untuk operasional Internet‐pun tidak dapat
dihindari, seperti:
23 Oktober 2003 Serangan terhadap root server Domain
Names System (DNS) yang merupakan
inti dari infrastruktur Internet.
25 Januari 2003 “Slammer worm” menyerang situs‐situs
yang menggunakan Microsoft SQL
Server. Beberapa jaringan commercial
enterprise (seperti Bank of America) dan
seluruh jaringan nasional Korea Selatan
secara efektif tidak berjalan.
Beberapa lembaga keamanan Amerika seperti The
Sans Institute, CERT dan CERIAS telah melakukan studi
yang mengidentifikasikan beberapa kelemahan dalam
perangkat keras dan perangkat lunak yang banyak
dipergunakan di Internet [5]. Serangan‐serangan ini
merupakan suatu tanda bahwa kita harus melakukan
tindakan untuk mengurangi kelemahan‐kelemahan yang
ada. Beberapa hal yang penting seperti yang dilaporkan
oleh The Sans Institute adalah perlunya penelitian dalam
mengamankan protokol IP, mengamankan Operating
System (OS) dan mengamankan perangkat keras.
2. Latar Belakang
Serangan DDoS mempergunakan banyak komputer
sebagai “zombie” untuk menyerang sebuah komputer.
Serangan seperti ini akan efektif bila komputer‐komputer “zombie” tersebar di Internet sehingga seluruh traffic
menyatu ke komputer target dari pelbagai arah. Sebelum
melakukan serangan DDoS, para penyerang mencari
komputer‐komputer yang memiliki kelemahan yang telah
diketahui sebelumnya pada perangkat lunaknya agar
dapat dijadikan komputer “zombie”. Dengan adanya
kelemahan pada perangkat lunak, para penyerang dapat
memasang sebuah program yang dapat dikendalikan dari
jarak jauh untuk melakukan serangan.
Salah satu kelemahan yang sering dipergunakan
untuk mendapat akses pada sebuah komputer adalah
serangan pada memori buffer yang tidak terlindungi.
Buffer memori sering dipergunakan untuk menyimpan
masukkan yang digunakan seperti untuk menyimpan URL
pada web‐browser. Buffer biasanya dialokasikan pada
stack dalam area variabel lokal sebuah fungsi untuk
menerima masukan dan mengolah masukkan tersebut.
PARAMETERS
PARAMETERS
INJECTED CODE
NEW RETURN
ADDRESS
PROCEDURE
STACK FRAME
NEW RETURN
ADDRESS
PROCEDURE
STACK FRAME
INJECTED CODE
OVERFLOW
STACK GROWTH
BUFFER GROWTH
RETURN
ADDRESS
PROCEDURE
STACK FRAME
Virtual page number
BUFFER
Offset
Page Table
PARAMETERS
Page Frame number
STACK ADDRESS
SPACE
STACK ADDRESS
SPACE
STACK ADDRESS
SPACE
Gambar 1 Serangan Buffer Overflow
Jika kita mengetahui ukuran dan lokasi relatif dari
return address dari sebuah fungsi maka kita dapat
mengirim sejumlah data yang berisikan program dan
mengganti harga return address dengan alamat program
tersebut. Metoda penyerangan seperti ini disebut sebagai
buffer overflow attack. Jika serangan buffer overflow ini
tidak terdeteksi atau dihindari, maka penyerang dapat
memasang program untuk melakukan DDoS. Dalam
makalah ini penulis mengkonstrasikan penyelesaian
masalah ini pada melinndungi memori akses agar
serangan semacam buffer overflow dapat dihindarkan.
3. Memori Akses pada Komputer saat ini
Memori akses pada komputer saat ini menggunakan
konsep virtual memori dan penglamatan dengan segmen.
Konsep virtual memori dipergunakan untuk menangani
masalah fisikal memori yang jauh lebih kecil dibandingkan
dengan kebutuhan memori (virtual memori). Sedangkan
konsep pengalamatan dengan segmen dipergunakan
untuk meningkatkan efisiensi penggunaan memori dan
mempermudah program untuk sharing akses memori
dengan program lainnya.
Page Frame number
Offset
Gambar 2 Virtual Memori
3.2. Pengalamatan dengan Segmen
Pada virtual memori dipecah menjadi pages yang
telah didefinisikan oleh perangkat keras. Penggunaan
memori dengan virtual memori sangat tidak efisien
karena besar dari data dan program tidak selalu sama
dengan besarnya page. Untuk membuat penggunaan
memori yang lebih efisien dipergunakan metoda
pengalamatan dengan segmen. Dengan ukuran segmen
yang bervariasi bergantung pada besar data atau program
maka penggunaan memori akan lebih efisien [11].
Implementasi pengalamatan dengan segmen pada
komputer saat ini juga menyertakan kemampuan untuk
memproteksi segmen. Proteksi diberikan dengan
memberikan hak baca atau tulis pada setiap segmen (lihat
Gambar 2).
Virtual Segment number
Offset
Virtual Address
0
3.1 Virtual Memori
Konsep virtual memori dipergunakan agar seolah‐
olah komputer memiliki memory‐space yang lebih besar
dibandingkan dengan memori fisik yang ada. Memori
virtual menggunakan alamat vitual juga (virtual address). Komputer yang menggunakan virtual memori biasanya
memiliki rangkaian Memory Management Unit (MMU)
yang melakukan manajemen virtual memori dan
memetakan virtual memori kedalam fisikal memori.
Metoda yang dipakai untuk manajemen virtual memori
dinamakan paging. Alamat virtual dibagi‐bagi menjadi
pages dan page yang dipetakan kedalam fisikal memori
disebut sebagai page‐frame.
Alamat virtual dibagi menjadi virtual page number
(VPN) dan offset. VPN dipergunakan sebagai index untuk
mencari page frame number (PPN) didalam page‐table
(lihat Gambar 1). Segment
Descriptors
Rights
Segment
Length
Segment Physical
Address
Memory
Segment
N
Process Local Segment Table
Gambar 3 Pengalamatan dengan Segmen
Suatu proses dapat melakukan operasi baca atau
tulis pada sebuah segmen dengan membaca atau menulis
pada alamat virtual. Setiap alamat virtual dibagi menjadi
alamat segmen virtual (VSN) dan offset. VSN
dipergunakan sebagai index untuk mencari Segment
Physical Address (SPA) di dalam tabel segmen. Setiap
akses akan diperiksa validitasnya dan memiliki hak yang
sesuai dengan operasi yang akan dilakukan.
4. Memori Akses menggunakan Capability
Konsep capability diperkenalkan oleh Dennis dan Van
Horn [10]. Capability pada dasarnya adalh sebuah kunci
yang memberikan kemampuan pada pemiliknya untuk
mendapatkan akses pada sebuah objek atau entitas
dalam sebuah komputer. Setiap objek akan diberikan
sebuah alamat (nama) yang tidak dapat ditirukan.
Capability terdiri atas sebuah nama (alamat) dan satu set
hak akses untuk sebuah objek. Capability tidak dibuat
oleh pengguna (user) ataupun diubah oleh suatu
program. Pembuatan, pengubahan dan pemindahan
capability harus diketahui dan dilakukan oleh OS. 4.1 Nama (Alamat) dari Capability Seperti telah dinyatakan diatas setiap capability
harus memiliki nama (alamat) yang unik dan juga unik
selamanya. Jika nama capability dilihat sebagai alamat
dalam komputer, pada saat ini lebar dari alamat dalam
kebanyakan komputer hanya terbatas pada 32 atau 64
bit. Dengan lebar alamat 32 atau 64 bit terlalu kecil untuk
dipergunakan sebagai capability yang mengharuskan
setiap objek memiliki alamat yang unik [8]. Dari konsep ini
terlihat bahwa konsep keamanan selama ini hanya
terfokus pada pengamanan data sedangkan konsep
capability tidak hanya sebatas mengamankan data tetapi
juga mengamankan alamat. Pada penelitian ini jumlah
lebar data yang dipakai adalah lebih besar dari 128 bit.
Dengan asumsi bahwa alamat dibuat setiap 1 ns (1 G
alamat per detik) dan lebar alamat adalah 64 bit, maka
alamat akan habis dalam 584.94 tahun. Dengan data ini
maka diambil kesimpulan bahwa tidak mungkin
menggunakan alamat dibawah 64 bit. Dengan asumsi
yang sama dan lebar alamat adalah 128 bit maka alamat
akan habis dalam 1.07 x 1022 tahun.
4.2 Pengalamatan berbasis Capability
Pengalamatan berbasis capability amat dekat konsep
pengalamatan dengan segmen. Perbedaannya adalah
alamat dalam capability adalah unik, capability memiliki
jangkauan alamat global, proteksi yang diberikan bukan
hanya terhadap data tetapi juga terhadap alamat.
Beberapa penelitian sebelumnya sudah mencoba untuk
membuat implementasi dari capability tetapi selalu
terhalang dengan ketidak mampuan perangkat keras
untuk mengimplementasi alata yang sangat lebar [18].
Konsep capability‐pun selama ini telah diperbaiki agar
menjadi lebih aman dengan mengintegrasikan enkripsi
dan bilangan acak pada capability seperti yang
diungkapkan oleh Gong, et.al [13]. Prosesor terakhir yang
memiliki capability adalah Intel iAPX 432. Prosesor ini
tidak pernah menjadi komersial karena akses memorinya
sangat lambat [6]. Intel dalam mengimplementasikan
capability dalam prosessornya menggunakan terlalu
banyak overhead. Penulis dalam penelitian ini
mengungkapkan suatu arsitektur capability dengan
mengintegrasikan berbagai hasil penelitian sebelumnya
dan menambahkan:
• Kemampuan untuk memiliki alamat yang sangant
besar (> 128 bit)
• Metoda Autentikasi capability
• Menggunakan hak baca, tulis, dan execute
• Memeriksa batas awal dan akhir seguan segmen
capability
Adapun arsitektur pengalamatan berbasis capability
yang dihasilkan dalam penelitian ini dalpat dilihat dalam
gambar 4.
OpCode
Local Object
Name
Offset
Capability
List
Global Object Name
Rights
"TLB"
Permission Check
(Access Policy)
Authentication
Check
Capability
Valid
Capability
Physical Base
Address
Global
Virtual
Address
Limit
Limit Check
Valid
Access
Alllowed
Physical Address
Gambar 4. Pengalamatan berbasis Capability
5. Kesimpulan
Metoda pengalamatan berbasis capability
memberikan suatu metoda pengalamatan yang bersifat
global. Setiap objek yang akan diakses memliki alamat
yang unik. Dengan menggunakan metoda pengalamatan
berbasis capability, pemrograman yang menggunakan
shared memory akan jauh lebih mudah. Penggunaan
jumlah bit yang sangat besar sebagai alamat (>128 bit)
memungkinkan implementasi capability. Dengan
teknologi VLSI saat ini jumlah bit yang besar sudah dapat
diimplementasikan dengan mudah. Komputer yang
menggunakan metoda pengalamtan berbasis capability
akan memiliki proteksi dalam mengakses memori.
Sehingga akan mengurangi serangan‐serangan yang
mengandalkan kelemahan pada perangkat lunak yang
tidak didukung dengan perangkat keras yang aman.
6. Acknowledgement
Penelitian ini tidak mungkin dilakukan tanpa dukungan Dr.
Eric Johnson dari New Mexico State University. 7. Referensi
[1]
Abramson, D.A. and Rosenberg J. "The Micro‐Architecture
of a Capability‐Based Computer". Proceeding of ACM 19th
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
International Conference on Microprogramming, New
York, 1986
Abramson, D.A. and Rosenberg J. "MONADS‐PC‐‐‐a
capability‐based workstation to support software
engineering". Proceedings of the 18th Hawaii
International Conference on System Sciences, volume 1,
pages 222‐‐31. IEEE, 1985. Carter, Nicholas P., Dally, William J., and Keckler, Stephen
W. "Hardware support for fast Capability addressing".
Proceedings sixth international conference on
Architectural support for programming languages and
operating systems, 1994, Pages 319 ‐ 327.
Chow, Randy, Kao, I‐Lung. "An Extended Capability
Architecture to Enforce Dynamic Access Control Policies".
Proceeding of the 12th Annual Computer Security Applications Conferences (ACSAC), 1996.
CERT/CC, SANS Institute, and CERIAS. "Consensus
roadmap for defeating distributed denial of service
attacks", February 2000. A Project of the Partnership for
Critical Infrastructure Security, http://www.sans.org/ddos
roadmap.htm. Colwell, Robert P., Gehringer, Edward F., and Jensen, E.
Douglas. "Performance Effects of Architectural Complexity
of the Intel 432". ACM Transactions on Computer
Systems, Vol. 6, No. 3., August 1988.
Computer Emergency Response Team (CERT). "Denial of
Service Attacks",
http://www.cert.org/tech_tips/denial_of_service.html.
Chase, Jeffrey S., Levy Henry M., Barker‐Harvey, Miche,
and Lazowska, Edward D. How to use a 64‐bit virtual
address space. Technical Report 92‐03‐02, Department of
Computer Science and Engineering, University of
Washington, March 1992. Denning, Perter J. "Fault Tolerant Operating Systems",
Computing Surveys, Vol. 8, No. 4, December 1976.
Dennis, Jack B. and Van Horn, Earl C. "Programming
Semantics for Multiprogrammed Computations".
Communication of the ACM 9. 3 (March 1966), 143‐155.
Fabry, R. "Capability‐based addressing". Communications
of the ACM 17, 7 (July 1974), 403‐412.
Garber, Lee. "Denial of Service Attacks Rip the Internet".
IEEE Computer, Volume 33, Number 4, April 2000, pages
12‐17.
Gong, L., "A Secure Identity‐Based Capability System".
IEEE Symposium on Security and Privacy, May 1989, pp.
56‐64. Johnson, Howard L., Koegel, John F., and Koegel, Rhonda
M. "A Secure Distributed Capability Based System".
Proceedings of the 1985 ACM annual conference on The
range of computing : mid‐80's perspective: mid‐80's
perspective,1985.
Kain, Richard Y. and Landwehr, Carl E. "On Access
Checking in Capability‐Based Systems". IEEE Transactions
on Software Engineering, Vol. SE13, No.2, February, 1987.
Karger, Paul A. and Herbert, Andrew J. "An Augmented
Capability Architecture to Support Lattice Security and
Traceability of Access", Proceeding of the 1984
Symposium on Security and Privacy. Pages 2‐12. Oakland,
CA, April 1984. IEEE.
Lampson, Butler W. and Sturgis, Howard E. "Reflections
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
on an Operating System Design". Communications of the
ACM 5. 19 (May 1976), 251 ‐ 265.
Levy, H. M. Capability‐Based Computer System. Digital
Press, 1984.
McClure, Stuart, Scambray, Joel, and Kurtz, George.
Hacking Exposed Network Security Secrets and Solutions.
Osborne/McGraw‐Hill, 1999.
Mullender S., and Tanenbaum, A., "The Design of a
Capability‐based Operating System". The Computer
Journal, 1986.
Myers, G. And Buckingham, B. "A Hardware
Implementation of Capability‐Based Addressing". ACM
Operating Systems Review, October 1980.
Shapiro, Jonathan S., Smith, Jonathan M., and Farber,
David J. "EROS: a fast capability system". Proceedings of
the 17th ACM symposium on Operating systems
principles, 1999, Pages 170 ‐ 185.
Snyder L., "Formal Models of Capability‐Based Protection
Systems", IEEE Transactions on Computer, Vol. C3, No. 3,
March, 1981.
Trajkovic, L., Lau, F., Rubin, H., and Smith, M.H.
"Distributed Denial of Service Attacks". Proceeding of
2000 IEEE International Conference on Systems, Man, and
Cybernetics, Nashville, USA, October 2000.
Vochteloo, Jerry, Russel, Stephen, and Heiser, Gernot.
"Capability‐based protection in a persistent global virtual
memory system". Proceeding of the 3rd IWOOOS, pages
108‐115, December 1993. D. Moore, G. Voelker, and S. Savage. "Inferring Internet
Denial‐of‐Service Activity". Proc. 10th USENIX Sec. Symp,.
2001.
T. Tsai, A. Baratloo, and N. Singh. "Transparent Run‐Time
Defense Against Stack Smashing Attacks". Proceedings of
the {USENIX} Annual Technical Conference, 2000.
Crispan Cowan and Calton Pu and Dave Maier and
Jonathan Walpole and Peat Bakke and Steve Beattie and
Aaron Grier and Perry Wagle and Qian Zhang and Heather
Hinton. "{StackGuard}: Automatic Adaptive Detection and
Prevention of Buffer‐Overflow Attacks". Proc. 7th USENIX
Security Conference, pages 63‐78, 1998.
Xianjun Geng and Andrew B. Whinston. "Defeating
Distributed Denial of Service Attacks". IEEE IT Pro,
July/August 2000.
Matt Berger and Nancy Weil. "Net backbone withstands
major attack". IDG News Service, October 23, 2002. INTEL CORPORATION. "iAPX 432 Architecture and System
Concepts". Intel Corporation, Santa Clara, California,
1980.
Download