- একজন আক্রমণকারী অ্যাক্সিওস-এর প্রধান রক্ষণাবেক্ষণকারীর এনপিএম অ্যাকাউন্ট হ্যাক করে ১.১৪.১ এবং ০.৩০.৪ সংস্করণ দুটি প্রকাশ করে, যেগুলোতে প্লেইন-ক্রিপ্টো-জেএস নামক একটি কাল্পনিক নির্ভরতা যুক্ত ছিল, যা ইনস্টলেশনের সময় একটি ক্রস-প্ল্যাটফর্ম আরএটি (RAT) স্থাপন করে।
- ম্যালওয়্যারটি একটি C2 সার্ভারের (sfrclak[.]com) সাথে যোগাযোগ করে Windows, macOS, এবং Linux-এর জন্য নির্দিষ্ট পেলোড ডাউনলোড করে, সিস্টেম রিকনেসান্স পরিচালনা করে, পর্যায়ক্রমিক বীকন বজায় রাখে এবং কিছু ক্ষেত্রে স্থায়ীত্ব স্থাপন করে।
- গুগল এবং অন্যান্য গবেষকদের মতে, এই আক্রমণটি উত্তর কোরীয় হ্যাকার UNC1069-এর কাজ। এতে প্রায় তিন ঘণ্টার একটি উন্মুক্ত সময়ের সাথে রক্ষণাবেক্ষণকারীর ক্রেডেনশিয়াল চুরির উদ্দেশ্যে একটি অত্যাধুনিক সোশ্যাল ইঞ্জিনিয়ারিং অভিযান চালানো হয়েছিল।
- যেসব সংস্থা ক্ষতিগ্রস্ত সংস্করণগুলো ইনস্টল করতে সক্ষম হয়েছে, তাদের অবশ্যই ব্যবস্থা গ্রহণ, RAT আর্টিফ্যাক্টস অনুসন্ধান, ক্রেডেনশিয়ালস পরিবর্তন, Axios-এর সুরক্ষিত সংস্করণ পিন করা এবং তাদের সাপ্লাই চেইন, CI/CD ও ডিপেন্ডেন্সি ম্যানেজমেন্ট নিয়ন্ত্রণ ব্যবস্থা শক্তিশালী করার প্রতিশ্রুতি দিতে হবে।
জাভাস্ক্রিপ্ট ডেভেলপমেন্ট কমিউনিটি সম্প্রতি এমন একটি আতঙ্কের সম্মুখীন হয়েছে যা আপনার ডিপেন্ডেন্সিগুলোর ওপর আস্থার মাত্রা পুনর্বিবেচনা করতে বাধ্য করে, যার প্রমাণ লাইব্রেরির দুর্বলতা সংক্রান্ত সমস্যাগুলো । ইকোসিস্টেমের অন্যতম বহুল ব্যবহৃত HTTP লাইব্রেরি অ্যাক্সিওস (Axios)-কে এনপিএম (npm)-এ ম্যানিপুলেট করে এর আপাতদৃষ্টিতে বৈধ সংস্করণগুলোর মাধ্যমে একটি রিমোট অ্যাক্সেস ট্রোজান (RAT) ছড়ানো হয়েছিল। ঘটনাটি মাত্র কয়েক ঘণ্টা স্থায়ী হলেও এটি স্পষ্ট করে দিয়েছে যে, সফটওয়্যার সাপ্লাই চেইন অনেকের ধারণার চেয়েও অনেক বেশি নাজুক একটি সুতার ওপর ঝুলছে।
গুরুতর সমস্যাটি শুধু এই নয় যে আক্রমণকারীরা এমন একটি প্যাকেজে ম্যালওয়্যার ঢুকিয়ে দিতে পেরেছে যা সপ্তাহে কয়েক কোটি বা শত কোটি বার ডাউনলোড হয়। আসল সমস্যা হলো, তারা এই কাজটি করেছে প্রধান রক্ষণাবেক্ষণকারীর এনপিএম (npm) অ্যাকাউন্ট হাইজ্যাক করে এবং এমন "অফিসিয়াল" সংস্করণ প্রকাশ করে যা দেখতে স্বাভাবিক ছিল এবং অ্যাক্সিওস (Axios) সোর্স কোডের একটি লাইনও স্পর্শ করেনি । সমস্ত ক্ষতিকর কার্যকলাপ একটি কাল্পনিক ডিপেন্ডেন্সির মধ্যে সীমাবদ্ধ ছিল, যা বিশেষভাবে এই আক্রমণের জন্যই তৈরি করা হয়েছিল।
npm-এর প্রতি Axios-এর অঙ্গীকার যেভাবে গড়ে উঠল
ঘটনাটির ভয়াবহতা বোঝার জন্য, আমাদের এর প্রবেশপথ থেকে শুরু করতে হবে। আক্রমণকারী অ্যাক্সিওস (Axios)-এর প্রধান রক্ষণাবেক্ষণকারী “জেসন সায়মান” (jasonsaayman)-এর এনপিএম (npm) অ্যাকাউন্টের নিয়ন্ত্রণ নিতে সক্ষম হয় এবং এর সাথে যুক্ত ইমেল ঠিকানাটি পরিবর্তন করে প্রোটন মেইলে (Proton Mail) হোস্ট করা তাদের নিজেদের নিয়ন্ত্রণে থাকা একটি ঠিকানা ব্যবহার করতে শুরু করে। সেই মুহূর্ত থেকে, তারা যেন নিজেরাই রক্ষণাবেক্ষণকারী, এমনভাবে প্যাকেজটির নতুন সংস্করণ প্রকাশ করার অবাধ স্বাধীনতা পেয়ে যায়।
সেই ক্রেডেনশিয়ালগুলো ব্যবহার করে, সে অ্যাক্সিওসের দুটি ক্ষতিকারক সংস্করণ আপলোড করে: ১.১৪.১ এবং ০.৩০.৪ , যা প্রজেক্টটির দুটি প্রধান ব্রাঞ্চকেই অন্তর্ভুক্ত করে। আপলোডগুলো মাত্র ৩৯ মিনিটের ব্যবধানে করা হয়েছিল এবং স্টেপসিকিউরিটির বিশ্লেষণ অনুযায়ী, এগুলো একটি ক্লাসিক দীর্ঘস্থায়ী টোকেন ব্যবহার করে সরাসরি এনপিএম (npm) থেকে করা হয়েছিল, যা গিটহাব অ্যাকশনস (GitHub Actions) ভিত্তিক প্রচলিত সিআই/সিডি (CI/CD) পাইপলাইনকে সম্পূর্ণরূপে বাইপাস করে।
চূড়ান্ত আক্রমণের আঠারো ঘণ্টা আগেই, আক্রমণকারী এনপিএম রেজিস্ট্রি-তে ক্ষতিকারক ডিপেন্ডেন্সিটির একটি "পরিষ্কার" সংস্করণ প্রকাশ করেছিল । এই প্রাথমিক পদক্ষেপটির উদ্দেশ্য ছিল একটি ইতিহাস তৈরি করা এবং আক্রমণের সময় সম্পূর্ণ নতুন কোনো প্যাকেজ আবির্ভূত হলে কিছু স্বয়ংক্রিয় যাচাই প্রক্রিয়া চালু হওয়া থেকে বিরত রাখা।
আশ্চর্যজনক ব্যাপার হলো যে, আক্রমণকারীরা অ্যাক্সিওস (Axios)-এর সোর্স কোড পরিবর্তন করেনি বা গিটহাব রিপোজিটরিতে কোনো দৃশ্যমান পরিবর্তন আনেনি । প্রকৃতপক্ষে, গিটহাবে ১.১৪.১ এবং ০.৩০.৪ সংস্করণ দুটির কোনো সংশ্লিষ্ট কমিট বা ট্যাগ ছিল না; সেগুলো শুধুমাত্র এনপিএম (npm)-এ বিদ্যমান ছিল। মূল পার্থক্যটি ছিল প্যাকেজটির ডিপেন্ডেন্সি ফাইলে, যা রেজিস্ট্রি-তে প্রকাশিত হয়েছিল।
সাধারণত, অ্যাক্সিওস শুধুমাত্র তিনটি ডিপেন্ডেন্সি ঘোষণা করে: ফলো-রিডাইরেক্টস, ফর্ম-ডেটা, এবং প্রক্সি-ফ্রম-এনভ । তবে, হ্যাক হওয়া সংস্করণগুলিতে একটি চতুর্থ ডিপেন্ডেন্সি দেখা যায়, যেটি আগে এই প্রজেক্টে ছিলই না: প্লেইন-ক্রিপ্টো-জেএস, সংস্করণ ৪.২.১। এই অদৃশ্য লাইব্রেরিটি অ্যাক্সিওস কোডবেসের কোথাও ব্যবহৃত হয়নি, কিন্তু এতে একটি পোস্ট-ইনস্টল স্ক্রিপ্ট অন্তর্ভুক্ত ছিল যা এনপিএম, পিএনপিএম বা এই জাতীয় টুল দিয়ে প্যাকেজটি ইনস্টল করার সময় স্বয়ংক্রিয়ভাবে চলত।
plain-crypto-js: RAT দ্বারা ডেপ্লয় করা কাল্পনিক ডিপেন্ডেন্সি
এই আক্রমণের মূল চাবিকাঠি ছিল সেই অতিরিক্ত নির্ভরতাটিতে। ‘nrwise’ নামের একজন ব্যবহারকারী, যার একটি প্রোটন মেইল ইমেল ঠিকানা ছিল, তিনি npm-এ plain-crypto-js প্রকাশ করেন এবং এর একমাত্র উদ্দেশ্য ছিল Node.js-এ লেখা একটি দুর্বোধ্য পোস্ট-ইনস্টলেশন স্ক্রিপ্ট (setup.js) চালানো । সেই স্ক্রিপ্টটি একটি ড্রপার হিসেবে কাজ করত, অর্থাৎ ম্যালওয়্যারটির দ্বিতীয় পর্যায়ের প্রাথমিক ইনস্টলার হিসেবে।
অ্যাক্সিওস-এর একটি পয়জনড ভার্সন ইনস্টল করার সময়, এনপিএম পোস্ট-ইনস্টল লাইফসাইকেলটি ডেভেলপারের কোনো বিশেষ পদক্ষেপ ছাড়াই স্বয়ংক্রিয়ভাবে প্লেইন-ক্রিপ্টো-জেএস কোডটি চালু করে দিত । ড্রপারটি sfrclakcom ডোমেইনে সক্রিয় এবং ৮০০০ পোর্টে লিসেনিংরত একটি কমান্ড অ্যান্ড কন্ট্রোল (C2) সার্ভারের সাথে সংযুক্ত হতো এবং আক্রান্ত মেশিনের অপারেটিং সিস্টেমের জন্য নির্দিষ্ট একটি পেলোড ডাউনলোড করত; নেটওয়ার্ক ট্র্যাফিক বিশ্লেষণের মাধ্যমে এই আচরণটি শনাক্ত করা যায় ।
স্টেপসিকিউরিটি এবং অন্যান্য বিশ্লেষণকারী দলের গবেষকরা একটি অত্যন্ত সতর্কতামূলক আচরণের বর্ণনা দিয়েছেন। ক্ষতিকারক পেলোডটি কার্যকর করার পর, ড্রপারটি নিজের সমস্ত চিহ্ন মুছে ফেলে: এটি পোস্টইনস্টল স্ক্রিপ্টটি ডিলিট করে দেয়, package.json ফাইলটিকে একটি "পরিষ্কার" সংস্করণ দিয়ে প্রতিস্থাপন করে এবং একটি node_modules ফাইল রেখে দেয় যা প্রথম দৃষ্টিতে নিরীহ বলে মনে হয় । এইভাবে, পরবর্তীকালে ম্যানুয়াল পরিদর্শনে অ্যাক্সিওসের মধ্যে সরাসরি ক্ষতিকারক কোডটি খুঁজে পাওয়া যায়নি।
এই কারসাজি শনাক্ত করার জন্য একমাত্র নির্ভরযোগ্য সূত্র ছিল লকফাইলগুলো (package-lock.json, pnpm-lock.yaml, yarn.lock) এবং নির্দিষ্ট কিছু ভার্সনের উপস্থিতি: axios 1.14.1 বা 0.30.4 এবং plain-crypto-js 4.2.1। এছাড়াও, কিছু বিশ্লেষণে ওই প্যাকেজের মধ্যবর্তী নম্বরের (4.2.0, 4.2.2) দুটি ভার্সনের সংযোগ পাওয়া যায়। অন্যদিকে, সকেট (Socket) পরবর্তীতে শনাক্ত করে যে একই ম্যালওয়্যারটি @shadanai/openclaw (বিভিন্ন ভার্সন 2026.3.xx) এবং @qqbrowser/openclaw-qbot (0.0.130) প্যাকেজগুলোর মাধ্যমেও ছড়ানো হয়েছিল, এবং হানিপটের (honeypots) মতো নিরাপত্তা কৌশলগুলোও একই ধরনের ক্যাম্পেইন শনাক্ত করতে সাহায্য করতে পারে।
ক্রস-প্ল্যাটফর্ম RAT: আলোচনায় উইন্ডোজ, ম্যাকওএস এবং লিনাক্স
একবার চালু হলে, setup.js স্ক্রিপ্টটি একটি অর্কেস্ট্রেটর হিসেবে কাজ করত, যা অপারেটিং সিস্টেম শনাক্ত করতে এবং একটি প্ল্যাটফর্ম-নির্দিষ্ট আক্রমণ পথ অনুসরণ করতে সক্ষম ছিল । এই অভিযানটি যে পূর্ব-প্রস্তুত ছিল তা স্পষ্ট: স্টেপসিকিউরিটির মতে, আক্রমণকারীরা প্রতিটি সিস্টেমের জন্য একটি করে মোট তিনটি পৃথক পেলোড আগে থেকেই কম্পাইল করে রেখেছিল।
ম্যাকওএস সিস্টেমে, ইনস্টলেশন-পরবর্তী প্রক্রিয়াটি একটি অ্যাপলস্ক্রিপ্ট চালু করত যা sfrclakcom:8000 সার্ভার থেকে একটি ট্রোজানযুক্ত বাইনারি ডাউনলোড করত । এই বাইনারিটি /Library/Caches/com.apple.act.mond পাথে সংরক্ষণ করা হতো, এটিকে এক্সিকিউটেবল করার জন্য এর পারমিশন পরিবর্তন করা হতো, এবং সবশেষে, /bin/zsh ব্যবহার করে এটিকে ব্যাকগ্রাউন্ডে চালু করা হতো। RAT চালু হয়ে গেলে, ফরেনসিক বিশ্লেষণকে আরও জটিল করার জন্য অ্যাপলস্ক্রিপ্টটি নিজেই মুছে ফেলা হতো।
উইন্ডোজ মেশিনগুলিতে, ম্যালওয়্যারটি সিস্টেমের পাওয়ারশেল বাইনারিটি খুঁজে বের করে, সেটিকে উইন্ডোজ টার্মিনাল হিসেবে ছদ্মবেশ ধারণ করানোর জন্য %PROGRAMDATA%\wt.exe-তে কপি করে এবং একটি অস্থায়ী VBScript তৈরি করে । এরপর এই VBScript-টি একটি অতিরিক্ত পাওয়ারশেল RAT স্ক্রিপ্ট ডাউনলোড করার জন্য C2 সার্ভারের সাথে যোগাযোগ করে, সেটি এক্সিকিউট করে এবং তারপর ডাউনলোড করা ফাইলটি মুছে ফেলে। এছাড়াও, উইন্ডোজ সংস্করণটি একটি ডাউনলোড রুটিনসহ %PROGRAMDATA%\system.bat ফাইলটি তৈরি করে, যা ম্যালওয়্যারটিকে প্রতিটি লগইনে নিজেকে পুনরুদ্ধার করার সুযোগ দিত এবং স্থায়িত্ব নিশ্চিত করার জন্য উইন্ডোজ রেজিস্ট্রি-তে একটি এক্সিকিউশন কী যুক্ত করত।
macOS ছাড়াও Linux এবং অন্যান্য Unix-সদৃশ সিস্টেমে, ড্রপারটি Node.js-এর execSync ব্যবহার করে একটি শেল কমান্ড চালু করত, যা sfrclakcom থেকে একটি Python স্ক্রিপ্ট ডাউনলোড করে /tmp/ld.py নামে সংরক্ষণ করত এবং ব্যাকগ্রাউন্ডে চালু রাখার জন্য nohup-এর সাহায্যে তা এক্সিকিউট করত । Windows-এর মতো নয়, এই সংস্করণটিতে কোনো শক্তিশালী ডেটা পার্সিস্টেন্স ব্যবস্থা ছিল না, যা আরও দ্রুত ডেটা এক্সফিলট্রেশন-ভিত্তিক কোনো পদ্ধতি অথবা পরবর্তী কমান্ডের মাধ্যমে মাঝে মাঝে পার্সিস্টেন্স প্রয়োগের ইঙ্গিত দেয়।
সেফডিপ এবং ইলাস্টিক সিকিউরিটি ল্যাবস দ্বিতীয়-স্তরের পেলোডগুলো বিশ্লেষণ করে এই সিদ্ধান্তে পৌঁছেছে যে, ম্যাকওএস (সি++ ম্যাক-ও বাইনারি) এবং লিনাক্স (পাইথন স্ক্রিপ্ট)-এর জন্য তৈরি র্যাটগুলো একই কমান্ড সেট, সি২ প্রোটোকল, মেসেজ ফরম্যাট এবং কার্যপ্রণালী ব্যবহার করে । এই ধরনের বিশ্লেষণ সাধারণত ভাইরাসটোটাল-এর মতো স্ক্যানিং পরিষেবার উপর নির্ভর করে , যা স্যাম্পল এবং আইওসি-গুলোর মধ্যে সম্পর্ক স্থাপন সহজ করে।
সকল ক্ষেত্রে, প্রতিটি আক্রান্ত হোস্ট তাৎক্ষণিকভাবে সিস্টেমের তথ্য সংগ্রহ করত: ব্যবহারকারীর ডিরেক্টরি, ড্রাইভ রুট, সক্রিয় প্রসেস এবং অন্যান্য মেটাডেটা । এই তথ্য কমান্ড ও কন্ট্রোল সার্ভারে পাঠানো হতো এবং এজেন্টটি প্রায় ৬০ সেকেন্ডের একটি বীকন লুপ বজায় রেখে নতুন নির্দেশের জন্য অপেক্ষা করত, যার মধ্যে অতিরিক্ত স্ক্রিপ্ট চালানো বা মেমরিতে বাইনারি ফাইল প্রবেশ করানো অন্তর্ভুক্ত ছিল।
প্রচারের সময়কাল, উদ্দেশ্যসমূহ এবং উত্তর কোরিয়ার প্রতি দায়বদ্ধতা।
অ্যাক্সিওসের ক্ষতিকর সংস্করণগুলো একটি সতর্কভাবে নির্বাচিত সময়সীমার মধ্যে প্রায় তিন ঘণ্টার জন্য এনপিএম-এ উপলব্ধ ছিল। ক্ষতিগ্রস্ত প্যাকেজগুলো রবিবার মধ্যরাতের ঠিক আগে প্রকাশ করা হয়েছিল (এমন একটি সময় যা প্রতিরোধকারীদের প্রতিক্রিয়া দেখানোর জন্য সর্বাধিক সময় দিয়েছিল), এবং নিরাপত্তা সংস্থাগুলো কর্তৃপক্ষকে এই অস্বাভাবিক আচরণ সম্পর্কে সতর্ক করার পর সোমবার ভোরের মধ্যেই ঘটনাটি নিয়ন্ত্রণে আনা হয় ।
সেই তুলনামূলকভাবে স্বল্প সময়ের মধ্যে, হান্ট্রেস আক্রমণকারীর সার্ভারের সাথে সংযুক্ত হওয়া অন্তত ১৩৫টি সিস্টেম শনাক্ত করেছে । যেহেতু অ্যাক্সিওস প্রতি সপ্তাহে ৮০-১০০ মিলিয়নেরও বেশি ডাউনলোড রেকর্ড করে (বিভিন্ন সূত্র অনুসারে, কিছু সময়ে যা ৩০০ মিলিয়নেরও বেশি), তাই এই সংখ্যাটি সম্ভবত হিমশৈলের চূড়া মাত্র, যা কেবল সেইসব সিস্টেমের মধ্যেই সীমাবদ্ধ যেগুলো তাদের ডেটা প্রকাশকারী অ্যানালিটিক্স সংস্থাগুলোর নজরে আসে।
গুগল তার থ্রেট ইন্টেলিজেন্স টিমের মাধ্যমে এই আক্রমণের জন্য UNC1069 লেবেলযুক্ত একজন সন্দেহভাজন উত্তর কোরীয় হ্যাকারকে দায়ী করেছে । ইলাস্টিক সিকিউরিটি ল্যাবস এই অনুমানকে আরও শক্তিশালী করেছে, কারণ তারা ম্যাকওএস-এ প্রবেশ করানো RAT এবং ম্যান্ডিয়েন্ট দ্বারা আবিষ্কৃত ও একই থ্রেট গ্রুপের সাথে যুক্ত C++ ব্যাকডোর WAVESHAPER-এর মধ্যে একটি শক্তিশালী সাদৃশ্য খুঁজে পেয়েছে।
গুগল বিশ্লেষকরা জোর দিয়ে বলেছেন যে উত্তর কোরিয়া-সংশ্লিষ্ট গোষ্ঠীগুলো বছরের পর বছর ধরে সাপ্লাই চেইন আক্রমণ এবং ক্রিপ্টোকারেন্সি চুরির মতো কার্যকলাপে পারদর্শী হয়ে আসছে । এর ধরণটি সুসংগত: প্রথমে ডেভেলপমেন্ট অবকাঠামো, বহুল ব্যবহৃত লাইব্রেরি বা বিশ্বস্ত সফটওয়্যার হ্যাক করে, তারপর উচ্চ-মূল্যের সম্পদ, প্রাইভেট কী বা ক্রেডেনশিয়াল পরিচালনাকারী লক্ষ্যবস্তুর দিকে অগ্রসর হওয়া।
বেশ কয়েকটি প্রতিবেদনে আরও তুলে ধরা হয়েছে যে, আক্রমণটির মডারেশন এবং ডিজাইন একটি সুসমন্বিত দলের ইঙ্গিত দেয় : একই RAT-এর তিনটি সমান্তরাল বাস্তবায়ন (পাওয়ারশেল, সি++, এবং পাইথন), একটি সামঞ্জস্যপূর্ণ C2 প্রোটোকল, সমস্ত ভ্যারিয়েন্টের মধ্যে প্রায় অভিন্ন আচরণ, এবং কোনো চিহ্ন না রাখার জন্য একটি সুস্পষ্ট সেলফ-ক্লিনিং কৌশল। ইলাস্টিক জোর দিয়ে বলেছে যে এই সামঞ্জস্যতা কোনো তাৎক্ষণিক উদ্ভাবন থেকে অনেক দূরে, বরং একজন একক ডেভেলপার বা একটি দল কর্তৃক একটি শেয়ার করা ডিজাইন ডকুমেন্ট অনুসরণ করে কাজ করার দিকেই নির্দেশ করে।
সম্পূর্ণরূপে প্রযুক্তিগত দিকগুলোর বাইরে, এই মামলার সবচেয়ে উদ্বেগজনক বিষয়গুলোর মধ্যে একটি হলো কীভাবে প্রধান রক্ষণাবেক্ষণকারীর এনপিএম (npm) অ্যাকাউন্টটি হাইজ্যাক করা হয়েছিল। অ্যাক্সিওস (Axios)-এর ম্যানেজার নিজেই পরে ব্যাখ্যা করেন যে, তিনি তার প্রায় সমস্ত সার্ভিসে টু-ফ্যাক্টর অথেনটিকেশন চালু রেখেছিলেন , এবং তা সত্ত্বেও তিনি অজান্তেই অ্যাক্সেস দিয়ে দেন।
দলটির শেয়ার করা ময়নাতদন্ত বিশ্লেষণ অনুসারে, আক্রমণকারীরা তাদের বিশ্বাস অর্জনের জন্য এআই-চালিত টুলের সাহায্যে একটি অত্যন্ত সুপরিকল্পিত সোশ্যাল ইঞ্জিনিয়ারিং অভিযান চালিয়েছিল । তারা একটি কোম্পানির প্রতিষ্ঠাতার ছদ্মবেশ ধারণ করে, এর ভিজ্যুয়াল আইডেন্টিটি, ছবি এবং এমনকি কর্পোরেট ব্র্যান্ডিংও নকল করেছিল। তারা কোম্পানির লোগোসহ একটি আসল স্ল্যাক স্পেস, লিঙ্কডইনের সাথে সিঙ্ক করা পোস্টসহ চ্যানেল এবং এমনকি কর্মচারী ও অন্যান্য ওপেন-সোর্স সফটওয়্যার রক্ষণাবেক্ষণকারীদের ভুয়া প্রোফাইলও তৈরি করেছিল।
সেই পরিবেশে, তারা মাইক্রোসফট টিমস-এর মাধ্যমে একটি মিটিং নির্ধারণ করেন, যেখানে পেশাদারদের একটি পূর্ণাঙ্গ দল অংশগ্রহণ করছিল বলে মনে হচ্ছিল । মিটিং চলাকালীন, তারা একটি প্রযুক্তিগত সমস্যার ভান করে এবং জানায় যে তাদের সিস্টেমের একটি অংশ পুরোনো হয়ে গেছে। রক্ষণাবেক্ষণকারী টেকনিশিয়ান, এটিকে ভিডিও কনফারেন্সিং টুলটির সাথে সম্পর্কিত একটি বৈধ প্রয়োজন বলে ধরে নিয়ে, প্রস্তাবিত ফাইলটি ডাউনলোড ও ইনস্টল করেন।
প্রকৃতপক্ষে, সেই ফাইলটি ছিল একটি রিমোট অ্যাক্সেস ট্রোজান, যা আক্রমণকারীদের ভুক্তভোগীর ক্রেডেনশিয়াল হাতিয়ে নিতে এবং শেষ পর্যন্ত অ্যাক্সিওস (Axios) প্রকাশ করতে ব্যবহৃত এনপিএম (npm) অ্যাকাউন্টের নিয়ন্ত্রণ নিতে সাহায্য করেছিল । পুরো প্রক্রিয়াটি এতটাই সুপরিকল্পিত এবং বিশ্বাসযোগ্য খুঁটিনাটিসহ সাজানো ছিল যে, ভুক্তভোগী এটিকে "নিখুঁতভাবে সমন্বিত, পেশাদার এবং সম্পূর্ণ বিশ্বাসযোগ্য" বলে বর্ণনা করেছেন।
ঘটনাটির এই মানবিক দিকটি এটা স্পষ্ট করে দেয় যে, যখন উচ্চ-স্তরের সোশ্যাল ইঞ্জিনিয়ারিংয়ের সঙ্গে ভিজ্যুয়াল ইমপার্সোনেশন, ডিপফেক বা কোনো প্রতিষ্ঠানের নিখুঁত ক্লোনিং যুক্ত হয় , তখন টু-ফ্যাক্টর অথেনটিকেশনের (2FA) মতো প্রযুক্তিগত পদক্ষেপও অপর্যাপ্ত হয়ে পড়ে। এক্ষেত্রেও, সবচেয়ে দুর্বল সংযোগস্থলটি হলো মানুষের পারস্পরিক যোগাযোগ।
Axios ব্যবহারকারী সংস্থা এবং ডেভেলপারদের উপর প্রভাব
বাস্তব দৃষ্টিকোণ থেকে, মূল সমস্যা হলো কারা প্রকৃতপক্ষে ক্ষতিগ্রস্ত হয়েছে তা নির্ধারণ করা। যে কোনো সংস্থা যারা [email protected] বা [email protected] উপলব্ধ থাকার সময়কালে ইনস্টল করেছে, তাদের ধরে নেওয়া উচিত যে যে মেশিন বা পাইপলাইনটি ইনস্টলেশনটি সম্পন্ন করেছে তা হয়তো অরক্ষিত হয়ে পড়েছে ।
StepSecurity, Aikido, Huntress, এবং Elastic-এর মতো সংস্থাগুলির সুপারিশগুলি দ্ব্যর্থহীন। সন্দেহ হলে, কেবল "node_modules ডিলিট করে আবার ইনস্টল করা " নয়, বরং একটি সক্রিয় পদক্ষেপ নেওয়া প্রয়োজন। বিচক্ষণ পদক্ষেপ হলো বিশ্বস্ত ইমেজ থেকে ক্ষতিগ্রস্ত মেশিন বা এনভায়রনমেন্টগুলি পুনর্নির্মাণ করা এবং CI/CD লগগুলি সাবধানে পর্যালোচনা করে শনাক্ত করা যে কোন জব বা পাইপলাইনগুলি আপোসকৃত সংস্করণগুলি চালিয়ে থাকতে পারে।
এছাড়াও, RAT ঐ নোডগুলো থেকে যে সমস্ত ক্রেডেনশিয়াল এবং সিক্রেট অ্যাক্সেস করে থাকতে পারে, সেগুলোকে রোটেট করা অত্যন্ত জরুরি : যেমন npm টোকেন, ক্লাউড প্রোভাইডার কী, পাইপলাইন সিক্রেট, ডাটাবেস ক্রেডেনশিয়াল, SSH কী, ইত্যাদি। এই ধরনের আক্রমণের পর এই ক্রেডেনশিয়ালগুলো প্রচলনে রেখে দিলে, সাইলেন্ট ল্যাটারাল মুভমেন্টের পথ খোলা থাকে।
প্রযুক্তিগতভাবে, দলগুলোর উচিত তাদের লক ফাইলগুলো (package-lock.json, pnpm-lock.yaml, yarn.lock) পর্যালোচনা করে Axios এবং plain-crypto-js-এর ক্ষতিগ্রস্ত সংস্করণগুলোর কোনো উল্লেখ আছে কিনা তা দেখা । যদি এই উপাদানগুলো পাওয়া যায়, তাহলে পরবর্তী পদক্ষেপ হলো প্রভাবিত সিস্টেমগুলোতে সম্ভাব্য RAT আর্টিফ্যাক্টগুলোর জন্য পরিদর্শন করা: macOS-এ /Library/Caches/com.apple.act.mond, Windows-এ %PROGRAMDATA%\wt.exe এবং %PROGRAMDATA%\system.bat, অথবা Linux-এ /tmp/ld.py।
এর পাশাপাশি, অ্যাক্সিওস (Axios)-এর নিরাপদ সংস্করণ, যেমন ১.১৪.০ এবং ০.৩০.৩, স্পষ্টভাবে সেট করার এবং ট্রানজিটিভ ডিপেন্ডেন্সিগুলো যাতে অনাকাঙ্ক্ষিত সংস্করণে রেজলভ না হয়, তা প্রতিরোধ করতে ওভাররাইড বা রেজোলিউশন ব্যবহার করার পরামর্শ দেওয়া হচ্ছে । sfrclakcom ডোমেইনে বহির্গামী ট্র্যাফিক ব্লক করাও একটি বিচক্ষণ প্রতিরোধমূলক ব্যবস্থা, অন্তত যতক্ষণ পর্যন্ত আক্রমণের সম্পূর্ণ পরিধি বিশ্লেষণ করা হচ্ছে।
সফটওয়্যার সরবরাহ শৃঙ্খলের জন্য নিরাপত্তা শিক্ষা
অ্যাক্সিওস-এর ঘটনাটি কোনো বিচ্ছিন্ন ঘটনা নয়, বরং এটি সাপ্লাই চেইন আক্রমণের একটি শৃঙ্খলের আরেকটি অংশ, যার মধ্যে সোলারউইন্ডস, কাসেয়া, 3CX, পলিফিল.আইও-এর মতো ঘটনা এবং লগ৪জে-তে ব্যবহৃত দুর্বলতাগুলোও অন্তর্ভুক্ত। মূল ধারণাটি সবসময় একই থাকে: একটি একটি করে মেশিন আক্রমণ করার চেষ্টা না করে, ব্যাপক ব্যবহৃত ও বিশ্বস্ত কোনো কম্পোনেন্টকে হ্যাক করে তার নাগাল সর্বোচ্চ করা ।
বিশেষজ্ঞদের কাছ থেকে সবচেয়ে বেশিবার উচ্চারিত শিক্ষাগুলোর মধ্যে একটি হলো, বিশ্বাসযোগ্যতা শুধুমাত্র কোনো লাইব্রেরির জনপ্রিয়তা বা রক্ষণাবেক্ষণকারীর খ্যাতির উপর নির্ভর করতে পারে না । যদি রিলিজ চ্যানেল (যেমন npm অ্যাকাউন্ট, CI/CD পাইপলাইন, বিল্ড ইনফ্রাস্ট্রাকচার) হ্যাক হয়, তবে এর মাধ্যমে প্রকাশিত প্রতিটি জিনিসই সেই ঝুঁকির শিকার হয়। ম্যানুয়াল কোড রিভিউও যথেষ্ট নয়, যদি ম্যালওয়্যার ট্রানজিটিভ ডিপেন্ডেন্সির মধ্যে লুকিয়ে থাকে এবং এক্সিকিউশনের পর নিজেকে মুছে ফেলে।
এটিও তুলে ধরা হয়েছে যে, ডিপেন্ডেন্সি আপডেটের "ডিফল্ট গতি" আক্রমণের ঝুঁকির দিক থেকে একটি মূল্য দিয়ে থাকে । সর্বদা স্বয়ংক্রিয়ভাবে সর্বশেষ সংস্করণ গ্রহণ করা অত্যন্ত সুবিধাজনক, কিন্তু এটি একটি ক্ষতিকারক আপডেটকে কয়েক মিনিটের মধ্যে ছড়িয়ে পড়ার সুযোগ করে দেয়। কিছু সংস্থা ইতিমধ্যেই এমন নীতি বিবেচনা করছে, যেমন—নতুন সংস্করণটি গ্রহণের আগে সেটিকে একটি নির্দিষ্ট সময় ধরে ইকোসিস্টেমে থাকার শর্ত আরোপ করা, অথবা গুরুত্বপূর্ণ প্যাকেজের পরিবর্তনগুলোকে অতিরিক্ত ম্যানুয়াল পর্যালোচনার অধীনে আনা।
ডেভেলপমেন্ট ইনফ্রাস্ট্রাকচারের ক্ষেত্রে, CI/CD এনভায়রনমেন্টগুলোকে অত্যন্ত সংবেদনশীল সম্পদ হিসেবে বিবেচনা করতে হবে । ডিপেন্ডেন্সি ইনস্টলেশনের সময় চালানো যেকোনো RAT প্রায় নিশ্চিতভাবেই পাইপলাইন সিক্রেট এবং অন্যান্য এনভায়রনমেন্টে অ্যাক্সেস চাইবে। এই নোডগুলোকে বিভক্ত করা, আরও নিবিড়ভাবে পর্যবেক্ষণ করা এবং পর্যায়ক্রমে তাদের সিক্রেটগুলো পরিবর্তন করা এখন আর কোনো 'আদর্শ' সুপারিশ নয়, বরং একটি অপরিহার্য বিষয়।
অবশেষে, এই ধরনের আক্রমণ শনাক্ত করার জন্য একাধিক উৎস থেকে তথ্য একত্রিত করার প্রয়োজন হয়: ইনস্টল করা সংস্করণ, লকফাইল, অপারেটিং সিস্টেমের নিরাপত্তা লঙ্ঘনের সূচক এবং নেটওয়ার্ক টেলিমেট্রি । সফটওয়্যার বিল অফ মেটেরিয়ালস (SBOM) তৈরি ও পরিচালনা করে এমন টুলগুলো দ্রুত খুঁজে বের করতে সাহায্য করে যে কোন প্রকল্পে কোন প্যাকেজ ব্যবহৃত হচ্ছে, যা এই ধরনের ব্যাপক সতর্কতা সক্রিয় হলে অত্যন্ত গুরুত্বপূর্ণ।
অ্যাক্সিওসের সাথে এই পুরো ঘটনাটি এটাই তুলে ধরে যে, ডিপেন্ডেন্সি ইকোসিস্টেম যতই পরিণত এবং সুসংহত মনে হোক না কেন, তা এখনও বিশ্বাস এবং নিরন্তর সতর্কতার উপর ব্যাপকভাবে নির্ভরশীল। আপাতদৃষ্টিতে নিরীহ একটি লাইব্রেরি, যা একজন ব্যক্তি দ্বারা পরিচালিত হয় এবং একটি সুপরিকল্পিত সোশ্যাল ইঞ্জিনিয়ারিং আক্রমণের শিকার হয়, তা কয়েক ঘণ্টার মধ্যেই সব আকারের কোম্পানি, ফ্রিল্যান্সার এবং প্রতিষ্ঠানের বিরুদ্ধে ক্রস-প্ল্যাটফর্ম RAT (র্যান্ডম অ্যাটাক) প্রয়োগের একটি বৈশ্বিক মাধ্যমে পরিণত হতে পারে । পাবলিশিং অ্যাকাউন্ট, পাইপলাইন এবং গুরুত্বপূর্ণ ডিপেন্ডেন্সিগুলোর উপর নিয়ন্ত্রণ জোরদার করা এখন আর কোনো ঐচ্ছিক সেরা অনুশীলন নয়, বরং এমন একটি পরিবেশে ক্রমাগত উন্নয়নের জন্য এটি একটি পূর্বশর্ত, যেখানে আক্রমণকারীরা ক্রমশ ধৈর্যশীল, কৌশলী এবং উন্নততর সরঞ্জামে সজ্জিত।

