CircleCI Security
Taarifa za Msingi
CircleCI ni jukwaa la Utekelezaji wa Kiotomatiki ambapo unaweza kuweka mifano inayoonyesha unachotaka ifanye na baadhi ya nambari na wakati wa kufanya hivyo. Kwa njia hii unaweza kutia mtihani kiotomatiki au kutekeleza moja kwa moja kutoka tawi kuu la repo yako kwa mfano.
Ruhusa
CircleCI inaurithi ruhusa kutoka github na bitbucket inayohusiana na akaunti inayoingia. Katika majaribio yangu niligundua kwamba muda mrefu kama una ruhusa ya kuandika kwenye repo kwenye github, utaweza kusimamia mipangilio ya mradi wake katika CircleCI (weka funguo mpya za ssh, pata funguo za api za mradi, tengeneza matawi mapya na mipangilio mipya ya CircleCI...).
Hata hivyo, unahitaji kuwa msimamizi wa repo ili ubadilishe repo kuwa mradi wa CircleCI.
Mazingira ya Mfumo & Siri
Kulingana na nyaraka kuna njia tofauti za kupakia thamani kwenye mazingira ya mfumo ndani ya mchakato.
Mazingira ya mfumo yaliyojengwa
Kila chombo kinachotumika na CircleCI kitakuwa na mazingira maalum ya mfumo yaliyoorodheshwa kwenye nyaraka kama vile CIRCLE_PR_USERNAME
, CIRCLE_PROJECT_REPONAME
au CIRCLE_USERNAME
.
Nakala wazi
Unaweza kuyatangaza kwa wazi ndani ya amri:
Unaweza kuzitangaza kwa maandishi wazi ndani ya mazingira ya kukimbia:
Unaweza kuzitangaza kwa maandishi wazi ndani ya mazingira ya kazi ya ujenzi:
Unaweza kuzitangaza kwa maandishi wazi ndani ya mazingira ya kontena:
Siri za Mradi
Hizi ni siri ambazo zitapatikana tu na mradi (na tawi lolote). Unaweza kuziona zimetajwa katika https://app.circleci.com/settings/project/github/<org_name>/<repo_name>/environment-variables
Kazi ya "Kuagiza Vipimo" inaruhusu kuagiza vipimo kutoka miradi mingine hadi hii.
Siri za Muktadha
Hizi ni siri ambazo ni kwa kampuni nzima. Kwa kawaida repo yoyote itaweza kupata siri yoyote iliyohifadhiwa hapa:
Hata hivyo, kumbuka kwamba kikundi tofauti (badala ya Wajumbe Wote) kinaweza kuchaguliwa ili kumpa ufikivu wa siri kwa watu maalum. Hii kwa sasa ni njia moja bora ya kuongeza usalama wa siri, kuzuia kila mtu kupata lakini ni baadhi ya watu tu.
Mashambulizi
Tafuta Siri za Nakala Wazi
Ikiwa una ufikivu wa VCS (kama github) angalia faili .circleci/config.yml
ya kila repo kwenye kila tawi na tafuta siri za nakala wazi zilizohifadhiwa hapo.
Vipimo vya Siri za Mazingira & Uchambuzi wa Muktadha
Kwa kuangalia nambari unaweza kupata majina yote ya siri ambayo yanatumika katika kila faili ya .circleci/config.yml
. Unaweza pia kupata majina ya muktadha kutoka faili hizo au kuzichunguza kwenye konsoli ya wavuti: https://app.circleci.com/settings/organization/github/<org_name>/contexts.
Exfiltrate Siri za Mradi
Ili kuchukua NAKALA zote za mradi na muktadha SIRI unahitaji tu kuwa na ufikivu wa KUANDIKA kwa repo 1 tu katika kampuni nzima ya github (na akaunti yako lazima iwe na ufikivu wa muktadha lakini kwa kawaida kila mtu anaweza kupata kila muktadha).
Kazi ya "Kuagiza Vipimo" inaruhusu kuagiza vipimo kutoka miradi mingine hadi hii. Hivyo, mshambuliaji anaweza kuagiza vipimo vyote vya mradi kutoka kwenye repos zote na kisha kuchukua yote pamoja.
Siri zote za mradi daima hutiwa katika mazingira ya kazi, hivyo tu kuita mazingira na kuficha katika base64 itachukua siri katika konsoli ya wavuti ya rekodi za kazi:
Ikiwa huna ufikiaji wa konsoli ya wavuti lakini una ufikiaji wa repo na unajua kwamba CircleCI inatumika, unaweza tu kuunda mchakato ambao unaanzishwa kila dakika na kutuma siri kwenda kwenye anwani ya nje:
Toa Siri za Muktadha
Unahitaji kuainisha jina la muktadha (hii pia itatoa siri za mradi):
Ikiwa huna ufikiaji wa konsoli ya wavuti lakini una ufikiaji wa repo na unajua kuwa CircleCI inatumika, unaweza tu kurekebisha mchakato ambao unaanzishwa kila dakika na kutoa siri kwenda anwani ya nje:
Kuunda .circleci/config.yml
mpya katika repo haitoshi kusababisha ujenzi wa circleci. Unahitaji kuwezesha kama mradi katika konsoli ya circleci.
Kutoroka Kwenda Kwenye Cloud
CircleCI inakupa chaguo la kukimbia ujenzi wako kwenye mashine zao au kwenye zako. Kwa chaguo-msingi, mashine zao zinapatikana kwenye GCP, na mwanzoni hutaweza kupata kitu chochote kinachofaa. Walakini, ikiwa muathiriwa anatekeleza kazi kwenye mashine zao (kwa uwezekano, kwenye mazingira ya wingu), unaweza kupata kituo cha metadata cha wingu chenye habari muhimu.
Tambua kwamba katika mifano iliyopita kila kitu kilizinduliwa ndani ya chombo cha docker, lakini pia unaweza kuomba kuzindua mashine ya VM (ambayo inaweza kuwa na ruhusa tofauti za wingu):
Au hata kontena ya docker yenye ufikivu wa huduma ya docker ya mbali:
Uthabiti
Inawezekana kuunda vitambulisho vya mtumiaji kwenye CircleCI ili kupata ufikiaji wa vituo vya API na ufikiaji wa watumiaji.
https://app.circleci.com/settings/user/tokens
Inawezekana kuunda vitambulisho vya miradi ili kupata mradi na ruhusa zilizotolewa kwa kitambulisho.
https://app.circleci.com/settings/project/github/<org>/<repo>/api
Inawezekana kuongeza funguo za SSH kwenye miradi.
https://app.circleci.com/settings/project/github/<org>/<repo>/ssh
Inawezekana kuunda kazi ya cron kwenye tawi lililofichwa kwenye mradi usiotarajiwa ambao unatoa mazingira ya siri ya mazingira kila siku.
Au hata kuunda kazi kwenye tawi/ kurekebisha kazi inayojulikana ambayo itatoa mazingira ya siri ya mazingira na miradi kila siku.
Ikiwa wewe ni mmiliki wa github unaweza kuruhusu mizunguko isiyothibitishwa na kuiwezesha kwenye kazi kama mlango wa nyuma
Unaweza kupata udhaifu wa kuingiza amri katika kazi fulani na kuingiza amri kupitia siri kwa kubadilisha thamani yake
Last updated