API pentesti kontrollnimekiri

Praktiline nimekiri enne API turvatestimist ja selle ajal: mida ulatus peab katma, milliseid testkontosid vaja on, mida OWASP API Top 10 järgi kontrollida ja millist tõendit raportist oodata.

Koostanud Tehisabiline OÜ · Viimati sisuliselt uuendatud

Lühidalt

API turvatestimine hindab, kas päringu tegija saab teha midagi, mida ta ei tohiks: näha teise kliendi andmeid, muuta teise rolli objekte või kasutada äriloogikat väljaspool ettenähtud voogu. Kontrollnimekiri jaguneb kolmeks: ettevalmistus, testitavad riskid ja kordustest. Iga punkti juures on oluline tõend, mitte ainult hoiatus.

Enne testi

  • Ulatuse kirjeldus: hostid, API versioonid, keskkond, lubatud ajavahemik ja keelatud tegevused.
  • API kirjeldus: OpenAPI dokument või Postmani kogu; ilma selleta on katvus raskemini tõendatav.
  • Testkontod: vähemalt kaks rolli või klienti, vajadusel admin-konto ainult kokkulepitud kontrollideks.
  • Andmed: sünteetilised objektid, mida tohib lugeda ja muuta; päris kliendiandmeid ei kasutata.
  • Piirangud: päringute sagedus, keelatud tegevused (nt massproovimine, koormustest) ja peatamise tingimused.
  • Kontaktid: kes kinnitab loa, kes vastab testi ajal ja kes pääseb logidele ligi.
  • Varundus: kinnita, et testkeskkond on taastatav ja et tootmises muudatusi ei tehta.

OWASP API Top 10 kontrollid

OWASP API Security Top 10 (2023) kirjeldab riskikategooriad, mitte kohustuslikku testipaketti. Allolev tabel seob iga kategooria kontrolli ja tõendiga, mida raportis oodata.

RiskMida kontrollitakseTõend raportis
API1 BOLAObjekti ID-ga päring teise kliendi/rolli objektilePäring ja vastus, oodatud vs tegelik tulemus
API2 AutentimineTokeni eluiga, refresh, brute force piirangudKatse kirjeldus ja vastuse koodid
API3 BOPLAVäljade tasemel õigused (nt roll, hind, staatus)Muudetud väli ja selle mõju
API4 RessursidPäringu suurus, lehekülje suurus, kiiruspiirangudPiirangute puudumine ja mõju
API5 BFLAAdministratiivsete funktsioonide ligipääs rolli järgiRoll, otspunkt ja vastus
API6 ÄrivoogTellimuse, allahindluse või maksevoogude kuritarvitamineSammud ja tulemus
API7 SSRFServeripoolsed päringud kasutaja antud URL-ileSihtkoha piirang ja vastus
API8 SeadistusCORS, veateated, HTTP meetodid, TLSPäis ja seadistus
API9 VarudVanad versioonid, dokumenteerimata otspunktidOtspunkti loetelu ja ligipääs
API10 TarbimineKolmandate osapoolte API-de usaldusAndmevoog ja valideerimine

Testkontod ja ligipääsumaatriks

Enne testi kirjuta tabel, kus iga roll ja tenant on eraldi real. See on ka raporti alus: ilma selleta ei saa väita, et õigused on kontrollitud.

KontoRollTenantLubatud
A-klientkasutajaAenda objektid, lugemine ja muutmine
B-klientkasutajaBenda objektid, lugemine ja muutmine
A-adminadministraatorAainult kokkulepitud haldustoimingud

Hoia kontode paroolid ja tokenid turvaliselt; ära saada neid esimeses e-kirjas. Testi ajal logi iga oluline päring nii, et tõendit saab hiljem korrata.

Tõendid ja raport

  • Reprodutseeritavus: sammud, päring ja vastus, mida saab uuesti läbi mängida.
  • Mõju: milliseid andmeid või toiminguid oleks saanud kuritarvitada.
  • Kontekst: keskkond, roll, tenant ja aeg.
  • Maskeerimine: tokenid, paroolid ja isikuandmed eemaldatud.
  • Parandus: konkreetne soovitus ja kordustesti tingimus.

Hea raport ei ole leidude loend, vaid otsuste alus: mida parandada esimesena ja kuidas kontrollida, et parandus töötab.

Kordustest

  1. Vali leiud: kõik kriitilised ja need, mille parandus muutis autentimist või õigusi.
  2. Korda sama päringut: sama roll, tenant ja objekt, et tulemus oleks võrreldav.
  3. Kontrolli regressiooni: kas parandus ei avanud teist teed sama objekti juurde.
  4. Dokumenteeri: märgi, kas leid on suletud, osaliselt parandatud või endiselt avatud.

Kordustest ei ole kogu testi kordamine. Selle ulatus ja aeg lepitakse pakkumises kokku.

Küsimused kontrollnimekirja kohta

Mida API pentesti kontrollnimekiri sisaldab?

Kolme osa: ettevalmistus enne testi, OWASP API Top 10 kontrollid koos tõenditega ja kordustesti nimekiri. Iga punkti juures on kirjas, mida testija vajab ja mida raportist oodata.

Mitu testkontot on API pentestiks vaja?

Vähemalt kaks erineva rolli või kliendi kontot. Kui süsteemis on rohkem rolle või tenante, tuleb iga olulise kombinatsiooni jaoks anda eraldi testkonto.

Kas API pentest vajab OpenAPI kirjeldust?

See ei ole kohustuslik, kuid OpenAPI või Postmani kogu muudab ulatuse ja otspunktide katvuse kontrollitavaks ning vähendab testimüra.

Kuidas hinnata API pentesti tulemust?

Vaata kinnitatud leidude mõju, tõendeid ja parandussoovitusi, mitte ainult leidude arvu. Oluline on, kas leid on korratav ja kas parandus on kontrollitav kordustestiga.

Kontrolli API ulatust enne testimist

Saada otspunktide arv, rollid ja testkeskkonna olemasolu. Ütleme, mis on mõistlik esimene samm.

Küsi API testi kaardistust