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
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ë
| Zona | Shembull i asaj që kontrollojmë |
|---|---|
| Autorizim i thyer në nivel objekti | Leximi i regjistrimit të një përdoruesi tjetër duke ndryshuar një identifikues |
| Autentikim i thyer | Token-a të dobët, skadim që mungon, kredenciale të hamendësueshme |
| Autorizim i thyer në nivel vetie objekti | Vendosja e fushave që thirrësi nuk duhet t'i kontrollojë |
| Konsum i pakufizuar burimesh | Pa kufij shpeshtësie në operacione të kushtueshme ose të ndjeshme |
| Autorizim i thyer në nivel funksioni | Thirrja e operacioneve të administratorit si përdorues normal |
| Qasje e pakufizuar në rrjedhat e biznesit | Automatizimi 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 sigurie | Gabime të hollësishme, endpoint-e debug, cilësime të lira |
| Menaxhim i papërshtatshëm i inventarit | Versione të vjetra të harruara që ende pranojnë kërkesa |
| Përdorim i pasigurt i palëve të treta | Besimi 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
Fusha e punës
API-të, mjediset, rolet dhe kredencialet e testimit dakordësohen me shkrim.
- 2
Hartë
Endpoint-et, operacionet dhe rolet katalogohen nga dokumentacioni dhe trafiku.
- 3
Testoni
Autorizimi, autentikimi, ekspozimi i të dhënave dhe abuzimi testohen manualisht.
- 4
Verifikimi
Çdo gjetje konfirmohet me kujdes, me prova të sigurta.
- 5
Raportoni
Gjetjet lidhen me API Top 10, me rregullime.
- 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ë.
| Faktori | Pse ka rëndësi |
|---|---|
| Numri i endpoint-eve | Më 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 GraphQL | GraphQL kërkon kontrolle për çdo fushë dhe teste të kostos së pyetjeve. |
| Cilësia e dokumentimit | Skemat e koleksionet e mira e bëjnë testimin më të shpejtë e më të plotë. |
| Rrjedhat e biznesit | Pagesat, kuotat e rrjedhat shumëhapëshe kërkojnë testim të kujdesshëm të logjikës. |
| Zona | Mjetet |
|---|---|
| Testimi | Burp Suite, Postman, skripta të personalizuara |
| GraphQL | mjete introspeksioni skeme, mjete pyetjesh |
| Mbështetja | Mjete OpenAPI, kapje trafiku |
| Udhëzime | OWASP API Security Top 10, OWASP ASVS, CVSS |
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.
Shërbime të ngjashme
Testim depërtimi
Teste sigurie të autorizuara e me fushë të përcaktuar me raport për rregullim.
Testim depërtimi për aplikacione uebi
Testim manual OWASP i hyrjeve, kontrollit të qasjes e logjikës.
Rishikim i sigurt i kodit
Shqyrto bazën e kodit për të meta sigurie para publikimit.
Zhvillim API i personalizuar
API të dokumentuara REST, GraphQL dhe WebSocket.
Integrim API
Lidhni mjetet që përdorni tashmë që të dhënat të rrjedhin vetë.
Vlerësim i cenueshmërive
Gjej, rendit e planifiko rregullime për dobësi të njohura.
Testimi i sigurisë së API-ve sipas industrisë
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.
- Çfarë ndodh më pas
- 1Na tregoni çfarë ju nevojitet
- 2Synojmë t'ju përgjigjemi brenda 24 orëve me pyetje
- 3Merrni një ofertë me shkrim për projektin tuaj