Tutorial Ujian Fuzz (Fuzzing): Apa itu, Jenis, Alat & Contohnya

Isi kandungan:

Anonim

Ujian Fuzz

Fuzz Testing atau Fuzzing adalah teknik pengujian perisian untuk meletakkan data tidak sah atau rawak yang disebut FUZZ ke dalam sistem perisian untuk menemui kesalahan pengekodan dan celah keselamatan. Tujuan pengujian fuzz adalah memasukkan data menggunakan teknik automatik atau separa automatik dan menguji sistem untuk pelbagai pengecualian seperti sistem crash atau kegagalan kod bawaan, dll.

Ujian Fuzz pada awalnya dikembangkan oleh Barton Miller di University of Wisconsin pada tahun 1989. Uji Fuzzing atau fuzzing adalah teknik pengujian Perisian, dan ia adalah sejenis Ujian Keselamatan .

Mengapa perlu melakukan Ujian Fuzz?

  • Biasanya, ujian kabur mendapati kesalahan atau kecacatan keselamatan yang paling serius.
  • Ujian Fuzz memberikan hasil yang lebih berkesan apabila digunakan dengan Uji Kotak Hitam, Uji Beta, dan kaedah debugging lainnya.
  • Ujian Fuzz digunakan untuk memeriksa Kerentanan perisian. Ini teknik pengujian yang sangat menjimatkan.
  • Ujian Fuzz adalah salah satu teknik pengujian kotak hitam. Fuzzing adalah salah satu kaedah penggodam yang paling biasa digunakan untuk mencari kerentanan sistem.

Cara melakukan Ujian Fuzz

Langkah-langkah untuk ujian kabur merangkumi langkah-langkah pengujian asas-

Langkah 1) Kenal pasti sistem sasaran

Langkah 2) Kenal pasti input

Langkah 3) Hasilkan data Fuzzed

Langkah 4) Jalankan ujian menggunakan data kabur

Langkah 5) Pantau tingkah laku sistem

Langkah 6) Kecacatan log

Contoh Fuzzers

  • Fuzzer Berasaskan Mutasi mengubah sampel data yang ada untuk membuat data ujian baru. Ini adalah pendekatan yang sangat sederhana dan mudah, ini bermula dengan contoh protokol yang sah dan terus mengatur setiap bait atau fail.

  • Fuzzer Berasaskan Generasi menentukan data baru berdasarkan input model. Ia mula menghasilkan input dari awal berdasarkan spesifikasi.

  • PROTOCOL-BASED-fuzzer , fuzzer yang paling berjaya adalah mempunyai pengetahuan terperinci mengenai format protokol yang diuji. Pemahaman bergantung pada spesifikasi. Ia melibatkan penulisan susunan spesifikasi ke dalam alat kemudian dengan menggunakan teknik penjanaan ujian berdasarkan model melalui spesifikasi dan menambahkan penyimpangan dalam isi data, urutan, dll. Ini juga dikenali sebagai ujian sintaks, pengujian tatabahasa, pengujian ketahanan, dll. Fuzzer dapat menghasilkan kes ujian dari yang sudah ada, atau mereka boleh menggunakan input yang sah atau tidak sah.

Terdapat dua batasan fuzzing berdasarkan protokol:

  1. Pengujian tidak dapat dilanjutkan sehingga spesifikasi matang.
  2. Banyak protokol yang berguna adalah lanjutan dari protokol yang diterbitkan. Sekiranya pengujian fuzz berdasarkan spesifikasi yang diterbitkan, liputan Uji untuk protokol baru akan terhad.

Bentuk teknik fuzzing yang paling mudah adalah mengirimkan input rawak ke perisian sama ada sebagai paket protokol atau sebagai acara. Teknik menghantar input rawak ini sangat ampuh untuk mencari bug dalam banyak aplikasi dan perkhidmatan. Teknik lain juga ada, dan sangat mudah dilaksanakan. Untuk melaksanakan teknik ini, kita hanya perlu mengubah input yang ada. Kita boleh menukar input hanya dengan menukar bit input.

Jenis pepijat yang dikesan oleh Ujian Fuzz

  • Kegagalan penegasan dan kebocoran memori metodologi ini banyak digunakan untuk aplikasi besar di mana pepijat mempengaruhi keselamatan memori, yang merupakan kerentanan yang teruk.

  • Input tidak sah

    Dalam pengujian fuzz, fuzzer digunakan untuk menghasilkan input yang tidak sah yang digunakan untuk menguji rutin menangani kesalahan, dan ini penting untuk perisian yang tidak mengendalikan inputnya. Pembumian sederhana dapat dikenali sebagai cara untuk mengotomatisasi ujian negatif.

  • Kesalahan betul

    Fuzzing juga dapat digunakan untuk mengesan beberapa jenis bug "betul". Seperti pangkalan data yang rosak, hasil carian yang buruk, dll.

    Alat Ujian Fuzz

    Alat yang digunakan dalam keselamatan web dapat digunakan secara meluas dalam pengujian fuzz seperti Burp Suite, Peach Fuzzer, dll.

  • Peach Fuzzer

    Peach Fuzzer memberikan liputan keselamatan yang lebih mantap daripada pengimbas. Alat ujian lain hanya boleh mencari utas yang diketahui sedangkan Peach Fuzzer membolehkan pengguna mencari utas yang diketahui dan tidak diketahui.

  • Proksi Lonjakan

    Ini adalah alat kelas profesional yang mencari kerentanan peringkat aplikasi dalam aplikasi web. SPIKE Proxy merangkumi asas-asasnya, seperti SQL Injection dan cross-site-scripting, tetapi infrastruktur Python terbuka sepenuhnya. SPIKE Proxy tersedia untuk Linux dan Windows.

  • Webscarab

    Webscarab ditulis dalam Java sehingga mudah dibawa ke banyak platform. Untuk menganalisis aplikasi kerangka Webscarab digunakan yang berkomunikasi menggunakan protokol HTTP dan HTTPS.

    Cth: Webscarab berfungsi sebagai proksi yang memintas, ia membolehkan pengendali menyemak dan mengubah permintaan yang dibuat oleh penyemak imbas sebelum diterima oleh pelayan. Dan biarkan untuk menyemak dan mengemas kini tindak balas yang dihasilkan oleh pelayan sebelum diterima oleh penyemak imbas. Dengan cara ini, jika scarab web menemui celah, ia akan membuat senarai masalah yang dilaporkan.

  • OWASP WSFuzzer

    WSFuzzer adalah program GPL yang ditulis dalam Python. Program GPL pada masa ini menyasarkan Perkhidmatan Web. Dalam versi terkini perkhidmatan SOAP berasaskan HTTP OWASPWSFuzzer adalah sasaran utama.

Kelebihan Ujian Fuzz

  • Ujian Fuzz meningkatkan Ujian Keselamatan perisian.
  • Pepijat yang terdapat dalam pengaburan kadang-kadang parah dan sering digunakan oleh penggodam termasuk kerosakan, kebocoran memori, pengecualian yang tidak dapat ditangani, dll.
  • Sekiranya ada bug yang gagal diperhatikan oleh penguji kerana keterbatasan masa dan sumber daya, bug tersebut juga dijumpai dalam ujian Fuzz.

Kelemahan Ujian Fuzz

  • Ujian Fuzz sahaja tidak dapat memberikan gambaran lengkap mengenai ancaman atau pepijat keselamatan keseluruhan.
  • Ujian Fuzz kurang berkesan untuk menangani ancaman keselamatan yang tidak menyebabkan kerosakan program, seperti beberapa virus, worm, Trojan, dll.
  • Ujian kabur hanya dapat mengesan kesalahan atau ancaman sederhana.
  • Untuk melakukan dengan berkesan, ia memerlukan masa yang besar.
  • Menetapkan syarat nilai sempadan dengan input rawak sangat bermasalah tetapi sekarang menggunakan algoritma deterministik berdasarkan input pengguna kebanyakan penguji menyelesaikan masalah ini.

Ringkasan:

Dalam Kejuruteraan Perisian, pengujian Fuzz menunjukkan adanya bug dalam aplikasi. Pembakaran tidak dapat menjamin pengesanan pepijat sepenuhnya dalam aplikasi. Tetapi dengan menggunakan teknik Fuzz, aplikasi ini memastikan bahawa aplikasi ini kuat dan aman, kerana teknik ini membantu untuk mendedahkan kebanyakan kelemahan umum.

Artikel ini disumbangkan oleh Priyanka Kothe