- ২০২৬ সালের ৪ আগস্ট, ChainDrop নামক একটি স্ব-প্রজননশীল ওয়ার্ম চার ঘণ্টার মধ্যে keyv এবং flat-cache সহ ৪০০টিরও বেশি npm প্যাকেজকে ক্ষতিগ্রস্ত করে।
- এই আক্রমণে চুরি করা গিটহাব ক্রেডেনশিয়াল ব্যবহার করে বৈধ উৎসসহ ক্ষতিকারক সংস্করণ প্রকাশ করা হয়েছিল, যার ফলে সেগুলোকে বৈধ রিলিজ থেকে আলাদা করা যেত না।
- পেলোডটি ক্রেডেনশিয়াল চুরি করে, ইথেরিয়াম-ভিত্তিক C2-এর মাধ্যমে ডেটা পাচার করে এবং চুরি করা npm টোকেন ব্যবহার করে সংক্রমিত প্যাকেজগুলো পুনরায় প্রকাশ করে।
- এর প্রভাব প্রশমিত করতে প্রতিষ্ঠানগুলোকে অবশ্যই লকফাইল পরীক্ষা করতে, ক্রেডেনশিয়াল পরিবর্তন করতে এবং ডেটা সংরক্ষণের কৌশলগুলো অপসারণ করতে হবে।
এখন পর্যন্ত দেখা সবচেয়ে আক্রমণাত্মক সাপ্লাই চেইন আক্রমণগুলোর একটির কারণে এনপিএম (npm) ইকোসিস্টেম বিপর্যস্ত। ২০২৬ সালের ৪ আগস্ট, চেইনড্রপ (ChainDrop) নামের একটি ওয়ার্ম রেজিস্ট্রি ভেদ করে চার ঘণ্টারও কম সময়ে শত শত প্যাকেজকে বিষাক্ত করে তোলে। এই আক্রমণে একটি হ্যাক হওয়া গিটহাব (GitHub) অ্যাকাউন্ট ব্যবহার করে keyv এবং flat-cache-এর মতো বহুল ব্যবহৃত লাইব্রেরিগুলোর ক্ষতিকর সংস্করণ প্রকাশ করা হয়, যেগুলো সম্মিলিতভাবে প্রতি সপ্তাহে কয়েক কোটিবার ডাউনলোড হয়। এই ঘটনাটিকে যা বিশেষভাবে উদ্বেগজনক করে তুলেছে তা হলো, এই ক্ষতিকর রিলিজগুলোর বৈধ এসএলএসএ (SLSA) প্রোভেনেন্স ছিল, যার ফলে স্বয়ংক্রিয় নিরাপত্তা পরীক্ষাগুলোর কাছে এগুলোকে সম্পূর্ণ বৈধ বলে মনে হচ্ছিল।
স্টেপসিকিউরিটি, ইউনিট ৪২, সোনোটাইপ এবং আইকিডোর নিরাপত্তা গবেষকরা এই ওয়ার্মটি বিশ্লেষণ করতে এবং এর বিস্তার রোধ করতে দ্রুতগতিতে কাজ করছেন। এর প্রাথমিক ঢেউ জ্যারেডরে ইকোসিস্টেমে আঘাত হানলেও, ওয়ার্মটি দ্রুত সার্ভিসটাইটান, ক্লিক এবং ডেলিভারু-সহ অন্যান্য মেইনটেইনার ও সংস্থাগুলোতে ছড়িয়ে পড়ে। সর্বশেষ আপডেট অনুযায়ী, আক্রান্ত প্যাকেজের সংখ্যা ক্রমাগত বাড়ছে এবং প্রতি কয়েক মিনিটেই নতুন সংক্রমণ দেখা যাচ্ছে। এটি কেবল আরেকটি টাইপো-স্কোয়াটিং অভিযান নয়; এটি একটি অত্যাধুনিক, স্ব-প্রসারিত ওয়ার্ম যা ক্রেডেনশিয়াল চুরি করে এবং সেগুলো ব্যবহার করে এনপিএম রেজিস্ট্রি জুড়ে নিজেকে পুনরায় প্রকাশ করে।
আক্রমণের সংক্ষিপ্ত বিবরণ

আক্রমণটি শুরু হয়েছিল যখন keyv এবং সম্পর্কিত প্যাকেজগুলোর রক্ষণাবেক্ষণকারী জ্যারেড রে-র গিটহাব অ্যাকাউন্ট হ্যাক হয়। আক্রমণকারী সরাসরি প্রধান শাখায় ক্ষতিকারক কমিট পুশ করে এবং নতুন রিলিজ তৈরি করে, যা পরে প্রজেক্টের নিজস্ব বিশ্বস্ত পাবলিশিং ওয়ার্কফ্লোর মাধ্যমে npm-এ প্রকাশ করা হয়। এর ফলে, বিষাক্ত সংস্করণগুলোতে বৈধ SLSA প্রোভেনেন্স অ্যাটেস্টেশন ছিল , যা অনেক টিম একটি নিরাপত্তা সংকেত হিসেবে ব্যবহার করে। তবে, প্রোভেনেন্স শুধু প্রমাণ করে কোন কমিটটি বিল্ড করা হয়েছিল, কিন্তু কমিটটি অনুমোদিত ছিল কিনা তা প্রমাণ করে না। আক্রমণকারী নকল টেস্ট ফাইলও স্থাপন করে এবং রিলিজ স্ক্রিপ্ট পরিবর্তন করে, যাতে ক্ষতিকারক সংস্করণগুলো সর্বশেষ dist-tag পায়।
ক্ষতিকারক প্যাকেজগুলোতে একটি প্রি-ইনস্টল স্ক্রিপ্ট ছিল, যা setup.mjs নামের একটি ড্রপার চালাত। এই ড্রপারটি গিটহাব থেকে বৈধ Bun জাভাস্ক্রিপ্ট রানটাইম ডাউনলোড করে এবং এটি ব্যবহার করে Math_Symbol.js নামের ৭২৭ কিলোবাইটের একটি অস্পষ্ট পেলোড চালাত। পেলোডটি ছিল একটি পূর্ণাঙ্গ ওয়ার্ম, যা ভুক্তভোগীর সিস্টেম থেকে ক্রেডেনশিয়াল সংগ্রহ করত, যার মধ্যে ছিল npm টোকেন, গিটহাব টোকেন, ক্লাউড ক্রেডেনশিয়াল, SSH কী এবং এমনকি AI টুলের কনফিগারেশনও। এরপর এটি সেই ডেটা একটি কমান্ড-অ্যান্ড-কন্ট্রোল সার্ভারে পাচার করত, যা একটি ইথেরিয়াম স্মার্ট কন্ট্রাক্টের মাধ্যমে পরিচালিত হতো—এই কৌশলটি EtherHiding নামে পরিচিত।
প্রভাবিত প্যাকেজ এবং পরিধি

প্রাথমিক আক্রমণে jaredwray ইকোসিস্টেমের ১১টি প্যাকেজকে লক্ষ্যবস্তু করা হয়েছিল, যার মধ্যে ছিল keyv@6.0.0, flat-cache@6.1.24, এবং file-entry-cache@11.1.6। এই প্যাকেজগুলো ESLint থেকে শুরু করে cache-manager পর্যন্ত অসংখ্য প্রজেক্টের ট্রানজিটিভ ডিপেন্ডেন্সি। এরপর ওয়ার্মটি চুরি করা ক্রেডেনশিয়াল ব্যবহার করে আরও ৪৩৩টি প্যাকেজ পুনরায় প্রকাশ করে, যার ফলে প্রথম কয়েক ঘণ্টার মধ্যেই মোট প্যাকেজের সংখ্যা দাঁড়ায় ৪৪৪টি এবং ভার্সনের সংখ্যা হয় ২,২১২টি। পরবর্তীতে Sonatype এবং Aikido-র রিপোর্ট থেকে জানা যায় যে এই সংখ্যা আরও বেড়েছে এবং পরিস্থিতি শান্ত হওয়ার পর ১,০০০-এরও বেশি প্যাকেজ ক্ষতিগ্রস্ত হয়েছে।
দ্বিতীয় ঢেউটি @servicetitan, @qlik, @onereach, এবং @deliveroo-এর মতো সংস্থাগুলোর প্যাকেজগুলোকে আঘাত হানে, যা ইঙ্গিত দেয় যে ওয়ার্মটি পাবলিক ডেভেলপার টুলস থেকে কর্পোরেট বিল্ড পাইপলাইনে চলে গিয়েছিল। আক্রমণকারীরা পাচার করা ডেটা সংরক্ষণের জন্য Dune-থিমের নামে পাবলিক রিপোজিটরিও তৈরি করেছিল এবং তারা .vscode ও .claude ডিরেক্টরিগুলোতে পার্সিস্টেন্স মেকানিজম স্থাপন করেছিল, যাতে ক্ষতিগ্রস্ত রিপোজিটরিগুলো খুললে ডেভেলপাররা পুনরায় সংক্রমিত হয়।
চেইনড্রপ ওয়ার্ম কীভাবে কাজ করে
এই অ্যাটাক চেইনটি হলো স্থানীয় সুযোগ কাজে লাগানোর এক উৎকৃষ্ট উদাহরণ। প্রি-ইনস্টল স্ক্রিপ্টটি যেকোনো ডিপেন্ডেন্সি ইনস্টল হওয়ার আগেই চলে, ফলে ওয়ার্মটি ব্যবহারকারীর বিশেষাধিকার নিয়েই এক্সিকিউট হয়। ড্রপারটি পরীক্ষা করে দেখে যে Bun আগে থেকেই উপস্থিত আছে কি না; যদি না থাকে, তবে এটি গিটহাব থেকে একটি আসল Bun বাইনারি ডাউনলোড করে নেয়। এর ফলে নেটওয়ার্ক ট্র্যাফিককে নিরীহ বলে মনে হয়, কারণ এটি github.com থেকে আসছে। এরপর দ্বিতীয় ধাপের পেলোডটি একটি ব্যাকগ্রাউন্ড প্রসেস হিসেবে নিজেকে আলাদা করে নেয় এবং তার নোংরা কাজ শুরু করে।
এর অন্যতম স্বতন্ত্র কৌশল হলো রানার মেমরি স্ক্র্যাপিং । পেলোডটি একটি পাইথন হেল্পার চালায় যা গিটহাব অ্যাকশনস রানার.ওয়ার্কার প্রসেসের মেমরি পড়ে এবং ওয়ার্কফ্লোতে ইনজেক্ট করা সিক্রেটগুলো খোঁজে। এর ফলে এটি OIDC টোকেন এবং অন্যান্য ক্ষণস্থায়ী ক্রেডেনশিয়াল ক্যাপচার করতে পারে, যা অন্যথায় কাজটি শেষ হয়ে গেলে অদৃশ্য হয়ে যেত। ওয়ার্মটি একটি রাশিয়ান লোকেল কিল সুইচও ব্যবহার করে, যা সিস্টেমের ভাষা রাশিয়ান হলে পরিষ্কারভাবে বন্ধ হয়ে যায়; এটি সিআইএস দেশগুলোকে টার্গেট করা এড়ানোর একটি সাধারণ কৌশল।
পেলোডটিতে একটি সম্পূর্ণ এনপিএম পাবলিশিং ইঞ্জিন অন্তর্ভুক্ত রয়েছে। এটি ভুক্তভোগীর প্রকাশযোগ্য সমস্ত প্যাকেজের তালিকা তৈরি করে, বর্তমান টারবলটি ডাউনলোড করে, ক্ষতিকারক প্রি-ইনস্টল স্ক্রিপ্ট ও পেলোড প্রবেশ করায় এবং একটি বর্ধিত সংস্করণ দিয়ে প্যাকেজটি পুনরায় প্রকাশ করে। এমনকি এটি নিজস্ব সিগস্টোর এবং এসএলএসএ প্রোভেনেন্স বান্ডেলও তৈরি করে, যার ফলে ক্ষতিকারক সংস্করণগুলোকে বৈধভাবে নির্মিত বলে মনে হয়। এই স্ব-প্রসারণ পদ্ধতির কারণেই ওয়ার্মটি সম্পর্কহীন সংস্থাগুলোর মধ্যে এত দ্রুত ছড়িয়ে পড়তে পেরেছিল।
সমঝোতার সূচক
আপনি যদি ক্ষতিগ্রস্ত সংস্করণগুলোর কোনোটি ইনস্টল করে থাকেন, তবে ধরে নিন আপনার সিস্টেমটি ঝুঁকিতে পড়েছে। এই লক্ষণগুলো খেয়াল করুন:
- node_modules ডিরেক্টরিতে থাকা setup.mjs, Math_Symbol.js, বা math_init.js নামের ফাইলগুলো।
- আপনার সিস্টেমে অপ্রত্যাশিত Bun বাইনারি ফাইল পাওয়া গেছে, বিশেষ করে যদি আপনি কখনো Bun ইনস্টল না করে থাকেন।
- .claude/settings.json অথবা .vscode/tasks.json ফাইলে এমন পরিবর্তন যা setup.mjs-কে নির্দেশ করে।
- npm-cache.com বা awqhnjewqjkl.icu-তে বহির্গামী সংযোগ, অথবা 0xE1f2395ee43e45A1556EC6438a88c31B83493103 কন্ট্রাক্টে ইথেরিয়াম আরপিসি কল।
- “শাই-হুলুদ: আবার শুরু” বা ডিউন-থিমের নামের মতো বিবরণসহ নতুন গিটহাব রিপোজিটরি।
এছাড়াও, তথ্য পাচারের পর ইনস্টল হওয়া টোকেন মনিটরটি পরীক্ষা করুন: ~/.local/bin/gh-token-monitor.sh, ~/.config/gh-token-monitor/, এবং systemd বা LaunchAgent সার্ভিসগুলো। চুরি করা টোকেনটি বাতিল হয়ে গেলে একটি অ্যাটাকার পেলোড ট্রিগার করার মাধ্যমে ক্রেডেনশিয়াল রোটেশনের শাস্তি দিতেই এই ওয়ার্মটি এটি ইনস্টল করে।
প্রশমন এবং পুনরুদ্ধার
আপনি যদি প্রভাবিত হন, তাহলে দ্রুত পদক্ষেপ নিন। প্রথমে, মেশিনটিকে আলাদা করুন এবং লগগুলো সংরক্ষণ করুন। তারপর, সিস্টেমে থাকা সমস্ত ক্রেডেনশিয়াল, যার মধ্যে npm টোকেন, GitHub PAT, ক্লাউড কী এবং SSH কী অন্তর্ভুক্ত, সেগুলোকে রোটেট করুন। রোটেট করার আগে টোকেন মনিটরটি সরিয়ে ফেলুন, কারণ আপনি টোকেনটি বাতিল করলে এটি চালু হয়ে যাবে। এরপর, আপনার লকফাইলগুলো পরিষ্কার করুন এবং সেগুলোকে পরিচিত ও ভালো ভার্সনে পিন করুন। keyv, flat-cache, এবং file-entry-cache-এর জন্য, ক্ষতিকারক ভার্সনগুলোকে ব্লক করতে ওভাররাইড ব্যবহার করুন। সবশেষে, অবশিষ্ট কোনো ইনস্টল হুক যাতে চালু হতে না পারে, সেজন্য –ignore-scripts সহ পুনরায় ইনস্টল করুন।
CI/CD পাইপলাইনের ক্ষেত্রে, এক্সপোজার উইন্ডোর সময় ক্ষতিগ্রস্ত সংস্করণগুলো চালু করেছে এমন যেকোনো ইনস্টলের জন্য লগ পর্যালোচনা করুন। কোনো বিষাক্ত প্যাকেজ ইনস্টল করেছে এমন যেকোনো রানারকে আপোসকৃত হিসেবে বিবেচনা করুন এবং সেই জবের জন্য উপলব্ধ সমস্ত সিক্রেট রোটেট করুন। এছাড়াও, আপনার গিটহাব অর্গানাইজেশনগুলোতে “Run Copilot” নামের অপ্রত্যাশিত ওয়ার্কফ্লো বা “format-results” নামের আর্টিফ্যাক্টের জন্য অডিট করুন, যেগুলো ওয়ার্মটির সিক্রেট লন্ডারিংয়ের লক্ষণ।
গভীর প্রতিরক্ষা অত্যন্ত গুরুত্বপূর্ণ। ড্রপারকে Bun ফেচ করা থেকে আটকাতে CI রানারগুলিতে ইগ্রেস অ্যালাওলিস্ট ব্যবহার করুন। এমন কুলডাউন পলিসি প্রয়োগ করুন, যা প্যাকেজ গ্রহণের আগে সেটিকে কয়েক দিন পুরোনো হওয়ার শর্ত আরোপ করে। এবং শুধুমাত্র প্রোভেনেন্সের উপর নির্ভর করবেন না—এটি নিরাপত্তার কোনো নিশ্চয়তা দেয় না। সর্বোত্তম প্রতিরক্ষা হলো ইনস্টল স্ক্রিপ্টের ব্যবহার কমানো এবং অস্বাভাবিক আচরণের উপর নজর রাখা।
তদন্ত অব্যাহত থাকায়, আক্রান্ত প্যাকেজের সংখ্যা বেড়েই চলেছে। একটিমাত্র ইথেরিয়াম ট্রানজ্যাকশনের মাধ্যমে এর C2 পরিকাঠামো পরিবর্তন করার ক্ষমতা এই ওয়ার্মটিকে বিশেষভাবে স্থিতিস্থাপক করে তুলেছে। নিরাপত্তা দলগুলোর উচিত পরিবর্তনের জন্য স্মার্ট কন্ট্রাক্টটি পর্যবেক্ষণ করা এবং নতুন সূচকগুলোর বিষয়ে হালনাগাদ থাকা। এনপিএম রেজিস্ট্রি ক্ষতিকর সংস্করণগুলো অপসারণ করা শুরু করেছে, কিন্তু পরিষ্করণ এখনও চলছে।
এই ঘটনাটি একটি কঠোর অনুস্মারক যে ওপেন-সোর্স ইকোসিস্টেম তার দুর্বলতম সংযোগের মতোই সুরক্ষিত। একটি মাত্র হ্যাক হওয়া মেইনটেইনার অ্যাকাউন্ট একটি বিশাল সাপ্লাই চেইন আক্রমণের সূত্রপাত ঘটাতে পারে। চেইনড্রপ ওয়ার্মটি ডেভেলপার এবং সংস্থাগুলোর জন্য একটি সতর্কবার্তা, যাতে তারা মাল্টি-ফ্যাক্টর অথেনটিকেশন, লিস্ট-প্রিভিলেজ টোকেন এবং ডিপেন্ডেন্সিগুলোর নিরবচ্ছিন্ন পর্যবেক্ষণের মতো আরও শক্তিশালী নিরাপত্তা ব্যবস্থা গ্রহণ করে।