Kuficha si sawa na Kulinda
Mtendaji ambaye si mhandisi hivi karibuni alitengeneza B2B SaaS ndani ya siku mbili. Walitumia AI kuandika kila kitu. Bidhaa inafanya kazi. Wateja wanaitumia. Vipengele vinatolewa kwa haraka.
Kisha nilichukua usimamizi wa miundombinu. Kazi yangu ni kutambua hatari katika kodi ambayo tayari inafanya kazi kwenye uzalishaji (production).
Niligundua hitilafu kubwa ya usalama. API key ilikuwa imewekwa moja kwa moja (hardcoded) kwenye kodi chanzo (source code).
Nilimwambia mtendaji kuwa hii ilikuwa hatari. Walirekebisha mara moja.
Funguo hiyo iliondolewa kwenye kodi, lakini sasa ilikuwa kwenye faili la README kama hatua ya usanidi (setup). Siri hiyo ilihamia kutoka kwenye kodi kwenda kwenye hati (documentation). Bado ilikuwa ndani ya repository. Kwa kweli, sasa ilikuwa rahisi zaidi kuipata.
Nilieleza tatizo tena. Wakati huu, walihamishia funguo hiyo kwenye database.
Hilo lilionekana kama maendeleo. Funguo ilikuwa nje ya repository. Lakini nilipokagua database, funguo hiyo ilikuwa hapo katika mfumo wa plaintext. Hakukuwa na encryption. Mtu yeyote mwenye ufikiaji wa database angeweza kuisoma.
Funguo ilihamia mara tatu:
- Kutoka kwenye kodi chanzo (source code)
- Kwenda kwenye README
- Kwenda kwenye database
Mahali palibadilika, lakini usalama haukuimarika. Walikuwa wakificha siri (hiding), si kuificha kwa usalama (concealing).
Kuficha (Hiding) inamaanisha kuweka kitu nje ya uoni. Kuificha kwa usalama (Concealing) inamaanisha kuifanya isitumike na mshambuliaji.
Katika programu (software), lazima ufuate sheria hizi:
- Usiweke siri kwenye repository yako kamwe. Hii inajumuisha kodi, faili za README, au faili za usanidi (config files).
- Ingiza thamani kutoka nje ya runtime ukitumia environment variables au secret manager.
- Ikiwa unatumia database, encrypt thamani hiyo. Plaintext ni hatari.
- Rotate funguo yoyote ambayo wakati fulani ilionekana katika mfumo wa plaintext.
Hii ilitokea hata hivyo mtendaji alitumia mifano ya AI ya kisasa zaidi inayopatikana.
AI imetengenezwa kukupa kodi inayofanya kazi. Itafurahi kuandika kodi inayohusisha siri ya plaintext ikiwa hutaiambia vinginevyo. AI inatoa uwezo, lakini haitoi usalama moja kwa moja.
Akili inakuwa usalama tu pale unapojua nini cha kulinda.
Ikiwa unadhani umerekebisha tundu la usalama kwa sababu tu umelihamishia mahali pengine, acha. Jiulize:
- Je, bado ipo kwenye repository?
- Je, ufikiaji umezuiliwa kwa watu wanaohitaji tu?
- Je, data imesimbwa (encrypted)?
Siri inapaswa kuwa mahali sahihi, si tu mahali pasipoonekana.
Source: https://dev.to/jun_uen0/playing-hide-and-seek-with-an-api-key-our-cfos-claude-code-kept-hiding-job
Optional learning community: https://t.me/GyaanSetuAi