RuhaniSoftSULUHISHO ZA PROGRAMU
SW

:mwezi :siku, :mwaka · :hesabu dakika za kusoma

Orodha ya Ukaguzi wa Usalama wa Programu za Simu: Mambo 20 ya Kufanya Sahihi Kabla ya Kuzindua

Programu ya simu huweka bidhaa yako, na mara nyingi data ya kibinafsi ya wateja wako, katika mamilioni ya mifuko ambayo huidhibiti. Simu hupotea, huibiwa, huziba mizizi, huambukizwa na kuachwa kwenye mitandao ya umma. Washambuliaji wanaweza kupakua programu yako, kuibomoa na kujifunza jinsi inavyowasiliana na seva zako. Usalama katika mazingira haya si kipengele cha kuongeza mwishoni. Ni seti ya maamuzi yanayofanywa katika mradi mzima.

Habari ya kutia moyo ni kwamba hitilafu nyingi za usalama wa simu si za kigeni. Zinatokana na orodha fupi ya makosa ya kawaida: kuhifadhi data nyeti bila kujali, kuamini programu kupita kiasi, kuacha API za nyuma zikiwa wazi na kuruka majaribio. Orodha hii ya ukaguzi inashughulikia mambo ishirini ya kufanya sahihi kabla ya uzinduzi. Imeandikwa ili waanzilishi na wamiliki wa bidhaa waweze kuuliza maswali sahihi, na watengenezaji wanaweza kuitumia kama orodha ya mapitio. Kwa upangaji mpana wa mradi wa programu, tazama [mwongozo wetu wa gharama ya ukuzaji wa programu ya simu] (blogu/ukurasa wa ukuzaji-wa-programu-ya-simu-ya-gharama-inayoendesha-bei) na [ukurasa wa ukuzaji-wa-programu ya simu] (ukurasa wa ukuzaji-wa-programu-ya-simu-ya-simu-ya-simu-ya-simu-ya-simu-ya-simu-ya-simu-ya-simu-ya-simu-ya-simu-ya-simu-ya-simu-ya-simu.php).

Kwanza, mawazo

Kanuni tatu zinaunga mkono kila kitu hapa chini.

  1. Usimwamini mteja kamwe. Chochote kinachoendeshwa kwenye simu ya mtumiaji kinaweza kukaguliwa na kubadilishwa. Maamuzi muhimu, kama vile bei, ruhusa na malipo, lazima yafanywe kwenye seva.
  2. Kusanya na uhifadhi kidogo. Data ambayo huhifadhi kamwe haiwezi kuibiwa. Kila sehemu unayokusanya ni dhima.
  3. Chukua ukiukaji, punguza uharibifu. Buni ili ikiwa jambo moja litashindwa, madhara yazuiliwe: tokeni za muda mfupi, ruhusa ndogo, data iliyosimbwa kwa njia fiche.

Hifadhi ya data kwenye kifaa

1. Usihifadhi data nyeti isipokuwa lazima

Nywila, nambari kamili za kadi na vitambulisho vya kibinafsi visiwe kwenye kifaa. Ukiweza kupata kitu kutoka kwa seva inapohitajika, fanya hivyo badala ya kukihifadhi ndani ya eneo lako.

2. Tumia hifadhi salama kwa kile unachofanya

iOS na Android zote hutoa hifadhi salama kwa siri kama vile tokeni na funguo: Keychain kwenye iOS na Keystore kwenye Android. Tumia faili hizo, si za mapendeleo ya kawaida, hifadhidata za ndani au faili za maandishi zisizolindwa. Mifumo ya mifumo mbalimbali kama vile Flutter na React Native hutoa vifurushi salama vya hifadhi vinavyofunga vipengele hivi, na vinapaswa kuwa chaguo-msingi kwa tokeni na sifa.

3. Simba hifadhidata na faili za ndani zinazohifadhi data ya kibinafsi

Ikiwa programu inahifadhi taarifa za mtumiaji nje ya mtandao, isimbaji fiche. Kumbuka kwamba nakala rudufu, picha za skrini na kumbukumbu pia zinaweza kuvuja data, kwa hivyo kagua mahali ambapo taarifa zinaweza kuishia.

4. Futa data nyeti unapotoka

Mtumiaji anapoondoka, ondoa tokeni, rekodi zilizohifadhiwa na faili zozote nyeti. Vifaa vilivyoshirikiwa na kuuzwa tena ni vya kawaida.

Uthibitishaji na vipindi

5. Tumia uthibitishaji uliothibitishwa, sio wako mwenyewe

Kuendesha mfumo wako wa kuingia ni hatari. Tumia viwango na maktaba zilizowekwa, kama vile OAuth 2.0 na OpenID Connect, au huduma ya utambulisho inayoaminika. Tekeleza sheria za nenosiri zinazofaa na ulinde dhidi ya kubahatisha mara kwa mara kwa mipaka ya viwango na kufungiwa nje.

6. Toa chaguo kali za kuingia

Unga mkono uthibitishaji wa vipengele vingi ambapo data inahalalisha, na utumie biometriki za kifaa, kama vile alama za vidole na kufungua kwa uso, kama safu ya urahisi juu ya kuingia salama. Biometriki inapaswa kufungua kitambulisho kilichohifadhiwa salama, si kuchukua nafasi ya ukaguzi wa upande wa seva.

7. Weka vipindi vifupi na vinavyoweza kubatilishwa

Tumia tokeni za ufikiaji za muda mfupi na tokeni za kuonyesha upya, na kuwezesha kubatilisha ufikiaji wakati kifaa kinapotea. Tokeni zinazodumu kwa muda mrefu zilizohifadhiwa ovyo ni udhaifu wa kawaida.

Mawasiliano ya mtandao

8. Tumia miunganisho iliyosimbwa kila mahali

Trafiki yote kati ya programu na seva zako inapaswa kutumia TLS ya kisasa. Usitume kamwe vitambulisho au data ya kibinafsi kupitia miunganisho ya kawaida, na usipuuze makosa ya cheti wakati wa usanidi na usahau kuwezesha tena ukaguzi katika toleo.

9. Fikiria kubandika cheti kwa programu zilizo hatarini

Kubandika hufanya programu ikubali cheti cha seva yako pekee, ambacho hushinda baadhi ya mashambulizi ya kukatiza. Huongeza juhudi za matengenezo wakati vyeti vinabadilika, kwa hivyo inafaa programu zinazoshughulikia malipo, afya au data nyingine nyeti sana kuliko programu rahisi za maudhui.

10. Usiweke siri kwenye programu

Funguo za API, manenosiri na funguo za faragha zilizopachikwa kwenye programu zinaweza kutolewa na mtu yeyote anayeipakua. Chochote ambacho lazima kibaki siri ni cha seva yako. Funguo ambazo lazima ziwe kwenye programu, kama vile ramani, zinapaswa kuzuiwa na utambulisho wa programu na mipaka ya matumizi kwa mtoa huduma.

Mazingira ya nyuma na API

Programu ni salama tu kama seva inayozungumza nayo. Washambuliaji mara nyingi hupita programu kabisa na kupiga simu API yako moja kwa moja.

11. Idhinisha kila ombi kwenye seva

Hakikisha kwamba mtumiaji aliyeingia anaruhusiwa kufikia kila rekodi anayoiomba. Dosari ya kawaida ni sehemu ya mwisho inayorudisha agizo lolote inapopewa nambari yoyote ya agizo, kwa hivyo mtumiaji mmoja anaweza kusoma data ya mwingine kwa kubadilisha nambari katika ombi.

12. Thibitisha ingizo zote kwenye seva

Usitegemee kamwe programu kuthibitisha data. Angalia aina, urefu na fomati kwenye seva, na utumie maswali salama ya hifadhidata ili kuzuia uingizaji. Mazingira ya nyuma yaliyojengwa kwa mifumo iliyokomaa kama vile Laravel hutoa ulinzi mwingi huu kwa chaguo-msingi inapotumika kama ilivyokusudiwa; Tunalinganisha chaguo za sehemu ya nyuma katika Laravel dhidi ya Node.js.

13. Kiwango cha kikomo na ufuatiliaji

Punguza ni mara ngapi mteja anaweza kupiga simu kwenye sehemu nyeti za mwisho, kama vile kuingia, kuweka upya nenosiri na malipo. Andika shughuli isiyo ya kawaida na uiarifu.

14. Linda malipo ipasavyo

Tumia mtoa huduma wa malipo anayeaminika ili maelezo ya kadi yaende moja kwa moja kwao na usipite au kukaa kwenye seva zako. Thibitisha malipo kwenye seva, usiamini kamwe dai la programu kwamba ununuzi ulifanikiwa.

Programu yenyewe

15. Linda msimbo kwa njia inayofaa

Miundo ya kutolewa inapaswa kukusanywa na kurekebishwa, huku vipengele vya utatuzi wa matatizo na kumbukumbu za maneno mengi zikiondolewa. Kuficha data hufanya uhandisi wa kinyume kuwa mgumu lakini kamwe hauwezekani, kwa hivyo ichukulie kama kikwazo cha kasi, si ulinzi, na usitegemee kamwe kulinda siri.

16. Gundua mazingira hatarishi ambapo ni muhimu

Kwa programu za benki, afya au zingine zenye hatari kubwa, fikiria ukaguzi wa vifaa vilivyozimwa au vilivyofungwa, virekebishaji na uchezaji. Hizi huongeza msuguano na kengele za uwongo, kwa hivyo zitumie kulingana na hatari halisi.

17. Omba ruhusa za chini kabisa

Omba kamera, eneo, anwani au ufikiaji wa hifadhi inapohitajika tu, na ueleze ni kwa nini. Ruhusa chache humaanisha kufichuliwa kidogo ikiwa programu imeathiriwa, na uaminifu zaidi kutoka kwa watumiaji.

18. Msimbo wa mtu mwingine wa Vet

Maktaba na SDK zinaendeshwa na ruhusa za programu yako. Kila moja ni udhaifu unaowezekana na swali la faragha. Weka orodha fupi, tumia vifurushi vilivyotunzwa vizuri, visasishe mara kwa mara na uhakiki data ambayo SDK yoyote ya uchanganuzi au matangazo inakusanya.

Mchakato na utayari

19. Jaribu usalama kabla ya kutolewa

Jumuisha usalama katika majaribio, si utendaji kazi pekee.

20. Jiandae kwa matukio na masasisho

Amua mapema utakachofanya ikiwa kitu kitaenda vibaya.

Faragha na utiifu

Usalama na faragha vinaingiliana lakini si sawa. Faragha inahusu unachokusanya na kwa nini, na kile ambacho watumiaji wanakubali.

Sekta nyeti zinahitaji uangalifu wa ziada. Ukurasa wetu kuhusu uundaji wa programu ya afya unaelezea mambo muhimu ya kubuni bidhaa zinazohusiana na afya.

Jedwali la marejeleo mafupi

EneoSwali muhimu
UhifadhiJe, kuna data yoyote nyeti iliyohifadhiwa, na iko katika hifadhi salama?
UthibitishajiJe, tunatumia viwango vilivyothibitishwa, vyenye vipindi vya muda mfupi, vinavyoweza kubatilishwa?
MtandaoJe, trafiki yote imesimbwa kwa njia fiche, bila siri katika programu?
APIJe, seva inaidhinisha na kuthibitisha kila ombi?
MalipoJe, maelezo ya kadi huenda moja kwa moja kwa mtoa huduma?
MsimboJe, miundo ya kutolewa imeondolewa vipengele vya utatuzi?
RuhusaJe, tunauliza tu kile tunachohitaji?
UtegemeziJe, maktaba za wahusika wengine ni chache, za sasa na zimekaguliwa?
UpimajiJe, usalama umejaribiwa kwa kujitegemea?
JibuJe, tunaweza kulazimisha masasisho na kujibu matukio?

Makosa ya kawaida

  1. Siri ngumu za usimbaji fiche kwenye programu.
  2. Kumwamini mteja kwa maamuzi kuhusu bei, majukumu au ufikiaji.
  3. Kuhifadhi tokeni katika mapendeleo ya kawaida.
  4. Kuacha mipangilio ya majaribio au kurekebisha uingiaji kwenye toleo.
  5. Kuruka ukaguzi wa idhini ya upande wa seva.
  6. Kuongeza SDK nyingi bila kukagua kile wanachokusanya.
  7. Kuchukulia usalama kama hatua ya mwisho badala ya kujadili mradi.
  8. Hakuna utaratibu wa sasisho kwa marekebisho ya haraka.
  9. Kutojaribu kwa mashambulizi halisi.
  10. Kusahau sehemu ya nyuma, ambapo uvunjaji mkubwa zaidi hutokea.

Nani anawajibika?

Kila mtu. Wamiliki wa bidhaa huamua ni data gani inayokusanywa na ni hatari gani inayokubalika. Wabunifu huunda mtiririko unaoepuka kufichuliwa bila lazima. Wasanidi programu hutekeleza ulinzi. Wajaribu hujaribu kuzivunja. Mshirika mzuri wa maendeleo huuliza maswali haya mapema, badala ya baada ya uzinduzi. Unapotathmini moja, uliza jinsi wanavyoshughulikia usalama; mwongozo wetu wa [kuchagua kampuni ya ukuzaji wa programu] (blogu/jinsi-ya-kuchagua-kampuni-ya-kuendeleza-programu) unajumuisha maswali yanayofichua hili.

Mawazo ya mwisho

Huwezi kuifanya programu ya simu kuwa salama kikamilifu, lakini unaweza kuifanya kuwa lengo gumu na lisilo na thawabu, na epuka hitilafu za kawaida zinazosababisha uvunjaji mwingi. Hifadhi kidogo, amini seva badala ya simu, tumia uthibitishaji uliothibitishwa, ficha trafiki, jaribu vizuri na upange wakati kitu kitaenda vibaya.

Ikiwa unapanga programu na unataka usalama ujengewe ndani tangu mwanzo, zungumza nasi. Tutakagua mahitaji yako, tutaonyesha hatari zinazohusika kwa bidhaa yako na kujenga ulinzi katika mpango, sio kuzifunga mwishoni.

Una mradi akilini?

Zungumza na RuhaniSoft