Heimild fyrir brotnu hlutastigi með dæmum

Í þessari færslu skoðum við og fjöllum um bilun á heimildarstigi.

Við ætlum að byrja á því að útskýra hvað brotið leyfi hlutastigs þýðir. Síðan munum við fara í gegnum árásina og útskýra tengda áhættuþætti.

Við munum síðan skoða nokkur möguleg áhrif varnarleysisins áður en við lokum skoðum algengar varnir.




Hvað er Broken Object Level Authorization

Í stuttu máli þýðir þessi tegund árása að heimildin sem beitt er fyrir gögn er ekki gerð eins og hún ætti að gera. Þetta leiðir til þess að aðgangur er veittur að auðlindum og gögnum þegar það ætti ekki að vera það.

Heimild fyrir brotinn hlutastig hefur áður verið þekktur sem ótrygg bein tilvísun hlutar (IDOR).


Þegar við segjum orðið mótmæla í Broken Object Level Authorization, það sem við er að meina er gildi eða hópur af gildum. Hlutur gæti verið færsla á samfélagsmiðlinum sem inniheldur höfund, innihald og dagsetningu pósts.

Heimild snýst allt um það sem notandi hefur aðgang að. Þess vegna erum við að tala um notanda sem er þegar innskráður.

Þegar notandi gerir beiðni um API er beiðnin notuð til að fá aðgang að hlutum. Þetta er punkturinn sem taka ætti ákvörðun um heimild. Notandinn ætti aðeins að geta nálgast hluti sem þeim hefur verið veittur aðgangur að. Þetta er heimild sem virkar rétt.


Þegar heimild er rofin hafa notendur aðgang að gögnum og auðlindum sem þeir ættu ekki að mega.

API auðveldar ýmsar aðgerðir á hlutum. Við getum fengið, búið til, uppfært eða jafnvel eytt hlutum.

Samskipti við hlut er allur punkturinn í API, því ef heimildarstýringar í kringum þessa hluti eru brotnar, þá erum við með viðkvæmni í brotnum hlutastigum.



Nýta sér brotthvarf aðgangsstigs

Það er yfirleitt auðvelt að nýta sér þessa varnarleysi þegar það hefur fundist. Allt sem árásarmaður þarf að gera er að breyta auðkenni í beiðni og þeir hafa hugsanlega fengið aðgang að hlutum sem þeir ættu ekki að fá að fara með.


Við skulum sjá það í dæmi.

Hér höfum við slóð sem er notuð til að kalla API:

https://myemail.com/messages/12345

Þetta API símtal er notað til að sækja einkaskilaboð notanda. Auðlindin sem er notuð er skilaboð .

Skilaboðin eru hluturinn sem við erum að vísa til í Broken Object Level Authorization. Forsendan er sú að einkaskilaboð geti aðeins verið lesin af fyrirhuguðum viðtakanda.


Næst höfum við auðkenni skilaboðanna 12345. Þetta er mikilvægur hluti fyrir árásarmanninn.

Auðkennið segir þjónustunni hvaða skrá á að skila. Forritaskilið sækir þá skráningu úr gagnageymslu og skilar henni í svarinu.

Hvað gerist núna ef við breytum auðkenninu úr 12345 til 12346? td:

https://myemail.com/messages/12346

Ef skilaboðin með auðkenni 12346 var ætlað notendum okkar, ættum við að geta sótt það.


En ef skilaboðin tilheyra öðrum notanda ætti API aldrei að skila þeim. Ef okkur tókst að ná skilaboðunum, þá brestum við í heimildarbroti.

Annað dæmi er að senda POST beiðni um að uppfæra auðlind. Við getum leikið okkur að auðkenninu í JSON-álaginu:

{
'userId': '12345678',
'oldPassword': 'My_0ld_Pa$$',
'newPassword': '$uperS3CurE' }

Ef við myndum setja einhvern möguleika userId í beiðninni og gátum uppfært upplýsingar annars notanda, þá erum við með stórt vandamál.

Tæknileg áhrif

Þegar við vitum að varnarleysið er til getum við nýtt það á alls konar hátt. Eins og áður sagði getum við notað ýmsar HTTP aðferðir á API. Við getum notað auðkennið til að uppfæra eða jafnvel eyða skilaboðum!

Hvað gerist ef við gætum endurtekið öll skilríki? Við gætum kannski eytt öllum skilaboðum sem eru geymd. Það hefur mikil áhrif.



Algengt varnarleysi

Þetta er mjög algengt varnarleysi. Eins og áður hefur komið fram eru forritaskil notað til að fá aðgang að hlutum og í flestum tilfellum notum við auðkenni í beiðninni til að bera kennsl á auðlindir. Spurningin er hvort eru leyfisathuganir fyrir þann aðgang?

Það eru aðallega tvær ástæður fyrir því að við verðum með veikleika í Broken Object Level Authorization í kóðanum.

Sú fyrsta er að öryggiseftirlit hefur einfaldlega ekki verið hrint í framkvæmd. Kóðinn hefur ekki verið skrifaður til að framkvæma heimildarskoðanir á beiðnum.

Önnur ástæðan er mannleg mistök. Fólk gerir mistök. Gott dæmi er í API sem meðhöndlar bæði viðkvæm á gögnum sem ekki eru viðkvæm. Sumar beiðnir ættu að hafa heimildarskoðanir og aðrar ekki. Svo það gæti verið auðvelt að missa af ávísun þegar þú skrifar kóða.



Hvernig á að uppgötva

Sjálfvirk verkfæri myndu venjulega ekki finna þessa tegund af viðkvæmni þar sem hún hefur tilhneigingu til að taka að minnsta kosti smá heilakraft.

Það er tiltölulega auðvelt fyrir mann að greina þessa viðkvæmni. Allt sem við þurfum að gera er að finna auðkennið sem er notað til að sækja hluti.

Athugaðu að auðkenni getur verið í vefslóðinni, í beiðni eða í hausnum.

Einnig verðum við að greina og túlka viðbrögðin sem koma aftur til að sjá hvort það er viðkvæmni eða ekki.

Verkfæri

Við getum notað hvaða tæki sem er sem skoðar HTTP beiðnir og svör. Sum þessara eru:

  • Google forritaraverkfæri
  • Burp svíta
  • Bréfberi

Burp Suite er einnig hægt að nota til að gera sumar beiðnanna sjálfvirkar.



Verja gegn brotnu hlutastigi

Við höfum tvær varnir hér.

Fyrsta vörnin er að nota óútreiknanleg skilríki eins og GUID . Þegar við notum samfelldar tölur í kóðanum, t.d. 12345, þetta þýðir að skilríki eru mjög fyrirsjáanleg. Árásarmaður þarf ekki mikla fyrirhöfn til að fara í gegnum tölur til að finna hluti.

Dæmi um GUID:

d3b773e6-3b44-4f5f-9813-c39844719fc4

Leiðbeiningar eru flóknar og mjög erfitt að giska á og eru ekki í röð.

Næsta vörn er að hafa raunverulega einhvern kóða til athuga heimild . Þessi athugun gerist oft bara ekki.

Athugun heimildar ætti að gerast hvenær sem notandi kynnir forritaskilin innan auðkennis sem á að nota. Meginreglan hér er sú að við ættum aldrei að treysta gögnum sem notandinn gefur API.

Athuga þarf umskilið auðkenni til að staðfesta að notandinn hafi heimild til að fá aðgang að hlutnum.

Þessar athuganir gætu verið einfaldar endurskoðanir á kóða við hugbúnaðargerð og / eða sjálfvirkar athuganir sem kanna hvort heimildir bili í þróuninni.



Niðurstaða

Eins og við höfum séð er brotið hlutastig heimild algengt varnarleysi og auðvelt að koma auga á og ráðast á. Möguleg áhrif eru mikil.

Raunveruleg uppspretta þessa varnarleysis er að treysta gögnum sem eru send til API af viðskiptavininum.

Stór hluti varnarinnar er að tryggja að við treystum ekki þessum gögnum. Við verðum því að ganga úr skugga um að heimildarskoðanir séu til staðar.