"একজন জ্ঞানী নিনজা এমন শত্রুকে খুঁজে বের করে না যাকে সে পুরোপুরি বোঝে না।" - টিনেজ মিউট্যান্ট নিনজা টার্টলস থেকে স্প্লিন্টার
বিজ্ঞান কল্পকাহিনী সম্পর্কে উত্সাহী একজন প্রযুক্তিগত লেখক হিসাবে, Sonatype-এ আমার কাজের সবচেয়ে উত্তেজনাপূর্ণ অংশগুলির মধ্যে একটি হল যখন আমি নিরাপত্তা গবেষণা দলের সাথে সহযোগিতা করার সুযোগ পাই।
যখন থেকে আমরা খুঁজে পেয়েছি
এটি একটি বিরল ঘটনা নয়: তারা সত্যই দূষিত কিনা তা নির্ধারণ করতে ওপেন-সোর্স রেজিস্ট্রি থেকে শত শত সন্দেহজনক প্যাকেজ ক্রমাগত মূল্যায়ন করে। এই প্রক্রিয়া চলাকালীন, তারা প্যাকেজগুলির মধ্যে পরিচিত নিদর্শনগুলি সনাক্ত করে এবং কখনও কখনও, দৃঢ় মিলগুলি সনাক্ত করার পরে, তারা তাদের পিছনে অভিনেতা/প্রচারণার সন্ধান করতে আরও গবেষণা পরিচালনা করে।
2022 এর শেষ সপ্তাহ থেকে 2023 এর শুরুর মধ্যে, আমাদের AI সিস্টেম PyPI রেজিস্ট্রিতে pyrologin
, easytimestamp
, discorder
, discord-dev
, style.py
, এবং pythonstyles
সহ আপলোড করা সন্দেহজনক প্যাকেজগুলিকে পতাকাঙ্কিত করেছে৷ আমাদের নিরাপত্তা গবেষকরা তাদের দেখেছেন এবং নিশ্চিত করেছেন যে তারা প্রকৃতপক্ষে দূষিত। এবং আরও বিশ্লেষণের পরে, তারা লক্ষ্য করেছে যে এই প্যাকেজগুলি পাইথন ম্যালওয়্যারে প্রায়শই দেখা যায় না এমন বৈশিষ্ট্যগুলির একটি সিরিজ যুক্ত করেছে।
যা একটি বাস্তব কৌশলে পরিণত হয়েছে, খারাপ অভিনেতারা setup[.]py
ফাইলে একটি পেলোড লুকিয়ে রাখে তাই বিকাশকারীদের সংক্রামিত হওয়ার জন্য শুধুমাত্র একটি সাধারণ পিপ ইনস্টল ব্যবহার করতে হয়। এই ক্ষেত্রে, তারা অসাবধানতাবশত একটি পাওয়ারশেল স্ক্রিপ্ট চালু করবে যা লাইব্রেরি ইনস্টল করার জন্য একটি জিপ ফাইল ডাউনলোড করে যা আক্রমণকারীকে শিকারের মাউস, কীবোর্ড নিয়ন্ত্রণ করতে, স্ক্রিনশট নিতে এবং লুকানো দূরবর্তী সংযোগ তৈরি করতে দেয়। এবং তার উপরে, এই প্যাকেজগুলি পাসওয়ার্ড, কুকিজ, এবং ক্রিপ্টোকারেন্সি ওয়ালেট ডেটার মতো সংবেদনশীল তথ্যও তুলে দেয় এবং এমনকি দূরবর্তী অ্যাক্সেসের জন্য একটি টুল ইনস্টল করার চেষ্টা করে। আমাদের অনুসন্ধানের সাথে সামঞ্জস্যপূর্ণ ছিল
তা সত্ত্বেও, নিরাপত্তা গবেষক কার্লোস ফার্নান্দেজের déjà vu-এর ভুতুড়ে অনুভূতি ছিল। আমরা প্যাকেজগুলি প্রকাশ করার এক সপ্তাহের মধ্যে, এই ম্যালওয়্যারের পূর্ববর্তী সংস্করণগুলি দেখার স্মৃতি তার মনে ভেসে উঠল। একজন হুমকি অভিনেতা সময়ের সাথে সাথে তাদের ম্যালওয়্যার বিকশিত হতে পারে, কিন্তু আমাদের নিশ্চিত করা দরকার, তাই তার অন্তর্দৃষ্টিতে কোনো সত্যতা আছে কিনা তা দেখতে তাকে সাহায্য করার জন্য আমি আমার OSINT টুপি পরলাম।
আমাদের ডাটাবেসের দিকে ফিরে তাকালে, 25 সেপ্টেম্বর, 2022-এ, pygradient
নামে একটি প্যাকেজ PyPI সংগ্রহস্থলে আপলোড করা হয়েছিল। আমাদের AI এটিকে সন্দেহজনক হিসাবে পতাকাঙ্কিত করেছে এবং আমাদের নিরাপত্তা গবেষকরা নিশ্চিত করেছেন যে এতে ম্যালওয়্যার রয়েছে এবং এটি pystyle
নামক অন্য একটি প্যাকেজের উত্সগুলিকে একত্রিত করেছে৷ উভয় লাইব্রেরি দ্বারা লেখক ছিল
W4SP স্টিলার অধ্যবসায় নিয়ে গর্ব করে (ব্যবহারকারীরা পিসি রিস্টার্ট করার সময় এটি পুনরায় সক্রিয় হয়), অস্পষ্টতা (লেখক প্রতিশ্রুতি দিয়েছেন যে এটি সম্পূর্ণরূপে সনাক্ত করা যায় না), এবং একটি চিত্র ফাইলের মধ্যে পলিমরফিক এবং অত্যন্ত-অস্পষ্ট পেলোডগুলি লুকানোর জন্য স্টেগানোগ্রাফি কৌশল। ম্যালওয়্যারটি শিকারের সমস্ত ডিসকর্ড অ্যাকাউন্ট, ক্রেডিট কার্ড, পাসওয়ার্ড এবং ক্রিপ্টো-ওয়ালেটগুলি হার্ড-কোডেড ডিসকর্ড ওয়েবহুক ঠিকানার মাধ্যমে আক্রমণকারীকে ফেরত পাঠায়। এই ম্যালওয়্যারে আগ্রহী খারাপ অভিনেতারা ক্রিপ্টোতে প্রায় 20 USD প্রদান করে এটি কিনেছে।
মূলত, pystyle
কোনো দূষিত প্রকৃতি ছিল না—পঠনযোগ্যতা এবং ব্যবহারকারীর অভিজ্ঞতা বাড়াতে শৈলী এবং রঙ কনসোল আউটপুটের জন্য একটি নিরীহ প্যাকেজ। কিন্তু Phylum গবেষণা অনুসারে, একবার এটি জনপ্রিয় হয়ে উঠলে (প্যাকেজটি এখনও PyPI তে সক্রিয় রয়েছে এবং এটি প্রতি মাসে 40,000 টিরও বেশি ডাউনলোড জমা করে), তারা কয়েকটি রিলিজে W4SP ম্যালওয়্যার যুক্ত করার সিদ্ধান্ত নেয়।
pystyle
মতো ওপেন-সোর্স প্যাকেজগুলি কয়েক মাস ধরে স্লিপার এজেন্ট হিসাবে কাজ করতে পারে শুধুমাত্র পরবর্তীতে তাদের নিজস্ব লেখক দ্বারা দূষিত উদ্দেশ্যে সক্রিয় করা হবে। একটি ঝুঁকিপূর্ণ পদক্ষেপ, যেহেতু তাদের জনপ্রিয় প্যাকেজটি আমাদের মতো নিরাপত্তা গবেষকরা আবিষ্কার করতে পারেন যারা এটিকে দূষিত হিসাবে রিপোর্ট করবেন এবং এটিকে চিরতরে সরিয়ে নেওয়া হবে। এই কারণেই তারা প্রায়শই নতুন প্যাকেজ তৈরি করে যেখানে তারা একটি নিরীহ লাইব্রেরির সোর্স কোড অন্তর্ভুক্ত করে, কিছু ধরণের দূষিত পেলোড যোগ করে এবং এটি একটি নতুন নামে আপলোড করে: কিছু সাধারণ, সৌম্য-শব্দযুক্ত, নির্দোষ-সুদর্শন। একটি নাম যেমন pygradient
।
কার্লোসের সাথে ঘনিষ্ঠভাবে দেখার পরে, আমরা দেখতে পেলাম যে এই প্রোটো-আরএটি মিউট্যান্ট ম্যালওয়্যারটিতে ডিসেম্বর সংস্করণের কিছু বৈশিষ্ট্যের অভাব রয়েছে: যদিও এটি একটি পাওয়ারশেল স্ক্রিপ্টও চালু করেছে এবং সংবেদনশীল ডেটা বের করেছে, এটি বেস64 এনকোডেড পেলোড বা অনুমোদিত তালিকা ব্যবহার করেনি স্ব-সংক্রমণ এড়াতে txt ফাইল। একটি উপায়ে, এটি একটি হালকা, কম পরিশীলিত বৈকল্পিক ছিল।
কিন্তু তারপরে আমরা paintpy
, devicespoof
, এবং devicespoofer
সহ নভেম্বরের প্রথম দিকে আপলোড করা প্যাকেজগুলি দেখেছি এবং গভীরে যাওয়ার পরে, আমরা আমাদের সন্দেহের নিশ্চিতকরণ খুঁজে পেয়েছি: ম্যালওয়্যারটি সত্যিই বিকশিত হচ্ছে৷
যদিও BillyTheGoat নভেম্বর থেকে GitHub-এ সক্রিয় ছিল না, আমরা এখনও ম্যালওয়্যার খুঁজে পাচ্ছি যা তার সৃষ্টির উপর ভিত্তি করে বা সরাসরি সেগুলি থেকে চুরি করে, বেশিরভাগ ব্যবহারকারীর দ্বারা যা স্পষ্টতই পর্তুগালে অবস্থিত
এই ব্যবহারকারী PyPI-তে একটি সম্প্রতি সরানো প্যাকেজ আপলোড করেছেন যাকে বলা হয় pystilez
, যা দেখতে কেমন ছিল তা BillyTheGoat-এ মিথ্যাভাবে জমা দেওয়া হয়েছে
চেকমার্কসapicolor
নামক একটি প্যাকেজে একটি W4SP আক্রমণ খুঁজে পাওয়ার পরে (একইভাবে-নামযুক্ত বৈচিত্র সহ) যেটি তাদের দূষিত কোডের মধ্যে একটি ডিসকর্ড সার্ভার লিঙ্ক অন্তর্ভুক্ত করে। অ্যাডমিনিস্ট্রেটর প্রোফাইলটি একটি যাচাইকৃত স্টিম অ্যাকাউন্টের সাথে লিঙ্ক করা হয়েছে এবং "zeeckt" নামটি আক্রমণকারীর স্টিম উপনামের একটি হিসাবে উপস্থিত হয়েছে।
একজন নিরাপত্তা গবেষক শিক্ষাগত উদ্দেশ্যে জিকেটের একটি পেলোড পোস্ট করেছেন এবং তিনি W4SP চুরিকারীর সহ-লেখকের কাছ থেকে একটি আকর্ষণীয় উত্তর পেয়েছেন:
আপনার চুরিকারী চুরি করা কতটা পরিহাস.
একই লেখক, দৃশ্যত একজন 17 বছর বয়সী পাইথন ডেভেলপার, তার GitHub প্রোফাইলে একটি README ফাইলে তার হতাশা পুনরুদ্ধার করেছেন:
আমরা জানি না যে দূষিত কোড জিকেট অন্যান্য খারাপ অভিনেতাদের কাছ থেকে চুরি করেছে, তবে একটি জিনিস নিশ্চিত: ওপেন-সোর্স রেজিস্ট্রি জুড়ে ম্যালওয়্যার প্রচারাভিযানে সেই নামটি পপ আপ হতে থাকে।
কার্লোস সম্প্রতি আরও চারটি প্যাকেজ খুঁজে পেয়েছেনforenitq
, forenith
, forenity
এবং forenitz
. আরও তদন্তের পর, তিনি তাদের দূষিত হিসাবে ট্যাগ করেছেন এবং তাদের নামিয়ে নেওয়ার জন্য PyPI কে রিপোর্ট করেছেন। দ্রুততম কেসটি প্রকাশ থেকে মুছে ফেলা পর্যন্ত প্রায় 20 মিনিট সময় নেয়৷
forenitq
এ setup[.]py
দিকে তাকিয়ে , কার্লোস নিম্নলিখিত প্রথম-পর্যায়ের পেলোড খুঁজে পেয়েছেন:
আক্রমণকারী তিনটি অস্থায়ী ফাইল তৈরি করে যা "স্টার্ট" কমান্ড ব্যবহার করে নির্দিষ্ট ইউআরএল থেকে উইন্ডোজ বাইনারি ডাউনলোড এবং কার্যকর করে। যদিও slugs /rat
এবং /clip
দূষিত অভিপ্রায়ের ইঙ্গিত দেয়, আমরা হুডের নিচে না দেখে সেই অনুমান নিশ্চিত করতে পারিনি।
এই লেখার সময়, hxxp://20[.]226[.]18[.]203
এ হোস্ট করা পৃষ্ঠাটি এখনও সক্রিয় রয়েছে এবং এটি শুধুমাত্র একটি ডিসকর্ড আমন্ত্রণের একটি লিঙ্ক দেখায় যা ইতিমধ্যেই মেয়াদোত্তীর্ণ বা ব্যক্তিগত।
কার্লোস লক্ষ্য করেছেন যে প্যাকেজটি জনপ্রিয় হিসাবে জাহির করছে
RAT ফাইলটিকে ডিঅফসকেট করার পরে, তিনি একটি লাইন খুঁজে পান যা একটি সম্ভাব্য ক্লিপবোর্ড হাইজ্যাকারকে লোড করে, কিন্তু এর সুনির্দিষ্ট বৈশিষ্ট্যগুলি বেস64 এনকোড করা ছিল:
ডিকোড করার পরে, আমরা একটি পাইথন কোড পাই যা একজন শিকারের ক্লিপবোর্ড হাইজ্যাক করার জন্য ডিজাইন করা হয়েছে যাতে আক্রমণকারীর ঠিকানার সাথে উদ্দেশ্যমূলক ক্রিপ্টোকারেন্সি ওয়ালেট ঠিকানা প্রতিস্থাপন করা যায়:
এটি বিটকয়েন (bc1), Ethereum (0x), Monero (4), এবং l itecoin (L বা M বা 3) এর মতো নির্দিষ্ট প্যাটার্নের সন্ধান করে এবং যখন একটি প্যাটার্ন পাওয়া যায়, এটি আক্রমণকারীর ক্রিপ্টোকারেন্সি ওয়ালেট ঠিকানার সাথে উদ্দেশ্যযুক্ত ঠিকানাটি প্রতিস্থাপন করে। .
কোড ব্যবহার করে
উপরন্তু, আমরা এই RAT মিউট্যান্ট সনাক্তকরণ এড়াতে ব্যবহার করে এমন আরও কৌশল আবিষ্কার করেছি: setup[.]py
forenitq/ansi[.]py
.]py ফাইলে একটি প্রথম-পর্যায়ের পেলোড যোগ করা হয়েছে এবং একটি দ্বিতীয়-পর্যায়ের পলিমরফিক পেলোড যা আপনি প্রতিবার চালানোর সময় পরিবর্তিত হন। বাইনারি
আক্রমণকারী একটি সম্পূর্ণ সাহায্য মেনুর সাথে একটি নতুন কমান্ড এবং নিয়ন্ত্রণও যোগ করেছে—এবং এইবার se fala português:
আপনি দেখতে পাচ্ছেন, দূষিত অভিনেতারা আপনার অবকাঠামোতে আরও প্রবেশ করতে আপনার ক্রিপ্টো তহবিল এবং সিস্টেমের শংসাপত্র চুরি করতে আগ্রহী। তাদের RAT ম্যালওয়্যারগুলি বিকাশকারীদের জন্য আরও ফাঁকি এবং ক্ষতিকারক হতে পরিবর্তিত হতে থাকে। সুতরাং, আপনি যদি আজ আপনার সফ্টওয়্যার সরবরাহ চেইন সুরক্ষিত না করেন, তাহলে যত তাড়াতাড়ি সম্ভব পদক্ষেপ নেওয়ার কথা বিবেচনা করুন।
hxxp://20[.]226[.]18[.]203/inject/tCxFLYLT6ViY9ZnP
hxxp://20[.]226[.]18[.]203/clip
hxxp://20[.]226[.]18[.]203/rat