Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Penetration tool berbasis sistem terdistribusi untuk analisa vulnerability pada web application

Aryya Dwisatya Widigdha
"Penetration Tool Berbasis Sistem Terdistribusi untuk Analisa Vulnerability Pada Web Application"

  • Login to see the comments

  • Be the first to like this

Penetration tool berbasis sistem terdistribusi untuk analisa vulnerability pada web application

  1. 1. Penetration Tool Berbasis Sistem Terdistribusi untuk Analisa Vulnerability Pada Web Application Aryya Dwisatya Widigdha 135120431 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 1 13512043@std.stei.itb.ac.id Abstrak— Dalam melakukan aksi taking-over website, attacker diharuskan untuk mengetahui vulnerability yang ada. Di sisi lain, seorang administrator pun harus mengetahui vulnerability yang ada agar tidak ada attacker yang dapat masuk ke dalam website tersebut. Salah satu cara untuk mengetahui vulnerability tersebut adalah dengan melakukan penetration testing. Sayangnya, penetration tool yang ada sekarang bertumpu pada resource tester sehingga untuk beban kerja yang berat, penetration testing menjadi terkendala. Oleh karenanya diperlukan pendekatan sistem terdistribusi. Tulisan ini membahas konsep penetration testing dan sistem terdistribusi secara umum sebagai pendekatan pembangunan penetration tool serta rancangan solusi berupa gambaran konseptual terhadap perangkat lunak yang akan dikembangkan. Kata kunci— Distributed System, Penetration testing, Penetration tool. I. PENDAHULUAN Saat ini, website bukan lagi menjadi sebuah barang mewah yang hanya dimiliki oleh kalangan dengan strata sosial tertentu melainkan sudah dapat dimiliki oleh berbagai kalangan baik perorangan, komunitas, organisasi, maupun institusi. Kemurahan dan kemudahan dalam memiliki dan membuat website ini menjadikan jumlah website menjadi semakin banyak dan tidak dapat terkendali. Namun sayangnya, tidak semua pemilik website sadar akan security dari website tersebut. Pada umumnya, pemilik website tidak memedulikan urusan security karena ketidaktahuan terhadap dampak dari lemahnya security dan kurangnya kemampuan teknis untuk meningkatkan kualitas security dari website yang dimilikinya. Akibatnya, banyak dijumpai website yang dapat diakses, tapi memiliki celah keamanan yang dapat digunakan oleh attacker untuk melakukan take over. Walaupun ketidaktahuan terhadap teknis cukup teratasi dengan adanya beberapa tools untuk melakukan penetration testing seperti Nikto, Acunetix, dan lain sebagainya, tapi tetap saja dibutuhkan langkah-langkah yang cukup panjang dan membingungkan bagi kalangan non-IT untuk melakukan penetration testing. Selain itu, keterbatasan resource dari pengguna dalam melakukan penetration testing seperti koneksi internet dan waktu menjadi kendala tersendiri. Hal inilah yang seringkali membuat security tidak menjadi fokus utama hingga sebuah insiden terjadi. Oleh karena hal tersebut maka penulis merasa perlu adanya sebuah sistem yang mampu memberikan laporan hasil penetration testing terhadap website yang sederhana untuk pengguna non-IT. Selain itu, penetration tools yang ada sekarang masih bergantung pada resource yang dimiliki oleh pengguna seperti koneksi internet dan hardware yang terpasang sehingga tidak langsung membatasi pengguna dengan resource yang tidak mencukupi. Oleh karena itu pula diperlukan pendekatan lain dalam pembuatan penetration tool yakni dengan pendekatan sistem terdistribusi. II. KONSEP DASAR SISTEM TERDISTRIBUSI Definisi Sistem Terdistribusi Sistem terdistribusi atau distributed system merupakan sebuah sistem yang terdiri atas komponen independen namun menyediakan kesatuan layanan kepada penggunanya. Seperti yang diungkapkan oleh Leslie Lamport, “A distributed system is one in which the failure of a computer you did not even know existed can render your own computer unusable.” (IF3230-07-IntroSister- 2015 hal.2). Karakteristik Sistem Terdistribusi Suatu sistem disebut sistem terdistribusi ketika memiliki beberapa karakteristik berikut: 1.Scalability Scalability dapat diartikan sebagai kemampuan sistem untuk tumbuh. Dalam hal ini, tumbuh dimaksud sebagai kemampuan sistem untuk menangani masalah yang terus bertambah. 2.Availability Availability diartikan sebagai prosentase sistem berada dalam kondisi yang berfungsi sebagai mana mestinya. Dalam availability, terdapat beberapa variasi prosentase availability terkait downtime per tahun yakni:  90% : downtime lebih dari satu bulan  99% : downtime kurang dari 4 hari
  2. 2.  99.9% : downtime kurang dari 9 jam  99.99% : downtime kurang dari 1 jam  99.999% : downtime sekitar 5 menit  99.9999% : downtime sekitar 31 detik 3.Transparency Sistem terlihat tunggal oleh pengguna walaupun di dalamnya terdapat banyak komponen yang saling berhubungan. 4.Openness Sistem dapat berfungsi sebagaimana mestinya dan mudah untuk dilakukan penambahan perangkat ketika dibutuhkan. Hybrid Network Model Dalam menyusun sebuah terdistribusi harus dipertimbangkan model jaringan yang akan digunakan. Salah satu model jaringan yang diperuntukkan untuk sistem terdistribusi adalah Hybrid Model yang mana setiap peer terhubung ke peer lain serta satu server pusat yang berperan sebagai seorang koordinator. Adapun semua beban pekerjaan dibebankan kepada peer sedangkan pembagian resource diberikan oleh server pusat. Arsitektur jaringan dapat dilihat pada Gambar 0-I Hybrid Network Model. Gambar I Hybird Network Model Pada Hybrid Network Model, setiap server berperan sebagai endpoint yang menyediakan service yang dapat digunakan oleh pengguna. Setiap server dapat berdiri sendiri dan membuat sistem berfungsi walaupun hanya terdapat satu server. Perubahan jumlah server atau endpoint dilakukan dalam langka meningkatkan scalability dari sistem. III. KONSEP DASAR PENETRATION TESTING Definisi Penetration testing Dalam bidang keamanan, dikenal istilah penetration testing dengan penetration tester sebagai sebutan untuk orang yang melakukannya. Penetration testing dapat diartikan sebagai sebuah upaya untuk mendapatkan akses ke resource tanpa memiliki pengetahuan terhadap username, password, atau akses legal pada umumnya. Biasanya, hasil akhir dari penetration testing adalah data- data rahasia atau informasi yang tidak diperuntukkan publik. Berbeda dengan vulnerability assessment, penetration testing mengedepankan tujuan untuk mendapatkan akses sedangkan vulnerability assessment hanya berfokus kepada pencarian vulnerability dari sebuah sistem. Dengan kata lain dapat dikatakan bahwa penetration testing adalah langkah lanjut dari vulnerability assessment. Mengapa Harus Melakukan Penetration testing Ada banyak alasan mengapa penetration testing perlu dilakukan. Namun, pada dasarnya penetration testing dilakukan untuk menemukan celah keamanan sebelum attacker menggunakan celah keamanan tersebut untuk melakukan take over. Selain itu, alasan lain yang sering ditemui terkait pelaksanaan penetration testing antara lain: 1.Memverifikasi konfigurasi dari suatu sistem 2.Melakukan training 3.Melakukan uji coba terhadap teknologi baru yang diterapkan pada suatu sistem. Web Application Penetration testing Dalam melakukan web application penetration testing ada beberapa tahapan yang biasanya dilakukan. Tidak hanya melakukan testing melainkan juga information gathering. Berikut adalah tahapan yang biasa dilakukan berdasarkan OWASP. 1. Information Gathering 2. Configuration Management Testing 3. Authentication Testing 4. Session Management Testing 5. Authorization Testing 6. Business Logic Testing 7. Data Validation Testing 8. Denial of Service Testing 9. Web Service Testing 10. Ajax Testing IV. PEMBAHASAN Rancangan Solusi Adapun rancangan perangkat lunak yang diajukan adalah sebagai berikut: System Requirements 1. Sistem mampu melakukan pengecekan port yang terbuka pada host target 2. Sistem mampu melakukan pengecekan vulnerability terkait versi web application yang digunakan 3. Sistem mampu melakukan pengecekan celah keamanan RFI pada host target 4. Sistem mampu melakukan pengecekan celah keamanan SQLi pada host target 5. Sistem mampu melakukan pengecekan celah keamanan LFI pada host target
  3. 3. 6. Sistem mampu membuat laporan hasil pengecekan 7. Sistem mampu membuat rekomendasi terkait celah keamanan yang ditemukan 8. Sistem mampu membuat laporan tren vulnerability yang ada 9. Sistem menyediakan mekanisme penambahan server Arsitektur Jaringan Gambar II Rancangan Arsitektur Jaringan Jaringan yang diajukan sebagai solusi dari permasalahan yang ada terdiri dari empat komponen utama yakni tracker, server, end user, dan database. Dalam hal ini, tracker akan menjadi koordinator dari semua server dan menerima permintaan penetrasi dari user dan mengalokasikan server tertentu untuk melaksanakannya. Dengan demikian, akan terjadi load balancing pada server yang ada. Selain itu, setiap server memiliki fungsionalitas yang sama dan independen. Perubahan jumlah server dilakukan guna meningkatkan scalability dan availability dari sistem. Dalam rancangan jaringan ini, digunakan dua buah database yakni database lokal yang ada di setiap server dan database global yang menyimpan semua data kombinasi dari database local. Database dibagi menjadi dua tipe dengan maksud agar terdapat database global yang mencakup semua database yang ada sehingga dapat dilihat tren vulnerable yang ada dengan lebih mudah dengan cara memotong cost fetch data dari database lokal tiap server serta sebagai antisipasi server mengalami failure. Fungsionalitas Komponen Jaringan Tracker 1. Tracker mampu mendata semua server yang aktif 2. Tracker mampu melakukan logging terkait semua request ke server 3. Tracker mampu berkomunikasi dengan semua server yang terdaftar 4. Tracker mampu membuat laporan tren vulnerability Server 1. Server mampu berkomunikasi dengan tracker 2. Server mampu berkomunikasi dengan server lain 3. Server mampu mendaftarkan diri pada tracker 4. Server mampu menghasilkan laporan 5. 6. Server mampu melakukan port scanning 7. Server mampu melakukan pengecekan vulnerability terkait versi web application yang digunakan 8. Server mampu melakukan pengecekan celah keamanan SQLi pada host target 9. Server mampu melakukan pengecekan celah keamanan LFI pada host target 10. Server mampu membuat rekomendasi terkait celah keamanan yang ditemukan Arsitektur Database Table Server.Orders Primary key: nomor Keterangan: tabel Orders berisikan daftar pekerjaan yang diberikan oleh tracker kepada server. Berupa antrian yang harus dikerjakan oleh server. No Nama Type Keterangan 1 Nomor Integer Autoincrement 2 Requester Varchar(15) Berisikan IP address dari client 3 Type Int(2) Merepresentasikan service yang diminta oleh pengguna seperti port scanning, lfi scanning, sqli scanning, dan lain nya 4 Email Varchar(64) Email address pengguna sebagai tujuan pengiriman laporan. 5 Status Int(1) Merepresentasikan status dari pekerjaan yang masuk dalam antrian yakni: 0 berarti belum dikerjakan 1 berarti sedang dikerjakan 9 sudah dikerjakan dan dikirim laporannya 6 Arrive_time Timestamp Tanda waktu order diterima
  4. 4. 7 Done_time Timestamp Tanda waktu order selesai dikerjakan Table Server.tracker_info Primary key: ip Keterangan : informasi tracker No Nama Type Keterangan 1 No Integer Autoincrement 2 Ip Varchar(15) Berisikan IP address dari client 3 Port Int Merepresentasikan service yang diminta oleh pengguna seperti port scanning, lfi scanning, sqli scanning, dan lain nya Table Tracker.Orders Primary key: nomor Keterangan: tabel Order berisikan daftar pekerjaan yang diterima oleh tracker dan alokasinya pada server No Nama Type Keterangan 1 Nomor Int Autoincrement 2 Requester Varchar(15) Berisikan IP address dari client 3 Type Int(2) Merepresentasikan service yang diminta oleh pengguna seperti port scanning, lfi scanning, sqli scanning, dan lain nya 4 Email Varchar(64) Email address pengguna sebagai tujuan pengiriman laporan. 5 Status Int(1) Merepresentasikan status dari pekerjaan yang masuk dalam antrian yakni: 0 berarti belum dikerjakan 1 berarti sedang dikerjakan 9 sudah dikerjakan dan dikirim laporannya 6 Arrive_time Timestamp Tanda waktu order diterima 7 Done_time Timestamp Tanda waktu order selesai dikerjakan 8 Handler Int Berisikan id (prime key) dari server yang mengerjakan order Table Tracker.Server Primary key: nomor Keterangan: tabel server berisikan informasi server yang terdaftar pada tracker No Nama Type Keterangan 1 Nomor Int Autoincrement 2 ip Varchar(15) Berisikan IP address dari client 3 port Int(2) Berisikan port yang digunakan oleh server 4 status Int(1) Merepresentasikan status dari server: 0 berarti tidak aktif 1 berarti aktif 5 Registered_timestamp timestamp Berisikan waktu awal server terdaftar pada tracker Table Tracker.Logs Primary key: id Keterangan: tabel logs berisikan aksi-aksi yang dilakukan oleh tracker seperti menerima request, meneruskan request, CRUD database, dan lain-lain. No Nama Type Keterangan 1 id Int Autoincrement 2 action Varchar(64) Berisikan aksi yang dilakukan oleh tracker 3 Description Text Berisikan deskripsi aksi yang dilakukan seperti source dan tujuan 4 timestamp Timestamp Merepresentasikan waktu awal aksi dilakukan Protokol Komunikasi Agar setiap komponen dapat berkomunikasi antara satu dengan yang lain maka diperlukan sebuah aturan atau yang biasa dikenal dengan protokol komunikasi. Dalam hal ini, format JSON digunakan dalam protokol komunikasi antara server dan tracker serta antar server. Table 0-1 Spread Server List Caller - Format pesan { “method”: “serverList”, “list” : [ {“ip” : “192.168.0.32”,”port”:1337}, {“ip” :
  5. 5. “192.168.0.33”,”port”:1337} ] } Table 0-2 Format Join Caller Server Format request { “method” : “join”, “ip” : “192.168.0.32”, “port” : 1337, “key” : “123456789” } Format respon sukses { “status” : “ok”, “value” : [ {“ip” : “192.168.0.32”,”port”:1337}, {“ip” : “192.168.0.33”,”port”:1337} ] } Format respon gagal { “status” : “error”, “description” : “error description” } Table 0-3 Port Scanning Caller Tracker Format request { “method” : “portscan”, “target” : “www.bangsatya.com”, } Format respon sukses { “status” : “ok”, “method” : “portscan”, “target” : “www.bangsatya.com”, “value” : [ {“port” : 80,”status”:”on”}, {“port” : 3306,”status”:”off”}, {“port” : 8080, “status”: “off} ] } Format respon gagal { “status” : “error”, “description” : “error description” } Table 0-4 CMS Scan Caller Tracker Format request { “method” : “cmsscan”, “target” : “www.bangsatya.com”, } Format respon sukses { “status” : “ok”, “method” : “cmsscan”, “target” : “www.bangsatya.com”, “cms” : “wordpress”, “vuln” : [ {“plugin” : “Complete Gallery Manager 3.3.3”,”status”:”safe”,”desc”:”-”}, {“plugin” : “Traffic Analyzer”,”status”:”vuln”,”desc”:” https://www.exploit- db.com/exploits/36677/”}, ] } Format respon gagal { “status” : “error”, “description” : “error description” } Table 0-5 Web Server Scan Caller Tracker Format request { “method” : “webserverscan”, “target” : “www.bangsatya.com”, } Format respon sukses { “status” : “ok”, “method” : “webserverscan”, “target” : “www.bangsatya.com”, “webserver” : “Apache 0.8.x”, “vuln” : [ {“name” : “test-cgi Directory Listing Vulnerability”,”desc”:” https://www.exploit- db.com/exploits/36562/”} ] } Format respon gagal { “status” : “error”, “description” : “error description” } Table 0-6 RFI Scan Caller Tracker Format request { “method” : “rfiscan”, “target” : “www.bangsatya.com”, } Format respon { “status” : “ok”,
  6. 6. sukses “method” : “rfiscan”, “target” : “www.bangsatya.com”, “url” : [ “www.bangsatya.com/page.php?open=”, ”www.bangsatya.com/file.php?open=” ] } Format respon gagal { “status” : “error”, “description” : “error description” } Table 0-7 LFI Scan Caller Tracker Format request { “method” : “lfiscan”, “target” : “www.bangsatya.com”, } Format respon sukses { “status” : “ok”, “method” : “lfiscan”, “target” : “www.bangsatya.com”, “url” : [ “www.bangsatya.com/page.php?open=”, ”www.bangsatya.com/file.php?open=” ] } Format respon gagal { “status” : “error”, “description” : “error description” } Table 0-8 SQL Injection Scan Caller Tracker Format request { “method” : “sqliscan”, “target” : “www.bangsatya.com”, } Format respon sukses { “status” : “ok”, “method” : “sqliscan”, “target” : “www.bangsatya.com”, “url” : [ “www.bangsatya.com/news.php?id=”, ”www.bangsatya.com/member.php?mid=” ] } Format respon gagal { “status” : “error”, “description” : “error description” } V. KESIMPULAN Dengan adanya penetration tool berbasis sistem terdistribusi diharapkan keterbatasan penetration testing menggunakan single komputer dapat diatasi terlebih dengan adanya kemudahan penambahan host sehingga scalability dari sistem terjamin. Dengan kata lain, jumlah beban yang dapat ditangani berbanding lurus dengan jumlah mesin yang dialokasikan. Selain itu, penetration testing dapat semakin mudah dengan dapat dilakukan secara remote dan konkuren. REFERENSI [1] OWASP Foundation.“OWASP TESTING GUIDE”.2008. [2] Stephen Northcutt, Jerry Shenk, Dace Shackleford, Tim Rosenberg, Raul Siles,, Steve Mancini.“Penetration Testing: Assessing Your Overall Security Before Attackers Do”. 2006. [3] Achmad Imam Kistijantoro, Afwarman Manaf. “IF3230 Sistem Paralel dan Terdistribusi Intro Sistem Terdistribusi”. 2014. PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 7 Juli 2015 Aryya Dwisatya W

×