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_targetIreo 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 fisondrotana | Ahoana no mitranga | Izay azon'ny mpanafika | Ahoana ny fomba hanakatonana azy |
|---|---|---|---|
| Be loatra pipeline famantarana | Miasa miaraka amin'ny sehatra famantarana mahazatra mivelatra ny workflows satria tsy misy permissions napetraka ny sakana | Fahafahana manoratra amin'ny kaody, famoahana ary fomba fiasa hafa | Mametraha ny safidy "read-only" ary omeo alalana ny fidirana manoratra isaky ny asa, raha ilaina ihany |
| misy poizina pipeline famonoana | pull_request_target na ireo trigger mitovy amin'izany dia jereo ary ampandehano ny code avy amin'ny fork tsy azo itokisana | Tsiambaratelo fitahirizana sy mari-pamantarana fanoratana, avy amin'ny iray pull request | Aza 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-javatra | Miasa amin'ny maha-root, amin'ny fomba privileged, na miaraka amin'ny Docker socket napetraka ny Build containers | Miorim-paka amin'ny mpampiantrano runner ary miditra amin'ny asa rehetra tanterahiny | Alefaso 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 rahona | Lakile rahona statika voatahiry ho tsiambaratelo na fiovaovan'ny tontolo iainana | Fidirana maharitra amin'ny kaonty rahona, ela be aorian'ny fiafaran'ny asa | Mampiasà fahazoan-dàlana fohy ezaka sy iraisana ary manafoana ho azy ny tsiambaratelo naharihary |
| Ireo mpihazakazaka maharitra izay mampiantrano tena | Averina ampiasaina manerana ny asa sy ny tahiry ireo "runners" nefa tsy averina amboarina indray | Faharetana, ary ny fahaizana manova ny fomba fiasan'ny ekipa hafa | Ampiasao ireo mpihazakazaka vetivety ary saraho araka ny haavon'ny fahatokisana izy ireo |
| Kaonty olombelona manana tombontsoa tafahoatra | Miangona ireo mpitantana tsy miasa, ireo mpiara-miasa ivelany ary ireo fanovana fahazoan-dàlana tsy nodinihina | Kaonty manan-kery izay azo ovaina pipelinefiarovana ny sampana sy ny sampana | Avereno 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:
- 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.
- Fomba manokana. Ny "privileged container" dia manana fidirana mitovy amin'ny "host" toy ny dingana miasa mivantana eo aminy.
- Sokety Docker napetraka. nitombo
/var/run/docker.sockao 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.
# 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:
# 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"]
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:
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
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:
- 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.
- 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.
- Hamafiso ny fitoeran-javatra rehetra. Mpampiasa tsy root, tsy misy fomba fiasa manokana, tsy misy Docker socket, tsy misy fahaiza-manao intsony,
allowPrivilegeEscalation: false. - Soloy ireo tsiambaratelo efa ela niainana. Aleo ireo fahazoan-dàlana federaly tsy maharitra ela, ary esory avy hatrany izay rehetra miharihary.
- 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.
- 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.
- 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.
| Risk | Ny ataon'i Xygeni |
|---|---|
| Pipeline fandrindrana diso | Mpitsikilo 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-javatra | IaC 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 mavitrika | Ny 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àlana | Fanairana momba ny tsy fetezana amin'ny fanovana fahazoan-dàlana tsy mahazatra, fampivondronana tsy mahazatra ary fametrahana plugin tsy ampoizina |
| Fahazoan-dàlana naharihary | Ny 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 pipeline | Manakana 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 |
| fampiharana | Pre-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.







