package.json - package-lock.json - fahadisoana amin'ny fanoratana

Misy diso tsipelina ao amin'ny package.json. Avelao ny fonosana mitovy endrika hanimba ny Pipeline

Fahadisoana iray litera izay nandefa malware

Nanomboka tamin'ny fahadisoana tsipelina izany. Tao anatin'ny firongatry ny fanosehana endri-javatra sy ny fampiraisana PR, nisy olona nanoratra @utils_core raha tokony ho @utils-core ao amin'ny package.jsonTsy namoaka hadisoana io taratasy kely misy litera tokana io. Fa kosa, nisintona moramora a fonosana mitovy endrika ratsy fanahy mandritra ny manaraka CI/CD mihazakazaka, mampiasa ny fahatokisana amin'ny dikan-teny voapetaka sy ny automation. Tongasoa eto amin'ny tontolon'ny typosquatting amin'ny endrika open source.

Typosquatting: Ny fomba fanafihana izay miroborobo amin'ny fahadisoan'olombelona

Ny Typosquatting dia mitovy amin'ny hoe: ireo mpanao ratsy dia misoratra anarana fonosana mitovy anarana amin'ny anarana ara-dalàna. Amin'ny tontolo iainana haingana, dia miasa izany satria matoky ny mpamorona fa ny azy ireo package.json sy package-lock.json maneho izay andrasany. Litera iray ve? Mety ho toy ny hoe tsy hita maso ao amin'ny PR diff ihany koa izany.

NPM manana tantara momba ny fanararaotana amin'ny alalan'ny typosquatting. Fonosana toy ny crossenv raha tokony ho miampita tontolo iainana or hetsika mivantana Efa nasehon'ny backdoors ny fahombiazan'ireny zavatra mitovy amin'izany ireny. Matetika ireo fonosana sandoka ireo dia mandalo fanombanana satria fotsiny hoe toa mety tsara izy ireo ary tsy miteraka hadisoana eo no ho eo.

Ireto avy ireo fandrika mahazatra:

  • Tsipika vs tsipika ambany: lodash-core vs lodash_core
  • Teny milaza maro: fangatahana vs fangatahana
  • Ireo litera nosoloina: express raha tokony ho maneho

Izay mahatonga ny package-lock.json ho toerana tsy hita maso

Nanamboatra ny tsipeliny ilay mpamorona. Izany no eritreretiny. Fa amin'izao fotoana izao, package-lock.json efa voahidy tao anaty fonosan'ny mpanafika. Ary eto no iafenan'ny tena risika.

Tsy toy ny package.json, izay ovaina tanana ary mahazo fandinihana bebe kokoa, package-lock.json dia novokarin'ny NPMVokatr'izany, matetika izy io dia raisina ho toy ny fombafomba fotsiny, tsy jerena, na tsindriana fotsiny pull request tsikera. Tsy mahagaga raha manamarika izany ho "mitabataba loatra" na matoky izany an-kolaka tsy misy fandinihana lalina.

Fantatry ny mpanafika izany. Miantehitra amin'izany izy ireo. Raha vao misy fonosana manimba voatonona, noho ny fahadisoana diso package.json, fonosana-lock.json mirakitra ny dikan-teny voavaha. Na dia ahitsy aza ny diso any aoriana, dia mety haharitra ilay fidirana ratsy raha tsy hoe haverina amin'ny laoniny mazava tsara ny rakitra hidiana.

Mba hampitombo ny olana, ny fametrahana "version pinning", izay natao hiantohana ny fitoviana, dia mety hiteraka vokatra ratsy. Afaka manova ny fonosana sandoka ho mitovy amin'ny tena izy ireo mpanafika. Raha CI/CD Raha matoky an-jambany ireo dikan-teny voapaingotra ny rafitra, dia tsy ho hitany fa mametraka fonosana misy laharan'ny dikan-teny fantatra fa tsara fa avy amin'ny loharano hafa sy ratsy fanahy.

Io fikirizana mangina io no mahatonga package-lock.json mampidi-doza tokoa. Eny, miantoka ny fananganana voafaritra tsara izany, saingy miantoka ihany koa fa hijanona eo ny fonosana ratsy raha tsy tratra sy diovina amin'ny tanana.

CI/CD: Ny toerana misy ny malware – package.json

Amin'ny mahazatra CI/CD pipeline, tsy mila miandry ny fotoana fanombohana ilay fonosana maloto. Voavaha sy miasa aloha kokoa amin'ny fizotrany izy io:

Vahaolana amin'ny fiankinan-doha
The pipeline misintona ireo dikan-teny miankina marina avy amin'ny package-lock.json, izay ahitana izao ny fonosana diso tsipelina noho ny diso tsipelina fonosana.json.

Dingana fametrahana
Mandritra ny npm ci, dia apetraka avokoa ny fiankinan-doha rehetra, anisan'izany ilay mampidi-doza. Tsy misy fampitandremana, tsy misy bitsika, fametrahana mangina fotsiny.

Fampiharana ny Script aorian'ny fametrahana
Ny fonosana lookalike dia misy script aorian'ny fametrahana izay miasa ho azy rehefa vita ny fametrahana. Eto no mitranga ny olana.

Ohatra amin'ny pseudocode:

				
					if (installation_phase_active) {
runHiddenPayload()
}
				
			

Famaritana ny pseudocode:
Mandritra ny dingana fametrahana, raha misy ny "hook" aorian'ny fametrahana, dia hampandeha ny lojika miafina ilay fonosana sandoka—matetika na dia mbola tsy mandeha aza ny fanamboarana na ny fitsapana. Mety ahitana fangatahana ivelany, fampidirana "backdoors", na hetsika hafa tsy nahazoana alalana izany.

⚠️ Fampitandremana: Ity pseudocode ity dia natao ho fampisehoana fotsiny ihany ary tsy azo ampiasaina amin'ny tontolo tena izy.

Tsy misy fampandrenesana alefa. Tsy misy tsy mandeha. Efa simba ny tontolo iainana, alohan'ny anao pipeline tonga amin'ny dingana fitsapana mihitsy aza.

Fahitana ny fahasamihafana alohan'ny haha ​​tara loatra

Fahadisoana mahazatra: mihevitra package.json mitantara ny tantara manontolo. Tsy izany anefa. Ny tena hery dia ao amin'ny fitambaran'ny package.json + package-lock.json.

Ity no tadiavina:

  • Moa ve ny package-lock.json mampiditra fonosana tsy ampoizina?
  • Misy fiankinan-doha avy amin'ny rejisitra tsy fantatra ve sa manana sehatra hafahafa?
  • Voafaritra loatra ve sa tsy mifanaraka tsara ireo laharan'ny dikan-teny?

Ampiasao ireo fitaovana CLI toy ny:

  • npm audit hanamarika ireo olana fantatra
  • npm ls mba hijerena ny hazo fiankinan-doha feno
  • diff mba hampitahana ireo dikan-teny eo amin'ny package.json sy package-lock.json

Hamafiso ny tenanao PipelineFiarovana izay miasa

Mba hiarovana amin'ny typosquatting:

  • Ampiharo ny fameperana ny sehatra ao amin'ny fonosana.json.
  • Ampio mialoha ny fampiraisana hooks mba hanamarinana ny fiankinan-doha sy hanitsiana ny fifandraisana.
  • Use npm ci mba hisorohana ny fiovaovan'ny dikan-teny tsy nahy.
  • Manaova scan tsy tapaka package-lock.json ho an'ny anomalia.

Ary ny tena zava-dehibe indrindra: karakarao ireo fidirana tsy voamarina ao amin'ny package-lock.json ho toy ny loza mety hitranga. Isaky ny commit dia tokony ho raisina ho toy ny toeram-pisavana eo amin'ny rojo famatsiana.

Fitiliana mandeha ho azy: Ahoana no anampian'ny fitaovana toa an'i Xygeni

Na dia tsy vahaolana mahomby aza, ireo fitaovana mandeha ho azy toy ny Xygeni Mitana anjara toerana lehibe amin'ny fampihenana ny fahadisoana ataon'olombelona izay mahatonga ny typosquatting ho miroborobo. Miditra mivantana ao amin'ny fizotran'ny DevOps-nao ny Xygeni, manampy sosona fiarovana amin'ny fotoana tena izy amin'ny fisamborana fiankinan-doha alohan'ny hahatratrarany ny fanatanterahana azy.

Toy izao ny fomba hanampian'ny Xygeni:

  • Fahitana Anaran'ny Fonosana Mampiahiahy:
    Mampiasa heuristika marani-tsaina mba hamantarana ireo lamina diso tsipelina ao amin'ny package.json, mitady fiovaovana madinidinika amin'ny anaran'ny fonosana fantatra tsara (toy ny fanampim-panazavana, fandikana, na fifanakalozana litera).
  • Fanamarinana Hash tsy fantatra:
    Mampitaha ny hash an'ny fiankinan-doha rehetra ao amin'ny package-lock.json manohitra ny angon-drakitra misy ireo zavatra fantatra fa tsara avy amin'ny rejisitra azo itokisana. Na dia toa tsara aza ny anaran'ny fonosana sy ny dikan-teny, dia miteraka saina mena ny tsy fitoviana eo amin'ny hash.
  • Fanakanana alohan'ny fananganana:
    Manakana sy manakana ny fametrahana izay fonosana tsy voamarina na mampiahiahy alohan'ny hahatongavany amin'ny dingana fametrahana na aorian'ny fametrahana ao amin'ny CI/CD pipeline.
  • Famakafakana ny grafika fiankinan-doha:
    Manamarina tsy tapaka ny hazo fiankinan-doha feno raha misy andrana fandikàna diso ankolaka na fiankinan-doha amin'ny alalan'ny famindrana teny ratsy.
  • Fampandrenesana sy tatitra:
    Manome fampandrenesana amin'ny antsipiriany sy azo ampiharina, izay mampiseho izay voamarika, ny antony ary ny niaviany tao amin'ny rojo fiankinan-doha.

Rehefa mihasarotra kokoa ny tontolo iainana fonosana, dia lasa ilaina ny fitaovana toa ny Xygeni. Tsy mivelatra miaraka amin'ny fiparitahan'ny fiankinan-doha na ny famerenana haingana ny famerenana amin'ny tanana. Miditra an-tsehatra ny Xygeni mba hanamora ny fanamarinana manan-danja maoderina. pipelineizay ilain'ny, manidy ny elanelana misy eo amin'ny fitokisana sy ny fanamarinana.

Olona iray. Vokany tena izy.

Tsy zavatra hafakely ity andro aotraNisy diso tsipelina. Nisy endri-tsoratra iray diso toerana tao amin'ny package.json, nohamafisin'ny package-lock.json, ary nalefa ho azy ny malware nandritra ny fanao mahazatra CI/CD mihazakazaka.

Izany no tena loza ateraky ny fahadisoana amin'ny fanoratana: tsy mila fahasarotana izy io. Mampiasa ny hafainganam-pandeha, ny fitokisana ary ny fanaovana automatique izy io. Azo nosorohina ity fifanarahana ity raha nisy ny fanaraha-maso sahaza napetraka:

  • Fijerena mandeha ho azy mba hisambotra anarana sy dikan-teny mampiahiahy alohan'ny hametrahana azy.
  • Fanaraha-maso ny rakitra mihidy mba hamantarana ireo fidirana tsy nojerena na tsy nampoizina tao amin'ny package-lock.json.
  • Heuristika fanamarinana anarana mba hanamarihana ireo fonosana akaiky mifanaraka amin'ny fifanarahana azo itokisana.

Toetra iray monja no nilaina. Ny fanamarinana marina dia ho efa nampijanona azy io talohan'ny nikasihany ny anao pipelineTsy ampy ny fitokisana. Ao amin'ny DevSecOps maoderina, manamarina ny zava-drehetra ianao, na mampidi-doza ny zava-drehetra.

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