- শাই-হুলুদ নামক একটি স্ব-প্রতিলিপি তৈরিকারী কীটের কারণে শত শত npm প্যাকেজ ক্ষতিগ্রস্ত হয়েছে, যার ফলে GitHub ৫০০+ দূষিত সংস্করণ সরিয়ে দিয়েছে।
- ম্যালওয়্যারটি গোপন তথ্য (npm টোকেন, GitHub PAT, ক্লাউড কী) চুরি করে এবং আক্রান্তদের প্রকাশনা অধিকার ব্যবহার করে সংক্রামিত প্যাকেজগুলি পুনরায় প্রকাশ করে।
- প্রমাণগুলি লিনাক্স এবং ম্যাকওএস টার্গেটিং, ট্রাফলহগ অপব্যবহার এবং একটি গিটহাব অ্যাকশন ওয়ার্কফ্লো নির্দেশ করে যা ডেটা বহিষ্কার করে।
- তাৎক্ষণিক পদক্ষেপ: টোকেন ঘোরানো, নির্ভরতা এবং GitHub রেপো অডিট করা, MFA/2FA প্রয়োগ করা, এবং bundle.js এবং webhook.site ট্র্যাফিক সহ IoC অনুসন্ধান করা।
জাভাস্ক্রিপ্ট জগতে আরেকটি সরবরাহ-শৃঙ্খল ভীতি হিসেবে যা শুরু হয়েছিল তা এনপিএম ইকোসিস্টেমকে প্রভাবিত করে একটি বড় ঘটনায় পরিণত হয়েছে। একাধিক সূত্রের প্রতিবেদনে একটি স্ব-প্রচারিত ম্যালওয়্যার স্ট্রেন নিশ্চিত করা হয়েছে, শাই-হুলুদ হিসেবে ট্র্যাক করা হয়েছে, যা ডেভেলপারের শংসাপত্রের সাথে আপস করে, কোড প্রকাশ করে এবং সংক্রমণ ছড়িয়ে রাখার জন্য দূষিত প্যাকেজগুলি পুনরায় প্রকাশ করে।
উৎসভেদে গণনা ভিন্ন হলেও, ঐক্যমত্য স্পষ্ট: আমরা মোকাবেলা করছি শত শত বিষাক্ত মুক্তি, যার মধ্যে রয়েছে একটি বহুল ব্যবহৃত লাইব্রেরি যা প্রতি সপ্তাহে লক্ষ লক্ষ বার ডাউনলোড করা হয়। GitHub এই বিস্তার রোধ করতে ৫০০ টিরও বেশি ক্ষতিগ্রস্থ সংস্করণ সরিয়ে দিয়েছে এবং বিশ্বব্যাপী নিরাপত্তা দলগুলি ডেভেলপারদের অনুপ্রবেশের সূত্র খুঁজে বের করার জন্য তাদের শংসাপত্রগুলি ঘোরাতে এবং তাদের রিপো এবং পাইপলাইনগুলি পরীক্ষা করার জন্য অনুরোধ করছে।
কি ঘটেছে এবং কেন এটা গুরুত্বপূর্ণ
তদন্তে দেখা যাচ্ছে যে অপারেশনটি সম্ভবত শুরু হয়েছিল শংসাপত্র সংগ্রহ লোভ স্পুফিং npm, রক্ষণাবেক্ষণকারীদের MFA সেটিংস "আপডেট" করার জন্য তাগিদ দিচ্ছে। অ্যাক্সেস হাতে পেয়ে, হুমকি অভিনেতা একটি ওয়ার্ম মোতায়েন করে যা ইনস্টলের পরে চলে, গোপনীয়তা অনুসন্ধান করে এবং শিকারের পরিচয়ের অধীনে সংক্রামিত বিল্ডগুলি পুনরায় প্রকাশ করে - বিশ্বস্ত রক্ষণাবেক্ষণকারীদের আক্রমণের পরিবর্ধক হিসাবে পরিণত করে।
শাই-হুলুদ দুটি বিপজ্জনক ধারণা একত্রিত করেছেন: স্বয়ংক্রিয় প্রচার এবং গোপনীয়তা চুরি। এটি চুরি করা npm টোকেনগুলিকে অপব্যবহার করে প্যাকেজের নতুন সংস্করণ প্রকাশ করে এবং GitHub টোকেন এবং ক্লাউড কী (AWS, GCP, Azure) ব্যবহার করে পার্শ্বীয়ভাবে স্থানান্তরিত করে এবং ডেটা এক্সফিল্টার করে। এই জোড়াটি ব্লাস্ট রেডিয়াসকে সুপারচার্জ করে, যার ফলে অসংখ্য ডাউনস্ট্রিম ব্যবহারকারীর মধ্যে একটি আপস তরঙ্গ তৈরি হয়।
লক্ষ্যগুলি ইউনিক্স-সদৃশ সিস্টেমের দিকে ঝুঁকে আছে বলে মনে হচ্ছে। বিশ্লেষণে দেখা গেছে যে বেশিরভাগ লিনাক্স এবং ম্যাকোসে ক্ষতিকারক লজিক কার্যকর হয়পরিবেশগত পরীক্ষার উপর ভিত্তি করে, যদিও গোপনীয়তা আবিষ্কারের পর্যায় (বিশেষ করে ট্রাফলহগের সাথে) আরও বিস্তৃতভাবে ঘটতে পারে। এই ফোকাসটি কীটের পদচিহ্নকে সংকুচিত করেছিল কিন্তু তবুও বিস্তৃত পরিসরের ডেভেলপার মেশিনগুলিকে উন্মুক্ত রেখেছিল।
জনপ্রিয় কমিউনিটি মডিউলের সাথে বেশ কয়েকটি উল্লেখযোগ্য সংস্থার প্যাকেজগুলি প্রভাবিত হয়েছিল। একটি হাই-প্রোফাইল উদাহরণে, @ctrl/টিনিকালার সপ্তাহে লক্ষ লক্ষ বার ডাউনলোড করা প্যাকেজটি বিতর্কের মুখে পড়ে, যা প্রমাণ করে যে সংক্রমণ নির্ভরতা গ্রাফে কতটা গভীরভাবে প্রবেশ করতে পারে।
কীট কীভাবে কাজ করে (প্রযুক্তিগত ভাঙ্গন)
মূল পেলোডটি একটি মোটা জাভাস্ক্রিপ্ট ফাইল হিসাবে পাঠানো হয়, যা সাধারণত বলা হয় bundle.js (পর্যবেক্ষিত নমুনায় ৩ মেগাবাইটের বেশি)। এটি package.json-এ যোগ করা একটি পোস্টইনস্টল হুকের মাধ্যমে কার্যকর হয়, যার অর্থ ব্যবহারকারী npm থেকে প্যাকেজ ইনস্টল করার সাথে সাথেই ক্ষতিকারক কোডটি স্বয়ংক্রিয়ভাবে চলে।
bundle.js এর ভিতরের মডিউলগুলি হল GitHub API ইন্টারঅ্যাকশন, ক্লাউড SDK (AWS/GCP), নেটওয়ার্কিং হেল্পার এবং গোপন আবিষ্কারের জন্য TruffleHog চালানোর রুটিন। স্ক্রিপ্টটি OS এর ইনভেন্টরি করে, একটি npm টোকেন সনাক্ত করে এবং একটি বৈধ GitHub টোকেন পরীক্ষা করে; যদি কোনটি না পাওয়া যায়, তবে এটি জামিনে যায়—অন্যথায় এটি এক্সফিল্ট্রেশন এবং প্রতিলিপি শুরু করে।
একটি উল্লেখযোগ্য অদ্ভুততা: কিছু সংক্রামিত প্যাকেজে একটি সংরক্ষণাগার ছিল যার নাম ছিল প্যাকেজ.টার সাধারণ নামকরণের পরিবর্তে, এমন একটি তথ্য যা গবেষকদের ক্ষতিগ্রস্থ শিল্পকর্মগুলিকে চিহ্নিত করতে সাহায্য করেছিল। বিশ্লেষকরা একটি বৈকল্পিকও লক্ষ্য করেছেন যা প্রি-ইনস্টল হুক হিসাবে কার্যকর করা হয়েছিল; একটি প্রাথমিক উদাহরণ উল্লেখ করা হয়েছিল ngx-বুটস্ট্র্যাপ 18.1.4, যা বিস্তারে প্রাথমিক বিচহেড হিসেবে কাজ করতে পারে।
একবার চালু হওয়ার পর, ম্যালওয়্যারটি npm সার্চ API এর মাধ্যমে ডেভেলপারের সর্বাধিক ডাউনলোড করা প্যাকেজগুলি তালিকাভুক্ত করে, প্রতিটি টারবল খুলে দেয়, bundle.js ড্রপ করে, একটি postinstall কমান্ড ইনজেক্ট করে, সংস্করণটি বাম্প করে, এবং ভিকটিমের টোকেন দিয়ে npm-এ পুনরায় প্রকাশ করে। এটি ডেভেলপারের পোর্টফোলিওকে আরও সংক্রমণের জন্য একটি বাহনে পরিণত করে।
সিক্রেটস এক্সফিল্ট্রেশন এবং গিটহাব ওয়ার্কফ্লো
শংসাপত্র সংগ্রহের জন্য, শাই-হুলুদ npm টোকেন, GitHub ব্যক্তিগত অ্যাক্সেস টোকেন এবং ক্লাউড এপিআই কী (AWS, GCP, Azure)। এরপর এটি ভুক্তভোগীর অ্যাকাউন্টের অধীনে 'Shai‑Hulud' নামে একটি পাবলিক GitHub রেপো তৈরি করে, চুরি করা গোপন তথ্য সহ একটি ডেটা ফাইল (যেমন, data.json) জমা দেয়—কার্যকরভাবে সেগুলি বিশ্বের সামনে প্রকাশ করে।
একই সাথে, গবেষকরা একটি ধূর্ত GitHub Actions কোণ পর্যবেক্ষণ করেছেন: কীট 'শাই-হুলুদ' নামে একটি শাখা তৈরি করে অ্যাক্সেসযোগ্য রিপোজিটরি জুড়ে এবং একটি ওয়ার্কফ্লো ফাইল (shai‑hulud‑workflow.yml) পুশ করে। পুশের উপর ট্রিগার করা, ওয়ার্কফ্লো গোপনীয়তা সংগ্রহ করে এবং আক্রমণকারী অবকাঠামোতে পাঠায়, কখনও কখনও পরে ডাবল Base64 এনকোডিং ট্রানজিটে থাকা বিষয়বস্তুকে অস্পষ্ট করে তোলার জন্য।
এমন একটি মাইগ্রেশন স্ক্রিপ্টের প্রমাণও রয়েছে যা ক্লোন ব্যক্তিগত/অভ্যন্তরীণ রিপো ভুক্তভোগী যেসব প্রতিষ্ঠান অ্যাক্সেস করতে পারে, সেগুলো থেকে ব্যবহারকারীর অ্যাকাউন্টে পাবলিক মিরর হিসেবে পুনরায় হোস্ট করা। লক্ষ্যটি মনে হচ্ছে ব্যক্তিগত প্রকল্প থেকে স্বয়ংক্রিয় সোর্স-কোড চুরি, যা প্রভাবিত প্রতিষ্ঠানের উপর চাপ বৃদ্ধি করে।
একাধিক প্রতিবেদনে ব্যাশ স্ক্রিপ্টের মধ্যে (মন্তব্য এবং এমনকি ইমোজি) এআই সহায়তার নিদর্শনগুলি উল্লেখ করা হয়েছে, যা ইঙ্গিত দেয় যে আক্রমণকারী একটি উন্নয়ন ত্বরান্বিত করবে এলএলএম ম্যালওয়্যারের অটোমেশন উপাদানগুলির।
সুযোগ এবং উল্লেখযোগ্য প্যাকেজ
সমন্বিত টেকডাউন জুড়ে, GitHub সরানো হয়েছে ৫০০+ ঝুঁকিপূর্ণ সংস্করণ কৃমির বংশবিস্তার রোধ করতে। যদিও সঠিক মোট সংখ্যা বিকশিত হতে থাকে, তালিকাটি অসংখ্য বাস্তুতন্ত্র এবং সংস্থাগুলিকে বিস্তৃত করে, যার ফলে সক্রিয় উইন্ডো চলাকালীন আপডেট হওয়া ডেভেলপারদের উপর প্রভাব পড়ে।
প্রায়শই উদ্ধৃত প্যাকেজ এবং নেমস্পেসের মধ্যে: @ctrl/টিনিকালার (সাপ্তাহিক ডাউনলোডের লক্ষ লক্ষ), একাধিক @ক্রাউডস্ট্রাইক/* উপাদান (যেমন কমিটলিন্ট এবং UI লাইব্রেরি), এবং বিস্তৃত সম্প্রদায় মডিউল সহ ngx-বুটস্ট্র্যাপ, ng2-ফাইল-আপলোড, এনজিএক্স-টোস্টার, এবং আরও অনেক কিছু। ক্রাউডস্ট্রাইক ইঙ্গিত দিয়েছে যে এর মূল প্ল্যাটফর্মটি এখনও প্রভাবিত হয়নি এবং চাবিগুলি তাৎক্ষণিকভাবে ঘোরানো হয়েছিল পাবলিক রেজিস্ট্রিতে ক্ষতিকারক এন্ট্রি সনাক্ত করার পর।
- তরঙ্গের সাথে সম্পর্কিত উদাহরণ: @ctrl/tinycolor; @crowdstrike/commitlint; @crowdstrike/foundry‑js; @crowdstrike/glide‑core; ngx‑bootstrap; ng2‑file‑upload; ngx‑toastr; @nativescript‑community/*; @teselagen/*; @things‑factory/*; এবং অন্যান্য।
- গবেষকরা আরও দেখেছেন প্রতি প্যাকেজে একাধিক ক্ষতিকারক সংস্করণ কিছু ক্ষেত্রে—সম্ভবত একই প্রকল্পের মধ্যে একাধিক রক্ষণাবেক্ষণকারীর অ্যাকাউন্টের মাধ্যমে কীট ছড়িয়ে পড়ার কারণে।
প্ল্যাটফর্ম প্রতিক্রিয়া এবং নিরাপত্তা পরিবর্তন
GitHub-এর তাৎক্ষণিক পদক্ষেপগুলির মধ্যে রয়েছে পরিচিত খারাপ প্যাকেজগুলি পরিষ্কার করা npm থেকে এবং আপলোড ব্লক করে সমঝোতার সূচক (IoCs) এর সাথে মিলে যায়। কোম্পানিটি আরও কঠোর প্রকাশনা নিয়ন্ত্রণ চালু করছে: স্থানীয় প্রকাশনার জন্য বাধ্যতামূলক 2FA, স্বল্পমেয়াদী গ্রানুলার টোকেন (যেমন, সাত দিন), এবং বিস্তৃতভাবে গ্রহণযোগ্যতা বিশ্বস্ত প্রকাশনা দীর্ঘস্থায়ী গোপনীয়তার উপর নির্ভরতা কমাতে।
আসন্ন পরিবর্তনগুলি প্রকাশনার জন্য লিগ্যাসি ক্লাসিক টোকেন এবং TOTP-ভিত্তিক 2FA অবমূল্যায়ন করবে, টোকেন প্রকাশনা নিষিদ্ধ করার জন্য ডিফল্ট, এবং বিশ্বস্ত প্রকাশনার জন্য সরবরাহকারীদের সম্প্রসারণ করুন। গিটহাব ডকুমেন্টেশন এবং মাইগ্রেশন গাইড সহ ধীরে ধীরে রোলআউটের ইঙ্গিত দিয়েছে, স্বীকার করে যে কিছু কর্মপ্রবাহের সমন্বয় প্রয়োজন হবে।
শিল্প জুড়ে হুমকির গোয়েন্দা এবং ঘটনা-প্রতিক্রিয়া দলগুলি (ইউনিট 42, ক্যাসপারস্কি, ট্রেন্ড মাইক্রো এবং অন্যান্য সহ) জারি করা নির্দেশিকা এবং সনাক্তকরণ সুরক্ষা আপডেট ত্বরান্বিত করার জন্য সহকর্মী এবং জোটের সাথে আইওসি ভাগ করে নেওয়ার সময়।
এখনই ঝুঁকি কীভাবে কমানো যায়
সম্প্রতি npm প্যাকেজ ইনস্টল করা যেকোনো ডেভেলপার মেশিন গোপন তথ্য ফাঁস করে থাকতে পারে এই ধারণা নিয়ে দ্রুত পদক্ষেপ নিন। অগ্রাধিকার হল শংসাপত্রের অপব্যবহার রয়েছে, অধ্যবসায় বন্ধ করুন, এবং বিল্ড চেইন থেকে কলঙ্কিত নির্ভরতা দূর করুন।
- অবিলম্বে npm টোকেন, GitHub PATs/SSH কী এবং ক্লাউড ক্রেডেনশিয়াল (AWS/GCP/Azure) ঘোরান; ডেভেলপার হোস্টে উপস্থিত সমস্ত গোপনীয়তা আপোস করা হয়েছে কিনা তা বিবেচনা করুন।
- package‑lock.json/yarn.lock এর মাধ্যমে নির্ভরতা নিরীক্ষণ করুন; পরিচিত আপোস করা সংস্করণগুলি থেকে সরান বা পিন করুন; পরিষ্কার উৎস থেকে পুনরায় ইনস্টল করুন।
- GitHub এবং npm জুড়ে MFA/2FA প্রয়োগ করুন; দীর্ঘস্থায়ী টোকেনগুলিকে লুপ থেকে বাদ দিতে যেখানে সম্ভব বিশ্বস্ত প্রকাশনায় যান।
- 'শাই-হুলুদ' নামের অপ্রত্যাশিত পাবলিক রিপো, অপরিচিত শাখা বা কর্মপ্রবাহ এবং অস্বাভাবিক অ্যাকশন রানের জন্য GitHub-এ যাচাই-বাছাই করুন।
- ন্যূনতম সুবিধাপ্রাপ্ত RBAC, আর্টিফ্যাক্ট স্বাক্ষর/যাচাইকরণ এবং ক্রমাগত SCA স্ক্যানিং সহ CI/CD শক্ত করুন; চিকিৎসা করুন একটি পরিচালিত ঝুঁকি হিসেবে ওপেন-সোর্স খরচ.
হুমকি শিকারের টিপস (উচ্চ সংকেত পরীক্ষা)
বহির্গামী সংযোগগুলি সন্ধান করুন webhook.site ডোমেন, বিশেষ করে একাধিক প্রতিবেদনে পর্যবেক্ষণ করা URI। এন্ডপয়েন্টগুলিতে, উপস্থিতি অনুসন্ধান করুন bundle.js অস্থায়ী বা প্যাকেজ ডিরেক্টরিতে এবং একটি GitHub অ্যাকশন ফাইলের জন্য যার নাম shai‑hulud‑workflow.yml সম্পর্কে.
- নেটওয়ার্ক টেলিমেট্রি: webhook.site ধারণকারী DNS/URL লগ; দেখা গেলে নির্দিষ্ট পাথ bb8ca5f6‑4175‑45d2‑b042‑fc9ebb8170b7 ফ্ল্যাগ করুন।
- ফাইল টেলিমেট্রি: bundle.js তৈরি বা সম্পাদন; Linux/macOS ডেভেলপার হোস্টে shai‑hulud‑workflow.yml এর উপস্থিতি।
- প্রক্রিয়া টেলিমেট্রি: ট্রাফলহগের আমন্ত্রণ যেখানে প্রত্যাশিত নয় (মনে রাখবেন কিছু প্রতিষ্ঠানে বৈধ ব্যবহার থাকতে পারে)।
সমঝোতার সূচক (আইওসি)
তদন্তে দেখা ফাইল এবং স্ট্রিং ক্লুগুলির মধ্যে রয়েছে bundle.js এবং shai‑hulud‑workflow.yml সম্পর্কে, শাখা, রেপো এবং কর্মপ্রবাহে 'শাই-হুলুদ' আক্ষরিক স্ট্রিংটি উপস্থিত হয়।
- ফাইল: bundle.js; shai‑hulud‑workflow.yml
- স্ট্রিং: শাই-হুলুদ; প্যাকেজ.টার
- Hashes (selected): 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09; b74caeaa75e077c99f7d44f46daaf9796a3be43ecf24f2a1fd381844669da777; dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c; 4b2399646573bb737c4969563303d8ee2e9ddbd1b271f1ca9e35ea78062538db; C96FBBE010DD4C5BFB801780856EC228; 78E701F42B76CCDE3F2678E548886860
- নেটওয়ার্ক: https://webhook.site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7 (ভেরিয়েন্ট এবং সাবপাথ পর্যবেক্ষণ করা হয়েছে)
সময়রেখা এবং চলমান বিশ্লেষণ
প্রতিবেদনগুলি প্রাথমিক আবিষ্কারকে ২০২৫ সালের সেপ্টেম্বরের মাঝামাঝি বলে উল্লেখ করে, যেখানে ১৬-১৯ সেপ্টেম্বরের মধ্যে সর্বোচ্চ নিয়ন্ত্রণ ব্যবস্থা। গিটহাব এবং একাধিক বিক্রেতা তখন থেকে সুরক্ষা, সনাক্তকরণ এবং নির্দেশিকা আপডেট করেছে। সংস্থাগুলি ঘটনা পর্যালোচনা শেষ করার সাথে সাথে এবং প্রভাবিত সংস্করণগুলির তালিকা প্রসারিত করার সাথে সাথে আরও পূর্ববর্তী ফলাফল আশা করুন।
কিছু প্রমাণ থেকে জানা যায় যে ঘটনাটি পূর্ববর্তী গোপন তথ্য ফাঁসের উপর ভিত্তি করে তৈরি, দীর্ঘস্থায়ী টোকেন এবং ক্যাশেড শংসাপত্রগুলি কয়েক মাস পরে আপসের নতুন তরঙ্গকে কীভাবে ইন্ধন জোগাতে পারে তা তুলে ধরে। এটি টোকেনের জীবনকাল সংক্ষিপ্ত করার এবং প্রকাশনা মডেলগুলি গ্রহণ করার প্রচেষ্টাকে আরও জোরদার করবে যা গোপন বিস্তার কমানো.
প্রতিটি প্রতিবেদন সঠিক মোট পরিমাণ বা প্রথম শৃঙ্খল প্যাকেজের সাথে একমত হয় না, তবে সাধারণ চিত্রটি সারিবদ্ধ: a স্ব-প্রতিলিপি তৈরিকারী npm ওয়ার্ম যা ডেভেলপারদের আস্থা এবং স্বয়ংক্রিয় প্রকাশনা অধিকারকে অস্ত্র হিসেবে ব্যবহার করে দ্রুত স্কেল তৈরি করেছে—যা অনেক দল কেবল ম্যানুয়াল পর্যালোচনার মাধ্যমে সনাক্ত করতে পারে তার চেয়ে দ্রুত।
এই ইভেন্টটি দেখায় যে আধুনিক বিল্ড পাইপলাইনগুলি কত দ্রুত ম্যালওয়্যারের জন্য হাইওয়েতে পরিণত হতে পারে। দ্বারা প্রমাণীকরণ কঠোর করা হচ্ছেপথ থেকে দীর্ঘস্থায়ী টোকেন অপসারণ, CI/CD শক্ত করা এবং আক্রমণাত্মকভাবে IoC-এর সন্ধান করা, সংস্থাগুলি আজ এক্সপোজার নিয়ন্ত্রণ করতে পারে এবং পরবর্তী তরঙ্গ কার্যকর করা আরও কঠিন করে তুলতে পারে।
