শাই হুলুদ - এনপিএম প্যাকেজ - সাপ্লাই চেইন অ্যাটাক

শাই-হুলুদ: এনপিএম প্যাকেজ ওয়ার্মের ব্যাখ্যা

সুচিপত্র

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

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

TL; ডিআর

২০২৫ সালের ১৪ই সেপ্টেম্বর, গবেষকরা শনাক্ত করেছেন শাই হুলুদভিতরে লুকিয়ে থাকা একটি স্ব-প্রতিলিপিকারী কৃমি এনপিএম প্যাকেজএকটি রুটিন ডিপেন্ডেন্সি আপডেটকে একটি পূর্ণাঙ্গ রূপ দেওয়া সরবরাহ চেইন আক্রমণপ্রথম দেখা গিয়েছিল @ctrl/টিনিকালার ড্যানিয়েল ডস সান্তোস পেরেইরার তৈরি প্যাকেজ, শাই-হুলুদ, গোপনীয় তথ্য সংগ্রহ করে, গিটহাব রিপো এবং ওয়ার্কফ্লোর মাধ্যমে সেগুলো পাচার করে এবং চুরি করা ক্রেডেনশিয়াল ব্যবহার করে রেজিস্ট্রি জুড়ে নিজেকে পুনরায় প্রকাশ করে। কয়েক দিনের মধ্যেই, আক্রান্ত প্যাকেজের সংখ্যা কয়েক ডজন থেকে শতকে পৌঁছে যায়, যা নিশ্চিত করে যে... শাইহুলুদ এটি শুধু আরেকটি ট্রোজান নয়, বরং এটি একটি ওয়ার্ম যা এনপিএম ইকোসিস্টেম জুড়ে স্বয়ংক্রিয়ভাবে ছড়িয়ে পড়ার জন্য ডিজাইন করা হয়েছে।

প্রভাবঃ পাবলিক এনপিএম প্যাকেজ ইনস্টলকারী যেকোনো ডেভেলপার বা সিআই রানার ঝুঁকিতে থাকেন।

তাত্ক্ষণিক ক্রিয়া: পরিচিত সংস্করণগুলি ব্লক করুন, শুধুমাত্র লকফাইল-ভিত্তিক ইনস্টলেশনে স্যুইচ করুন, npm এবং GitHub টোকেনগুলি আবর্তন করুন, ওয়ার্কফ্লো নিরীক্ষা করুন এবং আপোসের সূচক (IoC) নিরীক্ষণ করুন।

কী হয়েছে?

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

ডেভঅপস দলগুলোর জন্য শিক্ষাটি স্পষ্ট: যদি প্রতিটি ইনস্টলেশন কোড চালাতে পারে, তাহলে প্রতিটি ডিপেন্ডেন্সি আপডেটই একটি সম্ভাব্য লঙ্ঘনের স্থান।

সম্ভাব্য প্রাথমিক ভেক্টর এবং লক্ষ্যযুক্ত প্রমাণপত্র

প্রাথমিক বিশ্লেষণ ইঙ্গিত দেয় যে আক্রমণটি সম্ভবত শুরু হয়েছিল চুরি হওয়া পরিচয়পত্রউদাহরণস্বরূপ, এনপিএম (npm) নকল করে ফিশিং ক্যাম্পেইন চালানো হয়। login অথবা এমএফএ প্রম্পটগুলো ডেভেলপার টোকেন হাতিয়ে নিয়ে থাকতে পারে। একবার আক্রমণকারীরা সেই প্রথম সুযোগটি পেয়ে গেলে, ওয়ার্মটি এনপিএম প্যাকেজের মধ্যে নিজেকে ঢুকিয়ে দিয়ে এবং আরও গোপনীয় তথ্য চুরি করে ছড়িয়ে পড়ে:

  • এনপিএম কনফিগারেশন ফাইল মত .npmrc, প্রায়শই প্রকাশ টোকেন ধারণ করে।
  • পরিবেশ পরিবর্তনশীল এবং গিটহাব প্যাটস সহ কনফিগারেশন এবং CI/CD গোপনীয়তা
  • ক্লাউড মেটাডেটা এন্ডপয়েন্ট (AWS, GCP, Azure) পার্শ্বীয় স্থানান্তরের জন্য স্বল্পস্থায়ী ক্রেডেনশিয়াল প্রদান করে।

সুতরাং, ক্রেডেনশিয়াল চুরিই হয়ে উঠল এর উৎক্ষেপণ মঞ্চ। বৈধ এনপিএম টোকেন এবং গিটহাব সিক্রেট ব্যবহার করে শাই-হুলুদ কোনো অতিরিক্ত মানবিক প্রচেষ্টা ছাড়াই একাধিক প্যাকেজ ও রিপোজিটরিতে নিজের প্রতিলিপি তৈরি করতে পারত।

শাই-হুলুদ সরবরাহ শৃঙ্খল আক্রমণের নির্বাহী প্রভাব

শাই-হুলুদ আজও সক্রিয়। এই ওয়ার্মটি প্রভাবের সময়কালকে ত্বরান্বিত করে। যা একসময় একটি ট্রোজানের মাধ্যমে ঘটতে সপ্তাহখানেক সময় নিত, এখন তা কয়েক ঘণ্টার মধ্যেই ঘটে। ফলে, এর বিস্তার দ্রুততর এবং তা নিয়ন্ত্রণ করা আরও কঠিন। এটি যেভাবে অগ্রসর হয়:

  • npm publish টোকেন এবং GitHub সিক্রেট চুরি করা।
  • নিজেকে অন্যান্য এনপিএম প্যাকেজে পুনরায় প্রকাশ করা।
  • স্থায়িত্বের জন্য ক্ষতিকর গিটহাব অ্যাকশনস ওয়ার্কফ্লো যোগ করা হচ্ছে।

কারা আক্রান্ত:

যে কোনো দল যারা পাবলিক এনপিএম প্যাকেজ ইনস্টল করে, তারা ঝুঁকিতে থাকে। এছাড়াও, ক্যাশ করা এনপিএম বা গিটহাব টোকেন ব্যবহারকারী ডেভেলপাররা উচ্চ ঝুঁকির সম্মুখীন হন। যেসব সিআই রানার ব্যাপক পরিসরের সিক্রেট ব্যবহার করে, তারাও ঝুঁকিপূর্ণ।

ব্যবসায়িক ঝুঁকি

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

npm প্যাকেজে শাই-হুলুদ সাপ্লাই চেইন অ্যাটাক কীভাবে কাজ করে

আক্রমণকারীর উদ্দেশ্য ও প্রেরণা

এই প্রচারাভিযানটি তিনটি বিষয়কে সর্বোত্তম করে তোলে:

  • প্রথম উদ্দেশ্য হল ব্যাপক হারে পরিচয়পত্র চুরি ডেভেলপারদের ল্যাপটপ এবং সিআই রানার থেকে। এর মধ্যে রয়েছে এনপিএম পাবলিশ টোকেন, গিটহাব টোকেন এবং ক্লাউড ক্রেডেনশিয়াল। প্রকৃতপক্ষে, একাধিক বিশ্লেষণ পদ্ধতিগতভাবে গোপন তথ্য সংগ্রহের বিষয়টি নিশ্চিত করেছে, যেমন ট্রাফলহগ চালানো এবং ক্লাউড মেটাডেটা এন্ডপয়েন্ট কোয়েরি করা।
  • দ্বিতীয় উদ্দেশ্য হলো স্বয়ংক্রিয়ভাবে প্রচার করুন ক্ষতিগ্রস্ত রক্ষণাবেক্ষণকারীদের প্রকাশনা অধিকারের অপব্যবহারের মাধ্যমে এটি ঘটে। এর ফলে, একটি ঘাঁটি দ্রুত অনেকগুলিতে প্রসারিত হয়, কারণ অতিরিক্ত মানবিক প্রচেষ্টা ছাড়াই অন্যান্য প্যাকেজের নতুন সংক্রামিত সংস্করণগুলি উপস্থিত হয়।
  • তৃতীয় উদ্দেশ্যটি হলো নির্ভরযোগ্যভাবে টিকে থাকে এবং বেরিয়ে যায় গিটহাব পরিকাঠামোর মাধ্যমে আক্রমণকারীরা “Shai-Hulud” নামে একটি ডাবল বেস৬৪ পাবলিক রিপো তৈরি করে। ডেটা.জেসনএবং এর পাশাপাশি তারা এমন একটি ওয়ার্কফ্লো স্থাপন করে যা সিরিয়ালাইজ করে ${{ toJSON(secrets) }} এবং এটিকে একটি স্ট্যাটিক ওয়েবহুকে পোস্ট করে।

এর সম্ভাব্য লাভের মধ্যে রয়েছে রেজিস্ট্রি এবং সোর্স কোডে দীর্ঘস্থায়ী প্রবেশাধিকার, ক্লাউড অ্যাকাউন্টে দ্রুত স্থানান্তর, এবং সাপ্লাই চেইনকে আরও শক্তিশালী করার সুযোগ। প্রকাশ্য প্রতিবেদন থেকে দেখা যায়, প্রাইভেট রিপোগুলোকে পাবলিক করে দেওয়া হয়েছে। “-অভিবাসন” প্রত্যয়, যা ডেটার প্রকাশ এবং গতি বৃদ্ধি করে

শাই-হুলুদ পেলোডের ভিতরে: bundle.js এনপিএম প্যাকেজে

শাই-হুলুদ জাহাজ হিসেবে বৃহৎ, ওয়েবপ্যাক-বান্ডেল করা এবং ব্যাপকভাবে সংকুচিত জাভাস্ক্রিপ্ট ফাইল (bundle.js(প্রায় ৩-৩.৭ এমবি) যেটি একটি থেকে কার্যকর করে পোস্টইনস্টল হুক ইন package.jsonফলস্বরূপ, প্রতিটি ইনস্টলেশন স্বয়ংক্রিয়ভাবে পেলোডটি চালু করে। এই ডিজাইনটি আইডেন্টিফায়ার গোপন রাখে, কন্ট্রোল ফ্লো সংকুচিত করে এবং সমস্ত লজিককে একটিমাত্র আর্টিফ্যাক্টের মধ্যে রাখে যা ইনস্টলেশনের সময় কার্যকর হয়। বিশ্লেষকরা ধারাবাহিকভাবে ওয়েবপ্যাক বান্ডলিং, অস্বাভাবিক ফাইলের আকার এবং ইনস্টলেশন-কালীন কার্যকর হওয়ার বিষয়টি নিশ্চিত করেছেন।

নমুনাগুলিতে আপনি যে ধোঁয়াশা এবং বিশ্লেষণ-বিরোধী বৈশিষ্ট্যগুলি দেখতে পাবেন:

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

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

শাই-হুলুদে ইনস্টল-সময়ের এক্সিকিউশন: যেভাবে এনপিএম প্যাকেজগুলো ওয়ার্মটিকে সক্রিয় করে

আক্রমণ শুরু হয় যখন পোস্টইনস্টল নোড চালায় bundle.js. এই পর্যায়ে, স্ক্রিপ্টটি মেমরিতে ওয়ার্কিং স্টেট ইনিশিয়ালাইজ ও আনপ্যাক করে, যা ওয়ার্মটির পূর্ণাঙ্গ অপারেশনের জন্য ক্ষেত্র প্রস্তুত করে।

আবিষ্কার এবং ফসল সংগ্রহ

  • পেলোডটি process.env ফাইলটি ডাম্প করে এবং উচ্চ-এনট্রপির সিক্রেট ও টোকেন প্রিফিক্সের জন্য স্থানীয় ফাইলগুলো স্ক্যান করে। এছাড়াও, এটি TruffleHog চালানোর মাধ্যমে এর পরিধি আরও বিস্তৃত করে।
  • এটি স্বল্পস্থায়ী ক্রেডেনশিয়াল সংগ্রহ করার জন্য ক্লাউড মেটাডেটা এন্ডপয়েন্টগুলোতে কোয়েরি করে। এই ক্ষেত্রে, কল করে 169.254.169.254 AWS-এ অথবা metadata.google.internal GCP-তে এগুলো প্রায়শই সংক্রামিত পোষকদেহে দেখা যায়।
  • অতএব, প্রাপ্ত যেকোনো ক্রেডেনশিয়াল নতুন এনপিএম প্যাকেজ প্রকাশ করতে বা গিটহাব ওয়ার্কফ্লো পুশ করতে অবিলম্বে ব্যবহারযোগ্য হয়ে ওঠে।

বহিষ্কার

  • ওয়ার্মটি নামে একটি নতুন গিটহাব রিপো তৈরি করে। শাই হুলুদ এবং একটি ডাবল বেস৬৪-এনকোডেড লেখে data.json প্ল্যাটফর্মের বিবরণ, এনভায়রনমেন্ট ডাম্প এবং গোপনীয় তথ্য সহ। যেমনটা দেখা যাচ্ছে, ডিফেন্ডাররা যদি জানে কোথায় খুঁজতে হবে, তবে এই গোলযোগপূর্ণ আচরণটি সহজেই শনাক্ত করা যায়।
  • এটি একটি GitHub Actions ওয়ার্কফ্লোও স্থাপন করে, প্রায়শই একটি নির্দিষ্ট নামের ব্রাঞ্চে। শাই-হুলুদ, যা ক্রমিক করে ${{ toJSON(secrets) }} এবং ডেটা একটি স্ট্যাটিক ওয়েবহুকে পোস্ট করে। অধিকন্তু, এই কার্যপ্রবাহটি ততক্ষণ পর্যন্ত স্থায়ী থাকে যতক্ষণ না কেউ সক্রিয়ভাবে এটিকে সরিয়ে দেয়।

প্রসারণ

  • যেকোনো আবিষ্কৃত এনপিএম টোকেন ব্যবহার করে, পেলোডটি হ্যাক হওয়া রক্ষণাবেক্ষণকারীর মালিকানাধীন সমস্ত প্যাকেজের তালিকা তৈরি করে। এরপর, এটি প্রতিটি টারবল ডাউনলোড করে, তাতে bundle.js ও একটি postinstall এন্ট্রি যুক্ত করে এবং প্যাকেজটি পুনরায় প্রকাশ করে।
  • এর ফলে, কয়েক ঘণ্টার মধ্যেই কয়েক ডজন সংক্রমিত প্যাকেজ দেখা দিতে পারে, যা সমগ্র বাস্তুতন্ত্র জুড়ে এর প্রভাবের পরিধিকে বহুগুণে বাড়িয়ে দেয়।

অধ্যবসায় এবং সংস্পর্শ

  • এই ওয়ার্মটি ক্ষতিকর ওয়ার্কফ্লো চালু রাখে এবং বেশ কয়েকটি ক্ষেত্রে প্রাইভেট রিপোজিটরিগুলোকে পাবলিক করে দেয়। “-অভিবাসন” সব মিলিয়ে, এটি আক্রমণকারীকে তার অবস্থান ধরে রাখতে এবং ডেটা ফাঁসের পরিমাণ সর্বোচ্চ করতে সাহায্য করে।

মূল সনাক্তকরণ নোট
এই অস্বাভাবিক ব্যবহার ${{ toJSON(secrets) }} অ্যাকশন ওয়ার্কফ্লোতে এটি বিরল। অতএব, শিকারের সময় দলগুলোর এটিকে একটি উচ্চ সংকেত হিসেবে বিবেচনা করা উচিত।

একটি পরিমার্জিত কর্মপ্রবাহের ধরণ যা আপনার খুঁজে বের করা উচিত

এই অস্বাভাবিক ব্যবহার থেকে JSON(গোপনীয়তা) এই ঘটনায় ‘অ্যাকশনস’ একটি উচ্চ-সংকেত সূচক।

উচ্চ-স্তরের প্রচার ছদ্ম-কোড (নিরাপদ, বর্ণনামূলক)

বিশ্লেষকরা বৃহৎ পরিসরে এই চক্রটি পর্যবেক্ষণ করেছেন, যা কয়েক ডজন থেকে শত শত সংক্রমিত প্যাকেজে দ্রুত উল্লম্ফনের কারণ ব্যাখ্যা করে।

কেন এটি একটি প্যাকেজ ইকোসিস্টেমে একটি কীট

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

এই ওয়ার্মটি চুরি করা npm publish টোকেনের সুযোগ নেয়। বৈধ ক্রেডেনশিয়াল পাওয়া মাত্রই, এটি একই মেইনটেইনারের মালিকানাধীন অন্যান্য প্যাকেজের অধীনে সংক্রামিত সংস্করণগুলো পুনরায় প্রকাশ করে। ফলস্বরূপ, অসচেতন ডেভেলপার বা CI রানাররা সেই প্যাকেজগুলো ইনস্টল করে ফেলে এবং এই চক্রটি চলতে থাকে।

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

এটি কীভাবে কাজ করে তার সংক্ষিপ্ত নির্দেশিকা

শাই-হুলুদের জীবনচক্রের সারসংক্ষেপ করতে গেলে, এখানে একটি অসুবিধা রয়েছে।cisএর প্রধান ধাপগুলোর বিবরণ:

  • একটি প্যাকেজ সহ পোস্টইনস্টল ইনস্টল করা হয়েছে, এবং bundle.js চালায়
  • পেলোডটি এনভায়রনমেন্ট ভেরিয়েবল ডাম্প করে, ফাইল ও গিট হিস্ট্রি স্ক্যান করে এবং রান করে। ট্রাফলহগএবং ক্লাউড মেটাডেটা পরিষেবাগুলিতে অনুসন্ধান চালায়। ফলে, খুঁজে পাওয়া যেকোনো গোপনীয় তথ্য তাৎক্ষণিকভাবে ব্যবহারযোগ্য হয়ে ওঠে।
  • তথ্য পাচার দুটি উপায়ে ঘটে: প্রথমত, একটি পাবলিক রিপো তৈরি করে যার নাম শাই হুলুদ ডাবল বেস৬৪-এনকোডেড সহ data.jsonদ্বিতীয়ত, একটি গিটহাব অ্যাকশনস ওয়ার্কফ্লো স্থাপন করে যা পোস্ট করে ${{ toJSON(secrets) }} একটি ওয়েবহুকে।
  • যেকোনো চুরি করা এনপিএম টোকেন ব্যবহার করে, ওয়ার্মটি আক্রান্ত মেইনটেইনারের মালিকানাধীন অন্য সব প্যাকেজকেও একই ক্ষতিকর হুকসহ পুনরায় প্রকাশ করে। এভাবে সংক্রমণ দ্রুতগতিতে বহুগুণে বেড়ে যায়।
  • অবশেষে, আক্রমণকারীর হাতে আরও গোপনীয় তথ্য, ছড়িয়ে দেওয়ার জন্য আরও প্যাকেজ এবং আরও অনেক কিছু থাকে। অধ্যবসায় গিটহাব অ্যাকাউন্ট এবং রিপোজিটরিগুলোর ভিতরে।

বাস্তবে এই ধরনের আক্রমণ কীভাবে এড়ানো যায়

শাই-হুলুদ একটি সতর্কবার্তা। যে ওয়ার্ম টোকেন চুরি করে এবং নিজেকে পুনরায় প্রকাশ করে, তা শুধু ভবিষ্যতের ঝুঁকি নয়, এটি ইতিমধ্যেই সক্রিয়। এনপিএম প্যাকেজ ইকোসিস্টেম আজ। এই ধরনের প্রতিরোধ করতে সরবরাহ চেইন আক্রমণদলগুলোর এমন নিয়ন্ত্রণ ব্যবস্থা প্রয়োজন যা প্রোগ্রামযোগ্য, স্বয়ংক্রিয় এবং সরাসরি প্রয়োগ করা যায়। CI/CD pipelineএগুলো সেই একই প্রতিরক্ষা ব্যবস্থা যা আপনি ইতিমধ্যেই প্রয়োগ করতে পারেন জাইজেনি.

প্রবেশদ্বারেই খারাপ নিদর্শনগুলো থামান।

ডেভেলপার বা CI জবের কাছে পৌঁছানোর আগে আপনার npm প্যাকেজ এবং টারবলগুলো স্ক্যান করা উচিত। অতিরিক্ত বড় bundle.js ফাইল, সন্দেহজনক পোস্টইনস্টল hooksএবং ধোঁয়াশা সৃষ্টিকারী চিহ্নগুলো সবই প্রাথমিক সতর্ক সংকেত হিসেবে কাজ করে। অধিকন্তু, শীতল হওয়ার সময়কাল এবং নির্দিষ্ট সংস্করণগুলো প্রয়োগ করা pipelineএটি নতুন ও যাচাইবিহীন রিলিজগুলোকে স্বয়ংক্রিয়ভাবে গ্রহণ হওয়া থেকে প্রতিরোধ করে।

পাকান CI/CD গতানুগতিক

Guardrails in CI/CD এগুলো অপরিহার্য। এগুলো এমন মার্জ বা ইনস্টল প্রত্যাখ্যান করে যা নতুন স্ক্রিপ্ট বা বাইনারি যুক্ত করে। একই সাথে, এগুলো এমন ওয়ার্কফ্লো ব্লক করে যা সিক্রেট সিরিয়ালাইজ করে বা এক্সটার্নাল পোস্ট করার চেষ্টা করে। টিমগুলোর লকফাইল-ভিত্তিক ইনস্টলও বাধ্যতামূলক করা উচিত।npm ci) সব জুড়ে pipelineফলে নির্ভরতা সেটগুলো পুনরুৎপাদনযোগ্য ও নিরাপদ থাকে।

টোকেন বিস্ফোরণের ব্যাসার্ধ হ্রাস করুন

গোপনীয় তথ্য যেন ব্যর্থতার একক কারণ না হয়ে ওঠে। ক্রমাগত কোড, কনফিগারেশন এবং অন্যান্য বিষয় স্ক্যান করুন। pipeline জন্য আউটপুট প্রকাশিত পরিচয়পত্রটোকেনগুলোর পরিধি সীমিত রাখা উচিত, সেগুলোর মেয়াদ স্বল্প হওয়া উচিত এবং ঝুঁকির আশঙ্কা শনাক্ত হলে স্বয়ংক্রিয়ভাবে সেগুলো পরিবর্তন করা উচিত। নিয়ম অনুযায়ী, কোনো সন্দেহজনক পোস্টইনস্টল সম্পন্নকারী হোস্টে ব্যবহৃত যেকোনো টোকেনকে ঝুঁকিপূর্ণ হিসেবে গণ্য করুন।

কেঁচোর আচরণ আগেভাগেই দেখুন

অসাধারণ সনাক্তকরণ এটি অত্যন্ত গুরুত্বপূর্ণ। উদাহরণস্বরূপ, npm publish ইভেন্টে হঠাৎ করে বৃদ্ধি, কোনো কারণ ছাড়াই নতুন ওয়ার্কফ্লোর আবির্ভাব, অথবা অদ্ভুত এনকোডেড ফাইলে ভরা নতুন পাবলিক রিপো—এগুলো সবই ওয়ার্মের কার্যকলাপের সংকেত দিতে পারে। তাই, দলগুলোর উচিত দ্রুত সতর্কবার্তা দেওয়া এবং যেসব মেইনটেইনার বা রানারের মধ্যে এই ধরনের সতর্কতামূলক লক্ষণ দেখা যায়, তাদের আলাদা করে ফেলা।

বিল্ড নষ্ট না করে দ্রুত সমাধান করুন

গতি ও নিরাপত্তা একসাথে চলতে হবে। স্বয়ংক্রিয় pull requests ত্রুটিপূর্ণ এনপিএম প্যাকেজগুলোকে যাচাইকৃত সংস্করণ দিয়ে প্রতিস্থাপন করা যায়। এছাড়াও, পৌঁছানোর ক্ষমতা এবং শোষণযোগ্যতা বিশ্লেষণ নিশ্চিত করে যে আপগ্রেডগুলি ন্যূনতম এবং স্থিতিশীল থাকে। অবশেষে, এক্সপোজার নিশ্চিত হয়ে গেলে, আক্রমণটির আরও বিস্তার রোধ করার জন্য ক্লিন ইমেজ থেকে ক্ষতিগ্রস্ত CI রানারগুলিকে পুনর্নির্মাণ করা হয়।

সমঝোতার সূচক (IoCs)

শাই-হুলুদকে বিশ্লেষণ করার সময় দলগুলোর উভয়ের দিকেই নজর রাখা উচিত। স্থির IoC ফাইলগুলিতে এবং আচরণগত IoC in pipelineএই সংকেতগুলো সম্মিলিতভাবে সংক্রমণ দ্রুত শনাক্ত করতে এবং কৃমি আরও ছড়িয়ে পড়ার আগেই ব্যবস্থা নিতে সাহায্য করে।

স্থির IoC গুলি

নিম্নলিখিত SHA-256 ডাইজেস্টগুলির মিল পরিলক্ষিত হয়েছে bundle.js নমুনা:

  • 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
  • 81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
  • dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c

এছাড়াও, এই পুনরাবৃত্তিমূলক ধরণগুলোর দিকে লক্ষ্য রাখুন:

  • A bundle.js প্যাকেজ রুটে।
  • "postinstall": "node bundle.js" ভিতরে package.json.
  • রিপোজিটরি নাম শাই হুলুদ.
  • গিটহাব ওয়ার্কফ্লোতে রয়েছে ${{ toJSON(secrets) }}.

আচরণগত IoCs

ফাইল সিগনেচার ছাড়াও, ওয়ার্মের কার্যকলাপ বিভিন্ন আচরণের মাধ্যমে প্রকাশ পায়। উদাহরণস্বরূপ:

  • একজন রক্ষণাবেক্ষণকারীর কাছ থেকে হঠাৎ করে npm publish ইভেন্টের সমাহার।
  • নতুন ওয়ার্কফ্লো যা এক্সটার্নাল এন্ডপয়েন্টে ডেটা পাঠায়।
  • CI রানার থেকে প্রেরিত বহির্গামী POST অনুরোধসমূহ।
  • সম্প্রতি এনকোডেড ব্লব সহ পাবলিক রিপো তৈরি করা হয়েছে।

দ্রুত শিকার

উপসংহার: শাই-হুলুদ থেকে প্রাপ্ত শিক্ষা

সার্জারির শাই-হুলুদ সরবরাহ শৃঙ্খল আক্রমণ এনপিএম প্যাকেজগুলিতে এই ঘটনাটিই দেখিয়ে দেয় যে আজকের সফটওয়্যার সরবরাহ ব্যবস্থা কতটা ভঙ্গুর হয়ে পড়েছে। এই ওয়ার্মটি শুধু ক্ষতিকর কোড যোগ করার চেয়েও বেশি কিছু করেছিল। এটি টোকেন চুরি করে, ডেটা বাইরে পাঠিয়ে দেয় এবং তারপর স্বয়ংক্রিয়ভাবে নিজেকে পুনরায় প্রকাশ করে। এই কারণে, আক্রমণটি সপ্তাহের পরিবর্তে কয়েক ঘণ্টার মধ্যেই ছড়িয়ে পড়ে।

ডেভেলপার এবং ডেভঅপস টিমের জন্য শিক্ষাটি স্পষ্ট:

  • প্রতিটি ইনস্টলেশন কোড চালায়। এমনকি একটি সাধারণ এনপিএম প্যাকেজও একটি পোস্টইনস্টল ওয়ার্ম লুকিয়ে রাখতে পারে।
  • প্রতিটি টোকেনের উচ্চ মূল্য রয়েছে। একবার চুরি হয়ে গেলে, এটি ম্যালওয়্যার আরও ছড়াতে ব্যবহার করা যেতে পারে।
  • প্রতি pipeline যাচাই করা প্রয়োজন। ছাড়া guardrails নির্ভরতা, কর্মপ্রবাহ এবং গোপনীয় তথ্যের ক্ষেত্রে একটি সামান্য ত্রুটিও দ্রুত উৎপাদনে প্রভাব ফেলতে পারে।

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

জাইজেনিতে আমরা শাই-হুলুদ সাপ্লাই চেইন আক্রমণকে সমগ্র ওপেন সোর্স ইকোসিস্টেমের জন্য একটি সতর্কবার্তা হিসেবে দেখছি। টেকসই অগ্রগতির পথ হলো সাপ্লাই চেইন নিরাপত্তাকে সরাসরি উন্নয়ন প্রক্রিয়ার মধ্যে নিয়ে আসা, ঠিক সেই পর্যায়ে যেখানে কোড, এনপিএম প্যাকেজ এবং অন্যান্য উপাদান তৈরি হয়। pipelines সংযোগ করে।

নিচে Shai-Hulud-এ ক্ষতিগ্রস্ত হিসেবে চিহ্নিত npm প্যাকেজ এবং ভার্সনগুলোর সম্পূর্ণ তালিকা দেওয়া হলো। আপনার লকফাইল, রেজিস্ট্রি এবং CI পরীক্ষা করতে এটি ব্যবহার করুন। pipelineপ্রচারের জন্য।

ক্ষতিগ্রস্ত প্যাকেজগুলির তালিকা

📦 ক্ষতিগ্রস্ত এনপিএম প্যাকেজগুলির পূর্বরূপ

প্যাকেজ নাম সংস্করণ প্রকাশের তারিখ
json-rules-engine-simplified0.2.12025-09-14T17:58:51.203Z
এয়ারপাইলট0.8.82025-09-14T18:35:07.600Z
এমসিপি-নলেজ-গ্রাফ1.2.12025-09-14T18:35:09.494Z
এয়ারচিফ0.3.12025-09-14T18:35:09.521Z
জাম্পগেট0.0.22025-09-14T18:35:09.651Z
টিভিআই-সিএলআই0.1.52025-09-14T18:35:10.996Z
@thangved/callback-window1.1.42025-09-14T20:31:38.479Z
@tnf-dev/api1.0.82025-09-14T20:31:39.547Z
@tnf-dev/js1.0.82025-09-14T20:31:41.251Z
@tnf-dev/mui1.0.82025-09-14T20:31:41.259Z
@tnf-dev/core1.0.82025-09-14T20:31:42.728Z
@teselagen/react-table6.10.202025-09-14T20:37:08.597Z
@hestjs/demo0.1.22025-09-14T20:45:52.348Z
@nexe/eslint-config0.1.12025-09-14T20:45:53.625Z
@hestjs/eslint-config0.1.22025-09-14T20:45:55.044Z
@nexe/config-manager0.1.12025-09-14T20:45:55.066Z
@nexe/logger0.1.32025-09-14T20:45:55.170Z
@hestjs/logger0.1.62025-09-14T20:45:55.197Z
@hestjs/validation0.1.62025-09-14T20:45:55.595Z
@hestjs/core0.2.12025-09-14T20:45:55.888Z
➡️ ক্ষতিগ্রস্ত প্যাকেজগুলির সম্পূর্ণ তালিকা দেখুন
প্যাকেজ নাম সংস্করণ প্রকাশের তারিখ
json-rules-engine-simplified0.2.12025-09-14T17:58:51.203Z
এয়ারপাইলট0.8.82025-09-14T18:35:07.600Z
এমসিপি-নলেজ-গ্রাফ1.2.12025-09-14T18:35:09.494Z
এয়ারচিফ0.3.12025-09-14T18:35:09.521Z
জাম্পগেট0.0.22025-09-14T18:35:09.651Z
টিভিআই-সিএলআই0.1.52025-09-14T18:35:10.996Z
@thangved/callback-window1.1.42025-09-14T20:31:38.479Z
@tnf-dev/api1.0.82025-09-14T20:31:39.547Z
@tnf-dev/js1.0.82025-09-14T20:31:41.251Z
@tnf-dev/mui1.0.82025-09-14T20:31:41.259Z
@tnf-dev/core1.0.82025-09-14T20:31:42.728Z
@teselagen/react-table6.10.202025-09-14T20:37:08.597Z
@hestjs/demo0.1.22025-09-14T20:45:52.348Z
@nexe/eslint-config0.1.12025-09-14T20:45:53.625Z
@hestjs/eslint-config0.1.22025-09-14T20:45:55.044Z
@nexe/config-manager0.1.12025-09-14T20:45:55.066Z
@nexe/logger0.1.32025-09-14T20:45:55.170Z
@hestjs/logger0.1.62025-09-14T20:45:55.197Z
@hestjs/validation0.1.62025-09-14T20:45:55.595Z
@hestjs/core0.2.12025-09-14T20:45:55.888Z
@hestjs/cqrs0.1.62025-09-14T20:45:55.966Z
@hestjs/scalar0.1.72025-09-14T20:45:56.386Z
ng2-ফাইল-আপলোড7.0.32025-09-15T02:44:29.555Z
ক্যাপাসিটর-বিজ্ঞপ্তিহ্যান্ডলার0.0.22025-09-15T04:54:48.431Z
ক্যাপাসিটর-প্লাগইন-ভনেজ1.0.22025-09-15T04:54:48.501Z
ক্যাপাসিটর-প্লাগইন-হেলথঅ্যাপ0.0.22025-09-15T04:54:48.704Z
ক্যাপাসিটর অ্যান্ড্রয়েড অনুমতি0.0.42025-09-15T04:54:48.753Z
ভিওআইপি-কলকিট1.0.22025-09-15T04:54:49.223Z
ক্যাপাসিটর-প্লাগইন-আইহেলথ1.1.82025-09-15T04:55:08.113Z
@art-ws/common2.0.222025-09-15T05:21:15.411Z
@art-ws/config-eslint2.0.42025-09-15T05:21:17.199Z
ngx-ws1.1.52025-09-15T05:21:17.514Z
@art-ws/slf2.0.152025-09-15T05:21:17.524Z
@art-ws/http-server2.0.212025-09-15T05:21:17.745Z
pm2-gelf-json1.0.42025-09-15T05:21:18.413Z
@art-ws/di2.0.282025-09-15T05:21:18.488Z
@art-ws/di-node2.0.132025-09-15T05:21:18.849Z
@art-ws/config-ts2.0.72025-09-15T05:21:19.408Z
@art-ws/db-context2.0.212025-09-15T05:21:19.814Z
@art-ws/openapi0.1.92025-09-15T05:21:19.969Z
@art-ws/web-app1.0.32025-09-15T05:21:20.383Z
@art-ws/ssl-info1.0.92025-09-15T05:21:20.927Z
sca-tools-software-composition-analysis-tools
আপনার সফটওয়্যারের ঝুঁকিগুলোকে অগ্রাধিকার দিন, প্রতিকার করুন এবং সুরক্ষিত করুন।
আপনার বিনামূল্যে অ্যাকাউন্টটি নিন।
কোন ক্রেডিট কার্ড প্রয়োজন নেই

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

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