In che modo la sicurezza API è diversa dalla sicurezza generale delle applicazioni?

Pubblicato: 2023-07-19

Anche se a volte vengono confuse, la sicurezza delle applicazioni e la sicurezza delle API sono due discipline distinte. La sicurezza delle applicazioni si riferisce alla protezione di intere applicazioni, mentre la sicurezza delle API si riferisce alla protezione delle API utilizzate dalle organizzazioni per connettere le applicazioni e scambiare dati. Pertanto, le organizzazioni devono adottare approcci diversi alle due discipline.

Cos'è la sicurezza delle applicazioni?

La sicurezza delle applicazioni (AppSec) utilizza pratiche di autorizzazione, crittografia e codifica sicura per proteggere dati e sistemi dagli attacchi informatici. Le organizzazioni che implementano AppSec riducono il rischio di violazione dei dati, proteggono i dati sensibili e garantiscono che le loro applicazioni siano conformi agli standard di settore.

L'ISACA definisce i cinque componenti critici dei programmi AppSec come:

  1. Sicurezza fin dalla progettazione
  2. Test del codice sicuro
  3. Distinta base del software
  4. Formazione e sensibilizzazione sulla sicurezza
  5. WAF, gateway di sicurezza API e sviluppo di regole

Cos'è la sicurezza dell'API?

La sicurezza dell'API o dell'interfaccia di programmazione dell'applicazione protegge le API dagli attacchi informatici. L'uso delle API è esploso negli ultimi anni, garantendo alle organizzazioni opportunità di innovazione consentendo il trasferimento di dati tra applicazioni. Sfortunatamente, con l’aumento dell’utilizzo delle API, sono aumentati anche gli attacchi lanciati contro di esse. Una ricerca di Salt Security ha rivelato che gli attacchi alle API sono aumentati del 400% tra giugno e dicembre 2022.

Minacce alla sicurezza delle applicazioni e delle API

Per comprendere la differenza tra la sicurezza AppSec e quella delle API è necessario comprendere le principali minacce di ciascuna disciplina. Fortunatamente, OWASP, un'organizzazione no-profit che cerca di migliorare la sicurezza del software, fornisce un elenco completo delle minacce più significative alla sicurezza delle applicazioni e alla sicurezza delle API. Conosciuti come OWASP Top Ten, gli elenchi raccolgono informazioni dalla comunità globale di esperti di sicurezza OWASP per identificare le minacce più critiche alle applicazioni e alle API.

È interessante notare che, sebbene OWASP abbia pubblicato l'elenco dei dieci principali rischi per la sicurezza delle applicazioni Web nel 2003, ha pubblicato l'elenco dei dieci principali rischi per la sicurezza delle API solo alla fine del 2019. Questa discrepanza rappresenta un'altra differenza fondamentale tra la sicurezza delle applicazioni e quella delle API: la sicurezza delle applicazioni è una questione ben consolidata, disciplina ampiamente ricercata che ha subito numerose fasi evolutive, mentre la sicurezza API non lo è.

Anche se non abbiamo tempo per un'analisi approfondita, vale la pena esaminare brevemente ciascun elenco per vedere in cosa differiscono, il che dovrebbe informare il modo in cui le organizzazioni affrontano la sicurezza AppSec e API.

OWASP: i dieci principali rischi per la sicurezza delle applicazioni (2021)

  1. Controllo degli accessi interrotto : quando un utente non autorizzato può accedere a informazioni o sistemi riservati
  2. Errori crittografici : quando una terza parte espone dati sensibili senza intenti specifici a causa di una mancanza o di difetti nella crittografia
  3. Iniezione : quando un utente malintenzionato tenta di inviare dati a un'applicazione in modo tale da modificare il significato dei comandi inviati a un interprete
  4. Design insicuro – Rischi legati a difetti architettonici e di progettazione
  5. Errata configurazione della sicurezza : quando i team di sicurezza configurano in modo impreciso o lasciano i controlli di sicurezza insicuri
  6. Componenti vulnerabili e obsoleti : quando le organizzazioni lasciano i componenti senza patch
  7. Errori di identificazione e autenticazione (anche autenticazione interrotta) : quando le applicazioni sono vulnerabili agli attacchi di autenticazione
  8. Errori di integrità del software e dei dati : quando il codice e l'infrastruttura non riescono a proteggere dalle violazioni dell'integrità
  9. Errori di registrazione e monitoraggio della sicurezza (registrazione e monitoraggio insufficienti) – Quando le organizzazioni non riescono a rilevare violazioni dei dati a causa di procedure di registrazione e monitoraggio inadeguate
  10. Falsificazione di richieste lato server : quando gli aggressori ingannano le applicazioni inducendole a inviare una richiesta predisposta a una destinazione inaspettata, anche se protetta da un firewall, VPN o un altro tipo di elenco di controllo degli accessi alla rete (ACL)

OWASP Primi dieci rischi per la sicurezza delle API (2023)

  1. Autorizzazione a livello di oggetto interrotta : quando un oggetto API, ad esempio database o file, non dispone di controlli di autorizzazione adeguati, garantendo l'accesso a utenti non autorizzati
  2. Autenticazione interrotta : quando gli ingegneri del software e della sicurezza fraintendono i limiti dell'autenticazione API e come implementarla
  3. Autorizzazione a livello di proprietà dell'oggetto interrotta : una combinazione di esposizione eccessiva dei dati e assegnazione di massa: quando gli aggressori sfruttano un blocco o un'autorizzazione impropria a livello di proprietà dell'oggetto.
  4. Consumo illimitato di risorse: soddisfare le richieste API richiede larghezza di banda di rete, CPU, memoria e spazio di archiviazione. I fornitori di servizi rendono disponibili altre risorse come e-mail/SMS/telefonate o convalida biometrica tramite integrazioni API e pagate per richiesta. Gli attacchi riusciti possono portare a un Denial of Service o a un aumento dei costi operativi.
  5. L'autorizzazione a livello di funzione interrotta implica che gli aggressori inviino chiamate API legittime agli endpoint API esposti
  6. Accesso illimitato a flussi aziendali sensibili: le API vulnerabili a questo rischio espongono un flusso aziendale – come l’acquisto di un biglietto o la pubblicazione di un commento – senza compensare il modo in cui la funzionalità potrebbe danneggiare l’azienda se utilizzata eccessivamente in modo automatizzato; questo non deriva necessariamente da bug di implementazione.
  7. Falsificazione di richieste lato server: quando un'API recupera una risorsa remota senza convalidare l'URI fornito dall'utente; consentendo a un utente malintenzionato di costringere l'applicazione a inviare una richiesta predisposta a una destinazione inaspettata, anche se protetta da un firewall o una VPN.
  8. Errata configurazione della sicurezza : le API e i sistemi che le supportano in genere contengono configurazioni complesse per renderle più personalizzabili. Gli ingegneri software e DevOps possono non notare queste configurazioni o non seguire le migliori pratiche di sicurezza relative alla configurazione, aprendo la porta a diversi tipi di attacchi.
  9. Gestione impropria dell'inventario : le API espongono più endpoint rispetto alle applicazioni Web tradizionali, rendendo importante una documentazione corretta e aggiornata. Anche un inventario adeguato degli host e delle versioni API distribuite è essenziale per mitigare problemi come le versioni API deprecate e gli endpoint di debug esposti.
  10. Consumo non sicuro delle API: gli sviluppatori tendono a fidarsi più dei dati ricevuti da API di terze parti che dell’input dell’utente e adottano standard di sicurezza più deboli. Per compromettere le API, gli aggressori prendono di mira i servizi integrati di terze parti invece di tentare di compromettere direttamente l'API di destinazione.

Come puoi vedere, sebbene esista una certa sovrapposizione, le applicazioni e le API sono principalmente soggette a minacce diverse e uniche e le organizzazioni devono rispondere di conseguenza. La differenza fondamentale tra i due elenchi è che le organizzazioni possono mitigare tutti i rischi critici associati alla sicurezza delle applicazioni con tecniche e strumenti di sicurezza tradizionali e multiuso, ma la sicurezza delle API è diversa.

La sicurezza delle API è un problema estremamente moderno che richiede una soluzione altrettanto moderna. Le organizzazioni non possono aspettarsi che gli strumenti che utilizzano per proteggere le proprie applicazioni e altre risorse riescano a soddisfare il compito di proteggere le API. La sicurezza dell'API richiede strumenti di sicurezza specifici dell'API; i metodi di protezione tradizionali come i gateway API e i Web Application Firewall (WAF) non sono sufficienti.