All posts

Sicurezza API: strategie aziendali efficaci

Sicurezza API

Le API (Application Programming Interface) sono interfacce di programmazione per applicazioni, un insieme di regole e protocolli che fanno da tramite tra più software, che in questo modo possono comunicare tra loro. 

Secondo il report Salt Labs sulla sicurezza delle API del 2023, il 94% delle aziende intervistate ha riscontrato problemi di sicurezza nell'ultimo anno. La sicurezza delle API, quindi, è diventata fondamentale per ogni azienda, proprio a causa del loro largo utilizzo e della loro vulnerabilità. 

Gli attacchi hacker alle API possono mettere a rischio dati sensibili o interrompere le operazioni aziendali, causando danni economici e d’immagine.

In questo articolo quindi vogliamo esaminare le migliori strategie aziendali per la sicurezza delle API, per ridurre il rischio di attacchi informatici e proteggere i propri dati e le proprie operazioni. 

API: cosa sono e come funzionano 

Gestione autorizzazioni API

Come già anticipato in premessa, un API, Application Programming Interface, è un’interfaccia di programmazione per applicazioni, ovvero un software che consente a più applicazioni di interagire tra loro, facendo da intermediario. Si rivelano estremamente utili nell'headless commerce dove front end e back end sono separati.

Quando parliamo di applicazioni parliamo di dispositivi, applicativi o programmi che vengono sviluppati con linguaggi di programmazione diversi tra loro e in costante evoluzione. 

Metterli in comunicazione sarebbe davvero complesso, ecco perché vengono utilizzati questi connettori che consentono agli sviluppatori di avere accesso a diversi applicativi senza conoscerne necessariamente il linguaggio di programmazione, e senza doversi addentrare nei dettagli di implementazione del servizio

Insomma, grazie alle API per implementare questi applicativi gli sviluppatori non hanno bisogno di conoscere ogni aspetto tecnico di come il servizio sottostante è stato programmato o strutturato.

Come funzionano le API, un esempio concreto

Le API sono organizzate su due livelli: il client, l’applicazione che emette la richiesta, e il server, l’applicazione che fornisce la risposta

Restando nell’ambito delle spedizioni, potremmo paragonare il client e il server al mittente e al destinatario di una spedizione, mentre il corriere rappresenta appunto l’API.

Il corriere non ha necessità di conoscere il contenuto della spedizione, il suo compito è quello di fare da ponte tra mittente e destinatario che non entrano mai in contatto, consegnando il pacco seguendo delle regole ben definite (indirizzo di spedizione, orario, documenti da compilare, ricevute, ecc).

Un esempio concreto di API potrebbe essere il processo di integrazione di un'applicazione di pagamento in un ecommerce

Per consentire ai clienti di effettuare i pagamenti su uno store online, infatti, sono necessarie le API fornite dai provider di servizi di pagamento.

Queste permettono al sito ecommerce di dialogare con i sistemi del provider di pagamento in modo sicuro e standardizzato, crittografando le informazioni. Il provider di pagamento riceve i dati attraverso le API, verifica le informazioni e avvia il processo di checkout. 

Altri esempi di API sono quelle di ShippyPro che consentono di integrare il proprio sistema con oltre 160 corrieri italiani ed esteri per spedire pacchi in tutto il mondo. Un modo semplice per potenziare il proprio store. 

Le API ShippyPro nello specifico permettono di effettuare il controllo dell’indirizzo, avere la prova di consegna (POD), creare etichette di reso, calcolare imposte e tasse e molto altro.

Scopri tutte le API ShippyPro qui

Sicurezza API

Autenticazione sicura API

In uno scenario in continua evoluzione e innovazione come quello del business online, le strategie aziendali per la sicurezza delle API devono fare i conti con la velocità di crescita e di diffusione di queste ultime.

Anche nel settore delle spedizioni, dove le tecnologie per la gestione logistica si fanno sempre più avanzate, diventa indispensabile proteggersi da eventuali attacchi informatici, ad esempio implementando un sistema di protezione API per garantire la sicurezza dei dati di spedizione e dei clienti. 

Per farlo però è necessario conoscere i punti deboli di questi applicativi. Vediamo quali sono.

I punti deboli della sicurezza delle API 

La comunità non profit OWASP, Open Web Application Security Project, ha stilato una classifica delle 10 tipologie di attacco che mettono a rischio la sicurezza dei dati API, eccole di seguito:

  1. Broken Object Level Authorization (BOLA). È una delle vulnerabilità più comuni e si presenta quando un’API non verifica correttamente le autorizzazioni di un utente per accedere a un oggetto specifico. Ciò significa che un malintenzionato può manipolare l'ID di un oggetto per ottenere l'accesso.
  2. Broken Authentication. Un’errore nel processo di autenticazione che consente agli hacker di assumere una falsa identità, rubando le credenziali ad un utente legittimo.
  3. Broken Object Property Level Authorization. La mancata o errata convalida dell'autorizzazione comporta l'esposizione o la manipolazione delle informazioni di soggetti non autorizzati.
  4. Unrestricted Resource Consumption. Servizi come email, SMS, chiamate telefoniche o la convalida biometrica sono resi disponibili da fornitori tramite integrazioni API, gli attacchi possono portare a un rifiuto del servizio o a un aumento dei costi operativi.
  5. Broken Function Level Authorization. Complesse politiche di controllo con diverse gerarchie, gruppi e ruoli, e una separazione poco chiara tra funzioni amministrative tendono a portare ad errori di autorizzazione. Sfruttando questi problemi gli aggressori possono accedere alle risorse di altri utenti e/o a funzioni amministrative.
  6. Unrestricted Access to Sensitive Business Flows. Un business flow è una serie di azioni che un'API può eseguire per svolgere un compito specifico, come la creazione di un account utente. L’accesso a flussi aziendali senza restrizioni può mettere a rischio queste procedure. Ad esempio un utente malintenzionato potrebbe creare un gran numero di account falsi.
  7. Server Side Request Forgery. È la falsificazione di richieste lato server e si verifica quando un'API accetta una richiesta che contiene un URL che viene inoltrata a un server remoto. Se l'URL è manipolato da un utente malintenzionato, l'API può essere indotta a inviare una richiesta dannosa al server.
  8. Security Misconfiguration. È una vulnerabilità che si verifica quando un'API non è configurata in modo sicuro. Ciò può includere un utilizzo di credenziali non sicure, un mancato utilizzo di controlli di autenticazione o un mancato aggiornamento con le ultime patch di sicurezza API.
  9. Improper Inventory Management. Si verifica quando un'API non gestisce correttamente l'inventario, ad esempio non tenendo traccia delle quantità di articoli disponibili o consentendo a utenti non autorizzati di modificare le quantità di inventario.
  10. Unsafe Consumption of APIs. Si verifica quando un'API viene consumata in modo non sicuro, ad esempio senza un token di accesso valido.

Le diverse tipologie di attacchi informatici alla sicurezza delle API

Sicurezza dati API

Tutte queste vulnerabilità potrebbero quindi portare a diverse tipologie di attacchi hacker, ecco alcuni esempi:

  1. iniezione di codice malevolo in quello di programmazione di un software;
  2. attacchi DOS e DDOS (Denial of Service e Distributed Denial of Service), cioè una tempesta di richieste al server su cui poggia un sito web che satura la banda e lo rende inaccessibile;
  3. compromissione dei metodi di autenticazione per avere accesso a dati sensibili;
  4. intercettazione delle comunicazioni tra due sistemi: in questo modo l’hacker riceverà tutto il traffico dati, che potrà utilizzare per carpire informazioni.

Qual è l’impatto di una violazione della sicurezza dati API

Comprendere le possibili conseguenze di un attacco informatico è fondamentale per prendere misure preventive adeguate.

Dal punto di vista finanziario potrebbe portare a: 

  • sanzioni, in caso di violazione delle normative come il GDPR (General Data Protection Regulation); 
  • spese per costi di riparazione del sistema e per risarcire i clienti colpiti;
  • perdita di entrate dovuta a danni alla reputazione.

Ma i danni potrebbero ripercuotersi anche sulla fruibilità del servizio, per ripristinare il quale potrebbe essere necessario diverso tempo, causando disagi per gli utenti e potenziali perdite di opportunità di business.

Uno degli aspetti più importanti però riguarda i dati sensibili. L'accesso non autorizzato a informazioni personali dei clienti, informazioni di accesso, dati medici o finanziari può causare gravi danni alla privacy dei clienti stessi e alla reputazione dell'azienda

Nello specifico del settore logistico, ecco un probabile scenario che potrebbe verificarsi.

Un'azienda di logistica utilizza un sistema basato su API per gestire la pianificazione delle spedizioni. Le API consentono a clienti e partner di accedere alle informazioni sulle spedizioni, pianificare ritiri e consegne e monitorare lo stato delle merci.

Un hacker riesce a individuare una vulnerabilità nelle API di pianificazione delle spedizioni e, sfruttando questa vulnerabilità, è in grado di ottenere accesso non autorizzato alle API e alle informazioni.

Ed ecco quali potrebbero essere le possibili conseguenze.

  1. Accesso non autorizzato alle informazioni. L'hacker può accedere a informazioni sensibili, come indirizzi di ritiro e consegna, dettagli dei clienti, orari previsti o informazioni sul pick up e drop off della spedizione. Queste informazioni possono essere utilizzate per scopi di furto, estorsione o altre attività malevole.
  2. Manipolazione delle pianificazioni. L'hacker può manipolare le pianificazioni delle spedizioni alterando gli orari di ritiro o consegna. Ciò potrebbe causare ritardi o confusione nelle operazioni di trasporto e danneggiare l’immagine dell’azienda.
  3. Interruzione delle attività. Se l'attacco compromette gravemente le API, potrebbe causare un'interruzione delle attività, con conseguenti ritardi nelle spedizioni e perdite finanziarie.
  4. Potenziale perdita di dati dei clienti. Questo potrebbe portare non solo a possibili violazioni delle normative sulla protezione dei dati, ma anche ad una perdita di credibilità dell’azienda. Ciò andrebbe a danneggiare uno degli elementi cardine della strategia di marketing, la fidelizzazione dei clienti.

La sicurezza dei dati nella logistica è fondamentale al pari di qualsiasi altro settore aziendale, vediamo quindi come ottenerla in 4 passaggi.

Protezione API: come ottenerla in 4 passaggi

Protezione API in 4 passaggi

Abbiamo visto cosa sono e come funzionano le API, quali sono i loro punti deboli e gli attacchi che possono subire. Vediamo ora in quattro passaggi le best practice API da adottare per proteggere la propria azienda:

  1. gestione autorizzazioni API;
  2. protezione dei dati sensibili;
  3. validazione e filtraggio delle richieste API;
  4. aggiornamenti regolari e best practices API.

1. Gestione autorizzazioni API

Il primo livello di protezione API è relativo all’autenticazione e all’autorizzazione. 

  • Protocolli di autenticazione sicuri. L’autenticazione può avvenire attraverso l’utilizzo di protocolli come OAuth, che consente agli utenti di concedere l'accesso alle proprie risorse a un'applicazione di terze parti, senza dover condividere le proprie credenziali. Oppure JWT un sistema di cifratura che genera un token che può essere cifrato e firmato solo da chi lo ha generato.
  • Implementazione di meccanismi di autorizzazione granulari. La gestione delle autorizzazioni API passa anche attraverso dei meccanismi che definiscono ruoli utente e autorizzazioni specifiche per ciascuna funzionalità delle API. I controlli da effettuare devono essere a livello di oggetto per assicurarsi che gli utenti abbiano l'accesso solo a ciò di cui hanno bisogno, evitando che accedano anche a dati o risorse non autorizzati.
  • Gestione sicura delle credenziali. Le credenziali e le autorizzazioni degli utenti vanno archiviate attraverso soluzioni di autenticazione a più fattori (MFA) e gli amministratori devono avere la facoltà di revocare le autorizzazioni in caso di violazioni.
  • Monitoraggio e analisi dei log, tenendo traccia delle attività delle API attraverso log dettagliati per monitorare gli accessi e le azioni degli utenti, e identificare eventuali attività sospette come accessi insoliti o comportamenti anomali.

2. Protezione dei dati sensibili

Il secondo passaggio riguarda la protezione dei dati sensibili che può avvenire attraverso:

  • la crittografia dei dati in transito che utilizza protocolli di crittografia come SSL/TLS (Secure Sockets Layer/Transport Layer Security) per proteggere i dati durante la trasmissione su reti non sicure; 
  • la crittografia dei dati a riposo, cioè i dati sensibili memorizzati sui server, che utilizza algoritmi di crittografia robusti per garantire che i dati siano inaccessibili in caso di accesso non autorizzato al sistema;
  • la tokenizzazione, sostituendo i dati sensibili con token generati casualmente che non rivelano i dati originali ma possono essere utilizzati per riferirsi ad essi in modo sicuro;
  • il mascheramento per nascondere parti sensibili dei dati, ad esempio le cifre del numero di carta di credito, mostrandone solo una parte limitata agli utenti autorizzati;
  • la gestione delle chiavi crittografiche che devono essere archiviate in luoghi sicuri come hardware security modules (HSM) oltre che essere sottoposte ad una rotazione regolare.

3. Validazione e filtraggio delle richieste API

Un terzo livello di protezione riguarda la validazione e il filtraggio dei dati e delle richieste API. 

  • Implementazione di filtri per la validazione dei dati in ingresso per prevenire inserimenti di dati malevoli o non validi che potrebbero essere utilizzati per sfruttare vulnerabilità. Altra validazione può riguardare la tipologia dei dati, che deve essere corrispondente a quella dei dati attesi.
  • Sanitizzazione delle richieste per prevenire attacchi di injection. Gli attacchi di injection consistono nell’inserimento di dati malevoli all'interno delle richieste, con l'obiettivo di manipolare o compromettere il sistema. Nel contesto di SQL injection, ad esempio, gli aggressori cercano di inserire comandi SQL per ottenere accesso non autorizzato. Sanitizzare le richieste implica assicurarsi che i dati inviati dai client siano privi di caratteri speciali o sequenze che potrebbero essere interpretati come comandi SQL.
  • Limiti delle richieste. I limiti di frequenza delle richieste da parte di singoli utenti o indirizzi IP sono utili per prevenire attacchi di forza bruta o attacchi di raffreddamento, che utilizza un flusso elevato di richieste per sovraccaricare un sistema e renderlo inaccessibile.
  • Utilizzo di elenchi di controllo degli accessi per consentire solo richieste autorizzate. Sono dette ACL e sono le liste di controllo degli accessi che definiscono chi ha il permesso di accedere, a quali risorse e con quali azioni.

Migliori pratiche sicurezza delle API

4. Aggiornamenti regolari e best practices API

L’ultimo passaggio riguarda le migliori pratiche per sicurezza delle API da seguire.

  • Mantenimento delle API aggiornate con le ultime patch di sicurezza. Una pratica fondamentale per rilevare vulnerabilità e implementare aggiornamenti in grado di ridurle.
  • Monitoraggio continuo, implementando sistemi che rilevano attività sospette o anomalie nel traffico delle API.
  • Rilevamento delle minacce utilizzando dei sistemi in grado di identificare modelli di attacco noti o comportamenti inusuali.
  • Formazione e sensibilizzazione degli sviluppatori sulle buone pratiche di sicurezza, aspetto fondamentale per aggiornarsi sulle ultime minacce informatiche e sulle migliori pratiche di sviluppo sicuro delle API.
  • Gestione dei rischi e pianificazione di emergenza. Identificazione dei possibili rischi per la sicurezza delle API e sviluppo di un piano di mitigazione di risposta agli incidenti per ciascun rischio identificato, che definisca le azioni da intraprendere in caso di violazioni o attacchi.
  • Adozione delle best practices di sicurezza API raccomandate dal settore, ad esempio seguendo le linee guida dell'Open Web Application Security Project (OWASP), includendo la gestione delle autenticazioni e delle autorizzazioni, la crittografia, la gestione delle sessioni ecc. Inoltre è importante mantenere standard di sicurezza ampiamente riconosciuti, come OAuth per l'autenticazione e JWT per la gestione dei token, per garantire un'implementazione sicura.

Sicurezza API: conclusioni

In questo articolo abbiamo visto cosa sono le API, le vulnerabilità e gli attacchi cui sono soggette. Abbiamo visto quali possono essere le conseguenze per un’azienda che subisce un attacco del genere e quanto sia importante, quindi, una solida strategia di sicurezza API per proteggerle, anche nel settore logistico.

La protezione delle API è un processo lungo e complesso che richiede un impegno costante e una cultura della sicurezza integrata in ogni fase del loro sviluppo e della loro gestione. 

Il risultato però è un sistema pronto ad affrontare qualunque attacco esterno in grado di proteggere l’azienda da danni economici e di immagine.

Adriana Miccio

Come content writer appassionata di digital marketing la collaborazione con ShippyPro è una sfida continua che mi permette di unire la passione per la scrittura e la comunicazione al mondo della logistica, cercando ogni volta di fornire contenuti SEO che siano utili anche agli utenti.