Anda di halaman 1dari 11

Database Security

A. Pendahuluan Sebagian besar data sensitif di dunia disimpan dalam sistem database komersial seperti Oracle, Microsoft SQL Server, IBM DB2 dan Sybase - membuat database target semakin favorit bagi para penjahat. Hal ini mungkin menjelaskan mengapa serangan injeksi SQL melonjak 134 persen pada 2008, meningkat dari rata-rata beberapa ribu per hari untuk beberapa ratus ribu per hari menurut laporan baru-diterbitkan oleh IBM.

B. Masalah Saat ini database telah dipergunakan dengan aplikasi di Internet/Intranet ataupun aplikasi yang lainnya. Informasi dari database tersebut sudah sangat dibutuhkan terutama bagi organisasi/perusahaan yang mempunyai banyak customer/pelanggan, dimana perusahaan akan berlomba untuk menyediakan informasi tentang segala kegiatan yang berkenaan dengan organisasi/perusahaan tersebut terhadap customer/pelanggannya. Belakangan ini, permasalahan keamanan database ataupun keamanan yang tidak terkait dengan database tengah membanjiri media dan Internet. Pertama dengan Worm Slammer dan kejahatan paling akhir yang mengakses di atas 8 juta nomor kartu kredit. Ataupun berbagai permasalahan yang terkait dengan database terutama yang berkenaan dengan aplikasi di internet yang menggunakan database untuk melakukan transaksinya. Kasus yang masih segar dalam ingatan kita adalah penyusupan hacker yang mengubah nama-nama partai pada situs KPU, dan masih banyak permasalahan keamanan yang terkait dengan database.

C. Definisi Disini kami akan menjelaskan tentang sistem database dan security database

a.

System Database

Sistem Database adalah sebagai komputerisasi sistem penyimpanan data yang tujuannya untuk memelihara informasi serta agar informasi tersedia pada saat dibutuhkan.

Keuntungan dari sistem database adalah: Mengurangi redundancy Integrity Menghindari inkonsisten Penggunaan data bersama Standarisasi Menyeimbangkan kebutuhan

b.

Keamanan Database Merupakan mekanisme yang menjaga database dari serangan/ancaman yang disengaja maupun tidak sengaja. Pertimbangan keamanan tidak hanya diaplikasikan pada data yang ada dalam database. Pelanggaran terhadap keamanan dapat mempengaruhi bagian lain dari sistem, yang akan memberi akibat balik terhadap database.

D. Keamanan Database terkait dengan:

Pencurian dan penipuan (theft and fraud) Pencurian dan penipuan database tidak hanya mempengaruhi lingkungan database

tetapi juga seluruh perusahaan/organisasi. Keadaan ini dilakukan oleh orang, dimana seseorang ingin melakukan pencurian data atau manipulasi data, seperti saldo

rekening,transaksi,transfer dan lain-lain. Untuk itu fokus harus dilakukan pada kekuatan system agar menghindari akses oleh orang yang tidak memiliki kewenangan.

Kehilangan kerahasiaan (Loss of confidentiality) Suatu data dapat memiliki nilai kerahasiaan, karena data tersebut merupakan sumber

daya yang strategis pada perusahaan, maka pada kasus ini data tersebut harus diamankan dengan memberikan hak akses pada orang tertentu saja.

Kehilangan keleluasaan pribadi (Loss of privacy)

Kehilangan integritas (Loss of integrity) Integritas ini berkaitan dengan akurasi dan kebenaran data dalam database, seperti

data korup.Hal ini akan secara serius mempengaruhi perusahaan/organisasi.

Kehilangan ketersediaan (Loss of availability) Hilangnya ketersediaan berarti data, system, keduanya tidak dapat diakses,servis mati,

yang tentunya secara serius sangat mempengaruhi perusahaan/organisasi. Saat ini banyak perusahaan yang membutuhkan kemampuan system yang aktif 7 x 24 , 7 hari 1 minggu.

E. Ancaman Segala situasi atau kejadian, baik disengaja maupun tidak disengaja yang dapat menimbulkan efek merugikan terhadap system dan berikutnya organisasi .

Meliputi: a. Keamanan Server (Server Security) Perlindungan Server adalah suatu prosespembatasan akses yang sebenarnya pada database dalam server itu sendiri. Menurut Blake Wiedman ini adalah suatu sisi keamanan yang sangat penting dan harus direncanakan secara hati-hati.

b.

Koneksi Database (Database Connections) Setiap server, harus dikonfigurasi untuk hanya memungkinkan alamat IP yang

dipercaya (trusted). (Anda jangan membiarkan setiap orang masuk ke rumah anda dan berbicara dengan anak anda). Dalam hal yang sa ma anda harus tahu secara pasti siapa yang harus diperbolehkan untuk bicara dengan server database anda. Jika hal tersebut adalah back end untuk suatu web server, kemudian hanya alamat (address) web server tersebut yang harus dibiarkan untuk mengakses server database. Jika server database menyediakan

informasi terhadap aplikasi home-based (domestik) yang berjalan pada jaringan internal, selanjutnya server tersebut harus menjawab terhadap alamat dari dalam jaringan internal saja.

c.

Kontrol Akses Tabel (Table Access Control) Saat ini semakin banyaknya aplikasi dinamis menjadi sangat menggoda untuk

melakukan akses yang cepat bahkan update yang langsung tanpa authentifikasi. Jangan pernah berpikir demikian, ini hanya untuk seorang pemalas.Jika kita ingin mengijinkan pemakai dapat mengubah database melalui web page, pastikan anda memvalidasi semua masukan untuk memastikan bahwa inputan benar, terjamin dan aman.Sebagai contoh, pastikan anda menghilangkan semua code SQL agar tidak dapat dimasukan oleh user.Jika anda seorang admin yang membutuhkan koneksi ODBC,pastikan koneksi yang digunakan unik.

d.

Membatasi Akses Database (Restricting Database Access) Kontrol akses table ini adalah salah satubentuk keamanan database yang sering

diabaikan,karena cukup sulit penerapannya. Penggunaan control akses table yang benar dibutuhkan kolaborasi antara system administrator dengan pengembang database. Hal inilah yang sulit dilakukan. Pemberian ijin user untuk mengakses informasi dapat membuat informasi terbuka kepada public. Jika seorang user mengakses informasi apakah akan dilihat menggunakan session yang sama? Atau jika table digunakan sebagai referensi system mengapa ia diberikan ijin selain hak membaca saja.

F. Kelemahan
a.

Vendor bugs/ kelemahan dari pembuat Kelemahan dari pembuat diantaranya adalah buffer overflowsdan kesalahan program

yang lain yang dihasilkandari eksekusi perintah oleh users.Downloading dan menginstal patchesbiasanya digunakan untuk memperbaiki kelemahan dari pembuat.Untuk meyakinkan bahwa kita tidak memiliki kelemahan karena masalah ini maka kita harus terus melihat perkembangan jika ada patches terbaru, secepatnya diinstal Setelah diluncurkannya patche terbaru tersebut.

b.

Poor architecture/ rancangan yang jelek Perancangan yang jelek ini disebabkan karena kurangnya perencanaan yang tepat

terhadap bagaimana aplikasi bekerja. Kelemahan yang seperti ini ialah kelemahan yang paling sulit diperbaiki, karena untuk memperbaikinya dibutuhkan kerja ulang secara keseluruhan oleh pembuat. Sebagai contoh rancangan yang jelek adalah pemanfaatan bentuk enkripsi yang lemah dari vendor.

c.

Misconfigurations/ salah konfigurasi Salah konfigurasi disebabkan tidak tepatnya konfigurasi database. Banyak dari pilihan

konfigurasi databasedapat diset sesuai keamanan yang dibutuhkan. Sebagian dari parameter diset tidak aman secara default.Biasanya bukan suatu masalah sampai dibutuhkan perubahan konfigurasi yang tidak diharapkan. Sebagai contoh pada oracle adalah parameter REMOTE_OS_AUTHENT, secara defaultdiset true yang berarti kita mengijinkan user unauthenticated/ tidak berwenang dapat melakukan koneksi kepada database.

d.

Incorrect usage/ Penggunaan yang tidak pada tempatnya. Penggunaan yang salah terjadi dari pemanfaatan kegunaan/ fungsi perintah dari

program yang diberikan oleh pembuat/ vendor, yang dipakai untuk menembus system. Sebagai contoh SQL INJECTIONyang disalahgunakan.

G. Keamanan vendor-vendor khusus a. Oracle Oracle Corp. (Redwood Shores, Calif.), sambil menyediakan keamanan SSL dan SHTTP , merencanakan menggunakan Java sebagai komponen dasar dari model keamanannya. Perusahaan tersebut membuat Oracle Web Server untuk bekerja secara paling efektif dengan Oracle client seperti Oracle Power Browser dan pemecahan dibuat dengan Developer/2000 development tool.

b.

Sybase Sybase Inc. (Emeryville, Calif.) menyediakan suatu cara yang sedikit elegan untuk

melindungi akses data melalui

Web. Sedikit daripada konsep custom Web framwork

miliknya, keamanan logon yang ada dalam web server hanya melewatkan melalui server database untuk autentikasi, mengambil manfaat dari keamanan native yang ada dalam database.

c.

Informix Informix Corp. (Menlo Park, Calif.), seperti sybase, t erletak pada keamanan login yang

ada pada Web server. Selanjutnya, setiap akses ditentukan melalui saluran login jenis ODBC tradisional, yang melewatkan informasi user dan password melalui konektivitas middleware. Driver-driver khusus yang disebut dengan Universal Web Connect tersedia untuk

menggabungkan keamanan database Informix dengan Netscape maupun Microsoft Web server.

d.

Microsoft Microsoft Corp. (Redmond, Wash.) adalah salah satu dari pemain yang paling aktif

dalam bidang keamanan Internet karena deployment

pencariannya pada pasar kembar

Internet

dan Internet Commerce, keduanya memerlukan keamanan yang ekstensif.

Dengan mengambil peran aktif dalam diskuisi standard keamanan, Microsoft berharap dapat membentuk kebijakan pada manfaatnya.

e.

SQL Injection SQL Injection merupakan cara lain untuk menembus/mengakses data dengan

menggunakan teknik query sesuai dengan database yang digunakan. Namun demikian dari beberapa format database yang paling banyak ditembus dengan menggunakan SQL Injection adalah MSSQL. Pada dasarnya MSSQL juga tidak bisa di-inject begitu saja, hal tersebut bergantung ke pada beberapa hal yang terkait lainnya.

H. Tidakan terhadap ancaman yang ada a. Authorisasi (Authorization)

Otorisasi : Pemberian hak atau wewenang, yang menyebabkan subjek memiliki legitimasi untuk mengakses system atau objek-objek dalam system.

Pembuktian keaslian: Suatu mekanisme yang menentukan apakah user yang mengakses benar-benar user yang dimaksud.

b. View Merupakan hasil dinamis dari satu atau lebih operasi relasional yang dioperasikan pada relasi/table dasar untuk menghasilkan relasi/table lainnya. View merupakan relasi/table

virtual yang tidak benar-benar ada dalam database, tetapi dihasilkan berdasarkan permintaan oleh user tertentu pada saat tertentu.

c. Back-up dan Recovery Back Up:Suatu proses yang secara periodik mengambil salinan database dan log file (dapat juga berupa program) untuk disimpan pada media penyimpanan offline.

d. Integrity Mencegah data dari ketidaksesuaian (invalid) dan mengakibatkan pemberian hasil yang salah.

e. Encryption Penyandian (encoding) data dengan menggunakan algoritma khusus yang membuat data tidak dapat dibaca oleh program tanpa kunci decryption.

f. RAID Technology

Hardware dimana DBMS berjalan dengan fault-tolerant, yang berarti bahwa DBMS harus tetap melanjutkan operasi walaupun terdapat satu komponen hardware yang rusak (fail).

Memberikan komponen.

kesan

memiliki

komponen

redundant (lebih)

yang

dapat

diintegrasikan kedalam sistem kerja walaupun terdapat satu atau lebih kerusakan

Komponen hardware utama yang harus memiliki fault-tolerant meliputi disk drives, disk controllers, CPU, Power supplies, cooling fans.

Disk drives merupakan komponen yang paling mudah diserang dengan jarak yang dekat antar kerusakan dibandingkan dengan komponen hardware lainnya.

I. a.

Contoh Oracle

Untuk menjalankan listener controller dari UNIX, jalankan perintah berikut:

$ORACLE_HOME/bin/lsnrctl

LSNRCTL> help The following operation are available An Asterisk (*) denotes a modifier or extended command: Start Services Save_config Dbsnmp_stop Quit Show* stop version trace dbsnmp_status exit status reload dbsnmp_start Change_password set*

Perhatikan bahwa pada dua perintah diatas ada yang diikuti tanda asterisk (set dan show). Kita dapat melihat tambahan perintah dari command tersebut:

LSNRCTL> help set

Password

rawmode

displaymode

Trc_file Log_file Current_listener Use_plugandplay

trc_directory log_directory connect_timeout save_config_on_stop

trc_level log_status startup_waittime

b.

SQL Injection

Mari kita bagaimana eksploitasi dilakukan SQL Injection yang akan dimodifikasi oleh penyerang adalah sbb:

Select * from my_table where coloum_x = 1 Menjadi

Select * from my_table where coloum_x = 1 UNION select password from DBA_USERS where q=q

Pada contoh tersebut, terlihat sebuah pernyataan dibuat menjadi dua pernyataan. Ada juga cara lain untuk memodifikasi WHERE kreteria untuk update atau delete baris tetapi tidak bermaksud mengupdate atau mendelete.Pada database yang lain kita dapat menambahkan perintah kedua pada query.Oracle tidak mengijinkan hal ini. Tampak q=q diakhir pernyataan, digunakan agar menghasilkan kondisi TRUE.

Anda mungkin juga menyukai