Keamanan

10 Jenis Kerentanan Keamanan

10 Jenis Kerentanan Keamanan
Cacat yang tidak disengaja atau tidak disengaja dalam kode perangkat lunak atau sistem apa pun yang membuatnya berpotensi dieksploitasi dalam hal akses ke pengguna yang tidak sah, perilaku jahat seperti virus, trojan, worm, atau malware lainnya disebut kerentanan keamanan. Penggunaan software yang sudah terlanjur tereksploitasi atau penggunaan password yang lemah dan default juga mengakibatkan sistem rentan terhadap dunia luar. Jenis kerentanan keamanan ini memerlukan tambalan untuk mencegah peretas menggunakan eksploitasi yang sebelumnya digunakan pada mereka lagi untuk mendapatkan akses tidak sah ke sistem. Kerentanan keamanan juga disebut lubang keamanan atau kelemahan adalah cacat, bug, atau kesalahan dalam implementasi kode, desain, dan arsitektur aplikasi web dan server, yang bila dibiarkan tidak tertangani dapat mengakibatkan kompromi sistem dan membuat seluruh jaringan rentan terhadap serangan. Orang-orang yang akan terinfeksi termasuk pemilik aplikasi, pengguna aplikasi, dan orang lain yang mengandalkan aplikasi itu. Mari kita lihat risiko keamanan paling berbahaya dan umum untuk aplikasi web.

Daftar isi

  1. Injeksi Basis Data
  2. Otentikasi Rusak
  3. Paparan Data Sensitif
  4. Entitas Eksternal XML (XEE)
  5. Kontrol Akses Rusak
  6. Kesalahan Konfigurasi Keamanan
  7. Pembuatan Skrip Lintas Situs (XSS)
  8. Deserialisasi Tidak Aman
  9. Menggunakan Komponen dengan Kerentanan yang Diketahui
  10. Pencatatan dan Pemantauan Tidak Memadai

Injeksi Basis Data:

Dalam hal pengiriman potongan data yang tidak dapat dipercaya ke penerjemah sebagai bagian dari perintah melalui area mana pun yang mengambil input pengguna i.e input formulir atau area pengiriman data lainnya, terjadi kekurangan injeksi. Kueri jahat penyerang dapat mengelabui penerjemah agar menjalankan perintah yang dapat menampilkan data rahasia yang tidak memiliki otorisasi untuk dilihat oleh pengguna. Misalnya dalam serangan injeksi SQL, saat input formulir tidak dibersihkan dengan benar, penyerang dapat memasuki database SQL dan mengakses kontennya tanpa otorisasi, cukup dengan memasukkan kode database SQL berbahaya dalam bentuk yang mengharapkan teks biasa. Semua jenis bidang yang mengambil input pengguna dapat disuntikkan.e parameter, variabel lingkungan, semua layanan web, dll.

Aplikasi ini rentan terhadap serangan injeksi ketika data yang disediakan pengguna tidak dibersihkan dan divalidasi, dengan menggunakan kueri dinamis tanpa pelarian kontekstual dan penggunaan data yang tidak bersahabat secara langsung. Cacat injeksi dapat dengan mudah ditemukan melalui pemeriksaan kode dan dengan menggunakan alat otomatis seperti pemindai dan fuzzer. Untuk mencegah serangan injeksi, ada beberapa tindakan yang dapat diambil seperti memisahkan data dari perintah dan kueri, penggunaan API aman yang menyediakan antarmuka berparameter, penggunaan validasi input sisi server "daftar putih" melalui alat seperti Snort, melarikan diri dari karakter khusus menggunakan sintaksis pelarian tertentu, dll.

Serangan injeksi dapat menyebabkan hilangnya data besar-besaran, pengungkapan informasi rahasia, penolakan akses dan bahkan dapat menyebabkan pengambilalihan aplikasi secara lengkap. Beberapa kontrol SQL seperti LIMIT dapat digunakan untuk mengontrol sejumlah besar kehilangan data jika terjadi serangan. Beberapa jenis serangan injeksi adalah SQL, OS, NoSQL, serangan injeksi LDAP.

Otentikasi rusak:

Penyerang dapat mengakses akun pengguna dan bahkan dapat membahayakan seluruh sistem host melalui akun admin, menggunakan kerentanan dalam sistem otentikasi. Cacat otentikasi memungkinkan penyerang untuk mengkompromikan kata sandi, token sesi, kunci otentikasi dan dapat dirantai dengan serangan lain yang dapat menyebabkan akses tidak sah ke akun atau sesi pengguna lain untuk sementara dan dalam beberapa kasus, secara permanen. Katakanlah seorang pengguna memiliki daftar kata atau kamus dari jutaan nama pengguna dan kata sandi yang valid yang diperoleh selama pelanggaran. Dia dapat menggunakannya satu per satu dalam waktu yang sangat singkat menggunakan alat dan skrip otomatis pada sistem login untuk melihat apakah ada yang berfungsi. Penerapan manajemen identitas dan kontrol akses yang buruk menyebabkan kerentanan seperti autentikasi yang rusak.

Aplikasi rentan terhadap serangan otentikasi ketika mengizinkan mencoba nama pengguna dan kata sandi yang berbeda, mengizinkan serangan kamus atau serangan brute force tanpa strategi pertahanan apa pun, menggunakan kata sandi atau kata sandi default yang mudah bocor dalam pelanggaran apa pun, mengekspos id sesi di URL, menggunakan skema pemulihan kata sandi yang buruk, menggunakan pola cookie. Otentikasi yang rusak dapat dieksploitasi dengan mudah menggunakan alat sederhana untuk serangan brute-forcing dan kamus dengan kamus yang bagus. Jenis serangan ini dapat dicegah menggunakan sistem otentikasi multi-faktor, dengan menerapkan pemeriksaan kata sandi yang lemah dengan menjalankan kata sandi melalui basis data kata sandi yang buruk, dengan tidak menggunakan kredensial default, dengan menyelaraskan kebijakan kompleksitas kata sandi, dengan menggunakan sisi server yang baik. manajer sesi yang menghasilkan id sesi acak baru setelah login, dll.

Kerentanan otentikasi yang rusak dapat mengakibatkan kompromi beberapa akun pengguna dan akun admin, hanya itu yang dibutuhkan penyerang untuk berkompromi dengan sistem. Jenis serangan ini mengarah pada pencurian identitas, penipuan jaminan sosial, pencucian uang, dan pengungkapan informasi yang sangat rahasia. Serangan termasuk serangan kamus, brute-forcing, pembajakan sesi, dan serangan manajemen sesi session.

Paparan data sensitif:

Terkadang aplikasi web tidak melindungi data dan info sensitif seperti kata sandi, kredensial basis data, dll. Penyerang dapat dengan mudah mencuri atau memodifikasi kredensial yang dilindungi dengan lemah ini dan menggunakannya untuk tujuan yang tidak sah. Data sensitif harus dienkripsi saat diam atau dalam perjalanan dan memiliki lapisan keamanan ekstra jika tidak, penyerang dapat mencurinya. Penyerang bisa mendapatkan data sensitif yang terbuka dan mencuri hash atau menghapus teks pengguna & kredensial basis data dari server atau browser web. Misalnya, jika basis data kata sandi menggunakan hash tanpa garam atau sederhana untuk menyimpan kata sandi, kesalahan pengunggahan file dapat memungkinkan penyerang untuk mengambil basis data kata sandi yang akan menyebabkan paparan semua kata sandi dengan tabel pelangi hash yang telah dihitung sebelumnya.

Kelemahan utama bukan hanya bahwa data tidak dienkripsi, bahkan jika dienkripsi, tetapi pembuatan kunci yang lemah, algoritma hashing yang lemah, penggunaan cipher yang lemah juga dapat menyebabkan jenis salah satu serangan paling umum ini. Untuk mencegah jenis serangan ini, pertama, klasifikasikan jenis data mana yang dapat dianggap sensitif menurut undang-undang privasi dan terapkan kontrol sesuai klasifikasi. Cobalah untuk tidak menyimpan data rahasia yang tidak Anda butuhkan, cuci segera setelah Anda menggunakannya. Untuk data dalam perjalanan, enkripsi dengan protokol aman i.e TLS dengan sandi PFS, dll.

Jenis kerentanan ini dapat mengakibatkan pemaparan informasi yang sangat sensitif seperti kredensial kartu kredit, catatan kesehatan, kata sandi, dan data pribadi lainnya yang dapat menyebabkan pencurian identitas dan penipuan bank, dll.

Entitas Eksternal XML (XEE):

Prosesor XML yang dikonfigurasi dengan buruk memproses referensi entitas eksternal di dalam dokumen XML. Entitas eksternal ini dapat digunakan untuk mengambil data file internal seperti /etc/passwd file atau untuk melakukan tugas berbahaya lainnya.  Prosesor XML yang rentan dapat dengan mudah dieksploitasi jika penyerang dapat mengunggah dokumen XML atau menyertakan XML, dll. Entitas XML yang rentan ini dapat ditemukan menggunakan alat SAST dan DAST atau secara manual dengan memeriksa dependensi dan konfigurasi.

Aplikasi web rentan terhadap serangan XEE karena berbagai alasan seperti jika aplikasi menerima input XML langsung dari sumber yang tidak tepercaya, Definisi Jenis Dokumen (DTD) pada aplikasi diaktifkan, aplikasi menggunakan SAML untuk pemrosesan identitas karena SAML menggunakan XML untuk identitas penyisipan, dll. Serangan XEE dapat dikurangi dengan menghindari serialisasi data sensitif, menggunakan format data yang tidak terlalu rumit.e JSON, menambal prosesor XML aplikasi saat ini sedang menggunakan dan bahkan perpustakaan, menonaktifkan DTD di semua parser XML, validasi fungsi unggah file XML menggunakan verifikasi XSD, dll.

Aplikasi yang rentan terhadap jenis serangan ini dapat menyebabkan serangan DOS, serangan Billion Laughs, pemindaian sistem internal, pemindaian port internal,  menjalankan perintah jarak jauh yang berdampak pada semua data aplikasi.

Kontrol Akses Rusak:

Kontrol Akses memberi pengguna hak istimewa untuk melakukan tugas tertentu. Kerentanan kontrol akses yang rusak terjadi ketika pengguna tidak dibatasi dengan benar pada tugas yang dapat mereka lakukan. Penyerang dapat mengeksploitasi kerentanan ini yang dapat berakhir dengan mengakses fungsionalitas atau informasi yang tidak sah. Katakanlah aplikasi web memungkinkan pengguna untuk mengubah akun yang dia masuki dari hanya dengan mengubah URL ke akun pengguna lain tanpa verifikasi lebih lanjut.  Memanfaatkan kerentanan kontrol akses adalah serangan masuk dari penyerang mana pun, kerentanan ini dapat ditemukan secara manual serta dengan menggunakan alat SAFT dan DAFT. Kerentanan ini ada karena kurangnya pengujian dan deteksi otomatis aplikasi web meskipun cara terbaik untuk menemukannya adalah melakukannya secara manual.

Kerentanan mengandung eskalasi hak istimewa i.e bertindak sebagai pengguna bukan Anda atau bertindak sebagai admin saat Anda adalah pengguna, melewati pemeriksaan kontrol akses hanya dengan memodifikasi URL atau mengubah status aplikasi, manipulasi metadata, memungkinkan kunci utama diubah sebagai kunci utama pengguna lain, dll. Untuk mencegah serangan semacam ini, mekanisme kontrol akses harus diterapkan dalam kode sisi server di mana penyerang tidak dapat mengubah kontrol akses. Penegakan batasan bisnis aplikasi unik oleh model domain, penonaktifan daftar direktori server, peringatan admin tentang upaya login yang gagal berulang kali, pembatalan token JWT setelah logout harus dipastikan untuk mengurangi serangan semacam ini.

Penyerang dapat bertindak sebagai pengguna atau administrator lain menggunakan kerentanan ini untuk melakukan tugas jahat seperti membuat, menghapus, dan memodifikasi catatan, dll. Kehilangan data besar-besaran dapat terjadi jika data tidak diamankan bahkan setelah pelanggaran.

Kesalahan konfigurasi keamanan:

Kerentanan yang paling umum adalah kesalahan konfigurasi keamanan. Alasan utama kerentanan adalah penggunaan konfigurasi default, konfigurasi tidak lengkap, konfigurasi Adhoc, header HTTP yang tidak dikonfigurasi dengan baik, dan pesan kesalahan verbose yang berisi lebih banyak info daripada yang seharusnya diketahui pengguna. Pada tingkat aplikasi web mana pun, kesalahan konfigurasi keamanan dapat terjadi jika.e database, server web, server aplikasi, layanan jaringan, dll. Penyerang dapat mengeksploitasi sistem yang tidak ditambal atau mengakses file dan direktori yang tidak dilindungi untuk menahan sistem secara tidak sah. Misalnya, sebuah aplikasi yang terlalu bertele-tele dengan pesan kesalahan yang membantu penyerang untuk mengetahui kerentanan dalam sistem aplikasi dan cara kerjanya. Alat dan pemindai otomatis dapat digunakan untuk mendeteksi jenis kelemahan keamanan ini.

Aplikasi web mengandung kerentanan jenis ini jika tidak ada langkah-langkah pengerasan keamanan di bagian mana pun dari aplikasi, port yang tidak perlu terbuka atau mengaktifkan fitur yang tidak perlu, kata sandi default digunakan, penanganan kesalahan mengungkapkan kesalahan informatif kepada penyerang, sedang digunakan perangkat lunak keamanan yang belum ditambal atau ketinggalan zaman, dll. Ini dapat dicegah dengan menghapus fitur kode yang tidak perlu, mis.ea platform minimal tanpa fitur yang tidak perlu, dokumentasi, dll, memungkinkan tugas untuk memperbarui dan menambal lubang keamanan sebagai bagian dari proses manajemen tambalan, penggunaan proses untuk memverifikasi efektivitas langkah-langkah keamanan yang diambil, penggunaan proses pengerasan berulang untuk membuat mudah untuk menerapkan lingkungan lain yang dikunci dengan benar.

Jenis kerentanan atau kelemahan ini memungkinkan penyerang untuk mendapatkan akses tidak sah ke data sistem yang mengarah pada kompromi lengkap sistem.

Pembuatan Skrip Lintas Situs (XSS):

Kerentanan XSS terjadi ketika aplikasi web memasukkan data yang tidak tepercaya di halaman situs web baru tanpa persetujuan atau pelepasan yang sah, atau menyegarkan halaman situs saat ini dengan data yang disediakan klien, menggunakan API browser yang dapat membuat HTML atau JavaScript.  Cacat XSS terjadi jika situs web memungkinkan pengguna untuk menambahkan kode khusus ke jalur URL yang dapat dilihat oleh pengguna lain. Cacat ini digunakan untuk menjalankan kode JavaScript berbahaya di browser target. Katakanlah, penyerang dapat mengirim tautan ke korban yang berisi tautan ke situs web perusahaan mana pun. Koneksi ini mungkin memiliki beberapa kode JavaScript berbahaya yang tertanam di dalamnya, Jika halaman web bank tidak diamankan dengan tepat terhadap serangan XSS, mengklik tautan kode berbahaya akan dijalankan di browser korban.

Cross-Site Scripting adalah kerentanan keamanan yang ada di hampir aplikasi web. Aplikasi rentan terhadap XSS jika aplikasi menyimpan input pengguna yang tidak bersih yang dapat dilihat oleh pengguna lain, dengan menggunakan struktur JavaScript, aplikasi satu halaman, dan API yang secara kuat menggabungkan informasi yang dapat dikontrol penyerang ke halaman tidak berdaya melawan DOM XSS. Serangan XSS dapat dikurangi dengan menggunakan kerangka kerja yang lolos dan membersihkan input XSS secara alami seperti React JS dll, mempelajari batasan kerangka kerja dan menutupinya menggunakan kasing sendiri, melarikan diri dari data HTML yang tidak perlu dan tidak tepercaya di mana pun saya.e dalam atribut HTML, URI, Javascript, dll, penggunaan pengkodean peka konteks dalam hal memodifikasi dokumen di sisi klien, dll.

Serangan berbasis XSS terdiri dari tiga jenis:.e XSS Tercermin, DOM XSS, dan XSS Tersimpan. Semua jenis serangan ini memiliki dampak yang signifikan tetapi dalam kasus Stored XSS, dampaknya bahkan lebih besar.e mencuri kredensial, mengirim malware ke korban, dll.

Deserialisasi tidak aman:

Serialisasi data berarti mengambil objek dan mengubahnya ke format apa pun sehingga data ini dapat digunakan untuk tujuan lain di kemudian hari, sedangkan deserialisasi data berarti kebalikan dari itu. Deserialisasi sedang membongkar data serial ini untuk penggunaan aplikasi. Deserialisasi tidak aman berarti tempering data yang telah diserialisasikan sebelum akan dibongkar atau dideserialisasi.  Deserialisasi yang tidak aman mengarah ke eksekusi kode jarak jauh dan digunakan untuk melakukan tugas lain untuk tujuan jahat seperti eskalasi hak istimewa, serangan injeksi, serangan replay, dll. Ada beberapa alat yang tersedia untuk menemukan kekurangan semacam ini tetapi bantuan manusia sering diperlukan untuk memvalidasi masalah. Mengeksploitasi deserialisasi agak sulit karena eksploitasi tidak akan berfungsi tanpa beberapa perubahan manual.

Saat aplikasi menghapus serial objek berbahaya yang disediakan oleh entitas penyerang. Hal ini dapat menyebabkan dua jenis serangan i.e serangan yang terkait dengan struktur data dan objek di mana penyerang memodifikasi logika aplikasi atau mengeksekusi kode jarak jauh dan serangan perusakan data umum di mana struktur data yang ada digunakan dengan konten yang dimodifikasi misalnya serangan terkait kontrol akses.  Serialisasi dapat digunakan dalam komunikasi proses jarak jauh (RPC) atau komunikasi antar-proses (IPC), caching data, layanan web, server cache basis data, sistem file, token otentikasi API, cookie HTML, parameter bentuk HTML, dll. Serangan deserialisasi dapat dimitigasi dengan tidak menggunakan objek serial dari sumber yang tidak tepercaya, menerapkan pemeriksaan integritas, mengisolasi kode yang berjalan di lingkungan dengan hak istimewa rendah, memantau koneksi jaringan yang masuk dan keluar dari server yang sering melakukan deserialisasi.

Menggunakan komponen dengan kerentanan yang diketahui:

Komponen yang berbeda seperti perpustakaan, kerangka kerja, dan modul perangkat lunak digunakan oleh sebagian besar pengembang di aplikasi web. Pustaka ini membantu pengembang untuk menghindari pekerjaan yang tidak perlu dan menyediakan fungsionalitas yang dibutuhkan. Penyerang mencari kekurangan dan kerentanan dalam komponen ini untuk mengoordinasikan serangan. Dalam hal menemukan celah keamanan dalam suatu komponen dapat membuat semua situs yang menggunakan komponen yang sama menjadi rentan. Eksploitasi kerentanan ini sudah tersedia saat menulis eksploit kustom dari awal membutuhkan banyak usaha. Ini adalah masalah yang sangat umum dan tersebar luas, penggunaan komponen dalam jumlah besar dalam mengembangkan aplikasi web dapat menyebabkan bahkan tidak mengetahui dan memahami semua komponen yang digunakan, menambal dan memperbarui semua komponen adalah waktu yang lama.

Sebuah aplikasi rentan jika pengembang tidak mengetahui versi komponen yang digunakan, perangkat lunaknya sudah usang i.e sistem operasi, DBMS, perangkat lunak yang berjalan, lingkungan runtime dan perpustakaan, pemindaian kerentanan tidak dilakukan secara teratur, kompatibilitas perangkat lunak yang ditambal tidak diuji oleh pengembang. Hal ini dapat dicegah dengan menghapus dependensi, file, dokumentasi, dan library yang tidak digunakan, memeriksa versi klien dan komponen sisi server secara teratur, memperoleh komponen dan library dari sumber aman resmi dan tepercaya, memantau library dan komponen yang belum ditambal, memastikan rencana untuk memperbarui dan menambal komponen yang rentan secara teratur.

Kerentanan ini menyebabkan dampak kecil tetapi juga dapat menyebabkan kompromi server dan sistem. Banyak pelanggaran besar mengandalkan kerentanan komponen yang diketahui. Penggunaan komponen yang rentan merusak pertahanan aplikasi dan dapat menjadi titik awal untuk serangan besar.

Pencatatan dan pemantauan yang tidak memadai:

Sebagian besar sistem tidak mengambil tindakan dan langkah yang cukup untuk mendeteksi pelanggaran data. Waktu respons rata-rata dari sebuah insiden adalah 200 hari setelah itu terjadi, ini adalah banyak waktu untuk melakukan semua hal buruk untuk entitas yang menyerang. Pencatatan dan pemantauan yang tidak memadai memungkinkan penyerang untuk menyerang sistem lebih lanjut, mempertahankan cengkeramannya pada sistem, merusak, menahan, dan mengekstrak data sesuai kebutuhan. Penyerang menggunakan kurangnya pemantauan dan respons untuk menyerang aplikasi web.
Penebangan dan pemantauan yang tidak memadai terjadi kapan saja i.log aplikasi yang tidak dipantau untuk aktivitas yang tidak biasa, peristiwa yang dapat diaudit seperti upaya login yang gagal dan nilai transaksi yang tinggi tidak dicatat dengan benar, peringatan dan kesalahan menghasilkan pesan kesalahan yang tidak jelas, tidak ada peringatan pemicu jika pengujian menggunakan alat DAST otomatis,  tidak dapat mendeteksi atau memperingatkan serangan aktif dengan cepat, dll. Hal ini dapat dimitigasi dengan memastikan semua login, kegagalan kontrol akses, dan validasi input sisi server dapat dicatat untuk mengidentifikasi akun pengguna yang berbahaya dan ditahan dalam waktu yang cukup untuk penyelidikan forensik yang tertunda, dengan memastikan bahwa log yang dihasilkan dalam format kompatibel dengan solusi manajemen log terpusat, dengan memastikan pemeriksaan integritas pada transaksi bernilai tinggi, dengan membangun sistem untuk peringatan tepat waktu atas aktivitas mencurigakan, dll.

Sebagian besar serangan yang berhasil dimulai dengan memeriksa dan menyelidiki kerentanan dalam suatu sistem, memungkinkan penyelidikan kerentanan ini dapat mengakibatkan kompromi seluruh sistem.

Kesimpulan:

Kerentanan keamanan dalam aplikasi web memengaruhi semua entitas yang terkait dengan aplikasi itu. Kerentanan ini harus diperhatikan untuk menyediakan lingkungan yang aman dan terjamin bagi pengguna. Penyerang dapat menggunakan kerentanan ini untuk mengkompromikan sistem, menguasainya, dan meningkatkan hak istimewa. Dampak dari aplikasi web yang disusupi dapat divisualisasikan dari kredensial kartu kredit yang dicuri dan pencurian identitas hingga bocornya informasi yang sangat rahasia, dll. tergantung pada kebutuhan dan vektor serangan entitas jahat.

Tombol klik kiri mouse tidak berfungsi pada Windows 10
Jika Anda menggunakan mouse khusus dengan laptop, atau komputer desktop, tetapi but tombol klik kiri mouse tidak berfungsi pada Windows 10/8/7 untuk b...
Kursor melompat atau bergerak secara acak saat mengetik di Windows 10
Jika Anda menemukan bahwa kursor mouse Anda melompat atau bergerak sendiri, secara otomatis, acak saat mengetik di laptop atau komputer Windows, maka ...
Cara membalikkan arah gulir Mouse dan Touchpads di Windows 10
Mouse dan Panel sentuhs tidak hanya membuat komputasi menjadi mudah tetapi juga lebih efisien dan tidak memakan banyak waktu. Kami tidak dapat membaya...