TL; ডিআর
ক্ষতিকর এনপিএম প্যাকেজ কোনো বিচ্ছিন্ন ঘটনা নয়। এটি একটি অবিরাম প্রকাশনা প্রক্রিয়া, এবং নিশ্চিত আক্রান্তদের তালিকা প্রতি সপ্তাহে হালনাগাদ হয়। আমাদের ম্যালিসিয়াস কোড ডাইজেস্টের টানা সাতটি সংস্করণে, যা এখন ৮৭তম সংস্করণ অতিক্রম করেছে, জাইজেনি নিশ্চিত করেছে ১৩৫টি ক্ষতিকারক প্যাকেজএকটি শান্ত সপ্তাহে ১৩ থেকে একটি ব্যস্ত সপ্তাহে ২০৬ পর্যন্ত। সাপ্তাহিক এই পরিসরটিই মূল বিষয়: এটি একটি স্বাভাবিক ছন্দ, কোনো ঘটনা নয়।
- ছন্দটাই সমস্যা। একটি প্যাকেজ এক সপ্তাহে শূন্য থেকে ৫৫টিরও বেশি সংস্করণে পৌঁছে গেছে। আরেকটি ক্লাস্টার তিন ঘণ্টারও কম সময়ে প্রায় ৩০টি প্যাকেজের নাম প্রকাশ করেছে। সাপ্তাহিক নিরীক্ষা সময়ের ভুল একক।
- এগুলো CVE হিসেবে আসে না। একটি ক্ষতিকারক প্যাকেজ বৈধ কোডের কোনো ত্রুটি নয়, তাই এর জন্য কোনো সতর্কতা, কোনো স্কোর এবং সাধারণত কোনো শনাক্তকারীও থাকে না। একটি দুর্বলতা-চালিত প্রোগ্রাম কাঠামোগতভাবেই এই বিষয়টি উপেক্ষা করে।
- টেকডাউন সুরক্ষা নয়। প্যাকেজগুলো সাধারণত কয়েক মিনিট থেকে কয়েক ঘণ্টার জন্য সক্রিয় থাকে। আপনার ইনস্টলেশনটি হয় ওই সময়ের মধ্যেই সম্পন্ন হয়েছে, অথবা হয়নি।
- শনাক্তকরণ হতে হবে প্রকাশের সময়, এবং প্রয়োগ হতে হবে স্থাপনের সময়। যেসব জিনিস সিগনেচার, CVE বা সাপ্তাহিক স্ক্যানের জন্য অপেক্ষা করে, সেগুলো যে বিল্ড থেকে নেওয়া হয়েছে তার পরে আসে।
তালিকাটি বিদ্যমান। তার মানে এই নয় যে কেউ নজরদারিতে আছে।
ক্ষতিকর এনপিএম প্যাকেজ নিয়ে কোনো রহস্য নেই। প্রতি সপ্তাহে নিশ্চিত ঘটনাগুলো প্রকাশিত, চিহ্নিত এবং নথিভুক্ত করা হয়, যার মধ্যে অন্তর্ভুক্ত রয়েছে জাইজেনির নিজস্ব ম্যালিসিয়াস কোড ডাইজেস্ট, যা এখন এর সাতাশিটি সংস্করণ অতিক্রম করেছে।
ঘাটতিটা তথ্যে নয়। ঘাটতিটা হলো মনোযোগ এবং তার ধারাবাহিকতায়। যে তালিকা সাপ্তাহিক ভিত্তিতে হালনাগাদ করা হয়, মাসিক ভিত্তিতে পড়া হয় এবং ত্রৈমাসিক ভিত্তিতে সে অনুযায়ী কাজ করা হয়, তা আসলে নথিভুক্ত করে যে কারও জীবনে ইতোমধ্যে কী ঘটে গেছে।
সাত সপ্তাহের চিত্রটি এখানে তুলে ধরা হলো, যা কোনো বিক্রেতার সমীক্ষার উপর ভিত্তি করে নয়, বরং আমাদের নিজস্ব নিশ্চিত অনুসন্ধানের উপর ভিত্তি করে নেওয়া হয়েছে।
| পরিপাক করা | নিশ্চিত প্যাকেজ | যা চোখে পড়ল |
|---|---|---|
| ডাইজেস্ট ৮১ | 13 | প্রথম কম্পোজার ক্লাস্টার। @umschool/platform প্রকাশিত 999.0.0 একটি অভ্যন্তরীণ প্যাকেজকে ছাড়িয়ে যেতে |
| ডাইজেস্ট ৮১ | 35 | বেইলির প্রচারণায় ছদ্মনাম পরিবর্তন করা হয়। চারটি @stellarshift একই সংস্করণে প্রকাশিত প্যাকেজগুলি |
| ডাইজেস্ট ৮১ | 53 | [সেরাটি নিশ্চিত করুন] |
| ডাইজেস্ট ৮১ | 34 | চারটি নামে ও ছয় দিন ধরে বেইলির ছদ্মবেশ। cloud-baileys চারবার পুনঃপ্রকাশিত |
| ডাইজেস্ট ৮১ | 114 | wormgpt-cliএকই দিনে নয়টি সংস্করণ, যার নামকরণ করা হয়েছে একটি বাস্তব ডার্ক-এলএলএম টুলের নামে। |
| ডাইজেস্ট ৮১ | 206 | [সেরাটি নিশ্চিত করুন] |
| ডাইজেস্ট ৮১ | 180 | পেপ্যালের অভ্যন্তরীণ নাম ব্যবহার করে ১৭টি প্যাকেজ 28.0.0. zevairouter বিগত ৫৫টি সংস্করণ |
গুরুত্বপূর্ণ ধারাটি মোট সংখ্যা নয়। বরং প্রতিটি সপ্তাহের ভেতরের গতি।
গতিই হলো সম্পূর্ণ আক্রমণ
সেই সপ্তাহগুলো থেকে পাওয়া তিনটি ফলাফল, যার প্রতিটিই পর্যালোচনাকে ফাঁকি দেওয়ার ভিন্ন ভিন্ন উপায়।
- সংস্করণ প্লাবিত হচ্ছে। একটি একক এনপিএম প্যাকেজ,
zevairouterএক সপ্তাহের মধ্যে এর ৫৫টিরও বেশি নিশ্চিত সংস্করণ তৈরি হয়, এবং একটি সহযোগী প্যাকেজ থেকে আরও দশটি সংস্করণ এতে যুক্ত হয়। PyPI-তে,bingo-aiপ্রায় ৩০ মিনিটে প্রায় ৮০টি সংস্করণ তৈরি করা হয়েছিল। কোনো ম্যানুয়াল পর্যালোচনা প্রক্রিয়া এত গতিতে চলে না, এমনকি রাতের কোনো কাজও নয়। - সিঙ্ক্রোনাইজড ক্লাস্টার। পেপ্যালের অভ্যন্তরীণ পরিষেবার নাম নকল করে একই কয়েক মিনিটের মধ্যে সতেরোটি প্যাকেজ প্রকাশ করা হয়েছিল, সবগুলোই ছিল ২৮.০.০ ভার্সনের। এটা বিপুল পরিমাণ প্রকাশ নয়, বরং একটি প্রতিযোগিতা: আপনার নিজের দলের লেখা অভ্যন্তরীণ প্যাকেজকে পেছনে ফেলার জন্যই একটি অতিরঞ্জিত ভার্সন নম্বরের অস্তিত্ব রয়েছে। কয়েক সপ্তাহ পরে একই কৌশল আবার দেখা গিয়েছিল।
@umschool/platform999.0.0-এ প্রকাশিত। - টেকডাউনের মাধ্যমে অধ্যবসায়। বেইলির ছদ্মবেশ ধারণের এই অভিযান কয়েক সপ্তাহ ধরে চলছে। নাম বদলায়, সংস্করণ বাড়তে থাকে, এবং ধরা পড়ার পরেও পুনঃপ্রকাশ চলতে থাকে। যে অপারেটর পোস্ট সরিয়ে দেওয়াকে কাজ বন্ধ করার কারণ হিসেবে না দেখে ব্যবসার স্বাভাবিক খরচ হিসেবে গণ্য করে, আপনার ত্রৈমাসিক পর্যালোচনা তাকে কখনোই ধরতে পারবে না।
এবং এর স্থায়িত্বকাল ইচ্ছাকৃতভাবেই সংক্ষিপ্ত রাখা হয়েছে। সাম্প্রতিক একটি ক্লাস্টারে, প্যাকেজগুলো অপসারণের আগে ১৭ মিনিট থেকে ১৩ ঘণ্টা পর্যন্ত সক্রিয় ছিল।
| প্যাকেজ | প্রকাশিত (ইউটিসি) | দাঁড়িয়ে রইলাম |
|---|---|---|
moidev | 2026-08-16 16:31 | 5h 58m |
moidevx | 2026-08-17 03:24 | 13h 23m |
moidevz | 2026-08-26 03:38 | 12h 56m |
moideva | 2026-08-26 18:58 | 1h 33m |
amicat | 2026-08-28 20:48 | 17m |
bmcat | 2026-08-28 21:17 | 47m |
eyevox | 2026-08-28 21:44 | 21m |
moidevh | 2026-08-31 03:22 | 47m |
এটিকে রেজিস্ট্রির পারফরম্যান্স মেট্রিক হিসেবে না দেখে, বরং একটি এক্সপোজার উইন্ডো হিসেবে পড়ুন। যদি সেই সময়ে কোনো বিল্ড চলত, তাহলে টেকডাউন কোনো পরিবর্তন আনত না।
কেন আপনার দুর্বলতা প্রোগ্রাম এটি দেখতে পায় না
এটিই হলো কাঠামোগত বিষয়, এবং এটি এমন একটি বিষয় যা বেশিরভাগ নিরাপত্তা দলই আত্মস্থ করতে পারেনি।
| একটি দুর্বলতা | একটি ক্ষতিকারক প্যাকেজ | |
|---|---|---|
| আদি | সরল বিশ্বাসে লেখা কোডে একটি ভুল | ক্ষতি সাধনের উদ্দেশ্যে নির্মিত ও প্রকাশিত একটি নিদর্শন |
| সনাক্ত করা | CVE, একটি পরামর্শ এবং একটি স্কোর সহ | সাধারণত কিছুই না। কোনো CVE নেই, কোনো পরামর্শমূলক বিজ্ঞপ্তিও নেই। |
| Timeline | প্রকাশ করা হয়েছিল, তারপর দিন বা সপ্তাহ ধরে প্যাচ করা হয়েছিল। | কয়েক মিনিট থেকে কয়েক ঘন্টা পর্যন্ত জীবিত থাকে, তারপর সরিয়ে ফেলা হয়। |
| আপনি কীভাবে শিখবেন | ফিড, স্ক্যানার, পরামর্শ | প্রকাশের সময় যদি কেউ রেজিস্ট্রিটির ওপর নজর রাখত তবেই কেবল। |
| ঠিক করা | প্যাচ করা সংস্করণে আপগ্রেড করুন | এর কোনো সংশোধিত সংস্করণ নেই। এটি কখনোই বৈধ ছিল না। |
| আপনার প্রোগ্রাম যা করে | গ্রহণ, স্কোর, সময়সূচী | কিছুই না, যদি না এটি এর জন্যই তৈরি করা হয়ে থাকে। |
দুর্বলতা হলো কোডের এমন একটি ত্রুটি যা কেউ সরল বিশ্বাসে লিখেছে। একটি ক্ষতিকারক প্যাকেজ হলো আক্রমণকারীর দ্বারা ইচ্ছাকৃতভাবে প্রকাশিত একটি বস্তু, যার সাধারণত কোনো শনাক্তকারী বা সতর্কতা থাকে না এবং এর আয়ুষ্কাল কয়েক ঘণ্টায় পরিমাপ করা হয়। CVE গ্রহণ, তীব্রতা স্কোরিং এবং প্যাচ উইন্ডোকে কেন্দ্র করে নির্মিত প্রতিটি প্রক্রিয়া প্রথমটির জন্য ডিজাইন করা হয়েছিল এবং ডিফল্টরূপে দ্বিতীয়টির ক্ষেত্রে প্রয়োগ করা হয়েছিল।
CVE সিস্টেমে আইডেন্টিফায়ারের অনুপস্থিতি কোনো ভুল নয়। এই বিভাগটি পরিকল্পিতভাবেই কাজ করে: কেউ এমন কোনো আর্টিফ্যাক্টের বিরুদ্ধে সতর্কতামূলক বিজ্ঞপ্তি দাখিল করে না যার সম্পূর্ণ উদ্দেশ্যই ছিল ক্ষতিসাধন, এবং কেউ তা করার আগেই প্যাকেজটি অদৃশ্য হয়ে যায়। যার অর্থ হলো প্রশ্নটি হলো “এটাতে কি CVE আছে?একটি ক্লিন প্যাকেজ এবং এক ঘন্টা আগে প্রকাশিত একটি ক্রেডেনশিয়াল স্টিলারের জন্য "একই উত্তর দেয়"।
পেলোডগুলো এখন আসলে কী করে
ক্ষতিকর এনপিএম প্যাকেজ সম্পর্কে সরল ধারণাটি হলো এটি একটি ক্রিপ্টো মাইনার। বর্তমান বাস্তবতা হলো ডেভেলপারদের, এবং ক্রমবর্ধমানভাবে তাদের মেশিনে থাকা এআই ক্রেডেনশিয়াল চুরি।
সার্জারির ফ্যান্টমসিঙ্ক একটি ক্লাস্টার, যা একটি অ্যাকাউন্টের অধীনে আটটি এনপিএম প্যাকেজ প্রকাশ করেছিল, বিজ্ঞাপনে যেমন বলা হয়েছিল ঠিক তেমনই কাজ করছিল। একই সাথে এটি একটি সেলফ-ইনভোকিং ড্রপারকে আড়াল করে রেখেছিল যা ইম্পোর্ট করার প্রায় ৩৭ সেকেন্ড পরে চালু হতো, একটি নকল টেস্ট ফিক্সচার হিসেবে সাজানো পেলোড ডিকোড করত, ক্রস-প্ল্যাটফর্ম পার্সিস্টেন্স ইনস্টল করত এবং একটি ওয়ালেট ও সিক্রেটস স্টিলার চালু করত। বিলম্ব, ছদ্মবেশ, স্থায়িত্ব, পাচার।
বৃহত্তর পরিসরে, চেইনড্রপ তরঙ্গের শাই-হুলুদ কৃমি ২০২৬ সালের আগস্টের শুরুতে এটি ৪০০টিরও বেশি প্যাকেজ এবং ১,৭০০টি সংস্করণে পৌঁছেছিল, যার সম্মিলিত মাসিক ডাউনলোডের সংখ্যা ছিল ১.৩ বিলিয়ন। এর কালেক্টর OpenAI, Anthropic এবং Cursor কী-সহ ৩০০টিরও বেশি ক্রেডেনশিয়াল প্যাটার্ন স্ক্যান করেছিল। ডেভেলপারদের মেশিনগুলো মূল্যবান হয়ে উঠেছিল।cisতাদের মধ্যে থাকা মডেল হওয়ার যোগ্যতার কারণেই।
অর্থের প্রবাহকে অনুসরণ করেই নামকরণের রীতি বদলেছে। সাম্প্রতিক ক্লাস্টারগুলো ক্রিপ্টো ও ডিফাই এসডিকে, পেমেন্ট মডিউল, হোয়াটসঅ্যাপ এপিআই লাইব্রেরি, এডব্লিউএস ইউটিলিটি এবং একটি ক্ষেত্রে, একটি প্যাকেজের ছদ্মবেশ ধারণ করছে, যেটিকে প্রকাশ্যে একটি ডার্ক-এলএলএম আক্রমণকারী টুলের নামে ব্র্যান্ডিং করা হয়েছে।
আসলে কী ক্ষতিকারক এনপিএম প্যাকেজগুলিকে থামায়
চারটি নিয়ন্ত্রণ, যে ক্রমে সেগুলো ফলপ্রসূ হয়।
১. প্রকাশের সময় শনাক্তকরণ, প্রকাশের সময় নয়। জাইজেনির ম্যালওয়্যার আগাম সতর্কতা সিগনেচার বা রিপোর্টের জন্য অপেক্ষা না করে, আচরণগত এবং ব্যতিক্রমী বিশ্লেষণ ব্যবহার করে npm, PyPI, Maven এবং অন্যান্য রেজিস্ট্রি জুড়ে নতুন প্রকাশিত প্যাকেজগুলিকে প্রকাশের মুহূর্তেই বিশ্লেষণ করে। টাইমলাইনের এটিই একমাত্র বিন্দু যা আপনার বিল্ডের চেয়ে এগিয়ে থাকে।
২. ইনস্টলেশন স্থানে প্রয়োগ। ডিটেকশন আপনাকে জানায় যে একটি প্যাকেজ ক্ষতিকর। যে পলিসি ইনস্টলেশন ব্লক করে, সেটিই পোস্টইনস্টল স্ক্রিপ্টকে চলতে বাধা দেয়। এখন বিষয়টি আরও বেশি গুরুত্বপূর্ণ, কারণ এজেন্টরা মানুষের নির্বাচন ছাড়াই ডিপেন্ডেন্সিগুলো ইনস্টল করে।
৩. লকফাইল ও হ্যাশ পিনিং। ব্যবহার npm ci সিআই-তে বরং npm installফলে, লকফাইলে থাকা হুবহু ডিপেন্ডেন্সি ট্রি-টিই বিল্ড করা হয়। এটি সেই সাবস্টিটিউশন রুটটি বন্ধ করে দেয়, যার ওপর টাইপোস্কোয়াট এবং স্ফীত সংস্করণগুলো নির্ভর করে।
৪. প্রাপ্ত তথ্যসমূহ এক জায়গায়। ম্যালওয়্যার শনাক্তকরণ আপনার মতোই একই অগ্রাধিকার তালিকায় থাকা উচিত। SCA এবং কোডের ফলাফল, এমন কোনো আলাদা ফিডে নয় যা কেউ শুধু চোখ বুলিয়ে নেয়। একটি নিশ্চিত ক্ষতিকর ডিপেন্ডেন্সির গুরুত্ব একটি মাঝারি-গুরুত্বপূর্ণ CVE-এর চেয়ে বেশি হওয়া উচিত, এবং শুধুমাত্র একটি সমন্বিত ঝুঁকি মডেলই এই তুলনাকে সম্ভব করে তোলে।
তালিকাটি পর্যবেক্ষণ করুন, অথবা এটিকে স্বয়ংক্রিয় করুন।
প্রতি সপ্তাহে রেজিস্ট্রি ফিড পড়ার মতো মনোযোগ কারোরই থাকে না। এটিকে স্বয়ংক্রিয় করার উদ্দেশ্যই হলো এটা।
জাইজেনি (Xygeni) প্রকাশের মুহূর্তে এনপিএম (npm) এবং অন্যান্য রেজিস্ট্রি জুড়ে নতুন প্রকাশিত প্যাকেজগুলি বিশ্লেষণ করে, বিল্ডে পৌঁছানোর আগেই নিশ্চিত ম্যালওয়্যার চিহ্নিত করে এবং প্রাপ্ত তথ্যটিকে আপনার দলের ব্যবহৃত অন্যান্য সবকিছুর মতোই একই অগ্রাধিকারপ্রাপ্ত সারিতে রাখে। ম্যালওয়্যার সনাক্তকরণ এটি বিনামূল্যের ডেভেলপার প্ল্যানে অন্তর্ভুক্ত, যা এই ক্যাটাগরির বেশিরভাগ ফ্রি টায়ারের ক্ষেত্রে সত্য নয়।
বিনামূল্যে শুরু করুন, বা পড়া এই সপ্তাহের ম্যালিসিয়াস কোড ডাইজেস্ট প্রথম।
FAQ
ক্ষতিকর এনপিএম প্যাকেজ বলতে কী বোঝায়?
এনপিএম রেজিস্ট্রি-তে প্রকাশিত প্যাকেজসমূহ যা ইচ্ছাকৃতভাবে ক্ষতি করার উদ্দেশ্যে তৈরি করা হয়: ক্রেডেনশিয়াল ও ওয়ালেট স্টিলার, ব্যাকডোর, ড্রপার, এবং ডিপেন্ডেন্সি-বিভ্রান্তি সৃষ্টিকারী আর্টিফ্যাক্ট যা অভ্যন্তরীণ বা জনপ্রিয় প্যাকেজের নাম নকল করে।
ক্ষতিকর এনপিএম প্যাকেজ কতটা সাধারণ?
ক্রমাগত। আমাদের ম্যালিশিয়াস কোড ডাইজেস্টের সাম্প্রতিক সাতটি সংস্করণে, জাইজেনি ৬৩৫টি ক্ষতিকারক প্যাকেজ নিশ্চিত করেছে, যার সংখ্যা একটি শান্ত সপ্তাহে প্রায় এক ডজন থেকে শুরু করে সক্রিয় ক্যাম্পেইন চলাকালীন ২০০-এরও বেশি পর্যন্ত ছিল। এর সিংহভাগই হলো এনপিএম (npm)।
ক্ষতিকর এনপিএম প্যাকেজগুলো কতক্ষণ উপলব্ধ থাকে?
প্রায়শই কয়েক মিনিট থেকে কয়েক ঘণ্টা সময় লাগে। এই সময়টুকুই গুরুত্বপূর্ণ, কারণ এর মধ্যে চলমান কোনো বিল্ড ইতোমধ্যেই প্রভাবিত হয়ে যায়, পরবর্তীতে প্যাকেজটি যত দ্রুতই সরিয়ে ফেলা হোক না কেন।
ক্ষতিকর এনপিএম প্যাকেজগুলো কি সিভিই (CVE) পায়?
সাধারণত না। এগুলো বৈধ কোডের ত্রুটি নয়, বরং আক্রমণকারীদের দ্বারা প্রকাশিত আর্টিফ্যাক্ট, এবং ট্র্যাক করা ২০২৬ ক্যাম্পেইনগুলো সক্রিয় এক্সপ্লয়টেশনের সময় কোনো CVE অ্যাসাইনমেন্ট পায়নি।
ইনস্টল করার আগে কোনো প্যাকেজ ক্ষতিকর কিনা, তা আমি কীভাবে যাচাই করব?
পরিচিত ত্রুটিপূর্ণ তালিকা যাচাই করার পরিবর্তে এমন একটি টুল ব্যবহার করুন যা প্যাকেজ প্রকাশের সময়েই বিশ্লেষণ করে, প্রকাশক এবং ভার্সনের ইতিহাস যাচাই করুন, অস্বাভাবিকভাবে উচ্চ ভার্সন নম্বর এবং একেবারে নতুন অ্যাকাউন্ট সম্পর্কে সন্দেহপ্রবণ হন, এবং পর্যালোচনার উপর নির্ভর না করে ইনস্টলের সময়েই নীতি প্রয়োগ করুন।
নির্ভরতা বিভ্রান্তি বলতে কী বোঝায়?
অভ্যন্তরীণ প্যাকেজের নামেই একটি পাবলিক প্যাকেজ প্রকাশ করা, যা সাধারণত একটি বর্ধিত সংস্করণে করা হয়, যাতে রিজলভার আক্রমণকারীর কপিটিকেই প্রাধান্য দেয়। সংস্করণ 28.0.0-এর PayPal-নামের ক্লাস্টারটি এর একটি প্রকৃষ্ট উদাহরণ।







