CircleCI Security
Taarifa Msingi
CircleCI ni jukwaa la Utekelezaji wa Kiotomatiki ambapo unaweza kuweka mifano inayoonyesha unachotaka kufanya na baadhi ya nambari na wakati wa kufanya hivyo. Hivi unaweza kutautomatisha majaribio au kupakia moja kwa moja kutoka tawi kuu la repo yako kwa mfano.
Ruhusa
CircleCI inarithi ruhusa kutoka kwa github na bitbucket inayohusiana na akaunti inayoingia. Katika majaribio yangu niligundua kwamba muda mrefu kama una ruhusa za kuandika kwenye repo kwenye github, utaweza kusimamia mipangilio ya mradi wake kwenye CircleCI (weka funguo mpya za ssh, pata funguo za api za mradi, tengeneza matawi mapya na mizani mpya ya CircleCI...).
Hata hivyo, unahitaji kuwa msimamizi wa repo ili ubadilishe repo kuwa mradi wa CircleCI.
Mazingira ya Mipangilio & Siri
Kulingana na nyaraka kuna njia tofauti za kupakia thamani kwenye mazingira ya pembejeo ndani ya mchakato.
Mazingira ya pembejeo iliyojengwa
Kila chombo kinachotumika na CircleCI kitakuwa na mazingira maalum ya pembejeo yaliyoorodheshwa kwenye nyaraka kama vile CIRCLE_PR_USERNAME
, CIRCLE_PROJECT_REPONAME
au CIRCLE_USERNAME
.
Nakala wazi
Unaweza kuzitangaza 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 zitakuwa zinafikiwa tu na mradi (na tawi lolote). Unaweza kuziona zikiwa 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 kina cha shirika. Kwa kawaida repo yoyote itaweza kufikia siri yoyote iliyohifadhiwa hapa:
Hata hivyo, kumbuka kwamba kikundi tofauti (badala ya Wajumbe Wote) kinaweza kuchaguliwa ili kumpa ufikiaji wa siri watu wanaotakiwa. Hii kwa sasa ni njia moja bora ya kuongeza usalama wa siri, kuzuia kila mtu kuzipata lakini ni watu fulani tu.
Mashambulizi
Tafuta Siri za Nakala Wazi
Ikiwa una ufikiaji wa VCS (kama github) angalia faili .circleci/config.yml
ya kila repo kwenye kila tawi na tafuta siri za nakala wazi zilizohifadhiwa humo.
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 kwenye 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 siri za mradi na muktadha unahitaji kuwa na ufikiaji wa KUANDIKA kwa repo 1 tu katika shirika lote la github (na akaunti yako lazima iwe na ufikiaji wa muktadha lakini kwa kawaida kila mtu anaweza kufikia 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 kuwa CircleCI inatumika, unaweza tu kuunda mchakato ambao unaanzishwa kila dakika na kutoa siri kwenda 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 kwamba CircleCI inatumika, unaweza tu kurekebisha mchakato ambao unaanzishwa kila dakika na kutoa siri kwenda anwani ya nje:
Kuunda faili mpya ya .circleci/config.yml
kwenye repo haitoshi kusababisha ujenzi wa circleci. Unahitaji kuwezesha kama mradi kwenye konsoli ya circleci.
Kutoroka Kwenda Kwenye Cloud
CircleCI inakupa chaguo la kukimbia ujenzi wako kwenye mashine zao au kwenye zako mwenyewe. Kwa chaguo-msingi, mashine zao ziko kwenye GCP, na mwanzoni huenda usipate kitu cha maana. Walakini, ikiwa muathiriwa anatekeleza kazi kwenye mashine zao wenyewe (labda, 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 la docker lenye ufikivu wa huduma ya docker ya mbali:
Uthabiti
Inawezekana kuunda vibali vya mtumiaji kwenye CircleCI ili kupata ufikiaji wa vituo vya API na ufikiaji wa watumiaji.
https://app.circleci.com/settings/user/tokens
Inawezekana kuunda vibali vya miradi ili kupata mradi na ruhusa zilizotolewa kwa funguo.
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 unafichua mazingira ya mazingira kila siku.
Au hata kuunda kwenye tawi / kurekebisha kazi inayojulikana ambayo itafichua mazingira yote na siri za 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