অতিরিক্ত এজেন্সি হলো একটি দুর্বলতা যা তখন ঘটে যখন একটি বৃহৎ ভাষা মডেল (LLM) কে অন্যান্য সিস্টেমের সাথে যোগাযোগ করার জন্য অপ্রয়োজনীয় বা অত্যধিক অনুমতিমূলক ক্ষমতা দেওয়া হয়। যখন একটি LLM বহিরাগত সরঞ্জাম, প্লাগইন বা ফাংশন (এর "এজেন্সি") কল করতে পারে, তখন এই দুর্বলতা এটিকে এমন কাজ সম্পাদন করতে দেয় যা অনিচ্ছাকৃত, অননুমোদিত এবং সম্ভাব্য ক্ষতিকারক। একজন আক্রমণকারী প্রম্পট ইনজেকশন বা অন্যান্য ম্যানিপুলেশন কৌশল ব্যবহার করে LLM কে তার অনুমোদিত এজেন্সি ব্যবহার করে ক্ষতিকারক উদ্দেশ্যে ব্যবহার করার জন্য প্রতারণা করে এটিকে কাজে লাগাতে পারে। মূল সমস্যাটি কেবল LLM পদক্ষেপ নিতে পারে তা নয়, বরং সেই কর্মের পরিধি খুব বিস্তৃত এবং দুর্বলভাবে নিয়ন্ত্রিত।
অ্যান্ড্রয়েড ডেভেলপারদের কেন চিন্তা করা উচিত
আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনের মধ্যে একটি LLM অতিরিক্ত এজেন্সি প্রদান করলে গুরুতর নিরাপত্তা ঘটনা ঘটতে পারে:
- অননুমোদিত সিস্টেম অ্যাক্সেস : যদি ডিভাইসের ফাইল সিস্টেম এবং স্টোরেজ রিসোর্স বা নেটওয়ার্ক কল করার ক্ষমতা ফাংশন কলিংয়ের মাধ্যমে মডেলের সামনে আসে, তাহলে আক্রমণকারী ডিভাইসের ফাইলগুলি (উদাহরণস্বরূপ, ব্যবহারকারীর নথি, অ্যাপ ডেটা) বা সংযুক্ত নেটওয়ার্ক রিসোর্সগুলিতে অ্যাক্সেস, পরিবর্তন বা মুছে ফেলার জন্য প্রম্পট ইনজেকশন ব্যবহার করতে পারে।
- ডেটা এক্সফিল্ট্রেশন : যদি কোনও অ্যাপ কোনও ফাংশন কলিং ব্যবহার করে কোনও LLM-কে স্থানীয় ডেটাতে (যেমন, রুম ডাটাবেস, শেয়ারডপ্রেফারেন্সেস, বা অভ্যন্তরীণ API) অ্যাক্সেস দেয়। একটি ক্ষতিকারক প্রম্পট মডেলটিকে সংবেদনশীল তথ্য পুনরুদ্ধার করতে এবং এটি একটি বহিরাগত সরঞ্জামে, যেমন একটি ইমেল বা নেটওয়ার্ক অনুরোধ ফাংশনে প্রেরণ করতে প্রতারণা করতে পারে।
- অন্যান্য ফাংশন/সিস্টেমের সাথে আপস : যদি LLM-এর অন্যান্য ফাংশনের উপর কর্তৃত্ব থাকে (উদাহরণস্বরূপ, SMS পাঠানো, কল করা, অন্তর্নিহিত উদ্দেশ্য ব্যবহার করে সোশ্যাল মিডিয়ায় পোস্ট করা, সিস্টেম সেটিংস পরিবর্তন করা, অ্যাপ-মধ্যস্থ কেনাকাটা করা), তাহলে একজন আক্রমণকারী স্প্যাম পাঠানো, বিভ্রান্তিকর তথ্য ছড়িয়ে দিতে বা অননুমোদিত লেনদেন করার জন্য এই ফাংশনগুলি হাইজ্যাক করতে পারে, যার ফলে সরাসরি আর্থিক ক্ষতি বা ব্যবহারকারীর ক্ষতি হতে পারে।
- পরিষেবা অস্বীকৃতি : যদি কোনও LLM ফাংশন কলিংয়ের সাথে একীভূত হয় যা ডাটাবেস কোয়েরি বা নেটওয়ার্ক অনুরোধগুলি প্রকাশ করে, তাহলে একটি ক্ষতিকারক প্রম্পট বারবার এই ক্রিয়াগুলি ট্রিগার করতে পারে। এর ফলে সিস্টেমের স্বাস্থ্যের অবনতি হতে পারে, যেমন অতিরিক্ত ব্যাটারি নিষ্কাশন, ডেটা অতিরিক্ত পরিমাণে খরচ, বা স্থানীয় সংস্থান নিঃশেষিত হওয়া।
অ্যান্ড্রয়েড অ্যাপ ডেভেলপারদের জন্য প্রশমন
অ্যান্ড্রয়েড অ্যাপগুলিতে অতিরিক্ত এজেন্সির প্রশমনের লক্ষ্য হল LLM অ্যাক্সেস করতে পারে বা ট্রিগার করতে পারে এমন প্রতিটি টুল এবং ফাংশনে ন্যূনতম সুবিধার নীতি প্রয়োগ করা।
AI এর টুলবক্স সীমিত করুন (দানাদার বনাম ওপেন-এন্ডেড ফাংশন):
- ন্যূনতম টুল সরবরাহ করুন : LLM-এর কেবলমাত্র নির্দিষ্ট টুলগুলিতে (ফাংশন, API, ইন্টেন্ট) অ্যাক্সেস থাকা উচিত যা আপনার অ্যাপের মধ্যে তার কাজ করার জন্য একেবারে প্রয়োজনীয়। যদি ওয়েব ব্রাউজ করতে বা ইমেল পাঠাতে সক্ষম না হয়, তাহলে সেই ক্ষমতাগুলি তাদের কাছে প্রকাশ করবেন না।
- সহজ, একক-উদ্দেশ্য সরঞ্জাম ব্যবহার করুন : সীমিত এবং নির্দিষ্ট সুযোগ সহ সরঞ্জাম ডিজাইন করুন। উদাহরণস্বরূপ, এমন একটি সরঞ্জাম সরবরাহ করুন যা কেবলমাত্র একটি নির্দিষ্ট ধরণের ব্যবহারকারীর সেটিং পড়ে, এমন একটি জেনেরিক সরঞ্জামের পরিবর্তে যা একাধিক ডেটা উত্স অ্যাক্সেস করার জন্য ওপেন-এন্ডেড প্যারামিটার গ্রহণ করে। মডেলটিকে কমান্ড বা আর্গুমেন্ট সংজ্ঞায়িত করার অনুমতি দিয়ে
Runtime.getRuntime().exec()এর মতো শক্তিশালী সিস্টেম-স্তরের APIগুলিকে LLM-এ প্রকাশ করা এড়িয়ে চলুন।
এআই এর ক্ষমতা সীমিত করুন
- সূক্ষ্মভাবে তৈরি অ্যান্ড্রয়েড অনুমতি : যখন কোনও LLM-ট্রিগার করা ফাংশন অ্যান্ড্রয়েড সিস্টেম রিসোর্স বা অন্যান্য অ্যাপের সাথে ইন্টারঅ্যাক্ট করে, তখন যাচাই করুন যে আপনার অ্যাপটি কেবলমাত্র প্রয়োজনীয় ন্যূনতম অ্যান্ড্রয়েড অনুমতিগুলির অনুরোধ করে এবং ধরে রাখে।
- ব্যবহারকারীর জন্য অনুমতি : যখন LLM ব্যবহারকারীর পক্ষ থেকে কোনও কাজ করে, তখন এটি সেই ব্যবহারকারীর নির্দিষ্ট অনুমতি এবং প্রেক্ষাপটের সাথে করা উচিত। একজন LLM দ্বারা গৃহীত কোনও পদক্ষেপ অবশ্যই একটি নির্দিষ্ট ব্যবহারকারীর আদেশের সরাসরি প্রতিক্রিয়া হতে হবে।
একজন মানুষকে দায়িত্বে রাখুন (গুরুত্বপূর্ণ পদক্ষেপের জন্য ব্যবহারকারীর সম্মতি)
- ব্যবহারকারীর অনুমোদনের প্রয়োজন : কোনও LLM যে কোনও গুরুত্বপূর্ণ বা ঝুঁকিপূর্ণ কাজের পরামর্শ দিতে পারে বা করার চেষ্টা করতে পারে (যেমন, ডেটা মুছে ফেলা, অ্যাপ-মধ্যস্থ কেনাকাটা করা, বার্তা পাঠানো, গুরুত্বপূর্ণ সেটিংস পরিবর্তন করা), তার জন্য সর্বদা আপনার UI-তে একটি নিশ্চিতকরণ ডায়ালগ ব্যবহার করে স্পষ্ট মানবিক অনুমোদনের প্রয়োজন। এটিকে একটি গুরুত্বপূর্ণ সিদ্ধান্তে স্বাক্ষর করার জন্য একজন পরিচালকের প্রয়োজন বলে মনে করুন।
বিশ্বাস করুন কিন্তু যাচাই করুন (ইনপুট/আউটপুট বৈধতা এবং শক্তিশালী ব্যাকএন্ড)
- ব্যাকএন্ড নিরাপত্তা : কোনও অ্যাকশন অনুমোদিত কিনা তা নির্ধারণের জন্য কেবল LLM-এর উপর নির্ভর করবেন না। LLM-ট্রিগার করা ফাংশনগুলি যে কোনও ব্যাকএন্ড পরিষেবা বা API-এর সাথে সংযুক্ত থাকে, প্রতিটি অনুরোধ দুবার পরীক্ষা করার জন্য এবং এটি বৈধ এবং প্রত্যাশিত পরামিতিগুলির মধ্যে যাচাই করার জন্য তাদের নিজস্ব শক্তিশালী প্রমাণীকরণ, অনুমোদন এবং ইনপুট বৈধতা থাকা উচিত।
- ডেটা পরিষ্কার করুন : অন্যান্য দুর্বলতার মতোই, কোনও পদক্ষেপ কার্যকর করার আগে কোনও ক্ষতিকারক নির্দেশ বা অপ্রত্যাশিত আউটপুট ধরার জন্য ফাংশন কলের জন্য LLM-এ যাওয়া ইনপুট এবং LLM দ্বারা তৈরি প্যারামিটার উভয়কেই স্যানিটাইজ এবং যাচাই করা অত্যন্ত গুরুত্বপূর্ণ।
সারাংশ
অতিরিক্ত এজেন্সি হল একটি গুরুত্বপূর্ণ দুর্বলতা যেখানে একটি LLM-এর অন্যান্য সিস্টেম বা ফাংশনের সাথে ইন্টারঅ্যাক্ট করার জন্য অত্যধিক বিস্তৃত অনুমতি থাকে, যার ফলে এটি ক্ষতিকারক কাজ সম্পাদনের জন্য প্রতারিত হতে পারে। এর ফলে অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলিতে অননুমোদিত ডেটা অ্যাক্সেস, সিস্টেমের আপস, আর্থিক ক্ষতি বা ব্যবহারকারীর ক্ষতি হতে পারে। প্রশমন সর্বনিম্ন সুবিধার নীতির উপর ব্যাপকভাবে নির্ভর করে: LLM-এর জন্য উপলব্ধ সরঞ্জাম এবং অ্যান্ড্রয়েড অনুমতি কঠোরভাবে সীমিত করা, প্রতিটি সরঞ্জামের ন্যূনতম এবং নির্দিষ্ট কার্যকারিতা রয়েছে তা যাচাই করা এবং সমস্ত উচ্চ-প্রভাবশালী ক্রিয়াকলাপের জন্য মানুষের অনুমোদনের প্রয়োজন।