Guida alla sicurezza delle API
Introduzione
Cos'è l'economia API?
Sicurezza dell'API Web
- REST (trasferimento di stato rappresentativo).
Sicurezza dell'API REST
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
- 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.
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:
- 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.
- 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.
- 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.
- Usa i gettoni.
Crea identità attendibili. Utilizza token con tali identità per controllare l'accesso a servizi e risorse.
- 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.
- 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.
- Convalida l'input.
Non trasmettere mai dati a un endpoint tramite un'API senza prima verificarlo.
- Utilizzare la limitazione della velocità.
Limitare quindi le richieste può aiutare a prevenire gli attacchi denial-of-service.
- 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.