ঝুঁকিপূর্ণ ব্যাপার: স্ব-মুছে যাওয়া এনপিএম প্যাকেজের ব্যাখ্যা

ঝুঁকিপূর্ণ ব্যাপার: সেইসব অ্যান্টি-প্রোক্টরিং প্যাকেজ যা নিজে থেকেই মুছে যায়

সুচিপত্র

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

TL; ডিআর

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

রেজিস্ট্রি যা কিছু প্রকাশ করে তা আবর্তিত হয়; কিন্তু পেলোড হয় না। নয়টিই বাইট-অভিন্ন প্রেরণ করেছে। bin/ ডিরেক্টরিতে, পনেরো দিনের ব্যবধানে তিনটি প্যাকেজ নাম এবং দুটি অ্যাকাউন্টে একই SHA-256 ডাইজেস্ট পাওয়া গেছে। কন্টেন্ট আইডেন্টিটিই একমাত্র ট্র্যাকিং সিগন্যাল যা এই অপারেটর ভাঙতে পারেনি, এবং তাদের প্রত্যাহার না করা একমাত্র প্যাকেজটির কারণেই এই সবকিছু পরীক্ষা করা সম্ভব হয়েছে।

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

বাস্তুতন্ত্র: npm-এও একই প্যাটার্ন দেখা গেছে, PyPI-তেও। সময়কাল: জুন–আগস্ট ২০২৬।

পরিমাপ

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

প্যাকেজপ্রকাশিত (ইউটিসি)দাঁড়িয়ে রইলাম
moidev2026-08-16 16:315h 58m
moidevx2026-08-17 03:2413h 23m
moidevz2026-08-26 03:3812h 56m
moideva2026-08-26 18:581h 33m
amicat2026-08-28 20:4817m
bmcat2026-08-28 21:1747m
eyevox2026-08-28 21:4421m
moidevh2026-08-31 03:2247m

প্রকাশের ক্রম অনুসারে পড়লে, সময়সীমাটি চল্লিশ গুণেরও বেশি সংকুচিত হয় — সবচেয়ে প্রশস্ত অংশে ১৩ ঘণ্টা ২৩ মিনিট থেকে সবচেয়ে সংকীর্ণ অংশে ১৭ মিনিটে নেমে আসে। প্রথম চারটি প্যাকেজের গড় সময় সাড়ে আট ঘণ্টা; শেষের চারটির গড় সময় তেত্রিশ মিনিট। ২৮শে আগস্ট, মাত্র ৭৭ মিনিটের ব্যবধানে তিনটি প্যাকেজ প্রকাশিত ও প্রত্যাহার করা হয়েছিল।

এই সংকোচনটি কোনো ক্রমান্বয়িক হ্রাস নয়। এটি ২৬ থেকে ২৮ আগস্টের মধ্যে কেন্দ্রীভূত ছিল, এবং যা পরিবর্তিত হয়েছিল তা হলো একটি প্যাকেজ কতক্ষণ নিরাপদে থাকতে পারে সে সম্পর্কে অপারেটরের অনুমান।

এখানকার প্রতিটি প্রত্যাহার প্রকাশক-প্রবর্তিত। প্রতিটির রেজিস্ট্রি নথিতে রক্ষণাবেক্ষণকারীর একটি খালি তালিকার পাশে একটি তালিকা দেখানো হয়। সময়.অপ্রকাশিত রেকর্ড — অপসারণ নয়, বরং অপ্রকাশিত করার স্বাক্ষর। একটি নবম প্যাকেজ, আইয়াস, মোটেই কখনো প্রত্যাহার করা হয়নি; এই কারণেই এর যেকোনো কিছু পরীক্ষা করা সম্ভব হয়েছিল।

একটি দ্বিতীয় প্রত্যাহার ব্যবস্থা বিদ্যমান এবং এটিকে এই ব্যবস্থার সাথে গুলিয়ে ফেলা উচিত নয়। যেখানে শুধুমাত্র পেলোড সংস্করণ যদি প্যাকেজটি বের করে নেওয়া হয় এবং সেটি অক্ষত থাকে, তবে ৩১টি প্যাকেজের ক্ষেত্রে গড় সময় প্রায় ৭৩ ঘণ্টা। সেই প্রতিস্থাপনগুলো পূর্বনির্ধারিত ব্যাচে আসে এবং একটি শূন্য খোলস রেখে যায় — একটি package.json ঘোষণা করা প্রধান যেটি কোনো ফাইল পাঠায় না — যার একমাত্র কাজ হলো নামটি ধরে রাখা। সেই ব্যবস্থাটি হলো একটি নির্দিষ্ট সময়সূচী মেনে চলা ঘরোয়া কাজ। আর এটি হলো একটি নিয়ন্ত্রিত উন্মুক্ত জানালা।

মুছে ফেলার পরেও যা টিকে থাকে

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

তাদের মধ্যে যা মিল রয়েছে তা হলো এমন একটি সুস্পষ্ট নথি যার অস্তিত্বের কোনো কারণ নেই:

"বিন": { "": "bin/kalamasha-tool.js" } }

অপসারণের আগে আমরা পাঁচটির অনুলিপি রেখেছিলাম। পাঁচটি জুড়েই, সম্পূর্ণ বিন/ ডিরেক্টরিটি বাইট-অভিন্ন:

ফাইলরয়েছে SHA-256
bin/kalamasha-tool.js0c293be90c10c8a7618d25f4c4811fa63612b7bc5199b86e10bb31eb36c716dd
bin/uia_extract.exee2fda5aa8397799669f29258f69e803cf05d322c1d93269eef6754ca024c3865
bin/chrome_cookies.ps121b61ec810331850d72423c40c5448e6cd310c4cfad6aed54f92cd7e7cac5f3a
bin/stealth_capture.ps1c9baf5897c03b941c54f736df5af9243ad28794a9e69746d41d4f4a34065589c
bin/uia_extract.pyc20b38c63efd9221930095c54b42cdd5adffa1972c44c4578226cbe1e4dbac3e
bin/uia_get_text.ps14a3f3ada0bdf13aa8e89edb8af817c7816296147dae5be25f169ff960d28a87c

আরও দুটি সংকেতও এর সাথে মিলে যায়। তিনটি প্যাকেজ ১৭ই আগস্ট, ২৬শে আগস্ট এবং ৩১শে আগস্ট যথাক্রমে ০৩:২৪, ০৩:৩৮ এবং ০৩:২২ ইউটিসি-তে প্রকাশিত হয়েছিল — যা পনেরো দিন ধরে তিনটি পৃথক অ্যাকাউন্ট থেকে ষোল মিনিটের একটি সময়কাল। এবং সেই অ্যাকাউন্টগুলোর মধ্যে দুটি একই ডিসপোজেবল ইমেল ডোমেইনে নিবন্ধিত ছিল, যা কোড থেকে স্বাধীনভাবে সেগুলোকে একে অপরের সাথে সংযুক্ত করে।

হিসাব

এইগুলি হল সেই npm পাবলিশার অ্যাকাউন্টগুলি যারা পেলোডটি পাঠিয়েছে, সাথে প্রতিটি আপলোড করা প্যাকেজ এবং সেটি কতক্ষণ ধরে ছিল তার বিবরণ:

প্রকাশক অ্যাকাউন্টপ্যাকেজইমেল ডোমেইনদাঁড়িয়ে রইলাম
letol39119moidev:1.0.0hutdot.com (একবার ব্যবহারযোগ্য)5h 58m
so1d1a7i27moidevx:1.0.0ogzmail.com (একবার ব্যবহারযোগ্য)13h 23m
lololololol435678eyiouss:3.0.21, 3.0.22, 4.0.1ogzmail.com (একবার ব্যবহারযোগ্য)এখনও প্রকাশিত
tagadob568moidevz:1.0.0ebflyai.com (একবার ব্যবহারযোগ্য)12h 56m
tayihim489moideva:1.0.0prodbits.com (একবার ব্যবহারযোগ্য)1h 33m
sahihai123amicat:1.0.0, bmcat:2.0.9, eyevox:1.0.0গ্রাহক ওয়েবমেল17m / 47m / 21m
heytoshanmoidevh:1.0.0গ্রাহক ওয়েবমেল47m

so1d1a7i27 এবং lololololol435678 ভাগ ogzmail.com রেজিস্ট্রেশন ডোমেইন — যে সংযোগটি এখনও একটি লাইভ কপি হোস্টকারী অ্যাকাউন্টকে, যে অ্যাকাউন্টটি এর অধীনে প্রকাশ করেছিল তার সাথে যুক্ত করে। মোইডেভ দুই সপ্তাহ আগে কাণ্ড বের হয়। সাহিহাই১২৩ ২৮শে আগস্ট মাত্র ৭৭ মিনিটের ব্যবধানে তিনটি পৃথক প্যাকেজ নাম প্রকাশ ও প্রত্যাহার করা হয়েছিল। হেতোশান নিবন্ধিত, প্রকাশিত মোইডেভএবং ৪৭ মিনিট পরে তা প্রত্যাহার করে নেন; এটিই সেই বিবরণের একমাত্র প্রকাশনা।

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

একটি প্যাকেজ কখনো প্রত্যাহার করা হয়নি। eyiouss:4.0.1 ১৬ই আগস্ট থেকে প্রকাশিত হয়েছে এবং এই লেখা লেখার সময়ও তা সমাধানযোগ্য ছিল। আটটি আর্টিফ্যাক্ট উদ্ধার করা যায়নি; যে একটি অবশিষ্ট ছিল, তা থেকেই ক্যাম্পেইনটি সম্পূর্ণরূপে পুনর্গঠন করা হয়েছে। একজন অপারেটর যিনি সহজাত প্রবৃত্তির বশে মুছে ফেলেন, তিনিও অবশেষে একটিকে অক্ষত রেখে যাবেন।

টুলটি কী করে

eyiouss:4.0.1 npm-এ এটি নিজেকে “আধুনিক ওয়েব অ্যাপ্লিকেশনগুলির জন্য একটি উচ্চ-কর্মক্ষমতাসম্পন্ন DOM ইউটিলিটি এবং ডায়াগনস্টিক ব্রিজ” হিসেবে বর্ণনা করে। এটি দূরবর্তী পরীক্ষা তত্ত্বাবধানের অধীনে চলার জন্য নির্মিত একটি স্ক্রিন-ক্যাপচার এবং উত্তর-সংগ্রহের টুল, এবং এর সোর্স কোডেও এমনটাই বলা আছে।

লঞ্চারটি চালানোর আগে ইলেকট্রন রানটাইমকে একটি ছদ্মনামে কপি করে, এবং এটি যা এড়িয়ে যাচ্ছে তার নাম উল্লেখ করে:

// 🛡️ স্টিলথ বাইনারি নাম: আসল টেস্টপ্যাডের সাথে যেন কোনোভাবেই সংঘর্ষ না হয়! const STEALTH_NAME = 'SearchApp.exe';

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

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

প্যাকেজটি পাঠানোও হয় chrome_cookies.ps1, নেতৃত্বে ক্রোম কুকি এক্সট্র্যাক্টরযা DPAPI-এর মাধ্যমে Chrome এবং Edge কুকি ডিক্রিপ্ট করে এবং সর্বোচ্চ চারটি ব্রাউজার প্রোফাইল থেকে কুকি ডেটাবেস পড়ে। পূর্বে উল্লিখিতcisএলি: আমরা সরবরাহকৃত কোনো জাভাস্ক্রিপ্ট ফাইল থেকে নির্দিষ্ট নামে ওই স্ক্রিপ্টটি চালু করা অবস্থায় খুঁজে পাইনি। যা উপস্থিত এবং নাগালের মধ্যে আছে, তা হলো এর ব্যবহারকারী অংশ, যা সংরক্ষিত সেশন কুকিগুলোকে এমবেডেড ব্রাউজারে প্রবেশ করায়।

যারা এটি স্থাপন করে তাদের অবস্থান

কেউ ভুলবশত এটি ইনস্টল করে না। একটি পর্যবেক্ষণাধীন পরীক্ষার বাইরে এর কোনো কাজ নেই, এবং এর আউটপুট হলো ব্যবহারকারীর নিজের স্ক্রিনে একটি উত্তরের ওভারলে। এই বিভ্রান্তিকর প্যাকেজ বিবরণটি মোটেও ইনস্টলারকে লক্ষ্য করে তৈরি করা হয়নি — এটি রেজিস্ট্রি এবং পরবর্তীতে মেশিনটি নিরীক্ষাকারী যে কারো জন্য একটি আবরণ মাত্র। ইনস্টলার জানে সে কী পাচ্ছে; এই বিবরণটি রাখা হয়েছে যাতে... নথি ইনস্টলেশনটিতে এটি প্রতিফলিত হয় না।

ক্ষতিগ্রস্ত পক্ষগুলো হলো তৃতীয় পক্ষ, যারা কখনো npm ব্যবহার করেনি: পরীক্ষা পরিচালনাকারী প্রতিষ্ঠান, অন্যান্য পরীক্ষার্থীরা, এবং এর পরবর্তী পর্যায়ের প্রত্যেকে যারা এই শংসাপত্রের তাৎপর্যের ওপর নির্ভরশীল।

কিন্তু এর জন্য ইনস্টলারটি নিরাপদ নয়, এবং এই অংশটিই বিশদভাবে ব্যাখ্যা করা প্রয়োজন, কারণ এই অদৃশ্য হয়ে যাওয়া প্যাকেজ মডেলটিই ঝুঁকির কারণ হয়ে দাঁড়ায়।

তারা কারো কাছ থেকে পাওয়া নয় এমন একটি স্বাক্ষরবিহীন বাইনারি চালাচ্ছে। uia_extract.exe কোনো সোর্স বা বিল্ড প্রোভেনেন্স ছাড়াই, বিলুপ্ত একটি অ্যাকাউন্ট থেকে শিপগুলো কম্পাইল করা হয়েছে। হ্যাশ দ্বারা একই ফাইলটি পুনরায় প্রকাশ করেছে letol39119, so1d1a7i27, lololololol435678, ট্যাগাডব৫৬৮, তাইহিম৪৮৯, সাহিহাই১২৩ এবং হেতোশান পনেরো দিন ধরে। জিজ্ঞাসা করার মতো কোনো রক্ষণাবেক্ষণকারী নেই, পড়ার মতো কোনো রিপোজিটরি নেই, এবং যাচাই করার মতো কোনো ইতিহাসও নেই — যে পরিচয়টি এটি সরবরাহ করেছিল, সেটি নিজেই নিজেকে মুছে ফেলেছে।

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

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

তারা যা চালিয়েছে তা নিরীক্ষা করতে পারে না। তাদের লকফাইলটি এখন এমন একটি প্যাকেজকে নির্দেশ করে যা আর কাজ করে না। যদি তারা পরবর্তীতে—কোনো ঘটনা বা বিবাদের পর—তাদের মেশিনে কী আছে তা জানতে চায়, তবে রেজিস্ট্রি তাদের দেওয়ার মতো কোনো রেকর্ড রাখে না।

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

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

একই প্যাটার্ন, ভিন্ন অপারেটর

এই ক্ষেত্রে তত্ত্বাবধানকারী অপারেটর একা নন, এবং এর সবচেয়ে স্পষ্ট সাদৃশ্যটি একটি সম্পর্কহীন পেলোডে চলে।

২৪ থেকে ২৭ আগস্টের মধ্যে, টু-ফ্যাক্টর অথেনটিকেশন টুলিং থেকে ধার করা নামে চারটি এনপিএম প্যাকেজ প্রকাশিত হয়েছিল — অথ-ওটিপি, গোপন চাবি-২এফএ, secretkey2fa এবং 2fa-secretkey — তাদের মধ্যে ষোলটি সংস্করণ ছিল। প্রতিটি তার নিজস্ব সদ্য নিবন্ধিত অ্যাকাউন্ট থেকে প্রকাশিত হয়েছিল (বেয়িলল, jeanpaul686g, zzzalipay, dluuuuu), সবগুলোর ইমেল যাচাই করা হয়নি, কোনোটিরই যাচাইকৃত সোর্স-কন্ট্রোল লিঙ্ক ছিল না, এবং কোনোটিই অন্য কিছু প্রকাশ করছিল না। প্রত্যেকটিই তার নিজস্ব প্রকাশক কর্তৃক প্রত্যাহার করা হয়েছিল।

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

প্রকাশনার ক্রমানুসারে চারটি চক্র যথাক্রমে ২৭৪.৯, ৩৭.৮, ৩৭.৬ এবং ৩৫.৭ মিনিটে সম্পন্ন হয়: প্রথমে একটি দীর্ঘ প্রচেষ্টা, তারপর একটি স্থিতিশীল সংখ্যায় স্থির হওয়া। আরও তিনটি প্যাকেজ আবার অন্য অপারেটরদের অন্তর্গত এবং সেগুলোতেও একই প্রত্যাহারের আচরণ দেখা যায়।

প্যাকেজঅপারেটরদাঁড়িয়ে রইলাম
octopus-actionরিকন বীকন2.5 মিনিট
mt-ts-serverless-starterরিকন বীকন9.6 মিনিট
2fa-secretkey2FA কভার নাম35.7 মিনিট
secretkey2fa2FA কভার নাম37.6 মিনিট
secretkey-2fa2FA কভার নাম37.8 মিনিট
auth-otp2FA কভার নাম274.9 মিনিট
hex-encode-utilsঅন্যান্য724.2 মিনিট

সাতটি প্যাকেজ, গড় সময় ৩৭.৮ মিনিট, যার কোনোটিই পরীক্ষার সফটওয়্যার সম্পর্কিত ছিল না।

তিনটি সম্পর্কহীন পেলোড, তিনটি সম্পর্কহীন অ্যাকাউন্টের সেট, কিন্তু একটিই অভিন্ন কৌশল।

কেন জানালাটি বন্ধ হচ্ছে

২০২৬ সালে রেজিস্ট্রির পরিবেশে কিছু একটা পরিবর্তন এসেছে, এবং এর সবচেয়ে সম্ভাব্য কারণ হলো স্ক্যানিং আরও দ্রুত হয়েছে।

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

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

সময়টা ঠিকঠাক। উপরের উভয় অপারেটরই একটি নির্দিষ্ট মানে উপনীত হন এবং তা থেকে বিচ্যুত না হয়ে সেটিকে ধরে রাখেন, যা একটি সুসমন্বিত প্যারামিটারের বৈশিষ্ট্য, কোনো সুবিধাবাদী বিষয় নয়। এবং তারা যে প্যারামিটারটিতে উপনীত হয়েছেন—কয়েক দশ মিনিট—তা পূর্বনির্ধারিত।cisস্বয়ংক্রিয় পরিদর্শন প্রক্রিয়া এড়ানোর জন্য এটিকে ঠিক সেই জায়গায় রাখতে হবে, যেখানে প্যাকেজটি তার ব্যবহারকারীদের কাছে পৌঁছানোর জন্য যথেষ্ট সময় ধরে ইনস্টলযোগ্য থাকবে।

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

এ ব্যাপারে কী করা যায়

বয়স অনুযায়ী কোয়ারেন্টাইন। ডুয়েল-টাইম টেবিলে থাকা কোনো কিছুই তেরো ঘণ্টা টিকে থাকেনি। এমন একটি নীতি থাকলে যে কোনো ডিপেন্ডেন্সি ভার্সন ৭২ ঘণ্টা না থাকা পর্যন্ত ইনস্টল করা যাবে না, সেটি কোনো কিছু শনাক্ত না করেই সেগুলোর প্রত্যেকটিকে বাদ দিয়ে দিত।

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

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

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

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

সূচক

আদর্শমূল্য
ফাইলbin/kalamasha-tool.js — অ-standard বিন প্রবেশ বিন্দু
রয়েছে SHA-2560c293be90c10c8a7618d25f4c4811fa63612b7bc5199b86e10bb31eb36c716dd
রয়েছে SHA-256e2fda5aa8397799669f29258f69e803cf05d322c1d93269eef6754ca024c3865
প্রক্রিয়াSearchApp.exe একটি বৈধ ইলেকট্রন রানটাইমের পাশে লেখা
ব্যবহারpowershell -ExecutionPolicy Bypass -File সঙ্গে windowsHide: true
ব্যবহারtaskkill /F /T একটি নিরাপদ পরীক্ষার ব্রাউজার প্রক্রিয়া লক্ষ্য করে
মেটাডাটাএকটির পাশে খালি রক্ষণাবেক্ষণকারীর তালিকা time.unpublished নথি
অ্যাকাউন্টসletol39119, so1d1a7i27, lolololol435678, tagadob568, tayihim489, sahihai123, heytoshan
নিবন্ধনogzmail.com, hutdot.com, ebflyai.com, prodbits.com — ডিসপোজেবল-মেইল ডোমেইন

তথ্যসূত্র

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

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

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