Gitea Security
What is Gitea
Gitea ni ufumbuzi wa mwenyeji wa jamii unaosimamiwa kwa urahisi wa kuhifadhi msimbo ulioandikwa kwa Go.
Basic Information
Lab
Ili kuendesha mfano wa Gitea kwa ndani unaweza tu kuendesha kontena la docker:
Connect to port 3000 to access the web page.
You could also run it with kubernetes:
Uainishaji Usio na Uthibitisho
Repos za umma: http://localhost:3000/explore/repos
Watumiaji waliosajiliwa: http://localhost:3000/explore/users
Mashirika yaliyojregistered: http://localhost:3000/explore/organizations
Kumbuka kwamba kwa kawaida Gitea inaruhusu watumiaji wapya kujiandikisha. Hii haitatoa ufikiaji wa kuvutia kwa watumiaji wapya juu ya repos za mashirika/watumiaji wengine, lakini mtumiaji aliyeingia anaweza kuwa na uwezo wa kuangalia repos au mashirika zaidi.
Ukatili wa Ndani
Kwa hali hii tunaenda kudhani kwamba umepata ufikiaji wa akaunti ya github.
Kwa Misingi ya Mtumiaji/Keki ya Mtandao
Ikiwa kwa namna fulani tayari una misingi ya mtumiaji ndani ya shirika (au umepora keki ya kikao) unaweza kuingia tu na kuangalia ni idhana gani unazo juu ya repos, katika timu zipi ulizo, orodhesha watumiaji wengine, na repos zimewezeshwaje.
Kumbuka kwamba 2FA inaweza kutumika hivyo utaweza kufikia taarifa hii tu ikiwa unaweza pia kupita ukaguzi huo.
Kumbuka kwamba ikiwa utafanikiwa kupora keki ya i_like_gitea
(sasa imewekwa na SameSite: Lax) unaweza kujifanya kuwa mtumiaji bila kuhitaji misingi au 2FA.
Kwa Funguo ya SSH ya Mtumiaji
Gitea inaruhusu watumiaji kuweka funguo za SSH ambazo zitatumika kama njia ya uthibitisho ya kupeleka msimbo kwa niaba yao (hakuna 2FA inayotumika).
Kwa funguo hii unaweza kufanya mabadiliko katika hifadhi ambapo mtumiaji ana baadhi ya mamlaka, hata hivyo huwezi kuitumia kufikia gitea api ili kuainisha mazingira. Hata hivyo, unaweza kuainisha mipangilio ya ndani ili kupata taarifa kuhusu repos na mtumiaji ulionao ufikiaji:
Ikiwa mtumiaji ameweka jina lake la mtumiaji kama jina lake la gitea unaweza kufikia funguo za umma alizoweka kwenye akaunti yake katika https://github.com/<gitea_username>.keys, unaweza kuangalia hili kuthibitisha kuwa funguo binafsi ulizozipata zinaweza kutumika.
Funguo za SSH pia zinaweza kuwekwa katika hifadhi kama funguo za kutekeleza. Mtu yeyote mwenye ufikiaji wa funguo hii ataweza kuanzisha miradi kutoka kwenye hifadhi. Kawaida katika seva yenye funguo tofauti za kutekeleza, faili ya ndani ~/.ssh/config
itakupa habari kuhusu funguo inayohusiana.
Funguo za GPG
Kama ilivyoelezwa hapa wakati mwingine inahitajika kusaini mabadiliko au unaweza kugunduliwa.
Angalia kwa ndani ikiwa mtumiaji wa sasa ana funguo yoyote kwa:
Kwa Kutumia Token ya Mtumiaji
Kwa utangulizi kuhusu Token za Mtumiaji angalia taarifa za msingi.
Token ya mtumiaji inaweza kutumika badala ya nenosiri ili kujiandikisha dhidi ya seva ya Gitea kupitia API. itakuwa na ufikiaji kamili juu ya mtumiaji.
Kwa Kutumia Oauth Application
Kwa utangulizi kuhusu Programu za Oauth za Gitea angalia taarifa za msingi.
Mshambuliaji anaweza kuunda Programu ya Oauth yenye uharibifu ili kupata data/hatua za kipaumbele za watumiaji wanaoweza kuzikubali kama sehemu ya kampeni ya uvuvi.
Kama ilivyoelezwa katika taarifa za msingi, programu itakuwa na ufikiaji kamili juu ya akaunti ya mtumiaji.
Kupita Ulinzi wa Tawi
Katika Github tuna github actions ambazo kwa default hupata token yenye ufikiaji wa kuandika juu ya repo ambayo inaweza kutumika kupita ulinzi wa tawi. Katika kesi hii hiyo haipo, hivyo kupita ni mdogo zaidi. Lakini hebu tuangalie kile kinachoweza kufanywa:
Washa Push: Ikiwa mtu yeyote mwenye ufikiaji wa kuandika anaweza kusukuma kwenye tawi, sukuma tu.
Orodha ya Pus h iliyozuiwa: Kwa njia ile ile, ikiwa wewe ni sehemu ya orodha hii sukuma kwenye tawi.
Washa Orodha ya Mchanganyiko: Ikiwa kuna orodha ya mchanganyiko, unahitaji kuwa ndani yake.
Hitaji idhini ni kubwa kuliko 0: Kisha... unahitaji kumaliza mtumiaji mwingine.
Zuia idhini kwa watumiaji waliotajwa: Ikiwa ni watumiaji waliotajwa pekee wanaweza kuidhinisha... unahitaji kumaliza mtumiaji mwingine aliye ndani ya orodha hiyo.
Futa idhini za zamani: Ikiwa idhini haziondolewa na komiti mpya, unaweza kuiba PR iliyothibitishwa tayari ili kuingiza msimbo wako na kuunganisha PR.
Kumbuka kwamba ikiwa wewe ni admin wa org/repo unaweza kupita ulinzi.
Kuorodhesha Webhooks
Webhooks zinaweza kutuma taarifa maalum za gitea mahali fulani. Unaweza kuwa na uwezo wa kuitumia mawasiliano hayo. Hata hivyo, kawaida siri ambayo huwezi kuipata imewekwa katika webhook ambayo itazuia watumiaji wa nje wanaojua URL ya webhook lakini si siri kuweza kuitumia webhook hiyo. Lakini katika matukio mengine, watu badala ya kuweka siri mahali pake, wanaweza kuweka katika URL kama parameter, hivyo kuangalia URLs kunaweza kukuruhusu kupata siri na maeneo mengine ambayo unaweza kuendeleza zaidi.
Webhooks zinaweza kuwekwa katika repo na katika kiwango cha org.
Baada ya Kutumia
Ndani ya seva
Ikiwa kwa namna fulani umeweza kuingia ndani ya seva ambapo gitea inafanya kazi unapaswa kutafuta faili ya usanidi wa gitea. Kwa default inapatikana katika /data/gitea/conf/app.ini
Katika faili hii unaweza kupata funguo na nenosiri.
Katika njia ya gitea (kwa default: /data/gitea) unaweza pia kupata taarifa za kuvutia kama:
DB ya sqlite: Ikiwa gitea haitumii db ya nje itatumia db ya sqlite.
sessions ndani ya folda za sessions: Ukikimbia
cat sessions/*/*/*
unaweza kuona majina ya watumiaji walioingia (gitea inaweza pia kuhifadhi sessions ndani ya DB).jwt private key ndani ya folda ya jwt.
Taarifa zaidi nyeti zinaweza kupatikana katika folda hii.
Ikiwa uko ndani ya seva unaweza pia kutumia gitea
binary kupata/kubadilisha taarifa:
gitea dump
itatoa gitea na kuunda faili .zip.gitea generate secret INTERNAL_TOKEN/JWT_SECRET/SECRET_KEY/LFS_JWT_SECRET
itaunda token ya aina iliyoonyeshwa (uhifadhi).gitea admin user change-password --username admin --password newpassword
Badilisha nenosiri.gitea admin user create --username newuser --password superpassword --email user@user.user --admin --access-token
Unda mtumiaji mpya wa admin na pata token ya ufikiaji.
Last updated