AI ৭২ ঘণ্টার মধ্যে ৩০০টি WordPress প্লাগইন বাগ খুঁজে পেয়েছে
AI দ্রুত বাগ খুঁজে পায়। এটি দ্রুত কোডও লিখতে পারে। এটি প্লাগইন ডেভেলপারদের জন্য একটি বিপজ্জনক ব্যবধান তৈরি করছে।
সিকিউরিটি গবেষকরা WordPress ইকোসিস্টেমে ৩০০টিরও বেশি গুরুত্বপূর্ণ zero-day vulnerabilities খুঁজে বের করতে AI ব্যবহার করেছেন। তারা এটি মাত্র ৭২ ঘণ্টার মধ্যে সম্পন্ন করেছেন।
সমস্যাটি হলো vibe coding। এটি তখন ঘটে যখন ডেভেলপাররা LLM দ্বারা তৈরি করা কোড প্রকাশ করেন যা তারা নিজে অডিট করতে পারেন না। এর ফলে একটি প্লাগইনে ১০০টি আলাদা সিকিউরিটি সমস্যা দেখা দিয়েছিল।
AI আপনার দুটি পুরনো সুরক্ষা কবচ সরিয়ে দিচ্ছে: সময় এবং অস্পষ্টতা (obscurity)।
আক্রমণকারীরা এখন ছিদ্র বা ত্রুটি খুঁজে পেতে AI ব্যবহার করছে। ডেভেলপাররা কোড লিখতে AI ব্যবহার করছেন। এই কোডগুলো প্রায়শই নিচের মতো সিকিউরিটি ধাপগুলো এড়িয়ে যায়:
- Escaping data
- Capability checks
- Nonce validation
একটি পাবলিক বাগ রিপোর্ট থেকে গণহারে এর অপব্যবহার (mass exploitation) হওয়ার মধ্যবর্তী সময় এখন মাত্র পাঁচ ঘণ্টা। এটি প্রতিক্রিয়া দেখানোর মতো যথেষ্ট সময় নয়। এটি এমন একটি দৌড় যেখানে আপনি হেরে যাবেন।
আমি এটি কঠিন অভিজ্ঞতার মাধ্যমে শিখেছি। আমি একটি AI চ্যাটবট প্লাগইন তৈরি করেছিলাম। একটি সিকিউরিটি রিভিউতে আমার কোডে ৩৫টি বাগ পাওয়া যায়। এর মধ্যে একটি ছিল HTML injection।
আমি একটি ভুল করেছিলাম। আমি AI-এর আউটপুটের ওপর ভরসা করেছিলাম। আমি ভেবেছিলাম যেহেতু একটি মডেল টেক্সটটি তৈরি করেছে, তাই এটি নিরাপদ। কিন্তু তা ছিল না। মডেলের আউটপুটে ব্যবহারকারী এবং বাহ্যিক সাইট থেকে আসা ডেটা থাকে। আপনাকে এটিকে অনির্ভরযোগ্য হিসেবে বিবেচনা করতে হবে।
আমি আমার কাজের পদ্ধতি পরিবর্তন করেছি। কোডটি কাজ করছে বলেই আমি আর এটিকে নিরাপদ মনে করি না। আমি AI-এর লেখা প্রতিটি অংশ তিনটি ক্ষেত্রে ম্যানুয়ালি রিভিউ করি:
- Input: কীভাবে ডেটা সিস্টেমে প্রবেশ করে।
- Output: কীভাবে ডেটা সিস্টেম থেকে বের হয়।
- Permissions: কে এই কাজটি করতে পারে।
আউটপুটের ক্ষেত্রে, আমি এখন esc_html এবং wp_kses-এর মতো ফাংশন ব্যবহার করি। প্রতিটি ডাটাবেস রাইটের জন্য আমি $wpdb->prepare ব্যবহার করি। প্রতিটি এন্ট্রি পয়েন্টে আমি current_user_can দিয়ে পারমিশন চেক করি।
আসল সংকট শুধু বাগ নিয়ে নয়। আসল সংকট হলো রেসপন্স টাইম।
- ৫২% ডেভেলপার একটি বাগ পাবলিক হওয়ার আগে প্যাচ (patch) প্রকাশ করেন না।
- প্রকাশ করা বাগগুলোর মধ্যে ৪৬টির কোনো সমাধানই নেই।
বেশিরভাগ ডেভেলপারই একক লেখক (solo authors)। দ্রুত বাগ ফিক্স করার জন্য তারা কোনো পারিশ্রমিক পান না। AI এই ব্যবধানটিকে আরও স্পষ্ট করে তুলেছে।
আপনি যদি প্লাগইন প্রকাশ করেন, তবে শুধু সাবধানে লিখে আশাবাদী হয়ে বসে থাকবেন না। ধরে নিন যে আক্রমণকারীরা কয়েক সেকেন্ডের মধ্যেই আপনার ত্রুটিগুলো খুঁজে বের করবে।
এই সুরক্ষা ব্যবস্থাগুলো গড়ে তুলুন:
- সমস্ত ইনপুট, আউটপুট এবং পারমিশন ম্যানুয়ালি রিভিউ করুন।
- মডেলের সমস্ত রেসপন্স স্যানিটাইজ (Sanitize) করুন।
- মানুষ যাতে আপনাকে ব্যক্তিগতভাবে বাগ রিপোর্ট করতে পারে তার ব্যবস্থা করুন।
আপনার readme ফাইলে একটি সাধারণ সিকিউরিটি কন্টাক্ট রাখা একটি ভালো শুরু। একটি বাগ জনসমক্ষে হুমকি হয়ে ওঠার আগেই আপনার কাছে রিপোর্ট করার জন্য একটি মাধ্যম থাকা প্রয়োজন।
