← Ultimi articoli
💻 computer science

GraphQLer: Enhancing GraphQL Security with Context-Aware API Testing

GraphQLer è un framework di test di sicurezza automatizzato open-source che potenzia la sicurezza delle API GraphQL costruendo grafi di dipendenza tipizzati da schemi live per sintetizzare catene di vulnerabilità multi-step, superando così strumenti esistenti come ZAP ed EvoMaster nel rilevare difetti complessi e dipendenti dallo stato, quali IDOR, UAF e vulnerabilità di injection.

Autori originali: Omar Tsai, Jianing Li, Tsz Tung Cheung, Lejing Huang, Hao Zhu, Jianrui Xiao, Iman Sharafaldin, Mohammad A. Tayebi

Pubblicato 2026-08-05
📖 4 min di lettura☕ Lettura da pausa caffè

Autori originali: Omar Tsai, Jianing Li, Tsz Tung Cheung, Lejing Huang, Hao Zhu, Jianrui Xiao, Iman Sharafaldin, Mohammad A. Tayebi

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immaginate internet come una città gigante e frenetica dove diversi programmi informatici (le app) si scambiano costantemente informazioni. Per anni, queste conversazioni hanno seguito una mappa rigida e prevedibile: se volevi una foto, chiedevi la cartella "foto"; se volevi un messaggio, chiedevi la cartella "messaggio". Era come ordinare da un menu dove ogni piatto ha un nome e una posizione fissi. Ma recentemente, un nuovo modo di comunicare chiamato GraphQL è diventato popolare. Invece di un menu fisso, GraphQL è come un distributore automatico magico e mutaforma. Puoi chiedere esattamente ciò che vuoi, e lui cercherà di costruirtelo sul momento. Il problema è che, poiché questa macchina è così flessibile, a volte dimentica di controllare chi ha davanti a sé. Un distributore automatico normale potrebbe dare una soda solo a chi ha una moneta, ma questo modello magico potrebbe accidentalmente consegnare un diario privato o un conto bancario se lo chiedi nel modo giusto. È qui che entrano in gioco i ricercatori della sicurezza, cercando di capire come ingannare la macchina per rivelare i suoi segreti senza effettivamente abbattere la città.

Il documento che state per leggere presenta un nuovo detective digitale chiamato GraphQLer. Pensate alla maggior parte degli scanner di sicurezza come a turisti goffi che si avvicinano al distributore automatico, premono un pulsante a caso e vedono cosa succede. Se premono "Soda" e ottengono una soda, vanno avanti. Se premono "Acqua" e ottengono un errore, si arrendono. Non si rendono mai conto che per ottenere la "Scorta Segreta", prima devi premere "Compra Soda", poi "Ottieni Ricevuta" e poi premere "Scorta Segreta". I vecchi strumenti sono troppo stupidi per collegare i puntini; testano ogni pulsante isolatamente e perdono le sequenze complesse necessarie per rompere il sistema.

GraphQLer è diverso. È come un detective che studia prima le planimetrie della macchina (lo "schema") per capire come sono collegati i pulsanti. Costruisce una mappa mentale che mostra come il "Pulsante A" crei un nuovo articolo, il "Pulsante B" lo elimini e il "Pulsante C" possa ancora essere in grado di vederlo anche dopo che è stato rimosso. Con questa mappa, GraphQLer non si limita a premere pulsanti a caso; crea specifiche catene di azioni. Simula uno scenario in cui un utente acquista un articolo, poi cerca di rubarlo, o lo elimina e poi prova a leggerlo di nuovo.

I ricercatori hanno testato questo nuovo detective su 21 diverse API reali e finte ma realistiche (i sistemi informatici oggetto del test). Hanno scoperto che GraphQLer è un enorme miglioramento rispetto ai vecchi strumenti. Mentre i migliori strumenti esistenti riuscivano a raggiungere solo circa il 29% dei pulsanti della macchina, GraphQLer è riuscito a raggiungerli all'85,52%. Ancora più importante, quando si trattava di trovare i problemi di sicurezza più intricati, i vecchi strumenti non hanno trovato zero dei problemi complessi a più fasi. GraphQLer, invece, ha trovato tutti i cinque confermati bug "IDOR" (dove puoi vedere le cose di qualcun altro semplicemente cambiando un numero) e ha persino colto un bug "Use-After-Free" (dove puoi vedere un file dopo che è stato eliminato).

In un test nel mondo reale su un sistema finanziario (che gli autori chiamano "FinServ" per mantenere l'anonimato), GraphQLer ha trovato otto potenziali falle di sicurezza senza bisogno di password o documenti segreti. Ha persino trovato modi per far crashare il sistema e rivelare il suo codice interno, il che è un grande errore per la sicurezza. Il documento mostra anche che GraphQLer può riprodurre vulnerabilità note in una popolare piattaforma open-source chiamata Saleor, dimostrando che funziona su sistemi che sono già noti per essere difettosi.

Gli autori dicono con molta cautela che, sebbene il loro strumento sia eccellente nel trovare questo tipo specifico di bug a reazione a catena, non è una bacchetta magica che risolve tutto. Ha ancora difficoltà con alcuni scenari molto specifici e complessi in cui la macchina richiede più informazioni contemporaneamente per funzionare. Ma per la stragrande maggioranza delle moderne app che utilizzano questa flessibile tecnologia GraphQL, GraphQLer dimostra che non si può più testare i pulsanti uno alla volta. Bisogna capire la storia che la macchina sta raccontando, e solo allora si possono trovare i buchi nella trama.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →