𝗬𝗼𝘂𝗿 𝗥𝗲𝗽𝗼 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗜𝘀 𝗔𝗻 𝗔𝘁𝘁𝗮𝗰𝗸 𝗦𝘂𝗿𝗳𝗮𝗰𝗲 𝗡𝗼𝘄
AI কোডিং সিকিউরিটি মানে কেবল একটি মডেলকে খারাপ কোড লেখা থেকে আটকানো নয়।
আসল ঝুঁকি লুকিয়ে আছে এজেন্টটি লেখার আগে কী পড়ছে তার মধ্যে। আপনার রিপোজিটরি এখন আর কেবল কোডের জায়গা নয়; এটি এখন AI এজেন্টদের জন্য একটি ইনপুট স্ট্রিম।
আপনার রিপোর সবকিছুই একটি এজেন্টের জন্য স্টিয়ারিং ম্যাটেরিয়াল (steering material) বা নির্দেশিকা হয়ে উঠতে পারে:
- পুরনো README ফাইল
- পুরনো বা অপ্রাসঙ্গিক মাইগ্রেশন নোট
- সেকেলে বা পুরনো ডকুমেন্টেশন
- প্রজেক্টের লুকানো নিয়মাবলী (conventions)
- লোকাল ইনস্ট্রাকশন ফাইল
- ডিপেন্ডেন্সি স্ক্রিপ্ট এবং শেল হুক (shell hooks)
ডেভেলপাররা প্রায়শই এই ফাইলগুলোকে ক্ষতিকারক নয় এমন অপ্রয়োজনীয় আবর্জনা হিসেবে গণ্য করেন। একটি AI এজেন্ট সামাজিক প্রেক্ষাপট (social context) বোঝে না। এটি দেখে টেক্সট, টুলস এবং প্যাটার্ন। আপনার ডকুমেন্টেশন যদি পুরনো বা অগোছালো হয়, তবে এজেন্ট সেই অগোছালো অবস্থাকেই মানদণ্ড হিসেবে ধরে নেবে।
খারাপ কনটেক্সট দুই ধরনের হতে পারে:
১. বিরক্তিকর ত্রুটি (Boring errors):
- পুরনো সেটআপ ইনস্ট্রাকশন
- ডিপ্রেকেটেড (deprecated) API ব্যবহার করা উদাহরণ
- পুরনো আর্কিটেকচার নোট
২. অ্যাডভারসারিয়াল অ্যাটাক (Adversarial attacks):
- ফাইলের ভেতরে প্রম্পট ইনজেকশন (Prompt injection)
- ক্ষতিকারক ডিপেন্ডেন্সি স্ক্রিপ্ট
- বিষাক্ত (poisoned) উদাহরণ যা কোডকে অনিরাপদ প্যাটার্নের দিকে ঠেলে দেয়
যখন আপনি একটি এজেন্টকে টেস্ট চালানো, ফাইল খোঁজা বা পুল রিকোয়েস্ট (pull request) খোলার ক্ষমতা দেন, তখন আপনি এর ক্ষতির পরিধি (blast radius) বাড়িয়ে দেন। একটি হুক সিস্টেম এখন আর কেবল প্রোডাক্টিভিটি টুল নয়; এটি একটি অটোমেশন। আপনাকে এটিকে অটোমেশনের মতোই বিবেচনা করতে হবে।
আপনার ওয়ার্কফ্লো সম্পর্কে এই প্রশ্নগুলো করুন:
- কে একটি হুক এডিট করতে পারে?
- এজেন্ট কোন এনভায়রনমেন্ট ভেরিয়েবলগুলো দেখতে পারে?
- এজেন্ট কি ডেভেলপারের ক্রেডেনশিয়াল (credentials) উত্তরাধিকারসূত্রে পায়?
- টুলটি কি রিপোর বাইরে কিছু লেখে?
এজেন্টদের জাদুকরী টেক্সট বক্স হিসেবে ভাববেন না। তাদের ডেভেলপার ইনফ্রাস্ট্রাকচার হিসেবে বিবেচনা করুন।
আপনার এজেন্টিক ওয়ার্কফ্লো (agentic workflow) কীভাবে সুরক্ষিত করবেন:
- স্কোপ সীমিত করুন: যদি এজেন্টের মাত্র তিনটি ফাইলের প্রয়োজন হয়, তবে পুরো প্রজেক্টের দিকে তা নির্দেশ করবেন না।
- কনটেক্সট পরিষ্কার করুন: পুরনো ডকুমেন্টেশন এবং ইনস্ট্রাকশন মুছে ফেলুন বা ঠিক করুন।
- এক্সিকিউশন কঠোর করুন: ঝুঁকিপূর্ণ কাজগুলো একটি স্যান্ডবক্সের (sandbox) মধ্যে চালান। ক্রেডেনশিয়ালগুলোর পরিধি সীমিত রাখুন।
- স্বচ্ছতা নিশ্চিত করুন: এজেন্ট ঠিক কী পড়েছে, কোন টুলগুলো কল করেছে এবং কোন কমান্ডগুলো চালিয়েছে তা স্পষ্টভাবে জানুন।
একটি AI এজেন্ট হলো শেল অ্যাক্সেস এবং দ্রুত টাইপিং ক্ষমতা সম্পন্ন একজন জুনিয়র ডেভেলপারের মতো। আপনি প্রথম দিনেই একজন নতুন জুনিয়র ডেভেলপারকে পূর্ণ প্রোডাকশন ক্রেডেনশিয়াল দেবেন না। আপনি তাকে ছোট ছোট কাজ, পরিষ্কার কনটেক্সট এবং সীমিত পারমিশন দেবেন।
আপনার এজেন্টদের সাথেও একইভাবে আচরণ করুন।
Source: https://dev.to/hefty_69a4c2d631c9dd70724/your-repo-context-is-an-attack-surface-now-5dhj
Optional learning community: https://t.me/GyaanSetuAi