DARI SERANGAN BACKDOOR
DENGAN MEMANFAATKAN TRIGGER DAN
SYS_EXEC()
Angga Cahyo Saputro1, Bambang Sugiantoro2
1,2Magister Teknik Informatika STMIK AMIKOM Yogyakarta
3 Jl Ringroad Utara, Condongcatur, Depok, Sleman,
Yogyakarta Indonesia
55283
Email : anggacahyo3@gmail.com1), bambang.sugiantoro@amikom.ac.id2)
Abstrak
Currently, many companies and
institutions that use IT to meet the needs of transaction processing and
reporting process. And then many hackers have sprung up to try to break into
the system that has been built. For that an administrator should always develop
a security system that he possesses that are not easily penetrated by hackers.
One of which must be avoided is the backdoor and metasploit, by utilizing the
trigger is in the database we can create a security system
Keywords: avoid backdoor, to avoid
manipulation of the database, the database hacker
Intisari
Saat ini banyak perusahaan maupun instansi yang memakai IT
untuk memenuhi kebutuhan proses transaksi maupun proses pembuatan laporan. Dan
saat itulah banyak hacker bermunculan untuk mencoba menerobos masuk kedalam
system yang telah dibangun . Untuk itulah seorang administrator harus selalu
mengembangkan sistem keamanan yang dia miliki agar tidak mudah di tembus oleh
para hacker . Salah satu yang harus dihindari adalah backdoor dan metasploit ,
dengan memanfaatkan trigger yang ada di database kita bisa membuat system
keamanan
Kata Kunci : menghindari backdoor , menghindari
manipulasi database , hacker database
1.
Pendahuluan
Pada Jaman modern seperti sekarang peran IT sudah tidak bisa
terbahtahkan lagi , hampir seluruh proses transaksi saat ini sudah diambil alih
oleh IT. Komputerisasi menjadi primadona dalam pengolahan data maupun transaksi
bahkan mencapai dalam pembuatan laporan. Sehingga saat ini hampir seluruh
perusahaan maupun instansi berlomba lomba memanfaatkan IT untuk kepentingan
mereka.Akan tetapi pada kenyataan dilapangan banyak sekali instansi maupun
perusahaan tidak menyeimbangkan sistem yang mereka miliki dengan keamanan
sistem. Hal seperti ini dapat berakibat fatal dikarenakan sekarang sudah mulai
banyak sekali
Banyak
sekali cara untuk menembus sebuah sistem keamanan mulai dari bypass password ,
backdoor , metasploit , xss , shellsock bahkan ddos.Saya akan ambil salah
satunya yaitu backdoor. Script ini bisa disisipkan oleh seorang hacker dengan
berbagai cara , bahkan dari backdoor ini seorang hacker bisa mematikan akses
aplikasi bahkan memanipulasi database yang telah berjalan. Maka dari itu
seorang database administrator harus selalu mengembangkan kemampuan dan
keamanan dari sistem yang dia jaga sehingga bisa mengantisipasi ketika seorang
hacker telah menembus sistem yang dia miliki
2. Landasan
Teori
1. Basis data
Adalah (bahasa Inggris: database), atau sering pula dieja basisdata, adalah kumpulan informasi yang
disimpan di dalam komputer secara sistematik sehingga dapat
diperiksa menggunakan suatu program komputer untuk
memperoleh informasi dari basis data tersebut. Perangkat
lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem
manajemen basis data (database management system, DBMS). Sistem basis
data dipelajari dalam ilmu
2. Keamanan komputer
adalah tindakan pencegahan dari serangan pengguna komputer atau
pengakses jaringan yang tidak bertanggung jawab atau sering kali Keamanan
Komputer atau computer security adalah tindakan pencegahan dan deteksi terhadap
gangguan pada sistem komputer.
3. Virus komputer
Adalah merupakan program komputer yang dapat menggandakan atau
menyalin dirinya sendiri dan menyebar dengan cara menyisipkan salinan dirinya
ke dalam program atau dokumen lain. Virus komputer dapat dianalogikan dengan
virus biologis yang menyebar dengan cara menyisipkan dirinya sendiri ke sel
makhluk hidup.
4. Backdoor
Pada awalnya dibuat oleh para
programer komputer sebagai mekanisme yang mengizinkan mereka untuk memperoleh
akses khusus ke dalam program mereka, seringnya digunakan untuk membenarkan dan
memperbaiki kode di dalam program yang mereka buat ketika sebuah crash akibat
bug terjadi.
3. Rumusan
masalah
Pada
penulisan kali ini saya akan membahas mengenai Bagaimana cara mendeteksi hacker
ketika dia masuk dan memanipulasi database administrator ?
4. PEMBAHASAN
Konsep
Normal dari program database yang saya miliki adalah sebagai berikut
Pada
tabel diatas adalah sebuah konsep dari database user yang saya miliki dimana
admin adalah operator yang bisa memanipulasi data secara resmi dengan hak akses
yang ada di dalam aplikasi , ketika dia melakukan perintah update user maka secara otomoatis tabel user akan berubah sesuai
data yang dinginkan oleh admin, Ketika tabel user berubah maka secara otomatis
perubahan data tersebut akan di simpan dan dicatat ke dalam tabel log_user
Sedangkan
tabel syntax_user adalah sebuah tabel yang digunakan untuk merekam jejak
seorang admin untuk mengetahui dia melakukan apa saja di dalam tabel user
Setelah melakukan update data maka data lama akan tersimpan di
tabel log_user dan rekaman kegiatan admin akan disimpan di tabel Syntax_user
Diatas telah saya jelaskan sebuah alur program yang berjalan ,
ketika admin melakukan perubahan pada tabel user maka kegiatannya akan terekam
dan dicatat oleh 2 tabel yaitu tabel log_user sebagai tempat menyimpan data
perubahan tabel user dan tabel syntax_user dimana dia akan merekam kegiatan
admin di dalam tabel user contohnya sebagai berikut
Sekarang apabila seorang hacker berhasil menembus sebuah
database administrator maka yang terjadi adalah seperti berikut
Bisa
kita lihat ketika seorang hacker menembus sebuah database administrator maka
dia melewati aplikasi dan langsung terkoneksi dengan database , ketika hacker
memanipulasi tabel user maka , kegiatan hacker hanya akan tercatat di tabel
log_user sedangkan syntax_user tidak tercatat.
5. Implementasi
Baiklah
dari data diatas kita telah mengerti bagaimana hacker masuk dan memanipulasi
database , di dalam kasus tersebut terdapat 2 tabel yang merekam jejak seorang
admin ketika memanipulasi data tabel user yaitu tabel log_user dan tabel
syntax_user .
Disini
saya mencoba untuk synkronisasi
antara data di tabel log_user dan data di tabel syntax_user jika keduanya
mengalami kecocokan saat terjadi perubahan data di tabel user maka proses di
lanjutkan tetapi apabila tidak sama maka trigger di tabel log_user akan
menjalankan peintah masukan data serangan . Ketika data serangan terisi maka
secara otomatis tabel tersebut akan menjalan trigger untuk menghubungi
administrator
1. Keadaan Normal
1. Keadaan Diserang
Dari
gambar diatas tertera jelas bahwa ketika hacker berhasil menembus database
administrator dan melakukan update data pada tabel user . Selanjutnya tabel
user akan menympan data perubahan dan melakukan synchronisasi dengan tabel
syntax_user akan tetapi gagal , karena di tabel syntax_user tidak terdapat
rekaman jejak perintah update dai admin sehingga pada kondisi tersebut maka
data akan dicatat di tabel serangan kemudian tabel serangan akan menghubungi
file php untuk mengirim email ke admin
Untuk
bisa melakukan nya disini saya harus membuka sys_exec() di dalam AMPPS dengan
cara menginstal lib_mysqludf_sys ke dalam mysql , caranya http://dev.mysql.com/doc/refman/5.7/en/udf-compiling.html , disitu
terdapat cara instalasi lib_mysqludf_sys ke dalam mysql . Disini saya
akan menjabarkan posisi script database dan file PHP serta trigger yang ada di
dalam database
1)
Tabel user
CREATE TABLE IF NOT EXISTS `user`
( `id` int(11) NOT NULL,
`nama` varchar(50) NOT NULL, `alamat` text NOT NULL,
`pekerjaan` varchar(50) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT
CHARSET=latin1;
CREATE TABLE IF NOT EXISTS
`syntax_user` ( `id` int(11) NOT NULL,
`id_user` int(11) NOT NULL, `id_admin` int(11) NOT NULL,
`table` varchar(20) NOT NULL, `waktu` datetime NOT NULL, `status` varchar(20)
NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
3)
Tabel log_user
CREATE TABLE IF NOT EXISTS
`log_user` ( `id` int(11) NOT NULL,
`nama` varchar(50) NOT NULL, `alamat` text NOT NULL,
`pekerjaan` varchar(50) NOT NULL, `status` varchar(10) NOT NULL, `waktu`
datetime NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
4)
Tabel Serangan
CREATE TABLE IF NOT EXISTS
`serangan` ( `id` int(11) NOT NULL,
`id_data` int(11) NOT NULL, `status` varchar(20) NOT NULL,
`waktu` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
5)
Trigger untuk mencatat perubahan data di Tabel User
DROP TRIGGER IF
EXISTS `masuka`;CREATE DEFINER=`root`@`localhost`
TRIGGER `masuka` AFTER UPDATE ON `user` FOR EACH ROW BEGIN INSERT INTO
`keamanan`.`log_user` VALUES
(old.id,old.nama,old.alamat,old.pekerjaan,'update',NOW());
END
** pengertian
Ketika
terjadi perubahan update data pada tabel user maka perbuahan itu akan
dimasukkan ke dalam tabel log_user
6)
Trigger untuk melakukan synchronisasi tabel Log_user dan
tabel Syntax_user saya letakkan di tabel log_user
DROP TRIGGER IF
EXISTS `ceking`;CREATE DEFINER=`root`@`localhost`
TRIGGER `ceking` AFTER INSERT ON `log_user` FOR EACH ROW BEGIN DECLARE angka
integer DEFAULT 0; set @angka=(SELECT COUNT(*) FROM syntax_user where (waktu BETWEEN new.waktu and
DATE_ADD(new.waktu, INTERVAL 2 SECOND)) and id_user=new.id and STATUS=new.status); if @angka > 0 then INSERT into serangan VALUES (null,new.id,new.status,new.waktu);
end if;
END
** pengertian
Ketika data update dimasukkan ke dalam tabel log_user maka
tabel tersebut akan melakukan pengecekan terhadap tabel syntax_user apakah ada
catatan bahwa admin memang melakukan perubahan data pada tanggal dan waktu
tersebut
7)
Trigger tabel serangan yang digunakan untuk mengirim pesan
ke admin apabila ada serangan
CREATE TRIGGER
`kirimpesan` AFTER INSERT ON `serangan`
FOR EACH ROW BEGIN DECLARE result INT; SET result =
sys_exec('php -f /usr/local/ampps/www/keamanan/kirim.php'); END
** pengertian
Ketika data serangan terisi maka secara otomatis trigger
tersebut akan mengeksekusi file kirim.php
8)
Script untuk kirim.php
<?php
$to = "anggacahyo3@gmail.com.com"; $subject =
"Serangan";
$message = "
<html>
<head>
<title>Mengirim sebuah email</title>
<body> <h1>
Mengirim Sebuah Email</h>
Anda diserang cepat amakan file
anda </html>
";
$headers = "MIME-Version: 1.0" .
"\r\n"; $headers .=
"Content-type:text/html;charset=UTF-8"
. "\r\n"; $headers .= 'From: <@email.com>' . "\r\n";
$headers .= 'Cc: candrasmile@email.com' . "\r\n";
mail($to,$subject,$message,$headers);
?>
5.
Kesimpulan
Dari hasil implementasi diatas
dapat ditarik kesimpulan bahwa kita bisa
membuat
sistem peringatan dini pada sebuah database yang berhasil dimanipulasioleh
seorang hacker, namun pada database yang saya gunakan hanya 1 tabel saja ketika
anda bekerja dengan beberapa tabel anda harus perhatikan waktu interval antara
data yang masuk antara tabel log_user dengan tabel syntax_user
6.
Saran
Sistem keamanan ini berjalan
apabila seorang hacker telah melakukan
manipulasi
database pada salah satu tabel , kedepan saya berharap bisa mengembangkan lebih
jauh lagi apabila seorang hacker baru mengakses database administrator dia
sudah terdeteksi
7. DAFTAR PUSTAKA
A. https://id.wikipedia.org/wiki/Basis_data
B. https://id.wikipedia.org/wiki/Virus_komputer
C. http://dev.mysql.com/doc/refman/5.7/en/udf-compiling.html
D. Jhon D Howard,1995,An analysis of security
incident on the internet,
Pittsburg penyslavia.
E.
Dwianto, D. (2007). Membuka akses firewall melalui
Networks. echo|zine, volume 5
F.
Jeanquier, S. (2006). An analysis of port knocking and
single packet authorization.
G. Information Security
Group : Royal
Holloway College, University
of
London.
No comments:
Post a Comment