Sigurnost

Sigurnost API-ja: pet propusta koje senior inženjeri previđaju

Nije svaki sigurnosni problem vidljiv u code reviewu — neki žive u pretpostavkama o okruženju i ponašanju klijenata.

Tamni terminalski prikaz zapisa API zahtjeva s tirkiznim naglascima

Propusti koji preživljavaju security review

Senior inženjeri znaju provjeriti SQL injection, neispravnu autorizaciju i nezaštićene endpointe. Ali postoje kategorije propusta koje su suptilnije — ne zato što su nepoznate, već zato što su skrivene u interakcijama između komponenti koje se svaka zasebno čine ispravnom. Prvi propust koji često prolazi nezapaženo jest nepropisno upravljanje token revokacijom u sustavima koji koriste kratkoživuće JWT tokene. Kada korisnik mijenja lozinku ili mu se oduzimaju privilegije, sustav koji se oslanja isključivo na expiry time tokena ostaje ranjiv za preostalo trajanje tokena — u sustavima s 15-minutnim expiry intervalom, to je dovoljno prozora za napad. Drugi propust je pretjerano povjerenje prema internim mikroservisima: kada service A poziva service B unutar iste mreže, autorizacija se često preskače pod pretpostavkom da je interna mreža sigurna. Treći propust vezan je uz GraphQL introspection koji ostaje omogućen u produkciji, dajući napadačima potpunu mapu podatkovnog modela. Četvrti su nesimetrični rate limiteri koji štite ulogirane korisnike ali ne i anonimne pozive na autentikacijske endpointe. Peti i često najteži za detektirati jest SSRF (Server-Side Request Forgery) putem URL parametara koji se prosljeđuju internim HTTP klijentima bez validacije domene. Svaki od ovih propusta ima konkretna rješenja koja ne zahtijevaju arhitekturalne promjene, ali zahtijevaju eksplicitnu odluku i implementaciju, ne samo pretpostavku da su standardni alati dovoljni.

Sljedeći put: autorizacijski modeli u mikroservisima

Pratite Vividrpulse i budite prvi koji čita nastavak ove serije.

Pretplatite se