Redazione RHC : 4 Giugno 2021 09:00
Per la serie “programmi hacker”, oggi parleremo di RESTler.
Quante volte abbiamo parlato di quanto sia importante una corretta progettazione, gestione e controllo sulle API, visto anche che stiamo andando sempre più verso il cloud?
Sei un Esperto di Formazione?
Entra anche tu nel Partner program!
Accedi alla sezione riservata ai Creator sulla nostra Academy e scopri i vantaggi riservati ai membri del Partner program.
Per ulteriori informazioni, scrivici ad [email protected] oppure su Whatsapp al 379 163 8765
Supporta RHC attraverso:
I servizi cloud sono diventati l’infrastruttura critica che ha trasformato il modo in cui eroghiamo i servizi, lavorano gli sviluppatori e anche i tester di sicurezza. Il numero di servizi cloud critici per le aziende continuano a crescere ogni giorno, senza limiti e l’era del software in scatola chiusa sembra sia giunta al termine.
Gli sviluppatori sono ora responsabili della fornitura continua di nuove funzionalità sui servizi live, pur mantenendo la loro sicurezza, scalabilità e disponibilità.
Oggi, per la maggior parte dei servizi cloud e Web, ci si accede in modo programmatico tramite API REST (RE presentational S tate T ransfer). Tuttavia, gli strumenti per l’analisi statica e di fuzz-test che sono comuni nello sviluppo nativo non sono adeguati o sufficienti per gli sviluppatori di servizi web.
Ora più che mai, questi sviluppatori necessitano di approcci automatizzati per scoprire problemi che possono compromettere i servizi attraverso le loro API. Per soddisfare questa esigenza, i ricercatori Microsoft hanno sviluppato e reso open source dei nuovi strumenti per aiutare gli sviluppatori a trovare problemi di sicurezza e affidabilità nei loro servizi cloud testando automaticamente le loro API REST.
RESTler è un nuovissimo strumento di Microsoft per eseguire test fuzz in una determinata API REST. È stato rilasciato il 16 novembre del 2020, quindi perché non provarlo?
Lo strumento richiede che l’API venga specificata utilizzando OpenAPI, precedentemente noto come Swagger, in modo che possa analizzare la “grammatica” che descrive le strutture delle richieste. Successivamente, questa “grammatica” può essere utilizzata per formare richieste HTTP valide che possono essere inviate all’API e, monitorando le risposte, trovare bug e testare efficacemente il servizio. Dopo aver eseguito il comando fuzz test, RESTler genererà molti log, che dovranno poi essere analizzati
RESTler è descritto in questi documenti di ricerca peer-reviewed:
RESTler è stato creato presso Microsoft Research ed è opensource, anche se è ancora in fase di sviluppo, ma è disponibile su su macchine a 64 bit con Windows o Linux supportato da:
Assicurati di avere installato il modulo libssl-dev e la versione di .NET SDK versione 3.1.
Con le dipendenze installate, procediamo con l’installazione del software effettivo.
Per prima cosa copiamo il file di restler da Github : https://github.com/microsoft/restler-fuzzer
Procediamo quindi a creare una cartella Bins
mkdir bins/
Lanciamo il modulo Python
python ./build-restler.py –dest_dir ./bins
Se tutto funziona a dovere, la directory bins dovrò essere riempita con file binari per eseguire RESTler. Ora configuriamo QRI, per prima cosa scaricandolo dal sito https://github.com/qri-io/qri
Poiché QRI ha un’immagine Docker, eseguire la sua API è estremamente semplice:
docker build . -t qri
Ora esegui:
docker run qri
RESTler sembra essere uno strumento di fuzzing estremamente utile. Potremmo facilmente individuare i problemi su una base di codice ampia e importante riducendo di molto le tempistiche di analisi attraverso un test manuale.
D’altra parte, il fuzzing nasce proprio per questo, per consentirci di avere un “puntatore” per poi svolgere delle ulteriori analisi e visto che il software è opensource, perchè non provare?
Fonti
https://github.com/microsoft/restler-fuzzer
https://medium.com/swlh/fuzz-testing-with-microsofts-restler-6a3420fffe31