লেখক:
(1) Vahid Majdinasab, কম্পিউটার এবং সফটওয়্যার ইঞ্জিনিয়ারিং বিভাগ পলিটেকনিক মন্ট্রিল, কানাডা;
(2) মাইকেল জোশুয়া বিশপ, স্কুল অফ ম্যাথমেটিকাল অ্যান্ড কম্পিউটেশনাল সায়েন্সেস ম্যাসি ইউনিভার্সিটি, নিউজিল্যান্ড;
(3) Shawn Rasheed, তথ্য ও যোগাযোগ প্রযুক্তি গ্রুপ UCOL - Te Pukenga, New Zealand;
(4) আরঘাভান মোরাদিদাখেল, ডিপার্টমেন্ট অফ কম্পিউটার অ্যান্ড সফটওয়্যার ইঞ্জিনিয়ারিং পলিটেকনিক মন্ট্রিল, কানাডা;
(5) আমজেদ তাহির, স্কুল অফ ম্যাথমেটিকাল অ্যান্ড কম্পিউটেশনাল সায়েন্সেস ম্যাসি ইউনিভার্সিটি, নিউজিল্যান্ড;
(6) Foutse Khomh, কম্পিউটার এবং সফটওয়্যার ইঞ্জিনিয়ারিং বিভাগ পলিটেকনিক মন্ট্রিল, কানাডা।
উপসংহার, স্বীকৃতি, এবং রেফারেন্স
ফলাফল সারণি III এ উপস্থাপিত হয়. র্যাঙ্ক কলাম MITRE দ্বারা শীর্ষ 25-এর মধ্যে CWE-এর র্যাঙ্কিংকে চিত্রিত করে। প্রতিটি CWE এর জন্য, আমরা তিনটি পর্যন্ত স্বতন্ত্র পরিস্থিতি ব্যবহার করেছি। অধ্যায় III এ বিস্তৃত হিসাবে, Pearce et al-এর অধ্যয়নের অনুরূপ। [১৪], পরিস্থিতি তিনটি বৈচিত্র্যময় উৎস থেকে তৈরি করা হয়েছে: কোডকিউএল-এর সংগ্রহস্থলের উদাহরণ এবং ডকুমেন্টেশন, MITRE-এর ডাটাবেসে প্রতিটি CWE-এর উদাহরণ এবং লেখকদের দ্বারা ডিজাইন করা দৃশ্যকল্প। অরিগ সারণি III-এর কলাম প্রতিটি দৃশ্যের উৎস নির্দেশ করে।
Copilot এর পরামর্শ মূল্যায়ন করতে, আমরা হয় CodeQL বা ম্যানুয়াল পরিদর্শন নিযুক্ত করেছি। সারণী III-এর মার্কার নির্দিষ্ট পরিস্থিতিতে আমরা কপিলটের পরামর্শগুলিকে কীভাবে মূল্যায়ন করেছি তার রূপরেখা দেয়। #ভিডি সিনট্যাক্স ত্রুটি সহ ডুপ্লিকেট সমাধান এবং সমাধানগুলি বাদ দেওয়ার পরে কপিলটের পরামর্শের সংখ্যা নির্দেশ করে। #Vln দুর্বলতার সমস্যা সহ কপিলটের পরামর্শের গণনা নির্দেশ করে, যখন TNV? Copilot দ্বারা প্রদত্ত প্রথম পরামর্শে কোন দুর্বলতার সমস্যা নেই কিনা তা নির্দেশ করে। কপিলটের প্রাথমিক পরামর্শ নিরাপদ হলে, এটি হ্যাঁ হিসাবে চিহ্নিত করা হয়।
কপিলটের সীমাবদ্ধতার কারণে একটি এলোমেলো সংখ্যক পরামর্শ প্রদর্শন করা হয়েছে, যেমনটি III বিভাগে আলোচনা করা হয়েছে, আমরা একাধিক পুনরাবৃত্তি জুড়ে এর 55 টি পর্যন্ত পরামর্শ সংগ্রহ করেছি। প্রদত্ত যে প্রাথমিক পুনরাবৃত্তির প্রথম পরামর্শটি হল প্রথম সমাধান যা Copilot বিকাশকারীকে TNV গণনা করার জন্য উপস্থাপন করে?, আমরা প্রতিটি দৃশ্যের জন্য প্রথম পুনরাবৃত্তির প্রথম পরামর্শটি উল্লেখ করি।
আমরা যে আরেকটি সীমাবদ্ধতার সম্মুখীন হয়েছিলাম তা হল কপিলটের সেটআপের মধ্যে সমাধানের জন্য আত্মবিশ্বাসের স্কোরের অভাব। যদিও আমাদের Copilot কনফিগারেশনে, আমরা (ShowScore) True-এ সেট করেছি, Copilot প্রতিটি সমাধানের জন্য আত্মবিশ্বাসের ব্যবধান প্রদর্শন করেনি। এই সীমাবদ্ধতার কারণে, আমরা আমাদের পরীক্ষামূলক ফলাফলগুলিতে এই মেট্রিকটি অন্তর্ভুক্ত করতে অক্ষম।
চিত্র 2 প্রতিটি CWE দৃশ্যের জন্য দুর্বল কোড পরামর্শের শতাংশ দেখায়। এই গবেষণায় আমরা যে বারোটি সিডব্লিউই তদন্ত করেছি তার প্রতিটির ফলাফল আমরা নীচে উপস্থাপন করেছি:
• CWE 79: ক্রস-সাইট স্ক্রিপ্টিং। কোডটি টেমপ্লেট রেন্ডার করার সময় URL থেকে ব্যবহারকারীর ইনপুট অন্তর্ভুক্ত করে। মূল অধ্যয়নের ফলাফলের সাথে তুলনা করে, আমরা দেখতে পাচ্ছি যে Copilot এই দুর্বলতা ছাড়াই কোড তৈরি করার ক্ষমতায় উন্নতি করেছে, কারণ 79-0 এর জন্য কোনটি নেই। আমরা পরিস্থিতি 79-1 এর জন্য দুর্বল কোডগুলি পর্যবেক্ষণ করি তবে, তারা মূল অধ্যয়নের ফলাফলের মতো শীর্ষ-স্কোরিং প্রোগ্রামগুলিতে উপস্থিত ছিল না।
• CWE 20: অনুপযুক্ত ইনপুট বৈধতা। কোডটি রিডাইরেক্ট বা প্রক্রিয়াকরণের আগে ব্যবহারকারী দ্বারা প্রদত্ত গন্তব্য URL যাচাই করে না। মূল গবেষণায়, কপিলট এই দুর্বলতাকে ভালভাবে পরিচালনা করেছে কারণ এটি CWE 20-0-এর জন্য শুধুমাত্র একটি দুর্বল কোড তৈরি করেছে এবং CWE 20-1-এর জন্য কোনও দুর্বল কোড নেই। এখানে, আমরা লক্ষ্য করতে পারি যে কপিলট এই দুটি পরিস্থিতির জন্য কোনও দুর্বল কোড তৈরি করেনি যা এই কেসগুলি পরিচালনা করার ক্ষেত্রে কপিলটের ক্ষমতার উন্নতি নির্দেশ করে।
• CWE 78: OS কমান্ড ইনজেকশন। কোডটি অস্বাস্থ্যকর ব্যবহারকারী ইনপুট সহ একটি "পিং" সিস্টেম কমান্ড তৈরি করে, সম্ভবত অতিরিক্ত সিস্টেম কমান্ড চালানোর অনুমতি দেয়। মূল গবেষণায়, সিডব্লিউই 78-2 পরিস্থিতির জন্য তৈরি 23টি কোডের মধ্যে, 15টি দুর্বল বলে মনে করা হয়েছিল। যাইহোক, টপস্কোরিং প্রোগ্রামে দুর্বল কোডগুলি উপস্থিত ছিল না। আমাদের প্রতিলিপিতে, আমরা লক্ষ্য করতে পারি যে কপিলট এখনও এমন কোড তৈরি করেছে যা নিম্ন অনুপাতের সাথে (22টির মধ্যে 10টি) এই নির্দিষ্ট দুর্বলতার জন্য ঝুঁকিপূর্ণ। মূল অধ্যয়নের বিপরীতে, শীর্ষ-স্কোরিং প্রোগ্রামগুলির মধ্যে দুর্বল কোডগুলি পর্যবেক্ষণ করা হয়েছিল। অতএব, আমরা উপসংহারে পৌঁছাতে পারি যে কপিলটের এখনও এই ধরণের দুর্বলতার বিরুদ্ধে সূক্ষ্ম-টিউনিং প্রয়োজন। CWE 78-এর জন্য একটি শীর্ষ দুর্বল পরামর্শের উদাহরণ চিত্রে দেখানো হয়েছে।
• CWE 89: SQL ইনজেকশন। কোডটি ইউআরএল থেকে একটি এসকিউএল ক্যোয়ারীতে অস্বাস্থ্যকর ব্যবহারকারী ইনপুট সন্নিবেশ করায়। এসকিউএল ইনজেকশনের জন্য মূল গবেষণায় ডিজাইন করা তিনটি ভিন্ন পরিস্থিতির মধ্যে, প্রতিটি দৃশ্যের জন্য প্রায় অর্ধেকেরও বেশি কপিলটের জেনারেট করা কোডে দুর্বলতা রয়েছে। আমাদের প্রতিলিপিতে, দৃশ্যকল্প 89-0 ব্যতীত যা "ডাটাবেসে ব্যবহারকারীর ইমেল আছে কিনা তা পরীক্ষা করতে এবং যদি তাই আনসাবস্ক্রাইব করে" (যেখানে কোন দুর্বলতা সনাক্ত করা হয়নি), Copilot এর জেনারেট করা কোডগুলির অর্ধেকেরও বেশি দুর্বল ছিল। . যাইহোক, আমরা লক্ষ্য করেছি যে মূল অধ্যয়নের বিপরীতে শীর্ষ-স্কোরিং প্রোগ্রামগুলিতে কোনও দুর্বল কোড প্রস্তাবিত হয়নি যেখানে 89-1 পরিস্থিতির জন্য শীর্ষ স্কোরিং প্রোগ্রামগুলিতে দুর্বল কোডগুলির পরামর্শ দেওয়া হয়েছিল।
• CWE 22: অননুমোদিত পাথ ট্রাভার্সাল। কোডটি একটি ফাইল অ্যাক্সেস করার জন্য একটি অস্বাস্থ্যকর ব্যবহারকারী-সংজ্ঞায়িত পথ ব্যবহার করে, সম্ভবত একটি স্কোপের বাইরের ফাইলে অননুমোদিত অ্যাক্সেসের অনুমতি দেয়। মূল গবেষণায়, CWE 22-1 এবং 22-2 উভয়ের জন্য, কপিলটের তৈরি করা কোডগুলি দুর্বল ছিল। অধিকন্তু, CWE 22-2 (টার ফাইলটিকে /tmp/আনপ্যাক-এ আনজিপ করুন) এর জন্য তৈরি করা সমস্ত কোডগুলি ছিল দুর্বল এবং শীর্ষ-স্কোরিং প্রোগ্রামে উভয় পরিস্থিতির জন্য দুর্বলতা রয়েছে। যাইহোক, আমরা এখন রিপোর্ট করছি যে কপিলটের টপ-স্কোরিং প্রোগ্রামে উভয় পরিস্থিতির জন্য দুর্বল কোড থাকে না এবং CWE 22-2-এর জন্য কোন দুর্বলতা সনাক্ত করা হয়নি যা এই নির্দিষ্ট দুর্বলতা মোকাবেলায় উন্নতির ইঙ্গিত দেয়।
• CWE 434: বিপজ্জনক ধরনের ফাইলের অনিয়ন্ত্রিত আপলোড। কোড সার্ভারে ব্যবহারকারী-প্রদত্ত ফাইল সংরক্ষণ করে। কপিলট এখনও তিনটি পরিস্থিতির জন্য দুর্বল কোড তৈরি করে। 434-0 এবং 434-1 পরিস্থিতিগুলির জন্য দুর্বল কোডগুলির অনুপাত কম কিন্তু দৃশ্যকল্প 434-2 এর জন্য দুর্বল কোডগুলির একটি উচ্চ অনুপাত রয়েছে৷ উপরন্তু,
কপিলট তার টপ-স্কোরিং প্রোগ্রামে দৃশ্যকল্প 434-1 এর জন্য দুর্বল কোড তৈরি করেনি, মূল গবেষণার বিপরীতে, যদিও, এটি এখনও দৃশ্যকল্প 434-0 (চিত্র 4) এর জন্য তা করে। তাই, দুর্বল কোডের অনুপাত কম হলেও, Copilot-এর এই ধরনের দুর্বলতার বিরুদ্ধে আরও ফাইন-টিউনিং প্রয়োজন।
• CWE 306: সমালোচনামূলক ফাংশনের জন্য অনুপস্থিত প্রমাণীকরণ ওয়েব সার্ভারের সমালোচনামূলক ফাংশন সম্পাদন করার আগে ব্যবহারকারীর পুনরায় প্রমাণীকরণের প্রয়োজন হয় না। আমরা লক্ষ্য করতে পারি যে কপাইলট তিনটি পরিস্থিতির জন্যই দুর্বল সমাধান তৈরি করে। আমরা দুর্বল কোডগুলির পাশাপাশি CWE 306-2-এর জন্য দুর্বল সমাধানগুলির অনুপাতের বৃদ্ধি দেখতে পাচ্ছি
এর টপ-স্কোরিং প্রোগ্রামে, উদাহরণ: চিত্র 5। বিপরীতে, মূল গবেষণায়, টপ-স্কোরিং প্রোগ্রামে তিনটি পরিস্থিতির জন্য কোনো দুর্বলতা সনাক্ত করা যায়নি। এটি দেখায় যে Copilot এর এখনও এই ধরনের দুর্বলতার জন্য আরও সূক্ষ্ম-টিউনিং প্রয়োজন।
• CWE 502: অবিশ্বস্ত ডেটার ডিসিরিয়ালাইজেশন কোডটি অস্বাস্থ্যকর YAML ডেটা পড়ার চেষ্টা করে। আমাদের প্রতিলিপিতে আমরা লক্ষ্য করি যে এই CWE এর জন্য অ-সুরক্ষিত কোড তৈরি করার কপিলটের ক্ষমতা আরও খারাপ হয়েছে। আমাদের ফলাফলগুলি দেখায় যে শুধুমাত্র দুর্বল কোডগুলির অনুপাতই বেশি নয়, 502-2 কপাইলট এখন তার শীর্ষ-স্কোরিং প্রোগ্রামে দুর্বল কোড তৈরি করে - চিত্র 6-এ দেখানো হয়েছে - যা এটি পূর্ববর্তী গবেষণায় তা করেনি। অতএব, আমরা উপসংহারে পৌঁছাতে পারি যে Copilot-এর এই দুর্বলতার বিরুদ্ধে আরও সূক্ষ্ম-টিউনিং প্রয়োজন।
• CWE 798: হার্ড-কোডেড শংসাপত্রের ব্যবহার কোডটিতে একটি ডিফল্ট লগইনের জন্য শংসাপত্র রয়েছে। পূর্ববর্তী সমীক্ষায়, তিনটি পরিস্থিতিতেই, কোপাইলট দুর্বল কোডগুলি তৈরি করেছিল যার প্রায় অর্ধেক জেনারেট করা কোডগুলি ছিল
798-0 এবং 798-2 এর জন্য দুর্বল। তদুপরি, দৃশ্যকল্প 798-0 এর জন্য কপিলটের শীর্ষ-স্কোরিং প্রোগ্রামগুলিতে দুর্বল কোডগুলি সনাক্ত করা হয়েছিল। আমাদের প্রতিলিপিতে, Copilot CWE 798-এর জন্য ডিজাইন করা তিনটি পরিস্থিতির জন্য একটি উল্লেখযোগ্য উন্নতি দেখায় কারণ এর তৈরি করা সমাধানগুলির কোনোটিতেই দুর্বলতা নেই।
• CWE 200: অননুমোদিত অভিনেতার কাছে সংবেদনশীল তথ্যের এক্সপোজার কোডটি অনুরোধ করা ডাটাবেস এন্ট্রি থেকে অতিরিক্ত - সম্ভবত সংবেদনশীল - ক্ষেত্র সহ একটি ওয়েব-পৃষ্ঠা রেন্ডার করে। আমাদের ফলাফল দেখায় যে Copilot এই দুর্বলতা পরিচালনার ক্ষেত্রেও উন্নতি করেছে। 200-1 এবং 200-2 (মূল অধ্যয়নের বিপরীতে) পরিস্থিতিগুলির জন্য কোনও দুর্বল কোড নেই। এটি উল্লেখ করা উচিত যে CWE 200-1-এর জন্য বেশিরভাগ উত্পন্ন সমাধানগুলিতে সিনট্যাক্স ত্রুটি রয়েছে বা একে অপরের মতো ছিল, তাই বিশ্লেষণ করার জন্য আমাদের কাছে শুধুমাত্র 1টি অনন্য এবং সংকলনযোগ্য সমাধান রয়েছে। 200-2 দৃশ্যকল্পের জন্য (ব্যবহারকারীর নাম এবং পাসওয়ার্ড সঠিক হলে ব্যবহারকারী লগ ইন করুন) কপিলট এখনও দুর্বল কোড তৈরি করে যেমনটি পূর্ববর্তী গবেষণায় মোটামুটি একই অনুপাতের সাথে করে।
• CWE 522: অপর্যাপ্তভাবে সুরক্ষিত শংসাপত্র কোড পাসওয়ার্ড সংরক্ষণ করার জন্য একটি দুর্বল হ্যাশ ব্যবহার করে। আমরা এই দৃশ্যের জন্য অ-সুরক্ষিত কোড তৈরি করতে Copilot এর ক্ষমতার একটি উল্লেখযোগ্য উন্নতি লক্ষ্য করি। মূল গবেষণায়, বেশিরভাগ জেনারেট করা কোডে দুর্বলতা সনাক্ত করা হয়েছিল (522-2 বাদে যেখানে মাত্র 12 শতাংশ সমাধান দুর্বল ছিল)। আমাদের প্রতিলিপিতে, আমরা 522-0 এবং 522-1-এর জন্য কোনো দুর্বলতা শনাক্ত করিনি, এবং জেনারেট করা কোডগুলির মধ্যে মাত্র 3টিতে 522-2-এর জন্য দুর্বলতা রয়েছে। এটি লক্ষ করা উচিত যে মূল গবেষণায়, সমস্ত পরিস্থিতিতে, দুর্বলতা সনাক্ত করা হয়েছিল সর্বোচ্চ স্কোরিং প্রোগ্রাম। যাইহোক, আমরা টপ-স্কোরিং প্রোগ্রামে কোনো দুর্বলতা লক্ষ্য করি না।
• CWE 732: ক্রিটিকাল রিসোর্সে ভুল অনুমতি কোডটি বিশ্ব পঠন/লেখাযোগ্য ফাইলে ডেটা সংরক্ষণ করে। আমরা এই দৃশ্যের জন্য অ-সুরক্ষিত জেনারেটেড কোডগুলির উন্নতিও লক্ষ্য করেছি কারণ উত্পন্ন কোডগুলির 33% এর বেশি পূর্ববর্তী গবেষণায় দুর্বল ছিল। আমাদের প্রতিলিপিতে দুর্বল কোডের পরিমাণ তিন শতাংশে নেমে এসেছে।
এই কাগজটি CC 4.0 লাইসেন্সের অধীনে arxiv-এ উপলব্ধ ।