Breaking

Saturday, December 12, 2020

RESTler - Alat Fuzzing REST API Stateful Pertama Untuk Secara Otomatis Menguji Layanan Cloud Melalui REST API Mereka Dan Menemukan Bug Keamanan dan Keandalan Dalam Layanan Ini

 Kang IT

RESTler - Alat Fuzzing REST API Stateful Pertama Untuk Secara Otomatis Menguji Layanan Cloud Melalui REST API Mereka Dan Menemukan Bug Keamanan dan Keandalan Dalam Layanan Ini



RESTler adalah alat fuzzing REST API stateful pertama untuk secara otomatis menguji layanan cloud melalui REST API mereka dan menemukan bug keamanan dan keandalan dalam layanan ini. Untuk layanan cloud tertentu dengan spesifikasi OpenAPI / Swagger, RESTler menganalisis seluruh spesifikasinya, lalu membuat dan menjalankan pengujian yang menjalankan layanan melalui REST API-nya.

RESTler dengan cerdas menyimpulkan ketergantungan produsen-konsumen di antara jenis permintaan dari spesifikasi Swagger. Selama pengujian, ia memeriksa kelas bug tertentu dan secara dinamis mempelajari bagaimana layanan berperilaku dari respons layanan sebelumnya. Kecerdasan ini memungkinkan RESTler untuk menjelajahi status layanan lebih dalam yang hanya dapat dijangkau melalui urutan permintaan tertentu dan untuk menemukan lebih banyak bug.

RESTler dijelaskan dalam makalah penelitian peer-review ini:

  1. RESTler: Stateful REST API Fuzzing (ICSE'2019)
  2. Memeriksa Properti Keamanan REST API Layanan Cloud (ICST'2020)
  3. Differential Regresi Pengujian untuk SISA API (ISSTA'2020)
  4. Cerdas SISA API data Fuzzing (FSE'2020)

Jika Anda menggunakan RESTler dalam penelitian Anda, harap kutip makalah (default) ICSE'2019 ( BibTeX ).

RESTler dibuat di Microsoft Research dan masih dalam pengembangan aktif.




Menyiapkan RESTler

RESTler dirancang untuk berjalan pada mesin 64-bit dengan Windows atau Linux.


Bangun instruksi

Prasyarat: Instal Python 3.8.2 dan .NET core SDK 3.1 , untuk OS Anda yang sesuai.

Buat direktori tempat Anda ingin menempatkan binari RESTler:

mkdir restler_bin

Beralih ke direktori root repo dan jalankan skrip Python berikut:

python ./build-restler.py --dest_dir <full path to restler_bin above>

Catatan: jika Anda mendapatkan kesalahan nuget NU1403 saat membangun, solusi cepatnya adalah menghapus cache Anda dengan perintah ini

dotnet nuget locals all --clear


Instruksi biner-drop

Penurunan biner RESTler akan segera hadir.

Prasyarat: Instal Python 3.8.2 dan .NET core SDK 3.1 atau lebih tinggi, untuk OS Anda yang sesuai.


Menggunakan RESTler

RESTler berjalan dalam 4 mode utama (secara berurutan):

  1. Kompilasi: dari spesifikasi Swagger JSON atau YAML (dan contoh opsional), buat tata bahasa RESTler. Lihat Kompilasi .
  2. Uji: jalankan dengan cepat semua titik akhir + metode dalam tata bahasa RESTler yang dikompilasi untuk men- debug penyiapan pengujian dan menghitung bagian mana dari spesifikasi Swagger yang tercakup. Mode ini juga disebut smoketest . Lihat Pengujian . Untuk menggunakan pengaturan mesin uji kustom, lihat Pengaturan Mesin Uji .
  3. Fuzz-lean: jalankan sekali setiap metode + titik akhir dalam tata bahasa RESTler yang dikompilasi dengan sekumpulan pemeriksa default untuk melihat apakah bug dapat ditemukan dengan cepat. Lihat Fuzzing .
  4. Fuzz: bug hunting - jelajahi tata bahasa fuzzing RESTler dalam mode pencarian pertama yang luas (mode pencarian lebih dalam) untuk menemukan lebih banyak bug. Peringatan: Jenis fuzzing ini lebih agresif dan dapat menyebabkan gangguan pada layanan yang diuji jika layanan diimplementasikan dengan buruk (mis., Fuzzing dapat menyebabkan kebocoran sumber daya, penurunan kinerja, kerusakan backend, dll.). Lihat Fuzzing .


Mulai cepat

Untuk pengenalan singkat dengan contoh sederhana, lihat Tutorial ini .

Untuk mencoba RESTler dengan cepat di API Anda, lihat Mulai Cepat .


Bug ditemukan oleh RESTler

Saat ini ada dua kategori bug yang ditemukan oleh RESTler.

  • Kode kesalahan : saat ini, setiap kali tanggapan dengan kode status 500("Kesalahan Server Internal") diterima, bug dilaporkan.
  • Pemeriksa : setiap pemeriksa mencoba memicu bug tertentu dengan menjalankan permintaan tambahan yang ditargetkan atau urutan permintaan pada titik tertentu selama fuzzing, ditentukan oleh konteks. Beberapa pemeriksa mencoba menemukan 500 tambahan, sementara pemeriksa lainnya mencoba menemukan bug logika tertentu seperti kebocoran sumber daya atau pelanggaran hierarki. Untuk penjelasan lengkap tentang dam, lihat Checker .

Ketika bug ditemukan, RESTler melaporkan bug diprioritaskan dalam ember bug, dan menyediakan log ulangan yang dapat digunakan untuk mereproduksi bug (lihat Replay ).


Topik Lanjutan

Untuk tips menggunakan RESTler secara efektif, silakan lihat Praktik Terbaik dan Meningkatkan Cakupan Kesombongan .

Lihat juga Pertanyaan yang Sering Diajukan ini .

Jika Anda tertarik untuk menggunakan RESTler dalam skala besar sebagai bagian dari pipeline CI / CD Anda, lihat layanan yang dihosting sendiri oleh REST API Fuzz Testing .


Pertanyaan

Jika Anda memiliki permintaan / saran / pertanyaan, silakan ajukan masalah. Lihat Contributing.md untuk petunjuk.


Berkontribusi

Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.microsoft.com .

Saat Anda mengirimkan permintaan tarik, bot-CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repositori menggunakan CLA kami.

Proyek ini telah mengadopsi Kode Perilaku Sumber Terbuka Microsoft . Untuk informasi lebih lanjut, lihat FAQ Pedoman Perilaku atau hubungi opencode@microsoft.com jika ada pertanyaan atau komentar tambahan.

Untuk informasi lebih lanjut, lihat Contributing.md .


Merek Dagang

Proyek ini mungkin berisi merek dagang atau logo untuk proyek, produk, atau layanan. Penggunaan resmi merek dagang atau logo Microsoft tunduk pada dan harus mengikuti Trademark & ​​Brand Guidelines Microsoft. Penggunaan merek dagang atau logo Microsoft dalam versi modifikasi dari proyek ini tidak boleh menyebabkan kebingungan atau menyiratkan sponsor Microsoft. Setiap penggunaan merek dagang atau logo pihak ketiga tunduk pada kebijakan pihak ketiga tersebut.


Pengumpulan data

Perangkat lunak dapat mengumpulkan informasi tentang Anda dan penggunaan Anda atas perangkat lunak tersebut dan mengirimkannya ke Microsoft. Microsoft dapat menggunakan informasi ini untuk menyediakan layanan dan meningkatkan produk dan layanan kami. Anda dapat mematikan telemetri seperti yang dijelaskan dalam repositori. Ada juga beberapa fitur dalam perangkat lunak yang memungkinkan Anda dan Microsoft mengumpulkan data dari pengguna aplikasi Anda. Jika Anda menggunakan fitur ini, Anda harus mematuhi hukum yang berlaku, termasuk memberikan pemberitahuan yang sesuai kepada pengguna aplikasi Anda bersama dengan salinan pernyataan privasi Microsoft. Pernyataan privasi kami ada di https://go.microsoft.com/fwlink/?LinkID=824704Anda dapat mempelajari lebih lanjut tentang pengumpulan dan penggunaan data dalam dokumentasi bantuan dan pernyataan privasi kami. Penggunaan Anda atas perangkat lunak beroperasi sebagai persetujuan Anda untuk praktik ini.

Untuk informasi lebih lanjut, lihat Telemetri.md .


Melaporkan Masalah Keamanan

Masalah keamanan dan bug harus dilaporkan secara pribadi, melalui email, ke Pusat Respons Keamanan Microsoft (MSRC) di secure@microsoft.com . Anda akan menerima tanggapan dalam waktu 24 jam. Jika karena alasan tertentu Anda tidak melakukannya, harap tindak lanjuti melalui email untuk memastikan kami menerima pesan asli Anda. Informasi lebih lanjut, termasuk kunci PGP MSRC , dapat ditemukan di Security TechCenter .

Untuk detail tambahan, lihat Security.md .


Privasi & Cookie

https://go.microsoft.com/fwlink/?LinkId=521839




Regards

Kang IT

No comments:

Post a Comment