অতিরিক্ত এজেন্সি দুর্বলতা হ্রাস করুন

OWASP ঝুঁকির বর্ণনা

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

অ্যান্ড্রয়েড ডেভেলপারদের কেন চিন্তা করা উচিত

আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনের মধ্যে একটি LLM অতিরিক্ত এজেন্সি প্রদান করলে গুরুতর নিরাপত্তা ঘটনা ঘটতে পারে:

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

অ্যান্ড্রয়েড অ্যাপ ডেভেলপারদের জন্য প্রশমন

অ্যান্ড্রয়েড অ্যাপগুলিতে অতিরিক্ত এজেন্সির প্রশমনের লক্ষ্য হল LLM অ্যাক্সেস করতে পারে বা ট্রিগার করতে পারে এমন প্রতিটি টুল এবং ফাংশনে ন্যূনতম সুবিধার নীতি প্রয়োগ করা।

AI এর টুলবক্স সীমিত করুন (দানাদার বনাম ওপেন-এন্ডেড ফাংশন):

  • ন্যূনতম টুল সরবরাহ করুন : LLM-এর কেবলমাত্র নির্দিষ্ট টুলগুলিতে (ফাংশন, API, ইন্টেন্ট) অ্যাক্সেস থাকা উচিত যা আপনার অ্যাপের মধ্যে তার কাজ করার জন্য একেবারে প্রয়োজনীয়। যদি ওয়েব ব্রাউজ করতে বা ইমেল পাঠাতে সক্ষম না হয়, তাহলে সেই ক্ষমতাগুলি তাদের কাছে প্রকাশ করবেন না।
  • সহজ, একক-উদ্দেশ্য সরঞ্জাম ব্যবহার করুন : LLM-কে এমন একটি সরঞ্জাম দেওয়া ভাল যা কেবল একটি নির্দিষ্ট কাজ করতে পারে (যেমন "একটি নির্দিষ্ট ধরণের ব্যবহারকারীর সেটিং পড়ুন") পরিবর্তে একটি শক্তিশালী, ওপেন-এন্ডেড সরঞ্জাম যা যেকোনো কিছু করতে পারে (যেমন "যেকোন শেল কমান্ড কার্যকর করুন")।

এআই এর ক্ষমতা সীমিত করুন

  • সূক্ষ্মভাবে তৈরি অ্যান্ড্রয়েড অনুমতি : যখন কোনও LLM-ট্রিগার করা ফাংশন অ্যান্ড্রয়েড সিস্টেম রিসোর্স বা অন্যান্য অ্যাপের সাথে ইন্টারঅ্যাক্ট করে, তখন যাচাই করুন যে আপনার অ্যাপটি কেবলমাত্র প্রয়োজনীয় ন্যূনতম অ্যান্ড্রয়েড অনুমতিগুলির অনুরোধ করে এবং ধরে রাখে।
  • ব্যবহারকারীর জন্য অনুমতি : যখন LLM ব্যবহারকারীর পক্ষে কোনও কাজ করে, তখন এটি ব্যবহারকারীর নির্দিষ্ট অনুমতি এবং প্রেক্ষাপটের সাথে করা উচিত, কোনও বিস্তৃত, সম্ভাব্য প্রশাসনিক অ্যাপ-স্তরের অ্যাকাউন্টের সাথে নয়। এটি যাচাই করে যে LLM এমন কিছু করতে পারে না যা ব্যবহারকারী নিজেরাই করতে পারবেন না।

একজন মানুষকে দায়িত্বে রাখুন (গুরুত্বপূর্ণ পদক্ষেপের জন্য ব্যবহারকারীর সম্মতি)

  • ব্যবহারকারীর অনুমোদনের প্রয়োজন : কোনও LLM যে কোনও গুরুত্বপূর্ণ বা ঝুঁকিপূর্ণ কাজের পরামর্শ দিতে পারে বা করার চেষ্টা করতে পারে (যেমন, ডেটা মুছে ফেলা, অ্যাপ-মধ্যস্থ কেনাকাটা করা, বার্তা পাঠানো, গুরুত্বপূর্ণ সেটিংস পরিবর্তন করা), তার জন্য সর্বদা আপনার UI-তে একটি নিশ্চিতকরণ ডায়ালগ ব্যবহার করে স্পষ্ট মানবিক অনুমোদনের প্রয়োজন। এটিকে একটি গুরুত্বপূর্ণ সিদ্ধান্তে স্বাক্ষর করার জন্য একজন পরিচালকের প্রয়োজন বলে মনে করুন।

বিশ্বাস করুন কিন্তু যাচাই করুন (ইনপুট/আউটপুট বৈধতা এবং শক্তিশালী ব্যাকএন্ড)

  • ব্যাকএন্ড নিরাপত্তা : কোনও অ্যাকশন অনুমোদিত কিনা তা নির্ধারণের জন্য কেবল LLM-এর উপর নির্ভর করবেন না। LLM-ট্রিগার করা ফাংশনগুলি যে কোনও ব্যাকএন্ড পরিষেবা বা API-এর সাথে সংযুক্ত থাকে, প্রতিটি অনুরোধ দুবার পরীক্ষা করার জন্য এবং এটি বৈধ এবং প্রত্যাশিত পরামিতিগুলির মধ্যে যাচাই করার জন্য তাদের নিজস্ব শক্তিশালী প্রমাণীকরণ, অনুমোদন এবং ইনপুট বৈধতা থাকা উচিত।
  • ডেটা পরিষ্কার করুন : অন্যান্য দুর্বলতার মতোই, কোনও পদক্ষেপ কার্যকর করার আগে কোনও ক্ষতিকারক নির্দেশ বা অপ্রত্যাশিত আউটপুট ধরার জন্য ফাংশন কলের জন্য LLM-এ যাওয়া ইনপুট এবং LLM দ্বারা তৈরি প্যারামিটার উভয়কেই স্যানিটাইজ এবং যাচাই করা অত্যন্ত গুরুত্বপূর্ণ।

সারাংশ

অতিরিক্ত এজেন্সি হল একটি গুরুত্বপূর্ণ দুর্বলতা যেখানে একটি LLM-এর অন্যান্য সিস্টেম বা ফাংশনের সাথে ইন্টারঅ্যাক্ট করার জন্য অত্যধিক বিস্তৃত অনুমতি থাকে, যার ফলে এটি ক্ষতিকারক কাজ সম্পাদনের জন্য প্রতারিত হতে পারে। এর ফলে অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলিতে অননুমোদিত ডেটা অ্যাক্সেস, সিস্টেমের আপস, আর্থিক ক্ষতি বা ব্যবহারকারীর ক্ষতি হতে পারে। প্রশমন সর্বনিম্ন সুবিধার নীতির উপর ব্যাপকভাবে নির্ভর করে: LLM-এর জন্য উপলব্ধ সরঞ্জাম এবং অ্যান্ড্রয়েড অনুমতি কঠোরভাবে সীমিত করা, প্রতিটি সরঞ্জামের ন্যূনতম এবং নির্দিষ্ট কার্যকারিতা রয়েছে তা যাচাই করা এবং সমস্ত উচ্চ-প্রভাবশালী ক্রিয়াকলাপের জন্য মানুষের অনুমোদনের প্রয়োজন।

অতিরিক্ত সম্পদ