Che cos'è la sicurezza delle API REST?

Le API REST sono ampiamente utilizzate oggi, ma la loro popolarità le rende bersagli privilegiati dagli attacchi informatici. La protezione delle API REST è essenziale per proteggere le informazioni sensibili e garantire l'affidabilità delle applicazioni web. In questa guida, vengono esplorate varie misure di sicurezza, tra cui crittografia, controllo degli accessi, limitazione della velocità e monitoraggio delle API, per proteggere le API REST e mitigare le vulnerabilità.

Per una varietà di motivi, la protezione delle API REST è un'attività fondamentale per gli esperti di cybersecurity aziendale. Poiché le API rendono visibili le applicazioni e i dati sensibili all'accesso esterno, sono bersagli privilegiati dai criminali per condurre violazioni dei dati. Naturalmente, le organizzazioni devono investire in strumenti di sicurezza delle API adeguati per proteggere le API REST. La sicurezza delle API comprende una serie di contromisure che includono crittografia, limitazione della velocità, token di accesso e altro ancora. Nella presente guida, analizzeremo questi controlli di sicurezza e come possono migliorare la sicurezza delle API REST.

Che cos'è un'API REST?

Lo stile dell'architettura REST è stato definito nella dissertazione di Roy Fielding pubblicata nel 2000. L'obiettivo di questo documento era definire un approccio architettonico uniforme e coerente per la comunicazione tra computer sul web. Un'API REST è un'API che utilizza lo stile dell'architettura REST (REpresentational State Transfer) per inviare e ricevere dati e chiamate procedurali. Per funzionare, un'API REST necessita, inoltre, di un protocollo di trasporto e di un linguaggio di programmazione Le API REST comunicano tramite HTTP (Hypertext Transfer Protocol) e usano, preferibilmente, il formato dati JSON (JavaScript Object Notation) per trasmettere i messaggi. Pertanto, il termine "API" si riferisce quasi sempre a un'API REST che utilizza il formato JSON su HTTP.

L'API REST è diventata la modalità predominante per le API per diversi motivi. innanzitutto, questo tipo di API è gratuito e basat su standard, quindi non vi sono praticamente ostacoli alla sua dozione. Anche la programmazione RESTful è "stateless", il che ne facilita la gestione. Un'interfaccia RESTful è uniforme. I parametri delle query sono standardizzati. Di conseguenza, è abbastanza facile per un'entità che crea un'API pubblicare le istruzioni che gli sviluppatori possono utilizzare quando richiamano l'API, ad esempio, per ottenere i dati dall'API, che verranno restituiti nel formato JSON. Sono consentiti anche altri tipi di risposte, ad esempio, nel formato XML (Extensible Markup Language), in documenti e immagini.

Le best practice per la protezione delle API REST

Senza misure di sicurezza adeguate, le API REST rappresentano una superficie di attacco estesa e vulnerabile. Mentre, in precedenza, le organizzazioni potevano affidarsi alla sicurezza praticabile "nell'oscurità", in cui gli hacker dovevano impegnarsi duramente per trovare i dati all'interno di una rete con un'API, l'organizzazione pubblica praticamente le istruzioni su come trovare i dati e rubarli.

Le pratiche di sicurezza delle API REST si sono evolute e le contromisure più efficaci includono:

Individuazione delle API

Spesso, non si conoscono tutte le API di cui si dispone. La maggior parte delle organizzazioni ha poca (se non nessuna) visibilità sulla gran parte del traffico delle proprie API, spesso perché si dà per scontato che tutte le API vengano instradate tramite un gateway API. Eppure non è così. La vostra azienda è esposta ad una serie di rischi se non viene stilato un inventario completo e accurato. Queste sono le principali funzionalità richieste:

  • Individuazione e creazione di un inventario delle API, indipendentemente dalla configurazione o dal tipo
  • Rilevamento delle API inattive, tradizionali e zombie
  • Identificazione dei domini ombra dimenticati, trascurati o non conosciuti
  • Eliminazione dei punti ciechi e individuazione dei potenziali percorsi degli attacchi

Gestione del sistema delle API

Dopo aver stilato un inventario completo delle API, è fondamentale capire quali tipi di dati vengono distribuiti tramite le API e come influiscono sulla vostra capacità di soddisfare i requisiti normativi. La gestione del sistema delle API fornisce una visione completa sul traffico, sul codice e sulle configurazioni per poter valutare il livello di sicurezza delle API della vostra organizzazione. Queste sono le principali funzionalità richieste:

  • Scansione automatica dell'infrastruttura per scoprire configurazioni errate e rischi nascosti
  • Creazione di workflow personalizzati per informare le principali persone coinvolte circa le vulnerabilità
  • Identificazione delle API e degli utenti interni che possono accedere ai dati sensibili
  • Classificazione dei problemi rilevati in base ai livelli di gravità per dare priorità alla mitigazione

Sicurezza del runtime delle API

Sicuramente, avete già familiarità con il concetto di dover "presupporre una violazione". Le violazioni e gli attacchi specifici delle API stanno raggiungendo lo stesso grado di inevitabilità. Per tutte le vostre API attualmente in fase di produzione, dovete essere in grado di rilevare e bloccare gli attacchi in tempo reale. Queste sono le principali funzionalità richieste:

  • Monitoraggio della manomissione e della fuga di dati, della violazione delle policy, del comportamento sospetto e degli attacchi alle API
  • Analisi del traffico delle API senza apportare ulteriori modifiche alla rete o utilizzare agenti difficili da installare
  • Integrazione con i workflow esistenti (creazione di ticket, SIEM, ecc.) per avvisare i team addetti alla sicurezza/operazioni
  • Prevenzione degli attacchi e degli abusi in tempo reale con una mitigazione parzialmente o totalmente automatizzata

Esecuzione di test sulla sicurezza delle API

I team addetti allo sviluppo delle API sono sotto pressione perché devono lavorare il più rapidamente possibile. La velocità è essenziale per ogni applicazione sviluppata, il che rende più semplice il verificarsi di una vulnerabilità o un difetto di progettazione e, di conseguenza, più difficile che vengano rilevati. L'esecuzione di test sulle API in fase di sviluppo prima che entrino in produzione riduce notevolmente sia i rischi che i costi necessari per mitigare le loro vulnerabilità. Queste sono le principali funzionalità richieste:

  • Esecuzione di un'ampia serie di test automatizzati che simulano il traffico dannoso
  • Individuazione delle vulnerabilità prima che le API entrino in fase di produzione per ridurre il rischio di un attacco
  • Verifica delle specifiche delle API sulla base delle regole e delle policy di governance stabilite
  • Esecuzione di test sulla sicurezza delle API on-demand o come parte di una pipeline CI/CD

Questo approccio completo si integra perfettamente con le funzionalità di protezione delle API esistenti all'interno di un'azienda, tra cui:

Canale sicuro

  • Il canale di comunicazione per le chiamate e le risposte API deve essere sicuro. Una best practice consiste nell'utilizzare il protocollo TLS (Transport Layer Security), in precedenza noto come SSL (Secure Socket Layer). Un certificato TLS utilizza la crittografia end-to-end per proteggere i dati delle API e accedere alle credenziali durante il transito. Il protocollo TLS protegge le informazioni inviate tramite l'API crittografando tutti i messaggi inviati tramite tale API.
  • Se l'URL inizia con https invece che http, il sito web in questione supporta il protocollo TLS. Senza il protocollo TLS, un hacker può intercettare le informazioni dal server di transito e accedervi senza autorizzazione. Tutti i metodi di autenticazione ne sono compromessi. Il protocollo TLS richiede i certificati dalle autorità di certificazione che sono tenute ad informare l'utente nel caso in cui un'API è legale e protetta.

Chiavi API

Le chiavi API sono stringhe univoche che funzionano come credenziali di accesso alle API e vengono utilizzate per l'autenticazione dei client che effettuano le chiamate API.

Token

  • I token delle API sono identificatori digitali univoci che autenticano gli utenti delle API, consentendo di evitare complessi processi di autenticazione come la verifica in due passaggi e l'SSO (Single Sign-On). Gli amministratori delle API possono concedere e revocare i token delle API agli utenti delle API, fornendo il controllo sull'accesso alle API.
  • I token vengono solitamente emessi dal server che ospita l'API per l'utilizzo da parte delle app lato client. Il meccanismo dei token differisce dalla gestione delle sessioni basata su cookie in quanto, normalmente, è stateless. Poiché non è necessario che il server memorizzi i dettagli della sessione, è più semplice scalare l'infrastruttura che utilizza le API.

OAuth 2

Si tratta di un meccanismo di autenticazione sicuro basato su standard e sui token, che funziona per l'autenticazione e l'autorizzazione degli utenti delle API.

Token JWT (JSON Web Token)

L'autenticazione delle API è un ostacolo fondamentale per tenere in bada i criminali e le minacce. Un JWT è un token di autenticazione con firma digitale che contiene i dati sull'utente dell'API in formato JSON. Il vantaggio di un token JWT consiste nel fatto che può contenere un maggior numero di dati rispetto a una chiave API.

Limitazione della velocità

  • Le API sono i bersagli privilegiati degli attacchi DDoS (Distributed Denial-of-Service). Un criminale può "inondare" un'API con un numero eccessivo di richieste e causarne l'arresto. Per evitare che ciò si verifichi, uno strumento di sicurezza delle API può implementare la limitazione della velocità, ad esempio, chiudendo l'accesso se un client tenta di richiamare l'API troppo spesso in un determinato periodo di tempo.

Integrazione con il sistema IAM

  • È possibile stabilire le identità degli utenti per i client API integrando la gestione delle API con i sistemi IAM (Identity and Access Management). In questo modo, un amministratore può controllare chi è autorizzato a utilizzare un'API, impedendone l'accesso non autorizzato.

Verifica degli input delle query basati su parametri

  • Gli hacker possono provare a violare un'API modificando i dati delle richieste JSON e i parametri degli URL. Verificando questi input sulla base di alcuni parametri, è possibile interrompere questo tipo di attacco prima che venga sferrato.

Elenco consentito dei metodi HTTP consentiti

Questa contromisura stabilisce un elenco dei metodi HTTP consentiti per l'API, ad esempio POST, GET, PUT. Per impostazione predefinita, questo controllo blocca i metodi che non devono essere consentiti dall'utente di un'API pubblica, come DELETE.

Monitoraggio delle API

  • È fondamentale tenere traccia dell'utilizzo e delle performance delle API, idealmente in tempo reale. Monitorando le API, gli amministratori possono segnalare comportamenti anomali che potrebbero indicare un attacco in corso, tra cui la registrazione delle richieste non riuscite e la ricerca di schemi sospetti.

Protezione e sicurezza degli endpoint

Considerato il ruolo fondamentale degli endpoint delle API nell'architettura delle API REST, la protezione degli endpoint è di fondamentale importanza. L'implementazione di soluzioni per la sicurezza degli endpoint garantisce che ciascun endpoint sia protetto da accessi non autorizzati e attività dannose, incluso l'utilizzo di gateway API per gestire e proteggere il traffico delle API, applicare policy e fornire un controllo centralizzato degli accessi.

Protezione delle applicazioni web

La protezione delle API REST è parte integrante della protezione delle applicazioni web. Le API REST spesso fungono da struttura portante delle applicazioni web, consentendo la comunicazione tra il client e i server back-end. L'implementazione di misure di sicurezza, come il controllo delle applicazioni e degli accessi, aiuta a proteggere sia le API che le applicazioni web supportate.

Domande frequenti (FAQ)

I gateway API svolgono un ruolo cruciale nella sicurezza delle API REST agendo come un unico punto di accesso per le richieste delle API: applicano policy di sicurezza, gestiscono il traffico e assicurano che solo gli utenti autorizzati possano accedere agli endpoint delle API. I gateway API contribuiscono, inoltre, a ridurre i rischi per la sicurezza fornendo funzionalità quali limitazione della velocità, autenticazione e crittografia dei dati.

La verifica degli input delle query è essenziale per prevenire le vulnerabilità della sicurezza, come gli attacchi SQL injection e altri attacchi di tipo injection. Garantendo che tutti gli input siano adeguatamente verificati, le organizzazioni possono proteggere le loro API da attività dannose che sfruttano dati non verificati.

Il protocollo OAuth 2 fornisce un metodo sicuro e standardizzato per l'autenticazione degli utenti e l'autorizzazione dell'accesso alle risorse delle API in quanto consente l'autenticazione basata su token, che semplifica il processo per gli utenti garantendo che solo le persone autorizzate possano accedere alle informazioni sensibili. Il protocollo OAuth 2 supporta anche l'integrazione con provider di autenticazione di terze parti, migliorando la sicurezza generale.

Il monitoraggio delle API consente alle organizzazioni di tenere traccia dell'utilizzo delle API e di rilevare comportamenti insoliti in tempo reale. Analizzando le richieste API, le risposte e i modelli di traffico, gli amministratori possono identificare potenziali minacce alla sicurezza, come tentativi di accesso non autorizzati o un uso improprio delle API. Questo approccio proattivo aiuta a mitigare i rischi prima che si trasformino in veri e propri attacchi.

Perché i clienti scelgono Akamai

Akamai è l'azienda di cybersecurity e cloud computing che abilita e protegge il business online. Le nostre soluzioni di sicurezza leader del settore, l'innovativa intelligence sulle minacce e il team presente su scala globale forniscono una difesa approfondita in grado di proteggere applicazioni e dati critici ovunque. Le soluzioni complete di cloud computing offerte da Akamai assicurano performance elevate e notevoli risparmi grazie alla piattaforma più distribuita al mondo. Le maggiori aziende internazionali si affidano ad Akamai per ottenere la protezione, la scalabilità e le competenze leader del settore di cui hanno bisogno per far crescere le loro attività senza rischi.

Scoprite tutte le soluzioni per la sicurezza di Akamai