Pentest API REST, GraphQL e gRPC
Il pentest API è il penetration test di interfacce REST, GraphQL e gRPC che sfrutta vulnerabilità di autorizzazione (BOLA), autenticazione, mass assignment, esposizione di dati e assenza di rate limiting, seguendo l'OWASP API Security Top 10, per dimostrare con evidenze cosa otterrebbe un attaccante dai vostri endpoint.
Cos'è un pentest API e in cosa differisce dal pentest web
Il pentest API è un test di sicurezza delle API condotto dal punto di vista di un attaccante che parla direttamente con il backend, senza passare dall'interfaccia grafica. Mentre il pentest web tradizionale segue i flussi esposti dal browser, il test API esamina ogni operazione documentata — e non documentata — come un contratto: chi può chiamarla, con quali parametri, su quali oggetti e con quale frequenza.
Questa differenza conta perché le vulnerabilità più comuni nelle API non sono injection classiche, ma errori nella logica di autorizzazione: un endpoint che restituisce l'ordine di un altro cliente cambiando un identificativo, un campo interno accettato nel corpo di una PUT, una mutation GraphQL senza verifica del ruolo. Gli scanner raramente le trovano, perché richiedono di capire il modello di business dietro ogni risorsa. Per questo Berghem combina automazione per inventario e copertura con sfruttamento manuale per autorizzazione, logica e concatenazione di vulnerabilità.
Il pentest API può essere acquistato singolarmente o come parte dell'Ethical Hacking Test (EHT), quando anche l'applicazione web o mobile che consuma l'API rientra nel perimetro.
Cosa è incluso
Cosa testiamo: le dieci categorie dell' OWASP API Security Top 10
Ogni categoria dell'OWASP API Security Top 10 diventa un insieme di casi di test eseguiti su tutti gli endpoint nel perimetro, con tutti i profili di accesso disponibili.
Broken Object Level Authorization
Scambiamo identificativi di oggetti (ordini, conti, documenti, utenti) tra sessioni di clienti diversi e verifichiamo se il backend convalida la proprietà della risorsa. È la vulnerabilità più frequente nelle API e quella che espone più dati personali su larga scala.
Broken Authentication
Valutiamo emissione e validazione dei token JWT (algoritmo, firma, scadenza, claim), flussi OAuth 2.0 e OIDC, API key statiche, refresh token, recupero password e protezione da credential stuffing e brute force sugli endpoint di login.
Autorizzazione a livello di proprietà e mass assignment
Testiamo se il client può leggere o scrivere campi che non dovrebbe: il prezzo di un ordine, il ruolo di un utente, lo stato di un'approvazione. Il mass assignment si verifica quando il backend mappa il corpo della richiesta direttamente sul modello senza allow-list dei campi.
Consumo di risorse e rate limiting
Misuriamo limiti di richieste per client, dimensione dei payload, paginazione, upload e operazioni costose. Senza rate limiting un attaccante enumera dati, forza OTP brevi e genera costi di infrastruttura o di servizi terzi pagati a chiamata.
Broken Function Level Authorization
Invochiamo operazioni amministrative e di altri profili (approvare, rimborsare, esportare, eliminare) con credenziali ordinarie, modificando metodo HTTP, percorso o parametri di versione per verificare che il controllo accessi sia applicato per funzione e non solo nell'interfaccia.
Accesso illimitato a flussi sensibili
Analizziamo i flussi di business abusabili se automatizzati — acquisto, registrazione, coupon, prenotazione, referral — e verifichiamo la presenza di controlli anti-bot e anti uso massivo, oltre alla protezione della sequenza attesa tra le fasi.
Server-Side Request Forgery
Dove l'API riceve URL (webhook, importazioni, generazione di anteprime), verifichiamo se il server può essere indotto ad accedere a reti interne, metadati cloud o servizi non esposti, un vettore ricorrente di escalation in ambienti cloud.
Security Misconfiguration
Copriamo CORS permissivi, messaggi di errore dettagliati, metodi HTTP non necessari, TLS debole, header mancanti, introspezione GraphQL abilitata in produzione, documentazione Swagger esposta e configurazioni predefinite di gateway e framework.
Improper Inventory Management
Mappiamo versioni legacy (/v1 ancora attiva), ambienti di staging raggiungibili, endpoint non documentati e integrazioni dimenticate. Shadow API e zombie API conservano spesso vulnerabilità già corrette nella versione corrente.
Consumo non sicuro di API
Verifichiamo come la vostra API tratta i dati provenienti da partner e provider: validazione, limiti ai redirect, fiducia in risposte non verificate. Un'integrazione compromessa non deve diventare un percorso diretto verso il vostro backend.
Come cambia il test tra REST, GraphQL e gRPC
Le categorie OWASP sono le stesse, ma il modo di sfruttarle dipende dal protocollo. Adattiamo strumenti, casi di test e criteri di copertura a ogni stile di API presente nel perimetro.
API REST
Partiamo dalla specifica OpenAPI/Swagger o dalle collection Postman per generare la matrice endpoint × metodo × profilo. Il focus è BOLA/IDOR, mass assignment su PUT/PATCH, manipolazione dei verbi, versioning, cache di risposte autenticate e validazione dei contenuti.
API GraphQL
Testiamo introspezione e schema esposto, autorizzazione per campo e per resolver, aliasing e batching per aggirare il rate limiting, query annidate che esauriscono il server, mutation senza verifica del ruolo e fuga di dati tramite relazioni tra tipi.
API gRPC
Valutiamo la reflection del server, le definizioni .proto, l'autenticazione tramite metadati, l'uso di TLS e mTLS, l'autorizzazione su stream bidirezionali e la deserializzazione dei messaggi. Gli strumenti web comuni non coprono gRPC, quindi usiamo tooling dedicato e casi manuali.
Webhook, SOAP e API di partner
Copriamo firma e replay dei webhook, validazione dell'origine, SOAP con WS-Security e XML, e API esposte a partner e fintech — inclusi i requisiti tecnici dell'Open Finance Brasil quando applicabili al vostro perimetro.
Come conduciamo un pentest API
Un pentest API ben fatto è prevalentemente manuale e guidato dai profili di accesso. Preferiamo la modalità grey-box, con documentazione e credenziali per ogni ruolo, perché è così che si trovano in profondità le vulnerabilità di autorizzazione.
Perimetro e documentazione
Censiamo endpoint, versioni, ambienti, profili utente, tenant e integrazioni. Riceviamo OpenAPI, schemi GraphQL, file .proto o collection Postman e definiamo finestre di test, account di test e canale per le criticità.
Ricognizione e inventario
Confrontiamo ciò che è documentato con ciò che risponde davvero: rotte nascoste, versioni precedenti, parametri non elencati, ambienti di staging raggiungibili. Qui emergono le shadow API che nessuno ricorda.
Autenticazione e sessione
Analizziamo il ciclo di vita delle credenziali: emissione, scope e validazione dei token, rotazione dei refresh token, revoca, policy di password e OTP, e il comportamento dell'API con token scaduti, alterati o di un altro cliente.
Autorizzazione e logica di business
Eseguiamo la matrice completa di autorizzazione orizzontale (tra clienti) e verticale (tra ruoli) su ogni operazione, seguita da abuso dei flussi, mass assignment, race condition e concatenazione di vulnerabilità per dimostrare l'impatto reale.
Report e retest
Ogni finding include richiesta e risposta riproducibili, CVSS, impatto di business e raccomandazione specifica per il framework in uso. Dopo la correzione ritestiamo gli elementi ed emettiamo evidenza di chiusura per audit o cliente finale.
Cosa determina costi e tempi di un pentest API
Lo sforzo di un test di sicurezza API è dimensionato dalla superficie e dalla complessità del modello di autorizzazione, non dal numero di sistemi. Questi sono i fattori che più influenzano la proposta.
Numero di operazioni
Endpoint × metodi in REST, query e mutation in GraphQL, servizi e metodi in gRPC. Ogni operazione va testata con tutti i profili, quindi il numero di operazioni è il principale moltiplicatore di ore.
Profili, tenant e ruoli
Più ruoli (cliente, operatore, amministratore, partner) e più isolamento tra tenant richiede il business, più ampia è la matrice di autorizzazione da percorrere — e più alta la probabilità di trovare BOLA e BFLA rilevanti.
Protocolli e autenticazione
Mescolare REST, GraphQL e gRPC nello stesso perimetro, o usare flussi OAuth complessi con più identity provider, aumenta preparazione e tooling necessari. Anche mTLS e firma dei messaggi richiedono configurazione dedicata.
Documentazione e modalità
Il grey-box con specifica aggiornata e credenziali per profilo è più efficiente e profondo del black-box, che spende ore nella discovery. Anche l'inclusione del retest e l'integrazione con la pipeline DevSecOps incidono sul dimensionamento.
Quando un pentest API è richiesto o atteso
Le API concentrano i dati che la normativa protegge. In diversi settori, il penetration test delle API è passato da buona pratica a evidenza attesa da auditor, regolatori e clienti enterprise.
Nell'ecosistema dei pagamenti, il PCI DSS richiede penetration test periodici sull'ambiente dei dati di carta, e le API che elaborano o trasmettono quei dati rientrano in quel perimetro. La LGPD brasiliana, come il GDPR in Europa, richiede misure tecniche adeguate a proteggere i dati personali — e un pentest API è il modo più diretto per dimostrare che gli endpoint che espongono quei dati non consentono accessi impropri.
Per gli istituti finanziari brasiliani, le risoluzioni BACEN/CMN sulla sicurezza informatica, inclusa la 4.893, stabiliscono la policy di sicurezza e i controlli attesi, mentre l'Open Finance Brasil definisce requisiti tecnici specifici per le API condivise tra i partecipanti. Consultate la nostra pagina sulla sicurezza Open Finance per quell'ecosistema.
Le API sono anche il canale attraverso cui agenti di IA e applicazioni con LLM eseguono azioni. Quando un agente chiama la vostra API con credenziali delegate, le vulnerabilità di autorizzazione acquisiscono un nuovo vettore di abuso — trattiamo questo scenario nella sicurezza degli agenti di IA.
Servizi correlati
L'API è raramente l'unico asset. Questi servizi vengono di solito combinati con il pentest API per coprire l'applicazione end-to-end.
Ethical Hacking Test (EHT)
Pentest completo di applicazioni web e infrastruttura, con l'API nello stesso perimetro.
Pentest Mobile
Le app Android e iOS consumano API — testate client e backend insieme.
Pentest Cloud
Gateway, funzioni serverless e IAM che ospitano e proteggono le vostre API.
DevSecOps
Test API integrati nella pipeline per trovare vulnerabilità prima della produzione.
Sicurezza dei Pagamenti
API di acquiring, wallet digitali e pagamenti istantanei nell'ottica PCI DSS.
Pentest PCI DSS
Penetration test allineato al requisito di pentest del PCI DSS, con evidenze per il QSA.
Domande frequenti sul pentest API
Qual è la differenza tra pentest API e pentest web?
Devo fornire documentazione e credenziali per il pentest API?
Il pentest API copre GraphQL e gRPC o solo REST?
Quanto dura un pentest API?
Il pentest API vale come evidenza per PCI DSS, BACEN o LGPD?
Volete sapere cosa consegna la vostra API a un attaccante?
In una conversazione di 30 minuti mappiamo endpoint, profili e protocolli del vostro perimetro e proponiamo il formato di pentest API più efficiente per il vostro caso.
Contattaci