𝗠𝗮𝘀𝗵𝗮𝗺𝗯𝘂𝗹𝗶𝘇𝗶 𝘆𝗮 𝗠𝗮𝗻𝘁𝗶𝗸𝗶 𝘆𝗮 𝗕𝗶𝗮𝘀𝗵𝗮𝗿𝗮 𝗬𝗮𝗹𝘆𝗼𝗳𝗮𝗳𝗮𝗻𝘂𝗹𝗶𝘄𝗮

Washambuliaji hawavunji kodi yako kila wakati ili kuiba pesa.

Watengenezaji wengi hutumia miezi mingi kulinda API na usimbaji (encryption). Wanajikita katika kuzuia SQL injection au XSS. Kisha, mshambuliaji huiba fedha bila kuvunja hata udhibiti mmoja wa usalama.

Hili ni shambulio la mantiki ya biashara (business logic attack).

Programu inafanya kazi sawasawa kama ilivyoundwa. Mshambuliaji anatumia tu sheria zako mwenyewe dhidi yako.

Fikiria sanduku la benki (bank vault). Majaribio mengi ya usalama huchunguza ikiwa mlango ni imara. Jaribio la mantiki ya biashara huuliza swali tofauti. Je, itakuwaje ikiwa mtu anamshawishi mlinzi amfungulie mlango?

Sanduku linafanya kazi. Mchakato umefeli.

Hizi hapa ni njia tatu ambazo washambuliaji hutumia vibaya mantiki ya kibenki:

  1. Kukwepa Vipindi vya Kusubiri Benki mara nyingi huhitaji kusubiri kwa saa 24 baada ya kuongeza mpokeaji mpya. Hii huzuia wizi wa haraka. Mshambuliaji anaweza kupata API endpoint inayopita ukaguzi huu. Wanapita kizuizi cha UI na kuhamisha pesa papo hapo.

  2. Kuvunja Vipingamizi vya Muamala Benki inaweza kuweka kikomo cha kila siku cha 50,000. Ikiwa kodi inakagua kila muamala mmoja mmoja pekee, mshambuliaji anaweza kutuma miamala mitano ya 49,000. Kila muamala unaonekana kuwa sahihi. Jumla ya kiasi inazidi kikomo, lakini mfumo unaukosa.

  3. Matumizi Mabaya ya Zawadi Programu nyingi hutoa cashback kwa malipo ya bili. Mshambuliaji anaweza kulipa bili na kisha kuifuta mara moja. Ikiwa mfumo haufuti zawadi hiyo, mshambuliaji hutengeneza mzunguko wa kukusanya cashback zisizo na mwisho.

Kwa nini skana za kiotomatiki (automated scanners) zinakosa hili?

Skana hutafuta kasoro za kiufundi kama malware au injection. Skana huona muamala uliofanikiwa na kurudisha hali ya 200 OK. Inadhani kila kitu kiko sawa.

Mtahini wa kibinadamu huuliza: Je, muamala huu unapaswa kutokea kabisa?

Ili kupata kasoro hizi, acha kuuliza ikiwa kipengele kinaweza kudukuliwa (hacked). Anza kuuliza ikiwa kipengele kinaweza kutumiwa vibaya.

Angalia maeneo haya:

  • Je, watumiaji wanaweza kuruka hatua za uhakiki?
  • Je, watumiaji wanaweza kubadilisha umiliki wa kitambulisho (ID)?
  • Je, vipindi vya kusubiri vinaweza kukwepwa kupitia API?
  • Je, vipingamizi vinatolewa kwenye jumla ya kiasi au kwa kila bonyezo tu?
  • Je, zawadi zinaweza kuchochewa mara nyingi?

Timu bora za usalama hazitengenezi tu mifano ya matumizi (use cases). Wanatengeneza mifano ya matumizi mabaya (abuse cases).

Badala ya kujaribu "Mtumiaji anahamisha pesa," jaribu "Mshambuliaji anajaribu miamala midogo 500 ili kukwepa vipingamizi."

Swali la pili linagundua hatari halisi.

Chanzo: https://dev.to/arashad_dodhiya_0e4bdba5a/business-logic-attacks-explained-using-a-banking-app-27hj