package-lock.json - package lock json - npm typosquatting

Package-Lock.json Typo: E Faapefea Ona Faoa Lau Fausiaina

Aiseā e Tāua ai le Package-Lock.JSON mo Tagata Atiina Aʻe

I galuega faatino a le Node.js, e lē na o se faila soa le package-lock.json i le package.json. E loka ai lomiga tonu o faʻalagolago uma ua faʻapipiʻiina, e aofia ai ma faila ua faʻapipiʻiina. O lenei faila e faʻamautinoa ai le toe gaosia i siosiomaga eseese ma puipuia ai suiga e leʻi mafaufauina pe a lolomiina ni lomiga fou o afifi. A aunoa ma lea, o le a lamatia ai e le au atiaʻe amioga eseese i le atinaʻe, suega, ma laʻasaga o gaosiga ona o le suia o laʻau faʻalagolago, ma e oʻo lava i le tatalaina o le faitotoʻa i le npm typosquatting pe a see atu mea sese i totonu o le lockfile.


A fa'aaogaina sa'o, e fa'amautinoa e le package-lock.json tagata uma i lau 'au ma lau CI/CD pipeline faapipii le code lava lea e tasi. Ae o le tasi le sese lē leoa i lenei faila e mafai ona toe tuusaʻo atu ai lau app i se mailei.

E fa'apefea ona ta'ita'ia e le Typos ni osofa'iga a le NPM Typosquatting?

Se'i tatou fa'apea o se afifi aloaia i totonu afifi.json ua sa'o le sipelaina, e pei o lodash. Ae o se fa'amaumauga sese i totonu package-lock.json, pei o le lodas, e mafai lava ona tolotolo atu i totonu o lau la'au fa'alagolago, aemaise lava pe afai na fa'asa'oina e se tasi pe na tusia e se meafaigaluega leaga.

E fa'alagolago tagata osofa'i i nei mea sese i se metotia e ta'ua o le npm typosquatting. Latou te lafoina ni afifi leaga ma igoa e foliga tutusa ma igoa lauiloa (e.g., tali-domm, fa'aalia, tulimanuAfai e aofia ai se mea sese faapena i lau JSON o le loka afifi, e faʻapipiʻi e le npm le afifi a le tagata osofaʻi e aunoa ma se fesili, aua na e taʻu saʻo atu i ai.

O le fa'aogaina o le npm typosquatting e le na'o se fa'ata'ita'iga. O osofa'iga moni o le npm typosquatting ua avea ma ulutala. O se tasi o fa'ata'ita'iga o le Fa'aletonu o le afifi a le Coa, fea code leaga na lafoina e ala i se faʻafouga faʻatuatuaina o le afifi. O le eseesega o le npm typosquatting, e valaʻaulia faʻafuaseʻi e le tagata atiaʻe le tagata osofaʻi e ala i le sese o le taina o se faʻalagolago.

Lamatiaga Moni i totonu CI/CD Pipelines Mafua mai i mea sese o le loka afifi json

po nei CI/CD pipelinemea'ai package-lock.json o se puna o le upumoni. I le taimi o le fausiaina poʻo le faʻatinoina, o le pipeline tamoʻe npm ci or npm tāuta, e faitau uma mai le faila loka. Afai e iai se sese i le fa'aliliuina, e otometi lava ona tosoina mai le afifi leaga. Leai ni fa'ailoilo. Leai ni fa'atonuga.

O lona uiga o se sese i le fa'aogaina o le polokalama e fa'aofiina i le taimi o atina'e fa'alotoifale e mafai ona sosolo filemu atu i le fa'atulagaina po'o le gaosiga. E mafai e tagata osofa'i ona fa'apipi'i tagata gaoi fa'amaoniga, tagata eli crypto, po'o backdoors e fa'agaoioia ai le mae'a ona fa'atulagaina. E mafai ona tupu nei mea uma e aunoa ma le fa'agaoioia o meafaigaluega saogalemu, aua o le fa'alagolago na "folafola" i totonu o le package-lock.json.

E lē na'o se mea sese lenei. O se soliga o le sapalai o lo'o fa'atalitali e tupu, ma o le fa'aletonu o le npm e avea ai ma se taufa'amata'u moni.

Iloaina ma Puipuia o Fa'afitauli Tau Fa'alagolago e Fa'aitiitia ai le Fa'afitauli Tau Fa'aopoopo a le NPM

Mea sese i le ta'uga package-lock.json e lē vaaia se'i vagana ua e matuā sailia. O le auala lenei e amata ai:

  • Su'esu'ega Fa'amauO nisi meafaigaluega e le mafai ona pu'eina nei fa'afitauli, ae e mafai e masini su'esu'e fa'alagolago fa'apitoa. Fa'apipi'i meafaigaluega e su'esu'e ai mamanu o le typosquatting npm ma siaki lau package-lock.json mo ni mea e lē tutusa.
  • Faila Loka o Linting: Faaaoga tulafono fa'apitoa o le linting po'o plugins e fa'amaonia ai package-lock.json fa'amaumauga e fa'asaga i lisi saogalemu ua iloa.
  • Fa'amatalaga Fa'ailogaE matuā tāua tele iloiloga a tupulaga. E pisapisaō eseesega o faila loka, ae aʻoaʻo lau 'au e toe iloilo e pei lava o le polokalame faakomepiuta.
  • Otometi Siaki: Seti pre-commit hooks po'o galuega CI e te'ena ai fa'amaumauga e le'i fa'amaonia pe masalomia i totonu package-lock.json.

O se faʻataʻitaʻiga aoga lea e faʻaaoga ai le GitHub Actions:

E lē o se mea e mautinoa, ae e faʻailoa mai ai igoa uiga ese o afifi e ono faʻailoa mai ai le sese o le npm typosquatting.

Puipuia o Galuega Faatino a le Node.js Faasaga i le NPM Typosquatting ma Osofa'iga o le Supply Chain

Ina ia loka lau Node.js app ma puipuia osofaʻiga e ala i package-lock.json:

  • Fa'apipi'iina o le Lomiga Fa'apitoa: Aloese mai le vaega o lomiga (^, ~) i totonu afifi.json. Loka uma fa'alagolago i lomiga sa'o e fa'aitiitia ai fa'afouga e le'i fa'amoemoeina ma le fe'avea'i.
  • Saini FaʻamaoniaFa'aaoga meafaigaluega e pei o le Sigstore ma foliga o le npm e fa'amaonia ai le moni ma le amataga o afifi.
  • Fausiaga e Lē Mafai ona Suia: Fa'aaoga i taimi uma npm ci fa'atasi ai ma se fa'amaoniga ua fa'amaonia package-lock.json faila i siosiomaga gaosiga. Aua lava ne'i fa'alagolago i npm tāuta i le taimi o faʻalauiloaina, aua e mafai ona faʻalauiloa mai ai suiga e leʻi faʻamaoniaina.
  • Faʻaauau le MataituinaFaaaoga fofo mo le mataituina e lapataia oe pe a:
    • O lo'o aliali mai ni afifi fou i lau package-lock.json
    • E suia fa'afuase'i afifi o lo'o iai
    • O mamanu masalomia (e pei o igoa o afifi e pei o fa'aalia, tali-domm, tulimanu) ua iloa
  • Meafaigaluega mo le Su'esu'eina o le Fa'alagolago: Tuufaatasia meafaigaluega otometi e pei o npm su'etusi, Snyk, po o Xygeni i totonu o lau CI pipeline e su'esu'e ai mo ni vaivaiga ma ni fa'ailoga o le sese o le fa'aliliuina.
  • Tausiga o le Lockfile: Taulima package-lock.json e pei o se code. Toe iloilo i le taimi pull requests, aemaise lava pe a fa'afouina pe fa'aopoopoina mea e fa'alagolago i ai.
  • otometi Pre-Commit siaki: Faaaoga pre-commit hooks e faʻamaonia lau faila loka aʻo leʻi oʻo i le pulea o le lomiga.

package-lock.json o se sini taua tele i osofaʻiga faʻatekinolosi npm. O se faʻatekinolosi e pei o tali-domm or lodas e tuʻuina atu ai i ē osofaʻi se ala saʻo i totonu o lau fausaga pipelineE taua tele le mataala i lenei faila mo le faatumauina o le sa'o o le filifili o sapalai.

O lea la, o se tasi lava sese e mafai ona fa'aleagaina ai lou fausaga. Aua ne'i tu'ua!

O se sese i le fa'aliliuina package-lock.json e lē na'o le fa'aletonu o le fa'ailogaina o tusitusiga; o se lamatiaga moni lava mo le fa'aletonu o tusitusiga npm. O le faila o se leoleo faitoto'a, ma afai e fa'aleagaina, o lau pipeline e tele fo'i. E le o se mea manaia le fofo: fa'agesegese, toe iloilo le faila loka, otometi siaki, ma mata'ituina suiga. Ae e aoga.

Ina ia fa'aleleia lau puipuiga, mafaufau e fa'aaoga meafaigaluega e pei o le Xygeni, lea ua mamanuina e iloa ai le typosquatting, siaki loka afifi JSON faila, ma puipuia le sa'o o afifi i lau atoaga atoa CI/CD pipelineI le vaitau o le open source, o le faatuatuaga e maua ma faamaonia.

meafaigaluega-sca-polokalame-su'esu'ega-tu'ufa'atasiga
Fa'amuamua, toe fa'aleleia, ma puipui au tulaga lamatia o polokalama faakomepiuta
Maua lau Teugatupe e leai se totogi.
Leai se credit card e manaʻomia.

Puipui lau Atina'eina ma le Tu'uina Atu o Polokalama Faakomepiuta

fa'atasi ai ma le Xygeni Product Suite