package-lock.json - පැකේජ අගුල json - npm typosquatting

Package-Lock.json යතුරු ලියන දෝෂය: එය ඔබේ ගොඩනැගීම පැහැර ගන්නේ කෙසේද?

සංවර්ධකයින්ට Package-Lock.JSON වැදගත් වන්නේ ඇයි?

Node.js ව්‍යාපෘති වලදී, package-lock.json යනු package.json සඳහා වන සහකාර ගොනුවක් පමණක් නොවේ. එය කැදැලි සහිත ඒවා ඇතුළුව සෑම ස්ථාපිත පරායත්තතාවයකම නිශ්චිත අනුවාදයන් අගුළු දමයි. මෙම ගොනුව පරිසරයන් හරහා ප්‍රතිනිෂ්පාදනය කිරීමේ හැකියාව සහතික කරන අතර නව පැකේජ අනුවාද ප්‍රකාශයට පත් කරන විට අනපේක්ෂිත වෙනස්කම් වළක්වයි. එය නොමැතිව, සංවර්ධකයින් යැපුම් ගස් මාරු කිරීම හේතුවෙන් dev, test සහ නිෂ්පාදන අදියරවලදී විවිධ හැසිරීම් අවදානමට ලක් කරනු ඇති අතර, වැරදි lockfile තුළට ලිස්සා ගියහොත් npm typosquatting සඳහා පවා දොර විවෘත කරනු ඇත.


නිවැරදිව භාවිතා කළ විට, package-lock.json ඔබේ කණ්ඩායමේ සහ ඔබේ සියලු දෙනාටම සහතික කරයි CI/CD pipeline ස්ථාපනය කරයි එකම කේතය. නමුත් මෙම ගොනුවේ ඇති එක් නිහඬ මුද්‍රණ දෝෂයක් ඔබගේ යෙදුම කෙලින්ම උගුලකට හරවා යැවිය හැක.

යතුරු ලියන දෝෂ NPM යතුරු ලියන ප්‍රහාර වලට තුඩු දෙන්නේ කෙසේද?

අපි කියමු නීත්‍යානුකූල පැකේජයක් පැකේජය නිවැරදිව අක්ෂර වින්‍යාසය, වැනි lodash. නමුත් වැරදි ලෙස ටයිප් කළ ඇතුළත් කිරීමක් පැකේජ-ලොක්.ජේසන්, එවැනි ලෝඩාස්, තවමත් ඔබගේ යැපුම් ගසට රිංගා ගත හැකිය, විශේෂයෙන් යමෙකු එය අතින් සංස්කරණය කළහොත් හෝ දෝෂ සහිත මෙවලමක් එය ලියා ඇත්නම්.

ප්‍රහාරකයින් මෙම අකුරු වැරදි මත npm typosquatting නම් තාක්‍ෂණයක් භාවිතා කරයි. ඔවුන් ජනප්‍රිය නම් වලට සමාන නම් සහිත ද්වේෂසහගත පැකේජ උඩුගත කරයි (උදා: ප්‍රතික්‍රියා-ඩොම්, ප්‍රකාශ කරයි, කෝණික). ඔබේ පැකේජ අගුලේ JSON හි එවැනි මුද්‍රණ දෝෂයක් තිබේ නම්, npm ප්‍රහාරකයාගේ පැකේජය කිසිදු ප්‍රශ්නයකින් තොරව ස්ථාපනය කරයි, මන්ද ඔබ එය පැහැදිලිව පවසා ඇති බැවිනි.

npm typosquatting යනු න්‍යායාත්මක දෙයක් පමණක් නොවේ. සැබෑ ලෝකයේ npm typosquatting ප්‍රහාර සිරස්තල බවට පත්ව ඇත. එවැනි එක් උදාහරණයක් වූයේ Coa පැකේජ සම්මුතිය, කොහෙද අනිෂ්ට කේතය විශ්වාසදායක පැකේජයක යාවත්කාලීන කිරීමක් හරහා නැව්ගත කරන ලදී. වෙනස වන්නේ npm typosquatting සමඟින්, සංවර්ධකයා අහම්බෙන් පරායත්තතාවයක් වැරදි ලෙස ටයිප් කිරීමෙන් ප්‍රහාරකයාට ආරාධනා කිරීමයි.

සැබෑ අවදානම් CI/CD Pipelines පැකේජ අගුල නිසා ඇතිවේ json දෝෂ

නවීන CI/CD pipelineසංග්‍රහය පැකේජ-ලොක්.ජේසන් සත්‍යයේ මූලාශ්‍රයක් ලෙස. ගොඩනැගීම හෝ යෙදවීම අතරතුර, pipeline ක් එන්පීඑම් සීඅයි or npm ස්ථාපනය කරන්න, දෙකම lockfile එකෙන් කියවනු ලැබේ. අක්ෂර වින්‍යාස දෝෂයක් තිබේ නම්, අනිෂ්ට පැකේජය ස්වයංක්‍රීයව ඇද ගනු ලැබේ. ඇඟවීම් නැත. විමසීම් නැත.

ඒ කියන්නේ දේශීය සංවර්ධනය අතරතුර හඳුන්වා දෙන ලද අක්ෂර වින්‍යාස දෝෂයක් වේදිකාගත කිරීම හෝ නිෂ්පාදනය දක්වා නිහඬව ප්‍රචාරය කළ හැකිය. ප්‍රහාරකයින්ට අක්තපත්‍ර සොරකම් කරන්නන්, ක්‍රිප්ටෝ පතල්කරුවන් හෝ පශ්චාත්-යෙදීම සක්‍රිය කරන පසුපස දොරවල් ඇතුළත් කළ හැකිය. මේ සියල්ල ආරක්ෂක මෙවලම් අවුලුවාලීමකින් තොරව සිදුවිය හැකිය, මන්ද යැපීම "ප්‍රකාශයට පත් කරන ලද" බැවිනි. පැකේජ-ලොක්.ජේසන්.

මෙය හුදෙක් වැරැද්දක් නොවේ. එය සිදුවීමට බලා සිටින සැපයුම් දාම බිඳීමක් වන අතර, npm යතුරු ලියනය කිරීම එය සැබෑ තර්ජනයක් බවට පත් කරයි.

NPM යතුරු ලියන දෝෂ අවම කිරීම සඳහා යැපුම් යතුරු ලියනය හඳුනා ගැනීම සහ වැළැක්වීම

ටයිප් කිරීමේ දෝෂ පැකේජ-ලොක්.ජේසන් ඔබ ඒවා ක්‍රියාකාරීව සොයන්නේ නැත්නම් ඒවා අදෘශ්‍යමාන වේ. ආරම්භ කරන්නේ කෙසේද යන්න මෙන්න:

  • ස්ථිතික විශ්ලේෂණය: සමහර මෙවලම් මෙම ගැටළු හසුකර නොගනී, නමුත් කැපවූ යැපුම් ස්කෑනර් වලට හැකිය. npm typosquatting රටා සඳහා ස්කෑන් කරන මෙවලම් ඒකාබද්ධ කර ඔබගේ පරීක්ෂා කරන්න පැකේජ-ලොක්.ජේසන් නොගැලපීම් සඳහා.
  • ලින්ටින් ලොක්ෆයිල්: වලංගු කිරීම සඳහා අභිරුචි ලින්ටින් නීති හෝ ප්ලගීන භාවිතා කරන්න පැකේජ-ලොක්.ජේසන් දන්නා ආරක්ෂිත ලැයිස්තු වලට එරෙහිව ඇතුළත් කිරීම්.
  • කේත සමාලෝචන: සම වයසේ මිතුරන්ගේ සමාලෝචන ඉතා වැදගත්. Lockfile වෙනස්කම් ඝෝෂාකාරීයි, නමුත් කේතයක් මෙන් ඒවා සමාලෝචනය කිරීමට ඔබේ කණ්ඩායමට උගන්වන්න.
  • ස්වයංක්‍රීය චෙක්පත්: සැලසුම pre-commit hooks හෝ සත්‍යාපනය නොකළ හෝ සැක සහිත ඇතුළත් කිරීම් ප්‍රතික්ෂේප කිරීමට CI රැකියා පැකේජ-ලොක්.ජේසන්.

GitHub Actions භාවිතා කරන ආකාරය පිළිබඳ ප්‍රායෝගික උදාහරණයක් මෙන්න:

මෙය වෙඩි නොවදින එකක් නොවේ, නමුත් npm යතුරු ලියනය කිරීමේ දෝෂයක් පෙන්නුම් කළ හැකි අමුතු පැකේජ නම් සලකුණු කරයි.

NPM Typosquatting සහ සැපයුම් දාම ප්‍රහාරවලට එරෙහිව Node.js ව්‍යාපෘති සුරක්ෂිත කිරීම

ඔබගේ Node.js යෙදුම අගුළු දැමීමට සහ ප්‍රහාර වැළැක්වීමට පැකේජ-ලොක්.ජේසන්:

  • දැඩි අනුවාදය ඇමිණීම: අනුවාද පරාස වළක්වන්න (^, ~) තුල පැකේජයඅනපේක්ෂිත යාවත්කාලීන කිරීම් සහ ප්ලාවිතය අඩු කිරීම සඳහා සියලු පරායත්තතා නිශ්චිත අනුවාදවලට අගුළු දමන්න.
  • අත්සන් තහවුරු කිරීම: පැකේජවල සත්‍යතාව සහ සම්භවය සත්‍යාපනය කිරීම සඳහා Sigstore සහ npm හි මූලාරම්භක විශේෂාංග වැනි මෙවලම් භාවිතා කරන්න.
  • වෙනස් කළ නොහැකි ගොඩනැගිලි: සෑම විටම භාවිතා කරන්න එන්පීඑම් සීඅයි වලංගු කළ පැකේජ-ලොක්.ජේසන් නිෂ්පාදන පරිසරයන් තුළ ගොනු කරන්න. කිසි විටෙකත් රඳා නොසිටින්න npm ස්ථාපනය කරන්න යෙදවීම් අතරතුර, එය පරීක්ෂා නොකළ වෙනස්කම් හඳුන්වා දිය හැකි බැවිනි.
  • අඛණ්ඩ අධීක්ෂණය: ඔබට අනතුරු අඟවන අධීක්ෂණ විසඳුම් භාවිතා කරන්න:
    • ඔබගේ නව පැකේජ දිස්වේ පැකේජ-ලොක්.ජේසන්
    • පවතින පැකේජ අනපේක්ෂිත ලෙස වෙනස් වේ.
    • සැක සහිත රටා (උදා: පැකේජ නම් වැනි ප්‍රකාශ කරයි, ප්‍රතික්‍රියා-ඩොම්, කෝණික) අනාවරණය වේ
  • යැපුම් විගණන මෙවලම්: වැනි ස්වයංක්‍රීය මෙවලම් ඒකාබද්ධ කරන්න npm විගණනය, ස්නික්, හෝ සයිජෙනි ඔබේ CI එකට pipeline අවදානම් සහ යතුරු ලියන දෝෂ දර්ශක සඳහා ස්කෑන් කිරීමට.
  • ලොක්ෆයිල් සනීපාරක්ෂාව: සලකන්න පැකේජ-ලොක්.ජේසන් කේතයක් ලෙස. එය අතරතුර සමාලෝචනය කරන්න pull requests, විශේෂයෙන් පරායත්තතා යාවත්කාලීන කරන විට හෝ එකතු කරන විට.
  • ස්වයංක්රීය Pre-Commit චෙක්පත්: භාවිත pre-commit hooks ඔබගේ අගුළු ගොනුව අනුවාද පාලනයට ළඟා වීමට පෙර එය වලංගු කිරීමට.

පැකේජ-ලොක්.ජේසන් npm typosquatting ප්‍රහාර වලදී ඉහළ අගයක් සහිත ඉලක්කයකි. typosquatting වැනි ප්‍රතික්‍රියා-ඩොම් or ලෝඩාස් ප්‍රහාරකයන්ට ඔබේ ගොඩනැගීමට සෘජු මාර්ගයක් ලබා දෙයි. pipelineසැපයුම් දාමයේ අඛණ්ඩතාව පවත්වා ගැනීම සඳහා මෙම ගොනුව වටා සුපරීක්ෂාකාරී වීම අත්‍යවශ්‍ය වේ.

ඉතින්, එක ටයිප් දෝෂයකින් ඔබේ ගොඩනැගිල්ල ගිල්විය හැකියි. ඒකට ඉඩ දෙන්න එපා!

ටයිප් කිරීමේ දෝෂයක් පැකේජ-ලොක්.ජේසන් හුදෙක් අලස කේතනය කිරීමක් නොවේ; එය npm යතුරු ලියනය සඳහා සැබෑ තර්ජන දෛශිකයකි. ගොනුව දොරටු පාලකයෙක් වන අතර, එය අවදානමට ලක් වුවහොත්, ඔබගේ pipeline ඒකත් එහෙමයි. මේ විසඳුම සරාගී නැහැ: වේගය අඩු කරන්න, lockfile සමාලෝචනය කරන්න, චෙක්පත් ස්වයංක්‍රීය කරන්න, සහ වෙනස්කම් නිරීක්ෂණය කරන්න. නමුත් ඒක වටිනවා.

ඔබේ ආරක්ෂාව වැඩි දියුණු කිරීම සඳහා, අක්ෂර වින්‍යාස දෝෂ හඳුනා ගැනීමට, පරීක්ෂා කිරීමට නිර්මාණය කර ඇති Xygeni වැනි මෙවලම් භාවිතා කිරීම සලකා බලන්න. JSON පැකේජ අගුල ගොනු, සහ ඔබේ මුළු කාලය පුරාම පැකේජ අඛණ්ඩතාව ආරක්ෂා කරන්න CI/CD pipeline. විවෘත මූලාශ්‍ර යුගයේ දී, විශ්වාසය උපයාගෙන සත්‍යාපනය කරනු ලැබේ.

sca-මෙවලම්-මෘදුකාංග-සංයුතිය-විශ්ලේෂණ-මෙවලම්
ඔබේ මෘදුකාංග අවදානම් ප්‍රමුඛතාවය දෙන්න, නිවැරදි කරන්න සහ සුරක්ෂිත කරන්න
ඔබගේ නොමිලේ ගිණුම ලබා ගන්න.
කිසිදු ක්රෙඩිට් කාඩ්පතක් අවශ්ය නොවේ.

ඔබේ මෘදුකාංග සංවර්ධනය සහ බෙදා හැරීම සුරක්ෂිත කරන්න

Xygeni නිෂ්පාදන කට්ටලය සමඟ