Vodič za sigurnost API-ja

Uvod
Šta je API ekonomija?
Sigurnost web API-ja
- REST (Prenos reprezentativnog stanja).
REST API sigurnost
SOAP API, sigurnost
SOAP API-ji pružaju ugrađeni sigurnosni mehanizam koji se zove Sigurnost Web usluga (WS Security). Provjeravaju autentifikaciju i autorizaciju. Koriste XML enkripciju, XML potpise i SAML tokene.
SOAP je pravi pristup za standardizaciju i šifrovanje Web usluga. SOAP je bolja alternativa od REST-a.
SOAP ograničava na XML, ali REST može upravljati bilo kojim formatom podataka. JSON je lakše razumjeti nego XML. Korišćenje REST-a za transport podataka štedi novac na troškovima računarske infrastrukture.
API upravljanje
Upravljanje API-jem pomaže preduzećima da naprave svoje digitalne resurse.
Ispod su neki načini za upravljanje sigurnošću API-ja:
1. Autentifikacija
HTTP Basic Authentication je metod za klijenta za autentifikaciju pomoću API Gateway-a.
2. OAuth2.0 Autentifikacija
- Tok lozinke korisničkog imena: gdje program ima direktan pristup korisničkim vjerodajnicama.
- Protok web servera: gdje server može zaštititi tajnu potrošača.
- Tok korisničkog agenta: koriste ga aplikacije koje ne mogu pohraniti tajnu potrošača.
3. JSON provjera autentičnosti web tokena
JWT token je JSON objekat i base64 kodiran i potpisan zajedničkim ključem. JWT osigurava da samo definirani korisnik može generirati jedinstveni token. JWT-ovi nisu šifrirani. Svako ko ima pristup tokenu će dobiti podatke.
Prednosti JWT-a
- Token sadrži sve informacije potrebne za autentifikaciju korisnika.
- Lako je izbjeći oslanjanje na centralizirane servere i baze podataka za autentifikaciju.
- Verifikacija podrazumeva proveru potpisa i nekoliko drugih faktora.
- JWT je token srednjeg vijeka trajanja s datumom isteka koji je naveden između nekoliko sedmica do dužeg
- Skalabilnost na savremenom hardveru web servera je laka…
4. HTTP potpisi
U JWT-u, zaglavlje autorizacije ima base64 kodirano i potpisano. Ako neko dobije JWT token i zahtjev, može ažurirati tijelo HTTP zahtjeva. HTTP potpisi omogućavaju klijentu da potpiše HTTP poruku. Dakle, oni drugi mogu dodirnuti zahtjev na mreži.
Amazon, Facebook i Google koriste HTTP potpise. U 2016. godini u praksu je ušlo potpisivanje HTTP poruka. To je nova specifikacija rada u toku. Prema ovoj specifikaciji, prednost potpisivanja HTTP poruke, u svrhu integriteta poruke od kraja do kraja. Klijent se može autentifikovati istim mehanizmom bez potrebe za mnogo petlji.
Razumijevanje sigurnosnih ranjivosti API-ja
OWASP je oduvijek bio glavni autoritet za najčešće i podmukle sigurnosne probleme koji se nalaze u softveru koji svakodnevno koristimo, a sve je podržano bogatim podacima.
Ako postoji bilo kakva osnova kojoj bi organizacije trebale težiti, to je osvajanje ovoga OWASP API Security Top 10 navedenih u nastavku.
OWASP API SECURITY TOP 1O
API1: Autorizacija na nivou slomljenog objekta
API2: Pokvarena autentifikacija
API3: Prekomjerna izloženost podacima
API4: Nedostatak resursa i ograničenja brzine
API5: Pokvarena funkcija Nivo Auth
API6: Mass Assignment
API7: Pogrešna konfiguracija sigurnosti
API8: ubrizgavanje
API9: Nepravilno upravljanje imovinom
API10: Nedovoljno evidentiranje i praćenje
NAJBOLJE PRAKSE API SIGURNOSTI
Evo nekih od najčešćih načina za poboljšanje sigurnosti API-ja:
- Utvrdite svoje ranjivosti.
Postoji potreba za ažuriranjem operativnih sistema, mreže i API komponenti. Potražite nedostatke koji mogu omogućiti napadačima pristup vašim API-jima. Njuškači otkrivaju sigurnosne probleme i prate curenje podataka.
- Postavite kvotu i prigušivanje.
Postavite kvotu koliko često vaši API-ji pozivaju i provjerite korištenje u historiji. Zloupotreba API-ja se obično pokazuje porastom broja poziva.
- Koristite API gateway da se povežete na svoj API.
API gatewayi su primarna tačka provedbe za API promet. To će vam omogućiti da kontrolirate i analizirate kako se vaši API-ji autentifikuju.
- Koristite tokene.
Kreirajte pouzdane identitete. Koristite tokene s tim identitetima za kontrolu pristupa uslugama i resursima.
- Koristite šifriranje i digitalne potpise.
Šifrirajte svoje podatke koristeći TLS. Koristite digitalne potpise da potvrdite da samo ovlašteni pojedinci imaju pristup podacima i uređuju ih.
- Fokusirajte se na sigurnost.
API-ji se nikada ne bi trebali smatrati slučajnim. Organizacije mogu mnogo izgubiti ako ne osiguraju API-je. Kao rezultat toga, postavite sigurnost kao prioritet i uključite je u svoje API-je.
- Potvrdite unos.
Nikada nemojte prenositi podatke krajnjoj tački putem API-ja bez da ih prethodno potvrdite.
- Iskoristite ograničenje stope.
Ograničavanje zahtjeva može pomoći u sprječavanju napada uskraćivanja usluge.
- Koristite robustan sistem autentifikacije i autorizacije.
Kada API-ji ne provode autentifikaciju, dolazi do prekida autentifikacije.
Koristite tehnologije za prijavu i autorizaciju koje su dobro uspostavljene, kao što su OAuth2.0 i OpenID Connect.