package-lock.json - প্যাকেজ লক জেসন - এনপিএম টাইপোস্কোয়াটিং

Package-Lock.json-এর টাইপো: এটি কীভাবে আপনার বিল্ডকে বাধাগ্রস্ত করতে পারে

সুচিপত্র

অবশ্যই পঠনীয় পোস্ট

আগ্রহের সর্বশেষ পোস্টগুলি

ডেভেলপারদের জন্য Package-Lock.JSON কেন গুরুত্বপূর্ণ

Node.js প্রোজেক্টে, package-lock.json শুধু package.json-এর একটি সহায়ক ফাইল নয়। এটি নেস্টেড ডিপেন্ডেন্সিগুলো সহ ইনস্টল করা প্রতিটি ডিপেন্ডেন্সির সঠিক ভার্সন সুরক্ষিত করে। এই ফাইলটি বিভিন্ন এনভায়রনমেন্টে পুনরাবৃত্তিযোগ্যতা নিশ্চিত করে এবং নতুন প্যাকেজ ভার্সন প্রকাশিত হলে অপ্রত্যাশিত পরিবর্তন প্রতিরোধ করে। এটি ছাড়া, পরিবর্তনশীল ডিপেন্ডেন্সি ট্রির কারণে ডেভেলপাররা ডেভ, টেস্ট এবং প্রোডাকশন পর্যায়ে ভিন্ন ভিন্ন আচরণের ঝুঁকিতে পড়তেন এবং লকফাইলে কোনো ভুল ঢুকে গেলে npm টাইপোস্কোয়াটিং-এর মতো সমস্যারও সৃষ্টি হতো।


সঠিকভাবে ব্যবহার করা হলে, package-lock.json আপনার দলের এবং আপনার সদস্যদের সকলের নিরাপত্তা নিশ্চিত করে। CI/CD pipeline ইনস্টলসমূহ একই কোড। কিন্তু এই ফাইলে একটি সামান্য টাইপিংয়ের ভুল আপনার অ্যাপকে সরাসরি একটি ফাঁদে ফেলে দিতে পারে।

কীভাবে টাইপোর কারণে এনপিএম টাইপোস্কোয়াটিং আক্রমণ হয়?

ধরা যাক একটি বৈধ প্যাকেজ package.json বানান সঠিক, যেমন lodashকিন্তু একটি ভুল টাইপ করা এন্ট্রি প্যাকেজ-lock.json, যেমন লোডাসএটি এখনও আপনার ডিপেন্ডেন্সি ট্রি-তে ঢুকে পড়তে পারে, বিশেষ করে যদি কেউ ম্যানুয়ালি এটি সম্পাদনা করে থাকে বা কোনো ত্রুটিপূর্ণ টুল এটি লিখে থাকে।

আক্রমণকারীরা এনপিএম টাইপোস্কোয়াটিং নামক একটি কৌশল ব্যবহার করে এই টাইপের ভুলগুলোকে কাজে লাগায়। তারা জনপ্রিয় নামগুলোর (যেমন, রিঅ্যাক্ট-ডোম, প্রকাশ করে, কৌণিকআপনার প্যাকেজ লক JSON-এ যদি ওই ধরনের কোনো টাইপো থাকে, তাহলে npm কোনো প্রশ্ন ছাড়াই আক্রমণকারীর প্যাকেজটি ইনস্টল করে ফেলে, কারণ আপনিই তাকে স্পষ্টভাবে তা করতে বলেছেন।

এনপিএম টাইপোস্কোয়াটিং শুধু তাত্ত্বিক নয়। বাস্তব জগতের এনপিএম টাইপোস্কোয়াটিং আক্রমণগুলো সংবাদ শিরোনামে এসেছে। এর একটি উদাহরণ ছিল... কোয়া প্যাকেজ আপস, কোথায় দূষিত কোড একটি বিশ্বস্ত প্যাকেজের আপডেটের মাধ্যমে এটি পাঠানো হয়েছিল। পার্থক্য হলো, npm টাইপোস্কোয়াটিং-এর ক্ষেত্রে ডেভেলপার কোনো ডিপেন্ডেন্সি ভুল টাইপ করার মাধ্যমে অনিচ্ছাকৃতভাবে আক্রমণকারীকে আমন্ত্রণ জানায়।

বাস্তব ঝুঁকি CI/CD Pipelineপ্যাকেজ লক json ত্রুটির কারণে সৃষ্ট

আধুনিক CI/CD pipelineচিকিৎসা প্যাকেজ-lock.json সত্যের উৎস হিসেবে। নির্মাণ বা স্থাপনের সময়, pipeline রান npm ci or npm ইনস্টল করুনউভয়ই লকফাইল থেকে ডেটা পড়ে। যদি কোনো টাইপিংয়ের ভুল থাকে, তাহলে ক্ষতিকারক প্যাকেজটি স্বয়ংক্রিয়ভাবে চলে আসে। কোনো অ্যালার্ট নেই। কোনো প্রম্পট নেই।

এর মানে হলো, লোকাল ডেভেলপমেন্টের সময় করা একটি টাইপো নিঃশব্দে স্টেজিং বা এমনকি প্রোডাকশন পর্যন্ত ছড়িয়ে পড়তে পারে। আক্রমণকারীরা ক্রেডেনশিয়াল স্টিলার, ক্রিপ্টো মাইনার বা ব্যাকডোর যুক্ত করতে পারে, যা ডেপ্লয়মেন্টের পরে সক্রিয় হয়। এই সবকিছুই সিকিউরিটি টুলগুলোকে সক্রিয় না করেই ঘটতে পারে, কারণ ডিপেন্ডেন্সিটি আগে থেকেই “ডিক্লেয়ার” করা ছিল। প্যাকেজ-lock.json.

এটা শুধু একটা ভুল নয়। এটা সরবরাহ শৃঙ্খল লঙ্ঘনের একটি আসন্ন ঝুঁকি, এবং এনপিএম টাইপোস্কোয়াটিং এটিকে একটি বাস্তব হুমকিতে পরিণত করে।

NPM টাইপোস্কোয়াটিং কমাতে ডিপেন্ডেন্সি টাইপো সনাক্তকরণ এবং প্রতিরোধ

টাইপো প্যাকেজ-lock.json আপনি সক্রিয়ভাবে না খুঁজলে এগুলো অদৃশ্য থাকে। কীভাবে শুরু করবেন তা এখানে দেওয়া হলো:

  • স্ট্যাটিক বিশ্লেষণকিছু টুল এই সমস্যাগুলো ধরতে পারে না, কিন্তু ডেডিকেটেড ডিপেন্ডেন্সি স্ক্যানারগুলো পারে। এমন টুল ইন্টিগ্রেট করুন যা npm টাইপোস্কোয়াটিং প্যাটার্ন স্ক্যান করে এবং আপনার ডিপেন্ডেন্সি চেক করে। প্যাকেজ-lock.json অসঙ্গতির জন্য।
  • লিন্টিং লকফাইলযাচাই করার জন্য কাস্টম লিন্টিং নিয়ম বা প্লাগইন ব্যবহার করুন প্যাকেজ-lock.json পরিচিত নিরাপদ তালিকার বিপরীতে এন্ট্রি।
  • কোড পর্যালোচনাপিয়ার রিভিউ অত্যন্ত গুরুত্বপূর্ণ। লকফাইলের ডিফসগুলো কোলাহলপূর্ণ হতে পারে, কিন্তু আপনার টিমকে কোডের মতোই সেগুলো পর্যালোচনা করতে শেখান।
  • স্বয়ংক্রিয় চেক: সেট আপ pre-commit hooks অথবা CI জবগুলি যাচাইবিহীন বা সন্দেহজনক এন্ট্রিগুলি প্রত্যাখ্যান করতে প্যাকেজ-lock.json.

গিটহাব অ্যাকশন ব্যবহার করে একটি বাস্তব উদাহরণ দেওয়া হলো:

এটি সম্পূর্ণ নির্ভুল নয়, তবে এটি এমন সব অদ্ভুত প্যাকেজের নাম চিহ্নিত করে যা npm টাইপোস্কোয়াটিং-এর ইঙ্গিত দিতে পারে।

NPM টাইপোস্কোয়াটিং এবং সাপ্লাই চেইন অ্যাটাক থেকে Node.js প্রোজেক্ট সুরক্ষিত করা

আপনার Node.js অ্যাপ সুরক্ষিত করতে এবং এর মাধ্যমে আক্রমণ প্রতিরোধ করতে প্যাকেজ-lock.json:

  • কঠোর সংস্করণ পিনিংসংস্করণ পরিসীমা পরিহার করুন (^, ~) মধ্যে package.jsonঅপ্রত্যাশিত আপডেট এবং সংস্করণের পরিবর্তন কমাতে সমস্ত নির্ভরতাকে নির্দিষ্ট সংস্করণে লক করুন।
  • স্বাক্ষর যাচাইপ্যাকেজের সত্যতা ও উৎস যাচাই করতে Sigstore-এর মতো টুল এবং npm-এর প্রোভেনেন্স ফিচার ব্যবহার করুন।
  • অপরিবর্তনীয় বিল্ড: সর্বদা ব্যবহার করুন npm ci একটি বৈধতার সাথে প্যাকেজ-lock.json প্রোডাকশন পরিবেশে ফাইল। কখনো নির্ভর করবেন না npm ইনস্টল করুন ডেপ্লয়মেন্টের সময়, কারণ এটি যাচাইবিহীন পরিবর্তন আনতে পারে।
  • ক্রমাগত পর্যবেক্ষণএমন মনিটরিং সলিউশন ব্যবহার করুন যা আপনাকে সতর্ক করে যখন:
    • আপনার নতুন প্যাকেজগুলি প্রদর্শিত হবে প্যাকেজ-lock.json
    • বিদ্যমান প্যাকেজগুলি অপ্রত্যাশিতভাবে পরিবর্তিত হয়
    • সন্দেহজনক প্যাটার্ন (যেমন, প্যাকেজের নাম যেমন প্রকাশ করে, রিঅ্যাক্ট-ডোম, কৌণিক) শনাক্ত করা হয়
  • নির্ভরশীলতা নিরীক্ষা সরঞ্জামস্বয়ংক্রিয় সরঞ্জামগুলিকে একীভূত করুন যেমন npm অডিট, স্নিক, বা জাইজেনি আপনার CI-তে pipeline দুর্বলতা এবং টাইপোস্কোয়াটিং সূচকগুলির জন্য স্ক্যান করতে।
  • লকফাইল হাইজিন: চিকিৎসা প্যাকেজ-lock.json কোড হিসাবে। এটি পর্যালোচনা করুন। pull requestsবিশেষ করে যখন নির্ভরতাগুলি আপডেট বা যোগ করা হয়।
  • অটোমেটেড Pre-Commit চেকব্যবহার করুন pre-commit hooks ভার্সন কন্ট্রোলে পৌঁছানোর আগে আপনার লকফাইলটি যাচাই করতে।

প্যাকেজ-lock.json এনপিএম টাইপোস্কোয়াটিং আক্রমণে একটি উচ্চ-মূল্যের লক্ষ্যবস্তু। একটি টাইপোর মতো রিঅ্যাক্ট-ডোম or লোডাস আক্রমণকারীদের আপনার নির্মাণে প্রবেশের একটি সরাসরি পথ দেয় pipelineসরবরাহ শৃঙ্খলের অখণ্ডতা বজায় রাখার জন্য এই ফাইলটির ব্যাপারে সতর্কতা অপরিহার্য।

সুতরাং, একটি মাত্র টাইপিংয়ের ভুল আপনার কাজটি নষ্ট করে দিতে পারে। তা হতে দেবেন না!

টাইপোতে একটি ভুল প্যাকেজ-lock.json এটা শুধু অগোছালো কোডিং নয়; এটি এনপিএম টাইপোস্কোয়াটিং-এর জন্য একটি সত্যিকারের ঝুঁকি। ফাইলটি একটি দ্বাররক্ষকের মতো কাজ করে, এবং যদি এটি অরক্ষিত হয়ে পড়ে, আপনার pipeline ব্যাপারটাও তাই। এর সমাধানটা আকর্ষণীয় নয়: গতি কমানো, লকফাইল পর্যালোচনা করা, চেকগুলো স্বয়ংক্রিয় করা এবং পরিবর্তনগুলো পর্যবেক্ষণ করা। কিন্তু এটা করাটা সার্থক।

আপনার প্রতিরক্ষা ব্যবস্থা জোরদার করতে, Xygeni-এর মতো টুল ব্যবহার করার কথা বিবেচনা করুন, যা টাইপোস্কোয়াটিং শনাক্ত ও পরীক্ষা করার জন্য ডিজাইন করা হয়েছে। প্যাকেজ লক JSON ফাইলগুলি, এবং আপনার সম্পূর্ণ প্রক্রিয়া জুড়ে প্যাকেজের অখণ্ডতা সুরক্ষিত রাখুন। CI/CD pipelineওপেন সোর্সের যুগে বিশ্বাস অর্জন করতে হয় এবং তা যাচাইও করতে হয়।

sca-tools-software-composition-analysis-tools
আপনার সফটওয়্যারের ঝুঁকিগুলোকে অগ্রাধিকার দিন, প্রতিকার করুন এবং সুরক্ষিত করুন।
আপনার বিনামূল্যে অ্যাকাউন্টটি নিন।
কোন ক্রেডিট কার্ড প্রয়োজন নেই

আপনার সফটওয়্যার উন্নয়ন ও বিতরণ সুরক্ষিত করুন

Xygeni প্রোডাক্ট স্যুটের সাথে