Συγγραφέας : Keun Soo Yim Author: ΚΕΝ ΣΟΟΥ ΓΙΜ Table Of Links Το τραπέζι της Αριστεράς αφηρημένη I. INTRODUCTION I. Εισαγωγή II. BACKGROUND Β) Το παρασκήνιο III. DESIGN III. Σχεδιασμός Ορισμοί Στόχοι σχεδιασμού Πλαίσιο Επέκταση IV. MODELING IV. Το μοντέλο Ταξινόμηση Χαρακτηριστικά V. DATA COLLECTION V. Συλλογή δεδομένων VI. CHARACTERIZATION Β. Χαρακτηριστικά Τροποποίηση της καθυστέρησης της ευπάθειας Ανάλυση της ευπάθειας που καθορίζει τις αλλαγές Ανάλυση των αλλαγών που προκαλούν ευπάθεια VII. RESULT VII. Το αποτέλεσμα N-Fold επικύρωση Αξιολόγηση με τη χρήση του διαδικτυακού τρόπου ανάπτυξης VIII. DISCUSSION VIII. ΣΥΖΗΤΗΣΗ Επιπτώσεις σε πολυεπίπεδα έργων Συνέπειες για τα Android Security Works Απειλές για την εγκυρότητα Εναλλακτικές προσεγγίσεις IX. RELATED WORK IX. Σχετικές εργασίες CONCLUSION AND REFERENCES Συμπεράσματα και αναφορές ABSTRACT αφηρημένη Αυτό το έγγραφο παρουσιάζει ένα πλαίσιο που ενεργοποιεί επιλεκτικά τις αναθεωρήσεις ασφαλείας για εισερχόμενες αλλαγές στον πηγαίο κώδικα. Λειτουργώντας ως bot αναθεώρησης μέσα σε μια υπηρεσία αναθεώρησης κώδικα, το πλαίσιο μπορεί να ζητήσει αυτόματα πρόσθετες αναθεωρήσεις ασφαλείας κατά την προ-υποβολή ώρα πριν από την υποβολή των αλλαγών κώδικα σε ένα αποθετήριο πηγαίου κώδικα. Επειδή η εκτέλεση τέτοιων ασφαλών αναθεωρήσεων κώδικα προσθέτει κόστος, το πλαίσιο χρησιμοποιεί έναν ταξινομητή εκπαιδευμένο για τον εντοπισμό αλλαγών κώδικα με υψηλή πιθανότητα ευπάθειας. Ο ηλεκτρονικός διαχωριστής αξιοποιεί διάφορους τύπους λειτουργιών εισόδου για την ανάλυση των προτύπων αναθεώρησης, την παρακολούθηση της διαδικασίας μηχανικής λογισμικού και την εξόρυξη συγκεκριμένων προτύπων κειμένου εντός δεδομένων αλλαγών κώδικα. Ο διαχωριστής και οι λειτουργίες του επιλέγονται και βελτιστοποιούνται προσεκτικά χρησιμοποιώντας δεδομένα από τις υποβληθείσες αλλαγές κώδικα και αναφέρονται ευπάθειες στο Android Open Source Project (AOSP). Τα αποτελέσματα της αξιολόγησης δείχνουν ότι το πλαίσιο πρόληψης ευπάθειας (VP) εντοπίζει περίπου το 80% των αλλαγών κώδικα που προκαλούν ευπάθειες στο σύνολο δεδομένων με αναλογία ακρίβειας περίπου 98% και ποσοστό ψευδούς θετικού Συζητάμε τις συνέπειες της ανάπτυξης του πλαισίου VP σε ρυθμίσεις πολλαπλών έργων και τις μελλοντικές κατευθύνσεις για την έρευνα ασφάλειας του Android.Αυτό το έγγραφο διερευνά και επικυρώνει την προσέγγισή μας για την πρόβλεψη των τρωτών σημείων κώδικα, προσφέροντας μια προληπτική τεχνική για την ασφάλεια του λογισμικού, ανιχνεύοντας προληπτικά τρωτές αλλαγές κώδικα πριν από την υποβολή. I. INTRODUCTION I. Εισαγωγή Οι αλυσίδες εφοδιασμού ελεύθερου και ανοιχτού κώδικα λογισμικού (FOSS) για τις συσκευές του Διαδικτύου των Πραγμάτων (π.χ. smartphones και τηλεοράσεις) παρουσιάζουν έναν ελκυστικό, οικονομικό στόχο για τους επιτιθέμενους στην ασφάλεια (π.χ. επιθέσεις στην αλυσίδα εφοδιασμού [20][21][28]). Η στόχευση συγκεκριμένων, ευρέως χρησιμοποιούμενων έργων ανοικτού κώδικα (π.χ. πυρήνες OS, βιβλιοθήκες, προγράμματα περιήγησης ή media players) μπορεί να μεγιστοποιήσει τον αντίκτυπο, καθώς αυτά τα έργα συνήθως στηρίζουν ένα ευρύ φάσμα καταναλωτικών προϊόντων.Οι γρήγοροι κύκλοι ενημερώσεων λογισμικού αυτών των προϊόντων μπορούν γρήγορα να πάρουν τρωτά σημεία στις τελευταίες ενημερώσεις των έργων FOSS αν δεν εφαρμοστούν αυστηρές αναθεωρήσεις ασφαλείας και δοκιμές πριν από κάθε ενημέρωση λογισμικού ή κυκλοφορία. Από μια ολιστική κοινωνική προοπτική, το συνολικό κόστος δοκιμών ασφαλείας μπορεί να βελτιστοποιηθεί με τον εντοπισμό τέτοιων ευάλωτων αλλαγών κώδικα νωρίς κατά την προκαταβολή, προτού οι αλλαγές αυτές υποβληθούν σε αρχεία αποθήκευσης έργων ανοικτού κώδικα. Αυτά τα έργα downstream δεν μπορούν να βασιστούν στα πρώτα έργα downstream για να βρουν και να διορθώσουν τα συγχωνευμένα, upstream ευπάθειες επειδή το χρονοδιάγραμμα για τέτοιες διορθώσεις και η επακόλουθη upstream είναι απρόβλεπτη (π.χ., εν μέρει λόγω των εσωτερικών πολιτικών [22]). Μια αφελής προσέγγιση που απαιτεί ολοκληρωμένες αναθεωρήσεις ασφαλείας για κάθε αλλαγή κώδικα προκαλεί μη ρεαλιστικό κόστος για πολλούς ιδιοκτήτες έργων ανοικτού κώδικα. Αυτό ισχύει ιδιαίτερα για τα έργα FOSS που λαμβάνουν υψηλό όγκο αλλαγών κώδικα ή απαιτούν εξειδικευμένη εμπειρογνωμοσύνη ασφαλείας για αναθεωρήσεις (π.χ., ειδικά για τους τομείς). Ένα πλαίσιο που αυτοματοποιεί την αξιολόγηση ευπάθειας των αλλαγών κώδικα χρησιμοποιώντας έναν ταξινομητή μηχανικής μάθησης (ML). Vulnerability Prevention (VP) Το μοντέλο ταξινόμησης εκτιμά την πιθανότητα ότι μια δεδομένη αλλαγή κώδικα περιέχει ή προκαλεί τουλάχιστον μία ευπάθεια ασφαλείας. Οι αλλαγές κώδικα που υπερβαίνουν ένα όριο είναι πιθανό να είναι ευάλωτες. Το μοντέλο εκπαιδεύεται στα ιστορικά δεδομένα που παράγονται χρησιμοποιώντας ένα σύνολο σχετικών εργαλείων ανάλυσης. Το μοντέλο χρησιμοποιεί τα κοινά χαρακτηριστικά που χρησιμοποιούνται για την πρόβλεψη σφαλμάτων λογισμικού καθώς και τέσσερις τύπους νέων χαρακτηριστικών που καταγράφουν: 1) η πολυπλοκότητα του patch set, 2) τα πρότυπα αναθεώρησης κώδικα, (3) το στάδιο του κύκλου ζωής ανάπτυξης λογισμικού κάθε αρχείου πηγαίου κώδικα, και (4) η φύση μιας αλλαγής κώδικα, όπως προσδιορίζεται με την ανάλυση των επεξεργασμένων γραμμών πηγαίου κώδικα. Συνολικά, αυτή η μελέτη εξετάζει εκτενώς 6 τύπους ταξινομητών χρησιμοποιώντας πάνω από 30 τύπους δεδομένων χαρακτηριστικών για τη βελτιστοποίηση της ακρίβειας του μοντέλου ML. Για να δημιουργήσουμε τα δεδομένα κατάρτισης και δοκιμών, αξιοποιούμε τα σφάλματα ασφαλείας που ανακαλύφθηκαν και διορθώθηκαν στο Android Open Source Project (AOSP)1 .Είναι ειδικά στοχευμένο στο AOSP media project2 (δηλαδή, για την επεξεργασία δεδομένων πολυμέσων) που έχει δοκιμαστεί εκτενώς και έτσι αποκάλυψε πολλά ελαττώματα ασφαλείας. (1) προσδιορίστε τις αλλαγές (αλλαγές) που σχετίζονται με την επιδιόρθωση ευπάθειας που σχετίζονται με κάθε σφάλμα ασφαλείας στόχου και (2) αναδρομικές αλλαγές που προκαλούν ευπάθεια που σχετίζονται με κάθε μία από τις αναγνωρισμένες αλλαγές που διορθώνουν την ευπάθεια.Όλες οι αναγνωρισμένες αλλαγές που προκαλούν ευπάθεια αναλύονται και επαληθεύονται χειροκίνητα πριν συσχετιστούν με τα αντίστοιχα σφάλματα ασφαλείας. Η Η αξιολόγηση χρησιμοποιώντας το πρώτο έτος των δεδομένων προσδιορίζει το τυχαίο δάσος ως τον πιο αποτελεσματικό ταξινομητή με βάση την ακρίβειά του. Ο ταξινομητής προσδιορίζει ~60% των αλλαγών κώδικα που προκαλούν ευπάθεια με ακρίβεια ~85%. Προσδιορίζει επίσης ~99% των πιθανών-κανονικών αλλαγών κώδικα με ακρίβεια ~97% όταν χρησιμοποιεί όλα τα χαρακτηριστικά για την εκπαίδευση και τις δοκιμές. N-fold Όταν εφαρμόζεται σε περίπου έξι χρόνια δεδομένων ευπάθειας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 (Android Open Source Project) ως μελέτη περιπτώσεων. Μια αλλαγή κώδικα (απλά, αλλαγή) αποτελείται από ένα σύνολο γραμμών πηγαίου κώδικα που προστίθενται, διαγράφονται ή/και επεξεργάζονται για αρχεία πηγαίου κώδικα σε ένα αποθετήριο πηγαίου κώδικα (π.χ. git). Ένας τυπικός μηχανικός λογισμικού στέλνει μια αλλαγή κώδικα σε μια υπηρεσία αναθεώρησης κώδικα (π.χ. Gerrit4) για υποχρεωτικές αναθεωρήσεις κώδικα πριν από την υποβολή. Μια αλλαγή κώδικα αποδίδεται σε έναν συγγραφέα που έχει μια σχετική διεύθυνση ηλεκτρονικού ταχυδρομείου στο AOSP. Η αλλαγή μπορεί επίσης να έχει έναν ή περισσότερους αναθεωρητές κώδικα. Τόσο ο Αλλαγή κώδικα . Αλλαγή κώδικα Κατά τη διάρκεια της διαδικασίας αναθεώρησης κώδικα, μια αλλαγή κώδικα μπορεί να υποβληθεί σε πολλαπλές αναθεωρήσεις, με αποτέλεσμα ένα ή περισσότερα σύνολα ενημερώσεων.Κάθε σύνολο ενημερώσεων που μεταφορτώνεται στην υπηρεσία αναθεώρησης κώδικα αντιπροσωπεύει μια ενημερωμένη έκδοση της αλλαγής κώδικα. Ο συντάκτης αλλαγής κώδικα μπορεί να αναθεωρήσει και να υποβάλει εκ νέου την αλλαγή ως νέο σύνολο τροποποιήσεων για περαιτέρω αναθεώρηση ή έγκριση από τον καθορισμένο αναθεωρητή κώδικα. Τα βασικά δικαιώματα αναθεωρητή περιλαμβάνουν: ένα σκορ +1 για να υποδείξει ότι η αλλαγή φαίνεται καλή στον αναθεωρητή, ένα σκορ +2 για να εγκρίνει την αλλαγή κώδικα, ένα σκορ -1 για να πει ότι η αλλαγή δεν φαίνεται καλή (π.χ. ένα μικρό πρόβλημα) και ένα σκορ -2 για να εμποδίσει την υποβολή αλλαγής κώδικα. Κωδικός αναθεώρησης . Κωδικός αναθεώρησης . Για παράδειγμα, ένας κανόνας προσαρμοσμένης αναθεώρησης είναι να επιτρέπεται στους συντάκτες να επισημαίνουν τις αλλαγές του κώδικα τους έτοιμες για δοκιμή υποβολής, επειδή συχνά οι συντάκτες ανεβάζουν μη τελικές εκδόσεις στην υπηρεσία αναθεώρησης κώδικα (π.χ. για να ελέγξουν τα diffs5 και την προκαταρκτική ανατροφοδότηση). Αυτό το έγγραφο είναι διαθέσιμο στο αρχείο υπό την άδεια CC by 4.0 Deed (Attribution 4.0 International). Αυτό το έγγραφο είναι διαθέσιμο στο αρχείο υπό την άδεια CC by 4.0 Deed (Attribution 4.0 International). Αρχειοθέτηση