Cloud, QA & siguria

Testim sigurie për API REST dhe GraphQL

Gjethe teston API-t drejtpërdrejt, ashtu siç bëjnë sulmuesit: autorizimin për çdo objekt, autentikimin, sa të dhëna kthejnë përgjigjet, mass assignment, kufijtë e kërkesave dhe rrjedhat e biznesit. Testimi ndjek OWASP API Security Top 10, dhe çdo gjetje vjen me prova, një rregullim dhe një ritestim.

  • Konsultim i parë falas
  • Ofertë me shkrim për projektin tuaj
  • Faza pagese fleksibile
✓ build passed

Me një shikim

Llojet e API-ve
REST, GraphQL, WebSocket
Standardi
OWASP API Security Top 10
Fokusi
Autorizim, ekspozim të dhënash, kufij shpeshtësie
Rezultati
Raport, rregullime e ritestim

Përkufizim

Çfarë është testim sigurie API?

Testimi i sigurisë së API-ve është vlerësimi i një ndërfaqeje programimi për dobësi që u lejojnë thirrësve të arrijnë te të dhëna ose funksione që nuk duhet, duke dërguar kërkesa të krijuara posaçërisht drejtpërdrejt te endpoint-et e saj.

Aplikacionet mobile, aplikacionet single-page, partnerët e integrimet të gjithë flasin me API-në tuaj. Ndërfaqja mund t'i fshehë fushat e butonat, por API-ja i përgjigjet kujtdo që dërgon kërkesën e duhur. Prandaj API-të shpesh ekspozojnë më shumë se synohet: regjistrime të plota kur aplikacioni tregon vetëm një emër, veprime të arritshme duke ndryshuar një adresë, ose pa kufi se sa shpejt dikush mund të provojë hyrje ose të tërheqë të dhëna. Testimi i API-ve e lë mënjanë ndërfaqen e kontrollon çfarë lejon vetë serveri.

Për kë është?

  • Ekipe me API publike ose për partnerë

    Çdo gjë e ekspozuar ndaj zhvilluesve të tjerë është e ekspozuar ndaj kujtdo që lexon dokumentimin tuaj.

  • Backend-e aplikacionesh mobile

    Aplikacioni është vetëm një klient; API-ja duhet të mbrohet nga çdo kërkesë.

  • Arkitektura mikroshërbimesh

    Shërbimet e brendshme shpesh i besojnë njëri-tjetrit tepër; i kontrollojmë ato kufij.

  • Produkte me pagesa ose kredite

    Paratë, bilancet e kuotat janë objektiva kryesorë për abuzim të logjikës e kufijve të shpeshtësisë.

Çfarë përfshihet dhe çfarë mbani ju

Çfarë përfshihet

  • Shqyrtim i dokumentimit e skemës së API-së
  • Zbulim i endpoint-eve e operacioneve
  • Testim i autorizimit në nivel objekti
  • Testim i autorizimit në nivel funksioni
  • Shqyrtim i autentikimit e trajtimit të token-ave
  • Kontrolle për ekspozim të tepruar të dhënash
  • Teste për mass assignment e trajtim hyrjesh
  • Teste për kufizim shpeshtësie e abuzim burimesh
  • Teste të rrjedhave të biznesit e sekuencave
  • Kontrolle specifike për GraphQL ku është e rëndësishme
  • Shqyrtim i transportit e konfigurimit
  • Raport me prova, rregullime dhe ritestim

Çfarë merrni

Dorëzohet në fund. Mbetet e juaja.

  • Raport testimi të sigurisë së API-t
  • Gjetjet të lidhura me OWASP API Top 10
  • Përshkrim i qartë për çdo problem të konfirmuar
  • Rekomandime rregullimi për çdo gjetje
  • Raport ritestimi

Fushat e OWASP API Security Top 10 që mbulojmë

ZonaShembull i asaj që kontrollojmë
Autorizim i thyer në nivel objektiLeximi i regjistrimit të një përdoruesi tjetër duke ndryshuar një identifikues
Autentikim i thyerToken-a të dobët, skadim që mungon, kredenciale të hamendësueshme
Autorizim i thyer në nivel vetie objektiVendosja e fushave që thirrësi nuk duhet t'i kontrollojë
Konsum i pakufizuar burimeshPa kufij shpeshtësie në operacione të kushtueshme ose të ndjeshme
Autorizim i thyer në nivel funksioniThirrja e operacioneve të administratorit si përdorues normal
Qasje e pakufizuar në rrjedhat e biznesitAutomatizimi i një rrjedhe që duhej bërë vetëm një herë
Falsifikim kërkese nga ana e serverit (SSRF)API-ja merr adresa që i kontrollon një thirrës
Konfigurim i gabuar sigurieGabime të hollësishme, endpoint-e debug, cilësime të lira
Menaxhim i papërshtatshëm i inventaritVersione të vjetra të harruara që ende pranojnë kërkesa
Përdorim i pasigurt i palëve të tretaBesimi te të dhënat e një API të jashtëm pa kontroll

Pse API-të rrjedhin më shumë nga sa tregon aplikacioni

Një faqe uebi i tregon klientit emrin e vet e asgjë tjetër. Kërkesa pas saj, megjithatë, mund të kthejë të gjithë regjistrimin e përdoruesit, përfshirë fusha që faqja i injoron në heshtje. Sulmuesit i lexojnë përgjigjet drejtpërdrejt, ndaj çdo gjë që dërgon serveri është praktikisht publike për këdo që mund ta thërrasë endpoint-in.

Testojmë nga ana e thirrësit: çdo endpoint ushtrohet si përdorues e role të ndryshme, me identifikues e fusha të ndryshuara, për të parë nëse serveri kontrollon kush po pyet e kthen vetëm atë që lejohet të shohë. GraphQL merr vëmendje shtesë, sepse një pyetje e vetme fleksibël mund të arrijë shumë më tepër se një shteg REST i fiksuar nëse rregullat nuk zbatohen për çdo fushë.

Pse API-të kanë nevojë për testim të vetin

Është e lehtë të supozohet se testimi i uebfaqes teston edhe API-në pas saj. Nuk e teston. Uebfaqja e përdor API-në ashtu siç e kanë synuar dizajnuesit, përmes butonave e ekraneve që kanë ndërtuar. Një sulmues i injoron të gjitha këto dhe thërret endpoint-et drejtpërdrejt, në çdo radhë, me çdo vlerë, si çdo llogari që mund të marrë. Kategori të tëra problemesh shfaqen vetëm nga ky kënd: një endpoint që i beson një ID përdoruesi nga kërkesa, një fushë që duhej të ishte vetëm për lexim por mund të shkruhet, një operacion pa kufi se sa shpesh mund të ekzekutohet.

Testimi i API-së më vete mbron edhe çdo klient që varet prej saj. Një API e vetme zakonisht shërben një aplikacion uebi, një aplikacion mobil e shpesh integrime partnerësh njëkohësisht. Një dobësi aty u ekspozohet të gjithëve, ndaj rregullimi në nivel API-je e mbron produktin e tërë, jo një ekran të vetëm.

Si funksionon testimi i sigurisë së API-ve, hap pas hapi

Çdo hap ka një rezultat të qartë që mund ta shqyrtoni. Afatet dakordësohen në ofertën tuaj.

  1. 1

    Fusha e punës

    API-të, mjediset, rolet dhe kredencialet e testimit dakordësohen me shkrim.

  2. 2

    Hartë

    Endpoint-et, operacionet dhe rolet katalogohen nga dokumentacioni dhe trafiku.

  3. 3

    Testoni

    Autorizimi, autentikimi, ekspozimi i të dhënave dhe abuzimi testohen manualisht.

  4. 4

    Verifikimi

    Çdo gjetje konfirmohet me kujdes, me prova të sigurta.

  5. 5

    Raportoni

    Gjetjet lidhen me API Top 10, me rregullime.

  6. 6

    Ritestoni

    Rregullimet verifikohen dhe raporti përditësohet.

Mjetet dhe çfarë e formëson ofertën tuaj

Çmimi bazohet në projektin tuaj dhe bihet dakord në ofertën tuaj. Këto janë gjërat që e lëvizin atë.

Testim sigurie API: faktorët e çmimit
FaktoriPse ka rëndësi
Numri i endpoint-eveMë shumë operacione nënkuptojnë më shumë teste autorizimi e hyrjesh.
Numri i roleveÇdo rol duhet testuar kundrejt çdo operacioni të ndjeshëm.
REST kundrejt GraphQLGraphQL kërkon kontrolle për çdo fushë dhe teste të kostos së pyetjeve.
Cilësia e dokumentimitSkemat e koleksionet e mira e bëjnë testimin më të shpejtë e më të plotë.
Rrjedhat e biznesitPagesat, kuotat e rrjedhat shumëhapëshe kërkojnë testim të kujdesshëm të logjikës.

Gabime të zakonshme që duhen shmangur

Çfarë shohim që shkon keq më shpesh dhe si e shmang një projekt i mirë.

  • Kontrolli i lejeve vetëm në aplikacion

    Nëse API nuk kontrollon sërish në çdo kërkesë, kufizimet e aplikacionit nuk kanë asnjë vlerë.

  • Kthimi i objekteve të plota

    Dërgimi i regjistrimeve të plota dhe lënia e klientit të zgjedhë fushat e ekspozon gjithçka ndaj këdo që lexon përgjigjet.

  • Pa kufij kërkesash

    Pa kufij, hyrjet mund të hamendësohen dhe të dhënat mund të merren në masë.

  • Versione të vjetra të harruara

    Versionet e vjetra të API-ve që vazhdojnë të ekzekutohen shpesh nuk i kanë rregullimet e shtuara në atë aktuale.

Pyetje të shpeshta

A ju duhet dokumentimi ynë i API-së?

Ndihmon shumë. Një skemë, koleksion Postman ose përkufizim OpenAPI a GraphQL e përshpejton testimin e përmirëson mbulimin. Ku mungon, hartëzojmë endpoint-et nga trafiku i klientëve tuaj.

A mund të testoni një API GraphQL?

Po. GraphQL kërkon kontrolle autorizimi për çdo fushë e teste të kostos së pyetjeve, që i mbulojmë krahas fushave standarde të API-ve.

A do të ndikojë testimi në të dhënat tona të prodhimit?

Preferojmë një mjedis staging me të dhëna testimi. Nëse duhet të testojmë prodhimin, përdorim llogari testimi, biem dakord për dritare kohore e shmangim veprimet që ndryshojnë regjistrime reale.

A testoni ofruesit e autentikimit si OAuth?

Testojmë si i përdor API-ja juaj token-at e sesionet: skadimin, fushën, validimin e trajtimin. Vetë ofruesi i identitetit zakonisht është jashtë fushës përveç nëse e operoni ju.

Si ndryshon kjo nga një test aplikacioni uebi?

Një test aplikacioni uebi punon përmes ndërfaqes; një test API punon drejtpërdrejt kundrejt endpoint-eve, ku lidhen realisht aplikacionet mobile, integrimet e aplikacionet single-page.

A përfshihet ritestimi?

Po. Pasi të rregulloni gjetjet, i ritestojmë e përditësojmë raportin.

A mund të ndihmoni për rregullimin e gjetjeve?

Po. Zhvilluesit tanë mund t'i zbatojnë rregullimet ose të shqyrtojnë ndryshimet e ekipit tuaj para ritestimit.

A nënshkruani NDA?

Po. Gjetjet janë konfidenciale e ndahen vetëm me kontaktet që emëroni, e të dhënat e testimit hiqen më pas.

A testoni edhe versionet e vjetra të API-së?

Po, kur janë në fushë. Versionet e vjetra që vazhdojnë të punojnë janë pikë e zakonshme e dobët, sepse rregullimet e shtuara në versionin aktual shpesh nuk zbatohen kurrë tek ato.

Çfarë na duhet nga ju për të filluar?

Adresa bazë e çdo API-je, kredenciale për çdo rol, çdo skemë ose dokumentim që keni dhe një kontakt i emëruar nëse diçka kërkon vëmendje gjatë testimit.

Shihni çfarë lejon realisht API-ja juaj.

Na tregoni çfarë ju duhet. Merrni një vlerësim të sinqertë, një plan të qartë dhe një ofertë me shkrim. Konsultimi i parë është gjithmonë falas.

  1. Çfarë ndodh më pas
  2. 1Na tregoni çfarë ju nevojitet
  3. 2Synojmë t'ju përgjigjemi brenda 24 orëve me pyetje
  4. 3Merrni një ofertë me shkrim për projektin tuaj