Ilianza kwa Msaada Mdogo
Hivi karibuni nilikuwa nikizungumza na rafiki yangu. Alitaja kwamba alikuwa na shida kupakua taarifa yake ya kodi kutoka kwenye tovuti ya mpangaji ya mfumo wa usimamizi wa nyumba yake. Kuna kitu kilikuwa hakifunguki vizuri.
"Naweza kuangalia?" nilimuuliza. Akanitumia kiungo.
Nikakibonyeza. Hakuna ukurasa wa kuingia. Hakuna ombi la uthibitishaji. Hakuna ukurasa wa "weka nenosiri lako".
Nikaona tu jina lake kamili, namba ya simu, namba ya nyumba, na kila malipo ya kodi aliyofanya tangu Januari 2023. Kurasa sita za historia ya fedha. Wazi kwa yeyote mwenye URL hiyo.
Usalama haupaswi kuwa jambo la kufikiria baadaye. HomeManager imejengwa na usimbaji wa AES-256, ufikiaji kulingana na majukumu, na ulinzi wa data (ikiwemo KDPA ya Kenya) tangu siku ya kwanza. Anza majaribio yako bila malipo →
Hakuna tokeni ya kipindi. Hakuna uthibitishaji wa cookie. Hakuna kitu kinachozuia data hiyo isionekane kwenye intaneti.
Debug Mode Kwenye Seva Halisi Inamaanisha Nini
Nilichukua URL ya msingi mwenyewe ili kuangalia nini kingine kilikuwa wazi. Nilichokiona kilikuwa kibaya zaidi.
Mfumo ulikuwa ukiendeshwa katika debug mode kwenye seva halisi inayotumiwa na wateja. Ikiwa wewe si msanidi programu, hii ndiyo maana yake kwa lugha rahisi:
Debug mode ni hali ambayo wasanidi programu huiwasha wakati wa kutengeneza programu ili kuwasaidia kupata hitilafu. Inaonyesha ujumbe wa kina wa hitilafu, njia za faili, namba za mistari ya msimbo, na mipangilio ya seva. Haipaswi kamwe kuachwa ikiwa imewashwa wakati watumiaji halisi wanatumia mfumo.
Kilichokuwa wazi:
- Njia kamili za faili za seva: zikionyesha hasa msimbo wa programu ulipo kwenye seva
- Toleo la framework na vifurushi vyake: vikiwaambia washambulizi hasa ni programu gani inaendeshwa
- Mantiki ya ndani ya controllers pamoja na namba za mistari: ramani ya jinsi programu inavyofanya kazi
- Data ya mazingira ya seva: maelezo ya mipangilio yanayopaswa kuwa siri
- Taarifa za cookie na vipindi: data inayoweza kutumika kujifanya kuwa watumiaji wengine
Hii ni sawa na benki kubandika ramani za chumba chake cha kuhifadhi pesa, namba za siri za kengele, na ratiba za walinzi kwenye mlango wa mbele.
CVE Zinazojulikana: Udhaifu Uliorekodiwa Hadharani
Nilipoweza kuona toleo la framework, nililiangalia kwenye hifadhidata ya CVE (Common Vulnerabilities and Exposures). Hii ni orodha ya umma ambapo watafiti wa usalama hurekodi dosari zinazojulikana katika programu.
Toleo lililokuwa likiendeshwa kwenye mfumo huu lilikuwa na udhaifu kadhaa unaojulikana. Si hatari za kinadharia. Ni mbinu za mashambulizi zilizorekodiwa, zenye maelekezo ya hatua kwa hatua yanayopatikana mtandaoni.
Mshambulizi hahitaji kuwa mbunifu wala mwenye ujuzi. Anahitaji tu:
- Kutembelea ukurasa wa hitilafu (unaofikiwa na umma)
- Kusoma toleo la framework
- Kutafuta toleo hilo kwenye hifadhidata ya CVE
- Kufuata mwongozo wa shambulizi uliochapishwa
Huu si udukuzi wa kama unaouona kwenye filamu. Ni kusoma nyaraka zinazopatikana hadharani na kufuata maelekezo. Mwanafunzi wa chuo kikuu angeweza kufanya hivyo kwa mchana mmoja.
Hatari ya M-Pesa Daraja
Hapa ndipo hatari halisi inapoanza.
Mfumo huu unakusanya kodi kupitia M-Pesa Paybill. Hiyo inamaanisha mahali fulani katika msimbo, kuna muunganisho wa Daraja API: consumer keys, consumer secrets, URL za callback, na mantiki ya kushughulikia miamala.
Kwa kiwango cha uwazi nilichokuwa nikiona (debug mode, hakuna udhibiti wa ufikiaji, vifurushi vilivyopitwa na wakati), mshambulizi mvumilivu angeweza:
- Kufikia vitambulisho vya API: consumer key na secret zinazotumika kujitambulisha kwa Safaricom
- Kunasa URL za callback: kuelekeza uthibitisho wa malipo kwenye seva yake mwenyewe
- Kubadilisha kumbukumbu za miamala: kuonyesha malipo yamepokelewa wakati hayakupokelewa, au kuelekeza pesa kwingine
- Kuvuna namba za simu: M-Pesa imefungamana na namba za simu, na namba hizo zimefungamana na pesa
Daraja API ya M-Pesa yenyewe ni salama. Safaricom waliijenga vizuri. Lakini ikiwa programu inayounganishwa nayo iko wazi kiasi hiki, usalama wa API hauna maana tena. Ni kama gari la kivita linalopeleka pesa kwenye jengo lisilo na milango.
Kwa Nini Nilichagua Maadili Badala ya Fursa
Nitakuwa mkweli. Nikiangalia mfumo ule, niliona njia kadhaa za kuutumia vibaya. Pengo la uthibitishaji peke yake lilimaanisha kumbukumbu za wapangaji zilifikika. Debug mode iliyokuwa wazi ilimaanisha muundo wa seva ulisomeka. Vifurushi vilivyopitwa na wakati vilimaanisha mashambulizi yanayojulikana yangeweza kutumika.
Sitajifanya kwamba wazo hilo halikunijia. Kimsingi mfumo ulikuwa wazi.
Lakini mimi si mtu wa aina hiyo. Nilifunga kurasa zile.
Badala yake, niliiandikia kampuni barua pepe nikieleza hasa nilichogundua na jinsi ya kukirekebisha. Niliwapa hatua mahususi:
- Kuzima debug mode mara moja
- Kuweka uthibitishaji kwenye URL zote zinazotumiwa na wapangaji
- Kusasisha framework ili kuziba CVE zinazojulikana
- Kukagua jinsi wanavyohifadhi vitambulisho vya Daraja API
- Kuweka ufikiaji kulingana na majukumu
Natumaini watarekebisha.
Wasipofanya hivyo, barua pepe yangu inayofuata itaenda kwa Ofisi ya Kamishna wa Ulinzi wa Data (ODPC). Kwa sababu huu si uhandisi mbaya tu; ni ukiukaji wa Kenya Data Protection Act, 2019 (Sheria ya Ulinzi wa Data ya Kenya).
Sheria Inasema Nini: Mfano wa KDPA 2019 ya Kenya
Nchi nyingi za Afrika sasa zina sheria za ulinzi wa data, na maelezo yake hutofautiana kati ya nchi. Ya Kenya ndiyo ambayo mfumo huu ulikiuka: Kenya Data Protection Act (2019) (Sheria ya Ulinzi wa Data ya Kenya) inamtaka yeyote anayekusanya data binafsi:
- Kuweka hatua zinazofaa za usalama kulinda data binafsi (Kifungu cha 41)
- Kumjulisha Kamishna ndani ya saa 72 baada ya kugundua uvujaji (Kifungu cha 43)
- Kuhakikisha data haifikiwi na watu wasioidhinishwa (Kifungu cha 42)
Mfumo unaoanika majina ya wapangaji, namba za simu, na historia ya malipo bila uthibitishaji wowote unakiuka sheria waziwazi. ODPC ina mamlaka ya kutoa notisi za utekelezaji na faini za hadi KES milioni 5 au 1% ya mauzo ya mwaka.
Ikiwa wewe ni mwenye nyumba nchini Kenya unayetumia programu inayoshughulikia data ya wapangaji, wewe ndiye mdhibiti wa data kisheria. Uzembe wa mtoa huduma wako ni dhima yako. Popote nyumba yako ilipo, angalia jinsi sheria ya nchi yako inavyowachukulia wenye nyumba wanaohifadhi data ya wapangaji.
Jinsi ya Kukagua Programu Yako ya Sasa ya Usimamizi wa Nyumba
Iwe ulijitengenezea mfumo wako, uliununua, au unatumia jukwaa la SaaS, uliza maswali haya:
1. Uthibitishaji
- Je, mtu yeyote anaweza kufikia data ya wapangaji bila kuingia?
- Je, URL za taarifa za wapangaji zinaweza kubahatishwa au zinafuatana kwa mpangilio?
- Je, kuna uthibitishaji wa hatua nyingi?
2. Kushughulikia Hitilafu
- Nini kinatokea unapotembelea URL isiyo sahihi kwenye mfumo?
- Je, ukurasa wa hitilafu unaonyesha maelezo ya kiufundi, njia za faili, au msimbo?
- Ukionyesha ukurasa wa hitilafu "nadhifu", huenda uko salama. Ukionyesha msimbo, hiyo ni dalili ya hatari.
3. Masasisho ya Programu
- Sasisho la mwisho la usalama lilikuwa lini?
- Je, mfumo unatunzwa kikamilifu?
- Muulize mtoa huduma wako: "Mnatumia toleo gani la framework?"
4. Udhibiti wa Ufikiaji
- Je, msimamizi wa jengo lako anaweza kuona data ya fedha asiyopaswa kuona?
- Je, mpangaji anaweza kuona taarifa za mpangaji mwingine?
- Je, kuna kumbukumbu za ukaguzi zinazoonyesha nani alifikia nini?
5. Usalama wa Malipo
- Vitambulisho vya API za malipo (M-Pesa, PesaPal, benki yako) vinahifadhiwa vipi?
- Je, URL za callback zinathibitishwa?
- Je, data ya malipo imesimbwa inapohifadhiwa?
Jinsi HomeManager Inavyoshughulikia Usalama
Nilipojenga HomeManager, usalama haukuwa jambo la kufikiria baadaye wala kipengele cha kuongeza baadaye. Ulikuwa msingi wa muundo tangu siku ya kwanza. Kwa sababu nimeona kinachotokea usipokuwepo.
| Hatua ya Usalama | Maana Yake |
|---|---|
| Hakuna ufikiaji bila uthibitishaji | Kila URL, kila endpoint, kila kipande cha data kinahitaji kipindi halali cha kuingia. Bila kubagua. |
| Usimbaji wa AES-256 wa data iliyohifadhiwa | Data yote iliyohifadhiwa kwenye hifadhidata imesimbwa. Hata mtu akipata diski ngumu, hangeweza kuisoma. |
| TLS 1.3 wakati wa kusafirisha data | Data yote inayosafiri kati ya kivinjari chako na seva zetu imesimbwa kwa itifaki ya kisasa zaidi ya usafirishaji. |
| Ufikiaji kulingana na majukumu (ruhusa 25) | Wamiliki, mameneja, wahasibu, wasimamizi wa majengo, na wafanyakazi wa matengenezo, kila mmoja anaona tu anachohitaji. |
| Kumbukumbu kamili za ukaguzi | Kila kitendo kinarekodiwa: nani alifanya nini, lini, na kutoka anwani gani ya IP. Kumbukumbu isiyoweza kubadilishwa. |
| Kuziba udhaifu wa vifurushi kila mara | Hakuna CVE zinazojulikana katika mfumo wetu. Vifurushi vinafuatiliwa na kusasishwa mara kwa mara. |
| Muunganisho wa M-Pesa umelindwa kutoka mwanzo hadi mwisho | Vitambulisho vya API vimesimbwa, URL za callback zinathibitishwa, data ya miamala haionyeshwi kamwe kwenye kumbukumbu za mfumo (logs). |
| Miundombinu ya AWS | Inahifadhiwa kwenye Amazon Web Services, ikiwa na nakala rudufu za kiotomatiki, uwezo wa kuongezeka kiotomatiki, na upatikanaji wa 99.9%. |
| Inafuata KDPA 2019 | Imejengwa tangu mwanzo kwa kufuata Kenya Data Protection Act (Sheria ya Ulinzi wa Data ya Kenya). |
Kwa Ufupi
Wapangaji wako wanakuamini na data zao binafsi: majina, namba za simu, namba za vitambulisho, historia ya malipo, maelezo ya mikataba ya upangaji. Katika nchi nyingi zaidi za Afrika, uaminifu huo una jina la kisheria: sheria ya ulinzi wa data. Nchini Kenya, ni Data Protection Act 2019.
Ikiwa programu inayoshughulikia data hiyo haiwezi kujibu maswali ya msingi ya usalama, huna tatizo la kiteknolojia. Una tatizo la dhima ya kisheria.
Muulize mtoa huduma wako wa sasa: "Nini kinatokea mtu akiandika URL isiyo sahihi?"
Ikiwa hupendi jibu (au ikiwa hawawezi kukupa jibu), huenda ni wakati wa kuhamia kwenye kitu kilichojengwa na usalama kama msingi, si kama kipengele cha ziada.
Programu ya Usimamizi wa Nyumba Unayoweza Kuiamini
HomeManager imejengwa na usalama wa kiwango cha makampuni makubwa: usimbaji wa AES-256, ufikiaji kulingana na majukumu, kumbukumbu kamili za ukaguzi, na kufuata KDPA. Data ya wapangaji wako inabaki salama.
Anza majaribio bila malipoUko tayari kwa programu ya usimamizi wa nyumba unayoweza kuiamini?
HomeManager imejengwa na usalama wa kiwango cha makampuni makubwa kwa wenye nyumba kote barani Afrika. Ukusanyaji wa kodi kiotomatiki (M-Pesa nchini Kenya, kadi na pesa kwa simu kupitia PesaPal pale inapofanya kazi), bili za maji, tovuti ya mpangaji, na, nchini Kenya, kufuata KDPA kikamilifu.
Anza Majaribio Yako ya Siku 30 Bila Malipo