Įsilaužėliai dažnai taikosi ne į duomenų šaltinį, o į pačią API.

Programų programavimo sąsajų (API) naudojimas smarkiai išaugo. Dabar organizacijos naudojasi keliomis API, kad galėtų efektyviai atlikti kasdienes funkcijas. Dėl augančio API naudojimo API įsilaužėlių radarai atsidūrė, todėl jie sugalvojo naujoviškų būdų, kaip išnaudoti API pažeidžiamumą.

Kodėl API saugumas yra labai svarbus ir ką galite padaryti, kad valdytumėte API saugumo riziką? Išsiaiškinkime.

Kodėl turėtumėte sutelkti dėmesį į API saugumą?

API yra labai svarbios šiuolaikinėse mobiliosiose, SaaS ir žiniatinklio programose. Organizacijos naudoja API klientų, partnerių ir vidinėse programose. Kadangi API atskleidžia programų logiką ir neskelbtini duomenys, pvz., asmens identifikavimo informacija (PII), įsilaužėliai nuolat stengiasi gauti prieigą prie API. Įsilaužusios API dažnai sukelia duomenų pažeidimus, dėl kurių organizacijoms daroma finansinė ir reputacija.

Pagal Palo Alto Networks ir ESG tyrimai92 procentai apklaustų įmonių 2022 m. patyrė su API susijusį saugumo incidentą. Iš šių įmonių 57 procentai įmonių turėjo kelis su API susijusius saugumo incidentus. Be to, labai svarbu sustiprinti API saugumą, kad būtų išvengta API atakų.

instagram viewer

Štai keletas būdų, kaip sumažinti įprastą API saugos riziką ir apsaugoti neskelbtinus duomenis.

1. Įdiekite saugų autentifikavimą ir autorizavimą

Autentifikavimas reiškia, kad užklausa pasiekti API šaltinį gaunama iš teisėto vartotojo, o įgaliojimas užtikrina, kad vartotojas turi teisę pasiekti prašomo API šaltinio.

Saugus įgyvendinimas saugus API autentifikavimas o autorizacija yra pirmoji gynybos linija nuo neteisėtos prieigos prie jūsų API išteklių.

Čia pateikiami pagrindiniai API autentifikavimo metodai.

API raktas

Taikant šį autentifikavimo metodą, klientas turės API raktą, kurį žino tik klientas ir API serveris. Kai klientas siunčia užklausą pasiekti API išteklius, prie užklausos pridedamas raktas, kad API žinotų, jog užklausa yra teisėta.

Iškilo API rakto autentifikavimo metodo problema. Įsilaužėliai gali pasiekti API išteklius, jei jie turi API raktą. Taigi, labai svarbu užšifruoti API užklausas ir API atsakymus, kad įsilaužėliai nepavogtų API raktų.

Vartotojo vardas ir slaptažodis

Galite įdiegti vartotojo vardo ir slaptažodžio metodą, kad patvirtintumėte API užklausas. Tačiau žinokite, kad įsilaužėliai samdo įvairių gudrybių nulaužti slaptažodžius. API klientai taip pat gali bendrinti savo vartotojo vardus ir slaptažodžius su nepatikimomis šalimis. Taigi vartotojo vardo ir slaptažodžio metodas nesuteikia optimalaus saugumo.

Abipusis TLS (mTLS)

Taikant abipusį TLS autentifikavimo metodą, tiek API galutiniai taškai, tiek klientai turi TLS sertifikatą. Ir jie patvirtina vienas kitą naudodami šiuos sertifikatus. TLS sertifikatų priežiūra ir vykdymas yra sudėtingas, todėl šis metodas nėra plačiai naudojamas API užklausoms autentifikuoti.

JWT autentifikavimas (JSON žiniatinklio prieigos raktas)

Taikant šį API autentifikavimo metodą, JSON žiniatinklio prieigos raktai naudojami API klientams autentifikuoti ir autorizuoti. Kai klientas siunčia prisijungimo užklausą, įskaitant vartotojo vardą, slaptažodį ar bet kokio kito tipo prisijungimo kredencialus, API sukuria užšifruotą JSON žiniatinklio prieigos raktą ir siunčia jį klientui.

Tada klientas naudos šį JSON žiniatinklio prieigos raktą vėlesnėse API užklausose, kad patvirtintų ir įgaliotų save.

OAuth2.0 su OpenID Connect

„OAuth“ siūlo autorizavimo paslaugas, leidžiančias vartotojams autentifikuoti save nesidalijant slaptažodžiais. OAuth2.0 yra pagrįstas žetonų sąvoka ir dažnai naudojamas su „OpenID Connect“. autentifikavimo mechanizmas. Šis API autentifikavimo ir autorizacijos metodas dažniausiai naudojamas API apsaugai.

2. Įgyvendinti vaidmenimis pagrįstą prieigos kontrolę

Role-Based Access Control (RBAC), kuri naudoja saugą mažiausios privilegijos principas, nustato prieigos prie šaltinio lygį pagal vartotojo vaidmenį.

Įgyvendinant vaidmenimis pagrįstą prieigos valdymą, užtikrinama, kad tik įgalioti vartotojai galės prieiti prie duomenų pagal savo vaidmenis. Nė vienas neturės neribotos prieigos prie visų API išteklių.

3. Užšifruokite visus prašymus ir atsakymus

API srautas dažnai apima neskelbtiną informaciją, pvz., kredencialus ir duomenis. Įsitikinkite, kad visas tinklo srautas (ypač visos gaunamos API užklausos ir atsakymai) yra užšifruotas naudojant SSL/TSL šifravimą. Duomenų šifravimas neleidžia įsilaužėliams atskleisti vartotojo kredencialų ar bet kokio kito tipo jautrių duomenų.

4. Naudokite API šliuzą

Jei nenaudojate API šliuzo, turėsite įterpti kodą programoje, kad ji galėtų nurodyti programai, kaip tvarkyti API skambučius. Tačiau šis procesas reikalauja daugiau kūrimo darbo ir gali padidinti API saugumo riziką.

Naudodamos API šliuzus, įmonės gali valdyti API skambučius iš išorinių sistemų per centrinį šliuzą, esantį už programų programavimo sąsajos ribų.

Be to, API šliuzai taip pat palengvina API valdymą, padidina API saugumą ir pagerina mastelį bei pasiekiamumą.

Populiarūs API šliuzai apima Amazon API šliuzas, Azure API šliuzas, Oracle API šliuzas, ir Kongo vartai.

5. Įgyvendinti tarifo ribojimą

API spartos limitas leidžia nustatyti API užklausų arba skambučių, kuriuos klientas gali atlikti į jūsų API, apribojimą. API dažnio apribojimų vykdymas gali padėti išvengti Paskirstytos paslaugų atsisakymo (DDoS) atakos.

Galite apriboti API užklausas per sekundę, minutę, valandą, dieną arba mėnesį. Ir jūs turite įvairių parinkčių, kaip įdiegti API greičio apribojimus:

Kai įgyvendinsite „Hard Stop“, jūsų klientai gaus 429 klaidą, kai pasieks savo limitą. Programoje „Soft Stop“ jūsų klientai turės trumpą atidėjimo laikotarpį, kad galėtų atlikti API iškvietimus, kai pasibaigs API dažnio limitas. Taip pat galite įdiegti Throttled Stop, kad jūsų klientai galėtų teikti API užklausas, kai tik bus pasiektas limitas, bet lėčiau.

API dažnio ribojimas sumažina API saugumo grėsmes ir sumažina užpakalines išlaidas.

6. Apriboti duomenų ekspoziciją

Įsitikinkite, kad atsakymai į API užklausą nepateikia daugiau duomenų, nei yra svarbu ar būtina. Jei API iškvietimas skirtas pašto kodui, jame turėtų būti pateikiamas tik pašto kodas, o ne visas adresas.

Jei API atsakymuose rodoma kuo mažiau, pailgėja atsako laikas.

7. Patvirtinkite parametrus

API užklausoms reikia kelių įvesties parametrų. Kiekvienai API užklausai jūsų API rutina turi patvirtinti kiekvieno parametro buvimą ir turinį. Taip apsaugomas API vientisumas ir neleidžiama apdoroti kenkėjiškos ar netinkamai suformuotos įvesties.

Niekada neturėtumėte apeiti parametrų patvirtinimo patikrų.

8. Stebėkite API veiklą

Sudarykite API veiklos stebėjimo ir registravimo planą. Tai gali padėti aptikti įtartiną grėsmės veikėjų veiklą anksčiau, nei jie darys jokios žalos jūsų API serveriui arba API klientams. Pradėkite registruoti visus API skambučius ir atsakymus.

Įvairios priemonės, pvz Sematekstas, „Dotcom-Monitor“., arba Patikimai, padės stebėti savo API realiuoju laiku.

9. Reguliariai tikrinkite API saugumą

Nepaverskite API saugumo testavimo tik API kūrimo proceso dalimi. Vietoj to nuosekliai tikrinkite tiesioginės API saugumą. Tai padės jūsų saugos komandai nustatyti netinkamą saugos konfigūraciją ir API spragas, kurių kūrimo komanda galėjo nepastebėti API diegimo etape.

Be to, jūsų apsaugos komanda turėtų sukurti reagavimo į incidentą planą tvarkyti bet kokį API saugumo incidentą.

Valdykite API saugos riziką, kad apsaugotumėte vertingus duomenis

Organizacijoms vis dažniau diegiant API savo skaitmeninės transformacijos procesuose, grėsmės veikėjai nuolatos ieško API spragų, kurias galėtų išnaudoti. Gavę prieigą prie jūsų API, jie gali pavogti neskelbtinus duomenis. Taigi, norėdami sumažinti API saugumo riziką, turite pagerinti API saugumą.