Insecure Direct Object References

Judul postingan kali ini agak sedikit panjang Insecure Direct Object References. Pada tulisan ini saya masih akan melanjutkan pembahasan tentang OWASP top 10, sekarang giliran ranking ke 4. Sebenarnya apa sih yang dimaksud dengan celah keamanan ini? Untuk mempermudah penjelasannya, saya gunakan contoh pada gambar di bawah ini:insecure direct object Refences

Contohnya kita mengakses website sebuah bank. Setelah berhasil login maka akan ditampilkan informasi tentang rekening kita. Pada url tercantum alamat https://www.onlinebank.com/user?acct=6065  Melihat alamat ini user menyadari bahwa parameter yg digunakan aplikasi untuk menampilkan data rekening dia adalah acct=6065. Selanjutnya dia mencoba untuk memasukkan nomor referensi yang lain. misalnya dia mengganti parameter pada url menjadi acct=6066. Ternyata aplikasi menampilkan data rekening dari orang lain, tanpa meminta login terlebih dahulu.

Celah keamanan ini bisa terjadi karena kesalahan pada pembatasan otorisasi objek pada user, serta objek refences yg tidak dilindungi (hidden). Untuk mengatasinya sebaiknya direct object reference dihilangkan. Bisa diganti dengan temporary mapping value, atau random mapping. Selain itu penting dilakukan validasi terhadap direct object reference dan penerapan acl (access control list). Untuk mencari adanya celah keamanan ini bisa dilakukan dengan melakukan analisa kode (code review) maupun pengujian manual. Saat ini belum ada tools yang mampu melakukan scanning otomatis untuk menemukan celah keamanan ini. Beberapa bahan bacaan tentang tema ini bisa dilihat pada link berikut:

https://www.owasp.org/index.php/Top_10_2007-Insecure_Direct_Object_Reference

http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/AccessReferenceMap.html

http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/AccessController.html

http://cwe.mitre.org/data/definitions/639.html

http://cwe.mitre.org/data/definitions/22.html

XSS attack

Point berikutnya dari OWASP top 10 adalah Cross-Site Scripting atau sering disingkat XSS attack. Kenapa tidak disingkat CSS, agar tidak tertukar dengan cascade style-sheet.  Serangan ini ditujukan pada web. XSS dilakukan dengan melakukan injeksi kode client side script pada sebuah web. Kode injeksi ini berbeda dengan injeksi kode SQL pada SQL injection. Dengan melakukan serangan ini, penyerang dapat mengambil session dari korban, melakukan deface website. memasukkan konten tertentu, redirect user dll.

Terdapat 3 macam XSS yaitu, stored, reflected dan DOM based xss. Untuk mengetahui apakah sebuah web memiliki celah keamanan ini, bisa dilakukan dengan code analysis, dengan pengujian memasukkan script code tertentu , selain itu terdapat juga beberapa tools  yang bisa melakukan deteksi secara automatis. Untuk mencegah serangan ini bisa dilakukan validasi input, whitelist maupun sanitasi input. Sanitasi bisa digunakan dengan menggunakan library OWASP anti Sammy atau Java HTML Sanitizer Project

 

from http://hackertarget.com/xss-tutorial/
from http://hackertarget.com/xss-tutorial/

OWASP telah menyiapkan beberapa dokumen yang dapat digunakan untuk mempelajari pencegahan serangan ini, bisa dilihat pada link berikut:

OWASP XSS Cheat Sheet

DOM based XSS Cheat Sheet

OWASP CSS article

ESAPI Encoder API

ASVS: Output Encoding/Escaping Requirements (V6)

OWASP AntiSamy: Sanitization Library

Testing Guide: 1st 3 Chapters on Data Validation Testing

OWASP Code Review Guide: Chapter on XSS Review

OWASP XSS Filter Evasion Cheat Sheet

CWE Entry 79 on Cross-Site Scripting

Session Hijacking

Ranking 2 pada OWASP top 10 adalah Broken Authentication and Session Management, atau istilah populernya adalah session hijacking. Ketika kita ingin login ke sebuah website misalnya facebook, kita akan diminta memasukkan login dan password. Bila login dan password benar maka login berhasil dan kita mendapat akses ke facebook. Nah server akan membuat session, dan menyimpan informasi session (umumnya berupa cookies) pada browser di komputer kita. Selama session belum berakhir (umumnya ketika kita logout) maka server tidak akan meminta kita untuk memasukkan login dan password ketika kita membuka facebook. Jadi ibaratnya selama session itu masih berlaku (valid) antara komputer kita dengan server facebook dibangun sebuah jalur koneksi khusus.

Nah penyerangan contohnya dilakukan dengan metode sniffing, dan mencuri session. Jadi penyerang akan melakukan sniffing dan mencuri cookies yang digunakan. Cookies ini kemudian  dipasang di browser penyerang. Bila session masih valid maka penyerang dapat masuk ke Facebook korban tanpa perlu login. Selain itu ada juga penyerangan yang dilakukan dengan metoda phishing.

owasp A2 o

Ada beberapa kesalahan pada pengembangan website yang bisa digunakan untuk melakukan penyerangan ini. Misalnya website tidak melakukan timeout terhadap session, kemudian password management yang tidak baik, atau adanya fungsi recover password untuk user yang lupa password yang tidak aman. Yang paling parah adalah website yang menampilkan session ID pada URL. Selain itu ada info password dan login yang dikirimkan tanpa dienkripsi.

Untuk pencegahan, OWASP telah menyediakan dokumen  OWASP ASVS (Application Security Verifivation Standard). Untuk bacaan lebih lanjut bisa dilihat pada link berikut:

OWASP Authentication cheat sheet

OWASP Forgot password Cheat sheet

Session Management Cheat sheet

Web Injection

Point pertama dari OWASP Top 10 adalah Web Injection (A1). Web Injection adalah memasukkan kode tertentu pada web/aplikasi. Oleh aplikasi kode ini akan dijalankan sebagai command/query. Injection umumnya dilakukan pada form login atau form input. Selain itu ada juga yang dilakukan pada alamat web. Tujuan akhir serangan adalah mendapatkan akses ke database/ aplikasi tanpa perlu login.  Penyerangan dapat dilakukan pada SQL, LDAP maupun pada OS. Ada banyak sekali teknik penyerangan yang digunakan mulai dari memasukan string SQL sampai penyerangan kompleks yang membutuhkan pemahaman coding dan database yang baik. Untuk mencari celah keamanan ini bisa digunakan Scanner, teknik fuzzing atau mempelajari kode web atau aplikasi. Resiko tertinggi dari serangan ini adalah pengambilalihan aplikasi atau web oleh penyerang.

Contoh serangan paling sederhana adalah dengan memasukkan kode ‘ or ‘1’=’1  pada form login. Langkah pencegahan yang dapat dilakukan adalah dengan memperhatikan interpreter yang digunakan. menggunakan variable bind, melakukan encoding semua input, menggunakan whitelist pada semua input, serta membatasi privilige (hak akses) ke database. OWASP membuat API yang bisa digunakan untuk mencegah serangan ini ESAPI.

sqlInjections2

Beberapa dokumen yang bisa digunakan untuk mempelajari tentang Injection ini bisa dilihat disini:

OWASP SQL Injection Prevention Cheat Sheet

OWASP Query Parameterization Cheat Sheet

OWASP Command Injection Article

OWASP XML eXternal Entity (XXE) Reference Article

ASVS: Output Encoding/Escaping Requirements (V6)

OWASP Testing Guide: Chapter on SQL Injection Testing

CWE Entry 77 on Command Injection

CWE Entry 89 on SQL Injection

CWE Entry 564 on Hibernate Injection

OWASP Top10

Saya akan lanjutkan sharing tentang materi pada CYSE2014. Hari ini saya akan lanjutkan cerita tentang presentasi pak Andika. Beliau cerita tentang OWASP Top10. OWASP (The Open Web Application Security Project) merupakan organisasi/komunitas terbuka yang fokus di bidang Keamanan Aplikasi.  OWASP melakukan penelitian dan mensosialisasikan hasilnya untuk meningkatkan kesadaran akan keamanan aplikasi. OWASP memiliki beberapa project diantaranya WebGoat, Webscarab dan OWASP top10. OWASP Top10 merupakan dokumen yang merangkum 10 celah keamanan pada aplikasi yang paling berbahaya saat ini. Dengan adanya dokumen ini diharapkan pengembang aplikasi dapat memahami 10 celah keamanan ini dan mencegah timbulnya 10 masalah ini pada aplikasinya.

owasp top10

OWASP top 10 telah ada sejak tahun 2003, kemudian ada versi 2004, 2007, 2010 dan 2013.  Untuk 2013 list 10 celah keamanannya adalah:

A1. Injection

A2. Broken Authentication and Session Management

A3. Cross-Site Scripting (XSS)

A4. Insecure Direct Object References

A5. Security Misconfiguration

A6. Sensitive Data Exposure

A7. Missing Level Access Control

A8. Cross Site Request Forgery (CSRF)

A9. Using Known Vulnerable Components

A10. Unvalidated Redirects and Forwards

Untuk list 2013 ini, point A9 belum ada pada list top 10 tahun 2010. Selain itu ada 3 perubahan urutan, ada 1 point yang diperluas serta ada 2 point yang digabungkan. Penyusunan ranking ini menggunakan metoda risk rating. Jadi yang memiliki peringkat 1 adalah yang memiliki resiko keamanan paling tinggi. Aspek yang diperhatikan dalam menghitung resiko keamanan adalah Attack Vector, Weakness Prevalence, Weakness Detectability, Technical Impact and business Impact. Masing-masing aspek tersebut diberi skor dan level (mudah, menengah , susah dll), sehingga akhirnya didapatkan skor yang menentukan urutan rangking dari resiko tadi. Penjelasan lebih lanjut tentang point OWASP top 10 akan saya lanjutkan pada tulisan berikutnya …

Survey Malware ID-CERT

ID-CERT (Indonesia Computer Emergency Response Team) sedang mencari relawan yang mau ikut serta dalam kegiatan survey malware. Survey Malware ID-CERT bertujuan untuk mendapatkan data tentang penyebaran malware di Indonesia.  Relawan diharuskan mendaftar terlebih dahulu dengan mengirimkan email berisi identitas dan kota asal. Kemudian relawan diminta melakukan pendeteksian malware (scanning) pada komputer atau laptop yang dimiliki dengan aplikasi tersebut. Setelah pendeteksian malware selesai, relawan diminta mengirimkan hasil scanning (report) ke email ID-CERT. ID-CERT kemudian mengumpulkan hasil report dan melakukan analisa. Hasil analisa yang didapatkan adalah data tentang penyebaran malware di Indonesia.

Relawan dapat mengunduh file dari link yang diberikan. Petunjuk pelaksanaan Survey Malware yang diberikan kepada para relawan adalah sebagai berikut:

1. kirim email ke daftar@malware.cert.or.id dengan keterangan nama lengkap, kota asal dan email anda;

2. unduh aplikasi yang digunakan untuk scan malware, di http://is.gd/idcert atau dari tautan https://www.dropbox.com/sh/n8gwludssk95odx/TrkFpnf49f lalu pilih download as .zip (agar mudah dapat didownload dalam format .zip); setelah selesai didownload, lalu ekstrak file Emsisoft Emergency Kit.zip;

3. jalankan start.exe yang terdapat pada folder Emsisoft Emergency Kit;

4. pilih Emergency Kit Scanner -> Scan PC;idcert

5. pilih metode scan sesuai kebutuhan (Quick Scan, Smart Scan, Deep Scan, Custom Scan);

6. tekan tombol ‘Scan’; Tunggu sampai scan selesai;

7. tekan tombol ‘View Report’ dan folder log akan terbuka;

8. kirimkan melalui email file log tersebut ke <lapor@malware.cert.or.id> (file report tersimpan pada folder /Run/Report/…..).

Scanning dilakukan hanya pada komputer dengan OS Windows. Bila ada pertanyaan bisa hubungi email berikut support@malware.cert.or.id. Mari kita ikut serta jadi relawan survey malware

CYSE -translation project

Kemaren saya diundang ikut acara CYSE (Cyber Security) seminar yang diselenggarakan oleh ITB dan KOICA (Korean International Cooperation Agency . Acaranya diadakan di Jatinangor,  (lumayan jauh dari Bandung) kampus ITB baru, tepatnya di gedung ITB-Korea Cyber Security R&D Center.  Event ini rencananya bakal dibuat tahunan, tema tahun ini adalah Cyber Security Trend & Technology in Military and finance. Acaranya 2 hari, tanggal 25 dan 26 Juni 2014. Saya akan coba sharing dalam beberapa tulisan oleh-oleh dari seminar ini. Hari pertama materi pertama harusnya disampaikan oleh pak Budi Rahardjo tentang hacking di Indonesia beserta demo hacking. Tapi berhubung beliau berhalangan, jadi diwakili oleh Pak Andika Triwidada yang bawa tim dari IndoCISC mas Sakti dan Akmal yang bakal demo hacking.

translation main-image

Hari ini saya mau cerita tentang aktifitas Pak Andika sebagai penggiat open source. Beliau tidak hanya mendukung dan menggunakan aplikasi open source di Indonesia tapi juga ikut aktif menerjemahkan beberapa aplikasi open source ke dalam bahasa Indonesia. Contohnya sekarang beliau lagi menyiapkan terjemahan LibreOffice versi terbaru dalam bahasa Indonesia. Alasannya menurut pak Andika karena aplikasi berbahasai Indonesia ternyata sangat memudahkan banyak user.  Kita juga bisa ikut bantu menerjemahkan aplikasi open source ke dalam bahasa Indonesia. Caranya bisa langsung liat di https://translations.launchpad.net/  Disana ada banyak list aplikasi yang bisa kita pilih, kemudian kita tinggal register dan kita bisa pilih mau menerjemahkan aplikasi tersebut ke bahasa apa. Bahkan kita bisa menerjemahkan aplikasi ke dalam bahasa daerah, seperti sunda, batak dll. Untuk menerjemahkan LibreOffice bisa join di web ini https://translations.documentfoundation.org/  Selain itu ada juga https://l10n.gnome.org/ , kalau ini tentang lokalisasi Gnome. Maksudnya bukan lokalisasi yang lagi heboh karena mau ditutup ibu walikota, tapi tentang membuat GNOME desktop dalam berbagai bahasa lokal.  Terakhir ada http://pootle.lxde.org/ Nah yang ini alat bantu yang bisa kita gunakan dalam proses penerjemahan aplikasi. Beda jauh dengan google translate. Kalo google translate digunakan untuk menerjemahkan, jadi seperti kamus online. Ternyata menerjemahkan aplikasi itu menyenangkan dan yang jelas sangat bermanfaat. Mari kita bantu proyek penerjemahan ini.

ps: kalo ada yg mau ditanyakan tentang kegiatan translation ini silahkan langsung menghubungi pak Andika

Tentang Maltego

Saya mau share presentasi kelompok Harits dan Dinna tentang Maltego. Maltego ini tools yang banyak digunakan dalam proses forensik dan intelligence. Aplikasi ini digunakan untuk mengumpulkan informasi. Analogi pada dunia nyata misalnya polisi ingin mengetahui informasi tentang seorang tersangka. Polisi akan berusaha bertanya ke kenalan tersangka tersebut, mungkin keluarganya, temannya dan lain-lain. Informasi ini kemudian akan dianalisa dan dicari keterhubungannya. Sehingga nanti akan didapat informasi tersangka itu tinggal dimana, dia dekat dengan kelompok apa, sifat dan kesenangannya apa dll.

Dalam dunia digital proses pengumpulan informasi ini dapat dilakukan oleh Maltego. Jadi seolah-olah Maltego menjadi detektif digital. Aplikasi akan menampilkan hasil analisa tentang hubungan antara orang, kelompok, website, domain, jaringan serta layanan online seperti Facebook dan Twitter. Maltego akan melakukan data-mining terhadap kata kunci yang kita cari, bisa berupa nama orang, nama organisasi dll. Data yang dikumpulkan akan dianalisa dan ditampilkan dalam bentuk grafik. Tools ini open source dan dikembangkan berbasis java.

maltego

Maltego banyak digunakan dalam proses penetration test. Misalnya kita diminta untuk menguji sistem keamanan sebuah bank. Maltego dapat kita gunakan untuk mengumpulkan informasi sebanyak2nya tentang bank tersebut. Dengan tools ini akan didapatkan informasi web server bank tersebut, top level domain yang digunakan, server emailnya, IP address, alamat SMTPnya dan informasi tentang user yang ada di bank tersebut. Maltego sudah termasuk dalam paket aplikasi pada Kali linux. Informasi tentang maltego bisa dilihat disini di blog berikut atau tutorial ini. Selamat mencoba!

 

CYSE 2014

Ada Event seru nih minggu depan CYSE (Cyber Security Trend and Technology in Military and Finance). Acara ini diadakan ITB-Korea Cyber Security R&D Center tanggal 25 – 26 Juni 2014 di kampus ITB Jatinangor.  Ada seminar dan pameran tentang perkembangan teknologi keamanan di bidang militer dan keunganan. Acaranya 2 hari, hari pertama ada seminar tentang Hacking yang diisi oleh Bpk Budi Rahardjo. Setelah itu ada simulasi hacking dan pameran produk karya mahasiswa tentang keamanan. Hari kedua ada diskusi panel yang diisi oleh Letjen Subekti (Rektor Indonesia Defense University), Dr.Timbul Siahaan (Departemen Pertahanan) tentang cyber militer, ada juga dari Korea Army commander yang presentasi tentang pengamanan cyber disana.

Selanjutnya ada sesi tentang keamanan di bidang keuangan, ada presentasi dari Irjen Suhardi (Kabareskrim Polri), Dr.Rahmat Waluyanto (dari OJK), Mr Hyung Jin Lim (Korea Financial Security Authority), Bpk Hermawan Tendean ( BCA). Sesi terakhir ada presentasi dari Dr.Yudi Satria dan Dr.Suhardi.  Untuk pendaftaran bisa menghubungi Merry : merrynancyitb@gmail.com.

cyse

Berikut saya lampirkan penjelasan tentang acara ini, saya ambil dari booklet acara CYSE.

Introduction
Indonesia tries to accelerate the national economic development by increasing
investment in the ICT sector since ICT has proved positively contribute to the economic
growth in every country. A rapid development in the ICT sector gives a positive impact
on economic growth and also a big threat for cyber security in Indonesia. Through the
project of “The Enhancement of Cyber Security Capability of Indonesia” Korea and
Indonesia has activated the collaboration activity to develop the capability to cope
with those threats that come from cyberspace.
ITB-Korea Cyber Security Seminar (CYSE) 2014 is a part of the milestone of the
collaboration, this is one of the venue to increase the cyber security awareness and
capability in Indonesia. The seminar will focusing on the military cyber security and
ICT security in financial sector and together with Korea experts we expect to present
an active and insightful discussion. Here with, we would like to invite you to be a
part of the event and participate in succeeding The ITB-Korea Cyber Security Seminar
2014.

OpenVAS

Minggu kemaren adalah waktunya presentasi di kelas Keamanan Jaringan. Hari ini saya mau share presentasi kelompok Dudung dan Fitri, tentang OpenVAS. OpenVAS (Open Vulnerability Assessment System) merupakan alat bantu yang banyak digunakan untuk mencari celah keamanan  dan menguji keamanan sebuah sistem. OpenVAS masih keluarga dengan Nessus (tools yang banyak digunakan untuk melakukan scanning pada web). Bedanya OpenVAS ini open source. Konon kabarnya OpenVAS dikembangkan dari versi free dari Nessus. Tools ini banyak digunakan, dan termasuk top 5 open source tools di bidang security.

openvas

Fitur yang disediakan bisa melakukan scanning beberapa target secara paralel, support SSL, support WMI dll. Ada dua komponen yaitu scanner dan manajer. Ada Greenbone juga yang jadi dashboard GUI-nya. Untuk instalasi tersedia beberapa pilihan. Kita bisa mengunduh versi VirtualBox. Jadi setelah kita unduh nanti konfigurasi di VBox terus bisa langsung gunakan. File yang disediakan ber-ekstensi OVA. Bisa dilihat di link berikut http://www.openvas.org/vm.html Selain itu bisa diunduh langsung dari repository. Petunjuknya bisa dilihat disini http://wald.intevation.org/scm/?group_id=29. Kita bisa download juga donlot source codenya dari link berikut http://www.openvas.org/install-source.html.

Hasil scanning akan ditampilkan celah keamanan yang sudah dikategorikan High risk, medium dan low risk. Hasil yang ditampilkan bisa kita filter dengan macam2 pilihan. Database vulnerabilitynya juga cukup banyak, menggunakan databas OSVDB. Bisa menganalisa sistem yang menggunakan Windows dan Linux. Semoga bermanfaat!