Anda di halaman 1dari 13

Ujian Akhir Semester Ganjil 2017/2018

Nama : Mohamad Yusuf Riyandi

NPM : TI1401014

Jurusan : Teknik Perangkat Lunak

Kode/Nama Dosen : ESN/Elia Setiana. S.Kom,. MT

Matakuliah : Keamanan Sistem Informasi

Soal!

Buatlah sebuah paper tentang Keamanan Web (masukan 2 dari 10 OWASP)!

Keamanan web atau web security adalah suatu proses untuk mengamankan

suatu web. Proses ini berupa suatu mekanisme yang bekerja untuk mencegah

akses dan modifikasi oleh user yang tidak dikenal, terhadap data-data dari web

yang tersimpan secara online. Celah keamanan pada aplikasi berbasis web yang

telah di sebutkan oleh (OWASP) Open Web Application Security Project adalah

project open source yang dibangun untuk menemukan penyebab dari tidak

amannya sebuah software dan menemukan cara menanganinya ada 9 celah

keamanan aplikasi web yang ditemukan dan rekomendasi.


Media Penyimpanan yang Tidak Aman pada Aplikasi

Web ( Insecure Storage )

Abstrak

Aplikasi web biasanya perlu menyimpan informasi yang sensitif seperti

password, informasi kartu kredit, dan yang lain. Dikarenakan item-item tersebut

bersifat sensitif item-item tersebut perlu dienkripsi untuk menghindari

pengaksesan secara langsung. Akan tetapi beberapa metode enkripsi yang lemah

dan masih bisa diserang.

Berikut ini beberapa kesalahan yang sering terjadi :

a) Kesalahan untuk mengenkripsi data penting. 

b) Tidak amannya kunci, certificate, dan password

c) Kurang amannya tempat penyimpanan data

d) Kurangnya perhitungan dari rekomendasi

e) Kesalahan pemilihan algoritma

f) Mencoba untuk menciptakan algoritma enkripsi yang baru.

Berdasarkan skenario diatas, terdapat sebuah aplikasi dimana terdapat password

pada user object. Akan tetapi, aplikasi menyimpan user objek ke dalam session

setelah user login. Permasalahan yang akan muncul pada skenario ini adalah

password dapat dilihat oleh seseorang yang dapat melihat session user tersebut.
Environments Affected

Sebagian besar lingkungan aplikasi web mencakup beberapa bentuk

dukungan kriptografi. Dalam kasus yang jarang terjadi, dukungan semacam itu

belum tersedia, ada beragam produk pihak ketiga yang dapat ditambahkan. Hanya

situs web yang menggunakan enkripsi untuk melindungi informasi dalam

penyimpanan atau transit yang rentan terhadap serangan tersebut. Perhatikan

bahwa bagian ini tidak mencakup penggunaan SSL, yang tercakup dalam

Insecure Configuration Management. Bagian ini hanya membahas enkripsi

program dari data lapisan aplikasi.

How to Determine If You Are Vulnerable

Menemukan kekurangan kriptografi tanpa akses ke kode sumber bisa

sangat memakan waktu. Namun, mungkin untuk memeriksa token, ID sesi,

cookies dan kredensial lainnya untuk melihat apakah mereka jelas tidak acak.

Semua pendekatan kriptanalisis tradisional dapat digunakan untuk mencoba

menemukan bagaimana sebuah situs web menggunakan fungsi kriptografi.

Sejauh ini pendekatan yang paling mudah adalah meninjau ulang kode untuk

melihat bagaimana fungsi kriptografi diimplementasikan. Pemeriksaan struktur,

kualitas, dan penerapan modul kriptografi harus dilakukan dengan hati-hati.

Peninjau harus memiliki latar belakang yang kuat dalam penggunaan kriptografi

dan kelemahan umum. Peninjauan juga harus mencakup bagaimana kunci, kata

kunci, dan rahasia lainnya disimpan, dilindungi, dimuat, diproses, dan dihapus

dari memori.
How to Protect Yourself

Cara termudah untuk melindungi dari kekurangan kriptografi adalah

meminimalkan penggunaan enkripsi dan hanya menyimpan informasi yang benar-

benar diperlukan. Misalnya, alih-alih mengenkripsi nomor kartu kredit dan

menyimpannya, cukup meminta pengguna memasukkan kembali nomor-

nomornya. Selain itu, alih-alih menyimpan kata sandi terenkripsi, gunakan fungsi

hash satu arah baru-baru ini (seperti SHA-256) untuk hash kata kunci.

Jika kriptografi harus digunakan, pilihlah perpustakaan yang telah terpapar

pengawasan publik dan pastikan tidak ada kerentanan terbuka. Enkapsulasi fungsi

kriptografi yang digunakan dan mengkaji ulang kode dengan saksama. Pastikan

rahasia, seperti kunci, sertifikat, dan kata sandi, disimpan dengan aman. Untuk

menyulitkan penyerang, rahasia utama harus dibagi menjadi setidaknya dua lokasi

dan dirakit saat runtime. Lokasi seperti itu mungkin termasuk file konfigurasi,

server eksternal, atau kode itu sendiri.


Kesimpulan

Keamanan Web memang tidak selalu aman, pasti ada celah yang dapat

dibobol/diretas oleh para hacker. Bahkan dalam media penyimpanan (storage)

sekalipun. Salah satu cara yang dilakukan untuk menghindari kesalahan

penyimpanan informasi yang sensitif adalah tidak membuat password sebagai

atribut dari kelas yang mewakili informasi user. Daripada mengenkripsi nomor

kartu kredit dari user, akan lebih baik untuk menanyakannya setiap kali

dibutuhkan.

Selain itu, menggunakan algoritma enkripsi yang sudah ada akan lebih baik

daripada membuat algoritma sendiri. Anda cukup memastikan algoritma yang

akan digunakan telah diakui oleh public dan benar-benar dapat dilaksanakan.
Serangan Injeksi Terhadap Aplikasi Web

(Injection Flaws)

Abstraksi

Aplikasi web adalah suatu aplikasi yang diakses menggunakan browser

web melalui jaringan internet. Jenis-jenis aplikasi web sangat beragam, seperti

sosial media, toko online dan website yang berisi informasi yang dalam beberapa

tahun terakhir menjadi target serangan cracker. Adapun ancaman yang sering

terjadi diantaranya merupakan ancaman Injeksi.

Injeksi merupakan sebuah teknik yang menyalahgunakan sebuah celah

keamanan yang terjadi dalam lapisan basis data dengan cara memodifikasi

perintah SQL yang ditujukan untuk menyerang database SQL server.

Kata Kunci : Injeksi, Aplikasi Web, SQL

Apa itu Injeksi?

Merupakan sebuah teknik yang menyalahgunakan sebuah celah keamanan

yang terjadi dalam lapisan basis data dengan cara memodifikasi perintah SQL

yang ditujukan untuk menyerang database SQL server.


Bagaimana cara kerja Injeksi?

Memanfaatkan celah yang ada ketika masukan pengguna tidak disaring

secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan

dalam pernyataan SQL dan menggunakan perintah SQL dengan memasukan kode

melalui halaman masuk pada suatu situs. Hal ini dikarenakan tidak adanya

penanganan terhadap karakter-karakter tanda petik tunggal (‘) dan juga karakter

double minus (--). Sehingga seorang Cracker dengan mudahnya menyisipkan

perintah SQL kedalam suatu parameter maupun suatu form.

Jenis-jenis serangan yang termasuk kategori Injeksi?

1. Identifying injectable parameters

Dengan cara ini penyerang hanya ingin menyelidiki aplikasi web hanya untuk

menemukan dimana parameter dan bidang input pengguna rentan terhadap

SQLIA.

2. Performing database finger-printing

Penyerang ingin menemukan jenis dan versi database yang aplikasi web

gunakan. Beberapa jenis database yang berbeda merespon secara berbeda

terhadap query dan serangan, dan informasi ini dapat digunakan untuk “sidik

jari” database. Mengetahui jenis dan versi database yang digunakan oleh

aplikasi web memungkinkan penyerang untuk “menyerang” database secara

spesifik.
3. Determining database schema

Untuk benar dalam mengekstrak data dari database, penyerang seringkali

perlu mengetahui informasi skema database, seperti nama tabel, nama kolom,

dan tipe data kolom.

4. Extracting data

Jenis-jenis serangan menggunakan teknik yang akan mengekstrak nilai data

dari database, tergantung pada jenis aplikasi web. Informasi ini bisa menjadi

sensitif dan sangat diinginkan untuk penyerang. Serangan dengan maksud ini

adalah jenis yang paling umum dari SQLIA.

5. Adding or modifying data

Tujuan dari serangan ini adalah untuk menambah atau mengubah informasi

dalam database.

6. Performing denial of service

Serangan ini dilakukan untuk menutup database dari aplikasi web, sehingga

menyangkal layanan kepada pengguna lain.

7. Evading detection

Kategori ini mengacu pada teknik serangan tertentu yang digunakan untuk

menghindari audit dan deteksi oleh mekanisme perlindungan sistem.

8. Bypassing authentication

Tujuan dari serangan jenis ini adalah untuk memungkinkan penyerang untuk

memotong database dan mekanisme otentikasi aplikasi.


9. Executing remote commands

Jenis serangan ini mencoba untuk menjalankan perintah sewenang-wenang

pada database. Perintah ini disimpan di prosedur atau fungsi yang tersedia

bagi pengguna database.

10. Performing privilege escalation

Serangan ini memanfaatkan kesalahan implementasi atau kekurangan logis

dalam database untuk meningkatkan hak-hak istimewa dari penyerang.

Berbeda dengan melewati serangan otentikasi, serangan ini fokus pada

pemanfaatan hak database pengguna.

Diatas merupakan beberapa jenis serangan menggunakan teknik Injeksi yang

sering digunakan oleh para Cracker.


Bagaimana cara mengatasi serangan Injeksi?

1. Merubah script php

Contoh script php awal

$query = “select id,name,email,password,type,block from user ” . 


“where email = ‘$Email’ and password = ‘$Password'”; 
$hasil = mySQL_query($query, $id_mySQL); 
while($row = mySQL_fetch_row($hasil))

$Id = $row[0]; 
$name = $row[1]; 
$email = $row[2]; 
$password = $row[3]; 
$type = $row[4]; 
$block = $row[5]; 

if(strcmp($block, ‘yes’) == 0)
{
echo “<script>alert(‘Your account has been blocked’);
document.location.href=’index.php’;</script>\n”; 
exit(); 

else if(!empty($Id) && !empty($name) && !empty($email) && !
empty($password));

Script diatas memungkinkan seseorang dapat login dengan menyisipkan

perintah SQL kedalam form masukan. Ketika cracker menyisipkan karakter ’ or ’’

= ’ kedalam form email dan password.

Select id, name, email, password, type, block, from user where email =
“or” = “and password = “or” = “
Maka dilakukan perubahan script menjadi :

$query = “select id,name,email,password,type,block from user”. 


“where email = ‘$Email'”; 
$hasil = mySQL_query($query, $id_mySQL); 
while($row = mySQL_fetch_row($hasil))

$Id = $row[0]; 
$name = $row[1]; 
$email = $row[2]; 
$password = $row[3]; 
$type = $row[4]; 
$block = $row[5]; 

if(strcmp($block, ‘yes’) == 0)

echo “<script>alert(‘Your account has been blocked’); 
document.location.href=’index.php’;</script>\n”; 
exit(); 

$pass = md5($Password); 
else if((strcmp($Email,$email) == 0) && strcmp($pass,$password) ==
0));

2. Batasi panjang input box (jika memungkinkan), dengan cara

membatasinya di kode program, cracker pemula akan bingung sejenak

melihat input box yang tidak bisa di injek dengan perintah yang panjang.

3. Filter input yang dimasukkan oleh user, terutama penggunaan tanda kutip

tunggal (input validation).

4. Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server

yang berjalan.

5. Matikan fasilitas-fasilitas standar seperti Stored Procedures, Extended

Stored Procedures jika memungkinkan.

6. Ubah “Startup and run SQL Server” menggunakan low privilege user di

SQL Server Security tab.


7. Pasang WAF ( Web Application Firewall ) pada web server. WAF

berperan sangat penting dalam melindungi web server dikarenakan WAF

bertugas sebagai penjaga web dari berbagai serangan berbahaya, seperti

SQL Injection, XSS, Spam, CSRF, dll.

Kesimpulan

Injeksi merupakan salah satu teknik dalam melakukan web hacking untuk

menggapai akses pada sistem database yg berbasis SQL. Teknik ini

memanfaatkan kelemahan dalam bahasa pemprograman scripting pada SQL

dalam mengolah suatu sistem database. Hasil yang ditimbulkan dari teknik ini

membawa masalah yg sangat serius.

Injeksi dapat terjadi karena tidak adanya penanganan terhadap karakter –

karakter tanda petik satu dan juga karakter double minus yang menyebabkan suatu

aplikasi dapat disisipi dengan perintah SQL. Sehingga seorang Hacker

menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.

Injeksi mempunyai beberapa karakteristik yaitu :

1. Teknik serangan ini memungkinkan seseorang dapat login kedalam sistem

tanpa harus memiliki account.

2. Selain itu injeksi juga memungkinkan seseorang merubah, menghapus,

maupun menambahkan data – data yang berada di dalam database. Bahkan

yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga

tidak bisa memberi layanan kepada web server.


Daftar Pustaka

Bruce Schneier, “Applied Cryptography”, 2nd edition, John Wiley & Sons, 1995

https://www.owasp.org/index.php/Insecure_Storage/

https://www.owasp.org/index.php/OWASP_Guide_Project/

http://www.binushacker.net/pengertian-tutorial-tools-sql-injection-cara-
kumpulan-software-sql-injection.html
https://prezi.com/2e202zj4qz8f/website-security/

http://www.iosrjournals.org/iosr-jce/papers/vol1-issue5/D0151320.pdf?id=2162/
http://www.mncplay.id/uploads/pdf/1dv0fhi2719_03_14_02_20_17.pdf
https://id.wikipedia.org/wiki/Injeksi_SQL/
https://microcyber2.com/pengertian-teknik-sql-injection-dan-cara-mencegah-sql-

injection/

Anda mungkin juga menyukai