আমি কীভাবে একটি গোপন ইনজেকশন ট্র্যাক করলাম এবং এনভায়রনমেন্টকে সুরক্ষিত করলাম

আপনি একটি ম্যালওয়্যার স্ক্যান চালালেন। আপনি কোর ফাইলগুলো পরিবর্তন করলেন। আপনি প্লাগইন আপডেট করলেন এবং পাসওয়ার্ড পরিবর্তন করলেন। সাইটটি পরিষ্কার দেখাচ্ছে।

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

এটি হলো পারসিস্টেন্সের (persistence) দুঃস্বপ্ন।

সাধারণ সিকিউরিটি প্লাগইনগুলো প্রায়ই ব্যর্থ হয়। চতুর আক্রমণকারীরা কেবল একটি পেলোড (payload) ফেলে যায় না। তারা বৈধ ফাইলের ভেতরে লুকিয়ে থাকা নেস্টেড ব্যাকডোর (nested backdoors) তৈরি করে।

আমি সম্প্রতি এমন একটি কেস হ্যান্ডেল করেছি যেখানে তিনটি ক্লিনআপ প্রচেষ্টা ব্যর্থ হয়েছিল। লক্ষণগুলো ছিল সুনির্দিষ্ট:

• ঘোস্ট অ্যাডমিন (Ghost Admins): প্রতি ৪৮ ঘণ্টা অন্তর এলোমেলো নামে নতুন অ্যাকাউন্ট দেখা দিচ্ছিল। • কন্ডিশনাল রিডাইরেক্ট (Conditional Redirects): শুধুমাত্র সার্চ ইঞ্জিন থেকে আসা নতুন ভিজিটররা ক্ষতিকারক সাইটটি দেখতে পাচ্ছিল। ডেভেলপাররা কিছুই দেখতে পাচ্ছিলেন না।

টিম ইতিমধ্যে WordPress কোর ওভাররাইট করেছিল এবং প্লাগইনগুলো আপডেট করেছিল। স্ক্যানারগুলো কিছুই দেখাতে পারছিল না। ম্যালওয়্যারটি হাইড্রার (hydra) মতো বারবার পুনরুত্থিত হচ্ছিল।

আক্রমণকারীর ডাটাবেসে বা একটি ক্রন জবে (cron job) একটি পারসিস্টেন্স মেকানিজম ছিল। অটোমেটেড স্ক্যানারগুলো এটি ধরতে পারেনি কারণ কোডটি ছিল কাস্টম।

সত্য উদ্ঘাটন করতে আমি কমান্ড লাইন ব্যবহার করেছি।

প্রথমে, আমি checksum ব্যবহার করে কোর ফাইলগুলো যাচাই করেছি: wp core verify-checksums

কোর ফাইলগুলো পরিষ্কার ছিল। ব্যাকডোরটি wp-content অথবা ডাটাবেসে ছিল।

আমি গত ৭ দিনে পরিবর্তিত ফাইলগুলো খুঁজলাম: find . -type f -mtime -7 -name "*.php"

এরপর, আমি eval() বা base64_decode() এর মতো সন্দেহজনক ফাংশনগুলো খুঁজলাম: grep -rnw './wp-content/' -e 'eval(' -e 'base64_decode('

আমি একটি পুরনো প্রিমিয়াম প্লাগইনের ভেতরে একটি লুকানো ফাইল খুঁজে পেলাম। কিন্তু প্লাগইনটি ডিলিট করলেও সংক্রমণ বন্ধ হয়নি।

আক্রমকারী wp_options টেবিলের cron অপশনের নিচে একটি ট্রিগার রেখে দিয়েছিল। প্রতিবার যখন WordPress cron চলত, এটি একটি নতুন পেলোড নিয়ে আসত। কোর ফাইলগুলো পরিষ্কার করার কয়েক মিনিটের মধ্যেই এটি পুনরায় সংক্রমণ ঘটাচ্ছিল।

এটি ঠিক করতে আপনাকে একটি কঠোর ক্রম অনুসরণ করতে হবে:

  1. ডাটাবেস স্ক্রাবিং (Database Scrubbing)
  1. ফাইল সিস্টেম পার্জ (File System Purge)
  1. ক্রেডেনশিয়াল রোটেশন (Credential Rotation)

পুনরাবৃত্তি রোধ করতে আমি তিনটি গার্ডরেল (guardrails) বা সুরক্ষা ব্যবস্থা চালু করেছি:

• এজ প্রোটেকশন: আমি সংবেদনশীল ডিরেক্টরিগুলোতে সন্দেহজনক POST রিকোয়েস্ট ব্লক করতে Cloudflare WAF ব্যবহার করেছি। • ফাইল পারমিশন: আমি ডিরেক্টরি স্ট্রাকচার লক করেছি। ডিরেক্টরিগুলোর পারমিশন 755 এবং ফাইলগুলোর 644 করে দিয়েছি। আমি wp-config.php-কে রিড-অনলি (read-only) করে দিয়েছি। • এডিটিং ডিজেবল করা: আমি wp-config.php-তে DISALLOW_FILE_EDIT এবং DISALLOW_FILE_MODS যোগ করেছি। এটি ড্যাশবোর্ডের মাধ্যমে যে কেউ কোড পরিবর্তন করা থেকে বিরত রাখে।

কোনো প্লাগইনের সবুজ টিক মার্ক দেখে অন্ধভাবে বিশ্বাস করবেন না। ধরে নিন যে একটি নিরাপত্তা লঙ্ঘন (breach) ঘটেছে। আপনার সাইটকে ভেতর থেকে সুরক্ষিত করুন।

উৎস: https://dev.to/jahidshah/how-i-tracked-a-stealthy-injection-and-hardened-the-environment-4clm