Minggu, 26 April 2015

SISTEM KEAMANAN DATABASE


1.      Basis Data (Database)

Basis data adalah suatu koleksi data computer yang terintegrasi, diorganisasikan dan disimpan dengan suatu cara yang memudahkan pengambilan kembali. Integrasi logis dari record-record dalam banyak file ini disebut konsep database yang bertujuan untuk meminimumkan pengulangan data (duplikasi data artinya data yang sama disimpan dalam beberapa file) dan mencapai independensi data (kemampuan untuk membuat perubahan dalam struktur data tanpa membuat perubahan pada program yang memproses data).
Basis data dapat juga diartikan sebagai kumpulan informasi yang disimpan didalam computer secara sistematik sehingga dapat diperiksa menggunakan suatu program computer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil query basis data disebut system management basis data (DBMS). Hirarki data dalam konsep system database yaitu database, file, record dan eleman data.

2.      Keamanan Database

Keamanan merupakan suatu proteksi terhadap pengerusakan data dan pemakaian data oleh pemakai yang tidak punya kewenangan.
Untuk menjaga keaman an Basis Data dapat dengan: (1) Penentuan perangkat lunak database server yang handal (2) Pemberian otoritas kepada user mana saja yang berhak mengakses, serta memanipulasi data-data yang ada.

a.         Tujuan Keamanan Basis Data

·         Secrecy/Confidentiality: Informasi tidak boleh diungkapkan kepada pengguna yang tidak sah. Sebagai contoh, mahasiswa seharusnya tidak diperbolehkan untuk memeriksa nilai siswa lainnya.
·         Integrity: Hanya pengguna yang berwenang harus diizinkan untuk memodifikasi data. Sebagai contoh, siswa mungkin diperbolehkan untuk melihat nilai mereka, namun tidak diperbolehkan (jelas) untuk memodifikasi mereka.
·         Availability: Pengguna yang terdaftar tidak boleh ditolak akses. Sebagai contoh, seorang instruktur yang ingin mengubah kelas harus diizinkan untuk melakukannya


b.     Ancaman terhadap Keamanan Database

·         Interuption: Sumber daya basis data dirusak atau menjadi tidak dapat dipakai (ancaman terhadap availability).
·         Interception: Pemakai atau bagian yang tidak berhak mengakses sumber daya basis data (ancaman secrecy).
·         Modification: Pemakai atau bagian yang tidak berhak tidak hanya mengakses tapi juga merusak sumber daya sistem komputer (ancaman integrity).
·         Fabrication: Pemakai atau bagian yang tidak berhak menyisipkan objek palsu kedalam sistem (ancaman integrity).

c.    Penyalahgunaan Database


  1. Tidak disengaja, jenisnya :
      Kerusakan selama proses transaksi
      Anomali yang disebabkan oleh akses database yang konkuren
      Anomali yang disebabkan oleh pendistribuasian data pada beberapa komputer
      Logika error yang mengancam kemampuan transaksi untuk mempertahankan konsistensi database
  1. Disengaja, jenisnya :
      Pengambilan data / pembacaan data oleh pihak yang tidak berwenang
      Pengubahan data oleh pihak yang tidak berwenang
      Penghapusan data oleh pihak yang tidak berwenang

d.      Tingkatan Penyalahgunaan Database


·         Fisikal à lokasi-lokasi dimana terdapat sistem komputer haruslah aman secara fisik terhadap serangan perusak.
  • Manusia à wewenang pemakai harus dilakukan dengan berhati-hati untuk mengurangi kemungkinan adanya manipulasi oleh pemakai yang berwenang
  • Sistem Operasi à Kelemahan pada SO ini memungkinkan pengaksesan data oleh pihak tak berwenang, karena hampir seluruh jaringan sistem database menggunakan akses jarak jauh.
  • Sistem Database à Pengaturan hak pemakai yang  baik.


3. Pengaturan Keamanan Database

a. Otorisasi :
·         Pemberian Wewenang atau hak istimewa (priviledge) untuk mengakses sistem atau obyek database
·         Kendali otorisasi (=kontrol akses) dapat dibangun pada perangkat lunak dengan 2 fungsi :
·         Mengendalikan sistem atau obyek yang dapat diakses
·         Mengendalikan bagaimana pengguna menggunakannya
·         Sistem administrasi yang bertanggungjawab untuk memberikan hak akses dengan membuat account pengguna.


b. Tabel View :
·         Merupakan metode pembatasan bagi pengguna untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh pengguna.
·         Contoh pada Database relasional,untuk pengamanan dilakukan beberapa level:
1.      Relasi à pengguna diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi
2.      View à pengguna diperbolehkan atau tidak diperbolehkan mengakses data yang terapat pada view
3.      Read Authorization à pengguna diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
4.      Insert Authorization à pengguna diperbolehkan menambah data baru, tetapi tidak dapat memodifikasi data yang sudah ada.
5.      Update Authorization à pengguna diperbolehkan memodifikasi data, tetapi tidak dapat menghapus data.
6.      Delete Authorization à pengguna diperbolehkan menghapus data.
·         Untuk Modifikasi data terdapat otorisasi tambahan :
1.      Index Authorization à pengguna diperbolehkan membuat dan menghapus index data.
2.      Resource Authorization à pengguna diperbolehkan membuat relasi-relasi baru.
3.      Alteration Authorization à pengguna diperbolehkan menambah/menghapus atribut suatu relasi.
4.      Drop Authorization à pengguna diperbolehkan menghapus relasi yang sudah ada.

·         Contoh perintah menggunakan SQL :
GRANT : memberikan wewenang kepada pemakai
Syntax : GRANT <priviledge list> ON <nama relasi/view> TO <pemakai>
Contoh :
GRANT SELECT ON S TO BUDI
GRANT SELECT,UPDATE (STATUS,KOTA) ON S TO ALI,BUDI
REVOKE : mencabut  wewenang yang dimiliki oleh pemakai
Syntax : REVOKE <priviledge list> ON <nama relasi/view> FROM <pemakai>
Contoh :
REVOKE SELECT ON S TO BUDI
REVOKE SELECT,UPDATE (STATUS,KOTA) ON S TO ALI,BUDI
Priviledge list : READ, INSERT, DROP, DELETE, INEX, ALTERATION, RESOURCE

c. Backup data dan recovery :
Backup : proses secara periodik untuk mebuat duplikat ari database dan melakukan logging file (atau program) ke media penyimpanan eksternal.
Jurnaling : proses menyimpan dan mengatur log file dari semua perubahan yang dibuat di database untuk proses recovery yang efektif jika terjadi kesalahan.
Isi Jurnal :
·         Record transaksi
1.      Identifikasi dari record
2.      Tipe record jurnal (transaksi start, insert, update, delete, abort, commit)
3.      Item data sebelum perubahan (operasi update dan delete)
4.      Item data setelah perubahan (operasi insert dan update)
5.      Informasi manajemen jurnal (misal : pointer sebelum dan record jurnal selanjutnya untuk semua transaksi

·         Record checkpoint : suatu informasi pada jurnal untuk memulihkan database dari kegagalan, kalau sekedar redo, akan sulit penyimpanan sejauh mana jurnal untuk mencarinya kembali, maka untuk membatasi pencarian menggunakan teknik ini.

Recovery : merupakan upaya uantuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.


Jenis Pemulihan :
1.      Pemulihan terhadap kegagalan transaksi : Kesatuan prosedur alam program yang dapat mengubah / memperbarui data pada sejumlah tabel.
2.      Pemulihan terhadap kegagalan media : Pemulihan karena kegagalan media dengan cara mengambil atau memuat kembali salinan basis data (backup)
3.      Pemulihan terhadap kegagalan sistem : Karena gangguan sistem, hang, listrik terputus alirannya.

e. Kesatuan data dan Enkripsi :

·         Enkripsi : keamanan data
·         Integritas :metode pemeriksaan dan validasi data (metode integrity constrain), yaitu berisi aturan-aturan atau batasan-batasan untuk tujuan terlaksananya integritas data.
·         Konkuren : mekanisme untuk menjamin bahwa transaksi yang konkuren pada database multi user tidak saling menganggu operasinya masing-masing. Adanya penjadwalan proses yang akurat (time stamping).


4. Teknik Pemulihan Database

Teknik Pemulihan :
1.      defered upate / perubahan yang ditunda : perubahan pada DB tidak akan berlangsung sampai transaksi ada pada poin disetujui (COMMIT). Jika terjadi kegagalan maka tidak akan terjadi perubahan, tetapi diperlukan operasi redo untuk mencegah akibat dari kegagalan tersebut.
2.      Immediate Upadate / perubahan langsung : perubahan pada DB akan segera tanpa harus menunggu sebuah transaksi tersebut disetujui. Jika terjadi kegagalan diperlukan operasi UNDO untuk melihat apakah ada transaksi yang telah disetujui sebelum terjadi kegagalan.
3.      Shadow Paging : menggunakan page bayangan imana paa prosesnya terdiri dari 2 tabel yang sama, yang satu menjadi tabel transaksi dan yang lain digunakan sebagai cadangan. Ketika transaksi mulai berlangsung kedua tabel ini sama dan selama berlangsung tabel transaksi yang menyimpan semua perubahan ke database, tabel bayangan akan digunakan jika terjadi kesalahan. Keuntungannya adalah tidak membutuhkan REDO atau UNDO, kelemahannya membuat terjadinya fragmentasi.


Pertanyaan

1. Salah satu contoh kasus penyalahgunaan database secara tidak sengaja dan secara di sengaja?

Jawab :

  • Contoh kasus penyalahgunaan database secara tidak sengaja. Input data dengan informasi yang tidak benar misalnya menggunakan e-banking via internet kita memasukan no rek atau token yang salah dalam melakukan transaksi.
  • Contoh kasus yang di sengaja. Carding adalah penyusun data informasi pada database untuk mendapatkan hak guna yang bukan miliknya misalkan dengan menggunakan uang cairan secara digital dalam melakukan sebuah transaksi.

EVALUASI KEAMANAN SISTEM INFORMASI

  • pencurian, kerusakan, atau bencana alam, sehingga memungkinkan informasi dan aset informasi tetap diakses dan produktif bagi penggunanya. Istilah keamanan sistem informasi merujuk pada proses dan mekanisme kolektif terhadap informasi yang sensitif dan berharga serta pelayann publikasi yang terlindungi dari gangguan atau kerusakan akibat aktivitas yang tidak sah, akses individu yang tidak bisa dipercaya dan kejadian tidak terencana.
1.2 Tujuan Keamanan Sistem Informasi
Keperluan pengembangan Keamanan Sistem Informasi memiliki tujuan sebagai berikut (Rahmat M. Samik-Ibrahim, 2005):
  • penjaminan INTEGRITAS informasi.
  • pengamanan KERAHASIAN data.
  • pemastian KESIAGAAN sistem informasi.
  • pemastian MEMENUHI peraturan, hukum, dan  bakuan yang berlaku.

2. EVALUASI KEAMANAN SYSTEM INFORMASI
SEBAB MASALAH KEAMANAN HARUS SELALU DIMONITOR :

A.    Ditemukannya lubang keamanan (security hole) yang baru. Perangkat lunak dan perangkat keras biasanya sangat kompleks sehingga tidak mungkin untuk diuji seratus persen. Kadang-kadang ada lubang keamanan yang ditimbulkan oleh kecerobohan implementasi.

B.     Kesalahan konfigurasi. Kadang-kadang karena lalai atau alpa, konfigurasi sebuah sistem kurang benar sehingga menimbulkan lubang keamanan. Misalnya mode (permission atau kepemilikan) dari berkas yang menyimpan password (/etc/passwd di sistem UNIX) secara tidak sengaja diubah sehingga dapat diubah atau ditulis oleh orang-orang yang tidak berhak.

C.     Penambahan perangkat baru (hardware dan/atau software) yang menyebabkan menurunnya tingkat security atau berubahnya metoda untuk mengoperasikan sistem. Operator dan administrator harus belajar lagi. Dalam masa belajar ini banyak hal yang jauh dari sempurna, misalnya server atau software masih menggunakan konfigurasi awal dari vendor (dengan password yang sama).

SUMBER LUBANG KEAMANAN

1. Salah Disain (design flaw)
A. Umumnya jarang terjadi. Akan tetapi apabila terjadi sangat sulit untuk diperbaiki. Akibat disain yang salah, maka biarpun dia diimplementasikan dengan baik, kelemahan dari sistem akan tetap ada.
Contoh :
·         Lemah disainnya algoritma enkripsi ROT13 atau Caesar cipher, dimana karakter digeser 13 huruf atau 3 huruf. Meskipun diimplementasikan dengan programming yang sangat teliti, siapapun yang mengetahui algoritmanya dapat memecahkan enkripsi tersebut.
·         Kesalahan disain urutan nomor (sequence numbering) dari paket TCP/IP. Kesalahan ini dapat dieksploitasi sehingga timbul masalah yang dikenal dengan nama “IP spoofing” (sebuah host memalsukan diri seolah-olah menjadi host lain dengan membuat paket palsu setelah engamati urutan paket dari host yang hendak diserang).

2. Implementasi kurang baik
·         Banyak program yang diimplementasikan secara terburu-buru sehingga kurang cermat dalam pengkodean.
·         Akibat tidak adanya cek atau testing implementasi suatu program yang baru dibuat.
Contoh:
A Tidak memperhatikan batas (“bound”) dari sebuah “array” tidak dicek sehingga terjadi yang disebut out-of-bound array atau buffer overflow yang dapat dieksploitasi (misalnya overwrite ke variable berikutnya).
B. Kealpaan memfilter karakter-karakter yang aneh-aneh yang dimasukkan sebagai input dari sebuah program sehingga sang program dapat mengakses berkas atau informasi yang semestinya tidak boleh diakses.

 3. Salah konfigurasi
Contoh :
·         Berkas yang semestinya tidak dapat diubah oleh pemakai secara tidak sengaja menjadi “writeable”. Apabila berkas tersebut merupakan berkas yang penting, seperti berkas yang digunakan untuk menyimpan password, maka efeknya menjadi lubang keamanan. Kadangkala sebuah komputer dijual dengan konfigurasi yang sangat lemah.
·         Adanya program yang secara tidak sengaja diset menjadi “setuid root” sehingga ketika dijalankan pemakai memiliki akses seperti super user (root) yang dapat melakukan apa saja.

3. PENGUJIAN KEAMANAN SISTEM

Dikarenakan banyaknya hal yang harus dimonitor, administrator dari sistem informasi membutuhkan “automated tools”, perangkat pembantu otomatis, yang dapat membantu menguji atau meng-evaluasi keamanan sistem yang dikelola. Untuk sistem yang berbasis UNIX ada beberapa tools yang dapat digunakan, antara lain:
• Cops
• Tripwire
• Satan/Saint
• SBScan: localhost security scanner

Untuk sistem yang berbasis Windows NT ada juga program semacam, misalnya program Ballista yang dapat diperoleh dari: Selain program-program (tools) yang terpadu (integrated) seperti yang terdapat pada daftar di atas, ada banyak program yang dibuat oleh hackers untuk melakukan “coba-coba”. Program-program seperti ini, yang cepat sekali bermunculuan, biasanya dapat diperoleh (download) dari Internet melalui tempat-tempat yang berhubungan dengan keamanan, seperti misalnya “Rootshell”. (Lihat “Sumber informasi dan organisasi yang berhubungan dengan keamanan sistem informasi” on page 153.) Contoh program coba-coba ini antara lain:
• crack: program untuk menduga atau memecahkan password dengan menggunakan sebuah atau beberapa kamus (dictionary). Program crack ini melakukan brute force cracking dengan mencoba mengenkripsikan sebuah kata yang diambil dari kamus, dan kemudian membandingkan hasil enkripsi dengan password yang ingin dipecahkan. Bila belum sesuai, maka ia akan mengambil kata selanjutnya, mengenkripsikan, dan membandingkan kembali. Hal ini dijalankan terus menerus sampai semua kata di kamus dicoba. Selain menggunakan kata langsung dari kamus, crack juga memiliki program heuristic dimana bolak balik kata (dan beberapa modifikasi lain) juga dicoba. Jadi, jangan sekali-kali menggunakan password yang terdapat dalam kamus (bahasa apapun).
• land dan latierra: program yang dapat membuat sistem Windows 95/NT menjadi macet (hang, lock up). Program ini mengirimkan sebuah paket yang sudah di”spoofed” sehingga seolah-olah paket tersebut berasal dari mesin yang sama dengan menggunakan port yang terbuka (misalnya port 113 atau 139).
• ping-o-death: sebuah program (ping) yang dapat meng-crash-kan Windows 95/NT dan beberapa versi Unix.
• winuke: program untuk memacetkan sistem berbasis Windows

Probing Services

Servis di Internet umumnya dilakukan dengan menggunakan protokol TCP atau UDP. Setiap servis dijalankan dengan menggunakan port yang berbeda, misalnya:

  • • SMTP, untuk mengirim dan menerima e-mail, TCP, port 25
  • • DNS, untuk domain, UDP dan TCP, port 53
  • • HTTP, web server, TCP, port 80
  • • POP3, untuk mengambil e-mail, TCP, port 110


Contoh di atas hanya sebagian dari servis yang tersedia. Di sistem UNIX, lihat berkas /etc/services dan /etc/inetd.conf untuk melihat servis apa saja yang dijalankan oleh server atau komputer yang bersangkutan. Berkas /etc/services berisi daftar servis dan portnya, sementara berkas /etc/inetd.conf berisi servis-servis yang di jalan di server UNIX tersebut. Jadi tidak semua servis dijalankan, hanya servis yang dibuka di /etc/inetd.conf saja yang dijalankan. Selain itu ada juga servis yang dijalankan tidak melalui inetd.conf melainkan dijalankan sebagai daemon yang berjalan di belakang layar.

Pemilihan servis apa saja tergantung kepada kebutuhan dan tingkat keamanan yang diinginkan. Sayangnya seringkali sistem yang dibeli atau dirakit menjalankan beberapa servis utama sebagai “default”. Kadang-kadang beberapa servis harus dimatikan karena ada kemungkinan dapat dieksploitasi oleh cracker. Untuk itu ada beberapa program yang dapat digunakan untuk melakukan “probe” (meraba) servis apa saja yang tersedia. Program ini juga dapat digunakan oleh kriminal untuk melihat servis apa saja yang tersedia di sistem yang akan diserang dan berdasarkan data-data yang diperoleh dapat melancarkan serangan. Untuk beberapa servis yang berbasis TCP/IP, proses probe dapat dilakukan dengan menggunakan program telnet. Misalnya untuk melihat apakah ada servis e-mail dengan menggunakan SMTP digunakan telnet ke port 25.

Program penguji probing (penguji semua port otomatis) :
  • Paket probe untuk sistem UNIX

• nmap
• strobe
• tcpprobe
  • Probe untuk sistem Window 95/98/NT

• NetLab
• Cyberkit
• Ogre

Program yang memonitor adanya probing ke sistem Probing biasanya meninggalkan jejak di berkas log di system anda. Dengan mengamati entry di dalam berkas log dapat diketahui adanya probing. Selain itu, ada juga program untuk memonitor probe seperti paket program courtney, portsentry dan tcplogd.

OS FINGERPRINTING

- Fingerprinting : Analisa OS sistem yang ditujua agar dapat melihat database kelemahan sistem yang dituju.
- Metode Fingerprinting :

Cara yang paling konvensional :
-  Service telnet ke server yang dituju, jika server tersebut kebetulan menyediakan servis telnet, seringkali ada banner yang menunjukkan nama OS beserta versinya.
-  Service FTP di port 21. Dengan melakukan telnet ke port tersebut dan memberikan perintah “SYST” anda dapat mengetahui versi dari OS yang digunakan.
-  Melakukan finger ke Web server, dengan menggunakan program netcat (nc).

Cara fingerprinting yang lebih canggih adalah dengan menganalisa respon sistem terhadap permintaan (request) tertentu. Misalnya dengan menganalisa nomor urut packet TCP/IP yang dikeluarkan oleh server tersebut dapat dipersempit ruang jenis dari OS yang digunakan. Ada beberapa tools untuk melakukan deteksi OS ini antara lain:
      -  nmap
      -  queso

PENGGUNAAN PROGRAM PENYERANG

-  Untuk mengetahui kelemahan sistem informasi adalah dengan menyerang diri sendiri dengan paket-paket program penyerang (attack) yang dapat diperoleh di Internet.
-  Selain program penyerang yang sifatnya agresif melumpuhkan sistem yang dituju, ada juga program penyerang yang sifatnya melakukan pencurian atau penyadapan data.
-  Untuk penyadapan data, biasanya dikenal dengan istilah “sniffer”. Meskipun data tidak dicuri secara fisik (dalam artian menjadi hilang), sniffer ini sangat berbahaya karena dia dapat digunakan untuk menyadap password dan informasi yang sensitif. Ini merupakan serangan terhadap aspek privacy.

Contoh program penyadap (sniffer) antara lain:
·         pcapture (Unix)
·         sniffit (Unix)
·         tcpdump (Unix)
·         WebXRay (Windows)



PENGGUNAAN SISTEM PEMANTAU JARINGAN

Sistem pemantau jaringan (network monitoring) dapat digunakan untuk mengetahui adanya lubang keamaman. Misalnya apabila anda memiliki sebuah server yang semetinya hanya dapat diakses oleh orang dari dalam, akan tetapi dari pemantau jaringan dapat terlihat bahwa ada yang mencoba mengakses
melalui tempat lain. Selain itu dengan pemantau jaringan dapat juga dilihat usaha-usaha untuk melumpuhkan sistem dengan melalui denial of service attack (DoS) dengan mengirimkan packet yang jumlahnya berlebihan. Network monitoring biasanya dilakukan dengan menggunakan protokol SNMP (Simple Network Management Protocol).

Program network monitoring / management :
- Etherboy (Windows), Etherman (Unix)
- HP Openview (Windows)
- Packetboy (Windows), Packetman (Unix)
- SNMP Collector (Windows)
- Webboy (Windows)

Program pemantau jaringan yang tidak menggunakan SNMP :
- iplog, icmplog, updlog, yang merupakan bagian dari paket iplog untuk memantau paket IP, ICMP, UDP.
- iptraf, sudah termasuk dalam paket Linux Debian netdiag
- netwatch, sudah termasuk dalam paket Linux Debian netdiag
- ntop, memantau jaringan seperti program top yang memantau proses di sistem Unix
- trafshow, menunjukkan traffic antar hosts dalam bentuk text-mode \

Pertanyaan seputar materi :

• Apa penyebab dari celah/lubang keamanan ( security hole ), dan apa dampaknya ( positif dan negatif ) ?
= • penyebab : Bisa disebabkan oleh 3 hal, yaitu kesalahan pada desain sistem ataupun algoritma yang digunakan, implementasi algoritma yang kurang baik, dan kesalahan konfigurasi.
• dampak :
 - positif : dapat mengetahui kesalahan atau celah keamanan dari sistem yang ada, sehingga tingkat keamanannya dapat ditingkatkan.
 - negatif : adanya pihak-pihak yang dianggap merugikan yang dapat masuk, mengakses, ataupun merusak sistem atau keamanan sistem yang ada.