লেখক : Keun Soo Yim Author: কুমিল্লা ইয়াম Table Of Links বামপন্থী টেবিল অবরোধ I. INTRODUCTION I. প্রবর্তন II. BACKGROUND ২. পিছনে III. DESIGN ৩. ডিজাইন সংজ্ঞা ডিজাইন লক্ষ্য কাঠামো প্রসারিত IV. MODELING ৪. মডেলিং শ্রেণীবিদ ফ্যাক্টর V. DATA COLLECTION V. ডেটা সংগ্রহ VI. CHARACTERIZATION VI. বৈশিষ্ট্য দীর্ঘস্থায়ী দীর্ঘস্থায়ী দুর্বলতা সংশোধন পরিবর্তন বিশ্লেষণ দুর্বলতা প্রদর্শন পরিবর্তন বিশ্লেষণ VII. RESULT ৭. ফলাফল N-FOLD সনাক্তকরণ অনলাইন ডেভেলপমেন্ট মোড ব্যবহার করে মূল্যায়ন VIII. DISCUSSION ২. আলোচনা বহু প্রকল্পের প্রভাব অ্যান্ড্রয়েড নিরাপত্তা কাজের প্রভাব বৈধতার জন্য হুমকি বিকল্প পদ্ধতি IX. RELATED WORK IX. সম্পর্কিত কাজ CONCLUSION AND REFERENCES উপসংহার এবং রেফারেন্স ABSTRACT অবরোধ এই কাগজটি একটি ফ্রেমমার্ক প্রদর্শন করে যা প্রবেশকারী সোর্স কোড পরিবর্তনগুলির জন্য সুরক্ষা পর্যালোচনাগুলি নির্বাচন করে। একটি কোড পর্যালোচনা পরিষেবার মধ্যে একটি পর্যালোচনা বট হিসাবে কাজ করে, ফ্রেমমার্কটি সুরক্ষা কোড পরিবর্তনগুলি একটি সোর্স কোড রিপোজারিতে প্রেরণ করার আগে পূর্বে অতিরিক্ত নিরাপত্তা পর্যালোচনাগুলি স্বয়ংক্রিয়ভাবে অনুরোধ করতে পারে। অনলাইন শ্রেণীবিদ বিভিন্ন ধরনের ইনপুট বৈশিষ্ট্যগুলি ব্যবহার করে পর্যালোচনা প্যাটার্ন বিশ্লেষণ করে, সফটওয়্যার প্রক্রিয়া অনুসরণ করে এবং নির্দিষ্ট কোড পরিবর্তনগুলির মধ্যে নির্দিষ্ট টেক্সট প্যাটার্ন খনন করে। শ্রেণীবিদ এবং তার বৈশিষ্ট্যগুলি সাবধানে নির্বাচন করা হয় এবং প্রেরিত কোড পরিবর্তনগুলির তথ্য এবং অ্যান্ড্রয়েড ওপেন সূত্র প্রকল্প (এওএসপি) এর সুরক্ষিততা রিপোর্টগুলি ব্যবহার করে অপ্টিমাইজ করা হয়। আমরা বিভিন্ন প্রকল্পের সেটিংস এবং অ্যান্ড্রয়েড নিরাপত্তা গবেষণার জন্য ভবিষ্যতের নির্দেশাবলীগুলিতে ভিপি ফ্রেমমার্কটি প্রয়োগের প্রভাবগুলি আলোচনা করি. এই কাগজটি কোড পরিবর্তন-গ্রানুলারতা সংক্রমণের পূর্বাভাসের আমাদের পদ্ধতিগুলি অনুসন্ধান করে এবং সনাক্ত করে, প্রেরণার আগে সংবেদনশীল কোড পরিবর্তনগুলি সনাক্ত করে সফ্টওয়্যার নিরাপত্তার জন্য একটি প্রতিরোধী কৌশল প্রদান করে। I. INTRODUCTION I. প্রবর্তন বস্তুর ইন্টারনেট ডিভাইসগুলির জন্য ফ্রি ও ওপেন সোর্স সফটওয়্যার (এফওএসএস) সরবরাহ চেইনগুলি (উদাহরণস্বরূপ, স্মার্টফোন এবং টিভি) নিরাপত্তা আক্রমণকারীদের জন্য একটি আকর্ষণীয়, অর্থনৈতিক লক্ষ্যমাত্রা (উদাহরণস্বরূপ, সরবরাহ চেইন আক্রমণ [20][21][28])। নির্দিষ্ট, ব্যাপকভাবে ব্যবহৃত ওপেন সোর্স প্রকল্পগুলি (উদাহরণস্বরূপ, OS কোরেল, লাইব্রেরি, ব্রাউজার বা মিডিয়া প্লেয়ার) লক্ষ্য করা প্রভাবকে সর্বোচ্চ করতে পারে, কারণ এই প্রকল্পগুলি সাধারণত ভোক্তা পণ্যগুলির একটি বিস্তৃত পরিসীমাকে সমর্থন করে। সামাজিক দৃষ্টিকোণ থেকে, সামগ্রিক নিরাপত্তা পরীক্ষার খরচগুলি পূর্বে প্রেরিত সময়ে এই ধরনের সংবেদনশীল কোড পরিবর্তনগুলি সনাক্ত করে অপ্টিমাইজ করা যেতে পারে, এই পরিবর্তনগুলি উর্ধ্বমুখী, উন্মুক্ত কোড প্রজেক্ট রিপোজিটরগুলিতে প্রেরিত হওয়ার আগে। এই নিম্নমুখী প্রকল্পগুলি সংযুক্ত, উচ্চমুখী দুর্বলতাগুলি খুঁজে বের করার জন্য প্রথম নিম্নমুখী প্রকল্পগুলির উপর নির্ভর করতে পারে না কারণ এই ধরনের সংশোধন এবং তাদের পরবর্তী উচ্চমুখী প্রকল্পগুলির জন্য সময়সীমা অপ্রত্যাশিত (উদাহরণস্বরূপ, আংশিকভাবে অভ্যন্তরীণ নীতিমালাগুলির কারণে [22])। প্রত্যেকটি কোড পরিবর্তনের জন্য ব্যাপক নিরাপত্তা পর্যালোচনাগুলি প্রয়োজনীয়তার একটি নিখুঁত পদ্ধতি প্রচুর উন্মুক্ত কোড প্রকল্প মালিকদের জন্য অপ্রত্যাশিত খরচের কারণ। এটি বিশেষত ফোএসএস প্রকল্পগুলির জন্য প্রযোজ্য যারা কোড পরিবর্তনগুলির একটি উচ্চ পরিমাণ গ্রহণ করে বা পর্যালোচনাগুলির জন্য বিশেষ নিরাপত্তা দক্ষতা প্রয়োজন (উদাহরণস্বরূপ, ডোমেইন নির্দিষ্ট)। একটি কাঠামো যা একটি মেশিন লার্নিং (ML) শ্রেণীকরণ ব্যবহার করে কোড পরিবর্তনগুলির সুরক্ষা মূল্যায়ন স্বয়ংক্রিয় করে। Vulnerability Prevention (VP) শ্রেণীকরণ মডেল একটি নির্দিষ্ট কোড পরিবর্তন অন্তত একটি নিরাপত্তা দুর্বলতা অন্তর্ভুক্ত বা উত্সাহিত করার সম্ভাবনা অনুমান করে. কোড পরিবর্তন একটি সীমা অতিক্রম গড় সম্ভাব্য-দুর্বলতা. মডেলটি সংশ্লিষ্ট বিশ্লেষণ সরঞ্জামগুলির একটি সেট ব্যবহার করে উত্সাহিত ঐতিহাসিক ডেটা উপর প্রশিক্ষিত হয়. মডেলটি সফটওয়্যার ত্রুটি পূর্বাভাসের জন্য ব্যবহৃত সাধারণ বৈশিষ্ট্যগুলি ব্যবহার করে, পাশাপাশি চার ধরনের নতুন বৈশিষ্ট্যগুলি ক্যাপচার করে: (1) প্যাচ সেট জটিলতা, (2) কোড পর্যালোচনা প্যাটার্ন, (3) প্রতিটি সোর্স কোড ফাইলের সফটওয়্যার ডেভেলপমেন্ট লাইফ সাইকেল ফেজ, এবং (4) কোড পরিবর্তনের প্রকৃতি, সংশোধিত সোর্স কোড লাইন বিশ্লেষণ দ্বারা নির্ধারিত. মোট, এই গবেষণায় মোট 30 টিরও বেশি ধরনের বৈশিষ্ট্য ডেটা ব্যবহার করে 6 টি ধরণের শ্রেণীকরণকারীদের ব্যাপকভাবে পরীক্ষা করা হয় ML মডেলের সঠিকতা অপ্টিমাইজ করার জন্য। প্রশিক্ষণ এবং পরীক্ষা ডেটা উত্পাদন করার জন্য, আমরা অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প (AOSP)1 এ আবিষ্কার এবং সংশোধিত নিরাপত্তা বাগগুলি ব্যবহার করি. এটি বিশেষভাবে অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প (AOSP) এর মিডিয়া প্রকল্পটি লক্ষ্য করে2 (যেমন, মাল্টিমিডিয়া ডেটা প্রক্রিয়াকরণের জন্য) যা ব্যাপকভাবে ফাস্ট-টেস্ট করা হয়েছিল এবং এইভাবে অনেক নিরাপত্তা ত্রুটি প্রকাশ করে। (1) প্রতিটি টার্গেট সিকিউরিটি বাগের সাথে সম্পর্কিত সংশোধনকারী পরিবর্তনগুলি সনাক্ত করুন, এবং (2) প্রত্যেকটি সনাক্ত করা সুরক্ষা সংশোধনকারী পরিবর্তনের সাথে সংশ্লিষ্ট ব্যাকট্রাক সুরক্ষা প্রদর্শনকারী পরিবর্তনগুলি। এর প্রথম বছরের তথ্য ব্যবহার করে মূল্যায়ন তার সঠিকতা উপর ভিত্তি করে সবচেয়ে কার্যকরী শ্রেণীকরণ হিসাবে র্যান্ডম বন চিহ্নিত করে. শ্রেণীকরণ ~60% সঠিকতা ~85% সঠিকতা সঙ্গে সংবেদনশীলতা প্রদর্শন কোড পরিবর্তন চিহ্নিত করে. এটি প্রশিক্ষণ এবং পরীক্ষার জন্য সমস্ত বৈশিষ্ট্যগুলি ব্যবহার করার সময় ~97% সঠিকতা সঙ্গে ~99% সম্ভাব্য-স্বাভাবিক কোড পরিবর্তন চিহ্নিত করে. N-fold VP ফ্রেমমেন্টটি পরে একটি অনলাইন মডেল হিসাবে ব্যবহৃত হয় যা পূর্ববর্তী মাসের তথ্যগুলির উপর মাসিকভাবে পুনরায় প্রশিক্ষণ করা হয়। যখন এটি প্রায় ছয় বছরের সংবেদনশীলতা ডেটা3 এর জন্য প্রয়োগ করা হয়, তখন ফ্রেমমেন্টটি সংবেদনশীলতা প্রদানের পরিবর্তনগুলির জন্য প্রায় 80% পুনরাবৃত্তি এবং প্রায় 98% সঠিকতা প্রদর্শন করে, পাশাপাশি 99.8% পুনরাবৃত্তি এবং সম্ভাব্য-স্বাভাবিক পরিবর্তনগুলির জন্য 98.5% সঠিকতা প্রদর্শন করে। সংক্ষেপে, পর্যালোচনা এবং একত্রিত কোডের পরিবর্তনগুলির 7.4 শতাংশকে সুরক্ষা সৃষ্টি করে। গড়ে, তাদের কোড পর্যালোচনাগুলির সময় অতিরিক্ত মনোযোগ প্রয়োজনীয় সম্ভাব্য-স্বাভাবিক পরিবর্তনগুলির সংখ্যা মাসে প্রায় 7। এই গবেষণার প্রধান অবদানগুলি অন্তর্ভুক্ত: We explore and confirm the possibility of code change-granularity vulnerability prediction that can be used to prevent vulnerabilities by flagging likelyvulnerable code changes at pre-submit time. We present the Vulnerability Prevention (VP) framework that automates online assessment of software vulnerabilities using a machine learning classifier. We devise novel feature types to improve the classifier accuracy and reduces the feature data set by evaluating the precision and recall metrics. We present the specialized tools to label code changes in AOSP, facilitating robust training and testing data collection. We demonstrate a high precision (~98%) and recall (~80%) of the VP framework in identifying vulnerability-inducing changes, showing the potential as a practical tool to reduce security risks. We discuss the implications of deploying the VP framework in multi-project settings. Our analysis data suggests two focus areas for future Android security research: optimizing the Android vulnerability fixing latency and more efforts to prevent vulnerabilities. The rest of this paper is organized as follows. Section II provides the background information. Section III analyzes the design requirements and presents the VP framework design. Section IV details the design of the ML model, including the classifier and features for classifying likelyvulnerable code changes. Section V describes the tools developed to collect vulnerability datasets for model training and testing. Section VI describes the data collection process using the tools, and characterizes the vulnerability issues, vulnerability-fixing changes, and vulnerability-inducing changes in an AOSP sub-project. Section VII presents the evaluation of the VP framework using an N-fold validation. Section VIIII extends the framework for real-time, online classification. Section IX discusses the implications and threats to validity. Section IX reviews the related works before concluding this paper in Section X. II. BACKGROUND ২. পিছনে এই বিভাগটি একটি ওপেন সোর্স সফটওয়্যার প্রকল্পের কোড পর্যালোচনা এবং উপস্থাপনা প্রক্রিয়াটি বর্ণনা করে, একটি ক্ষেত্রে AOSP (আন্ড্রয়েড ওপেন সোর্স প্রকল্প) ব্যবহার করে। একটি কোড পরিবর্তন (সাধারণভাবে, পরিবর্তন) একটি লক্ষ্য কোড রিপোর্টার (যেমন git) মধ্যে উত্স কোড ফাইলগুলির জন্য যোগ করা, মুছে ফেলা, এবং / অথবা সম্পাদনা করা উত্স কোড লাইনগুলির একটি সেট থেকে গঠিত হয়। একটি সাধারণ সফটওয়্যার প্রকৌশলী একটি কোড পর্যালোচনা পরিষেবা (যেমন, Gerrit4 ) একটি কোড পর্যালোচনা জন্য একটি কোড পরিবর্তন পাঠায় (যেমন, প্রতিটি প্রকল্পের মধ্যে নির্দিষ্ট অনুমতি রয়েছে (যেমন, প্রকল্প মালিকানা অবস্থা এবং পর্যালোচনা স্তর)। কোড পরিবর্তন . কোড পরিবর্তন কোড পর্যালোচনা প্রক্রিয়ার সময়, একটি কোড পরিবর্তন একাধিক পর্যালোচনা হতে পারে, একটি বা একাধিক প্যাচ সেটের ফলে। প্রতিটি প্যাচ সেটটি কোড পর্যালোচনা পরিষেবাটিতে আপলোড করা হয় কোড পরিবর্তনের একটি আপডেট সংস্করণ প্রতিনিধিত্ব করে। কোড পরিবর্তন লেখক আরও পর্যালোচনা বা অনুমোদন জন্য একটি নতুন প্যাচ সেট হিসাবে পরিবর্তনটি পর্যালোচনা এবং পুনরায় প্রেরণ করতে পারেন নির্ধারিত কোড রিভিউয়ার (স) দ্বারা অনুমোদিত. কী রিভিউয়ার অনুমোদনগুলি অন্তর্ভুক্ত করে: পরিবর্তনটি রিভিউয়ারের জন্য ভাল দেখায়, পরিবর্তনটি অনুমোদন করার জন্য +2 স্কোর, পরিবর্তনটি ভাল না দেখায় বলে -1 স্কোর (উদাহরণস্বরূপ, একটি ক্ষুদ্র সংস্করণ) এবং কোড পরিবর্তন প্রেরণার ব্লক করার জন্য -2 স্কোর। কোড পর্যালোচনা কোড পর্যালোচনা উদাহরণস্বরূপ, একটি কাস্টম পর্যালোচনা নিয়ম লেখকদের তাদের কোড পরিবর্তনগুলি presubmit পরীক্ষার জন্য প্রস্তুত চিহ্নিত করতে সক্ষম করার জন্য হতে পারে কারণ প্রায়শই লেখকরা কোড পর্যালোচনা পরিষেবা (উদাহরণস্বরূপ, diffs5 এবং পূর্ববর্তী প্রতিক্রিয়া পরীক্ষা করার জন্য) কোড পর্যালোচনা পরিষেবা অন্তর্ভুক্ত করা অশেষ সংস্করণগুলি আপলোড করতে পারে। এই কাগজটি CC by 4.0 Deed (Attribution 4.0 International) লাইসেন্সের অধীনে আর্কাইভে পাওয়া যায়। এই কাগজটি CC by 4.0 Deed (Attribution 4.0 International) লাইসেন্সের অধীনে। available o ফাইল ফাইল