package-lock.json - пакет кулпусу json - npm typosquatting

Package-Lock.json катасы: Бул сиздин курулушуңузду кантип уурдап кетиши мүмкүн

Эмне үчүн Package-Lock.JSON иштеп чыгуучулар үчүн маанилүү

Node.js долбоорлорунда package-lock.json жөн гана package.json менен биргелешкен файл эмес. Ал орнотулган ар бир көз карандылыктын, анын ичинде ички версиялардын так версияларын кулпулайт. Бул файл чөйрөлөрдө кайталанууну камсыздайт жана жаңы пакет версиялары жарыяланганда күтүлбөгөн өзгөрүүлөрдүн алдын алат. Ансыз иштеп чыгуучулар көз карандылык дарактарынын жылышынан улам иштеп чыгуу, сыноо жана өндүрүш этаптарында ар кандай жүрүм-турумга дуушар болушат жана ал тургай, кулпу файлына каталар кирип кетсе, npm typoscquattingге жол ачышат.


Туура колдонулганда, package-lock.json сиздин командаңыздагы жана сиздин ар бир адамыңыздагы кепилдиктерди камсыздайт CI/CD pipeline орнотуулар Ошол эле код. Бирок бул файлдагы бир эле ката колдонмоңузду түз эле тузакка багытташы мүмкүн.

Типологиялык каталар NPM Typosquatting чабуулдарына кандайча алып келет?

Мисалы, мыйзамдуу пакет деп коёлу package.json туура жазылган, мисалы лодашБирок туура эмес терилген жазуу package-lock.json, сыяктуу лодалар, дагы эле көз карандылык дарагыңызга кирип кетиши мүмкүн, айрыкча кимдир бирөө аны кол менен түзөтсө же бузук курал жазып койсо.

Чабуулчулар бул каталарды npm typosquatting деп аталган ыкма менен аныкташат. Алар аталыштары популярдуу пакеттерге окшош зыяндуу пакеттерди жүктөшөт (мисалы, реакция-домм, экспресс, бурчтук). Эгерде сиздин пакет кулпуңуздун JSON файлында ушундай ката болсо, npm чабуулчунун пакетин суроосуз орнотот, анткени сиз ага ачык айткансыз.

npm typosquatting жөн гана теориялык эмес. Чыныгы дүйнөдөгү npm typosquatting чабуулдары жаңылыктардын бетине чыкты. Мындай мисалдардын бири ... болгон Коа пакетинин компромиссикайда зыяндуу код ишенимдүү пакеттин жаңыртуусу аркылуу жөнөтүлдү. Айырмасы, npm typosquatting менен иштеп чыгуучу көз карандылыкты туура эмес терип, кокустан чабуулчуну чакырат.

Чыныгы тобокелдиктер CI/CD Pipelines пакет кулпусу json каталарынан улам келип чыккан

азыркы CI/CD pipelineсый тамак package-lock.json чындыктын булагы катары. Куруу же жайгаштыруу учурунда, pipeline качып npm ci or npm орнотуу, экөө тең кулпу файлынан окулат. Эгерде ката жазылса, зыяндуу пакет автоматтык түрдө жүктөлөт. Эскертүүлөр жок. Сурамдар жок.

Бул жергиликтүү иштеп чыгуу учурунда киргизилген каталар сахналаштыруу же ал тургай өндүрүшкө чейин үнсүз жайылып кетиши мүмкүн дегенди билдирет. Чабуулчулар грамоталарды уурдоочуларды, криптомайнерлерди же жайгаштыруудан кийинки активдештирүүчү арткы эшиктерди орното алышат. Мунун баары коопсуздук куралдарын иштетпестен эле болушу мүмкүн, анткени көз карандылык "жарыяланган" package-lock.json.

Бул жөн гана ката эмес. Бул жеткирүү чынжырынын бузулушу күтүп турат, ал эми npm typoskvotting аны чыныгы коркунучка айлантат.

NPM Typosquattingди азайтуу үчүн көз карандылык каталарын аныктоо жана алдын алуу

Орфографиялык каталар package-lock.json аларды активдүү издебесеңиз, көрүнбөйт. Кантип баштоо керек:

  • Статикалык анализ: Айрым куралдар бул көйгөйлөрдү аныктай албайт, бирок атайын көз карандылык сканерлери аныктай алат. npm typosquatting үлгүлөрүн сканерлеген жана текшерген куралдарды интеграциялаңыз package-lock.json карама-каршылыктар үчүн.
  • Линтинг кулпу файлдарыТекшерүү үчүн ыңгайлаштырылган линтинг эрежелерин же плагиндерди колдонуңуз package-lock.json белгилүү коопсуз тизмелерге каршы жазуулар.
  • Кодду карап чыгуу: Теңтуштардын сын-пикирлери абдан маанилүү. Lockfile айырмачылыктары ызы-чуу жаратат, бирок командаңызга аларды код сыяктуу эле карап чыгууну үйрөтүңүз.
  • Автоматташтырылган текшерүүлөр: Жайгашуу pre-commit hooks же текшерилбеген же шектүү жазууларды четке кагуу үчүн CI жумуштары package-lock.json.

Бул жерде GitHub Actions колдонуунун практикалык мисалы келтирилген:

Бул катасыз эмес, бирок npm typosquattingди билдириши мүмкүн болгон кызыктай пакет аталыштарын белгилейт.

Node.js долбоорлорун NPM Typosquatting жана камсыздоо чынжырынын чабуулдарынан коргоо

Node.js тиркемеңизди кулпулап, чабуулдардын алдын алуу үчүн package-lock.json:

  • Катуу версияны кадооВерсия диапазондорунан алыс болуңуз (^, ~) менен package.jsonКүтүлбөгөн жаңыртууларды жана дрейфтерди азайтуу үчүн бардык көз карандылыктарды так версияларга бекитиңиз.
  • Кол тамганы текшерүүПакеттердин аныктыгын жана келип чыгышын текшерүү үчүн Sigstore жана npm'дин келип чыгыш функциялары сыяктуу куралдарды колдонуңуз.
  • Өзгөрүлбөс курулуштар: Ар дайым колдонуңуз npm ci тастыкталган менен package-lock.json Өндүрүш чөйрөсүндөгү файл. Эч качан таянбаңыз npm орнотуу жайылтуу учурунда, анткени ал текшерилбеген өзгөртүүлөрдү киргизиши мүмкүн.
  • үзгүлтүксүз мониторингТөмөнкү учурларда сизге эскертүү берүүчү мониторинг чечимдерин колдонуңуз:
    • Жаңы пакеттер сиздин package-lock.json
    • Бар болгон пакеттер күтүүсүздөн өзгөрөт
    • Шектүү үлгүлөр (мисалы, пакеттердин аталыштары, мисалы экспресс, реакция-домм, бурчтук) аныкталды
  • Көз карандылыкты текшерүү куралдарысыяктуу автоматташтырылган куралдарды интеграциялоо npm аудит, Snykже Ксигени сиздин CIге pipeline алсыздыктарды жана ката кетирүү индикаторлорун сканерлөө үчүн.
  • Кулпу файлдарынын гигиенасы: Дарылоо package-lock.json код катары. Аны карап чыгуу учурунда pull requests, айрыкча, көз карандылыктар жаңыртылганда же кошулганда.
  • Автоматташтырылган Pre-Commit чектер: Колдон pre-commit hooks кулпу файлыңызды версияны башкарууга жеткенге чейин текшерүү үчүн.

package-lock.json npm typosquatting чабуулдарындагы жогорку маанидеги бута болуп саналат. реакция-домм or лодалар чабуулчуларга сиздин курулушуңузга түз жол берет pipelineБул файлдын айланасында сергек болуу жеткирүү чынжырынын бүтүндүгүн сактоо үчүн абдан маанилүү.

Ошентип, бир эле ката курулушуңузду чөктүрүшү мүмкүн. Ага жол бербеңиз!

Орфографиялык ката package-lock.json жөн гана шалаакы коддоо эмес; бул npm typosquatting үчүн чыныгы коркунуч вектору. Файл дарбазачы болуп саналат жана эгер ал бузулса, сиздин pipeline өтө эле. Оңдоо анчалык деле жагымдуу эмес: жайлатыңыз, кулпу файлын карап чыгыңыз, текшерүүлөрдү автоматташтырыңыз жана өзгөрүүлөрдү көзөмөлдөңүз. Бирок бул татыктуу.

Коргонуу деңгээлиңизди жогорулатуу үчүн, Xygeni сыяктуу жазууларды аныктоо, текшерүү жана башка функцияларды аткаруу үчүн иштелип чыккан куралдарды колдонуп көрүңүз. JSON пакет кулпусу файлдарды жана пакеттин бүтүндүгүн бүткүл жашооңузда коргоону камсыз кылат CI/CD pipelineАчык булак доорунда ишенимге ээ болуу жана аны текшерүү керек.

sca-tools-программалык-композициялык-талдоо-куралдары
Программалык камсыздооңуздун тобокелдиктерин артыкчылыктуу деп эсептеңиз, оңдоңуз жана коопсуздугун камсыз кылыңыз
Акысыз аккаунтуңузду алыңыз.
Насыя картасы талап кылынбайт.

Программалык камсыздоону иштеп чыгууну жана жеткирүүнү камсыз кылыңыз

Xygeni Product Suite менен