Vai al contenuto
Home / Servizi / Pentest API
Pilastro I · Offensive Security

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

•API REST, GraphQL, gRPC, SOAP e webhook
•OWASP API Security Top 10 (2023) come base
•BOLA/IDOR, BFLA e autorizzazione a livello di proprietà
•OAuth 2.0, OpenID Connect, JWT, API key e mTLS
•Rate limiting, abuso dei flussi e consumo di risorse
•Inventario endpoint, versioni legacy e shadow API
•Report con PoC riproducibile, CVSS e retest
Superficie di attacco

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.

API1 · BOLA

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.

API2 · Autenticazione

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.

API3 · Proprietà

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.

API4 · Risorse

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.

API5 · BFLA

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.

API6 · Flussi

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.

API7 · SSRF

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.

API8 · Configurazione

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.

API9 · Inventario

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.

API10 · Terze parti

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.

Per protocollo

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.

REST · OpenAPI

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.

GraphQL · Schema

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.

gRPC · Protobuf

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 · Eventi

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.

Metodologia

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.

Fase 01

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à.

Fase 02

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.

Fase 03

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.

Fase 04

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.

Fase 05

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.

Investimento

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.

Fattore 01

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.

Fattore 02

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.

Fattore 03

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.

Fattore 04

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.

Conformità

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.

Domande frequenti

Domande frequenti sul pentest API

Qual è la differenza tra pentest API e pentest web?
Il pentest web segue i flussi esposti dal browser; il pentest API parla direttamente con il backend, testando ogni operazione con tutti i profili di accesso, inclusi gli endpoint che l'interfaccia non usa. Il focus è autorizzazione, logica di business e rate limiting, non solo injection.
Devo fornire documentazione e credenziali per il pentest API?
Non è obbligatorio, ma è fortemente consigliato. Con OpenAPI, schema GraphQL o file .proto e credenziali per ogni profilo, il test copre la matrice di autorizzazione in profondità in meno ore. In black-box parte dello sforzo va nella discovery, riducendo la copertura della logica.
Il pentest API copre GraphQL e gRPC o solo REST?
Copre tutti e tre, oltre a SOAP e webhook. Ogni protocollo ha casi di test propri: introspezione, batching e query annidate in GraphQL; reflection, metadati e mTLS in gRPC; verbi, versioning e mass assignment in REST. Il tooling viene adattato al perimetro.
Quanto dura un pentest API?
Dipende dal numero di operazioni, profili di accesso e protocolli nel perimetro. Un'API con poche decine di endpoint e due profili è un progetto breve; piattaforme multi-tenant con centinaia di operazioni richiedono settimane. Definiamo i tempi nella proposta, dopo il censimento iniziale.
Il pentest API vale come evidenza per PCI DSS, BACEN o LGPD?
Sì. Il report include metodologia, perimetro, finding con CVSS, evidenze riproducibili ed esito del retest, nel formato atteso da auditor e QSA. Per perimetri regolamentati allineiamo i casi di test al requisito specifico prima di iniziare, evitando rilavorazioni in audit.

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