Fahalemena amin'ny fiakaran'ny tombontsoa

Fahalemena amin'ny fiakaran'ny tombontsoa CI/CD pipelines

Ny ankamaroan'ny ekipa dia mihevitra ny fahalemen'ny fampitomboana ny tombontsoa ho toy ny bug kernel na fampiasana diso sudo amin'ny mpizara famokarana. Amin'ny taona 2026, ny dikan-teny mampidi-doza kokoa dia mipetraka any an-kafa: ao amin'ny pipeline izay manorina sy mandefa ny kaody-nao. A CI/CD Ny asa dia mitazona tsy tapaka ny fidirana an-tsoratra amin'ny tahiry, ny mari-pamantarana ho an'ny rejisitra fonosanao ary ny fahazoan-dàlana ho an'ny rahonao. Ny mpanafika izay mampandeha ny kaody ao anatin'io asa io dia tsy mila mampitombo be loatra. Ny pipeline efa nanao izany ho azy ireo.

Ity torolàlana ity dia manazava ny endriky ny fahalemena amin'ny fampitomboana ny tombontsoa manokana ao amin'ny CI/CD pipelines sy ireo fitoeran-javatra, dia manazava ireo lalana mahazatra indrindra ampiasain'ireo mpanafika, ary mampiseho ny fomba hanakatonana azy ireo tsirairay avy.

TL;DR: fahalemena amin'ny fampitomboana ny tombontsoa manokana ao amin'ny CI/CD pipelines

Ao anatin'ny pipeline, matetika ny mpanafika dia tsy mila mampitombo ny tombontsoa azony. Ny pipeline efa manana azy ireo. Fahalemena amin'ny fampitomboana ny tombontsoa manokana ao amin'ny CI/CD dia matetika fahazoan-dàlana nalaina mihoatra noho izay ilain'ny asa, miandry ny kaody tsy azo itokisana hiasa ao anatiny.

  • Pipelinemanana tombontsoa amin'ny famolavolana ny s. Mamaky kaody loharano izy ireo, mitahiry tsiambaratelo, mamoaka zavatra tranainy ary mampiasa azy ireo amin'ny famokarana, izay mahatonga azy ireo ho iray amin'ireo lasibatra sarobidy indrindra amin'ny fampitomboana ny varotra ao amin'ny orinasanao.
  • Ny ankamaroan'ny lalan'ny fanandratana dia fahadisoana amin'ny fametrahana azy, fa tsy fanararaotana. Token mahazatra mivelatra, pull_request_target Ireo fomba fiasa izay mampiasa ny kaody fork, ary ireo fanalahidy rahona maharitra ela dia miteraka fahasimbana bebe kokoa noho ny zero-day rehetra.
  • Ny fampitomboana ny tombontsoa azo avy amin'ny "container" dia mamadika asa iray ho lasa asa manontolo. Ny fitoeran-javatra manokana, ny mpampiasa faka ary ny socket Docker napetraka dia mahatonga ny fitoeran-javatra fananganana ho varavarana, fa tsy sisin-tany.
  • Efa mitranga amin'ny ankapobeny izany. Nampiasa fidirana ambony kokoa tamin'ny GitHub Actions runners ny kankana CHAINDROP mba hamakiana ny mombamomba ny mpampiasa avy hatrany ao amin'ny fitadidian'ny runner.
  • Tsy dia manan-danja loatra ny fanamboarana, ampiharina tsy tapaka. Diniho tsara ny famantarana rehetra, hamafiso ny fitoeran-javatra rehetra ary fantaro ny fiovaovan'ny fahazoan-dàlana alohan'ny hahitan'ny mpanafika azy.

Inona no atao hoe fahalemena?

Ny fahalemena amin'ny fampitomboana ny tombontsoa dia izay fahalemena rehetra ahafahan'ny mpampiasa, ny dingana, na ny sombin-kaody mahazo alalana mihoatra noho izay tokony ho izy. Ny MITRE ATT&CK dia mihevitra izany ho tetika manokana, TA0004: Fampiakarana ny Tombontsoa, satria io dingana io no mamadika ny toerana kely ho fahasimbana tena izy.

Misy karazany roa ny fomba klasika:

  • Fitomboana mitsangana: miakatra, ohatra, avy amin'ny mpampiasa mahazatra mankany amin'ny root, na avy amin'ny token read-only mankany amin'ny iray izay afaka manoratra.
  • Fitomboana mitsivalana: mihetsika amin'ny ilany, ohatra amin'ny fampiasana ny fidiran'ny asa iray mba hahatongavana any amin'ny tahiry, tsiambaratelo, na tontolo iainan'ny ekipa iray hafa.

Manararaotra ny fahalemena amin'ny fampitomboana ny tombontsoa ireo mpanafika amin'ny alalan'ny karazana fahalemena telo: bibikely amin'ny rindrambaiko, fandrindrana diso, ary fahazoan-dàlana tafahoatra. Amin'ny mpizara, ny bibikely no tena mahazo ny sain'ny maro. Ao amin'ny CI/CD pipelines, ny fandrindrana diso sy ny fahazoan-dàlana tafahoatra no saika manao ny asa rehetra.

Nahoana no mampidi-doza be izany ao amin'ny CI/CD pipelines

A pipeline Tsy fitaovana fananganana fotsiny ihany ny "identity". Fitaovana famantarana mandeha ho azy miaraka amin'ny fidirana midadasika indrindra ao amin'ny orinasanao izy io. Ny asa mahazatra dia mety:

  • Jereo ary ovay ny kaody loharano
  • Vakio ny tsiambaratelo avy amin'ny variables environment, vaults, ary cloud metadata services
  • Mamoaka fonosana, sary ary mamoaka zavatra efa vita
  • Ampiharina amin'ny fampisehoana sy ny famokarana

The OWASP Top 10 CI/CD Loza ho an'ny filaminana manonona mivantana ity olana ity. Ny risika mety hitranga CICD-SEC-5: Tsy ampy PipelineFanaraha-maso fidirana mifototra amin'ny mamaritra ny fomba fiasan'ireo mpanafika izay mampiasa kaody maloto ao anaty pipeline manararaotra ny fahazoan-dàlana nomena azy hihetsika amin'ny ilany, ao anatiny na ivelan'ny CI/CD rafitra.

Tsy teoria izany. Nandritra ny fampielezan-kevitra CHAINDROP tamin'ny Aogositra 2026, ny malware naka fahazoan-dàlana vonjimaika avy amin'ny fitadidiana mpihazakazaka GitHub Actions ary nampiasa ireo mari-pamantarana famoahana nangalarina mba hampidirana fonosana bebe kokoa. Amin'ny Linux, ny payload nampiasa ny sudo ny mpanangona azy hamaky ny fitadidian'ny fizotran'ny mpihazakazaka. Izany dia fiakaran'ny tombontsoa manokana ao amin'ny CI/CD pipelineamin'ny endriny madio indrindra: fiankinan-doha misy poizina, fidirana ambony kokoa amin'ny mpihazakazaka, ary ny tsiambaratelo rehetra mety ho voakasiky ny asa. Mitovy amin'ny lamina hitantsika amin'ny fikarohana isan-kerinandro momba ny fonosana npm ratsy fanahy.

Aiza no misy ny fahalemena amin'ny fampitomboana ny tombontsoa manokana ao amin'ny pipeline?

Lalana enina iraisana, izay sokafan'ny tsirairay ho an'ny mpanafika, ary ny fifehezana izay manidy azy.

Lalana fisondrotanaAhoana no mitrangaIzay azon'ny mpanafikaAhoana ny fomba hanakatonana azy
Be loatra pipeline famantaranaMiasa miaraka amin'ny sehatra famantarana mahazatra mivelatra ny workflows satria tsy misy permissions napetraka ny sakanaFahafahana manoratra amin'ny kaody, famoahana ary fomba fiasa hafaMametraha ny safidy "read-only" ary omeo alalana ny fidirana manoratra isaky ny asa, raha ilaina ihany
misy poizina pipeline famonoanapull_request_target na ireo trigger mitovy amin'izany dia jereo ary ampandehano ny code avy amin'ny fork tsy azo itokisanaTsiambaratelo fitahirizana sy mari-pamantarana fanoratana, avy amin'ny iray pull requestAza mampiasa kaody fork mihitsy ao anatin'ny toe-javatra manokana; zarao ny asa azo itokisana sy ny asa tsy azo itokisana
Fanamafisana ny tombontsoa azo avy amin'ny fitoeran-javatraMiasa amin'ny maha-root, amin'ny fomba privileged, na miaraka amin'ny Docker socket napetraka ny Build containersMiorim-paka amin'ny mpampiantrano runner ary miditra amin'ny asa rehetra tanterahinyAlefaso amin'ny endrika tsy misy faka, esory ny fahafaha-manao ary sakano ny fampitomboana ny tombontsoa ao amin'ny famaritana ny fitoeran-javatra
Fahazoan-dàlana maharitra amin'ny rahonaLakile rahona statika voatahiry ho tsiambaratelo na fiovaovan'ny tontolo iainanaFidirana maharitra amin'ny kaonty rahona, ela be aorian'ny fiafaran'ny asaMampiasà fahazoan-dàlana fohy ezaka sy iraisana ary manafoana ho azy ny tsiambaratelo naharihary
Ireo mpihazakazaka maharitra izay mampiantrano tenaAverina ampiasaina manerana ny asa sy ny tahiry ireo "runners" nefa tsy averina amboarina indrayFaharetana, ary ny fahaizana manova ny fomba fiasan'ny ekipa hafaAmpiasao ireo mpihazakazaka vetivety ary saraho araka ny haavon'ny fahatokisana izy ireo
Kaonty olombelona manana tombontsoa tafahoatraMiangona ireo mpitantana tsy miasa, ireo mpiara-miasa ivelany ary ireo fanovana fahazoan-dàlana tsy nodinihinaKaonty manan-kery izay azo ovaina pipelinefiarovana ny sampana sy ny sampanaAvereno jerena tsy tapaka ny fidirana ary ampahafantaro raha misy fanovana tsy ara-dalàna amin'ny fahazoan-dàlana

Fanamafisana ny tombontsoa azo avy amin'ny "container": rehefa tsy fetra ny "build container"

Toy ny fitokana-monina ny fitoeran-javatra, ka matetika ny ekipa no mihevitra azy ireo ho toy ny fetra fiarovana. CI/CD, matetika izy ireo dia tsy iray. Mitranga ny fiakaran'ny tombontsoa azo avy amin'ny "container" rehefa mahazo ny fifehezana ny "host" ny kaody ao anatin'ny "build container", ary miaraka amin'izany ny asa hafa rehetra miasa ao.

Misy safidy telo azo isafidianana amin'ny ankamaroan'ny toe-javatra:

  1. Miasa toy ny faka. Raha faka ny dingana ao anatin'ilay fitoeran-javatra, dia manomboka amin'ny toerana matanjaka indrindra azo atao ny fipoahana rehetra.
  2. Fomba manokana. Ny "privileged container" dia manana fidirana mitovy amin'ny "host" toy ny dingana miasa mivantana eo aminy.
  3. Sokety Docker napetraka. nitombo /var/run/docker.sock ao anaty asa iray mba hahafahany manorina sary mahomby amin'ny tanana izay mamaka ny asa ao amin'ny mpampiantrano, satria afaka manomboka fitoeran-javatra vaovao manana tombontsoa manokana izy.

Nasehon'ireo mpikaroka momba ny fiarovana ny fomba fiasan'izany amin'ny rafitra CI tena izy. Tao anatin'ny tranga iray voarakitra tsara, ireo mpikaroka dia niova avy amin'ny script fananganana miasa ao anaty fitoeran-javatra CI ho amin'ny fandosirana feno ao amin'ny mpampiantrano fananganana Cloudflare Pages, precissatria noheverina ho sisin-tany fiarovana ilay kaontenera.

Toy izao ny endriky ny famaritana asa Kubernetes nohamafisina. Ny fikirana fototra dia allowPrivilegeEscalation: false, izay manakana ny dingana iray tsy hahazo tombontsoa bebe kokoa noho ny ray aman-dreniny, ohatra amin'ny alalan'ny binaries setuid.

ci-build-pod.yamlKubernetes
# Pod fanamboarana mafy: manakana ny lalana fampitomboana ny tombontsoa azo avy amin'ny fitoeran-javatra mahazatra indrindra
dikan-teny api: v1
tsara fanahy: pod
Metadata:
  anarana: fananganana-tanàna
spec:
  fiarovanaContext:
    runAsNonRoot: marina
    runAsUser: 10001
    seccompProfil:
      karazana: RuntimeDefault
  fitoeran: - anarana: manao
      sary: registry.example.com/build-image@sha256:
      fiarovanaContext:
        mamela ny Fitomboan'ny Tombontsoa: diso
        tombontsoa: diso
        readOnlyRootRafitra rakitra: marina
        fahaiza-manao:				

Mitovy amin'izany ihany koa ny fitsipika ho an'ny Dockerfile. Ampio mpampiasa tsy root ary ovay amin'izany alohan'ny fidirana:

dockerfileDocker
# Ampandehano amin'ny maha-mpampiasa tsy root azy ny container
FROM node:22-slim
Run useradd --uid 10001 --mamorona-trano mpanorina
WORKDIR /app
Copy --chown=mpanao trano:mpanao trano . .
USER mpanorina
CMD ["node", "index.js"]
Antony ilàna izany: tsy misy a USER toromarika, ny fitoeran-javatra dia miasa amin'ny maha-root azy. Ny fifindrana ho mpampiasa natokana alohan'ny fidirana dia midika fa ny dingana voajirika dia manomboka amin'ny tombontsoa kely indrindra azo atao.

Ny antontan-taratasy Kubernetes momba ny fandrindrana ny tontolo fiarovana mandrakotra amin'ny antsipiriany ny tsirairay amin'ireo fikirana ireo.

GitHub Actions: fahalemena amin'ny fiakaran'ny mari-pana miafina miharihary

Ny GitHub Actions no toerana voalohany iatrehan'ny ekipa maro ny fiakaran'ny tombontsoa manokana. CI/CD pipelines, satria toa mahazatra tanteraka ireo lamina mampidi-doza. Mendrika hojerena ao amin'ny tahiry rehetra ankehitriny ny roa.

Sehatry ny famantarana. Ny fizotran'asa rehetra dia mahazo GITHUB_TOKENNy torolàlana manokan'ny GitHub momba ny fanamarinana famantarana mandeha ho azy Mazava tsara: afaka mahatratra io token io ny hetsika iray na dia tsy ampitanao mazava tsara aza izany, ka tokony ho feranao ho faran'izay kely foana ny fahazoan-dàlana ananany. Ny fametrahana fahazoan-dàlana mamaky fotsiny eo an-tampon'ny workflow sy ny fanomezana fidirana amin'ny fanoratana isaky ny asa dia manala ny lalan'ny fampitomboana mahazatra indrindra amin'ny dingana iray:

.github/workflows/build.ymlFihetsiketsehana GitHub
anarana: manao
on: [hanoto]

# Fampiasa mahazatra ho an'ny asa rehetra: vakiana ihany
alalana:
  Hevitra ato Anatiny: vakio ny

asa:
  fitsapana:
    mihazakazaka: ubuntu-farany
    dingana:
      # Ampidiro ho feno ny hetsika ataon'ny antoko fahatelo commit SHA, tsy marika azo ovaina
      - fampiasana: hetsika/fandoavana@commit-sha>
      - Run: npm ci && fitsapana npm

  famotsorana:
    zavatra ilaina: fitsapana
    mihazakazaka: ubuntu-farany
    # Ity asa ity ihany no afaka manoratra, ary izay ilainy ihany
    alalana:
      Hevitra ato Anatiny: manoratra
    dingana: - fampiasana: hetsika/fandoavana@commit-sha>
      - Run: ./scripts/release.sh
Antony ilàna izany: Manomboka amin'ny famakiana fotsiny ny asa rehetra, ary ny asa famoahana ihany no afaka manoratra. Raha simba ny fiankinan-doha amin'ny asa fitsapana, dia tsy afaka miditra amin'ny fanoratana ao amin'ny tahiryo ny token azony tratrarina.

Ireo zavatra mahatonga azy tsy azo itokisana. Fizotran'ny asa nateraky ny pull_request_target miasa miaraka amin'ny tsiambaratelon'ny tahiry kendrena sy ny token afaka manoratra, na dia rehefa pull request avy amin'ny fork. Raha manamarina sy mampiasa ny kaodin'ny fork io workflow io, dia afaka manokatra pull request ary manatanteraka kaody miaraka amin'ny tombontsoanao. Fahalemena mampitombo ny tombontsoa izany izay tsy mila fanararaotana mihitsy, fa pull requestTazomy ireo dingana manokana amin'ny kaody azo itokisana, ary ampandehano amin'ny fomba fiasa misaraka tsy misy tsiambaratelo ny kaody tsy azo itokisana.

Raha te hahita ireo lamina ireo amin'ny toerana azo antoka ianao, ny osy xygeni manangona an-tsitrapo tsy azo antoka ny tahiry pipeline sy IaC firafitra ho an'ny fiofanana. Raha mila famerenana mivelatra kokoa momba ny fametrahana ny GitHub-nao, jereo ny torolàlana momba ny Ahoana no ahafantarana raha azo antoka ny fampiharana na tahiry GitHub.

Ahoana no hisorohana ny fahalemena amin'ny fampitomboana ny tombontsoa amin'ny CI/CD pipelines

Fitomboan'ny tombontsoa fanakatonana ao amin'ny CI/CD pipelineNy s dia miankina amin'ny fitsipika iray: ny tombontsoa kely indrindra, ampiharina amin'ny sosona rehetra ary jerena tsy tapaka fa tsy indray mandeha. Lisitra azo ampiharina:

  1. Jereo ny mari-pamantarana tsirairay. Vakiana ihany amin'ny ankapobeny, fidirana manoratra isaky ny asa, ary tsy misy token manerana ny fikambanana ao amin'ny workflows repository.
  2. Saraho ny kaody azo itokisana sy ny tsy azo itokisana. Aza mampiasa kaody avy amin'ny fork na mpandray anjara ivelany mihitsy amin'ny asa izay mitahiry tsiambaratelo.
  3. Hamafiso ny fitoeran-javatra rehetra. Mpampiasa tsy root, tsy misy fomba fiasa manokana, tsy misy Docker socket, tsy misy fahaiza-manao intsony, allowPrivilegeEscalation: false.
  4. Soloy ireo tsiambaratelo efa ela niainana. Aleo ireo fahazoan-dàlana federaly tsy maharitra ela, ary esory avy hatrany izay rehetra miharihary.
  5. Ampidiro izay arahinao. Manondro hetsika sy sary avy amin'ny antoko fahatelo nataon'i commit SHA na digest, ka tsy afaka manova ny anao ny tag voajirika pipeline.
  6. Mitandrema sao misy fiovaovan'ny toetrandro. Mitombo ny fahazoan-dàlana rehefa mandeha ny fotoana. Fampitandremana momba ny mpitantana vaovao, ny fiarovana ny sampana mihena ary ny fiovana tsy ampoizina amin'ny fizotran'ny asa.
  7. vavahady ny pipeline. Tsy mahomby ny fananganana rehefa misy fahadisoana lehibe miseho, alohan'ny hifangaroany.

Ny sarotra dia tsy ny fahafantarana ireo fitsipika ireo. Ny fampiharana azy ireo amin'ny tahiry sy fomba fiasa an-jatony izay miova isan'andro.

Ahoana no fomba hanakanana ny fahalemen'ny fampitomboana ny tombontsoa amin'ny Xygeni? CI/CD?

Ny lalan'ny fiakarana tsirairay, mifanaraka amin'ny fahafahan'ny Xygeni mamantatra na manakana azy.

RiskNy ataon'i Xygeni
Pipeline fandrindrana disoMpitsikilo fahadisoana mijery ny famaritana ny asa CI, mamorona script sy rakitra fikirakirana manerana ny GitHub, GitLab, Azure DevOps, Bitbucket, CircleCI ary Jenkins, ary manamarika ny fahazoan-dàlana mihoatra noho izay avelan'ny fomba fanao tsara indrindra
Fanamafisana ny tombontsoa azo avy amin'ny fitoeran-javatraIaC ary ny fanamarinana ny fitoeran-javatra mandrakotra ireo rakitra Docker, rakitra docker-compose, Kubernetes manifests ary Helm charts, anisan'izany ireo containers miasa amin'ny root
Ireo mpampiasa manana tombontsoa tafahoatra sy tsy mavitrikaNy fanadihadiana momba ny tsy fahampian'ny tombontsoa dia mamantatra ireo mpampiasa tsy mavitrika sy ireo manana tombontsoa tafahoatra, ary ny Health Check mamadika ny zavatra hita tsirairay ho tapakila
Fiovan'ny fahazoan-dàlanaFanairana momba ny tsy fetezana amin'ny fanovana fahazoan-dàlana tsy mahazatra, fampivondronana tsy mahazatra ary fametrahana plugin tsy ampoizina
Fahazoan-dàlana nahariharyNy fitadiavana tsiambaratelo dia mandrakotra ny kaody, pipelinesary s sy fitoeran-javatra, miaraka amin'ny fanafoanana mandeha ho azy ho an'ny karazana miafina tohana
Kaody ratsy ao amin'ny pipelineManakana ny reverse shells sy ny fisintonana malware ao amin'ny pipelines amin'ny fotoana tena izy, ary ny MEW dia mahita fonosana mampidi-doza alohan'ny hisian'ny sonia
fampiharanaPre-commit hooks ary CI guardrails tsy mahomby amin'ny fananganana olana manan-danja, miaraka amin'ny politika YAML namboarina ho an'ny fitsipikao manokana

Mifanaraka amin'ny OWASP Top 10 CI/CD Loza ho an'ny filaminana sy standardtoy ny CIS, NIST, ary OpenSSFNy zavatra hita rehetra dia mikoriana mankany amin'ny Xygeni ASPM, izay ametrahana laharam-pahamehana miaraka amin'ny kaody, ny fiankinan-doha ary ny tsiambaratelo hita, ka ny fahalemena amin'ny fampitomboana ny tombontsoa izay tena mahatratra ny famokarana no amboarina voalohany.

Ny fiakaran'ny tombontsoa betsaka indrindra amin'ny CI/CD pipelineEfa mipetraka ao amin'ny rakitra workflow-nao ny s, miandry ny kaody tsy azo itokisana hiasa. 

FAQ

Inona no atao hoe fahalemena amin'ny fampitomboana tombontsoa manokana ao amin'ny CI/CD?

Izay fahalemena rehetra mamela ny kaody hiasa ao anaty pipeline mahazo fidirana mihoatra noho izay takian'ny asa, toy ny token manana tombontsoa tafahoatra, workflow izay mampiasa kaody tsy azo itokisana misy tsiambaratelo, na build container izay afaka mahatratra ny mpampiantrano.

Inona no atao hoe fampitomboana ny tombontsoa azo avy amin'ny "container"?

Ny fiakaran'ny tombontsoa azo avy amin'ny "container" dia rehefa mahazo tombontsoa ambony kokoa ny dingana iray ao anatin'ny "container", izay matetika "root" amin'ny "host". Ny antony mahazatra dia ny fiasan'ny "root", ny "privileged mode", ary ny "Docker socket" napetraka.

ve allowPrivilegeEscalation: false hampijanona ny fivoahan'ny kaontenera?

Manakana lalana iray manan-danja izy io: dingana iray mahazo tombontsoa bebe kokoa noho ny ray aman-dreniny, ohatra amin'ny alàlan'ny setuid binaries. Miasa tsara indrindra izy io miaraka amin'ny mpampiasa tsy root, tsy misy fahaiza-manao, ary tsy misy fomba fiasa manokana.

Is pull_request_target mampidi-doza foana ve?

Tsy irery. Lasa fahalemena amin'ny fampitomboana ny tombontsoa izany rehefa manamarina ny workflow ary mampandeha ny kaody avy amin'ny pull request, satria io kaody io dia miasa miaraka amin'ny tsiambaratelonao sy ny marika afaka manoratra.

Ahoana no ahitako ny lalan'ny fampitomboana tombontsoa amin'ny alàlan'ny tahiry maro?

Tsy mivelatra ny famerenana amin'ny tanana. Famerenana mandeha ho azy CI/CD Ny fitaovana fiarovana dia mijery tsy tapaka ny workflow rehetra, ny famaritana ny container, ary ny fahazoan-dàlana napetraka, ary mampitandrina rehefa misy zavatra mivelatra.

fitaovana-fandrafetana-rindrambaiko-sca-fitaovana-famakafakana-firafitra
Ataovy laharam-pahamehana, amboary ary arovy ny loza mety hitranga amin'ny rindrambaikonao
Alao ny kaontinao maimaim-poana.
Tsy mila carte de crédit.

Arovy ny fampandrosoana sy ny fanaterana ny rindrambaikoo

miaraka amin'ny Xygeni Product Suite