ຊື່ຂອງ : Keun Soo Yim Author: ວິທະຍາໄລ Keun Soo Yim Table Of Links ຕາຕະລາງ Links ອັດຕະໂນມັດ I. INTRODUCTION ຊື່ຫຍໍ້ຂອງ : Introduction II. BACKGROUND ຊື່ຫຍໍ້ຂອງ : Background III. DESIGN ລະຫັດ QR ຄໍາແນະນໍາ ການອອກແບບ Goals ລະຫັດ QR ຂະຫຍາຍ IV. MODELING ລະຫັດ QR ລະຫັດ QR ຫນ້າທໍາອິດ V. DATA COLLECTION ຊື່ຫຍໍ້ຂອງ : Data Collection VI. CHARACTERIZATION ຫນ້າທໍາອິດ / Characterization ຄວາມປອດໄພ Fixing Latency ການທົບທວນຄືນຂອງຄວາມປອດໄພ fixing ການປ່ຽນແປງ ການທົບທວນຄືນຂອງການປ່ຽນແປງທີ່ອັບໂຫລດຄວາມປອດໄພ VII. RESULT ຫນ້າທໍາອິດ / Results ລະຫັດ QR ການທົບທວນຄືນໂດຍໃຊ້ mode ການນໍາໃຊ້ອອນໄລນ໌ VIII. DISCUSSION ການທົບທວນຄືນ ການທົບທວນຄືນສໍາລັບການ multi-projects ຄໍາຮ້ອງສະຫມັກກ່ຽວກັບ Android Security Works ການປະທັບໃຈກັບ validity ວິທີການປ່ຽນແປງ IX. RELATED WORK IX. ການເຮັດວຽກທີ່ກ່ຽວຂ້ອງ CONCLUSION AND REFERENCES ຄໍາແນະນໍາ & ຄໍາແນະນໍາ ABSTRACT ອັດຕະໂນມັດ ໃນຖານະເປັນການປະຕິບັດເປັນການທົບທວນຄືນ bot ໃນລະຫວ່າງການບໍລິການການທົບທວນຄືນລະຫັດ, framework ສາມາດໄດ້ຮັບການຝຶກອົບຮົມການທົບທວນຄືນຄວາມປອດໄພເພີ່ມເຕີມໃນເວລາທີ່ຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມຂ້າງລຸ່ມ. ປະເພດຕ່າງໆຂອງຄຸນນະສົມບັດອິນເຕີເນັດຖືກນໍາໃຊ້ເພື່ອທົດສອບຮູບແບບການທົບທວນຄືນ, ການຄົ້ນຄວ້າໂຄງການວິສະວະກອນ softwares, ແລະການກວດສອບຮູບແບບເອກະສານພິເສດໃນໄລຍະການປ່ຽນແປງລະຫັດພິເສດ. ປະເພດການກວດສອບແລະຄຸນນະສົມບັດຂອງມັນຖືກຄັດເລືອກແລະປັບປຸງຢ່າງກວ້າງຂວາງໂດຍໃຊ້ຂໍ້ມູນຈາກການປ່ຽນແປງລະຫັດທີ່ຜ່ານມາແລະບັນທຶກຄວາມປອດໄພໃນ Android Open Source Project (AOSP). ຄວາມປອດໄພຂອງການ evaluating ໄດ້ສະແດງໃຫ້ເຫັນວ່າໂຄງສ້າງການປ້ອງກັນຄວາມປອດໄພຂອງພວກເຮົາ (VP) identify approximately 80% of the vulnerability-inducing code changes in the dataset with a precision ratio of around 98% and ພວກເຮົາມີຄໍາຮ້ອງສະຫມັກກ່ຽວກັບຜົນກະທົບຂອງການນໍາໃຊ້ framework VP ໃນສະຖານະການ multi-project ແລະເສັ້ນທາງຕໍ່ໄປສໍາລັບການຄົ້ນຄວ້າຄວາມປອດໄພ Android. ບົດລາຍງານນີ້ຄົ້ນຄວ້າແລະ validates ວິທີການຂອງພວກເຮົາສໍາລັບການຄາດຄະແນນຄວາມປອດໄພຂອງການປ່ຽນແປງລະຫັດ - granularity, ສະຫນັບສະຫນູນເຕັກໂນໂລຊີການຄາດຄະແນນສໍາລັບຄວາມປອດໄພຂອງໂທລະສັບມືຖືໂດຍກວດສອບການປ່ຽນແປງລະຫັດທີ່ປອດໄພກ່ອນທີ່ຈະສະຫນອງ. I. INTRODUCTION ຊື່ຫຍໍ້ຂອງ : Introduction ສະຫນັບສະຫນູນຊຸດ Software Free ແລະ Open Source (FOSS) ສໍາລັບອຸປະກອນ Internet of Things (ເຊັ່ນ: ໂທລະສັບມືຖືແລະໂທລະສັບມືຖື) ສະຫນັບສະຫນູນຊຸດ Software Free ແລະ Open Source (ເຊັ່ນ: FOSS) ສະຫນັບສະຫນູນຊຸດ Software Free ແລະ Open Source (ເຊັ່ນ: FOSS) ສະຫນັບສະຫນູນຊຸດ Software Free ແລະ Open Source (ເຊັ່ນ: FOSS) ສະຫນັບສະຫນູນຊຸດ Software Free ແລະ Open Source (ເຊັ່ນ: FOSS) ສະຫນັບສະຫນູນຊຸດ Software Free ແລະ Open Source (ເຊັ່ນ: FOSS) ສະຫນັບສະຫນູນຊຸດ Software Free ແລະ Open Source (ເຊັ່ນ: FOSS) ສະຫນັບສະຫນູນຊຸດ Software Free ແລະ Open Source (ເຊັ່ນ: FOSS) ສະຫນັບສະຫນູນຊຸດ Software Free ແລະ Open Source (ເຊັ່ນ: FOSS) ສະຫນັບສະຫນູນຊ ການທົດສອບໂຄງການ open source ທີ່ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງ (ລວມທັງ kernels OS, libraries, browser, or media players) ສາມາດປັບປຸງຜົນປະໂຫຍດທີ່ດີທີ່ສຸດ, ໃນຂະນະທີ່ໂຄງການເຫຼົ່ານີ້ຄຸນນະສົມບັດຢ່າງກວ້າງຂວາງເພື່ອສະຫນັບສະຫນູນການຜະລິດຕະພັນຜູ້ບໍລິໂພກ. ລະບົບການປັບປຸງຄອມພິວເຕີທີ່ຍິ່ງໃຫຍ່ຂອງຜະລິດຕະພັນເຫຼົ່ານີ້ສາມາດໄດ້ຮັບການປັບປຸງຢ່າງງ່າຍດາຍໃນປັບປຸງໃຫມ່ຂອງໂຄງການ FOSS ທີ່ຜ່ານມາ, ຖ້າຫາກວ່າການທົດສອບຄວາມປອດໄພແລະການທົດສອບທີ່ເຂັ້ມແຂງບໍ່ໄດ້ຖືກນໍາໃຊ້ກ່ອນຫນ້ານີ້ຫຼັງຈາກການປັບປຸງຄອມພິວເຕີຫຼືການປັບປຸງ. ການທົດສອບຄວາມປອດໄພທັງຫມົດສາມາດໄດ້ຮັບການປັບປຸງໂດຍກວດສອບການປ່ຽນແປງລະຫັດທີ່ບໍ່ມີຄວາມປອດໄພເຊັ່ນດຽວກັນໃນເວລາທີ່ຜ່ານມາ, ຫຼັງຈາກການປ່ຽນແປງເຫຼົ່ານີ້ຈະໄດ້ຮັບການສົ່ງໄປໃນ repositories ໂຄງການ open source. ຖ້າຫາກວ່າບໍ່, ການທົດສອບຄວາມປອດໄພຂອງການທົດສອບຄວາມປອດໄພແມ່ນ multiplied ໃນທຸກໂຄງການໂຄງການໂຄງການຫຼຸດລົງທີ່ອະນຸມັດຈາກໂຄງການຫຼຸດລົງ. ໂຄງການ downstream ນີ້ບໍ່ສາມາດເຊື່ອມຕໍ່ກັບໂຄງການ downstream ທໍາ ອິດເພື່ອຊອກຫາແລະປິ່ນປົວຄວາມປອດໄພທີ່ເຊື່ອມຕໍ່, upstream ເນື່ອງຈາກວ່າລະອຽດປອດໄພສໍາລັບການປິ່ນປົວເຊັ່ນດຽວກັນແລະການປິ່ນປົວທີ່ຜ່ານມາຂອງພວກເຂົາແມ່ນບໍ່ຄວນຄາດຄະເນດິນ (ລັກສະນະຂອງການປິ່ນປົວ) (ລັກສະນະຂອງການປິ່ນປົວຂອງການປິ່ນປົວແລະການປິ່ນປົວຂອງການປິ່ນປົວ). ການປັບປຸງຄວາມປອດໄພຢ່າງກວ້າງຂວາງສໍາລັບການປ່ຽນແປງຄອມພິວເຕີຂອງພວກເຮົາແມ່ນຄ້າຍຄືກັນກັບຄໍາຮ້ອງສະຫມັກທີ່ດີທີ່ສຸດສໍາລັບຜູ້ຊ່ຽວຊານໃນການປັບປຸງຄອມພິວເຕີຂອງພວກເຮົາ. ມັນເປັນປະສິດທິພາບທີ່ດີທີ່ສຸດສໍາລັບໂຄງການ FOSS ທີ່ໄດ້ຮັບການປ່ຽນແປງຄອມພິວເຕີສູງຫຼືຕ້ອງການຄວາມຊ່ຽວຊານດ້ານຄວາມປອດໄພພິເສດສໍາລັບການປ່ຽນແປງຄອມພິວເຕີຂອງພວກເຮົາ. ການຄົ້ນຄວ້າຄວາມປອດໄພຂອງການປ່ຽນແປງລະຫັດໂດຍໃຊ້ເຄື່ອງຮຽນຮູ້ (ML) classifier. Vulnerability Prevention (VP) ລະຫັດການປ່ຽນແປງຄຸນນະສົມບັດຄຸນນະສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດຄຸນສົມບັດ (1) ຄວາມຫນາສຸຂະພາບຂອງ patch, (2) ລະຫັດການທົບທວນຄືນຮູບແບບ, (3) ລະບົບປະສິດທິພາບຂອງການພັດທະນາຄອມພິວເຕີຂອງເອກະສານຄອມພິວເຕີ, ແລະ (4) ຄຸນນະພາບຂອງການປ່ຽນແປງລະຫັດ, ເຊັ່ນດຽວກັນກັບການທົດສອບເສັງລະຫັດລະຫັດລະຫັດທີ່ຖືກກວດສອບ. ທັງຫມົດ, ການຄົ້ນຄວ້ານີ້ກວດສອບຢ່າງກວ້າງຂວາງ 6 ປະເພດຂອງ classifiers ໂດຍໃຊ້ຫຼາຍກ່ວາ 30 ປະເພດຂອງຂໍ້ມູນ feature ເພື່ອປັບປຸງຄວາມຖືກຕ້ອງຂອງຮູບແບບ ML. ສໍາລັບການຜະລິດຂໍ້ມູນການຝຶກອົບຮົມແລະການທົດສອບ, ພວກເຮົາມີຜົນປະໂຫຍດຈາກ bugs ຄວາມປອດໄພທີ່ຊອກຫາແລະປິ່ນປົວໃນ Android Open Source Project (AOSP)1 . ມັນໄດ້ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງເພື່ອທົດສອບໂຄງການ AOSP Media Project2 (ລວມທັງການປິ່ນປົວຂໍ້ມູນ multimedia) ທີ່ໄດ້ຮັບການທົດສອບຢ່າງກວ້າງຂວາງຢ່າງກວ້າງຂວາງແລະຫຼັງຈາກນັ້ນໄດ້ສະແດງໃຫ້ເຫັນບັນຫາຄວາມປອດໄພຈໍານວນຫຼາຍ. (1) identificate vulnerability-fixing changes(s) ທີ່ກ່ຽວຂ້ອງກັບແຕ່ລະ bug security target, ແລະ (2) ການປ່ຽນແປງທີ່ອະນຸມັດຄວາມປອດໄພທີ່ກ່ຽວຂ້ອງກັບແຕ່ລະການປ່ຽນແປງທີ່ອະນຸມັດຄວາມປອດໄພທີ່ຖືກເຂົ້າລະຫັດ. ການປ່ຽນແປງທີ່ອະນຸມັດຄວາມປອດໄພທີ່ຖືກເຂົ້າລະຫັດໂດຍການເຂົ້າລະຫັດທັງຫມົດຖືກເຂົ້າລະຫັດໂດຍຜ່ານການທົດສອບແລະການທົດສອບໂດຍຜ່ານການເຂົ້າລະຫັດກັບຄວາມປອດໄພທີ່ກ່ຽວຂ້ອງ. ການປ່ຽນແປງທີ່ອະນຸມັດຄວາມປອດໄພທີ່ກ່ຽວຂ້ອງແມ່ນຖືກເຂົ້າລະຫັດໂດຍ '1', ໃນຂະນະທີ່ການປ່ຽນແປງລະຫັດອື່ນໆທັງຫມົດຖືກເຂົ້າລະຫັດໂດຍ '0' ໃນ dataset. ການ ການທົບທວນຄືນໂດຍໃຊ້ປີທໍາອິດຂອງຂໍ້ມູນ identificates forest random as the most effective classifier based on its accuracy. The classifier identifies ~60% of the vulnerabilityinducing code changes with a precision of ~85%. It also identifies ~99% of the likely-normal code changes with a precision of ~97% when using all the features for the training and testing. N-fold ຫຼັງຈາກນັ້ນ, framework VP ໄດ້ຖືກນໍາໃຊ້ເປັນຮູບແບບອອນໄລນ໌ທີ່ໄດ້ຮັບການຝຶກອົບຮົມຕໍ່ເດືອນກ່ຽວກັບຂໍ້ມູນຈາກເດືອນທີ່ຜ່ານມາ. ຫຼັງຈາກນັ້ນ, ໃນເວລາທີ່ມັນຖືກນໍາໃຊ້ກັບປະມານ 6 ປີຂອງຂໍ້ມູນຄວາມປອດໄພ3 , framework ໄດ້ສະແດງໃຫ້ເຫັນຄວາມປອດໄພປະມານ 80% ແລະຄວາມປອດໄພປະມານ 98% ສໍາລັບການປ່ຽນແປງທີ່ອະນຸຍາດຄວາມປອດໄພ, ເຊັ່ນດຽວກັນກັບຄວາມປອດໄພ 99.8% ແລະຄວາມປອດໄພ 98.5% ສໍາລັບການປ່ຽນແປງທີ່ຄາດວ່າຈະເປັນປົກກະຕິ. ຄວາມປອດໄພເຫຼົ່ານີ້ປະມານຜົນປະໂຫຍດທີ່ໄດ້ຮັບໃນການຢັ້ງຢືນ N-fold ໃນຂະຫນາດໃຫຍ່, ໃນຂະນະທີ່ຮູບແບບການຕິດຕັ້ງອອນໄລນ໌ສາມາດນໍາໃຊ້ທີ່ດີກວ່າສະຖານທີ່ທ້າຍ, ຄວາມປອດໄພແລະຮູບແບບໃນ ໃນປັດຈຸບັນ, 7.4% ຂອງການປ່ຽນແປງລະຫັດການທົບທວນຄືນແລະການເຊື່ອມຕໍ່ໄດ້ຖືກກວດສອບເປັນ vulnerability-inducing. ໃນປັດຈຸບັນ, ຂະຫນາດໃຫຍ່ຂອງການປ່ຽນແປງ probability-normal ທີ່ຕ້ອງການຄວາມຮູ້ເພີ່ມເຕີມໃນໄລຍະການທົບທວນຄືນລະຫັດຂອງພວກເຂົາແມ່ນປະມານ 7 ໃນເດືອນ. ປະລິມານທີ່ສາມາດປິ່ນປົວນີ້ (ຫຼັງຈາກ 2 ການປ່ຽນແປງລະຫັດຕໍ່ປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະມານປະ ການຊ່ວຍເຫຼືອຕົ້ນຕໍຂອງການຄົ້ນຄວ້ານີ້ປະກອບມີ: 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 ຊື່ຫຍໍ້ຂອງ : Background ການທົບທວນຄືນແລະການຂຽນລະພາບຂອງໂຄງການຄອມພິວເຕີ open source ທີ່ຖືກນໍາໃຊ້ໂດຍໃຊ້ AOSP (Android Open Source Project) ໃນຖານະເປັນຄໍາຮ້ອງສະຫມັກ. AOSP ໄດ້ຖືກເລືອກໂດຍກວດສອບເປັນໂຄງການຄອມພິວເຕີ upstream ທີ່ມີຂະຫນາດໃຫຍ່, ມີຫຼາຍກ່ວາ 3 ມິຖຸນາ, ຜະລິດຕະພັນ enduser ທີ່ເຮັດວຽກ. ລະຫັດການປ່ຽນແປງ (ງ່າຍດາຍ, ການປ່ຽນແປງ) ມີການກໍານົດໄວ້ຂອງຊຸດລະຫັດທີ່ເພີ່ມຂຶ້ນ, ດາວໂຫລດ, ແລະ / ຫຼືການປ່ຽນແປງສໍາລັບເອກະສານລະຫັດສະດວກໃນສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບສະບັບ ລະຫັດການປ່ຽນແປງ . ລະຫັດການປ່ຽນແປງ ໃນໄລຍະການກວດສອບລະຫັດ, ການປ່ຽນແປງລະຫັດສາມາດໄດ້ຮັບການກວດສອບຫຼາຍກ່ວາຫນຶ່ງຫຼືຫຼາຍກ່ວາການກວດສອບລະຫັດ. ໃນໄລຍະການກວດສອບລະຫັດ, ການກວດສອບລະຫັດສາມາດໄດ້ຮັບການກວດສອບຫຼາຍກ່ວາຫນຶ່ງຫຼືຫຼາຍກ່ວາການກວດສອບລະຫັດ. ການກວດສອບລະຫັດສາມາດໄດ້ຮັບການກວດສອບໃນໄລຍະການກວດສອບລະຫັດ. ຊື່ຫຍໍ້ຂອງ : The key revisor permissions include: a score of +1 to indicate the change looks good to the revisor, a score of +2 to approve the code change, a score of -1 to tell that the change does not look good (p.eks., a minor issue), and a score of -2 to block the code change submission. ການທົບທວນຄືນ Code ການທົບທວນຄືນ Code Projects (ລັກສະນະ, git repositories ຫຼື subdirectories ໃນ git repository) ສາມາດມີອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມັດອະນຸມ ເອກະສານນີ້ແມ່ນສາມາດເຂົ້າເຖິງໃນ archiv under CC by 4.0 Deed (Attribution 4.0 International) License. ເອກະສານນີ້ແມ່ນສາມາດເຂົ້າເຖິງໃນ archiv under CC by 4.0 Deed (Attribution 4.0 International) License. ລະຫັດ QR