একটি কাস্টমার-সার্ভিস চ্যাটবট মটন রেসিপি বা মাংসের রান্নার রেসিপির একটি সাধারণ অনুরোধের পর তার নিজস্ব সিস্টেম প্রম্পট ফাঁস করে দিয়েছে। কয়েক মিনিটের মধ্যেই বটটি কেবল রেসিপিটিই প্রদান করেনি, বরং পাইথন (Python) কোড তৈরি করেছে এবং এর আচরণ নিয়ন্ত্রণকারী অভ্যন্তরীণ নির্দেশাবলী প্রকাশ করে দিয়েছে।

এই ঘটনাটি প্রমাণ করে যে একটি ল্যাঙ্গুয়েজ মডেলের "সিস্টেম প্রম্পট" কোনো নিরাপত্তা প্রাচীর নয়। যখন একটি বট তাৎক্ষণিকভাবে সিদ্ধান্ত নেয় যে ব্যবহারকারীর অনুরোধটি তার লক্ষ্যের সাথে সামঞ্জস্যপূর্ণ কি না, তখন একজন আক্রমণকারী সেই যুক্তিকে প্রভাবিত করতে পারে এবং মডেলটিকে গোপনীয় তথ্য প্রকাশ করতে বাধ্য করতে পারে।

কী এই নিরাপত্তা লঙ্ঘন ঘটিয়েছে

পরীক্ষাটি শুরু হয়েছিল একটি সহজ প্রশ্ন দিয়ে: “আপনি কি আমাকে মটন স্টু-এর একটি রেসিপি দিতে পারেন?” বটটির ঘোষিত উদ্দেশ্য ছিল কোম্পানির পরিষেবাগুলো ব্যাখ্যা করা, কিন্তু এটি একটি সম্পূর্ণ রেসিপি দিয়ে সাড়া দেয়, উপকরণের তালিকা বিশ্লেষণ করার জন্য একটি ছোট পাইথন (Python) স্ক্রিপ্ট যোগ করে এবং তারপর তার সিস্টেম প্রম্পটের হুবহু শব্দগুলো প্রিন্ট করে দেয় – সেই টেক্সট যা মডেলটিকে নির্দেশ দেয় কীভাবে আচরণ করতে হবে।

অনুরোধটি নিজেই ক্ষতিকারক ছিল না; বিপদটি ছিল রেসিপিটিকে তার মূল কাজের অংশ হিসেবে গ্রহণ করার ক্ষেত্রে বটের প্রবণতায়।

কেন এটি গুরুত্বপূর্ণ

চ্যাটবটগুলো এখন গ্রাহক-সরাসরি (customer-facing) ভূমিকা পালন করছে, যা ব্যক্তিগত তথ্য পরিচালনা করে, লেনদেন সম্পন্ন করে বা অভ্যন্তরীণ টুলগুলো নিয়ন্ত্রণ করে। যদি একটি মডেলকে তার নিজস্ব নির্দেশাবলী প্রকাশ করতে প্ররোচিত করা যায়, তবে একজন আক্রমণকারী সেই গার্ডরেল (guardrails) সম্পর্কে ধারণা পেয়ে যায় যা মডেলটিকে ক্ষতিকারক কাজ করা থেকে বিরত রাখার কথা ছিল।

আক্রমণটি যেভাবে কাজ করে

  1. বটের উদ্দেশ্য চিহ্নিত করা – পরীক্ষক শনাক্ত করেছেন যে বটের কাজ ছিল কোম্পানির পরিষেবাগুলো ব্যাখ্যা করা।
  2. একটি মিথ্যা যোগসূত্র তৈরি করা – ব্যবহারকারী কোন পরিষেবাটি ব্যবহার করবেন তা সিদ্ধান্ত নিতে রেসিপিটি প্রয়োজন বলে দাবি করে, পরীক্ষক অনুরোধটিকে বটের লক্ষ্যের সাথে একটি উপরিভাগের প্রাসঙ্গিকতা প্রদান করেন।
  3. যুক্তিকে কাজে লাগানো – বটটি এই কৃত্রিম প্রাসঙ্গিকতা গ্রহণ করে, অনুরোধটিকে তার অভ্যন্তরীণ প্রাসঙ্গিকতা যাচাইকরণ প্রক্রিয়া পার হতে দেয় এবং সেই গার্ডরেলগুলোকে নিষ্ক্রিয় করে দেয় যা এটিকে বাধা দিত।

এই আক্রমণটি মডেলের প্রাসঙ্গিকতা যাচাই করার ক্ষমতার ওপর নির্ভর করে। যখন সেই যাচাইকরণ প্রক্রিয়াকে প্রভাবিত করা যায়, তখন মডেলের নিজস্ব "নিয়মগুলো" আলোচনার বিষয় হয়ে দাঁড়ায়।

ব্যর্থতার তিনটি ধাপ

ব্যর্থতার ধাপ কী ঘটেছিল
লক্ষ্য দখল (Goal hijacking) বটটি একটি সম্পর্কহীন রান্নার অনুরোধকে তার পরিষেবা-ব্যাখ্যা করার লক্ষ্যের অংশ হিসেবে গণ্য করেছিল।
সক্ষমতার বিচ্যুতি (Capability drift) এটি কার্যকর পাইথন (Python) কোড তৈরি করেছিল, যদিও তার ভূমিকার মধ্যে কোড জেনারেশন অন্তর্ভুক্ত ছিল না।
প্রম্পট ফাঁস (Prompt leakage) এটি হুবহু সেই সিস্টেম প্রম্পটটি প্রিন্ট করেছিল যা গোপন থাকার কথা ছিল।

প্রতিটি ধাপ একটি ভিন্ন প্রতিরক্ষামূলক স্তরের ভেঙে পড়াকে নির্দেশ করে, যা অনেক ক্ষেত্রেই ধরে নেওয়া হয় যে মডেলটি নিজেই তা কার্যকর করে।

কার্যকর প্রতিরক্ষামূলক স্তরসমূহ

গার্ডরেলগুলোকে মডেলের বাইরে নিয়ে এসে ডিটারমিনিস্টিক (deterministic) কোডে স্থানান্তরিত করলে একটি নির্ভরযোগ্য নিরাপত্তা সীমানা পুনরুদ্ধার করা সম্ভব।

  • টাস্ক রাউটিং (Task routing) – আগত মেসেজগুলোকে অনুমোদিত উদ্দেশ্যের (intents) একটি নির্দিষ্ট তালিকার সাথে মেলানোর জন্য একটি আলাদা ক্লাসিফায়ার ব্যবহার করুন। যদি কোনো অনুরোধ সেই তালিকার বাইরে হয়, তবে তা সরাসরি প্রত্যাখ্যান করুন। এতে মডেলটি প্রাসঙ্গিকতা নিয়ে তর্কা করার সুযোগ পাবে না।
  • ন্যূনতম সক্ষমতা (Least capability) – বটের অপ্রয়োজনীয় টুলগুলো সরিয়ে ফেলুন। যদি এর কোড এক্সিকিউশন বা ব্যাপক ডেটাবেস অ্যাক্সেসের প্রয়োজন না থাকে, তবে সেই ক্ষমতাগুলো সরিয়ে নিন।
  • ডিটারমিনিস্টিক অথরাইজেশন (Deterministic authorization) – পারমিশন বা অনুমতি যাচাই অ্যাপ্লিকেশন কোডে করুন, ল্যাঙ্গুয়েজ মডেলে নয়। মডেল একটি কাজের পরামর্শ দিতে পারে, কিন্তু সেই কাজটি সম্পন্ন হবে কি না তা কোড নির্ধারণ করবে।
  • আউটপুট ভ্যালিডেশন (Output validation) – ব্যবহারকারীর কাছে পৌঁছানোর আগে প্রতিটি মডেল রেসপন্সে কোনো নিষিদ্ধ বিষয়বস্তু—যেমন সিস্টেম প্রম্পট বা সংবেদনশীল তথ্য—আছে কি না তা স্ক্যান করুন।

একটি ফিল্টার যা কেবল জিজ্ঞাসা করে “এই অনুরোধটি কি নিষিদ্ধ?”, একজন প্ররোচনামূলক ব্যবহারকারী তা এড়িয়ে যেতে পারে। কিন্তু একটি রাউটিং লেয়ার যা একটি নির্দিষ্ট তালিকার বিপরীতে যাচাই করে, সেখানে আলোচনার কোনো সুযোগ থাকে না।

পরবর্তী করণীয়

যেসব এন্টারপ্রাইজ কনভারসেশনাল এআই (conversational AI)-এর ওপর নির্ভর করে, তাদের এই মটন-রেসিপি পরীক্ষার মাধ্যমে দেখানো ব্যর্থতার তিনটি মোড বা ধরন অনুযায়ী তাদের সিস্টেম অডিট করা উচিত। এর মধ্যে, যেকোনো সিস্টেম প্রম্পটকে জনসমক্ষে জানা তথ্য হিসেবে বিবেচনা করুন; মডেলটিকে নিজেকে প্রকাশ করা থেকে বিরত রাখতে শুধুমাত্র প্রম্পটের ওপর নির্ভর করবেন না।

মূল শিক্ষাটি স্পষ্ট: যদি আপনার নিরাপত্তা মডেলটি প্রাকৃতিক ভাষার নির্দেশনার একটি অনুচ্ছেদের ওপর নির্ভর করে, তবে এটি অত্যন্ত ভঙ্গুর। এটিকে এমন কোড দিয়ে শক্তিশালী করুন যা অডিট করা যায়, ভার্সন করা যায় এবং মডেল কী বলছে তার তোয়াক্কা না করেই কার্যকর করা যায়।