Berbagi teknologi

Penelitian analisis dan pencegahan pada kerentanan web umum

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • Kata pengantar:

Di era digital saat ini, aplikasi web memainkan peran penting, menyediakan berbagai layanan dan fungsi online kepada kita. Namun, aplikasi ini sering kali menghadapi berbagai potensi ancaman keamanan, yang dapat menyebabkan kebocoran informasi sensitif, kelumpuhan sistem, dan konsekuensi buruk lainnya.

  • Kerentanan injeksi SQL

Serangan injeksi SQL (SQL Injection), disebut sebagai serangan injeksi atau injeksi SQL, banyak digunakan untuk mendapatkan kendali situs web secara ilegal. Ini adalah kerentanan keamanan yang terjadi pada lapisan database suatu aplikasi. Saat merancang program, pemeriksaan instruksi SQL yang terdapat dalam string input diabaikan, dan database secara keliru menganggapnya sebagai instruksi SQL normal dan menjalankannya, sehingga membuat database terkena serangan, yang dapat menyebabkan data dicuri, diubah. , dan dihapus, dan selanjutnya menyebabkan kerusakan pada situs web. Bahaya seperti penyematan kode berbahaya dan penanaman program pintu belakang.

Biasanya, lokasi untuk injeksi SQL meliputi:

  1. Pengiriman formulir, terutama permintaan POST, juga mencakup permintaan GET;
  2. Pengiriman parameter URL, terutama parameter permintaan GET;
  3. Pengiriman parameter cookie;
  4. Beberapa nilai yang dapat dimodifikasi di header permintaan HTTP, seperti Referer, User_Agent, dll.;
  5. Beberapa titik masukan tepi, seperti beberapa informasi file dari file .mp3, dll.

Metode pencegahan umum:

  • Semua pernyataan kueri menggunakan antarmuka kueri berparameter yang disediakan oleh database. Pernyataan berparameter menggunakan parameter alih-alih menyematkan variabel input pengguna ke dalam pernyataan SQL. Hampir semua sistem database saat ini menyediakan antarmuka eksekusi pernyataan SQL berparameter. Menggunakan antarmuka ini dapat secara efektif mencegah serangan injeksi SQL.
  • Escape atau enkode karakter khusus ('"<>&*;, dll.) yang masuk ke database.
  • Konfirmasikan tipe setiap data. Misalnya, data numerik harus berupa angka, dan bidang penyimpanan dalam database harus sesuai dengan tipe int.
  • Panjang data harus ditentukan secara ketat, yang dapat mencegah pernyataan injeksi SQL yang relatif panjang dieksekusi dengan benar sampai batas tertentu.
  • Pengkodean setiap lapisan data situs web disatukan. Disarankan untuk menggunakan pengkodean UTF-8 untuk semua data. Pengkodean yang tidak konsisten pada lapisan atas dan bawah dapat menyebabkan beberapa model pemfilteran dilewati.
  • Batasi secara ketat izin pengoperasian basis data pengguna situs web, dan berikan izin yang cukup kepada pengguna ini untuk pekerjaannya, sehingga meminimalkan bahaya serangan injeksi ke basis data.
  • Cegah situs web menampilkan pesan kesalahan SQL, seperti kesalahan ketik, ketidakcocokan bidang, dll., dan cegah penyerang menggunakan pesan kesalahan ini untuk membuat penilaian.
  • Sebelum situs web dirilis, disarankan untuk menggunakan beberapa alat pendeteksi injeksi SQL profesional untuk mendeteksi dan memperbaiki kerentanan injeksi SQL ini secara tepat waktu.

  • Kerentanan skrip lintas situs

Skrip lintas situs (sering disebut XSS) terjadi di sisi klien dan dapat digunakan untuk mencuri privasi, phishing, mencuri kata sandi, menyebarkan kode berbahaya, dan serangan lainnya.

Teknologi yang digunakan dalam serangan XSS sebagian besar adalah HTML dan Javascript, termasuk VBScript dan ActionScript. Meskipun serangan XSS tidak menimbulkan kerugian langsung pada server WEB, serangan tersebut menyebar melalui situs web, menyebabkan pengguna situs web diserang, mengakibatkan akun pengguna situs web dicuri, sehingga menyebabkan kerusakan serius pada situs web.

Jenis XSS meliputi:

  • Lintas situs non-persisten: Kerentanan skrip lintas situs yang tercermin saat ini merupakan jenis lintas situs yang paling umum. Kode lintas situs umumnya ada di tautan. Saat meminta tautan seperti itu, kode lintas situs direfleksikan kembali melalui server. Jenis kode lintas situs ini tidak disimpan di server (seperti database). Contoh yang diberikan dalam bab di atas adalah situasi seperti itu.
  • Lintas situs yang persisten: Ini adalah jenis kerusakan lintas situs yang paling langsung. Kode lintas situs disimpan di server (seperti database). Situasi yang umum terjadi adalah pengguna memposting di forum. Jika forum tidak memfilter data kode Javascript yang dimasukkan oleh pengguna, browser pengguna lain yang menelusuri postingan akan mengeksekusi kode Javascript yang disematkan oleh poster.
  • DOM lintas situs (DOM XSS): Ini adalah kerentanan lintas situs yang terjadi di DOM klien (Model Objek Dokumen).

Teknik pencegahan XSS yang umum digunakan meliputi:

  1. Terkait dengan rekomendasi perlindungan injeksi SQL, diasumsikan bahwa semua masukan mencurigakan, dan kata-kata seperti skrip, iframe, dll. di semua masukan harus diperiksa dengan ketat. Masukan di sini bukan hanya antarmuka masukan yang dapat berinteraksi langsung dengan pengguna, tetapi juga mencakup variabel dalam cookie dalam permintaan HTTP, variabel dalam header permintaan HTTP, dll.
  2. Verifikasi tidak hanya jenis data, tetapi juga format, panjang, rentang, dan kontennya.
  3. Jangan hanya melakukan verifikasi dan pemfilteran data di sisi klien, langkah pemfilteran utama dilakukan di sisi server.
  4. Data keluaran juga harus diperiksa. Nilai-nilai dalam database mungkin dikeluarkan di beberapa tempat di situs web besar. Bahkan jika masukan dikodekan dan operasi lain dilakukan, pemeriksaan keamanan harus dilakukan di titik keluaran di mana pun.
  5. Uji semua ancaman yang diketahui sebelum merilis aplikasi Anda.

  • Kerentanan kata sandi yang lemah

Tidak ada definisi yang tegas dan akurat tentang kata sandi yang lemah. Kata sandi yang mudah ditebak oleh orang lain (yang mungkin mengenal Anda dengan baik) atau diretas oleh alat peretas umumnya dianggap sebagai kata sandi yang lemah. Menetapkan kata sandi biasanya mengikuti prinsip-prinsip berikut:

  1. Jangan gunakan kata sandi kosong atau kata sandi default sistem, yang biasanya merupakan kata sandi lemah.
  2. Panjang kata sandi tidak boleh kurang dari 8 karakter.
  3. Kata sandi tidak boleh berupa rangkaian karakter yang berkesinambungan (misalnya: AAAAAAAA) atau kombinasi karakter yang berulang (misalnya: tzf.tzf.).
  4. Kata sandi harus berupa kombinasi empat jenis karakter berikut, huruf besar (AZ), huruf kecil (az), angka (0-9) dan karakter khusus. Berisi setidaknya satu karakter dari setiap jenis. Jika suatu jenis karakter tertentu hanya berisi satu, maka karakter tersebut tidak boleh menjadi karakter pertama atau terakhir.
  5. Kata sandi tidak boleh mencantumkan nama dan tanggal lahir, tanggal ulang tahun, nama login, alamat email dan informasi lain yang berkaitan dengan orang, orang tua, anak dan pasangan, serta kata-kata dalam kamus.
  6. Kata sandi tidak boleh berupa kata-kata dengan angka atau simbol yang menggantikan huruf tertentu.
  7. Kata sandi harus mudah diingat dan cepat dimasukkan sehingga orang lain tidak dapat dengan mudah melihat masukan Anda dari belakang.
  8. Ubah kata sandi Anda setidaknya sekali setiap 90 hari untuk mencegah penyusup yang tidak terdeteksi terus menggunakannya.

  • Kerentanan pelacakan header HTTP

Spesifikasi HTTP/1.1 (RFC2616) mendefinisikan metode HTTP TRACE, yang terutama digunakan oleh klien untuk menguji atau memperoleh informasi diagnostik dengan mengirimkan permintaan TRACE ke server Web. Ketika server web mengaktifkan TRACE, header permintaan yang dikirimkan akan dikembalikan secara lengkap di konten (Badan) respons server, di mana header HTTP kemungkinan besar menyertakan Token Sesi, Cookie, atau informasi autentikasi lainnya. Penyerang dapat mengeksploitasi kerentanan ini untuk menipu pengguna yang sah dan mendapatkan informasi pribadi mereka. Kerentanan ini sering dikombinasikan dengan metode lain untuk melakukan serangan yang efektif karena permintaan HTTP TRACE dapat dimulai melalui skrip browser klien (seperti XMLHttpRequest) dan dapat diakses melalui antarmuka DOM, sehingga mudah dieksploitasi oleh penyerang. Metode untuk melindungi terhadap kerentanan pelacakan header HTTP biasanya menonaktifkan metode HTTP TRACE.

  • Kerentanan eksekusi perintah jarak jauh Struts2

Apache Struts adalah kerangka sumber terbuka untuk membangun aplikasi web Java. Ada bug pemfilteran input di Apache Struts yang dapat dieksploitasi untuk menyuntikkan dan mengeksekusi kode Java arbitrer jika terjadi kesalahan konversi.

Sebagian besar alasan mengapa situs web memiliki kerentanan eksekusi kode jarak jauh adalah karena situs web menggunakan Apache Struts Xwork sebagai kerangka aplikasi situs web. Karena perangkat lunak ini memiliki kerentanan eksekusi kode jarak jauh yang berisiko tinggi, situs web menghadapi risiko keamanan. CNVD telah menangani banyak kerentanan seperti itu, seperti: kerentanan eksekusi perintah jarak jauh (CNVD-2012-13934) di situs web "Sistem Pemosisian Satelit Kendaraan GPS"; kerentanan eksekusi kode jarak jauh di buku tamu Aspcms (CNVD-2012-11590) , dll.

  • Kerentanan pengunggahan file

Kerentanan unggahan file biasanya disebabkan oleh lemahnya pemfilteran variabel jalur unggahan file dalam kode halaman web. Jika kode implementasi fungsi unggahan file tidak secara ketat membatasi akhiran file dan jenis file yang diunggah oleh pengguna, penyerang dapat mengunggah file apa pun melalui direktori yang dapat diakses. melalui Web, termasuk file pintu belakang Situs Web (webshell), sehingga mengontrol server situs web dari jarak jauh.

Oleh karena itu, selama pengembangan situs web dan aplikasi, file yang diunggah harus dibatasi dan diverifikasi secara ketat, dan file yang berisi kode berbahaya harus diunggah. Pada saat yang sama, izin eksekusi direktori terkait dibatasi untuk mencegah serangan webshell.

  • Kerentanan kebocoran alamat IP pribadi

Alamat IP merupakan indikator penting dari pengguna jaringan dan merupakan hal yang perlu diketahui penyerang sebelum melancarkan serangan. Ada banyak cara untuk mendapatkannya, dan penyerang juga akan mengadopsi metode yang berbeda tergantung pada kondisi jaringan yang berbeda, seperti: menggunakan perintah Ping di LAN untuk melakukan ping ke nama pihak lain di jaringan untuk mendapatkan IP menggunakan versi IP; QQ untuk menampilkannya langsung di Internet. Cara paling efektif adalah dengan mencegat dan menganalisis paket data jaringan pihak lain. Penyerang dapat menemukan dan secara langsung menganalisis informasi header IP dari paket data yang disadap melalui perangkat lunak, dan kemudian mempelajari IP spesifik berdasarkan informasi ini.

Untuk "metode analisis paket" yang paling efektif, Anda dapat menginstal beberapa perangkat lunak yang secara otomatis dapat menghapus informasi IP di header paket data yang dikirim. Namun, ada beberapa kelemahan dalam menggunakan perangkat lunak ini, seperti: menghabiskan banyak sumber daya dan mengurangi kinerja komputer; akan terpengaruh ketika mengakses beberapa forum atau situs web; tidak cocok untuk pengguna warnet, dll. Metode paling populer bagi pengguna individu untuk menyembunyikan IP mereka saat ini adalah dengan menggunakan proxy. Setelah menggunakan server proxy, "layanan penerusan" akan mengubah paket data yang dikirim, sehingga metode "analisis paket" tidak efektif. Beberapa perangkat lunak jaringan yang dengan mudah membocorkan IP pengguna (QQ, MSN, IE, dll.) mendukung penggunaan metode proxy untuk terhubung ke Internet. Apalagi setelah QQ menggunakan perangkat lunak proxy seperti "ezProxy" untuk terhubung, versi IP QQ tidak bisa menampilkan alamat IP. Meskipun proxy dapat secara efektif menyembunyikan IP pengguna, penyerang juga dapat melewati proxy tersebut dan menemukan alamat IP asli pihak lain. Metode yang digunakan oleh pengguna untuk menyembunyikan IP dalam keadaan juga bergantung pada situasinya.

  • Permintaan login tidak terenkripsi

Karena konfigurasi web tidak aman dan permintaan login mengirimkan kolom sensitif seperti nama pengguna dan kata sandi tidak terenkripsi, penyerang dapat menguping jaringan untuk mencuri informasi sensitif ini. Disarankan untuk mengenkripsi, seperti SSH, sebelum melakukan transmisi.

  • Kerentanan kebocoran informasi sensitif

Injeksi SQL, XSS, traversal direktori, kata sandi yang lemah, dll. dapat menyebabkan kebocoran informasi sensitif, dan penyerang dapat memperoleh informasi sensitif melalui kerentanan.Metode pertahanan yang berbeda digunakan untuk penyebab yang berbeda.

  • CSRF

Aplikasi web mengacu pada istilah umum untuk menggunakan arsitektur B/S dan menyediakan layanan melalui protokol HTTP/HTTPS. Dengan meluasnya penggunaan Internet, aplikasi Web telah diintegrasikan ke dalam setiap aspek kehidupan sehari-hari: belanja online, aplikasi perbankan online, transaksi sekuritas dan saham, persetujuan administrasi pemerintah, dan sebagainya. Dalam kunjungan Web ini, sebagian besar aplikasi bukan penjelajahan web statis, namun melibatkan pemrosesan dinamis di sisi server. Saat ini, jika pemrogram Java, PHP, ASP, dan bahasa pemrograman lainnya tidak memiliki kesadaran keamanan yang memadai dan tidak secara ketat memeriksa input parameter program, dll., masalah keamanan aplikasi web akan muncul satu demi satu.

Jadi bagaimana kerentanan di atas dapat ditemukan tepat waktu?

Harus disebutkanLayanan Pemindaian Kerentanan VSS!!

Apa itu layanan pemindaian kerentanan?

Sejak munculnya Internet, insiden keamanan jaringan yang menggunakan serangan kerentanan terus berlanjut dan menjadi semakin serius. Kerugian ekonomi yang disebabkan oleh kerentanan di seluruh dunia sangat besar setiap tahunnya dan terus meningkat dari tahun ke tahun. Kerentanan telah menjadi salah satu penyebab utama yang merugikan Internet dan juga menjadi fokus perhatian publik.

"Layanan Pemindaian Kerentanan (VSS) adalah layanan deteksi keamanan untuk pemindaian kerentanan situs web. Saat ini layanan ini menyediakan beberapa layanan seperti deteksi kerentanan umum, manajemen siklus hidup kerentanan, dan pemindaian khusus. Setelah pengguna membuat tugas baru, mereka dapat memicu pemindaian secara manual tugas untuk mendeteksi kerentanan situs web dan memberikan saran perbaikan kerentanan.

Keamanan sistem jaringan bergantung pada link terlemah dalam sistem jaringan. Keamanan sistem jaringan merupakan proses yang dinamis. Cara yang paling efektif adalah dengan melakukan analisis keamanan dan pemindaian sistem jaringan secara berkala, menemukan dan menemukan kerentanan di a tepat waktu dan memodifikasinya.

    • Skenario aplikasi layanan pemindaian kerentanan:
      1. Sistem website/aplikasi online

Ketika suatu website/sistem aplikasi baru online, maka perlu dilakukan penilaian keamanan terlebih dahulu terhadap website/sistem aplikasi tersebut untuk menilai apakah website/sistem aplikasi online tersebut mempunyai kerentanan dan risiko, untuk menjamin keamanan website/sistem aplikasi setelahnya. itu online, dan untuk mengurangi risiko diretas atau diretas. Risiko gangguan dan memastikan pengoperasian situs web/sistem aplikasi yang aman setelah online.

      1. Ancaman dan serangan terhadap situs web/sistem aplikasi

Ketika ancaman dan serangan baru terus berkembang, keamanan aplikasi web secara langsung mempengaruhi keberlangsungan pengembangan bisnis. Situs web/sistem aplikasi sering kali terkena serangan dan ancaman keamanan jaringan, yang mengakibatkan informasi jaringan disadap, dikirim ulang, dirusak, dan serangan penolakan layanan, serta penolakan perilaku jaringan, spoofing, akses tidak sah, transmisi virus, dan masalah lainnya. . Inspeksi keamanan adalah pemeriksaan menyeluruh terhadap situs web/sistem aplikasi, dan saran perbaikan profesional diberikan untuk mencegah situs web digunakan oleh peretas dan memengaruhi keamanan situs web.

      1. Pemantauan situs web/sistem aplikasi secara real-time

Pemerintah, pendidikan, keuangan dan unit lainnya perlu memantau situs web secara real time. Jika kerentanan tidak diperbaiki tepat waktu, hal ini akan berdampak serius pada citra pemerintah, pendidikan dan unit lainnya dan menyebabkan kerugian besar bagi perusahaan. pemantauan dan pengelolaan keamanan sistem situs web/aplikasi secara real-time diperlukan. Deteksi keamanan secara intuitif menampilkan hasil pemantauan, memberi tahu Anda segera setelah risiko ditemukan, dan dengan cepat mengidentifikasi anomali halaman web dan memberi tahu peringatan untuk mencegah eksploitasi kerentanan dan memengaruhi keamanan sistem.

      1. Situs web/sistem aplikasi dan persyaratan kepatuhan lainnya

Perlindungan tingkat keamanan informasi adalah sistem dasar keamanan informasi di negara saya, yang mengharuskan operator jaringan untuk mematuhi persyaratan sistem perlindungan tingkat keamanan jaringan. Jaminan Kelas A mewajibkan operator sistem situs/aplikasi untuk melakukan penilaian keamanan setidaknya dua kali setahun untuk memastikan kepatuhan jaminan Kelas A. Pengujian keselamatan membantu pengguna yang membutuhkan asuransi tersebut untuk melakukan penilaian keselamatan dan memenuhi persyaratan kepatuhan asuransi tersebut!

    • Apa saja yang umumnya disertakan dalam layanan pemindaian kerentanan?
      1. Pemindaian kerentanan web

Celah dan kelemahan website dapat dengan mudah dimanfaatkan oleh hacker untuk menimbulkan serangan, membawa dampak buruk, dan menimbulkan kerugian ekonomi.

Pemindaian kerentanan umumPustaka aturan kerentanan yang kaya dapat melakukan pemindaian kerentanan yang komprehensif dan mendalam untuk berbagai jenis situs web dan memberikan laporan pemindaian yang profesional dan komprehensif.

Pindai kerentanan yang paling mendesakUntuk kerentanan CVE yang paling mendesak, pakar keamanan segera menganalisis kerentanan, memperbarui aturan, dan menyediakan pemindaian kerentanan CVE tercepat dan paling profesional.

      1. Pemindaian kata sandi yang lemah

Aset seperti host atau middleware umumnya menggunakan kata sandi untuk login jarak jauh, dan penyerang sering kali menggunakan teknologi pemindaian untuk mendeteksi nama pengguna dan kata sandi yang lemah.

Beberapa adegan tersediaKoneksi OS yang komprehensif, mencakup 90% middleware, mendukung deteksi kata sandi yang lemah untuk layanan Web standar, sistem operasi, database, dll.

Perpustakaan yang kaya dengan kata sandi yang lemahPustaka pencocokan kata sandi lemah yang kaya, menyimulasikan peretas untuk mendeteksi kata sandi lemah dalam berbagai skenario, dan mendukung kamus khusus untuk deteksi kata sandi.

      1. Pemindaian perangkat tengah

Middleware dapat membantu pengguna mengembangkan dan mengintegrasikan perangkat lunak aplikasi yang kompleks secara fleksibel dan efisien. Begitu kerentanan ditemukan dan dieksploitasi oleh peretas, hal itu akan memengaruhi keamanan lapisan atas dan bawah.

Skenario pemindaian yang kayaMendukung pemindaian kerentanan versi dan kepatuhan konfigurasi pada wadah web arus utama, kerangka kerja pengembangan front-end, dan tumpukan teknologi layanan mikro back-end.

Beberapa metode pemindaian opsionalIni mendukung identifikasi middleware dan versinya di server melalui berbagai metode seperti paket standar atau instalasi yang disesuaikan, dan secara komprehensif menemukan risiko kerentanan di server.

      1. Pengujian kepatuhan konten

Ketika sebuah situs web ditemukan memiliki ucapan yang tidak patuh, hal itu akan menyebabkan banyak kerugian bagi merek dan perekonomian perusahaan.

Identifikasi yang akuratPerbarui data sampel dari hot spot politik dan peristiwa opini publik terkini secara serentak, dan temukan secara akurat berbagai konten pornografi, terkait kekerasan, terkait terorisme, terkait politik, dan konten sensitif lainnya.

Cerdas dan efisienMelakukan analisis semantik kontekstual pada konten teks dan gambar, dan secara cerdas mengidentifikasi varian teks yang kompleks.

  • Meringkaskan:

Begitu kerentanan dieksploitasi oleh penjahat, perusahaan akan menderita kerugian besar. Jika Anda dapat secara proaktif menemukan risiko situs web dan mengambil tindakan perbaikan tepat waktu, Anda dapat mengurangi risiko dan kerugian. Oleh karena itu, pemindaian kerentanan, sebagai tindakan pencegahan proaktif, memainkan peran besar dalam menghindari serangan peretas dan mengatasi masalah sejak awal secara efektif.

Layanan pemindaian kerentanan dapat secara efektif memecahkan tantangan yang dihadapi oleh manajemen keamanan situs web, dan juga dapat lebih memenuhi efisiensi dan akurasi yang diperlukan dalam pekerjaan pemeriksaan keamanan, sehingga dapat meningkatkan tingkat manajemen keamanan situs web dan aplikasi.