JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)
1
Simulasi Celah Keamanan Aplikasi Web dengan Kerangka Kerja OWASP Riska Kurnianto Abdullah, Ahmad Zaini ST., MT., Christyowidiasmoro, ST., MT. Jurusan Teknik Elektro, Fakultas Teknologi Industri, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia e-mail:
[email protected],
[email protected],
[email protected] Abstrak— Semakin kompleks dan terhubungnya infrastruktur digital dengan dunia global, kesulitan untuk mencapai keamanan aplikasi menjadi meningkat secara eksponensial. Dalam hal ini masalah keamanan yang sederhana tentunya tidak dapat ditoleransi lagi dimana aplikasi web telah banyak bertebaran di internet. Oleh karena hal itu, maka para developer menjadi lalai dalam membuat sistem aplikasi yang aman. Masalah tentang celah keamanan ini terjadi karena kurangnya kesadaran para developer untuk mengikuti standar penanganan sistem keamanan pada aplikasi web. Untuk itu diharapkan perlu ada nya suatu sistem yang bisa menjadi acuan sebagai pengetahuan dalam memahami celah keamanan yang dimaksud. Dalam penelitian ini telah dibuat sebuah prototype web yang berfungsi mensimulasikan sepuluh celah keamanan berdasarkan OWASP top 10 2013. OWASP adalah suatu organisasi yang mengatur kebijakan standar keamanan pada aplikasi web. OWASP ini sendiri mempunyai metode yang disebut dengan OWASP framework. Pada prototype ini kemudian dilakukan penetrasi untuk mengetahui celah keamanan yang ada berdasar pada standar OWASP framework. Dari hasil penetrasi kemudian dianalisa untuk mendapatkan solusi dari celah kemananan yang ditemukan. Hasil yang diperoleh yaitu celah keamanan yang sering terjadi pada web yaitu terjadi pada celah keamanan “penggunaan komponen yang sudah diketahui kelemahannya” dan juga “kelemahan pada level akses control”. Dua celah keamanan ini dapat dicegah dengan melakukan review kode sumber aplikasi apakah mengandung celah keamanan atau tidak sesuai dengan standar OWASP. Apabila aplikasi tergantung pada framework dan atau komponen maka diusahakan komponen tersebut selalu diperbaharui sesuai dengan security release yang telah diterbitkan vendor. Kata Kunci— hacking, web, OWASP, database, pentration test.
D
I. PENDAHULUAN
engan adanya kemudahan internet yang menjadi bagian virtual dari dunia nyata dimana banyak tempat didalamnya sebagai penyedia berbagai bermacam layanan, tentunya terdapat keuntungan dan kerugian serta kebaikan dan keburukan. Internet seolah menjadi satu dunia sendiri yang mempunyai cara kerja dan informasi data yang terus mengalir dengan sangat cepat. Selanjutnya Berbagai macam penyedia layanan tersebut dimplemetasikan dalam bentuk aplikasi web. Perangkat lunak yang tidak aman telah menjadi suatu ancaman bagi segala aspek infrastuktur diantaranya yaitu keuangan, kesehatan, pertahanan, energi, dan infrastruktur penting lainnya [1]. Dengan semakin kompleks dan
terhubungnya infrastruktur digital dengan dunia global maka kesulitan untuk mencapai keamanan aplikasi menjadi meningkat secara eksponensial [1]. Dalam hal ini masalah keamanan yang sederhana tentunya tidak dapat ditoleransi lagi dimana aplikasi web tersebut banyak bertebaran di internet. Hal ini tentunya dapat diatasi dengan melakukan pengujian keamanan dengan teknik penetration testing. Teknik ini digunakan untuk memeriksa efektifitas kemanan sebuah sistem, sehingga kelemahan yang ada dapat diketahui secara dini, dan tindakan pencegahan pengamanan dapat dilakukan [3]. Masalah keamanan pada aplikasi web dapat dikurangi juga dengan menggunakan OWASP yang merupakan salah satu organisasi yang fokus kepada masalah keamanan aplikasi web. OWASP adalah singkatan dari Open Web Application Security Project. OWASP menerbitkan suatu metodologi yang dapat digunakan untuk menemukan celah kemanan, sehingga dengan adanya standar keamanan yang bisa digunakan para developer, maka seharusnya masalah longgarnya sistem keamanan aplikasi web dapat dipenuhi. Dapat disimpulkan bahwa masalah utama yang ada saat ini pada aplikasi web adalah kurangnya perhatian pemilik sistem dalam menerapkan pengujian keamanan pada aplikasi web. Pada umumnya setelah aplikasi web yang teresebut selesai dibuat sistem tersebut langsung dilaunch untuk digunakan. Masalah yang akan menjadi pembahasan didalam artikel ini yaitu mencakup mengenai masalah keamanan yang terdapat pada OWASP Top 10 2013, mulai dari teknik penetrasi dan cara pencegahannya. Pembahasan ini terdiri dari pembuatan aplikasi yang mempunyai celah keamanan, kemudian melakukan penetrasi, lalu menganalisa dan melakukan tindakan pencegahan agar dampak celah keamanan yang ada dapat terhindar. II. METODE PENELITIAN A. Model Pembuatan situs dengan custom code dilakukan untuk melakukan simulasi penyerangan dan penanganan celah keamanan. Pembuatan situs ini ditujukan agar dapat menjelaskan lebih lanjut seberapa besar dampak celah keamanan tersebut dan cara – cara mengatasinya. Setelah situs dibuat maka pada situs tersebut dilakukan percobaan untuk penetrasi manual berdasarkan celah celah yang ada menurut OWASP TOP 10 2013. Setelah dilakukan penetrasi maka akan
JU URNAL TEKN NIK POMITS Vol. 2, No. 1, (2013) ISSN N: 2337-3539 ((2301-9271 Prrint) dilihat dampak apa yang akan terjadi, keemudian selannjutnya mbar 1 akkan dicarikan solusi untukk mencegahnyya. Pada Gam m merupakan ranccangan sistem untuk langkahh kerja simulaasi. Metode yangg dipakai paada penelitiann ini yaitu dengan d metode penetraasi. Metode inni secara impllementasi pennelitian m wasp framew work [1]. Pennetrasi ini digabungkaan dengan ow dilakukan antaraa lain mencakkup : a) Pengujiaan otentikasi : pengujian ootentikasi dilaakukan pada pennelitian ini muulai dari otentiikasi user biassa dari pengunjuung aplikasi,, member serta s adminisstrator. Untuk aarea pengujiann mencakup area register,, form login, serrta halamam m member. b) Pengujiaan otorisasi : melakukan peengujian aksees data pada setiiap level user c) Pengujiaan manajemenn sesi : penggujian ini dilaakukan untuk usser yang terootorisasi sisteem saja, sedaangkan menurut standar diujiikan juga padda user dengaan role Hal ini dilakuukan karena aaplikasi yang dibuat visitor. H hanya merupakan m aaplikasi yangg sederhana tidak memerluukan sesi untukk user visitor. B. OWASP Topp 10 Pada perkem mbangan aplikkasi web saaat ini untuk dapat menghasilkan aplikasi a web tentu tidak hhanya harus sesuai m deengan fungsi dan manfaaat dari aplikaasi tersebut nnamun applikasi yang diimaksud tersebbut juga haruss memenuhi syyarat – syyarat keamanaan yang memaadai. Menurut OWASP [1] ada a 10 ceelah keamanann yang harus ddiperhatikan kkarena dampakk yang ditimbulkan akkan menggangggu organisassi yang memppunyai applikasi tersebuut dan mudah untuk di ekspploitasi [1]. Seepuluh ceelah keamanann yang dimakssud yaitu dianttara lain : a) Injeksii b) Brokenn authenticatioon and sessionn managementt c) XSS d) Refereensi Obyek lanngsung yang tiidak aman e) Kesalaahan konfiguraasi keamanan f) Sensitiive data exposure g) Missingg function levvel access conttrol h) CSRF with known vullnerabilities i) Using components w j) Redireect dan Forwarrd yang tidak divalidasi Pada Gambaar 1 yaitu adalah langkah kkerja dari pennelitian dimulai dari pembuatan prototype ssitus yang dibuat menggunakan ccustome codee. Situs terseebut sengaja dibuat m manan. tannpa mengalaami proses sstandar penggecekan keam Seetelah situs sellesai dibuat maka m satu persaatu pada setiapp celah keeamanan yanng menurut sstandar OWA ASP top 10 2013 dilakukan pennetrasi. Penettrasi tes inii dilakukan untuk mendapatkan aatau mengekksploitasi celah keamanann [3]. m Keemudian seteelah hasil daari penetrasi tes didapat, maka beerikutnya yaaitu melakukkan pencegaahan untuk celah keeamanan terseebut dan kemuudian hasil terrsebut yang m menjadi baahan untuk annalisa apakah perlu p menulis ulang seluruhh kode ataau mengubah sebagian kom mponen saja.
2
Gam mbar 1. Desain sisttem untuk percobbaan penetrasi sql injeksi. Halamann yang dibuat sengaja menam mpilkan query yanng akan dieksekussi oleh sistem sehhingga mana kode sql dieeksekusi oleh systtem. dapaat dianalisa bagaim
C Celah keamanaan selanjutnyaa yaitu : Kesallahan konfigu urasi keaamanan, celaah keamanan ini terjadi dengan skennario dim misalkan suatu cms yang dileetakkan pada sserver web dim mana servver yang baruu saja diinstalll dan belum diganti usernname dan password deffaultnya [2]. U Untuk simulassi ini aplikasi yyang dibuuat adalah berfokus pada koonfigurasi servver yaitu kesallahan konnfigurasi pada file “php.ini”.. P Pada celah keaamanan Sensiitive data expposure, kelem mahan yanng paling umuum yaitu tidakk melakukan eenkripsi pada data yanng seharusnyaa patut diennkripsi. Ketikka menggunnakan enkkripsi. Pada beberapa kaskuss file log yangg dihasilkan siistem apliikasi dapat diilihat dan unttuk hal ini seeharusnya filee ini perllu dienkripsi aatau setidaknyya akses untukk membaca beerkas tersebut diberi batas, b sehinggga faktor darii penyerang yyang beraada dari dalam m sistem dapatt terminimalisiir [4]. M Missing fun nction levell access control, Daalam menngeksploitasi celah keamannan ini penyerrang dapat beerupa sem mua user yanng memiliki akses terhaddap jaringan dari apliikasi web. Peenyerang terseebut bisa berrupa user anoonim, atauupun memberr.Penyerang yyang terotorisaasi dengan siistem dengan mudah dapat d mengubbah URL atauu parameter uuntuk menngubah otorittas aplikasi terhadap pennyerang terseebut, sehiingga menjaddikan penyeraang tersebut mempunyai llevel aksees yang setaraa dengan admiin. Ditemukann oleh OWASP P [1] Bebberapa aplikasi tidak selalu melakukan prroteksi fungsi pada apliikasinya. Kaddang fungsi tinngkat pengam manan diatur pada sebuuah berkas kkonfigurasi, ddan sistem terrnyata mengaalami salaah konfigurasi. U Untuk celah kkeamanan Crooss Site Requuest Forgery atau disinngkat dengann CSRF, celaah ini merupaakan suatu teeknik hackking yang bbertujuan untuuk mendapatkkan atau bahhkan mennguasai suatuu akun dengaan cara menyyerang web yyang diekksekusi atas w wewenang korrban tanpa diikehendaki koorban itu sendiri. CSRF F merupakan teknik pemalsuan yang berasal darii halaman weeb atau situs yang berbedaa, contohnya saat halaaman situs dieeksekusi oleh kkorban maka akan muncul aakun baruu yang tanpa ddikehendakidi admin. U Using compon nents with knoown vulnerabilities, pada ccelah
JU URNAL TEKN NIK POMITS Vol. 2, No. 1, (2013) ISSN N: 2337-3539 ((2301-9271 Prrint) keeamanan ini bermula dari diisetiap aplikassi memiliki m masalah kaarena sebagiann besar tim developer tiddak fokus terrhadap koomponen atauu library yangg terkini(updaate). Dalam banyak b kaasus, para ddeveloper baahkan tidak mengenal seluruh koomponen yangg digunakannnya. Melihat kkasus ini depedensi koomponen akann membuat ssesuatu yang lebih buruk dalam sisstem keamanaan aplikasi webb itu sendiri. Celah kemannanan yang terrjadi pada Reddirect dan Foorward yaang tidak divvalidasi yaitu dimana aplikkasi pada umuumnya m mengarahkan (redirect) ( penngguna ke hhalaman lain,, atau menggunakan iinternal forw wards dengan cara yang sserupa. m Kaadang halamaan target disppesifikasikan kke dalam paraameter yaang tidak divaalidasi, sehinggga memperkkenankan penyyerang m memilih halam man tujuan. Dalam hal h ini penyyerang mengaitkan ke redirect yangg tidak divaliddasi dan menggelabui m koorban untuk diiklik. Korban sangat mungkkin untuk melaakukan klik sebab link ttersebut terlihaat menuju ke ssitus yang valiid.
3
yanng dikirim olleh user yangg valid terseebut, maka oorang miliki tersebut yang tiddak memiliki otoritas ini bbisa jadi mem aksees dari user yaang valid. P Pada implemeentasi pencegaahan celah keeamanan ini yaitu y sisteem diubah aggar tidak menaampilkan variiabel session pada URL L, dengaan cara menambbahkan code “inii_set(“session..use_cookies”,1);” pada aw wal kode proggram untuuk otentikasi ssehingga variaabel session tiidak lagi terekkspos ke U URL melainkaan disimpan paada cookie.
Hal ini seperrti ditunjukkaan pada Gamb mbar 3 dimanaa hasil quuery tidak laangsung diteerima begitu saja oleh sistem m melainkan dipproses untukk memisahkaan karakter asing seehingga injekssi tidak lagi menyebabakaan dampak ddimana ussername seseoorang yang bennar benar terottorisasi dipakaai oleh pihak lain yang tidak berhak.
C. XSS A Aplikasi yanng dibuat uuntuk mensiimulasikan ccelah keam manan ini merrupakan suatuu sistem yang dilengkapi denngan tam mpilan search ddihalaman deppan. Normalnyya sistem ini akan mennampilkan haasil input dari d field ‘ssearch’ kemuudian mennampilkannya ke sistem. sebbagai contoh ffield ‘search’ ddi isi dengan nilai ‘hacking exxposed’ makka sistem akan mennampilkan nilai yang diissi sebelumnyya yaitu ‘haccking exposed’. P Pada sistem inni dilakukan ppercobaan denngan memasukkkan karaakter tag HT TML untuk m mencoba apakkah sistem ddapat exploitasi celah XSS atau tidak. Setelahh dilakukan iinput S” hasill yang ditamppilkan oleh siistem ”
TEST XSS ini bberupa tulisann ”TEST XSS S” dengan style header 1, m maka dengan ini disimppulkan sistem bisa dieksploiitasi dengan XSS. X S Skenario yangg digunakan uuntuk mendappatkan target yaitu y dengan menyisipkkan halaman llogin palsu pada halaman taarget. Lanngkah pertamaa yaitu menyyiapkan login form yang ppalsu diallamat lain. Daalam kasus inni login form yang palsu suudah dibuuat pada allamat http:///localhost/servverjahat/index..php. Kem mudian selanjjutnya login form tersebuut akan disisippkan padda server mennggunakan ceelah keamanaan XSS. Halaaman logiin palsu yangg sudah disisiipkan ditulis menggunakann tag ifram me. Selanjutnnya attacker m menyalin sem mua url kemuudian dibeerikan kepadaa korban / targget. Dalam hall ini apabila taarget lalai kemudian m memasukkan ussername dan ppasswordnya m maka secaara otomatis uusername dann password yaang dikirimkannnya tersebut tercatat di d server jahaat yang dibuatt oleh attackerr dan attacker bisa mennggunakannya untuk kerperlluan pribadinyya. D Dalam penanganan pencegaahan XSS penuulis menggunnakan funggsi ‘htmlspeccialchars()’. F Fungsi ini bissa mengenalii tag HTM ML sehingga sistem tidak lagi melakukaan eksekusi penuh tag terhadap HT TML yang dim masukkan tappi memperlakuukan inpuut sebagai textt murni dan diitampilkan.
B. Broken authhentication annd session mannagement Untuk simullasi celah keeamanan ini sistem melaakukan ottorisasi membber menggunnakan variabeel session, nnamun seession ini dileetakkan pada URL sehinggga user yangg tidak terrotorisasi dapat dengan m mudah memanffaatkannya daan bisa m menggunakan akun a yang m masih aktif deengan cara m mengisi vaariabel sessionn id yang masiih aktif juga. Pada kasus seeperti ini userr yang valid ppada sistem inii ingin m membagikan tenntang halamann yang diperoolehnya pada sistem keepada orang lain dengan cara menyaliin url lengkaap dan m memberikannyaa. Karena vaariable sessionn terekspos di url maka ketika oraang lain yangg diberikan linnk ini membuuka url m
D. Referensi Oby byek langsung yang y tidak am man Applikasi pada simulasi ini yaitu berbenntuk sistem yyang terootorisasi dengaan username ddan password kkemudian terddapat suattu halaman informasi yang bisa diakses uuser untuk meelihat dataa – data tenttang user itu sendiri dan ditampilkan pada halaaman info m member. Penetrasi dilakukkan pada sistem dengan mengubaah variable ‘iid’ pada url untuk mengaakses infoormasi akun yyang lain. Padaa kasus ini deengan login addmin id yyang diperolehh bernilai 4. Untuk U melakukkan penetrasi llebih lanjut maka diccoba menggannti variable iid dengan nilai 6. Hassil yang diperooleh yaitu sistem merespon dan menampiilkan infoormasi dari user u yang lainnnya. Terlihaat informasi yyang
III. HASIL A. Injeksi Untuk menceegah sql injekksi maka dipeerlukan penyaaringan me dan passw word sehingga query daata dari inputt form usernam tiddak dimasuki karakter yanng bisa menyeebabkan injekksi sql laggi. Penyaringgan data dilakkukan dengann cara memissahkan daata yang bisaa dipercaya ddengan yang tidak, dengann cara m memberikan esccape string paada karakter yyang dianggapp asing yaang menyebabbkan injeksi sqql.
Gaambar 2. Hasil query yang ditampilkan d seteelah sistem meelakukan pennyaringan data paada input usernam me dan password.
JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print) diberikan sudah bukan informasi dari user yang seharusnya maka disimpulkan ini merupakan celah keamanan referensi objek langsung yang tidak aman. Untuk mencegah Celah keamanan ini penulis melakukan pengecekan variabel ‘id’ dengan ‘session id’ yang di daftarkan sehingga apabila ada ketidak cocokan antara variabel ‘id’ dan variabel ‘session id’ sistem akan memberikan peringatan dan memblokir akses id untuk melihat informasi akun user yang lainnya. E. Kesalahan konfigurasi keamanan Tentang celah keamanan kesalahan konfigurasi keamanan aplikasi yang digunakan yaitu aplikasi pada celah injeksi dimana saat server php salah mengkonfigurasikan variabel ‘session.use_cookie’ diubah nilainya menjadi nol ‘0’ maka akan muncul variabel session pada url yang pada akhirnya mengakibatkan variabel session terekspos ke URL. Solusi untuk masalah pada celah ini yaitu sistem administrator harus selalu waspada dan melakukan audit sistem keamanan secara berkala dan memperhatikan konfigurasi servernya. Selalu melakukan pengecekan pada server sebelum memakainya untuk sistem aplikasi web. F. Sensitive data exposure Aplikasi web untuk simulasi celah keamanan ini mempunyai fungsi dimana fungsi tersebut akan dieksekusi tiap 3 jam untuk melakukan backup berkala seluruhnya pada database. Kemudian backup database tersebut disimpan pada server sistem aplikasi itu sendiri. Sementara itu pengaturan pada server sendiri “directory listing’nya tidak dinonaktifkan. Maka dengan terdapatnya sistem seperti ini sangat dimungkinkan database untuk diunduh oleh member. Untuk menghindari celah keamanan ini maka pada konfigurasi server fitur ‘fasilitas directory listing’ dinonaktifkan sehingga akses ke file database yang meskipun tidak terenkripsi dapat dicegah. Tindakan preventif yang kedua yaitu penulis mengubah sistem aplikasi web dimana aplikasi web mengharuskan enkripsi pada password di database. G. Missing function level access control Aplikasi yang dibuat untuk simulasi celah keamanan ini berupa sistem yang mempunyai dua role pada tiap usernya, yaitu role ‘admin’ dan role ‘member’. Saat admin melakukan login dan menuju kontrol panel maka halaman kontrol panel untuk admin yang dapat diaksesnya. Begitu juga user dengan role ‘member’ saat saat user dengan role ‘member‘ melakukan login dan menuju kehalaman control panel maka halaman kontrol panel hanya untuk kontrol pada dengan hak akses member. Halaman kontrol panel yang dimaksud merupakan halaman kontrol panel yang dibuat berbeda tiap user. Untuk role member mempunyai halaman akses control panel tersendiri begitu juga dengan role admin yang mempunyai halaman Kontrol panel sendiri juga. Untuk melakukan penetrasi dilakukan dengan mengakses salah satu halaman kontrol panel yaitu kontrol panel pada role ‘member’ dengan nama file “control_admin.php”. penetrasi
4
dilakukan tanpa user yang login sama sekali. Hal ini berarti user visitor mencoba untuk mengakses kontrol panel pada halaman “control_admin.php”. Hasil akses sistem dapat dilihat terlihat sistem menolak memberikan akses untuk halaman tersebut. Penetrasi lalu dilanjutkan dengan melakukakan akses ke halaman “control_admin.php” dengan user role ‘member’ yang aktif. Saat melakukan akses ke halaman “control_admin.php” sistem menampilkan halaman kontrol panel yang seharusnya hanya bisa diakses oleh user dengan role ‘admin’ namun karena terjadi kelemahan pada kode program di aplikasi sistem maka sistem menampilkan kontrol panel admin. Untuk mengatasi hal ini maka masing – masing halaman kontrol panel yaitu halaman “control_admin.php” dan halaman “control.php” dimasukkan fungsi yang melakukan pengecekan apakah role user yang melakukan akses sesuai dengan permintaan halaman kontrol panel yang dimintanya. Setelah hal tersebut dilakukan maka sistem dengan mudah menolak pemberian halaman kontrol panel yang tidak sesuai dengan role masing – masing user. H. CSRF Aplikasi yang dibuat mempunyai dua buah akun dengan username dan password yang berbeda. Pada sistem ini setiap user masing – masing mempunyai poin. Sistem ini membolehkan antar dua user tersebut melakukan transfer poin. Sistem transfer poin ini dimisalkan unttuk mewakilkan transaksi transfer yang dilakukan pada sistem yang digunakan oleh bank. Penetrasi dilakukan dengan cara membuat agar user target membuka suatu halaman yang sudah di masukkan kode csrf sebelumnya. Pada sistem ini kode csrf diletakkan pada server jahat. Target diupayakan hingga berhasil mengunjungi halaman yang dimaksud. Setelah target mengunjungi halaman yang mengandung kode CSRF tanpa ia sadari poinnya sudah berkurang karena pada situs yang target / korban kunjungi tersebut terdapat kode yang dieksekusi tanpa disadari oleh user yang menyebabkan user melakukan transfer poin kepada user lain. Untuk mencegah agar sistem tidak terkena dampak dari celah keamanan ini maka sistem aplikasi web ini dilengkapi dengan token pada form yang akan dikirim sehingga apabila ada ketidak cocokkan form maka transaksi tidak dapat dieksekusi dan dihentikan prosesnya yang dijelaskan pada Gambar 4. I. Using components with known vulnerabilities Aplikasi dari suatu organisasi perguruan tinggi yang menggunakan joomla dengan JCEditor extension berhasil dieksploitasi penulis. Dengan berhasilnya eksploitasi ini maka penyerang dapat melakukan perubahan layaknya user yang mempunyai akun pada hosting tersebut. Pada joomla 1.5 untuk sistem aplikasi web pada salah satu perguruan tinggi di Surabaya ini terdapat celah keamanan pada extension JCEditor. Penulis menggunakan exploit untuk memasukkan file shell dengan memanfaatkan kelemahan JCE
JU URNAL TEKN NIK POMITS Vol. 2, No. 1, (2013) ISSN N: 2337-3539 ((2301-9271 Prrint) Edditor ini. Untuk selanjjutnya pada kkasus ini pennulis membukka port 10080 sebagai bbackdoor sehhingga sewakttu – waktu penulis p bisa kembali lagi untuk masuuk ke dalam ssistem aplikassi web. Appabila sistem sudah terinfeeksi atau diseerang, sementaara itu addministrator yang meelakukan p perbaikan hanya m menghilangkan atau melakukkan update paada modul JC CEditor maka bisa dipaastikan sistem sangat mungkkin untuk diddeface m laggi dengan muddah dikemudiaan hari.
5
dibuuat oleh penyeerang. U Untuk menceggah hal ini appabila pengguunaan redirectt dan forw ward tidak daapat dihindari maka user yaang menggunnakan apliikasi web terssebut harus dipperingatkan kkalau akan meenuju halaaman yang llain. Dalam hal ini penuulis menggunnakan warrning sebagai proteksi agar user tidak terttipu dan tahu jjelas ke aarah mana seelanjutnya sisttem mengarahhkan user. Seeperti dilihhat pada Gambbar 5.
Gam mbar 4. Pencegaahan celah keaamanan redirect dan forward. User diperringatkan saat akkan melakukan redirect atau forrward kehalamann lain selain situs internal ddari sistem. Jikaa url berisi alamaat selain dari hallaman interrnal sistem maka ssecara otomatis siistem akan membberikan warning.
IV V. KESIMPU ULAN/SARA AN
Gaambar 3. Flowchhart untuk penccegahan serangann CSRF. Variabbel ’id’, ‘am mm’, dan ‘iddess’ saat dikirimkaan diproses padaa ‘blok generate token’. varriabel ini dikirim mkan lengkap deengan token sehingga pada saat variabel sam mpai pada ‘blok rredirect transfer val’ token yang aada pada server ddan yang dibbawa oleh variaabel dicocokkan.. Apabila ada kketidak cocokkann maka traansaksi dibatalkann.
Dalam menccegah hal ini maka saat aaplikasi web masih terrgantung denggan komponenn dari vendorr maka perlu uupdate beerkala. Untukk itu sistem administratorr diharapkan selalu m melakukan pengecekan dan update apabilla ada releasee yang terrbaru terutamaa pada pada reelease securityy issue. J. Redirect dann Forward yanng tidak divaliidasi Sistem yang dibuat untuk celah keamannan ini yaitu bberupa haalaman redireect dengan halaman ‘redirrect.php’. Pennetrasi ceelah keamanann yang dilakukkan pada aplikkasi ini yaitu dengan d m memanfaatkan celah keamaanan pada reddirect dan foorward yaang tidak divvalidasi. Celaah keamanan ini sangat rentan kaarena bisa meengakibatkan user menuju halaman yanng bisa saj aja tidak user tersebut senddiri inginkan. Dalam skenaario ini sisstem memilikki halaman “redirect.phpp” yang mennerima paarameter tungggal yang didekklarasikan dallam bentuk vaariabel “uurl”. Penetrassi dilakukan dengan mellakukan peruubahan paarameter menjaadi url ‘url= htttp://localhost//ta_2013/serveer_jahat/fb/loggin.htm’. Isi dari a di url ini merupakan siitus facebook palsu. vaariabel yang ada Siitus facebookk palsu ini akan merekam usernamee dan paassword yangg dimasukkann korban denngan begitu maka ussername dan ppassword korbban sudah tereekam disistem m yang
U Untuk melakuukan verifikasii keamanan aaplikasi web yyang telah dikembangkkan disarankann untuk melakkukan review kkode apliikasi dan melaakukan pengujjian keamanann terhadap apllikasi tersebut. Agar leebih baik laggi dalam melakukan penguujian w kode merupakan apliikasi maka meetode penetraasi dan review kom mbinasi yang tepat. C Celah keamanaan yang ada ddalam sepuluh kategori OW WASP sanggatlah sederhaana dan mudahh untuk diekspploitasi. Develloper dan sistem adminnistrator yang bertanggung jawab atas siistem manan aplikaasi web kadanng kurang m memperhatikann hal keam tersebut. P Pada saat melakukan peneetrasi untuk kepentingan k aaudit sisteem keamanann sebaiknya diilakukan jugaa penetrasi denngan softtware. Penetraasi dengan sofftware mungkkin akan mem makan wakktu yang sanggat lama namuun sangat munngkin untuk saaling mellengkapi antarra penetrasi dengan d softw ware dan peneetrasi mannual. U UCAPAN TE ERIMA KASIH H P Penulis menggucapkan terim ma kasih keppada Yth, Bapak doseen pembimbinng yang telahh banyak mem mberikan masuukan dan telah mendam mpingi saya sselama penelittian, juga seggenap man – teman dan juga sannak keluarga yang turut serta tem mem mbantu penuliis untuk tetap semangat dalaam penelitian. DAFTAR PUSTAKA [11] OWASP. (22013, Decembber) OWASP T Testing Guide. [Online]. https://www w.owasp.org/inndex.php/Application_Secuurity_ News
JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print) [2] Mark Curphey, Joel Scambry, and Erik Olson, Improving Web Application Security. Washington: Microsoft, 2003. [3] William E Perry, Effective Methods for Software Testing. Indianapolis: Wiley Publishing, 2006. [4] NIST. (2013, December) Guideline on Network Security Testing. [Online]. http://csrc.nist.gov [5] Roger S Pressman, Software Engineering. New York: McGraw-Hill, 2001.
6