Guida alla sicurezza delle API

Guida alla sicurezza delle API

Introduzione

Le API sono essenziali per aumentare l'innovazione nella nostra economia digitale.
 
Garner, Inc prevede che entro il 2020, più di 25 miliardi le cose si collegheranno a Internet.
 
Ciò rappresenta un'opportunità di guadagno incrementale finita $300 miliardi alimentato da API. 
 
Tuttavia, le API espongono una superficie di attacco più ampia per i criminali informatici.
 
Questo perché le API espongono la logica dell'applicazione e i dati sensibili.
 
Questo articolo esplora come proteggere le API.
 
Discuteremo delle API REST rispetto alle API SOAP.
 
Esamineremo l'API OWASP Top 10.
 
Inoltre parleremo delle best practice per proteggere le tue API.

Cos'è l'economia API?

L'economia delle API emerge quando le API diventano parte di un modello organizzativo.
 
Le API sono state fattori abilitanti strategici per diversi modelli di business online. 
 
Amazon, ad esempio, è più di un rivenditore Internet, è anche un popolare gateway commerciale.
 
La piattaforma di Amazon si basa su API che consentono un facile onboarding di nuovi commercianti. 
 
Le banche hanno basato per decenni infrastrutture di pagamento e stanze di compensazione su API ben definite.
 
Le API dovrebbero essere parte integrante della tua strategia aziendale.

Sicurezza dell'API Web

Le API Web connettono il lato client di un'applicazione con il lato server.
 
La sicurezza dell'API Web include, a titolo esemplificativo ma non esaustivo, il controllo degli accessi e la privacy. 
 
Un attacco a un'applicazione può ignorare l'applicazione lato client e concentrarsi sulle API.
 
I microservizi utilizzano spesso le API perché sono disponibili tramite reti pubbliche.
 
Le API possono essere sensibili agli incidenti di tipo DDOS denial of service. 
 
Sicurezza dell'API REST rispetto alla sicurezza dell'API SOAP 
 
Esistono due tipi principali di implementazioni API:
 
  1. REST (trasferimento di stato rappresentativo). 
 
      2. SOAP (Protocollo di accesso semplice agli oggetti).

Sicurezza dell'API REST

La crittografia Transport Layer Security (TLS) supporta tramite API REST, che comunicano tramite HTTP.
 
TLS crittografa e verifica per garantire che nessuna terza parte possa leggere i dati inviati.
 
Hacker che cercano di rubare la tua carta di credito informazioni non avrà accesso ai tuoi dati. 
 
Le API REST utilizzano JavaScript Object Notation (JSON). È più veloce utilizzare le API REST rispetto alle API SOAP. Non hanno bisogno di conservare i dati, il che li rende più efficienti.

API SOAP, Sicurezza

Le API SOAP forniscono un meccanismo di sicurezza integrato denominato Web Services Security (WS Security). Controllano l'autenticazione e l'autorizzazione. Usano la crittografia XML, le firme XML e i token SAML.

SOAP è l'approccio giusto per la standardizzazione e la crittografia dei servizi Web. SOAP è un'alternativa migliore di REST. 

SOAP si limita a XML ma REST può gestire qualsiasi formato di dati. JSON è più facile da capire rispetto a XML. L'uso di REST per il trasporto dei dati consente di risparmiare denaro sui costi dell'infrastruttura informatica.

Gestione API

La gestione delle API aiuta le aziende a creare le proprie risorse digitali. 

Di seguito sono riportati alcuni modi per gestire la sicurezza delle API:

1. Autenticazione

L'autenticazione di base HTTP è un metodo per l'autenticazione di un client con il gateway API.

2. Autenticazione OAuth2.0

Il meccanismo standard per l'autorizzazione è OAuth 2.0.
 
Il framework di autorizzazione OAuth 2.0 consente a terzi di ottenere un accesso limitato a un servizio HTTP.
 
Funziona consentendo all'applicazione di terze parti di ottenere l'accesso per proprio conto. 
 
 Nel contesto dei flussi di autenticazione OAuth, sono disponibili diverse opzioni.
 
I flussi OAuth supportati includono:
 
  • Flusso password nome utente: dove il programma ha accesso diretto alle credenziali dell'utente.
 
  • Flusso del server Web: dove il server può proteggere il segreto del consumatore.
 
  • Flusso user-agent: utilizzato dalle applicazioni che non possono memorizzare il consumer secret.
 
Nell'autenticazione OAuth2.0, l'utente invierà le credenziali nel corpo della richiesta. Come l'autenticazione di base, ma introduce anche i token. I token vengono archiviati sul lato server. Lo stesso token chiama il servizio un numero qualsiasi di volte fino alla scadenza. Gli utenti possono aggiornare per ottenere quello nuovo.
 
Il problema è che questo metodo produce più token. I token scaduti sul server aumenteranno il carico del server.

3. Autenticazione token Web JSON

Un token JWT è un oggetto JSON e base64 codificato e firmato con una chiave condivisa. Il JWT garantisce che solo un utente definito possa generare un token univoco. I JWT non sono crittografati. Chiunque abbia accesso al token otterrà i dati.

Vantaggi del JWT

  • Il token contiene tutte le informazioni necessarie per autenticare l'utente.
  • È facile evitare di affidarsi a server e database di autenticazione centralizzati.
  • La verifica comporta l'esame della firma e molti altri fattori.
  •  JWT è un token di media durata con una data di scadenza specificata tra poche settimane e oltre
  • La scalabilità sull'hardware del server Web contemporaneo è semplice...

4. Firme HTTP

In JWT, l'intestazione dell'autorizzazione ha la codifica e la firma in base64. Se qualcuno riceve il token e la richiesta JWT, può aggiornare il corpo della richiesta HTTP. Le firme HTTP consentono al client di firmare il messaggio HTTP. Quindi, quegli altri possono toccare la richiesta sulla rete.

Amazon, Facebook e Google utilizzano le firme HTTP. Nel 2016 è entrata in pratica la firma dei messaggi HTTP. Si tratta di una nuova specifica di lavori in corso. Secondo questa specifica, il vantaggio di firmare il messaggio HTTP, ai fini dell'integrità del messaggio end-to-end. Un client può autenticarsi con lo stesso meccanismo senza la necessità di molti cicli.

Comprendere le vulnerabilità della sicurezza delle API

OWASP è sempre stata l'autorità di riferimento sui problemi di sicurezza più comuni e insidiosi riscontrati nel software che utilizziamo tutti i giorni, ed è tutto supportato da dati ricchi.

Se c'è una linea di base per la quale le organizzazioni dovrebbero lottare, è conquistarla OWASP API Security Top 10 elencati di seguito.

SICUREZZA API OWASP TOP 1O

API1: Autorizzazione a livello di oggetto rotto

API2: Autenticazione non funzionante

API3: Eccessiva esposizione dei dati

API4: Mancanza di risorse e limitazione della velocità

API5: Aut. a livello di funzione interrotta

API6: Assegnazione di massa

API7: Configurazione errata della sicurezza

API8: Iniezione

API9: Gestione patrimoniale impropria

API10: Registrazione e monitoraggio insufficienti

BEST PRACTICE PER LA SICUREZZA API

Ecco alcuni dei modi più comuni per migliorare la sicurezza delle API:

 

  1. Stabilisci le tue vulnerabilità. 

 

È necessario mantenere aggiornati i componenti del sistema operativo, della rete e dell'API. Cerca i difetti che possono consentire agli aggressori di accedere alle tue API. Gli sniffer rilevano problemi di sicurezza e tengono traccia delle fughe di dati.

 

  1. Posizionare la quota e la limitazione.

 

Imposta una quota sulla frequenza con cui le tue API chiamano e controlla l'utilizzo nella cronologia. L'uso improprio di un'API è solitamente indicato da un picco nelle chiamate. 

 

  1. Usa un gateway API per connetterti alla tua API. 

 

I gateway API sono il punto di applicazione principale per il traffico API. Ti consentirà di controllare e analizzare il modo in cui le tue API si autenticano.

 

  1. Usa i gettoni.

 

Crea identità attendibili. Utilizza token con tali identità per controllare l'accesso a servizi e risorse.

 

  1. Utilizzare la crittografia e le firme digitali.

 

Crittografa i tuoi dati utilizzando TLS. Utilizza le firme digitali per verificare che solo le persone autorizzate abbiano accesso e modifichino i dati.

 

  1. Concentrati sulla sicurezza.

 

Le API non dovrebbero mai essere considerate accessorie. Le organizzazioni rischiano di perdere molto se non riescono a proteggere le API. Di conseguenza, rendi la sicurezza una priorità e includila nelle tue API.

 

  1. Convalida l'input.

 

Non trasmettere mai dati a un endpoint tramite un'API senza prima verificarlo.

 

  1. Utilizzare la limitazione della velocità. 

 

Limitare quindi le richieste può aiutare a prevenire gli attacchi denial-of-service.

 

  1. Utilizzare un solido sistema di autenticazione e autorizzazione. 

 

Quando le API non impongono l'autenticazione, si verifica un'autenticazione interrotta.

Utilizza tecnologie di accesso e autorizzazione consolidate, come OAuth2.0 e OpenID Connect.

Conclusione

Abbiamo esaminato le 10 principali vulnerabilità di OWASP API Security per proteggere meglio l'API.
 
Siamo in grado di gestire la gestione del rischio utilizzando tecniche di autenticazione e autorizzazione consolidate.
 
Ad esempio, le firme HTTP, utilizzate da Amazon, Facebook e Google.
 
Abbiamo esaminato altre best practice API, incluso l'uso di token e la crittografia.
 
Abbiamo anche toccato le firme digitali, nonché l'importanza della convalida dell'input.
 
Leggi il nostro articolo sulle best practice per la sicurezza delle API in 2022 per maggiori informazioni sulla OWASP API Security Top 10.