Mapitio ya AuthZ Yanayosaidiwa na AI: Kusoma Mipaka ya Ruhusa katika Ory Kratos

AI ni mbaya katika kupata hitilafu (bugs) lakini ni nzuri sana katika kuzalisha mashaka.

Katika usalama, kitu cha gharama nafuu zaidi ambacho AI inaweza kufanya ni kuzalisha mfululizo wa ripoti za uongo. Hii ndiyo sababu programu za bug bounty zinatulia au kukaza sheria.

Mimi ninatumia AI tofauti. Ninairuhusu AI kuzalisha dhana (hypotheses) nyingi kulingana na "AuthZ Smell Catalog" yangu. Kisha, mimi hufanya kazi ngumu. Kazi yangu ni kuziharibu dhana hizo.

Mapitio yenye mafanikio si orodha ya hitilafu. Ni jedwali la mawazo yaliyofeli majaribio.

Nilipitia msimbo chanzo (source code) wa Ory Kratos. Kratos hudhibiti utambulisho na usimamizi wa watumiaji. Ni eneo lenye hatari kubwa kwa sababu linatumia utambulisho mbalimbali na API za umma.

Nilijaribu dhana tano:

  • H1: Admin API haina ruhusa (authorization) kwenye msimbo.
  • H2: Kuvuja kwa data kati ya utambulisho au kati ya wapangaji (cross-tenant).
  • H3: Matumizi ya tena ya token kwenye michakato ya urejesho (recovery flows).
  • H4: Kuchanganyikiwa kwa utambulisho kwenye michakato ya mipangilio (settings flows).
  • H5: Uteuzi wa wapangaji (tenant assignment) kupitia maudhui ya ombi (request payloads).

Matokeo:

  • H1: IMETUPWA (KILLED). Ruhusa ipo kwenye mpaka wa mtandao, si kwenye msimbo wa kushughulikia (code handler). Hii imekusudiwa.
  • H2: IMETUPWA (KILLED). Tabaka kuu la ufikiaji wa data (data-access layer) huchuja maswali yote kwa kutumia ID ya mpangaji. Watumiaji hawawezi kuruka sehemu hii.
  • H3: IMETUPWA (KILLED). Token hutumika mara moja tu na zina kikomo cha muda.
  • H4: IMETUPWA (KILLED). Michakato imefungwa kwenye kikao (session), si kwenye ingizo la mtumiaji.
  • H5: IMETUPWA (KILLED). ID za wapangaji zinatoka kwenye muktadha wa mfumo (system context), si kwenye mwili wa ombi (request body).

Dhana tano zilijaribiwa. Hakuna matokeo yaliyopatikana. Hili ni mapitio yenye mafanikio.

Mafunzo mawili kwa kazi yako ya usalama:

  1. Usalama wa tabaka la utekelezaji (deployment-layer) unaonekana kama usalama haupo. Ikiwa mlinzi yupo kwenye kiwango cha mtandao, msimbo utaonekana hauna ulinzi. Usitoe ripoti mpaka uhakikishe usanifu (architecture).

  2. Tafuta sehemu ya kizuizi (chokepoint). Ikiwa mfumo unadhibiti mipaka kwenye tabaka la data, mishikaji (handlers) binafsi haihitaji ukaguzi. Badala ya kuuliza "je, mshikaji huu unakagua ruhusa," uliza "je, kuna mtu yeyote anayeweza kufikia data bila kupitia kizuizi?"

Tumia AI kukataa wagombea. Tumia binadamu kuhakiki waliosalia. Thamani iko katika kukataa.

Chanzo: https://dev.to/fdjedkdlsspec/ai-assisted-authz-review-reading-permission-boundaries-in-ory-kratos-31cg

Jumuiya ya kujifunza ya hiari: https://t.me/GyaanSetuAi