10 Kerentanan Keselamatan Web Paling Lazim

Isi kandungan:

Anonim

OWASP atau Open Web Security Project adalah organisasi amal bukan untung yang fokus pada peningkatan keselamatan perisian dan aplikasi web.

Organisasi menerbitkan senarai kerentanan keselamatan web teratas berdasarkan data dari pelbagai organisasi keselamatan.

Kerentanan keselamatan web diprioritaskan bergantung pada eksploitasi, kebolehkesanan dan kesan terhadap perisian.

  • Kegunaan -

    Apa yang diperlukan untuk mengeksploitasi kerentanan keselamatan? Pengeksploitasian tertinggi apabila serangan hanya memerlukan penyemak imbas web dan yang paling rendah adalah pengaturcaraan dan alat canggih.

  • Kebolehkesanan -

    Seberapa mudah mengesan ancaman itu? Yang paling tinggi adalah maklumat yang dipaparkan pada URL, Borang atau Mesej ralat dan paling rendah adalah kod sumber.

  • Kesan atau Kerosakan -

    Berapa banyak kerosakan yang akan dilakukan jika kerentanan keselamatan terkena atau diserang? Kerosakan sistem tertinggi yang paling tinggi dan yang paling rendah sama sekali.

Tujuan utama OWASP Top 10 adalah untuk mendidik para pemaju, pereka, pengurus, arkitek dan organisasi mengenai kelemahan keselamatan yang paling penting.

Kerentanan keselamatan 10 teratas seperti di OWASP Top 10 adalah:

  • Suntikan SQL
  • Skrip Lintas Tapak
  • Pengesahan Pecah dan Pengurusan Sesi
  • Rujukan Objek Langsung Tidak Selamat
  • Permintaan Pemalsuan Lintas Tapak
  • Salah Konfigurasi Keselamatan
  • Penyimpanan Kriptografi Tidak Selamat
  • Gagal menyekat Akses URL
  • Perlindungan Lapisan Pengangkutan Tidak mencukupi
  • Pengalihan dan Penerusan Tidak Sah

Suntikan SQL

Penerangan

Injection adalah kerentanan keselamatan yang membolehkan penyerang mengubah penyataan SQL backend dengan memanipulasi data yang dibekalkan pengguna.

Suntikan berlaku apabila input pengguna dikirim ke jurubahasa sebagai bagian dari perintah atau pertanyaan dan menipu jurubahasa untuk melaksanakan perintah yang tidak diinginkan dan memberikan akses ke data yang tidak dibenarkan.

Perintah SQL yang ketika dijalankan oleh aplikasi web juga dapat memperlihatkan pangkalan data back-end.

Implikasinya

  • Penyerang boleh menyuntik kandungan berbahaya ke dalam bidang yang rentan.
  • Data sensitif seperti Nama Pengguna, Kata Laluan, dll boleh dibaca dari pangkalan data.
  • Data pangkalan data boleh diubah (Masukkan / Kemas kini / Hapus).
  • Operasi Pentadbiran dapat dilaksanakan di pangkalan data

Objek yang mudah dijangkiti

  • Medan Input
  • URL berinteraksi dengan pangkalan data.

Contoh:

  • Suntikan SQL di Halaman Log Masuk

Log masuk ke aplikasi tanpa mempunyai kelayakan yang sah.

Nama pengguna yang sah tersedia, dan kata laluan tidak tersedia.

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

Nama Pengguna: sjones

Kata Laluan: 1 = 1 'atau lulus123

Pertanyaan SQL dibuat dan dihantar ke Jurubahasa seperti di bawah

PILIH * DARI Pengguna DI MANA Nama Pengguna = sjones DAN Kata Laluan = 1 = 1 'atau lulus123;

Cadangan

  1. Putih menyenaraikan medan input
  2. Elakkan memaparkan mesej ralat terperinci yang berguna untuk penyerang.

Skrip Lintas Tapak

Penerangan

Cross Site Scripting juga dikenali sebagai XSS.

Kerentanan XSS mensasarkan skrip yang disematkan di halaman yang dijalankan di sisi pelanggan iaitu penyemak imbas pengguna dan bukan di sisi pelayan. Kekurangan ini dapat terjadi ketika aplikasi mengambil data yang tidak dipercaya dan mengirimkannya ke penyemak imbas web tanpa pengesahan yang tepat.

Penyerang boleh menggunakan XSS untuk melaksanakan skrip jahat pada pengguna dalam hal ini penyemak imbas mangsa. Oleh kerana penyemak imbas tidak dapat mengetahui apakah skripnya boleh dipercayai atau tidak, skrip akan dijalankan, dan penyerang dapat merampas kuki sesi, mengotori laman web, atau mengarahkan pengguna ke laman web yang tidak diingini dan berniat jahat.

XSS adalah serangan yang membolehkan penyerang melaksanakan skrip pada penyemak imbas mangsa.

Implikasinya:

  • Dengan menggunakan kerentanan keamanan ini, penyerang dapat memasukkan skrip ke dalam aplikasi, dapat mencuri cookie sesi, mencemarkan laman web, dan dapat menjalankan perisian hasad di mesin korban.

Objek yang mudah dijangkiti

  • Medan Input
  • URL

Contoh

1. http://www.vulnerablesite.com/home?" > alert(" xss") >

Skrip di atas ketika dijalankan pada penyemak imbas, kotak pesan akan dipaparkan jika laman web tersebut rentan terhadap XSS.

Serangan yang lebih serius boleh dilakukan sekiranya penyerang ingin memaparkan atau menyimpan kuki sesi.

2. http://demo.testfire.net/search.aspx?txtSearch > http://google.com lebar = 500 tinggi 500>

Skrip di atas apabila dijalankan, penyemak imbas akan memuatkan bingkai yang tidak kelihatan yang menunjuk ke http://google.com .

Serangan itu boleh dibuat serius dengan menjalankan skrip jahat pada penyemak imbas.

Cadangan

  1. Medan input Penyenaraian Putih
  2. Pengekodan Output Input

Pengesahan Pecah dan Pengurusan Sesi

Penerangan

Laman web biasanya membuat cookie sesi dan ID sesi untuk setiap sesi yang sah, dan kuki ini mengandungi data sensitif seperti nama pengguna, kata laluan, dan lain-lain. Apabila sesi berakhir sama ada dengan log keluar atau penyemak imbas ditutup dengan tiba-tiba, kuki ini harus dibatalkan iaitu untuk setiap sesi mesti ada kuki baru.

Sekiranya kuki tidak dibatalkan, data sensitif akan wujud di dalam sistem. Sebagai contoh, pengguna yang menggunakan komputer awam (Cyber ​​Cafe), kuki laman web yang rentan berada di sistem dan terdedah kepada penyerang. Seorang penyerang menggunakan komputer awam yang sama setelah beberapa waktu, data sensitif terganggu.

Dengan cara yang sama, pengguna yang menggunakan komputer awam, bukannya log keluar, dia menutup penyemak imbas secara tiba-tiba. Penyerang menggunakan sistem yang sama, ketika melayari laman web rentan yang sama, sesi sebelumnya mangsa akan dibuka. Penyerang boleh melakukan apa sahaja yang dia mahu dari mencuri maklumat profil, maklumat kad kredit, dll.

Pemeriksaan harus dilakukan untuk mengetahui kekuatan pengesahan dan pengurusan sesi. Kunci, token sesi, kuki harus dilaksanakan dengan betul tanpa menjejaskan kata laluan.

Objek yang mudah dijangkiti

  • ID sesi yang didedahkan di URL boleh menyebabkan serangan penetapan sesi.
  • ID sesi sama sebelum dan selepas log keluar dan log masuk.
  • Waktu Sesi Sesi tidak dilaksanakan dengan betul.
  • Aplikasi memberikan ID sesi yang sama untuk setiap sesi baru.
  • Bahagian aplikasi yang disahkan dilindungi menggunakan SSL dan kata laluan disimpan dalam format hash atau dienkripsi.
  • Sesi tersebut boleh digunakan semula oleh pengguna istimewa.

Implikasinya

  • Dengan memanfaatkan kerentanan ini, penyerang dapat merampas sesi, mendapatkan akses tanpa izin ke sistem yang memungkinkan pendedahan dan pengubahsuaian maklumat yang tidak sah.
  • Sesi boleh disokong tinggi menggunakan kuki yang dicuri atau sesi menggunakan XSS.

Contoh

  1. Aplikasi tempahan syarikat penerbangan menyokong penulisan semula URL, meletakkan ID sesi di URL:

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

    Pengguna laman web yang disahkan ingin memberitahu rakannya mengenai penjualan dan menghantar e-mel. Rakan-rakan tersebut menerima ID sesi dan boleh digunakan untuk melakukan pengubahsuaian tanpa kebenaran atau menyalahgunakan perincian kad kredit yang disimpan.

  2. Aplikasi rentan terhadap XSS, di mana penyerang dapat mengakses ID sesi dan dapat digunakan untuk merampas sesi.
  3. Tamat masa aplikasi tidak ditetapkan dengan betul. Pengguna menggunakan komputer awam dan menutup penyemak imbas daripada log keluar dan berjalan pergi. Penyerang menggunakan penyemak imbas yang sama beberapa waktu kemudian, dan sesi tersebut disahkan.

Cadangan

  1. Semua keperluan pengesahan dan pengurusan sesi harus ditakrifkan mengikut Piawaian Pengesahan Keselamatan Aplikasi OWASP.
  2. Jangan sekali-kali mendedahkan kelayakan dalam URL atau Log.
  3. Usaha kuat juga harus dilakukan untuk mengelakkan kekurangan XSS yang dapat digunakan untuk mencuri ID sesi.

Rujukan Objek Langsung Tidak Selamat

Penerangan

Ini terjadi ketika pengembang memperlihatkan referensi ke objek implementasi internal, seperti file, direktori, atau kunci pangkalan data seperti dalam URL atau sebagai parameter BENTUK. Penyerang dapat menggunakan maklumat ini untuk mengakses objek lain dan dapat membuat serangan di masa depan untuk mengakses data yang tidak dibenarkan.

Implikasinya

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

Objek yang mudah dijangkiti

  • Di URL.

Contoh:

Mengubah "userid" dalam URL berikut dapat membuat penyerang melihat maklumat pengguna lain.

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

Penyerang dapat melihat maklumat orang lain dengan mengubah nilai id pengguna.

Cadangan:

  1. Laksanakan pemeriksaan kawalan akses.
  2. Elakkan daripada mendedahkan rujukan objek dalam URL.
  3. Sahkan kebenaran ke semua objek rujukan.

Permintaan Pemalsuan Lintas Tapak

Penerangan

Permintaan Lintas Tapak Pemalsuan adalah permintaan palsu yang berasal dari tapak silang.

Serangan CSRF adalah serangan yang terjadi ketika laman web, e-mel, atau program yang berniat jahat menyebabkan penyemak imbas pengguna melakukan tindakan yang tidak diinginkan di laman web yang dipercayai yang saat ini pengguna disahkan.

Serangan CSRF memaksa penyemak imbas mangsa yang log masuk untuk mengirim permintaan HTTP palsu, termasuk cookie sesi mangsa dan maklumat pengesahan lain yang disertakan secara automatik, ke aplikasi web yang rentan.

Pautan akan dihantar oleh penyerang kepada mangsa ketika pengguna mengklik URL ketika log masuk ke laman web asal, data akan dicuri dari laman web.

Implikasinya

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

Objek yang mudah dijangkiti

  • Halaman Profil Pengguna
  • Borang akaun pengguna
  • Halaman urus niaga perniagaan

Contoh

Mangsa dilog masuk ke laman web bank menggunakan bukti kelayakan yang sah. Dia menerima surat dari penyerang yang mengatakan "Silakan klik di sini untuk menyumbangkan $ 1 untuk menyebabkannya."

Apabila mangsa mengkliknya, permintaan yang sah akan dibuat untuk menyumbangkan $ 1 ke akaun tertentu.

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

Penyerang menangkap permintaan ini dan membuat permintaan di bawah ini dan memasukkan butang yang mengatakan "Saya Menyokong Sebab."

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

Oleh kerana sesi tersebut disahkan dan permintaannya masuk melalui laman web bank, pelayan akan memindahkan $ 1000 dolar kepada penyerang.

Syor

  1. Amanah kehadiran pengguna semasa melakukan tindakan sensitif.
  2. Laksanakan mekanisme seperti CAPTCHA, Pengesahan Semula, dan Token Permintaan Unik.

Salah Konfigurasi Keselamatan

Penerangan

Konfigurasi Keselamatan mesti ditentukan dan digunakan untuk aplikasi, kerangka kerja, pelayan aplikasi, pelayan web, pelayan pangkalan data, dan platform. Sekiranya ini dikonfigurasikan dengan betul, penyerang dapat memiliki akses tanpa izin ke data atau fungsi sensitif.

Kadang-kadang kelemahan seperti itu mengakibatkan kompromi sistem yang lengkap. Mengemas kini perisian juga keselamatan yang baik.

Implikasinya

  • Dengan memanfaatkan kerentanan ini, penyerang dapat menghitung informasi yang mendasari teknologi versi dan aplikasi pelayan aplikasi, maklumat pangkalan data dan memperoleh informasi tentang aplikasi untuk memasang beberapa serangan lagi.

Objek rentan

  • URL
  • Medan Bentuk
  • Medan input

Contoh

  1. Konsol pentadbir pelayan aplikasi dipasang secara automatik dan tidak dikeluarkan. Akaun lalai tidak diubah. Penyerang boleh log masuk dengan kata laluan lalai dan boleh mendapatkan akses tanpa kebenaran.
  2. Penyenaraian Direktori tidak dilumpuhkan pada pelayan anda. Penyerang menemui dan hanya dapat menyenaraikan direktori untuk mencari fail apa pun.

Cadangan

  1. Senibina aplikasi yang kuat yang memberikan pemisahan dan keselamatan yang baik antara komponen.
  2. Tukar nama pengguna dan kata laluan lalai.
  3. Lumpuhkan senarai direktori dan laksanakan pemeriksaan kawalan akses.

Penyimpanan Kriptografi Tidak Selamat

Penerangan

Penyimpanan Kriptografi Tidak Selamat adalah kerentanan umum yang wujud apabila data sensitif tidak disimpan dengan selamat.

Maklumat pengguna, maklumat profil, maklumat kesihatan, maklumat kad kredit, dan lain-lain berada di bawah maklumat data sensitif di laman web.

Data ini akan disimpan di pangkalan data aplikasi. Apabila data ini disimpan dengan tidak betul dengan tidak menggunakan enkripsi atau hashing *, data tersebut akan rentan terhadap penyerang.

(* Hashing adalah transformasi watak rentetan menjadi rentetan pendek atau kunci yang lebih pendek. Untuk mendekripsi rentetan, algoritma yang digunakan untuk membentuk kunci harus tersedia)

Implikasinya

  • Dengan menggunakan kelemahan ini, penyerang dapat mencuri, mengubah data yang dilindungi dengan lemah untuk melakukan pencurian identiti, penipuan kad kredit atau kejahatan lain.

Objek rentan

  • Pangkalan data aplikasi.

Contoh

Dalam salah satu aplikasi perbankan, pangkalan data kata laluan menggunakan hash tanpa garam * untuk menyimpan kata laluan setiap orang. Kelemahan suntikan SQL membolehkan penyerang mengambil fail kata laluan. Semua hash yang tidak berlarut dapat dipaksakan secara kasar dalam masa yang singkat sedangkan kata laluan yang diasinkan akan memakan masa ribuan tahun.

(* Unsalted Hashes - Garam adalah data rawak yang ditambahkan pada data asal. Garam ditambahkan pada kata laluan sebelum mencirikan)

Cadangan

  1. Pastikan algoritma standard kuat yang sesuai. Jangan buat algoritma kriptografi sendiri. Gunakan hanya algoritma awam yang diluluskan seperti AES, kriptografi kunci awam RSA, dan SHA-256, dll.
  2. Pastikan sandaran di luar lokasi disulitkan, tetapi kunci diuruskan dan disandarkan secara berasingan.

Gagal menyekat Akses URL

Penerangan

Aplikasi web memeriksa hak akses URL sebelum memberikan pautan dan butang yang dilindungi. Aplikasi perlu melakukan pemeriksaan kawalan akses yang serupa setiap kali halaman ini diakses.

Dalam kebanyakan aplikasi, halaman, lokasi dan sumber istimewa tidak diberikan kepada pengguna istimewa.

Dengan tekaan yang cerdas, penyerang dapat mengakses halaman hak istimewa. Penyerang boleh mengakses halaman sensitif, memanggil fungsi dan melihat maklumat sulit.

Implikasinya

  • Menggunakan penyerang kerentanan ini dapat memperoleh akses ke URL yang tidak sah, tanpa masuk ke aplikasi dan memanfaatkan kerentanan tersebut. Penyerang boleh mengakses halaman sensitif, memanggil fungsi dan melihat maklumat sulit.

Objek rentan:

  • URL

Contoh

  1. Penyerang menyedari URL menunjukkan peranan sebagai "/ user / getaccounts." Dia mengubahsuai sebagai "/ admin / getaccounts".
  2. Penyerang dapat menambahkan peranan ke URL.

http://www.vulnerablsite.com boleh diubah suai sebagai http://www.vulnerablesite.com/admin

Cadangan

  1. Laksanakan pemeriksaan kawalan akses yang kuat.
  2. Dasar pengesahan dan kebenaran harus berdasarkan peranan.
  3. Hadkan akses ke URL yang tidak diingini.

Perlindungan Lapisan Pengangkutan Tidak mencukupi

Penerangan

Berurusan dengan pertukaran maklumat antara pengguna (pelanggan) dan pelayan (aplikasi). Aplikasi sering menghantar maklumat sensitif seperti butiran pengesahan, maklumat kad kredit, dan token sesi melalui rangkaian.

Dengan menggunakan algoritma yang lemah atau menggunakan sijil yang luput atau tidak sah atau tidak menggunakan SSL dapat membiarkan komunikasi terdedah kepada pengguna yang tidak dipercayai, yang boleh membahayakan aplikasi web dan atau mencuri maklumat sensitif.

Implikasinya

  • Dengan menggunakan kerentanan keselamatan web ini, penyerang dapat mengendus kredensial pengguna yang sah dan mendapatkan akses ke aplikasi.
  • Boleh mencuri maklumat kad kredit.

Objek rentan

  • Data dihantar melalui rangkaian.

Cadangan

  1. Dayakan HTTP selamat dan laksanakan pemindahan kelayakan melalui HTTPS sahaja.
  2. Pastikan sijil anda sah dan tidak luput.

Contoh:

1. Aplikasi yang tidak menggunakan SSL, penyerang hanya akan memantau lalu lintas rangkaian dan melihat kuki sesi korban yang disahkan. Penyerang boleh mencuri kuki itu dan melakukan serangan Man-in-the-Middle.

Pengalihan dan Penerusan Tidak Sah

Penerangan

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

Sekiranya tidak ada pengesahan yang tepat ketika mengarahkan ke halaman lain, penyerang dapat memanfaatkannya dan dapat mengarahkan mangsa ke laman phishing atau perisian hasad, atau menggunakan penerusan untuk mengakses halaman yang tidak sah.

Implikasinya

  • Penyerang dapat mengirim URL kepada pengguna yang berisi URL asli yang dilampirkan dengan URL jahat yang dikodkan. Seorang pengguna dengan hanya melihat bahagian asli dari URL yang dihantar oleh penyerang dapat melayari dan boleh menjadi mangsa.

Contoh

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

Diubah suai menjadi

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

Cadangan

  1. Cukup elakkan penggunaan pengalihan dan penerusan dalam aplikasi. Sekiranya digunakan, jangan melibatkan penggunaan parameter pengguna dalam mengira tujuan.
  2. Sekiranya parameter tujuan tidak dapat dielakkan, pastikan bahawa nilai yang diberikan adalah sah, dan disahkan untuk pengguna.

Artikel ini disumbangkan oleh Prasanthi Eati