Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
restler-fuzzer — RESTler è il primo strumento di fuzzing stateful per API REST per testare automaticamente i servizi cloud attraverso le loro API REST e trovare bug di sicurezza e affidabilità in questi servizi. | Kitploit
Strumenti/GitHubGitHub/microsoft/restler-fuzzer
Scanner di VulnerabilitàTest di Sicurezza delle APISicurezza WebFuzzingSicurezza Cloud
GitHubmicrosoft/restler-fuzzer

restler-fuzzer

RESTler è il primo strumento di fuzzing stateful per API REST per testare automaticamente i servizi cloud attraverso le loro API REST e trovare bug di sicurezza e affidabilità in questi servizi.

Vedi Repository
2.9k3316 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

RESTler

Cos'è RESTler?

RESTler è il primo strumento di fuzzing per API REST stateful per testare automaticamente i servizi cloud attraverso le loro API REST e trovare bug di sicurezza e affidabilità in questi servizi. Per un dato servizio cloud con una specifica OpenAPI (precedentemente Swagger), RESTler analizza l'intera specifica, e poi genera ed esegue test che esercitano il servizio attraverso la sua API REST.

RESTler deduce intelligentemente le dipendenze produttore-consumatore tra i tipi di richiesta dalla definizione OpenAPI. Durante il test, controlla specifiche classi di bug e impara dinamicamente come si comporta il servizio dalle risposte precedenti del servizio. Questa intelligenza permette a RESTler di esplorare stati del servizio più profondi raggiungibili solo attraverso sequenze di richieste specifiche e di trovare più bug.

RESTler è descritto in questi articoli di ricerca sottoposti a revisione paritaria:

  1. RESTler: Stateful REST API Fuzzing (ICSE'2019)
  2. Checking Security Properties of Cloud Service REST APIs (ICST'2020)
  3. Differential Regression Testing for REST APIs​ (ISSTA'2020)
  4. Intelligent REST API Data Fuzzing​​ (FSE'2020)

Se usi RESTler nella tua ricerca, cita l'articolo (predefinito) ICSE'2019 (BibTeX).

RESTler include molteplici strategie di generazione di test. Per ottenere una visione comparativa completa riguardo a (i) efficienza (cioè quanto velocemente RESTler può trovare crash) e (ii) efficacia (cioè quanti crash RESTler può trovare in un dato intervallo di tempo), raccomandiamo di confrontare tutte le fuzzing_mode(s) documentate, poiché ciascuna fornisce un diverso compromesso tra ampiezza e profondità dell'esplorazione dello spazio degli stati. Raccomandiamo anche di eseguire la modalità test prima di qualsiasi fuzzing, come descritto di seguito, per scoprire e risolvere problemi di configurazione (ad esempio aggiungendo valori di parametri prerequisiti necessari al dizionario) prima del fuzzing.

RESTler è stato creato presso Microsoft Research ed è ancora in fase di sviluppo attivo.

Per una panoramica e una demo su come iniziare, vedi Webinar - Fuzzing per migliorare la sicurezza e l'affidabilità dei servizi cloud.

Architettura di RESTler

Stato della build

Build Status

Impostazione di RESTler

RESTler è stato progettato per funzionare su macchine a 64 bit con Windows o Linux. Il supporto sperimentale per macOS è anche abilitato.

Istruzioni per la build

Docker

Nella radice di questo repository, esegui

root@kitploit:~
docker build -t restler .

Il contenitore docker risultante avrà RESTler disponibile nella directory /RESTler/restler con il binario principale Restler.

Puoi quindi utilizzare questa immagine docker come base per aggiungere l'applicazione sotto test per eseguire il fuzzing all'interno di contenitori docker isolati.

Locale

Prerequisiti: Installa Python 3.12.8 e .NET 8.0, per il tuo sistema operativo appropriato.

Crea una directory dove vuoi posizionare i binari di RESTler:

mkdir restler_bin

Passa alla directory radice del repository ed esegui il seguente script Python:

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

Nota: se ottieni l'errore nuget NU1403 durante la build, una soluzione rapida è svuotare la cache con questo comando

dotnet nuget locals all --clear

Utilizzo di RESTler

RESTler funziona in 4 modalità principali (in ordine):

  1. Compile: da una definizione OpenAPI JSON o YAML (e opzionalmente esempi), genera una grammatica RESTler. Vedi Compilazione.
  2. Test: esegue rapidamente tutti gli endpoint+metodi in una grammatica RESTler compilata per il debug della configurazione del test e calcola quali parti della definizione OpenAPI sono coperte. Questa modalità è anche chiamata smoketest. Vedi Test. Per utilizzare impostazioni personalizzate del motore di test, vedi Impostazioni del motore di test.
  3. Fuzz-lean: esegue una volta ogni endpoint+metodo in una grammatica RESTler compilata con un insieme predefinito di checker per vedere se i bug possono essere trovati rapidamente. Vedi Fuzzing.
  4. Fuzz: caccia ai bug - esplora una grammatica di fuzzing RESTler in modalità smart breadth-first-search (modalità di ricerca più profonda) per trovare più bug. Attenzione: Questo tipo di fuzzing è più aggressivo e potrebbe causare interruzioni nel servizio sotto test se il servizio è mal implementato (ad esempio, il fuzzing potrebbe creare perdite di risorse, degrado delle prestazioni, corruzioni del backend, ecc.). Vedi Fuzzing.

Avvio rapido

Per una rapida introduzione con esempi semplici, vedi questo Tutorial.

Per provare rapidamente RESTler sulla tua API, vedi Avvio rapido.

Bug trovati da RESTler

Ci sono attualmente due categorie di bug trovati da RESTler.

  • Codice di errore: attualmente, ogni volta che viene ricevuta una risposta con codice di stato 500 ("Internal Server Error"), viene segnalato un bug.
  • Checker: ogni checker cerca di attivare bug specifici eseguendo richieste aggiuntive mirate o sequenze di richieste in determinati punti durante il fuzzing, determinati dal contesto. Alcuni checker cercano di trovare ulteriori 500, mentre altri cercano di trovare bug logici specifici come perdite di risorse o violazioni di gerarchia. Per una descrizione completa dei checker, vedi Checkers.

Quando viene trovato un bug, RESTler segnala i bug triati in bucket di bug e fornisce un log di replay che può essere utilizzato per riprodurre il bug (vedi Replay).

Argomenti avanzati

Per consigli su come utilizzare RESTler efficacemente, vedi Best Practices e Migliorare la copertura API.

Vedi anche queste Domande frequenti.

Se sei interessato a utilizzare RESTler su larga scala come parte della tua pipeline CI/CD, dai un'occhiata al servizio self-hosted di fuzz testing per API REST.

Domande

Se hai una richiesta/suggerimento/domanda, per favore apri un issue. Vedi Contributing.md per le istruzioni.

Contributi

Questo progetto accoglie contributi e suggerimenti. La maggior parte dei contributi richiede di accettare un Contributor License Agreement (CLA) che dichiara che hai il diritto, e effettivamente lo fai, di concederci i diritti di utilizzare il tuo contributo. Per dettagli, visita https://cla.microsoft.com.

Quando invii una pull request, un CLA-bot determinerà automaticamente se devi fornire un CLA e decorerà la PR appropriatamente (ad esempio, etichetta, commento). Segui semplicemente le istruzioni fornite dal bot. Dovrai farlo solo una volta per tutti i repository che utilizzano il nostro CLA.

Questo progetto ha adottato il Microsoft Open Source Code of Conduct. Per maggiori informazioni vedi le FAQ sul Code of Conduct o contatta [email protected] per qualsiasi domanda o commento aggiuntivo.

Per maggiori informazioni, vedi Contributing.md.

Marchi

Questo progetto può contenere marchi o loghi per progetti, prodotti o servizi. L'uso autorizzato dei marchi o loghi Microsoft è soggetto e deve seguire le linee guida sui marchi e sul marchio di Microsoft. L'uso di marchi o loghi Microsoft in versioni modificate di questo progetto non deve causare confusione o implicare il patrocinio di Microsoft. Qualsiasi uso di marchi o loghi di terze parti è soggetto alle politiche di tali terze parti.

Raccolta dati

Il software può raccogliere informazioni su di te e sul tuo utilizzo del software e inviarle a Microsoft. Microsoft può utilizzare queste informazioni per fornire servizi e migliorare i nostri prodotti e servizi. Puoi disattivare la telemetria come descritto nel repository. Ci sono anche alcune funzionalità nel software che possono consentire a te e a Microsoft di raccogliere dati dagli utenti delle tue applicazioni. Se utilizzi queste funzionalità, devi rispettare la legge applicabile, inclusa la fornitura di notifiche appropriate agli utenti delle tue applicazioni insieme a una copia della dichiarazione sulla privacy di Microsoft. La nostra dichiarazione sulla privacy si trova all'indirizzo https://go.microsoft.com/fwlink/?LinkID=824704. Puoi saperne di più sulla raccolta e l'uso dei dati nella documentazione di aiuto e nella nostra dichiarazione sulla privacy. L'utilizzo del software costituisce il tuo consenso a queste pratiche.

Per maggiori informazioni, vedi Telemetry.md.

Segnalazione di problemi di sicurezza

I problemi di sicurezza e i bug devono essere segnalati privatamente, via email, al Microsoft Security Response Center (MSRC) all'indirizzo [email protected]. Dovresti ricevere una risposta entro 24 ore. Se per qualche motivo non la ricevi, per favore contatta via email per assicurarti di aver ricevuto il tuo messaggio originale. Ulteriori informazioni, inclusa la chiave MSRC PGP, si trovano nel Security TechCenter.

Per ulteriori dettagli, vedi Security.md.

Privacy e cookie

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

Scarica lo strumento