API sauga

API saugumas buvo vykdymo laiko problema. Ji nebūtinai turi būti

Kiekvienas pull request Pridėjus arba pakeitus galinį tašką, pasikeičia jūsų API atakos paviršius. Dauguma API saugumo įrankių to nepastebi, kol tas galinis taškas nėra aktyvus ir jau priima srautą. Tuomet pataisymas nebėra vienos eilutės pakeitimas kodo peržiūroje, o incidento atsako pokalbis.

API saugumas – tai praktika, kuria siekiama rasti ir pašalinti rizikas, susijusias su tuo, kaip programa pateikia savo galinius taškus: kas gali juos iškviesti, kokius duomenis jie grąžina ir ar jie atlieka tai, kas nurodyta dokumentacijoje.

Dauguma šiai problemai skirtų įrankių testuoja API vykdymo metu, iš išorės, taip pat, kaip tai darytų užpuolikas. Šis metodas veikia, bet tik po to, kai API jau įdiegtas. Ksigeni pasirenka ankstesnį kelią: jis nuskaito jūsų šaltinio kodą ir API specifikaciją dar prieš tai, kai viena užklausa pasiekia galinį tašką.

Keturi API testavimo būdai ir į ką kiekvienas iš jų atsako

Dauguma brandesnių programų vykdo daugiau nei vieną iš šių:

  • Statinis testavimas analizuoja šaltinio kodą ir API specifikacijas prieš diegimą. Jis atsako į klausimą „ką mes ką tik atskleidėme?“. Būtent šiam požiūriui ir skirtas šis straipsnis.
  • Dinaminis testavimas (DAST) siunčia realų srautą veikiančiai API ir stebi, kaip ji reaguoja. Jis atsako į klausimą „kas iš tikrųjų yra pasiekiama ir išnaudojama šiuo metu?“. 
  • Sumišęs meta neteisingai suformuotą arba netikėtą įvestį galiniuose taškuose, dėl kurių įvyksta paviršiaus gedimai ir kraštinių atvejų gedimai. Jis atsako į klausimą „kokių įvesties gedimų mes nenumatėme?“.
  • Rankinis skverbties testavimas prideda žmogaus sprendimą, kad aptiktų logikos spragas, kurių nepastebi automatizuoti įrankiai. Tai atsako į klausimą „ką sumanus užpuolikas sujungtų?“.

Nei vienas iš jų nepakeičia kitų. Jie atsako į skirtingus klausimus skirtingais gyvavimo ciklo etapais, o dauguma programų turi būtent pirmąjį spragą.

Kodėl dauguma API saugumo įrankių riziką pastebi per vėlai

Vykdymo laiko API saugumo testavimas siunčia srautą į veikiančią programą ir stebi, kaip ji reaguoja. Tai teisėtas ir būtinas sluoksnis. Jis taip pat yra vėlavimo indikatorius: galinis taškas turi egzistuoti, būti įdiegtas ir pasiekiamas, kad vykdymo laiko skeneris galėtų ką nors apie jį pasakyti. Viskas, ką jis randa, jau buvo paveikta tiek laiko, kiek užtruko skenavimas.

Po šia laiko problema slypi ir antra spraga. Vykdymo laiko įrankiai gali patikrinti tik tai, ką žino esant. Jei galinis taškas niekada nebuvo dokumentuotas arba „OpenAPI“ specifikacija pasensta nuo tada, kai kas nors išsiunčia naują maršrutą, vykdymo laiko skaitytuvas neturi jokio būdo žinoti, kad jis egzistuoja. Jis tikrina žemėlapį, o ne teritoriją.

Statinis API saugumo testavimas užpildo abi spragas, perkeldamas patikrinimą ten, kur apibrėžtas galinis taškas: jūsų kodas ir jūsų API specifikacija, prieš diegimą. Tas pats pull request kuris įveda galinį tašką, yra pull request kuris atskleidžia savo riziką.

Ką iš tikrųjų reiškia statinis API saugumas

„Xygeni“ kuria jūsų API inventorių iš dviejų šaltinių: jūsų programos šaltinio kodo ir jūsų API specifikacijų, įskaitant „OpenAPI“ ir „Swagger“.

Tik specifikacijų inventorius rodo galinius taškus, kuriuos kažkas prisiminė dokumentuoti. Tik kodo inventorius rodo, kas egzistuoja, bet nebūtinai kaip tai buvo numatyta naudoti. Perskaičius abu, susidaro išsamus vaizdas: galinius taškus, kuriuos dokumentavo jūsų komandos, ir tuos, kurių niekas nedokumentavo.

Tas inventorius yra pagrindas, ant kurio statoma visa kita:

  • Bendras aptiktų API ir rizikingų išteklių skaičius, palyginti su pradiniais rodikliais
  • Galiniai taškai, suskirstyti pagal HTTP metodą
  • Problemos sugrupuotos pagal paslaugą
  • Kiekvienas galinis taškas su savo metodu, keliu, paslauga, moduliu, autentifikavimo būsena ir rizikos balu

Jūsų inžinieriai, dirbantys su potencialiais inžinieriais, mato jūsų API paviršiaus formą neatidarę nė vienos užklausos.

Kiekvienas „Xygeni“ rastas galinis taškas su savo metodu, autentifikavimo būsena ir rizikos balu buvo sukurtas iš kodo ir specifikacijos kartu.

Production note Apkirpkite AI triažo skydelį iš bet kurios API saugumo ekrano kopijos.

Priskirta prie OWASP API saugumo geriausių 10

Išvados atspindi sistemą, kurią jau naudoja jūsų saugumo komandos ir auditoriai. „Xygeni“ aptinka riziką visoje OWASP API sąsajoje. 10 geriausi (2023):

OWASP Rizika Ką tai reiškia praktikoje
API1 Sugadintas objekto lygio leidimas Galinis taškas grąžina arba modifikuoja duomenis, priklausančius kitam vartotojui arba nuomininkui.
API2 Neautentifikuoti galiniai taškai Maršrutas pasiekiamas be jokios autentifikacijos
API3 Per didelis duomenų kiekis Atsakymas grąžina daugiau laukų, nei skambinančiajam reikia arba turėtų matyti
API3 Masinis priskyrimas Galinis taškas priima ir taiko laukus, kurių jis niekada neturėjo priimti
API3 / API10 Atsakymuose pateikti jautrūs duomenys Asmeniškai asmeniška informacija (PCI) arba apsaugota informacija (PHI) pasiekia klientą iš galinio taško, į kurį ji neturėtų būti siunčiama.
API4 Trūkstami tarifų apribojimai Galinis taškas nėra apsaugotas nuo piktnaudžiavimo ar „brute-force“ iškvietimų
API5 Sugedusio funkcinio lygio autorizacija Galinis taškas atlieka privilegijuotą veiksmą nepatikrindamas, ar skambinančiajam leidžiama
API7 SSRF API galima apgauti ir priversti jį pateikti užklausas užpuoliko vardu.
API8 JWT neteisinga konfigūracija Neteisingai nustatytas prieigos rakto patvirtinimas, pasirašymas arba galiojimo laikas
API8 CORS neteisinga konfigūracija Kryžminės kilmės taisyklės yra pakankamai liberalios, kad jas būtų galima išnaudoti
API9 Zombių ir našlaičių galiniai taškai Nebenaudojami arba pamiršti maršrutai, kurie vis dar pasiekiami, ir maršrutai, kurie niekam nepriklauso

Viena kategorija sąmoningai praleidžiama. API6 (neribota prieiga prie jautrių verslo srautų) reikalauja suprasti, ką verslo procesas turėtų leisti, ir joks statinis analizatorius to patikimai neaptinka. Bet kuris tiekėjas, teigiantis kitaip, jums parduoda žymimąjį langelį. Tas langelis lieka jūsų grėsmių modeliavimui ir įsiskverbimo testuotojams.

Ne kiekvienas radinys yra vienodas: duomenų jautrumas ir toksiški deriniai

Plokščias išvadų sąrašas traktuoja neautentifikuotą sveikatos patikros galinį tašką taip pat, kaip ir neautentifikuotą galinį tašką, kuris grąžina klientų įrašus. Tai nėra ta pati problema, o prioritetizavimo modelis, kuris juos vertina identiškai, apmoko jūsų komandas ignoruoti sąrašą.

„Xygeni“ klasifikuoja kiekvieno galinio taško tvarkomus duomenis, pažymėdama asmeninę informaciją (PCI) ir saugomą informaciją (PHI) užklausos parametruose ir atsakymuose, ir susieja tai su galinio taško autentifikavimo būsena.

Taip pat sistema susieja išvadas, kurios patenka į tą patį galinį tašką, ir padidina jų svarbos laipsnį, kai jos susijungia. Asmeniškai asmeniškos informacijos nutekėjimas atsakyme pats savaime yra rimtas radinys. Tas pats nutekėjimas galiniame taške, kuriam nereikia autentifikavimo, yra kritinis, ir platforma jį įvertina tokiu būdu, užuot palikusi ryšį kam nors rankiniu būdu pastebėti.

Zombių ir našlaičių galiniai taškai: skirtumas tarp kodo ir specifikacijos

Kadangi „Xygeni“ skaito jūsų kodą ir API specifikaciją kartu, ji mato jų nesutapimus. Šis poslinkis pasireiškia trimis atpažįstamais modeliais:

  • Nedokumentuoti galiniai taškai. Jie yra įrašyti kode ir niekada nebuvo įtraukti į specifikaciją.
  • Zombių galiniai taškai. Jie pažymėti kaip nebenaudojami arba išėję iš darbo, bet vis dar pasiekiami.
  • Retieji galiniai taškai. Niekas dabartinėje komandoje jų neturi.

Nei vienas iš jų nerodomas tik specifikacijoms skirtame inventoriuje, nes būtent specifikacijoje jų trūksta.

Įrodymai, kuriais galite remtis, o ne bilietas tyrimui

Kiekvienas radinys nurodo tikslų atsakingą tvarkytoją: failą, klasę, metodą ir konkrečią eilutę, kurioje atsirado klaida, kartu su ja pateikiamu pažeidžiančiu kodu. Kiekvienas radinys taip pat nurodo savo pavojingumo laipsnį, OWASP API saugumo dešimtuko kategoriją, CWE, galinio taško autentifikavimo būseną ir susijusių duomenų jautrumo klasifikaciją.

Radinys, kuris tik įvardija galinį tašką, priverčia kūrėją ieškoti kodo bazėje, kol jis dar gali pradėti ką nors taisyti. Radinys, kuris įvardija eilutę, padeda jam nedelsiant rasti taisymą.

Išvados eksportuojamos kaip JSON, CSV, „Markdown“ ir SARIF 2.1.0, todėl jos patenka į aplanką „t“.įrankiai, kuriuose jūsų komandos jau dirba. 

Apdorotojas, eilutė ir kodas, kurie sukėlė užkrėtimą. Ne užklausa, kurią reikėtų ištirti.

Kodėl tai yra vienoje platformoje, o ne kitoje konsolėje

„Xygeni“ kartu su API apsauga valdo SAST, SCA, Paslaptys Saugumas, IaC bei PASKUTINĖ vienos platformos viduje, koreliuojama per ASPM, užuot siuntus jį kaip atskirą įrankį su savo login ir savo paties atsilikimų.

Tai svarbu, nes statiniai ir vykdymo laiko duomenys atsako į skirtingus klausimus apie tą patį galinį tašką, ir jie yra naudingesni kartu nei atskirai. Statiniai duomenys nurodo, kad galinis taškas yra rizikingas dar prieš jam išsiųsiant. DAST patvirtina, kas iš tikrųjų pasiekiama ir išnaudojama, kai veikia.

Padalinkite tai tarp dviejų konsolių ir susijusi rizika tampa dviem nesusijusiais darbais. Niekas jų nesuderina, o galinis taškas, kuris yra ir nedokumentuotas, ir neautentifikuotas, nelieka nė vienoje eilėje.

Pamatykite savo tikrąją API atakos sritį. API saugumas pasiekiamas kaip Enterprise „Xygeni“ platformos priedas ir atliekamas nuskaitymas jūsų pačių saugyklose jūsų infrastruktūroje.

DUK

Ar tai gali pasakyti, kurie galiniai taškai tvarko jautrius duomenis?

Taip. „Xygeni“ pažymi PII, PCI ir PHI vertinamųjų baigčių parametruose ir atsakymuose ir naudoja šią klasifikaciją rezultatams suskirstyti pagal realų poveikį.

Ar jis gali veikti kiekvieną kartą pull request?

Taip. Papildomas nuskaitymas analizuoja tik tuos galinius taškus, kurie pasikeitė, o jo sukurtas manifestas gali sutelkti vėlesnį DAST nuskaitymą į tuos pačius galinius taškus, todėl statinis ir vykdymo laiko testavimas atitinka tai, kas iš tikrųjų pasikeitė.

Ar mano kodas palieka mano aplinką?

Ne. Skenavimai atliekami jūsų pačių infrastruktūroje. Įkeliami, apsaugoti perdavimo ir saugojimo metu tik rezultatai.

Kaip gauti API saugumą?

API saugumas pasiekiamas kaip Enterprise priedas. Paprašykite PoC ir jis bus su jumis suderintas.

sca-tools-software-composition-analyses-tools
Prioritetizuoti, pašalinti ir apsaugoti savo programinės įrangos rizikas
Gaukite nemokamą paskyrą.
Nebūtina kreditinės kortelės.

Apsaugokite savo programinės įrangos kūrimą ir tiekimą

su „Xygeni“ produktų rinkiniu