kelemahan ajax dan ria dalam web 2.0

13
1 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id Kelemahan AJAX dan RIA dalam Web 2.0 Abstrak Aplikasi Web 2.0 sangat tergantung pada pengelolaan serta manipulasi document object model ( DOM ) dalam proses rendering JSON atau streaming XML di sisi browser. Dalam pemrosesan data elemen DOM memiliki mekanisme melibatkan object XMLHTTPRequest ( XHR ) pada sisi client side logic yang dibangun ( developed ) dalam bahasa pemograman Javascript atau teknologi pemograman lain sejenisnya, seperti Flash atau Sliverlight. Pengendalian DOM terhadap elemen Cross Site Scripting ( XSS ) menciptakan celah kelemahan keamanan aplikasi pada sisi user ( end user ). Celah kelemahan keamanan ini menjadi sumber malapetaka yang akhirnya berdampak menciptakan peluang celah keamanan lainnya yang dapat dilakukan oleh si penyerang misalnya melalui Cross Widget Sniffing, RSS Feed Reader Exploitation, XHR Response Stealing, Mashup Hacking, Malicious Code Injection, dan Worm Spreading. Untuk mengatasi beberapa ancaman kelemahan keamanan tersebut memerlukan usaha ekstra inovatif dan usaha cukup melelahkan dalam pencarian ( scanning ) kelemahan source code aplikasi dan kelemahan dari masing masing elemen teknologi yang diterapkan ketika membangun ( develop ) web 2.0. Kita telah sering melihat dan membaca dalam berbagai artikel yang tersebar secara online ( internet ) kelemahan pengendalian DOM terhadap elemen XSS tetapi ancaman yang sangat significan dan memberikan dampak kerusakan ( loss / high impact ) cukup besar adalah penyerangan yang terintegrasi secara simultan dengan berbagai teknik penyerangan ( Cross Domain Bypass dan Cross Site Request Forgery ) secara bersamaan. Penyerangan ini dikenal dengan terminology deadly cocktail. Batasan Penulisan Dalam Artikel Artikel penulisan ini memiliki batasan pembahasan yaitu : Arsitektur Web 2.0 dan proses manipulasi DOM Teknik penyerangan Cross Domain Bypass Teknik penyerangan DOM untuk pengendalian elemen Widget dan Mashup Kelemahan routines AJAX dalam feed readers Mencari dan mendeteksi elemen DOM pengendali elemen XSS di Web 2.0 Arsitektur Web 2.0 dan Proses Manipulasi DOM Aplikasi berbasis Web 2.0 secara fungsional memiliki kemampuan men-distribusikan konten secara luas. Aplikasi berbasis Web 2.0 memiliki karakteristik struktur elemen yang saling

Upload: herwin-anggeriana

Post on 18-Dec-2014

208 views

Category:

Documents


7 download

DESCRIPTION

Pengendalian DOM terhadap elemen Cross Site Scripting ( XSS ) menciptakan celah kelemahan keamanan aplikasi pada sisi user ( end user ). Celah kelemahan keamanan ini menjadi sumber malapetaka yang akhirnya berdampak menciptakan peluang celah keamanan lainnya yang dapat dilakukan oleh si penyerang melalui Cross Widget Sniffing, RSS Feed Reader Exploitation, XHR Response Stealing, Mashup Hacking, Malicious Code Injection, dan Worm Spreading.

TRANSCRIPT

Page 1: Kelemahan AJAX Dan RIA Dalam Web 2.0

1 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

Kelemahan AJAX dan RIA dalam Web 2.0

Abstrak

Aplikasi Web 2.0 sangat tergantung pada pengelolaan serta manipulasi document object model

( DOM ) dalam proses rendering JSON atau streaming XML di sisi browser. Dalam pemrosesan

data elemen DOM memiliki mekanisme melibatkan object XMLHTTPRequest ( XHR ) pada sisi

client side logic yang dibangun ( developed ) dalam bahasa pemograman Javascript atau

teknologi pemograman lain sejenisnya, seperti Flash atau Sliverlight. Pengendalian DOM

terhadap elemen Cross Site Scripting ( XSS ) menciptakan celah kelemahan keamanan aplikasi

pada sisi user ( end user ). Celah kelemahan keamanan ini menjadi sumber malapetaka yang

akhirnya berdampak menciptakan peluang celah keamanan lainnya yang dapat dilakukan oleh

si penyerang misalnya melalui Cross Widget Sniffing, RSS Feed Reader Exploitation, XHR

Response Stealing, Mashup Hacking, Malicious Code Injection, dan Worm Spreading. Untuk

mengatasi beberapa ancaman kelemahan keamanan tersebut memerlukan usaha ekstra

inovatif dan usaha cukup melelahkan dalam pencarian ( scanning ) kelemahan source code

aplikasi dan kelemahan dari masing – masing elemen teknologi yang diterapkan ketika

membangun ( develop ) web 2.0. Kita telah sering melihat dan membaca dalam berbagai artikel

yang tersebar secara online ( internet ) kelemahan pengendalian DOM terhadap elemen XSS

tetapi ancaman yang sangat significan dan memberikan dampak kerusakan ( loss / high impact )

cukup besar adalah penyerangan yang terintegrasi secara simultan dengan berbagai teknik

penyerangan ( Cross Domain Bypass dan Cross Site Request Forgery ) secara bersamaan.

Penyerangan ini dikenal dengan terminology deadly cocktail.

Batasan Penulisan Dalam Artikel

Artikel penulisan ini memiliki batasan pembahasan yaitu :

Arsitektur Web 2.0 dan proses manipulasi DOM

Teknik penyerangan Cross Domain Bypass

Teknik penyerangan DOM untuk pengendalian elemen Widget dan Mashup

Kelemahan routines AJAX dalam feed readers

Mencari dan mendeteksi elemen DOM pengendali elemen XSS di Web 2.0

Arsitektur Web 2.0 dan Proses Manipulasi DOM

Aplikasi berbasis Web 2.0 secara fungsional memiliki kemampuan men-distribusikan konten

secara luas. Aplikasi berbasis Web 2.0 memiliki karakteristik struktur elemen yang saling

Page 2: Kelemahan AJAX Dan RIA Dalam Web 2.0

2 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

terintegrasi, kompleks dan saling tergantung antar elemen aplikasi. Yang pada akhirnya

menciptakan cukup peluang bagi si penyerang ( hacker ) untuk meng-eksplore dan menemukan

celah keamanan dalam arsitektur aplikasi. Pada gambar 1.0 merupakan arsitektur dari aplikasi

berbasis Web 2.0 :

Gambar 1.0 : Arsitektur dari aplikasi berbasis Web 2.0

Pada gambar 1.0, aplikasi berbasis Web 2.0 seperti layaknya aplikasi yang terbentuk dari

banyak aplikasi yang saling terhubung dan terintegrasi baik berbeda lokasi data servernya

maupun yang di dalam lingkungannya. Jika kita harus memisahkan inti source code dari aplikasi

itu sendiri, mungkin saja aplikasi tersebut memiliki database yang terbatas dan modul

authentication sedangkan sisa data maupun modul lainnya berasal dari luar lingkungan system (

come from outside application boundary ).

Semua elemen komponen saling mengirimkan informasi melalui browser tentunya dengan

mekanisme proses kerja dari struktur masing – masingnya yang saling berbeda. Pada gambar 2

merupakan masing – masing struktur dari elemen komponen Web 2.0 yang memiliki

kemampuan untuk saling bertukar informasi melalui web browser.

Page 3: Kelemahan AJAX Dan RIA Dalam Web 2.0

3 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

Gambar 2.0 : Perbedaan masing – masing struktur dari elemen komponen Web 2.0 yang

memiliki kemampuan masing – masing saling bertukar informasi melalui web browser.

Berdasarkan struktur dari gambar 2.0, secara keseluruhan dapat terlihat bahwa masing –

masing elemen komponen Web 2.0 memiliki perbedaan struktur yang jelas berbeda tetapi

memiliki karakteristik yang sama yaitu mekanisme proses kerja pertukaran data melalui web

browser melalui protocol HTTPS bahkan beberapa protocol terkadang dilibatkan untuk

mendukung kelancaran pertukaran data seperti protocol SOAP, dan XML-RPC.

Konsep dari model arsitektur seperti inilah yang menyebabkan arsitektur dari aplikasi Web 2.0

menjadi sederhana tetapi komplek dalam mempertahankan keamanan aplikasi web 2.0 karena

melibatkan perbedaan struktur aliran data ( stream structure ), protocol yang cukup banyak dan

masing – masing kelemahan dari elemen client side memungkinkan penyerangan terhadap

aplikasi.

Peningkatan penggunaan elemen DOM yang berasal dari browser pada era dekade ini cukup

significan sehingga ini menjadi bagian cukup penting ( critical part ) bagi improvisasi aplikasi

berbasis Web 2.0 khususnya di sisi keamanan. Salah satu fitur yang cukup significan dapat

dirasakan dari aplikasi Web 2.0 adalah fitur minimumnya mekanisme reload atau refresh pada

halaman web untuk mendapatkan data terbaru.

Berikut ini adalah table 1.0 yang merupakan contoh source code dari penggunaan DOM pada

Web 2.0 :

Page 4: Kelemahan AJAX Dan RIA Dalam Web 2.0

4 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

Tabel 1.0 : Contoh source code DOM pada halaman Web 2.0

Function getProfile() { var http; If (window.XMLHttpRequest) { http = new XMLHttpRequest(); } else if (window.ActiveXObject) { http = new ActiveXObject(“Msxml2.XMLHTTP”); if(!http) { http = new ActiveXObejct(“Microsoft.XMLHTTP”); } } http.open(“GET”,”./profile/”,true); http.onreadystatechange = function() { If(http.readyState == 4) { Response = http.responseText; Document.getElementById(‘main’).innerHTML = response; } } http.send(null); }

Dalam function document.getElementById , function class ini dipanggil dengan menggunakan

fungsi XHR dan konten terbaru diubah dengan menggunakan fungsi “innerHTML”. Terdapat

banyak variasi untuk melakukan injeksi terhadap konten terbaru / data terbaru dimasukkan ke

dalam DOM. Salah satu cara paling umum dijumpai dengan menulis ulang elemen DOM yang

akan digunakan seperti contoh pada table 2.0 di bawah ini.

Tabel 2.0 : Teknik menulis ulang elemen DOM ketika terdapat konten terbaru / data terbaru

If(http.readyState == 4) { Var response = http.responseText; Var p eval(“(“+response+”)”); Document.open(); Document.write(p.firstName+”<br>”); Document.write(p.lastName+”<br>”); Document.write(p.phoneNumber[0]); Document.close();

Dalam table 2.0, konten terbaru atau data terbaru di-injeksikan menggunakan fungsional dari

class eval dan document.write yang dipanggil ke dalam elemen DOM. Banyaknya variable

Page 5: Kelemahan AJAX Dan RIA Dalam Web 2.0

5 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

maupun class yang diperlukan di dalam DOM diciptakan untuk tujuan optimasi pada sisi client

side.

Pada sisi lain DOM dapat digunakan pada RIA ( Rich in Application ) dalam pemograman Flash

atau Silverlight. Pada Tabel 3.0 merupakan contoh sepotong source code DOM yang digunakan

dalam RIA.

Tabel 3.0 : DOM dalam RIA seperti program Flash

_root.htmlText = true; Mekanisme parameter untuk melakukan passing data dalam fungsional ‘getURL’

getURL(_root.input); Mekanisme parameter ini untuk mengakses dari konten HTML dari Flash dan memanipulasi ke dalam elemen DOM secara berurutan ( subsequently ).

Jika mekanisme proses kerja elemen RIA dalam Web 2.0 tidak diimplementasikan dengan aman

( securely ) maka memberikan peluang bagi penyerang untuk melakukan teknik DOM injeksi

dan remote script execution.

Pada gambar 3.0 merupakan arsitektur penyerangan DOM berbasis XSS secara umum.

Gambar 3.0 : arsitektur penyerangan DOM berbasis XSS

Page 6: Kelemahan AJAX Dan RIA Dalam Web 2.0

6 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

Teknik Penyerangan Cross Domain ByPass

Model keamanan dari web browser dan function XHR tidak akan mengijinkan melakukan

passing secara SOP ( Same Origin Policy ). Tidak tertutup kemungkinan penggunaan function

XHR dalam suatu web domain sample.com berasal dari web domain lain abc.com.

Aplikasi – aplikasi web 2.0 pada umumnya didesain memiliki metode atau mekanisme yang

memungkinkan pemanggilan function lain serta passing secara bersamaan dalam lokasi yang

berbeda sehigga hal inilah yang menyebabkan terciptanya mekanisme callback.

Pada gambar 4.0 merupakan arsitektur penyerangan Cross Domain ByPass secara umum.

Gambar 4.0 : Arsitektur Penyerangan Cross Domain ByPass melalui Proxy

Ketika user ( client ) mengklik / membuat request untuk konten yang berasal dari web domain

yang berbeda, maka data dari konten tersebut terkirim melalui proxy dan terjadilah aliran data

yang kita kenal dengan streaming. Pada gambar 5.0 merupakan stream data berbasis JSON.

Page 7: Kelemahan AJAX Dan RIA Dalam Web 2.0

7 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

Gambar 5.0 : Stream data berbasis JSON.

Pada sisi lain untuk melakukan teknik penyerangan Cross Domain ByPass yang melalui proxy,

maka lakukan secara langsung pada URL melalui syntax javascript ( directly pushing content into

javascript function by wrapping the right call back function name ).

Pada gambar 6.0 merupakan mekanisme teknik penyerangan dari function class profileCallback.

Gambar 6.0 : Teknik penyerangan dari fungsional profileCallback

Dalam gambar 6.0, bagian yang diblok biru yaitu script tag menjadi target URL dalam

melakukan teknik penyerangan cross domain dan prosesnya menghasilkan pemanggilan

elemen JSON ( incoming JSON ) atau stream JS lainnya secara otomatis.

Page 8: Kelemahan AJAX Dan RIA Dalam Web 2.0

8 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

Aplikasi – aplikasi AJAX menggunakan single elemen DOM sepanjang siklus proses bekerja dari

aplikasi tersebut ( life cycle of the application). Langkah awal dari siklus proses bekerja aplikasi

dimulai dari elemen DOM diproses (loaded) setelah itu nilai dari DOM di-injeksikan secara

dinamis ( dynamic DOM ) dengan variasi stream yang berbeda – beda.

Elemen dynamic DOM ini secara khusus dapat dimanipulasi akibat penggunaan function class

“eval” atau “document.*”. Hal ini menjadi celah keamanan dari aplikasi tersebut dimana

penggunaan elemen javascript secara berlebihan berakibat elemen dinamis DOM ( dynamic

DOM ) mendapatkan permission ( ijin ) untuk mengakses serta memanipulasi variable javascript

yang melibatkan beberapa variable penting lainnya.

Pada tabel 4.0 merupakan source code dari authentication routine sederhana ketika menerima

pemrosesan data username dan password dari web browser dan mengirimkan kembari ke

server melalui XHR object

Tabel 4.0 : authentication routine sederhana ketika menerima pemrosesan data username

dan password dari web browser dan mengirimkan kembali ke server melalui XHR object.

Function getLogin() { gb = gb + 1; var user = document.frmlogin.txtuser.value; var pwd = document.frmlogin.txtpwd.value; var xmlhttp = false; try { xmlhttp = new ActiveXObject(“Msxml2.XMLHTTP”); { Catch(e) { try { xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”); } Catch(E) { xmlhttp = false; } } If(!xmlhttp && typeof XMLHttpRequest!=’undefined’) { xmlhttp = new XMLHttpRequest(); } Temp = “login.do?user=”+user+”&pwd=”+pwd; xmlhttp.open(“GET”,temp,true); xmlhttp.onreadystatechange = function() { if(xmlhttp.readystate == 4 && xmlhttp.status == 200) { document.getElementByID(“main”).innerHTML = xmlhttp.responseText; } Xmlhttp.send(null); }

Page 9: Kelemahan AJAX Dan RIA Dalam Web 2.0

9 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

Pada table 4.0 terdapat function class, yang cukup penting yaitu :

temp = “login.do?user=”+user+”&pwd=”+pwd;

xmlhttp.open(“GET”,temp,true);

Celah keamanan yang terjadi pada source code dari tabel 4.0 adalah function variabel ‘temp’

yang telah terbentuk tanpa batasan keyword maupun waktu expired, hal ini terjadi karena

penggunaan variable secara global. Sebagai hasilnya setelah menjalankan function variable

‘temp’ maka variable ‘temp’ tersebut tetap bertahan ( without have expired or dropping value )

sepanjang aplikasi tersebut berjalan / diakses.

Dengan kondisi seperti ini, maka penyerang dapat mencuri / eavesdropping terhadap variable

‘temp’ melalui mekanisme XSS dan mendapatkan data username serta password yang

dihasilkan oleh elemen DOM berbasis XSS.

Teknik penyerangan DOM untuk pengendalian elemen Widget dan Mashup

Dalam beberapa contoh kasus diatas, dapat terlihat bahwa aplikasi Web 2.0 pada elemen DOM

digunakan untuk memanipulasi / mengolah serta meng-injeksi konten terbaru dan

memodifikasi dirinya sendiri ( elemen DOM itu sendiri ). Misalnya pada contoh lain ketika

menerapkan fungsional ( function ) sederhana seperti RSS feed dan injeksikan ke dalam elemen

DOM, proses validasi tidak lagi diperlukan dan menciptakan celah keamanan untuk melakukan

teknik injeksi yang sama berupa link ke elemen DOM tanpa perlu bersusah payah

mengeksporisasi proses validasinya.

Pada tabel 5.0 merupakan sepenggal source code dari snippet widget.

Tabel 5.0 : source code dari snippet widget

Function process RSS (divname,response) { var html = “”; var doc = response.documentElement; var items = doc.getElementsByTagName(‘item’); for(var i=0; i < items.length; i++) { var title = items[i].getElementsByTagName(‘title’)[0]; var link = items[i].getElementsByTagName(‘link’)[0]; html += “<a style=’text-decoration:none’ class=’style2’ href=”” +link.firstChild.data +”’>’” +title.firstChild.data +”</a><br><br>”; }

Page 10: Kelemahan AJAX Dan RIA Dalam Web 2.0

10 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

var target = document.getElementById(divname_; target.innerHTML=html; }

Pada tabel 5.0 diatas merupakan source code dari widget RSS feed. Widget tersebut melakukan

proses grab dari fungsional ( function ) RSS feed dan passing data melalui routine setelah script

tersebut diesekusi dalam browser. Hal ini menciptakan celah keamanan lain yang berbeda

dengan celah keamanan DOM berbasis XSS yaitu penggunaan kelemahan vector.

Dalam banyak aplikasi – aplikasi widget dibentuk dalam coding HTML versi kecil dengan format

pada umumnya javascript. Ketika widget di-injeksikan ke dalam elemen DOM dan memperoleh

permission penuh dalam proses kerjanya, maka penyerang dapat memanfaatkan celah

keamanan ini dengan menggunakan malicious widget ke dalam elemen DOM kemudian

memonitor melalui widget yang lainnya.

Sebagai contoh, pada tabel 6.0 merupakan source code widget malicious, asumsikan widget

lainnya sudah terinfeksi dan widget ini berperan menerima username dan password dari user.

Tabel 6.0 : Source code widget malicious

Function regEvent4me() { var objs = document.getElementsByName(“txtUser”); If (objs.length > 0) { var thefield = objs[0]; thefield.onblur = GetU; } objs = document.getElementsByName(“txtPass”); If (objs.length > 0) { var thefield = objs[0]; thefield.onblur = GetP; } }

Pada tabel 6.0, malicious widget tersebut memulai proses menerima data ( username,

password ) ketika terjadi pergerakkan mouse, tanpa sepengetahuan, user memasukkan data

pentingnya biasanya melalui form dari widget lain yang terinfeksi kemudian widget ini akan

menjalankan fungsional ( function ) GetU dan GetP. Fungsional ( function ) inilah yang akan

Page 11: Kelemahan AJAX Dan RIA Dalam Web 2.0

11 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

mengambil data konten vital dan mengirimkannya ke jaringan ( network ) yang berbeda dimana

si penyerang sedang menunggu.

Dengan kasus seperti ini, maka penting bagi kita sebelum menerapkan widget / injeksikan code

widget yang dibutuhkan ke dalam elemen DOM, sebaiknya dilakukan analisa arsitektur elemen

DOM, sumber dari widget tersebut ( platform ), dan proses kerja dari elemen widget tersebut.

Mencari dan mendeteksi elemen DOM dalam Web 2.0

Kita sudah melihat beberapa cara penyerangan dengan memanfaatkan elemen DOM, masih

banyak cara dan teknik – teknik penyerangan lain sejenisnya yang tersebar di internet. Jika kita

mencoba menarik benang merah dan membentuk kategori dari semua teknik penyerangan

berbasis DOM maka terdapat beberapa kategori klasifikasinya yaitu :

Penyerangan elemen DOM dengan menggunakan aplikasi Mashup : aplikasi mashup

menggunakan modul API dan tentunya API haruslah bersifat Open. Ketika API

diterapkan dalam mashup application, maka informasi mudah tersebar dari sumber

tidak terpercaya ( un-trusted source ), dipacket ( bundle ), dan terkirim ke asal target

penyerang. Pada dasarnya ( essentially ), stream data terjadi karena adanya injeksi jika

terdapat malicious script maka secara otomatis akan menjalankan malicious script

tersebut.

Penyerangan DOM side logic : Aplikasi Web 2.0 menggunakan client side logic dan

beberapa level business logic untuk membagi client side itu sendiri. Hal ini memberikan

celah bagi penyerang memanfaatkan teknik penyerangan dissect call dan berusaha

memahami core logic-nya dibalik proses yang terjadi, mengidentifikasi access control,

logic encryptionnya, secret flags dan sebagainya. Semua algoritma logic ini di-embedded

di dalam client side DOM dan dalam variable – variable stack sehingga memudahkan

untuk mengakses serta mamnipulasi konten yang tidak ter-authorisasi ( illegal content ).

CSRF dengan XML, SOAP, JSON atau AMF stream : Modul ini juga dapat menciptakan

celah keamanan dengan meng-injeksikan form berbasis HTML sehingga memaksakan

XML atau SOAP mengirimkan data ke domain berbeda dari web browser ( force cross

domain from web browser ). Hal ini disebabkan karena minimnya teknik pemograman

keamanan berbasis form HTML.

Cross technology Access : Web browser akhir – akhir ini berkembang pesat ( Internet

Explorer, Firefox, Opera, Netscape, Chrome dan sebagainya ), tentunya masing – masing

teknologi yang diterapkan dalam web browser saling berbeda. Prinsip dasar dari

teknologi web browser selalu menerapkan mekanisme stack. Sebagai contoh : Flash dan

AJAX yang berjalan dalam elemen DOM yang sama, begitu juga dengan Silverlight yang

terfocus pada variable elemen DOM dalam format javascript. Maka hal ini menciptakan

Page 12: Kelemahan AJAX Dan RIA Dalam Web 2.0

12 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

celah keamanan lebih besar dalam pengaksesan dari berbagai technology ( cross

technology access ). Asumsikan kita sebagai programmer mencoba meng-eleminasikan

kelemahan elemen DOM dan memperketat keamanan pada web browser IE, tetapi

apakah dapat dipastikan secure ketika berjalan pada platform Chrome? Bagaimana

dengan nasib user yang mengakses dengan platform web browser Chrome?

Jika kita ingin melakukan pengujian terhadap aplikasi untuk menemukan celah keamanan serta

kekurangan dari aplikasi yang dibangun tentunya dengan tujuan untuk improvisasi performance

aplikasi itu sendiri, maka diperlukan metode pengujian yang dikenal dengan metode Software

Testing Life Cycle ( STLC ) , secara garis besarnya dan umumnya metode STLC terbagi dalam

dua group phase yaitu blackbox dan whitebox testing. Mendeteksi kerentanan yang dimiliki

aplikasi berbasis Web 2.0 dengan metode sederhana blackbox STLC dapat dikatakan sulit

karena cukup beresiko.

Sebagai contoh ; tidak memungkinkan melakukan teknik fuzzing dan mencoba mengirimkan

request ke A dan berharap mendapatkan response dari B ( attacker ) secara specific hanya

untuk melihat kerentanan / celah keamanan yang terjadi. Hal ini memerlukan analisa terperinci

dan akurasi terhadap source code yang dihasilkan dan phase analisa terhadap source code

tersebut harus dilakukan secara statis dengan trik men-debug satu per satu source code dan

melihat proses script tersebut berjalan.

Berikut ini ada beberapa tips dalam teknik pencarian ( scanning ) terhadap elemen DOM yang

dapat membuka celah keamanan dari aplikasi Web 2.0 :

Tingkatkan performance pencarian elemen DOM untuk berbagai variasi pengaksesan

dan variasi proses kerjanya, perhatikan relevansi-ya ketika melakukan proses

pengiriman data ( passing ).

Lakukan performace pencarian elemen DOM untuk berbagai variasi pengaksesan dan

proses kerjanya dengan melakukan teknik XHR, perhatikan dan focuskan kepada

streaming data yang di-injeksikan dalam elemen DOM kemudian analisa dampak (

impact ) yang terjadi ketika proses tersebut sedang berjalan. Jika streaming data yang

terjadi menggunakan mekanisme seperti function ‘eval’ atau ‘document.write’ maka hal

itu dapat membuka celah keamanan ( reference keyword untuk mempelajari lebih jelas

– DOMScan ).

Lakukan proses debugging terhadap elemen javascript khususnya pada sisi run-time,

analisa aliran yang terjadi ( the flow of execution ) dari setiap komponen dengan

merujuk pada lingkungan berbagai versi platform web browser. Anda dapat

menggunakan alat bantu ( tools ) debugger yang cukup baik, terkadang web browser

seperti Firebug atau IE 8++ debugger toll dapat digunakan untuk efisiensi waktu

pengetestan.

Page 13: Kelemahan AJAX Dan RIA Dalam Web 2.0

13 Created By : Herwin Anggeriana -- http://www.facebook.com/ITlinks.co.id

Anda dapat menggunakan deobfuscator atau Javascript tracer.