Mengevaluasi pengamanan data pada aplikasi web
A. Menerapkan
prosedur sistem keamanan akses basis data dalam aplikasi web.
Keamanan pada database merupakan suatu
proteksi terhadap pengrusakan data dan pemakaian data oleh pemakai yang tidak
punya kewenangan.
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.
2.
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.
Tingkatan Pada Keamanan Database
a)
Fisikal : lokasi-lokasi dimana terdapat sistem
komputer haruslah aman secara fisik terhadap serangan perusak.
b)
Manusia : wewenang pemakai harus dilakukan dengan
berhati-hati untuk mengurangi kemungkinan adanya manipulasi oleh pemakai yang
berwenang
c)
Sistem
Operasi : Kelemahan pada SO ini
memungkinkan pengaksesan data oleh pihak tak berwenang, karena hampir seluruh
jaringan sistem database menggunakan akses jarak jauh.
d)
Sistem
Database : Pengaturan hak pemakai
yang baik.
Keamanan Data :
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
:
1.
Mengendalikan
sistem atau obyek yang dapat diakses
2.
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 :
Ø
Relasi : pengguna diperbolehkan
atau tidak diperbolehkan mengakses langsung suatu relasi
Ø
View : pengguna diperbolehkan atau
tidak diperbolehkan mengakses data yang terdapat pada view
Ø
Read Authorization : pengguna
diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
Ø
Insert Authorization : pengguna
diperbolehkan menambah data baru, tetapi tidak dapat memodifikasi data yang
sudah ada.
Ø
Update Authorization : pengguna
diperbolehkan memodifikasi data, tetapi tidak dapat menghapus data.
Ø
Delete Authorization : pengguna
diperbolehkan menghapus data
Untuk Modifikasi data terdapat otorisasi tambahan :
§
Index Authorization : pengguna
diperbolehkan membuat dan menghapus index data.
§
Resource Authorization : pengguna
diperbolehkan membuat relasi-relasi baru.
§
Alteration Authorization : pengguna
diperbolehkan menambah/menghapus atribut suatu relasi.
§
Drop Authorization : pengguna
diperbolehkan menghapus relasi yang sudah ada.
Contoh perintah menggunakan SQL :
a.
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
b.
REVOKE :
mencabut wewenang yang dimiliki oleh
pemakai Syntax : REVOKE <priviledge list> ON <nama relasi/view>
FROM <pemakai> Contoh : REVOKE SELECT ON S FROM BUDI REVOKE SELECT,UPDATE
(STATUS,KOTA) ON S FROM ALI,BUDI Priviledge
list : READ, INSERT, DROP, DELETE, INEX, ALTERATION, RESOURCE
Backup Data Dan Recovery
Backup : proses secara periodik untuk mebuat duplikat
dari 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 :
v
Record transaksi
v
Identifikasi dari record
v
Tipe record jurnal (transaksi start, insert, update,
delete, abort, commit)
v
Item data sebelum perubahan (operasi update dan delete)
v
Item data setelah perubahan (operasi insert dan update)
v
Informasi manajemen jurnal (misal : pointer sebelum dan
record jurnal selanjutnya untuk semua transaksi
Record ceckpoint : 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 untuk mengembalikan basis data ke
keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.
3 Jenis Pemulihan :
Ø
Pemulihan terhadap kegagalan transaksi : Kesatuan
prosedur dalam program yang dapat mengubah / memperbarui data pada sejumlah
tabel.
Ø
Pemulihan terhadap kegagalan media : Pemulihan karena
kegagalan media dengan cara mengambil atau memuat kembali salinan basis data
(backup)
Ø
Pemulihan terhadap kegagalan sistem : Karena gangguan
sistem, hang, listrik terputus alirannya.
Fasilitas
pemulihan pada DBMS :
Ø
Mekanisme backup secara periodik
Ø
fasilitas logging dengan membuat track pada tempatnya
saat transaksi berlangsung dan pada saat database berubah.
Ø
fasilitas checkpoint, melakukan update database yang
terbaru.
Ø
manager pemulihan, memperbolehkan sistem untuk menyimpan
ulang database menjadi lebih konsisten setelah terjadinya kesalahan.
Teknik
Pemulihan :
1. defered
up d ate / 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
Up d a te / 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 dimana pada
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
Kesatuan data dan Enkripsi :
a.
Enkripsi : keamanan data
b. Integritas :metode pemeriksaan dan validasi data (metode
integrity constrain), yaitu berisi aturan-aturan atau batasan-batasan untuk
tujuan terlaksananya integritas data.
c. Konkuren : mekanisme untuk menjamin bahwa transaksi yang
konkuren pada database multi user tidak saling menganggu operasinya
masingmasing. Adanya penjadwalan proses yang akurat (time stamping).
B. Menentukan
jenis sistem pengamanan akses data dalam aplikasi web.
a. Web à
mempresentasikan informasi dalam bentuk teks, gambar, suara, dll dalam bentuk hypertext
dan dapat diakses oleh perangkat lunak yang disebut browser.
b.
Web Browser à program / aplikasi yang digunakan
untuk membuka halaman web
c. Web Server à
perangkat lunak server yang berfungsi menerima permintaan HTTP /HTTPS dari
klien dan mengirimkan hasilnya dalam bentuk halaman web (dokumen HTML)
Kegunaan dari web tidak hanya untuk browsing,
tetapi juga untuk melayani end user melalui antarmuka browser
mereka. Komponen Web menggunakan
berbagai protokol dan layanan untuk memberikan konten yang diinginkan end
user.
Banyak pemilik website tidak
memperhatikan keamanan website karena:
•
menganggap bahwa perusahaan mereka masih kecil dan tidak
mungkin ada hacker yang mau melirik
•
hacker menggunakan tools/software
otomatis untuk menemukan situs yang memiliki kriteria kelemahan-kelemahan
tertentu
Website adalah brand, pintu
depan, bahkan sebagian merupakan wadah/media yang pertama kali menghubungkan
perusahaan dengan customer. Semakin besar interaksi customer dengan
website, makin tinggi kebutuhan keamanan
untuk website tersebut.
Sistem Kerja Web Server
Pada dasarnya tugas web server :
•
Menerima permintaan (request) dari client,
dan
•
Mengirimkan apa yang diminta oleh client (response).
Sistem Kerja Web
1.
User mengakses website berupa URL melalui Web
Browser (media untuk menuju URL yang diakses),
2. Web Browser mengirimkan permintaan
berupa HTTP Request kepada Web Server melalui
layer TCP/IP
3.
Web Server memberikan Web Files yang
di-request (jika ada) melalui HTTP Response
melalui layer TCP/IP,
4. Web Browser menerima Web Files, dan kemudian dikirimkan kepada User berupa Display.
Penanganan Ancaman Pada Web
Mencegah user yang tidak sah untuk
mengakses data sensitif
• Otentikasi:
mengidentifikasi user untuk menentukan apakah mereka adalah orang yang
berwenang
• Akses
kontrol: mengidentifikasi sumber daya yang membutuhkan perlindungan dan siapa
saja yang memiliki akses kepada mereka
Mencegah penyerang mencuri data selama
transmisi
• Enkripsi
(biasanya dengan Secure Sockets Layer)
Mengumpulkan informasi user ID
dari end user ("log in")
•
biasanya melalui dialog / antarmuka browser
•
informasi user ID biasanya mengacu pada username
dan password
Memindahkan informasi user ID ke server web
•
Tidak aman (HTTP)
maupun aman (HTTPS = HTTP melalui SSL)
Verifikasi ID dan password
•
Realms menyimpan username, password, dll, dapat diatur
dengan cara LDAP, RDBMS, dll
•
Validasi: cek di server web jika user ID & password
match dengan yang ada di Realms.
•
Menjaga otentikasi user sebelumnya untuk operasi HTTP
selanjutnya
Secure
Sockets Layer (SSL)
Protokol yang dikembangkan pada tahun
1996 oleh Netscape untuk keamanan transmisi dokumen web pribadi melalui
Internet.
Menggunakan kunci pribadi dan publik
untuk mengenkripsi data yang dikirim melalui koneksi SSL. Dengan
konvensi, URL yang membutuhkan koneksi SSL dimulai dengan https bukan http.
SSL diperlukan ketika :
• Ada
proses login atau sign in (untuk melindungi nama pengguna dan password)
• Mentransmisikan
data sensitif secara online, seperti informasi kartu kredit, dll
• Seseorang
memerlukan privasi dan persyaratan keamanan
Untuk mengaktifkan koneksi SSL, server
membutuhkan sertifikat SSL yang ditandatangani oleh Certificate Authority (CA).
CA memverifikasi ID dari pemilik sertifikat ketika sertifikat SSL dikeluarkan. Setiap
Sertifikat SSL berisi informasi yang unik dan otentik tentang pemilik
sertifikat, seperti ID, lokasi, kunci publik, dan tanda tangan dari CA. Hal ini
menegaskan bahwa Anda benar-benar user yang sah. Sertifikat SSL memungkinkan
enkripsi informasi selama transaksi online dengan cara menggunakan cryptosystem
hybrid.
Types
of Web
Application Security
Ada dua jenis aplikasi untuk keamanan
web :
a. Keamanan
Deklaratif
Keamanan secara otomatis ditangani
oleh sistem, hanya perlu melakukan konfigurasi (pada file web.xml)
Untuk mencegah akses yang tidak sah
•
Menggunakan aplikasi Web deployment descriptor (web.xml)
untuk menyatakan bahwa URL tertentu membutuhkan perlindungan.
• Server secara otomatis meminta user untuk memasukkan username dan password,
melakukan verifikasi, dan melacak user yang telah dikonfirmasi sebelumnya.
Untuk melindungi data yang dikirimkan
melalui jaringan
•
Menggunakan web.xml untuk mengkonfigurasi URL supaya
hanya bisa diakses dengan SSL.
•
Jika user mencoba
mengakses URL yang dilindungi melalui HTTP biasa, server secara otomatis
mengarahkan mereka ke HTTPS (SSL) yang sesuai.
b.
Keamanan Program
Semua keamanan (otentikasi, akses kontrol, dll) dilakukan oleh program yang dibuat
oleh user.
Untuk mencegah akses yang tidak sah
• mengotentikasi user atau memverifikasi bahwa user
telah dikonfirmasi sebelumnya.
Untuk melindungi data yang dikirimkan
melalui jaringan
•
SSL adalah metode umum untuk
melindungi data pada jaringan. Hanya perlu mengarahkan permintaan ke https URL
secara eksplisit dalam program.