Ethical Hacking

10 Kerentanan Keamanan Web Paling Umum

OWASP
atau Open Web Security Project adalah organisasi amal nirlaba yang berfokus
pada peningkatan keamanan perangkat lunak dan aplikasi web.

Organisasi
menerbitkan daftar kerentanan keamanan web teratas berdasarkan data dari
berbagai organisasi keamanan.

Kerentanan
keamanan web diprioritaskan tergantung pada eksploitasi, pendeteksian, dan
dampak pada perangkat lunak.

  • Eksploitasi –

Apa
yang diperlukan untuk mengeksploitasi kerentanan keamanan? Eksploitasi
tertinggi ketika serangan hanya membutuhkan browser web dan yang terendah
adalah pemrograman dan alat tingkat lanjut.

  • Deteksi –

Seberapa
mudah mendeteksi ancaman? Yang tertinggi adalah informasi yang ditampilkan
pada URL, Formulir atau pesan Kesalahan dan yang paling rendah adalah kode
sumber.

  • Dampak atau Kerusakan –

Berapa
banyak kerusakan yang akan terjadi jika kerentanan keamanan terungkap atau
diserang? Sistem crash tertinggi menjadi lengkap dan terendah tidak ada
sama sekali.

Tujuan
utama OWASP Top 10 adalah untuk mendidik para pengembang, desainer, manajer,
arsitek dan organisasi tentang kerentanan keamanan yang paling penting.

10
kerentanan keamanan teratas menurut 10 teratas OWASP adalah:

  • SQL Injection
  • Cross Site Scripting
  • Broken Authentication and Session Management
  • Insecure Direct Object References
  • Cross Site Request Forgery
  • Security Misconfiguration
  • Insecure Cryptographic Storage
  • Failure to restrict URL Access
  • Insufficient Transport Layer Protection
  • Unvalidated Redirects and Forwards

Injeksi SQL

Deskripsi

Injeksi
adalah kerentanan keamanan yang memungkinkan penyerang
mengubah pernyataan SQL backend dengan
memanipulasi data yang disediakan pengguna.

Injeksi
terjadi ketika input pengguna dikirim ke juru bahasa sebagai bagian dari
perintah atau kueri dan mengelabui penerjemah agar menjalankan perintah yang
tidak diinginkan dan memberikan akses ke data yang tidak sah.

Perintah
SQL yang saat dijalankan oleh aplikasi web juga dapat mengekspos database
back-end.

Implikasi

  • Penyerang dapat memasukkan konten berbahaya ke
    bidang yang rentan.
  • Data sensitif seperti Nama Pengguna, Kata Sandi,
    Dapat dibaca dari database.
  • Data database dapat dimodifikasi (Sisipkan /
    Perbarui / Hapus).
  • Operasi Administrasi dapat dijalankan pada database

Objek
Rentan

  • Bidang Masukan
  • URL yang berinteraksi dengan database.

Contoh:

  • Injeksi SQL di Halaman Login

Masuk
ke aplikasi tanpa memiliki kredensial yang valid.

UserName
yang valid tersedia, dan kata sandi tidak tersedia.

Uji
URL: http://demo.testfire.net/default.aspx

Nama
Pengguna: sjones

Kata
sandi: 1 = 1 ‘atau pass123

Kueri
SQL dibuat dan dikirim ke Interpreter seperti di bawah ini

SELECT
* FROM Users WHERE User_Name = sjones AND Password = 1 = 1 ‘or pass123;

Rekomendasi

  1. Daftar putih bidang masukan
  2. Hindari menampilkan pesan kesalahan mendetail yang
    berguna bagi penyerang.

Cross Site Scripting

Deskripsi

Cross
Site Scripting juga dikenal sebagai XSS.

Skrip
target kerentanan XSS tertanam di halaman yang dijalankan di sisi klien yaitu
browser pengguna, bukan di sisi server. Cacat ini dapat terjadi saat
aplikasi mengambil data yang tidak tepercaya dan mengirimkannya ke browser web
tanpa validasi yang tepat.

Penyerang
dapat menggunakan XSS untuk mengeksekusi skrip berbahaya pada pengguna dalam
hal ini browser korban. Karena browser tidak dapat mengetahui apakah skrip
dapat dipercaya atau tidak, skrip akan dijalankan, dan penyerang dapat membajak
cookie sesi, merusak situs web, atau mengarahkan pengguna ke situs web yang
tidak diinginkan dan berbahaya.

XSS
adalah serangan yang memungkinkan penyerang mengeksekusi skrip di browser
korban.

Implikasi:

  • Dengan memanfaatkan kerentanan keamanan ini,
    penyerang dapat menyuntikkan skrip ke dalam aplikasi, dapat mencuri cookie
    sesi, merusak situs web, dan dapat menjalankan malware di mesin korban.

Objek
Rentan

  • Bidang Masukan
  • URL

Contoh

  1. http://www.vulnerablesite.com/home?”script > alert (” xss”) </ script >

Skrip
di atas saat dijalankan di browser, kotak pesan akan ditampilkan jika situs
rentan terhadap XSS.

Serangan
yang lebih serius dapat dilakukan jika penyerang ingin menampilkan atau
menyimpan cookie sesi.

  1. http://demo.testfire.net/search.aspx?txtSearch
    <iframe
    > <src = http://google.com width =
    500 height 500> </iframe>

Skrip
di atas saat dijalankan, browser akan memuat frame tak terlihat yang mengarah
ke http://google.com .

Serangan
tersebut dapat menjadi serius dengan menjalankan skrip berbahaya di browser.

Rekomendasi

  1. Bidang masukan Daftar Putih
  2. Pengkodean keluaran masukan

Otentikasi Rusak dan Manajemen Sesi

Deskripsi

Situs
web biasanya membuat cookie sesi dan ID sesi untuk setiap sesi yang valid, dan
cookie ini berisi data sensitif seperti nama pengguna, kata sandi, dll. Ketika
sesi diakhiri baik dengan logout atau browser ditutup secara tiba-tiba, cookie
ini harus dibatalkan, yaitu untuk setiap sesi harus ada cookie baru.

Jika
cookie tidak dibatalkan, data sensitif akan ada di sistem. Misalnya,
pengguna yang menggunakan komputer publik (Warnet), cookie dari situs yang
rentan berada di sistem dan diekspos ke penyerang. Seorang penyerang
menggunakan komputer publik yang sama setelah beberapa waktu, data sensitif
dikompromikan.

Dengan
cara yang sama, pengguna yang menggunakan komputer publik, alih-alih keluar,
dia menutup browser secara tiba-tiba. Seorang penyerang menggunakan sistem
yang sama, ketika menelusuri situs rentan yang sama, sesi korban sebelumnya
akan dibuka. Penyerang dapat melakukan apapun yang dia ingin lakukan dari
mencuri informasi profil, informasi kartu kredit, dll.

Pemeriksaan
harus dilakukan untuk menemukan kekuatan otentikasi dan manajemen
sesi. Kunci, token sesi, cookie harus diterapkan dengan benar tanpa
mengorbankan sandi.

Objek
Rentan

  • ID sesi yang terekspos di URL dapat menyebabkan
    serangan fiksasi sesi.
  • ID sesi sama sebelum dan sesudah logout dan login.
  • Session Timeout tidak diterapkan dengan benar.
  • Aplikasi menetapkan ID sesi yang sama untuk setiap
    sesi baru.
  • Bagian yang diautentikasi dari aplikasi dilindungi
    menggunakan SSL dan kata sandi disimpan dalam format berciri atau terenkripsi.
  • Sesi ini dapat digunakan kembali oleh pengguna
    dengan hak rendah.

Implikasi

  • Memanfaatkan kerentanan ini, penyerang dapat
    membajak sesi, mendapatkan akses tidak sah ke sistem yang memungkinkan
    pengungkapan dan modifikasi informasi yang tidak sah.
  • Sesi dapat didongkrak tinggi menggunakan cookie
    curian atau sesi menggunakan XSS.

Contoh

  1. Aplikasi reservasi maskapai penerbangan mendukung
    penulisan ulang URL, dengan memasukkan ID sesi di URL:

http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (Penjualan tiket ke Maladewa)

Pengguna
situs yang diautentikasi ingin memberi tahu teman-temannya tentang penjualan
dan mengirim email ke seluruh. Teman-teman menerima ID sesi dan dapat
digunakan untuk melakukan modifikasi yang tidak sah atau menyalahgunakan detail
kartu kredit yang disimpan.

  1. Aplikasi rentan terhadap XSS, yang dengannya
    penyerang dapat mengakses ID sesi dan dapat digunakan untuk membajak sesi.
  2. Batas waktu aplikasi tidak disetel dengan
    Pengguna menggunakan komputer publik dan menutup browser alih-alih
    keluar dan pergi. Penyerang menggunakan browser yang sama beberapa waktu
    kemudian, dan sesi tersebut diautentikasi.

Rekomendasi

  1. Semua persyaratan otentikasi dan manajemen sesi
    harus didefinisikan sesuai dengan Standar Verifikasi Keamanan Aplikasi OWASP.
  2. Jangan pernah mengekspos kredensial apa pun di URL
    atau Log.
  3. Upaya yang kuat juga harus dilakukan untuk
    menghindari cacat XSS yang dapat digunakan untuk mencuri ID sesi.

Referensi Objek Langsung Tidak Aman

Deskripsi

Ini
terjadi ketika pengembang mengekspos referensi ke objek implementasi internal,
seperti file, direktori, atau kunci database seperti di URL atau sebagai
parameter FORM. Penyerang dapat menggunakan informasi ini untuk mengakses
objek lain dan dapat membuat serangan di masa mendatang untuk mengakses data
yang tidak sah.

Implikasi

  • Dengan menggunakan kerentanan ini, penyerang dapat
    memperoleh akses ke objek internal yang tidak sah, dapat mengubah data, atau
    membahayakan aplikasi.

Objek
Rentan

  • Di URL.

Contoh:

Mengubah
“userid” di URL berikut dapat membuat penyerang melihat informasi
pengguna lain.

http://www.vulnerablesite.com/userid=123 Diubah menjadi http://www.vulnerablesite.com/userid=124

Seorang
penyerang dapat melihat informasi orang lain dengan mengubah nilai id pengguna.

Rekomendasi:

  1. Menerapkan pemeriksaan kontrol akses.
  2. Hindari mengekspos referensi objek di URL.
  3. Verifikasi otorisasi untuk semua objek referensi.

Pemalsuan Permintaan Lintas Situs

Deskripsi

Permintaan
Lintas Situs Pemalsuan adalah permintaan palsu yang berasal dari situs silang.

Serangan
CSRF adalah serangan yang terjadi saat situs web, email, atau program jahat
menyebabkan browser pengguna melakukan tindakan yang tidak diinginkan di situs
tepercaya yang saat ini diautentikasi pengguna.

Serangan
CSRF memaksa browser korban yang masuk untuk mengirim permintaan HTTP palsu,
termasuk cookie sesi korban dan informasi otentikasi lain yang secara otomatis
disertakan, ke aplikasi web yang rentan.

Sebuah
link akan dikirimkan oleh penyerang ke korban ketika pengguna mengklik URL
tersebut saat login ke situs asli, data akan dicuri dari situs tersebut.

Implikasi

  • Menggunakan kerentanan ini sebagai penyerang dapat
    mengubah informasi profil pengguna, mengubah status, membuat pengguna baru atas
    nama admin, dll.

Objek
Rentan

  • Halaman Profil Pengguna
  • Formulir akun pengguna
  • Halaman transaksi bisnis

Contoh

Korban
masuk ke situs web bank menggunakan kredensial yang valid. Dia menerima
surat dari penyerang yang mengatakan “Silakan klik di sini untuk
menyumbangkan $ 1 untuk amal.”

Ketika
korban mengkliknya, permintaan yang valid akan dibuat untuk mendonasikan $ 1 ke
akun tertentu.

http://www.vulnerablebank.com/transfer.do?account=cause&amount=1

Penyerang
menangkap permintaan ini dan membuat permintaan di bawah ini dan menyematkan di
tombol yang bertuliskan “I Support Cause.”

http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000

Karena
sesi diautentikasi dan permintaan datang melalui situs web bank, server akan
mentransfer $ 1000 dolar ke penyerang.

Rekomendasi

  1. Mandat kehadiran pengguna saat melakukan tindakan
  2. Menerapkan mekanisme seperti CAPTCHA, Autentikasi
    Ulang, dan Token Permintaan Unik.

Kesalahan Konfigurasi Keamanan

Deskripsi

Konfigurasi
Keamanan harus ditentukan dan digunakan untuk aplikasi, kerangka kerja, server
aplikasi, server web, server basis data, dan platform. Jika ini
dikonfigurasi dengan benar, penyerang dapat memiliki akses tidak sah ke data
atau fungsi sensitif.

Terkadang
kekurangan seperti itu mengakibatkan kompromi sistem yang lengkap. Menjaga
perangkat lunak tetap mutakhir juga merupakan keamanan yang baik.

Implikasi

  • Memanfaatkan kerentanan ini, penyerang dapat
    menghitung teknologi yang mendasari dan informasi versi server aplikasi,
    informasi database dan mendapatkan informasi tentang aplikasi untuk memasang
    beberapa serangan lagi.

Objek
yang rentan

  • URL
  • Bidang Formulir
  • Bidang masukan

Contoh

  1. Konsol admin server aplikasi dipasang secara
    otomatis dan tidak dihapus. Akun default tidak berubah. Penyerang
    dapat masuk dengan kata sandi default dan dapat memperoleh akses tidak sah.
  2. Daftar Direktori tidak dinonaktifkan di server
    Penyerang menemukan dan dapat dengan mudah mencantumkan direktori
    untuk menemukan file apa pun.

Rekomendasi

  1. Arsitektur aplikasi yang kuat yang memberikan
    pemisahan dan keamanan yang baik antar komponen.
  2. Ubah nama pengguna dan kata sandi default.
  3. Nonaktifkan daftar direktori dan terapkan
    pemeriksaan kontrol akses.

Penyimpanan Kriptografi Tidak Aman

Deskripsi

Penyimpanan
Kriptografi yang tidak aman adalah kerentanan umum yang muncul saat data
sensitif tidak disimpan dengan aman.

Kredensial
pengguna, informasi profil, detail kesehatan, informasi kartu kredit, dll.
Berada di bawah informasi data sensitif di situs web.

Data
ini akan disimpan di database aplikasi. Ketika data ini disimpan secara
tidak benar dengan tidak menggunakan enkripsi atau hashing *, itu akan rentan
terhadap penyerang.

(*
Hashing adalah transformasi karakter string menjadi string pendek dengan
panjang tetap atau kunci. Untuk mendekripsi string, algoritme yang digunakan
untuk membentuk kunci harus tersedia)

Implikasi

  • Dengan menggunakan kerentanan ini, penyerang dapat
    mencuri, mengubah data yang dilindungi dengan lemah tersebut untuk melakukan
    pencurian identitas, penipuan kartu kredit, atau kejahatan lainnya.

Objek
yang rentan

  • Database aplikasi.

Contoh

Di
salah satu aplikasi perbankan, basis data kata sandi menggunakan hash *
unsalted untuk menyimpan kata sandi setiap orang. Cacat injeksi SQL
memungkinkan penyerang untuk mengambil file kata sandi. Semua hash
unsalted dapat dipaksakan secara brutal dalam waktu singkat, sedangkan kata
sandi asin akan memakan waktu ribuan tahun.

(*
Hash Tanpa Garam – Garam adalah data acak yang ditambahkan ke data asli. Garam
ditambahkan ke kata sandi sebelum dicirikan)

Rekomendasi

  1. Pastikan algoritme standar kuat yang sesuai. Jangan
    membuat algoritme kriptografi sendiri. Gunakan hanya algoritme publik yang
    disetujui seperti AES, kriptografi kunci publik RSA, dan SHA-256, dll.
  2. Pastikan cadangan luar situs dienkripsi, tetapi
    kuncinya dikelola dan dicadangkan secara terpisah.

Kegagalan untuk membatasi Akses URL

Deskripsi

Aplikasi
web memeriksa hak akses URL sebelum memberikan tautan dan tombol yang
dilindungi. Aplikasi perlu melakukan pemeriksaan kontrol akses yang serupa
setiap kali halaman ini diakses.

Di
sebagian besar aplikasi, halaman dengan hak istimewa, lokasi, dan sumber daya
tidak disajikan kepada pengguna yang memiliki hak istimewa.

Dengan
tebakan cerdas, penyerang dapat mengakses halaman hak istimewa. Penyerang
dapat mengakses halaman sensitif, menjalankan fungsi, dan melihat informasi
rahasia.

Implikasi

  • Memanfaatkan penyerang kerentanan ini dapat
    memperoleh akses ke URL yang tidak sah, tanpa masuk ke aplikasi dan
    mengeksploitasi kerentanan. Penyerang dapat mengakses halaman sensitif,
    menjalankan fungsi, dan melihat informasi rahasia.

Objek
yang rentan:

  • URL

Contoh

  1. Penyerang memperhatikan bahwa URL menunjukkan peran
    sebagai “/ user / getaccounts.” Dia memodifikasi sebagai “/
    admin / getaccounts”.
  2. Penyerang dapat menambahkan peran ke URL.

http://www.vulnerablsite.com dapat dimodifikasi menjadi http://www.vulnerablesite.com/admin

Rekomendasi

  1. Terapkan pemeriksaan kontrol akses yang kuat.
  2. Kebijakan otentikasi dan otorisasi harus berbasis
  3. Batasi akses ke URL yang tidak diinginkan.

Perlindungan Lapisan Transportasi Tidak Memadai

Deskripsi

Berurusan
dengan pertukaran informasi antara pengguna (klien) dan server
(aplikasi). Aplikasi sering mengirimkan informasi sensitif seperti detail
otentikasi, informasi kartu kredit, dan token sesi melalui jaringan.

Dengan
menggunakan algoritme yang lemah atau menggunakan sertifikat yang kedaluwarsa
atau tidak valid atau tidak menggunakan SSL dapat memungkinkan komunikasi untuk
diekspos ke pengguna yang tidak tepercaya, yang dapat membahayakan aplikasi web
dan atau mencuri informasi sensitif.

Implikasi

  • Memanfaatkan kerentanan keamanan web ini, penyerang
    dapat mengendus kredensial pengguna yang sah dan mendapatkan akses ke aplikasi.
  • Dapat mencuri informasi kartu kredit.

Objek
yang rentan

  • Data dikirim melalui jaringan.

Rekomendasi

  1. Aktifkan HTTP aman dan terapkan transfer kredensial
    hanya melalui HTTPS.
  2. Pastikan sertifikat Anda valid dan tidak

Contoh:

1.
Aplikasi yang tidak menggunakan SSL, penyerang hanya akan memantau lalu lintas
jaringan dan mengamati cookie sesi korban yang diautentikasi. Penyerang
dapat mencuri cookie itu dan melakukan serangan Man-in-the-Middle.

Pengalihan dan Penerusan Tidak Tervalidasi

Deskripsi

Aplikasi
web menggunakan beberapa metode untuk mengarahkan dan meneruskan pengguna ke
halaman lain untuk tujuan yang dimaksudkan.

Jika
tidak ada validasi yang tepat saat mengarahkan ke halaman lain, penyerang dapat
menggunakan ini dan dapat mengarahkan korban ke situs phishing atau malware,
atau menggunakan penerusan untuk mengakses halaman yang tidak sah.

Implikasi

  • Penyerang dapat mengirim URL ke pengguna yang
    berisi URL asli yang ditambahkan dengan URL berbahaya yang
    Seorang pengguna dengan hanya melihat bagian asli dari URL yang
    dikirim penyerang dapat menjelajahinya dan mungkin menjadi korban.

Contoh

  1. http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com

Diubah
menjadi

http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com

Rekomendasi

  1. Cukup hindari menggunakan pengalihan dan penerusan
    dalam aplikasi. Jika digunakan, jangan melibatkan penggunaan parameter
    pengguna dalam menghitung tujuan.
  2. Jika parameter tujuan tidak dapat dihindari,
    pastikan nilai yang diberikan valid, dan diotorisasi untuk pengguna.

 

Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Most Popular

To Top