Περίληψη
Τα σύγχρονα συστήματα λογισμικού είναι πολύπλοκα, διασυνδεδεμένα και εκτεθειμένα σε απειλές ασφαλείας. Αποτελεί αναγκαιότητα για τις εταιρείες λογισμικού να εντοπίζουν τις ευπάθειες λογισμικού, οι οποίες είναι σφάλματα στον κώδικα που απειλούν την ποιότητα και την αξιοπιστία του λογισμικού, εκθέτοντας τους οργανισμούς σε κυβερνοεπιθέσεις και οδηγώντας ενδεχομένως σε οικονομικές ζημίες. Παρόλο που η ασφάλεια λογισμικού αντιμετωπίζεται παραδοσιακά ως μεταγενέστερη σκέψη που προστίθεται κατά τη φάση ανάπτυξης του Κύκλου Ζωής Ανάπτυξης Λογισμικού (ΚΖΑΛ), η Ανίχνευση Ευπαθειών (AE) πρέπει να πραγματοποιείται από τα αρχικά στάδια του ΚΖΑΛ για να διευκολύνεται ο έγκαιρος μετριασμός των ευπαθειών. Έχουν προταθεί διάφορες τεχνικές ΑΕ, όπως η στατική ανάλυση κώδικα, η οποία βασίζεται σε χειροκίνητα ορισμένους κανόνες. Ωστόσο, η αυξανόμενη συχνότητα των αναφερόμενων περιστατικών ασφάλειας υποδηλώνει ότι απαιτούνται πιο προηγμένες τεχνικές. Καθώς η Μηχανική Μάθηση (ΜΜ) έχει εξελιχθεί, έχουν εμφανι ...
Τα σύγχρονα συστήματα λογισμικού είναι πολύπλοκα, διασυνδεδεμένα και εκτεθειμένα σε απειλές ασφαλείας. Αποτελεί αναγκαιότητα για τις εταιρείες λογισμικού να εντοπίζουν τις ευπάθειες λογισμικού, οι οποίες είναι σφάλματα στον κώδικα που απειλούν την ποιότητα και την αξιοπιστία του λογισμικού, εκθέτοντας τους οργανισμούς σε κυβερνοεπιθέσεις και οδηγώντας ενδεχομένως σε οικονομικές ζημίες. Παρόλο που η ασφάλεια λογισμικού αντιμετωπίζεται παραδοσιακά ως μεταγενέστερη σκέψη που προστίθεται κατά τη φάση ανάπτυξης του Κύκλου Ζωής Ανάπτυξης Λογισμικού (ΚΖΑΛ), η Ανίχνευση Ευπαθειών (AE) πρέπει να πραγματοποιείται από τα αρχικά στάδια του ΚΖΑΛ για να διευκολύνεται ο έγκαιρος μετριασμός των ευπαθειών. Έχουν προταθεί διάφορες τεχνικές ΑΕ, όπως η στατική ανάλυση κώδικα, η οποία βασίζεται σε χειροκίνητα ορισμένους κανόνες. Ωστόσο, η αυξανόμενη συχνότητα των αναφερόμενων περιστατικών ασφάλειας υποδηλώνει ότι απαιτούνται πιο προηγμένες τεχνικές. Καθώς η Μηχανική Μάθηση (ΜΜ) έχει εξελιχθεί, έχουν εμφανιστεί τεχνικές που βασίζονται στη μάθηση για τον εντοπισμό ευπαθειών, ξεπερνώντας τους περιορισμούς της παραδοσιακής στατικής ανάλυσης. Ένας μηχανισμός βασισμένος στην ΜΜ που μπορεί να διευκολύνει τον εντοπισμό ευπαθειών είναι η Πρόβλεψη Ευπαθειών (ΠΕ), η οποία προβλέπει τα συστατικά (π.χ. αρχεία, συναρτήσεις κ.λπ.) ενός προϊόντος λογισμικού που είναι πιο πιθανό να είναι ευπαθή. Συνήθως, η ΠΕ πραγματοποιείται με την εκπαίδευση μοντέλων ΜΜ σε επισημασμένα σύνολα δεδομένων για τη διάκριση των ευπαθών από τα μη ευπαθή συστατικά. Αναφερόμαστε στον όρο ΠΕ όταν προβλέπουμε την ύπαρξη ευπαθειών σε συστατικά λογισμικού υψηλής λεπτομέρειας (π.χ. πακέτο, κλάση, συνάρτηση κ.λπ.), ενώ αναφερόμαστε στον όρο ΑΕ όταν ανιχνεύουμε ευπάθειες σε χαμηλό επίπεδο λεπτομέρειας (π.χ. επίπεδο γραμμής). Ωστόσο, οι υπάρχουσες μέθοδοι που βασίζονται στην ΜΜ αντιμετωπίζουν σημαντικούς περιορισμούς και καμία τεχνική δεν έχει αναδειχθεί ως ο «χρυσός κανόνας». Υπάρχουν προκλήσεις όσον αφορά τις χρησιμοποιούμενες μορφές αναπαράστασης κώδικα και τα μοντέλα ΜΜ, και ιδίως όσον αφορά την ακριβή ανίχνευση ευπαθειών σε χαμηλά επίπεδα λεπτομέρειας και την κατηγοριοποίησή τους. Αυτό υπογραμμίζει την ανάγκη για πρόσθετη έρευνα για τη σκιαγράφηση του πεδίου, τη σύγκριση των υφιστάμενων μεθόδων και την εξέλιξη του επιπέδου της τρέχουσας τεχνογνωσίας. Για το σκοπό αυτό, ο στόχος της παρούσας διατριβής είναι να μελετήσει την τρέχουσα βιβλιογραφία και να συγκρίνει εμπειρικά διαφορετικές αναπαραστάσεις κώδικα, μοντέλα και χαρακτηριστικά. Στόχος της είναι επίσης να προτείνει μια καινοτόμο και ολοκληρωμένη μεθοδολογία ΑΕ αξιοποιώντας τις πλέον προηγμένες τεχνικές από τους τομείς της Τεχνητής Νοημοσύνης (ΤΝ) και της Επεξεργασίας Φυσικής Γλώσσας (ΕΦΓ). Συγκεκριμένα, αρχικά, η παρούσα διατριβή παρουσιάζει μια βιβλιογραφική ανασκόπηση σχετικά με την ΠΕ που βασίζεται στην ΜΜ. Πραγματοποιείται μια μελέτη χαρτογράφησης για την παροχή μιας ολοκληρωμένης περιγραφής του τομέα της ΠΕ, εξετάζοντας τους στόχους των υπαρχόντων μελετών, τα σύνολα δεδομένων, τα χαρακτηριστικά και τα μοντέλα. Τα ευρήματα υπογράμμισαν ότι η έρευνα που σχετίζεται με την ΠΕ επικεντρώνεται κυρίως στην πρόβλεψη ευπαθών συστατικών λογισμικού. Τα σύνολα δεδομένων που χρησιμοποιούνται πιο συχνά αποτελούνται από πραγματικό λογισμικό και αντλούν πληροφορίες από αναφορές σε βάσεις δεδομένων ευπαθειών, ενώ οι αλγόριθμοι Βαθιάς Μάθησης (ΒΜ) μαζί με μεθόδους αναπαράστασης του πηγαίου κώδικα σε μορφές κειμένου (συμπεριλαμβανομένων γραφημάτων πλούσιων σε κείμενο) παρουσιάζουν αυξανόμενο ενδιαφέρον. Στη συνέχεια, η παρούσα διατριβή κατασκευάζει μοντέλα ΜΜ που ενσωματώνουν έννοιες από την ΕΦΓ, τη ΒΜ και τη Συγκεντρωτική Μάθηση. Ειδικότερα, εξετάζει διάφορες τεχνικές ενσωμάτωσης λέξεων για την κωδικοποίηση κειμενικών αναπαραστάσεων κώδικα σε αριθμητική μορφή. Στη συνέχεια, συγκρίνει και συνδυάζει μετρικές λογισμικού και κειμενικές αναπαραστάσεις για την κατασκευή μοντέλων βασισμένων στη ΜΜ. Τα αποτελέσματα αποκάλυψαν την υπεροχή των μοντέλων που βασίζονται στην εξόρυξη κειμένου έναντι των μοντέλων που βασίζονται σε μετρικές λογισμικού. Τα αποτελέσματά μας έδειξαν επίσης ότι η ενίσχυση των μοντέλων εξόρυξης κειμένου με μετρικές λογισμικού δεν παρέχει πρόσθετη αξία στην προβλεπτική τους απόδοση. Επιπλέον, η παρούσα διατριβή διερευνά τεχνικές μεταφοράς μάθησης για την ΠΕ με τη χρήση Μεγάλων Γλωσσικών Μοντέλων (ΜΓΜ) βασισμένων σε Transformer. Όχι μόνο συγκρίνει διάφορα ΜΓΜ στην ΠΕ, αλλά εξετάζει επίσης την επίδραση διαφορετικών επιλογών υλοποίησης για τη μεταφορά μάθησης. Τα αποτελέσματα έδειξαν ότι η εξαγωγή συμφραζόμενων ενσωματώσεων λέξεων από ΜΓΜ για την εκπαίδευση ενός ξεχωριστού μοντέλου ΒΜ είναι μια ανώτερη προσέγγιση από την εξαγωγή ενσωμάτωσης προτάσεων και τις προσεγγίσεις λεπτομερούς ρύθμισης, λαμβάνοντας υπόψη τόσο την ακρίβεια όσο και το υπολογιστικό κόστος. Επιπλέον, παρουσιάζουμε μια μεθοδολογία για τον εντοπισμό ευπαθειών σε επίπεδο γραμμής, προτείνοντας μια προσέγγιση Ακολουθίας-προς-Ακολουθία για την εκπαίδευση ενός ΜΓΜ στην εξαγωγή ευπαθών γραμμών από ευπαθείς συναρτήσεις. Τα αποτελέσματα έδειξαν μεγάλο όφελος τόσο στην ακρίβεια όσο και στην αποδοτικότητα κόστους σε σύγκριση με τις υπάρχουσες λύσεις που βασίζονται στην επεξηγήσιμη ΤΝ. Τέλος, τα μοντέλα που βασίζονται σε Transformer αποδείχθηκαν ικανά να ταξινομούν ευπαθή κομμάτια κώδικα σε κατηγορίες ευπάθειας όταν ρυθμίζονται λεπτομερώς σε ένα πλαίσιο πολύ-κατηγορικής ταξινόμησης.
περισσότερα
Περίληψη σε άλλη γλώσσα
Modern software systems are complex, interconnected, and exposed to security threats. It is a necessity for software houses to identify vulnerabilities, which are coding flaws that threaten the software quality and reliability, exposing organizations to cyberattacks, and potentially leading to financial damages. Although software security is traditionally treated as an afterthought added during the deployment phase of the Software Development Life-Cycle (SDLC), Vulnerability Detection (VD) needs to be performed from the early stages of the SDLC to facilitate the early mitigation of vulnerabilities. Several VD techniques have been proposed such as static code analysis, which relies on manually defined rules. However, the rising frequency of reported security incidents suggests that more advanced techniques are required. As Machine Learning (ML) has advanced, learning-based techniques have emerged to detect vulnerabilities, overcoming the limitations of traditional static analysis. An ML ...
Modern software systems are complex, interconnected, and exposed to security threats. It is a necessity for software houses to identify vulnerabilities, which are coding flaws that threaten the software quality and reliability, exposing organizations to cyberattacks, and potentially leading to financial damages. Although software security is traditionally treated as an afterthought added during the deployment phase of the Software Development Life-Cycle (SDLC), Vulnerability Detection (VD) needs to be performed from the early stages of the SDLC to facilitate the early mitigation of vulnerabilities. Several VD techniques have been proposed such as static code analysis, which relies on manually defined rules. However, the rising frequency of reported security incidents suggests that more advanced techniques are required. As Machine Learning (ML) has advanced, learning-based techniques have emerged to detect vulnerabilities, overcoming the limitations of traditional static analysis. An ML-based mechanism that can facilitate the identification of vulnerabilities is Vulnerability Prediction (VP), which predicts the components (e.g., files, functions, etc.) of a software product that are more likely to be vulnerable. Commonly, VP is performed by training ML models in labeled datasets in discriminating vulnerable from non-vulnerable components. We refer to the term VP when predicting the existence of vulnerabilities in software components of high granularity (e.g., package, class, function, etc.), whereas we refer to the term VD when detecting vulnerabilities in a low level of granularity (e.g., line-level). However, existing ML-based methods face important limitations, and no single technique has emerged as a gold standard. There are challenges regarding the used code representation formats and ML models, and especially about the accurate detection of vulnerabilities at low levels of granularity and their categorization. This stresses the need for additional research to outline the field, compare existing methods, and advance the current state-of-the-art. To this end, the purpose of the present dissertation is to study the current literature, and empirically compare different code representations, models, and features. It also aims to propose an innovative and complete VD methodology leveraging cutting-edge techniques from the fields of Artificial Intelligence (AI) and Natural Language Processing (NLP). Specifically, first, this dissertation presents a literature review about ML-based VP. A mapping study is conducted to provide a comprehensive description of the VP domain by examining the goals of the state-of-the-art studies, their datasets, features, and models. The findings highlighted that VP-related research focuses mainly on predicting vulnerable software components. The most utilized datasets consist of real-world software and retrieve information from reports in vulnerability databases, while Deep Learning (DL) algorithms along with methods of representing source code in textual (including text-rich graphs) formats are of growing interest. Subsequently, the present thesis builds ML models that encapsulate concepts from NLP, DL, and Ensemble Learning. Particularly, it examines different word embedding techniques for encoding textual code representations in a numerical format. It then compares and combines software metrics and textual representations for constructing ML-based models. The results revealed the superiority of the text mining-based models over the software metrics-based ones. Our results also indicated that enriching the text mining-based models with software metrics was not found to provide any added value to their predictive performance. Furthermore, the present thesis investigates transfer learning techniques for VP by employing Transformer-based Large Language Models (LLMs). It not only compares various LLMs in VP, but also examines the effect of different implementation choices for transfer learning. The results showed that extracting contextual word embeddings from LLMs to train a separate DL model is a superior approach than sentence embedding extraction and fine-tuning approaches, considering both accuracy and computational cost. Moreover, we present a methodology for line-level vulnerability localization by proposing a Sequence-to-Sequence approach to train an LLM in extracting vulnerable lines out of vulnerable functions. The results showed a great benefit in both accuracy and cost-effectiveness compared to the explainable AI-based state-of-the-art solutions. Finally, Transformer-based models proved to be capable of classifying vulnerable code snippets to vulnerability categories when fine-tuned in a multi-class classification setting.
περισσότερα