• Tidak ada hasil yang ditemukan

BAB 11 Keamanan WEB - JENI Web Programming Bab 11 Keamanan WEB

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 11 Keamanan WEB - JENI Web Programming Bab 11 Keamanan WEB"

Copied!
10
0
0

Teks penuh

(1)

BAB 1 1

Ke a m a n a n W EB

1 1 .1 Pe n da h u lu a n

Pem bahasan t ent ang web program m ing belum lengkap apabila belum m em pelaj ari t ent ang keam anan dalam aplik asi. Fasilit as yang m elim pah, fungsi yang sangat banyak t idak akan berart i apabila aplikasi kit a gagal dalam hal pengam anan dat a.

Pada bab ini, kit a akan m em pelaj ari bagaim ana m engam ankan kom unikasi ant ara server dan client m elalui SSL. Kit a j uga akan m em pelaj ar i t ent ang 10 celah keam anan pada aplikasi web dan m em pelaj ar i bagaim ana cara m enanggulanginya.

1 1 .2 SSL

SSL t elah m enj adi st andar de fact o pada kom unit as unt uk m engam ankan kom unikasi ant ara client dan server. Kepanj angan dari SSL adalah Secure Socket Layer; SSL adalah sebuah layer pr ot ocol yang berada ant ara layer TCP/ I P st andar dengan prot ocol di at asnya yait u applicat ion- level prot ocol sepert i HTTP. SSL m engij inkan server unt uk m elakukan aut ent ikasi dengan client dan selanj ut nya m engenkripsi kom unikasi.

Pem bahasan t ent ang operasi SSL pada bab ini bert uj uan agar kit a m enget ahui penggunaan t eknologi ini unt uk m engam ankan kom unikasi ant ara server dengan client .

1 1 .2 .1 M e n ga k t ifk a n SSL pa da a plik a si.

Unt uk m enget ahui keunt ungan SSL pada aplikasi, kit a perlu m elakukan konfigurasi server unt uk m enerim a koneksi SSL. Pada servlet cont ainer yang berbeda akan berbeda pula cara unt uk m elakukannya. Disini kit a akan belaj ar t ent ang m elakukan konfigurasi Sun Applicat ion Server 8.1

1 1 .2 .2 Ce r t ifica t e s

Salah sat u bagian yang perlu kit a konfigurasi unt uk m em bangun kom unikasi SSL pada server adalah sebuah securit y cert ificat e. Bisa kit a bayangkan sebuah cert ificat e dalam hal ini sepert i sebuah pasport : dim ana m em iliki inform asi- inform asi pent ing pem ilik yang bisa diket ahui oleh orang lain. Sert ifikat t ersebut biasanya disebarkan oleh Cert ificat ion Aut horit ies ( CA) . Sebuah CA m irip sepert i passport office : dim ana CA bert ugas unt uk m elakukan validasi sert ifikat pem ilik dan m enandai sert ifikat agar t idak dapat dipalsukan.

(2)

Apabila pada suat u kasus dit em ukan t idak adanya cert ificat e dari CA, sebuah cert ificat e t em porer ( sem ent ara) dapat dibuat m enggunakan t ools dari Java 1.4 SDK. Perlu Anda cat at bahw a client biasanya t idak m elanj ut kan t ransaksi yang m em erluk an t ingkat kem anan yang t inggi dan m enem ukan bahwa cert ificat e yang digunakan adalah cert ificat e yang kit a buat .

1 1 .2 .3 M e m bu a t ce r t ifica t e pr iva t e k e y

Unt uk m enyederhanakan perm asalahan ini, akan lebih m udah bila dengan m elakukan operasi dim ana cert ificat e disim pan. Hal ini dapat dit em ukan do direkt ori % APP_SERVER_HOME% / dom ains/ dom ain1/ config.

Buka direct ory m enggunakan com m and line. Selanj ut anya panggil com m and berikut ini:

keytool -genkey -alias keyAlias -keyalg RSA -keypass keypassword -storepass storepassword

-keystore keystore.jks

keyAlias – adalah alias at au I D dim ana cert ificat e ini akan m enunj uk kepada siapa. • keypassword – adalah password unt uk privat e key yang digunakan dalam proses

enkripsi.

• st orepassword – adalah password yang digunakan unt uk keyst ore.

Dalam hal ini m ungkin sedikit m em bingungkan dim ana dibut uhkan dua passw ord unt uk m em buat sebuah cert ificat e. Unt uk m engat asinya, bisa kit a ingat bahw a key yang dim asukkan disebut j uga keyst ore. Keyst ore dapat m enyim pan sat u at au beberapa key. Keypassword m erupakan password dari privat e key yang akan digunakan pada cert ificat e, sedangkan st orepassword m erupakan password dari key yang ada di dalam keyst ore. Pada direkt ori yang sedang kit a operasikan sudah m em iliki sebuah keyst ore file dengan sebuah password, sehingga kit a perlu m enset nilai st orepass m enj adi : changeit .

Password ini dapat digant i m enggunakan keyt ool sepert i ini:

keytool -keystore keystore.jks -storepass newPassword

1 1 .2 .4 M e m bu a t ce r ifica t e

Set elah kit a selesai m em buat key yang akan digunakan oleh cerit ificat e sekarang kit a dapat m em buat file cert ificat e it u sendiri:

keytool -export -alias keyAlias -storepass storepassword -file certificateFileName -keystore keystore.jks

(3)

1 1 .2 .5 M e n ga t u r ce r t ifica t e

Agar aplik asi server dapat m engenali cert ificat e yang sudah kit a buat , kit a perlu m enam bahkannya pada daft ar dari t rust ed cert ificat es. Server m em ilik i file bernam a cacert s.j ks yang di dalam nya t erdapat cert ificat es. Kit a dapat m enam bahkan cert ificat e kit a dengan m enggunakan keyt ool berikut ini:

keytool -import -v -trustcacerts -alias keyAlias

-file certificateFileName -keystore cacerts.jks -keypass keypassword

1 1 .2 .6 M e m bu a t se cu r e H TTP list e n e r

Set elah kit a sudah berhasil m em buat cert ificat e dan m eregist ernya unt uk aplikasi server, sekarang kit a akan m em buat sebuah HTTP list ener yang dapat digunakan unt uk m em buat kom unikasi yang am an.

(4)
(5)

Pada screen diat as m erupakan hasil dari klik dari New but t on dengan disert ai cont oh nilai yang sudah t erisi.

Lakukan rest art pada server. Konfigurasi baru kit a dapat kit a coba dengan m engakases alam at :

ht t ps: / /serverAddress:list enerPort/ index.ht m l

(6)

Open Web Applicat ion Securit y Proj ect ( OWASP) adalah proj ect open source yang dibangun unt uk m enem ukan penyebab dari t idak am annya sebuah soft ware dan m enem ukan cara m enanganinya. Ada 10 celah kem anan aplikasi web yang dit em ukan dan rekom endasi m ereka t ent ang m enanganinya sebagai sebuah st andard keam anan m inim al dari aplik asi web.

Berikut ini adalah 10 celah t ersebut dan cara agar kit a dapat m engat asi m asalah t ersebut .

I . Unva lida t e d in pu t

Sem ua aplikasi web m enam pilkan dat a dari HTTP request yang dibuat oleh user dan m enggunakan dat a t ersebut unt uk m elakukan operasinya. Hacker dapat m em anipulasi bagian-bagian pada request ( query st ring, cookie inform at ion, header) unt uk m embypass m ekanism e keam anan.

Berikut ini t iga j enis penyerangan yang berhubungan dengan m asalah ini: • Cross sit e script ing

• Buffer overflows • I nj ect ion flaws

Ada beberapa hal yang dapat dicat at ket ika m enangani validasi pada aplikasi kit a. Pert am a, adalah t idak baik pada aplikasi web unt uk percaya pada client side script ing. Script t ersebut biasanya m enghent ikan form subm ission apabila t erdapat sebuah input yang salah. Akan t et api, script t ersebut t idak dapat m encegah hacker unt uk m em buat HTTP request nya sendiri yang t erbebas dari form . Menggunakan client side validat ion m asih bisa m em buat aplikasi w eb yang m udah diserang.

Kedua, beberapa aplikasi m enggunakan pendekat an " negat ive" ( negat ive approach) pada validasinya : Aplikasi m encoba m endet eksi j ika t erdapat elem en yang berbahaya pada request param et er. Masalah dari j enis pendekat an ini adalah hanya bisa m elindungi dari beberapa serangan yait u : hanya serangan yang dikenali oleh validat ion code yang dicegah. Ada banyak cara dim ana hacker dapat m embypass keam anan dari unvalidat ed input ; Masih ada kem ungkinan dim ana cara yang baru t idak dikenali oleh aplikasi dapat m embypass validasi dan m elakukan perusakan. Adalah cara yang lebih baik unt uk m enggunakan pendekat an " posit ive" ( posit ive approach) yait u : m em bat asi sebuah form at at au pola unt uk nilai yang diij inkan dan m em ast ikan input t ersebut sesuai dengan form at t ersebut .

I I . Br ok e n Acce ss Con t r ol

Banyak aplikasi yang m engkat egorikan user- usernya ke dalam role yang berbeda dan level yang berbeda unt uk berint eraksi dengan cont ent yang dibedakan dari kat egori- kat egori t ersebut . Salah sat u cont ohnya, banyak aplikasi y ang t erdapat user role dan adm in role : hanya adm in role yang diij inkan unt uk m engakses halam an khusus at au m elakukan act ion adm inist rat ion.

(7)

• I nsecure I ds – Beberapa sit e m enggunakan id at au kunci yang m enunj uk kepada user at au fungsi. I D dapat j uga dit ebak, dan j ika hacker dapat m udah m enebak I D dari user yang t eraut orisasi, m aka sit e akan m udah diserang.

• File perm issions – Kebanyakan w eb dan aplikasi server percaya kepada ext ernal file yang m enyim pan daft ar dari user yang t erot orisasi dan resources m ana saj a yang dapat dan/ at au t idak dapat diakses. Apabila file ini dapat dibaca dari luar, m aka hacker dapat m em odifikasi dengan m udah unt uk m enam bahkan dirinya pada daft ar user yang diij inkan.

Langkah- langkah apa saj a yang dapat dilakukan unt uk m engat asinya? Pada cont oh- cont oh t adi, kit a dapat m engem bangkan filt er at au kom ponen yang dapat dij alankan pada sensit ive resources. Filt er at au kom ponen t adi dapat m enj am in hanya user yang t erot orisasi dapat m engakases. Unt uk m elindungi dari insecure I ds, kit a harus m engem bangkan aplikasi kit a agar t idak percaya pada kerahasiaan dari I ds yang dapat m em beri access cont rol. Pada m asalah file perm ission, file- file t ersebut harus berada pada lokasi yang t idak dapat diak ses oleh w eb browser dan hanya role t ert ent u saj a yang dapat m engaksesnya.

I I I . Br ok e n Aut h e n t ica t ion da n Se ssion M a na ge m e n t

Aut hent icat ion dan session m anagem ent m enunj uk kepada sem ua aspek dari pengat uran user aut hent ikasi dan m anagem ent of act ive session. Berikut ini beberapa hal yang perlu diperhat ikan :

• Password st rengt h – Aplikasi kit a harus m em berikan level m inim al dari keam anan sebuah password, dim ana dapat dilihat dengan cara m elihat panj ang dari password dan kom pleksit asnya. Cont ohnya sebuah aplikasi dim ana t erdapat user baru yang akan m endaft ar : aplikasi t idak m engij inkan passw ord dengan panj ang 3- 4 karakt er at au kat a-kat a sim pel yang dapat m udah dit ebak oleh hacker.

• Password use – Aplikasi kit a harus m em bat asi user yang m engakses aplikasi m elakukan login kem bali ke sist em pada t enggang wakt u t ert ent u. Dengan cara ini aplikasi dapat dilindungi dari serangan brut e force dim ana hacker bisa m enyerang berulang kali unt uk berhasil login ke sist em . Selain it u, log in yang gagal sebaiknya dicat at sebagai inform asi kepada adm inist rat or unt uk m engindikasikan kem ungkinan serangan yang t erj adi.

• Password st orage – password t idak boleh disim pan di dalam aplikasi. Password harus disim pan dalam form at t erenkripsi dan disim pan di file lain sepert i file dat abase at au file passw ord. Hal ini dapat m em ast ikan bahw a inform asi yang sensit if sepert i passw ord t idak disebarkan ke dalam aplikasi.

I ssue lain yang berhubungan : password t idak boleh dalam bent uk hardcoded di dalam source code.

• Session I D Prot ect ion – server biasanya m enggunakan session I d unt uk m engident ifikasi user yang m asuk ke dalam session. Akan t et api j ika session I D ini dapat dilihat oleh seseorang pada j aringan yang sam a, orang t ersebut dapat m enj adi seorang client .

(8)

Cross sit e script ing t erj adi ket ika seseorang m em buat aplikasi w eb m elalui scr ipt ke user lain. Hal ini dilakukan oleh penyerang dengan m enam bahkan cont ent ( sepert i JavaScript , Act iveX, Flash) pada request yang dapat m em buat HTML out put yang dapat dilihat oleh user lain. Apabila ada user lain yang m engakses cont ent t ersebut , brow ser t idak m enget ahui bahwa halam an t ersebut t idak dapat dipercaya.

Cara yang bisa digunakan unt uk m encegah serangan cross sit e script ing adalah dengan m elakukan validasi dat a m asuk dari user request ( sepert i header, cookie, user param et er, ...) . Cara negat ive approach t idak digunakan : m encoba unt uk m em filt er act ive cont ent m erupakan cara yang t idak efekt if.

V . Bu ffe r ove r flow s

Penyerang dapat m enggunakan buffer overflow s unt uk m erusak aplikasi w eb. Hal ini dilakukan karena penyerang m engirim kan request yang m em buat server m enj alankan kode- kode yang dikirim kan oleh penyerang.

Kelem ahan buffer overflow biasanya sulit didet eksi dan sulit dilakukan oleh hacker. Akan t et api penyerang m asih bisa m encari kelem ahan ini dan m elakukan buffer overflow pada sebagian aplikasi w eb.

Terim a kasih at as desain dari Java environm ent , dim ana aplikasi yang berj alan pada J2EE server am an dari j enis serangan ini.

Unt uk m em ast ikan keam anan, cara yang paling baik adalah m elakukan pengawasan apabila t erdapat pat ch at au bug report dari produk server yang digunakan.

V I . I n j e ct ion fla w s

Salah sat u kelem ahan yang populer adalah inj ect ion flaw , dim ana hacker dapat m engirim kan at au m enginj ect request ke operat ing syst em at au ke ext ernal sum ber sepert i dat abase.

Salah sat u bent uknya adalah SQL inj ect ion. Berikut ini salah sat u cont oh dari SQL inj ect ion :

http://someServer/someApp/someAction?searchString=jedi

URL diat as akan m em proses pencarian dengan kat a kunci 'j edi'. I m plem ent asi dim ana t idak ada validasi input adalah sepert i SQL code berikut ini :

select * from someTable where someField='value'

dim ana value adalah nilai dar i param et er searchSt ring yang ada pada HTTP request .

Bagaim ana j ika, hacker m elakukan input dari URL sepert i ini :

http://someServer/someApp/someAction?searchString=jedi'%20AND%20true;

(9)

select * from someTable where someField='jedi' AND true; DROP DATABASE;''

St at em ent awal past i akan dit erim a dim ana t erdapat klausa AND TRUE. Dan st at em ent selanj ut nya yait u DROP DATABASE j uga akan diekseskusi yang akan m em berikan kerusakan pada aplikasi.

Serangan ini bisa m ungkin t erj adi karena input yang t idak divalidasi. Ada dua cara yang bisa dilakukan unt uk m encegah serangan ini yait u:

• Daripada m enggunakan st at em ent SELECT, I NSERT, UPDATE dan DELETE st at em ent , bisa dibuat fungsi yang m elakukan hal serupa. Dengan m enggunakan fungsi diharapkan ada pengam anan t erhadap param et er. Selain it u dengan adanya fungsi, param et er yang m asuk harus sam a dengan t ipe dat a dari param et er yang dideklarasikan.

• Hak akses dalam aplikasi j uga harus dibat asi. Cont ohnya, j ika aplikasi hanya bert uj uan unt uk m elihat dat a, t idak perlu diberikan hak akses unt uk m elakukan I NSERT, UPDATE at au DELETE. Jangan m enggunakan account adm in pada aplikasi w eb unt uk m engakases dat abase. Hal ini j uga dapat m em inim ailkan serangan dari hacker.

V I I I . I n se cu r e st or a ge

Aplikasi w eb biasanya perlu m enyim pan inform asi yang sensit if sepert i passw ord, inform asi kart u kredit , dan yang lain. Dikarenakan it em - it em t ersebut bersifat sensit if it em - it em t ersebut perlu dienkripsi unt uk m enghindari pengaksesan secara langsung. Akan t et api beberapa m et ode enkripsi m asih lem ah dan m asih bisa diserang.

Berikut ini beberapa kesalahan yang sering t erj adi :

• Kesalahan unt uk m engenkripsi dat a pent ing • Tidak am annya kunci, cert ificat e, dan passw ord • Kurang am annya lokasi penyim panan dat a • Kurangnya penghit ungan dari random isasi • Kesalahan pem ilihan algorit m a

• Mencoba unt uk m encipt akan algorit m a enkripsi yang baru

Berdasarkan skenario berikut ini : Terdapat sebuah aplikasi, dim ana t erdapat password pada user obj ect . Akan t et api, aplikasi m enyim pan user obj ect ke dalam session set elah user login. Perm asalahan yang akan m uncul pada skenario ini adalah passw ord dapat dilihat oleh seseorang yang dapat m elihat session dari user t ersebut .

Salah sat u cara yang dilakukan unt uk m enghindari kesalahan penyim panan inform asi yang sensit if adalah : t idak m em buat password sebagai at ribut dari kelas yang m ewakili inform asi user; Daripada m engenkripsi nom or kart u kredit dari user, akan lebih baik unt uk m enanyakannya set iap kali dibut uhkan.

(10)

Denial of Service m erupakan serangan yang dibuat oleh hacker yang m engirim kan request dalam j um lah yang sangat besar dan dalam wakt u yang bersam aan. Dikarenakan request - request t ersebut , server m enj adi kelebihan beban dan t idak bisa m elayani user lainnya.

Serangan DoS m am pu m enghabiskan bandw idt h yang ada pada server. Selain it u dapat j uga m enghabiskan m em ory, koneksi dat abase, dan sum ber yang lain.

Pada um um nya sangat sulit unt uk m elindungi aplikasi dari ser angan ini. Akan t et api m asih ada cara yang dapat dilak ukan sepert i m em bat asi resource yang dapat diakses user dalam j um lah yang m inim al. Merupakan ide / cara yang bagus unt uk m em buat load quot a yang m em bat asi j um lah load dat a yang akan diakses user dari sist em .

Salah sat u cont oh adalah pada im plem ent asi bullet in board : adanya pem bat asan user pada saat m elakukan search, dim ana operasi ini hanya dapat dilakukan set iap 20 det ik. Dengan cara ini dapat dipast ikan bahwa user t idak bisa m enghabiskan koneksi dari dat abase.

Solusi yang lain adalah m endesain aplikasi w eb dim ana user yang belum t erot orisasi hanya m em iliki akses yang sedikit at au t idak m em iliki akses ke cont ent w eb yang berhubungan dengan dat abase.

X . I n se cu r e Con figu r a t ion M a na ge m e n t

Biasanya kelom pok ( group) yang m engem bangkan aplikasi berbeda dengan kelom pok yang m engat ur host ing dari aplikasi. Hal ini bisa m enj adi berbahaya, dikarenakan keam anan yang diandalkan hanya dari segi aplikasi : sedangakan dari segi server j uga m em iliki aspek keam anan yang perlu diperhat ikan. Adanya kesalahan dari konfigurasi ser ver dapat m elew at i aspek keam anan dari segi aplikasi.

Berikut ini adalah kesalahan konfigurasi server yang bisa m enim bulkan m asalah :

• Celah keam anan yang belum dipat ch dari soft ware yang ada pada server – adm inist rat or t idak m elakukan pat ch soft ware yang ada pada server.

• Celah keam anan server dim ana bisa m enam pilkan list dari direkt ori at au j uga serangan berupa direct ory t raversal.

• File- file backup at au file cont oh ( sam ple file) , file- file script , file konfigurasi yang t ert inggal / t idak perlu.

• Hak akses direkt ori at au file yang salah.

• Adanya service yang sepert i rem ot e adm inist rat ion dan cont ent m anagem ent yang m asih akt if.

• Penggunaan default account dan default password.

• Fungsi adm inist rat ive at au fungsi debug yang bisa diakses. • Adanya pesan error yang inform at if dari segi t eknis.

• Kesalahan konfigurasi SSL cert ificat e dan set t ing enkripsi.

• Penggunaan self- signet cert ificat es unt uk m elakukan aut ent ikasi. • Penggunaan default cert ificat e.

Referensi

Dokumen terkait

variasi mlati. Sehingga mempunyai kesan praktis dan tidak mengganggu gerak penari apalagi ada satu penari pada adegan tertentu menaiki burung garuda. Perlu

 Kawasan konservasi dan resapan air, pada bagian lereng atas dan tengah perbukitan dari kawasan perencanaan (Srimulyo

[r]

Tujuan dari penelitian ini adalah menjabarkan fungsi fitur aplikasi Safe Travel dalam memberikan pelayanan dan informasi dari sudut pandang pengguna; dan meneliti pengaruh

[r]

Demikian Berita Acara Hasil Pelelangan untuk paket pekerjaan “ Konsultan Perencana Revitalisasi Gedung dan Sarana Kantor ” ini dibuat dengan sebenarnya untuk dapat

Keuntungan dari teknik sipil, kata salah seorang dosen FT, Zamzami Septiropa, MT, dari semua bidang perusahaan jasa konstruksi, dari bidang sipil dinilai lebih fleksibel untuk

Evaluasi Administrasi hanya dilakukan pada hal-hal yang tidak dinilai pada penilaian kualifikasi. Unsur-unsur yang dinilai meliputi Kelengkapan Persyaratan yang