Gospodarstvo vtičnikov API in varnostni izzivi
Programabilni vtičniki API so informatikom in razvijalcem omogočili, da medsebojno povežejo najrazličnejše sisteme, aplikacije, storitve in vsebine, toda zagotavljanje varnosti hiperpovezanih okolij in vsebin je seveda velik izziv.
Pomen vtičnikov API v gospodarstvu narašča iz leta v leto. Tudi v Sloveniji se podjetja vse bolj zavedajo priložnosti in pomena novih vrednostnih verig ter novih poslovnih modelov, ki jih ti omogočajo. Vedno več je primerov poslovnih modelov in procesov, v katerih lahko podjetja sodelujejo le, če imajo uspešno izpostavljene API in če imajo vzpostavljene kompetence, kako uporabljati API podjetij, s katerimi sodelujejo.
Oglejmo si nekaj primerov. Prodaja vstopnic za različne dogodke temelji na uporabi API različnih ponudnikov, različne rešitve, od spletnih do mobilnih aplikacij, pa uporabljajo vtičnike različnih ponudnikov. Uporaba vtičnikov API narašča na področju zavarovalništva, kjer se določene oblike zavarovanja, npr. nezgodno ali turistično, že tržijo prek njih. V tem primeru lahko spletna trgovina, ki prodaja gorska kolesa ali aktivne počitnice, stranki ponudi tudi zavarovanje, ki ga stranka kupi kar kot del enotnega procesa nakupa v trgovini, samo zavarovanje pa se izvede v ozadju s klicem ustreznih API.
Najbolj bomo občutili reformo v svetu plačil
Za vtičnike API pomembno področje je tudi bančništvo, saj direktiva PSD2 nalaga bankam, da odprejo svoje sisteme preko API in omogočijo dostop tretjim osebam. Kaj to pomeni v praksi? Predvsem dvoje: ker bo mogoče prek vtičnikov dostopati do podatkov o računih strank v posameznih bankah, se pospešeno razvijajo rešitve za boljše ali bolj prilagojene uporabniške izkušnje, ki bodo, na primer, uporabnikom omogočile upravljanje računov več bank na enem mestu in še marsikaj drugega. Druga, še pomembnejša novost pa je, da za digitalno (spletno, mobilno) plačevanje ne bodo več potrebne plačilne kartice, PayPal in podobni sistemi, saj bodo lahko spletne trgovine plačilo izvedle neposredno pri banki prek uporabe ustreznih API. Takih primerov je še veliko, vse pa povezuje neizpodbitno dejstvo, da vtičniki API postajajo pomemben poslovni instrument.
Poslovni API
Eden od problemov razvoja vtičnikov API predstavlja dejstvo, da je celo stroka kratico API (angl. Application Programming Interface) do nedavnega razumela kot popolnoma tehnični koncept, povezan s programiranjem. Razvijalci in programerji uporabljajo API že desetletja kot način za komunikacijo med različnimi deli in ravnmi aplikacij, operacijskih sistemov ter nivoji »nekega računalniškega sistema«.
Poslovni API na drugi strani pa prek tehnoloških vmesnikov izpostavljajo poslovne operacije, katerih namen je omogočati in podpirati določene modele poslovanja, zato je za podjetja zelo pomembno, da se začno zavedati, da so API postali poslovni člen, pri načrtovanju katerega morajo sodelovati.
»Ko podjetja gradijo svoje API-vmesnike, so ti navadno strukturirani v nekaj nivojev. Najvišji nivo API, torej tiste, ki so namenjeni poslovnemu povezovanju s partnerji, imenujemo izkustveni API. Njihov namen je, da na učinkovit, nezapleten in poslovno smiseln način izpostavljajo operacije in podatke tako, da bo integracija ostalih deležnikov, na primer mobilnih in spletnih rešitev, partnerskih sistemov, tržnic in podobno, čim bolj učinkovita, hitra in preprosta,« je pojasnil prof. dr. Matjaž B. Jurič, ki se že desetletja ukvarja z vtičniki API.
Marsikdo se niti ne zaveda, kako zahtevno (beri: kompleksno) je zgraditi ustrezen nabor izkustvenih API ter ob tem vzpostaviti celoten življenjski cikel, ki obsega razvoj, posodobitve, spremljanje, celostno skrb za uporabnike API in vse ostale vidike. To je eden glavnih odgovorov, zakaj podjetjem ponavadi v prvem poskusu ne uspe zgraditi ustreznih API-jev ali pa njihov razvoj traja predolgo. Najslabša možnost je, da podjetje ponudi slabe API in se tega niti ne zaveda. Tako podjetje bo živelo v iluziji, da je za razvoj »API-ekonomije« naredilo dovolj ter se morda prepričevalo, da se preko vtičnikov API pač ne da ustvarjati prometa, karavana pa ga bo prehitela po levi in desni.
»Tedensko smo priče primerom, ko podjetja ponujajo tako slabe API, da se jih enostavno ne da vključiti v vrednostne verige. Npr. ponudniki plačilnih storitev ali e-denarnic, ki jih podjetja želijo vključiti v svoje spletne ali mobilne trgovine, ne ponujajo dvostopenjskega mehanizma izvedbe plačila (rezervacija in izvedba). Taki API so za resno poslovanje tako rekoč neuporabni. Niso pa to edini primeri,« razlaga prof. Jurič.
(Ne)varnost vtičnikov API
Glede na poslovni pomen API je na mestu vprašanje, kako jih ustrezno zavarovati. Posebej takrat, ko so uporabljeni kot temelj za poslovne transakcije, je varnosti treba posvetiti veliko pozornosti. Najprej se velja zavedati varnostnih tveganj pri razvoju in uporabi API.
Rok Povše, direktor projektov v podjetju Sunesis, ki se ukvarja z razvojem poslovnih API in mikrostoritev, je pojasnil: »Pri razvoju poslovnih API je z varnostnega vidika ključno dvoje. Ustrezne varnostne mehanizme je treba načrtovati in vgraditi že med razvojem. Poleg tega je treba poskrbeti za operativne vidike varnosti, kar vključuje spremljanje izvajanja API, zaznavanje nepooblaščenih pristopov, identifikacijo napadov DDoS in vse ostalo, kar je s tem povezano. Katere varnostne mehanizme uporabiti, pa je odvisno tudi od tehnologije API, ki je lahko REST, Kafka, gRPC, uporaba reaktivnih programskih modelov itn.«
Izpostavljanje občutljivih podatkov
Med največje varnostne težave API vsekakor sodi izpostavljanje občutljivih podatkov tretjim osebam, ki lahko prek klic API do teh podatkov dostopajo, ne da bi bili za to pooblaščene. V zadnjem obdobju smo bili priče številnim primerom tovrstnih zlorab. Facebook je prek svojih API nehote izpostavljal številne podatke o uporabnikih, enako se je (z)godilo Googlu s storitvijo Google+. Nedavno je ameriški zavarovalnici First American Financial Corp. na internet ušlo vsaj 885 milijonov osebnih podatkov. Podobno usodo so doživele nekatere slovenske spletne trgovine.
Nepopolna avtentikacija
Druga pogosta varnostna težava vtičnikov API je nepopolna ali nedelujoča avtentikacija, ki zlonamernemu uporabniku omogoči, da dostopa do operacij vtičnika in tako do podatkov, čeprav napadalec za to ni pooblaščen. »Sodobni API danes za avtentikacijo pogosto uporabljajo rešitvi OAuth2 in OpenID Connect, a bi morali razvijalci aplikacij dovolj pozornosti posvetiti pravilni uporabi žetonov, njihovi veljavnosti, postopkom in protokolom avtentikacije, ustreznemu načrtovanju celotnih postopkov, sami implementaciji in izbiri avtentikacijskih strežnikov, ki morajo biti tudi pravilno konfigurirani«, je pogoste vzroke za napake izpostavil Povše.
Napadi DDoS
API so pogosto tarče napadov s prekinitvijo delovanja storitve (DoS ali DDoS), podobno kot spletne strani. Razlika je le v tem, da je preobremenitev vtičnika API pogosto veliko bolj preprosto doseči pa še posledice so lahko hujše. Napadeni API se namreč neha delovati, to pa pomeni neposredno poslovno škodo. Preprečevanje napadov DDoS na API je kompleksno in zahteva več sklopov ukrepov. Prvi se nanaša na samo zasnovo vtičnikov, kjer velja upoštevati nekaj osnovnih pravil.
»API nikoli ne zvežemo neposredno na zaledni sistem, ampak vedno postavimo vmesni nivo, ki odklopi API od zalednega sistema. Lahko si pomagamo tudi z nivojem predpomnenja. S tem preprečimo, da bi DDoS-napad na API zrušil tudi zaledni sistem – predstavljajte si, da se to zgodi kaki banki ali zavarovalnici. Drugi pomemben vidik pa je ta, da nikoli ne omogočimo neposrednega dostopa do API, ampak to storimo preko API-prehoda, pri čemer izberemo taka vrata, ki znajo zaznavati vzorce klicev oziroma DDoS-napade in ustrezno omejiti dostop. API velja namestiti na elastično platformo in infrastrukturo tipa Kubernetes. S tem omogočimo, da API preživi prvi del napada, dokler vrata ne zaznajo preobremenitve in zato omejijo dostop. Zadnji sklop ukrepov pa je učinkovit nadzor oziroma spremljaje delovanja vtičnikov,« je strnil svoja priporočila prof. Jurič.
Človek v sredini
Napad tipa »man in the middle« je že vrsto let znana varnostna nevšečnost, zato je treba tudi API ustrezno zavarovati pred tovrstnimi napadi, pri katerih bi napadalec lahko prestrezal zahteve in serviral lažne odgovore/podatke. Na srečo je pri tem učinkovita že uporaba šifrirnih protokolov TLS/SSL, zato danes velja, da mora vsa komunikacija z API, tudi taka, ki se nam zdi, da ni varnostno občutljiva, obvezno potekati prek zaščitenih povezav.
Vrivanja in napačni parametri
Med varnostnimi tveganji v svetu vtičnikov API velja omeniti še t. i. vrivanja podatkov in uporabo napačnih parametrov, katerih namen je pridobitev nepooblaščenega dostopa. »Oba pristopa sta razvijalcem dobro znana in proti njim se borimo s striktnim preverjanjem parametrov, URL-naslovov in vseh ostalih vrednosti, npr. piškotkov, poizvedb itd. Poleg tega moramo poskrbeti, da bo programska koda, ki iz API omogoča dostop do zalednih sistemov, podatkovnih zbirk in drugih virov, napisana tako, da ji vrivanja in napačni parametri ne bodo prišli do živega,« je še pojasnil Povše.
Z API ni šale
Pod črto so principi zagotavljanja varnosti in zaščite vtičnikov API kompleksni, vendar dobro definirani. Z njihovo varnostjo se morajo podjetja oziroma razvijalci ukvarjati že pri načrtovanju in razvoju ter jo udejanjati skozi celoten življenjski cikel in delovanje posameznega API. Le tako lahko zagotovijo njihovo nemoteno, varno in učinkovito delovanje. Glede na njihov pomen in vlogo v gospodarstvu to zagotovo zaslužijo.