Best practice per la sicurezza delle API REST
Cos'è un'API REST?
Lo stile architettonico del software di un'API REST (Representational State Transfer) risale alla tesi di dottorato del 2000 discussa dall'informatico Roy Fielding. Nei decenni successivi, le API REST, a volte indicate come API RESTful, si sono evolute fino a diventare un modello architettonico molto popolare per le API delle applicazioni mobili e web, nonché per le applicazioni business-to-business e i sistemi interni delle organizzazioni.
Mentre altri approcci alle API (come i linguaggi SOAP, GraphQL e gRPC) vengono usati in molte implementazioni, le API REST sono le più comunemente usate, soprattutto per la loro facilità di implementazione. Poiché per la loro progettazione sono molto semplici da utilizzare nelle moderne strutture front-end, le API REST rappresentano la scelta ideale per le applicazioni mobili e web, nonché per molte implementazioni di API interne e business-to-business.
Le principali 5 best practice per la sicurezza delle API REST
Anche se è possibile implementare le API REST in modo estremamente sicuro e resilienti, esistono numerosi standard di base per la sicurezza delle API , che sono fondamentali in qualsiasi implementazione.
I primi cinque modi per garantire la sicurezza nella progettazione delle API REST sono:
Utilizzare sempre la crittografia TLS
Implementare un modello di autenticazione e autorizzazione solido e scalabile
Non includere informazioni sensibili negli URL
Definire in modo limitato le richieste e le risposte di API RESTful consentite
Implementare funzionalità di rilevamento continuo delle API
Utilizzare sempre la crittografia TLS
Come con altri tipi di traffico HTTP sensibile, l'utilizzo dello standard TLS per le API RESTful garantisce la crittografia di tutte le comunicazioni tra l'utente e l'endpoint delle API. Si tratta di un approccio importante per la sicurezza delle API REST come per le app web, poiché il traffico HTTP risultante include dati di autenticazione sensibili, come password, chiavi API o token.
Implementare un modello di autenticazione e autorizzazione solido e scalabile
È possibile utilizzare molte tecniche diverse per gestire l'accesso alle API REST. Le tecniche più comunemente usate sono le chiavi API e i token di sicurezza. Tuttavia, la gestione di chiavi e token può risultare alquanto complessa.
Infatti, spesso si creano involontariamente vulnerabilità nella sicurezza delle API REST. È possibile mitigare questo rischio ricorrendo ad un provider di servizi per la gestione delle identità conforme allo standard OAuth 2.0per l'autenticazione e l'emissione di token di accesso. È possibile usare anche un gateway API per standardizzare e proteggere il vostro approccio alla sicurezza delle API REST.
Non includere informazioni sensibili negli URL
Un comune difetto di progettazione delle API REST consiste nell'inclusione di informazioni sensibili (tra cui credenziali degli utenti, chiavi o token) negli URL. Anche se viene utilizzata la crittografia TLS, queste informazioni sono semplici da rilevare per i criminali. L'accesso agli URL (insieme al percorso dati della richiesta delle API) viene frequentemente effettuato da vari server e dispositivi collegati in rete, il che determina un'ulteriore fuga di dati se gli URL includono informazioni sensibili.
Definire in modo limitato le richieste e le risposte di API RESTful consentite
È importante stabilire se i criminali tenteranno di utilizzare le API in modo inaspettato o illecito. Pertanto, è fondamentale evitare di considerare le richieste di API RESTful implicitamente attendibili. Uno dei passaggi più importanti da seguire consiste nel verificare tutti gli attributi, come il formato, la lunghezza e il tipo di parametri o di oggetti.
Inoltre, è consigliabile gestire i tipi di risposte che le API REST possono fornire, ad esempio, limitando le risposte a tipi di contenuti esplicitamente consentiti, come GET, PUT e POST.
Implementare funzionalità di rilevamento continuo delle API
Anche le organizzazioni che adottano best practice per la sicurezza delle API REST possono farsi cogliere di sorpresa dalle API ombra implementate all'esterno dei normali processi o dalle API "zombie" dimenticate nelle infrastrutture tradizionali che non sono state ancora dismesse. Pertanto, è fondamentale implementare funzionalità di rilevamento continuo delle API a livello aziendale.
Il miglior modo per garantire la presenza di un inventario completo di tutte le API consiste nel raccogliere i dati provenienti da tutte le fonti di informazioni disponibili sull'attività delle API, tra cui:
Gateway API
Reti per la distribuzione dei contenuti
Registri dei fornitori di servizi cloud
Sistemi di gestione dei registri
Strumenti di coordinamento
L'analisi di questi dati come prova dell'attività delle API garantisce al team addetto alla sicurezza la consapevolezza di tutte le API utilizzate all'interno di un'azienda. In tal modo, eventuali API REST rilevate possono essere "smaltite" o trasferite in un inventario formalizzato per l'applicazione delle best practice più appropriate.
Le 4 principali best practice avanzate per la sicurezza delle API REST
L'implementazione di una serie di standard di sicurezza di base nella progettazione delle vostre API REST è un primo passo essenziale, che, tuttavia, da solo non riuscirà a tenere le vostre applicazioni completamente al sicuro. Molti criminali hanno sviluppato tecniche avanzate per aggirare le basilari misure di sicurezza delle API RESTful. Dopo tutto, non ogni attacco alla sicurezza delle API REST viene sferrato con l'intento di violare l'infrastruttura delle applicazioni web.
In molti casi, l'obiettivo degli attacchi è semplicemente utilizzare le funzionalità delle API in modo inaspettato per accedere ai dati sensibili e guadagnare un vantaggio competitivo. Queste attività possono originarsi da fonti attendibili, come i clienti o i partner a cui è stato consentito l'accesso alle API REST. I criminali possono anche rubare o sequestrare credenziali, chiavi e token per effettuare attività simili oltrepassando i vostri standard di sicurezza delle API REST basilari.
Per fornire un'ulteriore protezione da queste forme di abuso di API più sofisticate, potete adottare le seguenti 4 best practice avanzate per la sicurezza delle API REST:
Utilizzare il cloud per raccogliere grandi quantità di dati relativi alla sicurezza delle API REST
Eseguire l'analisi comportamentale dei dati relativi alle API REST
Fornire informazioni sull'utilizzo delle API REST ai team addetti allo sviluppo e alle operazioni
Condurre attività di ricerca delle minacce alle API REST in modo proattivo
Utilizzare il cloud per raccogliere grandi quantità di dati relativi alla sicurezza delle API REST
Poiché molte tecniche di sicurezza delle API di prima generazione vengono adottate on-premise, sono limitate all'analisi di una ristretta gamma di attività, dopo la quale i dati relativi alle API vengono ignorati. Questo processo non risulta efficace poiché l'abuso delle API, in molti casi, viene condotto molto lentamente nel giro di settimane, se non di mesi. L'invio dei dati relativi alle API nel cloud offre la scalabilità necessaria per archiviare le informazioni sulle API risalenti ad un mese prima o più, il che apre la strada a tecniche di analisi più sofisticate.
Eseguire l'analisi comportamentale dei dati relativi alle API REST
Quando la quantità di informazioni sulle attività delle API REST è diventata significativa, potete passare all'elaborazione nel cloud per eseguire l'analisi comportamentale. Innanzitutto, questa operazione migliora la vostra strategia di sicurezza delle API REST identificando le entità coinvolte per offrirvi un maggior contesto. Le entità possono includere gli utenti, ma anche processi aziendali importanti.
Quando disponete di questo contesto, potete stabilire i normali modelli di utilizzo di base per le vostre API, in base ai quali potete eseguire ulteriori analisi per rilevare eventuali anomalie. Questo tipo di rilevamento delle anomalie è il modo migliore per identificare eventuali abusi, specialmente se originati da utenti autenticati.
Fornire informazioni sull'utilizzo delle API REST ai team addetti allo sviluppo e alle operazioni
Uno dei modi migliori per proteggere la vostra organizzazione dalle vulnerabilità nella sicurezza delle API REST consiste nell'evitarle del tutto. La condivisione delle informazioni sull'utilizzo (e sull'abuso) delle API RESTful con i vostri sviluppatori e addetti alle operazioni aiuterà la vostra organizzazione ad adottare migliori procedure per la sicurezza delle API REST tempestivamente nelle fasi iniziali dei processi di sviluppo e implementazione.
Condurre attività di ricerca delle minacce alle API REST in modo proattivo
È importante non attendere la segnalazione di un abuso alle API REST come problema di sicurezza molto grave prima di agire. Un esame proattivo dell'utilizzo delle API REST e una ricerca dei tentativi di abuso (anche se non riusciti) vi aiuteranno a individuare i punti deboli delle vostre procedure per la sicurezza delle API REST.
L'esame delle attività delle API è anche un modo efficace per scoprire la presenza di vulnerabilità nella sicurezza delle API REST, come quelle delineate nell' elenco OWASP (Open Web Application Security Project) con i 10 principali rischi per la sicurezza delle API.. L'individuazione e l'eliminazione di queste vulnerabilità prima che vengano sfruttate dai criminali rappresentano uno dei modi più efficaci per migliorare il vostro sistema di sicurezza delle API REST.
Pronti a iniziare?
Akamai aiuta alcune delle più note organizzazioni al mondo ad implementare le best practice basilari e avanzate per la sicurezza delle API REST. Dal rilevamento delle API all'analisi comportamentale fino alla ricerca delle minacce gestita, il nostro approccio vi aiuterà ad accelerare il vostro impegno volto a garantire la sicurezza delle API REST.
Scoprite di più
Siete interessati a ricevere ulteriori informazioni? Scoprite la soluzione API Security di Akamai.