Snapchange, alat fuzzing sumber terbuka AWS

Amazon Web Services, Merilis Alat Fuzzing yang Didukung KVM Open Source Baru

Berita itu dirilis bahwae Amazon telah merilis alat fuzzing baru yang disebut Snapchange, yang memungkinkan Anda untuk memeriksa file yang dapat dieksekusi tanpa memodifikasinya dan tanpa kehadiran kode sumber aplikasi. Ini adalah langkah yang dirancang sebagian untuk mengatasi kekhawatiran tentang keamanan rantai pasokan perangkat lunak.

Di pos Amazon disebutkan bahwa, Snapchange dimulai sebagai eksperimen dari tim riset keamanan open source AWS Find and Fix (F2) untuk mengeksplorasi potensi penggunaan KVM untuk mengaktifkan snapshot fuzzing.

Hari ini kami dengan gembira mengumumkan Snapchange, sebuah proyek sumber terbuka baru untuk membuat fuzzing berbasis snapshot jauh lebih mudah. Snapchange memungkinkan fuzzing biner target dengan modifikasi minimal, memberikan wawasan berguna yang membantu fuzzing.

Snapchange adalah kerangka kerja Rust untuk membuat fuzzers yang memainkan snapshot dari memori fisik untuk meningkatkan efisiensi dan mengurangi kerumitan dalam mengaburkan banyak jenis target. Snapchange menggunakan fitur manajer mesin virtual bawaan kernel Linux yang dikenal sebagai Kernel Virtual Machine, atau KVM. 

Tentang Snapchange

Disebutkan bahwa, Snapchange memungkinkan memuat dump memori fisik dengan kode turunan yang dapat dieksekusi dan mengatur, menggunakan hypervisor KVM, eksekusi kode secara siklis hadir di tempat pembuangan, iterasi atas berbagai kombinasi input data, melacak kegagalan atau anomali yang muncul dan memulai ulang pemeriksaan setelah iterasi berikutnya, setiap kali segmen memori dan register CPU dikembalikan ke keadaan semula.

Iterasi me-reset dan memulai kembali setelah akhir yang tidak normal, waktu tunggu atau terjadinya peristiwa tertentu. Data input diganti langsung ke memori dan untuk menghemat sumber daya selama inisialisasi ke keadaan awal memori, setelah melakukan iterasi berikutnya, ditentukan data apa yang ada di memori dan telah berubah.

Dump memori awal dibuat dengan menyimpan snapshot dari mesin virtual di mana lingkungan dengan aplikasi yang diuji dijalankan, berjalan di bawah VirtualBox atau QEMU Logika substitusi data input ditentukan dengan membuat skrip khusus, dan posisi awal eksekusi siklik diatur dengan menyetel dari breakpoint di debugger.

Misalnya, jika perlu memeriksa pemrosesan multi-status permintaan jaringan, peneliti memulai aplikasi pada sistem tamu di VirtualBox atau QEMU, di debugger menemukan awal pelaksanaan prosedur pemrosesan permintaan (misalnya , setelah memanggil fungsi recv), menempatkan breakpoint di atasnya dan menentukan area memori tempat paket jaringan yang diterima dimuat. Setelah itu, snapshot sistem tamu dibuat dan diunggah ke Snapchange.

Untuk verifikasi, skrip ditulis yang menulis data selama pencacahan langsung ke buffer. dari paket jaringan, yang memungkinkan Anda untuk mensimulasikan pemrosesan paket jaringan nyata. Snapchange mengambil tempat yang ditinggalkannya, setiap kali mengubah konten data dalam buffer dan mengatur ulang status memori ke keadaan semula.

Berbagai strategi didukung untuk menghasilkan data masukan. Beberapa lingkungan yang terikat pada inti CPU yang berbeda dapat dihitung dengan eksekusi paralel. Selain mendeteksi kegagalan selama eksekusi kode, ini juga mendukung pengumpulan metrik kinerja, akumulasi statistik cakupan untuk menilai cakupan kode yang dapat dieksekusi, dan pelacakan langkah demi langkah dari kode yang dapat dieksekusi.

untuk tertarik dengan proyek tersebut, Anda harus tahu bahwa kode proyek ditulis dalam Rust dan didistribusikan di bawah lisensi Apache 2.0 melalui GitHub.

Snapchange berfungsi di dalam Linux, tetapi membutuhkan akses langsung ke primitif KVM yang mendasarinya. Oleh karena itu, ini mendukung jenis instans bare metal EC2, yang berjalan tanpa hypervisor, tetapi bukan instans virtualisasi EC2.

Terakhir, jika Anda tertarik untuk mempelajarinya lebih lanjut, Anda dapat melihat pengumuman aslinya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.