MEGLIE PRATICHE API SECURITY 2023

API Security Best Practices in 2022

I MUVRINI

L'API sò critichi per u successu cummerciale. L'enfasi deve esse per assicurà a so affidabilità è a sicurezza. A maiuranza di i rispondenti à un sondaghju Salt Security 2021 hà dettu chì anu ritardatu u lanciamentu di una app per via di Sicurezza API preoccupazioni.

Top 10 Rischi di Sicurezza di l'API

1. Logging & surviglianza insufficiente

Quandu un attaccu prova di entra in un sistema, generanu trafficu irregulare. Usanu un metudu di furzà brute a vostra autentificazione contru i vostri inputs.

2. Impropriu Asset Management

L'API tendenu à avè più endpoints cà l'applicazioni Web tradiziunali.   A documentazione curretta è aghjurnata hè cruciale. Per evitari obsoleti API versioni è ospiti esposti duvete gestisce l'ospiti è datu versioni API. Duvete pruvà à riduce l'endpoint di debugger.

3. Iniezione

Vulnerabilità di iniezione, cum'è SQL o injections di cumanda, si verificanu quandu e dati micca affidati sò mandati direttamente à un interprete cum'è parte di una dumanda o dichjarazione. In u risultatu, l'attaccanti ponu ingannà l'interprete per eseguisce dichjarazioni impreviste o accede à e dati senza u permessu adattatu.

4. Misconfiguration di sicurezza

Cunfigurazioni di sicurezza poveri sò spessu dovute à cunfigurazioni predeterminate insecure.

  • Cunfigurazioni ad hoc incomplete
  • Apertura u almacenamentu in nuvola
  • Intestazioni HTTP misconfigurate
  • I metudi HTTP attivati ​​inutilmente
  • Sparte di risorse da diverse fonti
  • Output di messagi d'errore detallati chì cuntenenu rilevanti per a sicurità nantu à u corsu

5. Assegnazione di massa

L'assignazione di massa accade quandu u cliente hè vincolatu à mudelli di dati senza filtrazione curretta di e proprietà porta à una mappatura di massa. L'attaccanti ponu cambià e proprietà di l'ughjettu induvinendu.

6. Broken Function Level Authorization

L'autorizazione di u nivellu di funzione rottu pò accade quandu ci sò pulitiche cumplessi di cuntrollu di accessu cù diverse gerarchie, gruppi è roli. Una separazione chjaru trà e funzioni di l'amministratore è di l'utilizatori porta à debule in l'autorizazione. L'attaccanti ponu accede à e risorse d'altri utilizatori o funzioni di amministrazione.

7. Broken User Authentication

I meccanismi di autentificazione spessu permettenu à l'attaccanti di cumprumette i tokens di autentificazione o sfruttà l'errori di implementazione per impersonà temporaneamente o permanentemente altri utilizatori.

8. Excessive Data Exposure

In quantu à l'usu genericu di l'API, i sviluppatori tendenu à divulgà tutti l'attributi di l'ughjettu. I sviluppatori ponu espose l'attributi di l'ughjettu s'ellu ùn piglianu micca a cunfidenziale in contu. L'esposizione eccessiva di dati pò esse pruvucata da u latu di u cliente per filtrà e dati prima di mostra à l'utilizatore.

9. Mancanza di risorsa & Rate Limiting

U cliente o utilizatore pò esse dumandatu. Micca solu a mancanza di risorse è limitazione di a tarifa affettanu u rendiment di u servitore API è portanu à attacchi di denegazione di serviziu, ma lascia ancu a pussibilità di debule di autentificazione.

10. Auturizazione di livellu di ughjettu rottu

L'API tendenu à espose endpoints chì processanu l'identificatori di l'ughjettu, creendu una grande superficia d'attaccu in u cuntrollu di l'accessu. I cuntrolli di l'autorizazione à u nivellu di l'ughjettu duveranu include funziunalità chì accede à una fonte di dati attraversu input da l'utilizatore.

Cumu assicurà l'API SOAP

SOAP hè una specificazione di protokollu chì cumunica cù e pagine web. Hè un standard di l'industria W3C, furmatu XML. SOAP implementa un passaghju di missaghju stateful. SOAP si integra cù i protokolli WS-Security. SOAP pò guarantisci l'integrità è a cunfidenziale di e transazzione trattate cù più criptografia. Utilizendu XML, SOAP hè u stilu API più verbose.

SOAP hè una specificazione di protokollu chì cumunica cù e pagine web. Hè un standard di l'industria W3C, furmatu XML. SOAP implementa un passaghju di missaghju stateful. SOAP si integra cù i protokolli WS-Security. SOAP pò guarantisci l'integrità è a cunfidenziale di e transazzione trattate cù più criptografia. Utilizendu XML, SOAP hè u stilu API più verbose.

Cumu Secure Rest APIs

REST hè un stile di l'architettura API. REST hè una interfaccia simplice per trasferimentu d'infurmazioni. Quandu mandà dati, ùn ci hè micca stage cunversione. L'infurmazione mandata in a forma originale hà un effettu benefica nantu à a carica di u cliente. I dati sò in formati JSON o XML.

RESTful esigenze architettoniche:

  • Ùn cuntene u statu (apatride)
  • Caching. 
  • Interfaccia cumuna: Questu permette una interazzione coherente, indipendente da l'applicazione cù u webserver.

In REST, tutte e cumunicazioni utilizanu metudi HTTP: GET, POST, PUT, PATCH è DELETE. REST hè utilizatu cum'è API di gestione per CRUD (Create, Read, Update, and Delete). Installa interazzione cù risorse in servizii scalabili ligeri. Una risorsa hè di solitu un oggettu di mudellu di dati.

A Creazione di API RESTful sicure impone ancu certi requisiti standard:

  • Utilizà u protocolu HTTPS: l'operazione di criptu assicura l'integrità di e dati trasmessi. 
  • Rate-limits: Hè necessariu di verificà a carica nantu à l'API. Abbandunà e dumande in casu di sovraccarichi 
  • Autentificazione: Identificazione d'utilizatore / applicazione / dispositivo. 
  • Log d'audit: Azzione di registrazione creendu una voce in u schedariu di log. 
  • Cuntrolla di i diritti d'accessu: Determinazione di i diritti d'accessu per travaglià cù risorse.
  • Accessu à a logica cummerciale di l'applicazione.

Hè per cuncepimentu chì l'API REST ùn mantene nisun record. Ci hè una restrizione à l'accessu attraversu punti finali lucali. Quandu travaglia cù l'architettura REST. Hè abitudine distingue dui livelli di sicurità:

  • U primu livellu - accede à l'API
  • U sicondu livellu - uttene accessu à l'applicazione

Cumu assicurà l'API

Per assicurà a sicurità di l'API, l'urganisazioni devenu attente à e seguenti aree. 

  1. Cuntrollu di l'accessu
  2. Prutezzione API
  3. Protezione di eterna

U mudellu API Gateway

A megghiu pratica di sicurità hè di scaricà e responsabilità di sicurità à una porta di API. U gateway API reside trà u backend API è i cunsumatori. Intercepterà tutte e dumande da i cunsumatori è gestisce l'aspetti di sicurezza.

I sviluppatori API ponu fucalizza nantu à e funzioni di l'API di logica cummerciale. U gateway API gestisce a sicurità è u cuntrollu di l'accessu.

Controlu d'accessu API

U cuntrollu di l'accessu API si riferisce à u prucessu di determinà quale hà accessu à quale API. Chì funziunalità di queste API sò aduprate da altre applicazioni.

prucedimentu Il s'agit d'identifier l'entité qui demande l'accès à l'API. L'identificazione hè o validazione di se l'utilizatore cunnosce una password.

Autenticazione di basa

Stu metudu usa un prucessu di autentificazione HTTP. I credenziali di l'utilizatori sò codificati cù l'algoritmu base64. L'intestazione HTTP attaches quandu invià una dumanda.

L'autentificazione basica ùn hè micca abbastanza per prutege l'API contr'à tutti l'attacchi di sicurezza cumplessi. Almenu duie persone anu da sparte u nome d'utilizatore è a password. Un terzu pò accede à un serviziu assicuratu accedendu à e credenziali. OAuth risolve queste vulnerabilità.

Token OAuth

OAuth usa un token d'accessu. I credenziali ùn sò micca spartuti in modu direttu. Stu token hà una vita. Questu significa ancu chì u token ùn hè micca perpetu. Questu reduce a minaccia di furtu. U token usa scopes. Accessu risorse basate nantu à i roli assignati à l'utilizatore. Dunque, OAuth per assicurà l'API hè assai più sicura ch'è una password.

Autentificazione basatu in OIDC

OIDC - OpenID Connect. Questa autentificazione hè di verificà l'identità di l'utilizatore finale. Hè basatu annantu à l'autentificazione realizata da un servitore d'autorizazione. Ottene i dettagli di u prufilu nantu à l'utilizatore utilizendu u mecanismu REST-like.

Autenticazione basata nantu à a chjave API

A chjave API hè un valore di stringa passatu da una app cliente à a porta di l'APIM. A chjave di u cliente salva l'infurmazioni in a basa di dati di l'applicazione. U servitore verificarà l'identità di u cliente. Quandu un utilizatore si registra, u prugramma genera una chjave.

Sta strategia difende contr'à l'accessu indesideratu. Per limità u numeru di dumande API. A chjave API hà parechje manere, cumpresu cum'è un paràmetru di dumanda, in l'intestazione di a dumanda, è cum'è un valore di cookie.

Autentificazione basata in cookie

Un metudu di cuntrollà u cuntenutu di i cookies mantene tutte l'infurmazioni nantu à a sessione. L'utilizatore inizia una dumanda di login. Mandate una risposta dopu chì un utilizatore hà logged in. In l'intestazione di sta risposta, ci hè un campu Set-Cookies. Stu campu cuntene infurmazione nantu à:

  • u nome di u campu di cookie
  • u valore di u campu di cookie
  • quantu dura u biscottu

A prossima volta chì l'utilizatore hà bisognu à accede à l'API. Passarà u valore di u Cookie-field JSESSIONID salvatu cù a chjave "Cookie" in l'intestazione di a dumanda.

Autentificazione basata in token

Stu token hè dopu mandatu à u servitore in l'intestazione di a dumanda di Autorizazione. Dopu avè ricevutu u token, u servitore u valida. U servitore stessu genera tokens per novi utilizatori. A chjave, in uppusizione à i tokens, pò permette solu l'accessu à e chjama API senza a capacità di ottene e dati di l'utilizatori.

JSON Web Tokens (JWT)

Un mecanismu d'autentificazione basatu annantu à l'usu di un tipu speciale di token. Hè una struttura di dati JSON. Un token di stu tipu hà un capu chì cuntene infurmazione generale. Un corpu cuntene una carica utile (user-id, group, data) è una firma criptografica.

Questu approcciu hè u modu ottimale per restringe l'accessu à l'API REST. Hè unu di i meccanismi più sicuri per mandà dati trà dui partiti.

J.W.T. hè a tecnica primaria di cuntrollu di accessu per l'applicazione creata. U serviziu ùn si basa micca in risorse di terzu. I tokens sò simplici d'utilizà, anu un formatu di descrizzione di dati convenientu.

L'usu di u protocolu HTTPS in cumbinazione cù una firma criptografica furnisce un altu livellu di sicurità.

Quandu assicuratevi un serviziu web, u cuntrollu di input merita una attenzione particulari. Avete da assicurà chì qualsiasi dati nantu à quale l'applicazione operarà risponde à u standard API.

A cumunità di sviluppatori hà furmatu alcune raccomandazioni quandu validate i dati di input:

  • Per fà a validazione di dati sia da u cliente sia da u latu di u servitore
  • Per mette in locu u servitore permettenu listi, duvete aduprà e funzioni integrate 
  • Hè sempre necessariu di verificà u tipu di cuntenutu, a dimensione è a durata di a dumanda
  • Aduprate dumande parametrizzate invece di dumande manuali à a basa di dati in u backend
  • Per prufittà di u servitore permettenu listi
  • Per guardà logs di errori è monitorà i tentativi di fuzz inputs di dati

Autorizazione

U scopu di l'autorizazione hè di determinà i livelli di accessu.

Cuntrollu di Accessu basatu in XACML

XACML hè una lingua di pulitica di cuntrollu di l'accessu dichjarativa basata in XML, basata in XML. Pò furnisce un modu standardizatu di cunvalidà e dumande d'autorizazione. Definisce e pulitiche di cuntrollu di accessu.

Open Policy Agent OPA

L'OPA hè un mutore di pulitica open-source, di scopu generale. L'OPA specificarà a pulitica cum'è codice è l'API simplici per scaricà a decisione di pulitica. E decisioni pulitiche sò generate da evaluendu l'input di a dumanda è contru à e dati. Queste decisioni di pulitica determinaranu quali utilizatori ponu accede à e risorse.

Speedle +

Speedle+ hè un prughjettu open-source per affruntà i bisogni di cuntrollu di accessu. Esternalizza a logica di cuntrollu di accessu à un mutore di pulitica utilizendu un mecanismu di cuntrollu di accessu.

Note limitannu

Permette un accessu illimitatu à l'API ùn hè micca una bona pratica. A megliu suluzione hè di avè un mecanismu di limitazione di a tarifa.

A limitazione di a tarifa per prutege l'API serà utile in i seguenti modi:

  • Impedisce l'attacchi DDoS - Impedisce l'attaccanti da inundazione di una reta cù tantu trafficu. 
  • Mettite in piazza i piani di usu di l'API - Questu serà benefica quandu monetizà l'API. 
  • Infurzà e pulitiche d'usu ghjustu - Nimu pò cunsumà tutte e risorse o larghezza di banda attribuite.
  • Impedisce u sistema da sopra l'usu - Cù una limitazione di tarifu curretta. Hè pussibule di prutezzione di l'API è u backend da l'overuse improvvisu è i picchi di dumanda.

cunchiusioni

L'API sò avà essenziali in l'Internet mudernu è u sviluppu di l'app digitale. L'applicazioni, i servizii è e plataforme di software ponu aduprà per organizà l'interazzione. L'interfacce REST contanu più di 80% di tutte l'API publiche è proprietarie. Leghjite u nostru articulu nantu à COSA È UNA API per capisce megliu e distinzioni significative trà REST è SOAP API.