AI কোডিং অ্যাসিস্ট্যান্টগুলো অনেক আগেই সাধারণ অটো-কমপ্লিট উইজেট হওয়া বন্ধ করে দিয়েছে। তারা আপনার রিপোজিটরি ইনডেক্স করে, এনভায়রনমেন্ট ভেরিয়েবল পড়ে, শেল কমান্ড সাজেস্ট করে এবং আপনার টার্মিনালে সমাধান বাতলে দেয়। তারা আপনার সোর্স কোড, লোকাল টোকেন, ক্লাউড CLI কনফিগারেশন এবং আপনার SSH কী-এর মতো একই মেমরি স্পেসে অবস্থান করে। এই নৈকট্য তাদের সরাসরি আপনার অ্যাটাক সারফেসের (attack surface) অংশ করে তোলে, যা কোনো তাত্ত্বিক বিষয় নয়।
বেশিরভাগ টিমই তাড়াহুড়ো করে এই টুলগুলো গ্রহণ করেছে। একজন ডেভেলপার একটি এক্সটেনশন ইনস্টল করেন, একটি পার্সোনাল অ্যাক্সেস টোকেন দিয়ে অথেন্টিকেট করেন এবং AI-জেনারেটেড সাজেশন গ্রহণ করতে শুরু করেন। সিকিউরিটি রিভিউগুলো খুব কমই এর সাথে তাল মেলাতে পারে। সাম্প্রতিক দুটি হুমকি, Djinn Stealer এবং ChocoPoC, স্পষ্টভাবে দেখায় যে কেন এই ব্যবধানটি বিপজ্জনক।
সেই প্রতিবেশী যাকে আপনি যাচাই করতে ভুলে গেছেন
আপনার অ্যাসিস্ট্যান্ট আসলে কোথায় অবস্থান করছে তা নিয়ে ভাবুন। আপনি যদি GitHub Copilot, Cursor, Continue বা এই জাতীয় কোনো টুল ব্যবহার করেন, তবে সম্ভবত আপনার খোলা ফাইল, প্রজেক্ট স্ট্রাকচার এবং কখনও কখনও আপনার সম্পূর্ণ লোকাল ফাইল সিস্টেম পড়ার অ্যাক্সেস তাদের আছে। তারা ডিস্কে অনুমানযোগ্য স্থানে অথেন্টিকেশন টোকেন সংরক্ষণ করে। এটি আপনার IDE-র ভেতরে চলে, যা নিজেই আপনার ইউজার পারমিশন নিয়ে চলে। এর মানে হলো, কোনো ম্যালওয়্যার যদি আপনার ওয়ার্কস্টেশনটি দখল করে নেয়, তবে তাকে ক্রেডেনশিয়াল (credentials) খোঁজার জন্য অন্ধভাবে ঘুরে বেড়াতে হবে না। AI অ্যাসিস্ট্যান্ট ইতিমধ্যেই সমস্ত গুরুত্বপূর্ণ কী (keys) একটি সুবিধাজনক স্থানে সংগ্রহ করে রেখেছে।
এটি কোনো কাল্পনিক আর্কিটেকচারাল ত্রুটি নয়। Djinn Stealer ঠিক এই লেআউটটিকেই কাজে লাগানোর জন্য তৈরি করা হয়েছে। এটি বিশেষভাবে ডেভেলপারদের ক্রেডেনশিয়াল এবং AI টুল সেশনগুলোকে টার্গেট করে। পুরো ফাইল সিস্টেমের প্রতিটি কোণ খোঁজার পরিবর্তে, এটি আপনার কোডিং ওয়ার্কফ্লো চালিত টোকেনগুলোর দিকে নজর দেয়। আপনার অ্যাসিস্ট্যান্ট যদি GitHub, GitLab বা কোনো ক্লাউড প্রোভাইডারের সাথে অথেন্টিকেটেড থাকে, তবে সেই সেশনটি চুরি করা একজন আক্রমণকারীর জন্য কোডের চেয়েও বেশি কিছু। এটি তাদের আপনার পরিচয় দিয়ে দেয়। তারা আপনার নামে কমিট পুশ করতে পারে, প্রাইভেট রিপোজিটরি পড়তে পারে এবং আপনি প্রতিদিন যে API ব্যবহার করেন সেগুলো পরীক্ষা করতে পারে।
Djinn Stealer: আপনার সাম্রাজ্যের চাবিকাঠি শিকার করা
যখন Djinn Stealer কোনো মেশিনে প্রবেশ করে, তখন এটি একজন চতুর চোরের মতো আচরণ করে যে জানে কোন ড্রয়ারে অতিরিক্ত চাবি রাখা আছে। এটি AI টুল কনফিগারেশন ডিরেক্টরি, ব্রাউজার সেশন স্টোর এবং ডেভেলপারদের মাসের পর মাস কাজের মাধ্যমে জমে থাকা ক্রেডেনশিয়াল ফাইলগুলো খুঁজে বের করে। এই স্টিলারটি জানে যে আধুনিক ডেভেলপমেন্ট এনভায়রনমেন্টগুলো অ্যাক্সেসকে কেন্দ্রীভূত করে। আপনার AI অ্যাসিস্ট্যান্টের একটি OAuth টোকেন প্যাকেজ রেজিস্ট্রি, কন্টেইনার রিপোজিটরি এবং ইনফ্রাস্ট্রাকচার API-তে অ্যাক্সেসের সাথে মিলে যেতে পারে।
যখন ডেভেলপাররা লোকালি proof-of-concept কোড পরীক্ষা করেন, তখন ঝুঁকি বহুগুণ বেড়ে যায়। আপনি একজন সিকিউরিটি রিসার্চারের কাছ থেকে একটি আকর্ষণীয় রিপোজিটরি ক্লোন করেন, এটি কীভাবে কাজ করে তা দেখার জন্য একটি স্ক্রিপ্ট চালান এবং সেই স্ক্রিপ্টটি ব্যাকগ্রাউন্ডে নিঃশব্দে একটি ক্রেডেনশিয়াল হারভেস্টার (credential harvester) কার্যকর করে। যেহেতু আপনার AI অ্যাসিস্ট্যান্টের টোকেনগুলো আপনার হোম ডিরেক্টরির স্ট্যান্ডার্ড পাথে থাকে, তাই আপনি README পড়া শেষ করার আগেই স্টিলারটি সেগুলো পাচার করে দিতে পারে। সবচেয়ে খারাপ দিক হলো, এই টোকেনগুলো প্রায়শই কর্পোরেট SSO বাইপাস করে ফেলে কারণ এগুলো প্রোডাকশন সিস্টেমের জন্য নয়, বরং প্রোডাক্টিভিটি টুলের জন্য তৈরি করা হয়েছিল।
ChocoPoC: যখন ডিপেন্ডেন্সি মিথ্যা বলে
Djinn Stealer যখন বাড়ি লুট করে, ChocoPoC তখন চিঠির স্লটের মাধ্যমে চুপিচুপি ভেতরে ঢোকে। এই হুমকিটি Python ডিপেন্ডেন্সির ভেতরে ক্ষতিকারক পাথ (malicious paths) লুকিয়ে রাখে, বিশেষ করে frint এবং skytext নামক প্যাকেজগুলোর মধ্যে। পেলোডটি (payload) দৃশ্যমান স্ক্রিপ্টে থাকে না যেখানে সাধারণ কোনো রিভিউ এটি ধরে ফেলতে পারে। পরিবর্তে, এটি নিজেকে আরও গভীরে লুকিয়ে ফেলে,
