package.json - package-lock.json - typosquatting

Akats ortografiko bat package.json fitxategian: Utzi itxurazko pakete batek arriskuan jartzen Pipeline

Malwarea bidali zuen akats bakar batek

Akats ortografiko batekin hasi zen. Ezaugarrien eta PR batuketen uholde izugarriaren artean, norbaitek idatzi zuen @utils_core ordez @utils-core sartu du paketea.jsonKaraktere bakarreko irristatze horrek ez zuen errorerik sortu. Horren ordez, isilean sartu zuen... hurrengoan itxura gaiztoko pakete bat CI/CD exekutatu, finkatutako bertsioetan konfiantza eta automatizazioa aprobetxatuz. Ongi etorri kode irekiko typosquatting-aren mundura.

Typosquatting: Giza Akatsen Aberastasuna Dakarren Eraso Bektorea

Typosquatting-a izenak dioen bezalakoa da: eragile gaiztoek ia izen berdinak dituzten paketeak erregistratzen dituzte. Ingurune azkarretan, honek funtzionatzen du garatzaileek beren... paketea.json package-lock.json Haien esperoan dagoena islatzen du. Pertsonaia bat falta da? PR diferentzial batean ikusezina izan liteke.

NPM typosquatting bidez ustiatu izanaren historia du. Paketeak bezalakoak gurutzaketa ordez ingurune gurutzatua or gertaeren jarioa Atzeko ateek dagoeneko erakutsi dute zein eraginkorrak izan daitezkeen antzeko programa hauek. Pakete faltsu hauek askotan berrikuspenak gainditzen dituzte itxura ona dutelako eta berehalako exekuzio-erroreak ez dituztelako sortzen.

Tranpa ohikoenen artean hauek daude:

  • Marratxoa vs azpimarratxoa: lodash-core vs lodash_core
  • Pluralak: eskatu vs eskaerak
  • Ordezkatutako karaktereak: adierazpen ordez express

Non package-lock.json puntu itsu bihurtzen den

Garatzaileak akats ortografikoa zuzendu du. Edo hori uste dute. Baina orain, package-lock.json erasotzailearen paketea blokeatu du dagoeneko. Eta hemen ezkutatzen da benetako arriskua.

Ez bezala paketea.json, eskuz editatzen dena eta azterketa sakonagoa jasotzen duena, package-lock.json automatikoki sortzen da NPMOndorioz, askotan formalitate gisa hartzen da, saltatzen da edo azaletik pasatzen da soilik. pull request iritziak. Ez da arraroa taldeek “zaratatsuegia” dela markatzea edo inplizituki fidatzea sakon aztertu gabe.

Erasotzaileek badakite hau. Horretan oinarritzen dira. Behin pakete gaiztoa erreferentziatzat hartzen da, akats ortografiko bati esker paketea.json, pakete-blokeoa.json ebatzitako bertsioa erregistratzen du. Akats ortografikoa geroago zuzendu arren, sarrera gaiztoa iraun dezake blokeo-fitxategia esplizituki birsortzen ez bada behintzat.

Gauzak okertzeko, bertsioen finkatzeak, koherentzia bermatzeko asmoz egin behar denak, kontrako eragina izan dezake. Erasotzaileek beren pakete faltsuaren bertsioa egin dezakete benetako paketearen berdin-berdin. Baldin eta... CI/CD Sistemak itsu-itsuan fidatzen bada finkatutako bertsioetan, ez du detektatuko bertsio-zenbaki ona duen baina iturri desberdin eta gaizto batetik datorren pakete bat instalatzen ari denik.

Isiltasun-iraunkortasun horrek egiten du package-lock.json hain arriskutsua. Bai, eraikuntza deterministak bermatzen ditu, baina baita pakete txar bat harrapatu eta eskuz garbitu arte iraungo duela ere.

CI/CDNondik jotzen duen malwarea – package.json

Tipiko batean CI/CD pipeline, pakete gaiztoak ez du exekuzio-denbora arte itxaron beharrik. Fluxuan askoz lehenago konpontzen eta abiarazten da:

Mendekotasunen ebazpena
The pipeline p-tik mendekotasun bertsio zehatzak ateratzen ditupakete-blokeoa.json, orain barne hartzen duena paketea typosquatted-ean akats ortografikoengatik paketea.json.

Instalazio Fasea
npm ci-ren prozesuan, menpekotasun guztiak instalatzen dira, gaiztoa barne. Ez dago abisurik, ezta galderarik ere, instalazio isila besterik ez.

Instalazio osteko script-aren exekuzioa
Itxura-antzeko paketeak instalazio osteko script bat dauka, instalazioa amaitutakoan automatikoki exekutatzen dena. Hemen gertatzen da arriskua.

Pseudokodearen adibidea:

				
					if (installation_phase_active) {
runHiddenPayload()
}
				
			

Pseudokodearen deskribapena:
Instalazio fasean, instalazio osteko bizi-zikloaren kakoa badago, pakete faltsuak bere logika ezkutua aktibatzen du, askotan eraikuntzak edo probak exekutatu aurretik ere. Horrek kanpoko eskaerak egitea, atzeko ateak injektatzea edo baimenik gabeko beste ekintza batzuk ekar ditzake.

⚠️ Abisua: Sasi-kode hau erakustaldietarako soilik da eta ez da ingurune errealetan erabili behar.

Ez da alertarik pizten. Ezerk ez du huts egiten. Ingurunea dagoeneko arriskuan dago, zure aurretik pipeline proba fasera ere iristen da.

Berandu baino lehen aldea aurkitzea

Ohiko akatsa: suposatzea paketea.json istorio osoa kontatzen du. Ez du. Benetako boterea konbinazioan datza paketea.json + paketea-blokeoa.json.

Hona hemen zer bilatu:

  • Al da package-lock.json ustekabeko paketeak barne?
  • Erregistro ezezagunetatik datozen mendekotasunak al daude edo esparru arraroak dituzte?
  • Bertsio-zenbakiak oso zehatzak edo gaizki lerrokatuta daude?

Erabili CLI tresnak, hala nola:

  • npm auditoria arazo ezagunak markatzeko
  • npm ls mendekotasun-zuhaitz osoa ikusteko
  • diff bertsioen arteko alderaketa egiteko paketea.json package-lock.json

Gogortu zure PipelineFuntzionatzen duten defentsak

Typosquatting-aren aurka babesteko:

  • Betearazi esparru-murrizketak hemen: paketea.json.
  • Gehitu aurre-bateratzea hooks mendekotasunak lint egiteko eta balioztatzeko.
  • Erabili npm ci nahi gabeko bertsio-aldaketak saihesteko.
  • Eskaneatu aldizka package-lock.json anomalietarako.

Eta garrantzitsuena: egiaztatu gabeko sarrerak tratatu package-lock.json arrisku potentzial gisa. Guztiak commit hornidura-kateko kontrol-puntu gisa hartu behar da.

Detekzio automatizatua: Nola laguntzen duten Xygeni bezalako tresnek

Mirari irtenbidea ez den arren, tresna automatizatuak bezalakoak Xigenoa funtsezko zeregina dute typosquatting-ak oinarri duen giza errore faktorea murrizteko. Xygeni zuzenean integratzen da zure DevOps lan-fluxuan, denbora errealeko babes-geruza bat gehituz mendekotasunen bahiketaren aurka, exekutatu aurretik.

Hona hemen Xygenik nola laguntzen duen:

  • Pakete Izen Susmagarrien Detekzioa:
    Heuristika adimendunak erabiltzen ditu typosquatting ereduak detektatzeko paketea.json, pakete-izen ezagunen aldaera txikiak bilatuz (gehitutako azpimarrak, transposizioak edo letren trukeak adibidez).
  • Hash ezezagunaren egiaztapena:
    Mendekotasun guztien hasha alderatzen du package-lock.json erregistro fidagarrietatik datozen artefaktu on ezagunen datu-base baten aurka. Pakete baten izena eta bertsioa ondo egon arren, hash desadostasunak alarma pizten du.
  • Eraikuntza baino lehen blokeatzea:
    Egiaztatu gabeko edo susmagarri diren paketeen instalazioa atzeman eta blokeatzen du instalazio edo instalazio osteko faseetara iritsi aurretik. CI/CD pipeline.
  • Mendekotasun Grafikoen Analisia:
    Mendekotasun-zuhaitz osoa etengabe aztertzen du zeharkako typosquatting saiakerak edo mendekotasun trantsizio gaiztoak bilatzeko.
  • Alertak eta txostenak:
    Alerta zehatzak eta ekintzarako modukoak eskaintzen ditu, zer markatu den, zergatik eta mendekotasun-katean nondik datorren erakutsiz.

Pakete-ekosistemak gero eta konplexuagoak diren heinean, Xygeni bezalako tresnak ezinbestekoak bihurtzen dira. Eskuzko berrikuspena ez da eskalatzen mendekotasunen hedapenarekin edo iterazio azkarrarekin. Xygenik esku hartzen du egungo egiaztapen kritikoak automatizatzeko. pipelines beharra, konfiantzaren eta egiaztapenaren arteko aldea itxiz.

Pertsonaia bat. Benetako ondorioak.

Hau ez zen exotikoa Zero-DayAkats ortografiko bat izan zen. Karaktere bat gaizki kokatuta zegoen. paketea.json, isilean indartuta package-lock.json, eta malwarea automatikoki bidali zen ohiko batean CI/CD Korrika egin.

Hori da typosquatting-aren benetako arriskua: ez du konplexutasunik behar. Abiadura, konfiantza eta automatizazioa ustiatzen ditu. Kontrol egokiak ezarrita, konpromiso hau saihestu zitekeen:

  • Eskaneatzea automatizatua instalatu aurretik pakete-izen eta -bertsio susmagarriak detektatzeko.
  • Blokeo-fitxategien auditoria berrikusi gabeko edo ustekabeko sarrerak detektatzeko package-lock.json.
  • Izenaren egiaztapen heuristikoak pakete fidagarriekin ia bat datozenak markatzeko.

Karaktere bat nahikoa zen. Egiaztapen egokiek geldituko zuten zuregana iritsi aurretik. pipelineKonfiantza ez da nahikoa. DevSecOps modernoan, dena egiaztatzen duzu, edo dena arriskatzen duzu.

sca-tools-software-konposizio-analisi-tresnak
Lehentasuna eman, konpondu eta babestu zure software arriskuak
Lortu zure doako kontua.
Ez da beharrezkoa kreditu txartelik.

Ziurtatu zure softwarearen garapena eta entrega

Xygeni produktu multzoarekin