SlideShare a Scribd company logo
1 of 16
Στατική Ανάλυση Κώδικα Python και
Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για
την Απομακρυσμένη Εκτέλεση Εφαρμογών
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Πολυτεχνική Σχολή
Τμήμα Ηλεκτρολόγων Μηχανικών &
Μηχανικών Υπολογιστών
Τομέας Ηλεκτρονικής και Υπολογιστών
Διπλωματική Εργασία
Εκπόνηση:
Κίμων Συλαίος, 9395
Επίβλεψη:
Καθ. Ανδρέας Συμεωνίδης
Υπ. Δρ. Παναγιώτου Κωνσταντίνος
Θεσσαλονίκη, Ιούλιος 2023
Κωνσταντίνος Παναγιώτου
Περιεχόμενα
● Στόχος της Διπλωματικής Εργασίας
● Γνώσεις που Αποκτήθηκαν
● Τεχνικές Στατικής Ανάλυσης Κώδικα
● Τεχνικές Εύρεσης Ευπαθειών Ασφαλείας
● Τεχνικές Ανίχνευσης Κακόβουλων Προγραμμάτων
● Υλοποίηση
● Σενάρια Χρήσης
● Συμπεράσματα
● Μελλοντικές επεκτάσεις
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Στόχος της Διπλωματικής Εργασίας
• Σημασία της Ασφάλειας Υπολογιστικών Συστημάτων
• Ρόλος Στατικής Ανάλυσης Κώδικα
• Στόχος της Διατριβής: Βελτίωση Ανίχνευσης Ευπάθειας
Ασφαλείας
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Γνώσεις που Αποκτήθηκαν
• Επισκόπηση Τεχνικών Στατικής Ανάλυσης Κώδικα
• Κατανόηση κοινών ευπαθειών ασφαλείας
• Πληροφορίες για τις τεχνικές ανίχνευσης κακόβουλων
λογισμικού
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Τεχνικές Στατικής Ανάλυσης Κώδικα (1/2)
• Ορισμός Στατικής Ανάλυσης Κώδικα
• Linting
• Ανάλυση ροής ελέγχου
• Ανάλυση ροής δεδομένων
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Τεχνικές Στατικής Ανάλυσης Κώδικα (2/2)
• Ανάλυση πολυπλοκότητας
• Αντιστοίχιση Μοτίβου
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Τεχνικές Εύρεσης Ευπαθειών Ασφ. (1/2)
• Επικύρωση εισόδου
• Κωδικοποίηση εξόδου
• Αυθεντικοποίηση και έλεγχος πρόσβασης
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Τεχνικές Εύρεσης Ευπαθειών Ασφ. (2/2)
• Κρυπτογράφηση
• Έλεγχος εξαιρέσεων
• Υπερχείλιση Προσωρινής Μνήμης
• SQL Injection
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Τεχνικές Ανίχνευσης Κακόβουλων
Λογισμικών (1/2)
• Ανίχνευση βάσει υπογραφής
• Ανίχνευση βάσει συμπεριφοράς
• Ανίχνευση συσκότισης κώδικα
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Τεχνικές Ανίχνευσης Κακόβουλων
Λογισμικών (2/2)
• Ανάλυση κλήσεων API
• Ανάλυση ροής ελέγχου
• Ανάλυση Εντροπίας
• Εφαρμογές Μηχανικής Μάθησης
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Υλοποίηση
• Λύση που βασίζεται σε Python
• Στατική Ανάλυση Κώδικα στην Πράξη
• Έλεγχοι για διευθύνσεις IP, διευθύνσεις URL, κλήσεις
API
• Τεχνικές Anti-Debugging και Anti-Virtualization
• Ανάλυση εντροπίας για ανίχνευση συσκότισης
• Σύγκριση βάσεων δεδομένων κακόβουλου λογισμικού
που βασίζεται σε σύννεφο
• Βασική Δυναμική Ανάλυση σε Εικονική Μηχανή
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Σενάρια Χρήσης – Ανάλυση URL
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Σενάρια Χρήσης – Έλεγχος στο νέφος
Κίμων Συλαίος
Κωνσταντίνος Παναγιώτου
Συμπεράσματα
Κίμων Συλαίος
• Αξία και Περιορισμοί Στατικής Ανάλυσης
• Κρίσιμος ρόλος της χρηστικότητας
• Σημασία των τακτικών ενημερώσεων
Κωνσταντίνος Παναγιώτου
Μελλοντικές Επεκτάσεις
Κίμων Συλαίος
• Ενισχυμένη δυναμική ανάλυση
• Ενσωμάτωση μηχανικής μάθησης
• Ενσωμάτωση για άλλες γλώσσες
• Βελτιώσεις διεπαφής χρήστη
• Ενσωμάτωση στο σύννεφο
• Ανάλυση σε πραγματικό χρόνο
• Προηγμένοι έλεγχοι ασφαλείας API
• Υποστήριξη δυαδικής ανάλυσης
Κωνσταντίνος Παναγιώτου
Ευχαριστίες
Κίμων Συλαίος
• Σας ευχαριστώ για την προσοχή σας
• Ερωτήσεις;

More Related Content

Similar to Static Analysis of Python code and Identification of Potential Security Vulnerabilities for Remote Execution of Applications.

Νικόλαος Κατιρτζής 7185
Νικόλαος Κατιρτζής 7185Νικόλαος Κατιρτζής 7185
Νικόλαος Κατιρτζής 7185ISSEL
 
Real-Time Detection Of Abnormal User Behavior In Web Applications Using Machi...
Real-Time Detection Of Abnormal User Behavior In Web Applications Using Machi...Real-Time Detection Of Abnormal User Behavior In Web Applications Using Machi...
Real-Time Detection Of Abnormal User Behavior In Web Applications Using Machi...ISSEL
 
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...ISSEL
 
Βασίλειος Λώλης 5638
Βασίλειος Λώλης 5638Βασίλειος Λώλης 5638
Βασίλειος Λώλης 5638ISSEL
 
Stelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationISSEL
 
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...ISSEL
 
Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...ISSEL
 
Dimitrios Tatsis
Dimitrios TatsisDimitrios Tatsis
Dimitrios TatsisISSEL
 
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...WROHellas
 
Κωνσταντίνος Σιδέρης 7254
Κωνσταντίνος Σιδέρης 7254Κωνσταντίνος Σιδέρης 7254
Κωνσταντίνος Σιδέρης 7254ISSEL
 
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...WROHellas
 
Terracom : QR patrol pro
Terracom : QR patrol proTerracom : QR patrol pro
Terracom : QR patrol proiNNOVact
 
Konstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis PresentationKonstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis PresentationISSEL
 
Nikolaos Oikonomou
Nikolaos OikonomouNikolaos Oikonomou
Nikolaos OikonomouISSEL
 
Μιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλISSEL
 
Jumbo case study - Modus AE
Jumbo case study - Modus AEJumbo case study - Modus AE
Jumbo case study - Modus AEModus AE
 
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...ISSEL
 

Similar to Static Analysis of Python code and Identification of Potential Security Vulnerabilities for Remote Execution of Applications. (20)

Νικόλαος Κατιρτζής 7185
Νικόλαος Κατιρτζής 7185Νικόλαος Κατιρτζής 7185
Νικόλαος Κατιρτζής 7185
 
Real-Time Detection Of Abnormal User Behavior In Web Applications Using Machi...
Real-Time Detection Of Abnormal User Behavior In Web Applications Using Machi...Real-Time Detection Of Abnormal User Behavior In Web Applications Using Machi...
Real-Time Detection Of Abnormal User Behavior In Web Applications Using Machi...
 
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...
 
Βασίλειος Λώλης 5638
Βασίλειος Λώλης 5638Βασίλειος Λώλης 5638
Βασίλειος Λώλης 5638
 
ThesisPresentation
ThesisPresentationThesisPresentation
ThesisPresentation
 
Stelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentation
 
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
 
Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...
 
Dimitrios Tatsis
Dimitrios TatsisDimitrios Tatsis
Dimitrios Tatsis
 
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
 
Εργαστήριο Τεχνητής Νοημοσύνης και Μηχανικής Συστημάτων
Εργαστήριο Τεχνητής Νοημοσύνης και Μηχανικής ΣυστημάτωνΕργαστήριο Τεχνητής Νοημοσύνης και Μηχανικής Συστημάτων
Εργαστήριο Τεχνητής Νοημοσύνης και Μηχανικής Συστημάτων
 
Κωνσταντίνος Σιδέρης 7254
Κωνσταντίνος Σιδέρης 7254Κωνσταντίνος Σιδέρης 7254
Κωνσταντίνος Σιδέρης 7254
 
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
 
KanoutasThomasThesis
KanoutasThomasThesisKanoutasThomasThesis
KanoutasThomasThesis
 
Terracom : QR patrol pro
Terracom : QR patrol proTerracom : QR patrol pro
Terracom : QR patrol pro
 
Konstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis PresentationKonstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis Presentation
 
Nikolaos Oikonomou
Nikolaos OikonomouNikolaos Oikonomou
Nikolaos Oikonomou
 
Μιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ Παπαμιχαήλ
 
Jumbo case study - Modus AE
Jumbo case study - Modus AEJumbo case study - Modus AE
Jumbo case study - Modus AE
 
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...
 

More from ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...ISSEL
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...ISSEL
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxISSEL
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ISSEL
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςISSEL
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...ISSEL
 

More from ISSEL (20)

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
 

Static Analysis of Python code and Identification of Potential Security Vulnerabilities for Remote Execution of Applications.

Editor's Notes

  1. Τα υπολογιστικά συστήματα έχουν γίνει αναπόσπαστο μέρος της καθημερινότητάς μας με τον έναν ή τον άλλο τρόπο. Όσο αυξάνεται η απήχηση τους, το ίδιο αυξάνεται και η ανάγκη για ισχυρούς μηχανισμούς ασφαλείας για την προστασία τους από πιθανές απειλές και ευπάθειες ασφαλείας. Σε αυτό το πλαίσιο, έρχεται η Στατική Ανάλυση Κώδικα. Είναι μια μέθοδος εντοπισμού σφαλμάτων εξετάζοντας τον πηγαίο κώδικα πριν από την εκτέλεση ενός προγράμματος. Είναι ζωτικής σημασίας γιατί μας βοηθά να εντοπίζουμε σφάλματα ή ευπάθειες ασφαλείας νωρίς στον κύκλο ανάπτυξης των λογισμικών, εξοικονομώντας χρόνο και πόρους, και στην ουσία χρήμα. Ο στόχος, ο πυρήνας δηλαδή αυτής της διπλωματικής, είναι να αξιοποιήσουμε τη Στατική Ανάλυση Κώδικα για να βελτιώσουμε τον εντοπισμό ευπαθειών ασφαλείας στα Υπολογιστικά Συστήματα. Μέσω αυτής της έρευνας, επιτυγχάνεται η ενίσχυση των επιδόσεων και της αποτελεσματικότητας εντοπισμού πιθανών απειλών για την ασφάλεια, συμβάλλοντας έτσι στη δημιουργία ασφαλέστερων συστημάτων.
  2. Σε όλη τη πορεία αυτής της έρευνας, αποκτήθηκε εις βάθος γνώση σε τρεις βασικούς τομείς. Αρχικά, έγινε εμβαθύνση στις διάφορες τεχνικές που χρησιμοποιούνται στην Στατική Ανάλυση Κώδικα. Αυτό περιλαμβάνει μεθόδους όπως το linting, το οποίο βοηθά στον εντοπισμό πιθανών προγραμματιστικών σφαλμάτων, και την ανάλυση ροής ελέγχου, που εξετάζει τη διαδρομή εκτέλεσης ενός προγράμματος. Στη συνέχεια, μελετήθηκε ο χώρος των κοινών ευπαθειών ασφαλείας. Αυτός καλύπτει πιθανά αδύναμα σημεία σε συστήματα που μπορούν να αξιοποιηθούν, όπως ζητήματα με επικύρωση εισόδου, αυθεντικοποίηση, και υπερχείλιση προσωρινής μνήμης. Τέλος, εξετάστηκε ο ενδιαφέρον κόσμος των τεχνικών ανίχνευσης κακόβουλων λογισμικών. Μελετήθηκε ο εντοπισμός βάσει υπογραφής και βάσει συμπεριφοράς, ο ρόλος της μηχανικής μάθησης στον εντοπισμό κακόβουλων προγραμμάτων και πολλά άλλα. Αυτός ο συνδυασμός γνώσεων μου έδωσε μια πιο σφαιρική κατανόηση των διαφορετικών πτυχών της κυβερνοασφάλειας στα υπολογιστικά συστήματα και έθεσε τις βάσεις για την υλοποίηση της εφαρμογής που αναπτύχθηκε στα πλαίσια της παρούσας διπλωματικής.
  3. Ας εμβαθύνουμε στις τεχνικές ανάλυσης στατικού κώδικα που μελετήθηκαν. Αλλά πρώτα, τι είναι η Στατική Ανάλυση Κώδικα; Με απλά λόγια, είναι η διαδικασία εντοπισμού σφαλμάτων του πηγαίου κώδικα ενός προγράμματος χωρίς να το εκτελέσουμε, απλά διαβάζοντας τον κώδικα του (python ή κώδικας μηχανής). Μία από τις θεμελιώδεις τεχνικές που εξετάσαμε είναι το linting. Αυτό βοηθά στον εντοπισμό προγραμματιστικών σφαλμάτων, bugs, στιλιστικών σφαλμάτων και ύποπτων δομών δεδομένων. Είναι σαν να έχετε ένα αυτοματοποιημένο μηχάνημα διόρθωσης του κώδικά σας! Μελετήθηκε επίσης η ανάλυση ροής ελέγχου, μια μέθοδος που παρέχει μια προβολή όλων των πιθανών διαδρομών εκτέλεσης του προγράμματος. Βοηθά στην αποκάλυψη προβλημάτων που σχετίζονται με τις δομές ελέγχου του προγράμματος, όπως άπειρους βρόχους ή μη προσβάσιμο κώδικα. Στη συνέχεια, εξετάστηκε η ανάλυση ροής δεδομένων, η οποία μας βοηθά να κατανοήσουμε πώς μετακινούνται τα δεδομένα ενός προγράμματος. Είναι ένα εξαιρετικό εργαλείο για την αποκάλυψη ζητημάτων που σχετίζονται με δεδομένα, όπως η χρήση μη αρχικοποιημένων δεδομένων.
  4. Συνεχίζοντας την εξερεύνηση των τεχνικών Στατικής Ανάλυσης Κώδικα, έχουμε την ανάλυση πολυπλοκότητας. Αυτή η διαδικασία αξιολογεί τους πόρους που χρειάζεται ένα πρόγραμμα καθώς εκτελείται, είτε είναι χρόνος είτε χώρος. Μας βοηθάει να κατανοήσουμε την αποτελεσματικότητα του κώδικά μας. Και μετά ερχόμαστε στο Pattern Matching, την αντιστοίχιση μοτίβου, μια τεχνική που θυμίζει την φράση «ψάχνω βελόνα μέσα στ’ άχυρα». Περιλαμβάνει την εύρεση συγκεκριμένων ακολουθιών δεδομένων που ταιριάζουν με ένα προκαθορισμένο μοτίβο ή ένα σύνολο κανόνων. Αυτό είναι ιδιαίτερα χρήσιμο για τον εντοπισμό ορισμένων τύπων ευπαθειών ασφαλείας ή κακών πρακτικών στον κώδικα. Μέσω αυτών των τεχνικών, προσπαθούμε να εξετάσουμε τον πηγαίο κώδικα ενός προγράμματος με ολοκληρωμένο τρόπο για να εντοπίσουμε πιθανές ευπάθειες ή μη αποδοτικές τεχνικές.
  5. Ο εντοπισμός των ευπαθειών ασφαλείας είναι παρόμοιος με τον εντοπισμό αδύναμων κρίκων στην άμυνά μας. Ας συζητήσουμε μερικές βασικές τεχνικές για την εύρεση τέτοιων ευπαθειών. Η πρώτη γραμμή άμυνας είναι συχνά η «Επικύρωση εισόδου». Αυτή η τεχνική διασφαλίζει ότι μόνο σωστά μορφοποιημένα δεδομένα εισέρχονται στο σύστημά μας, μετριάζοντας έτσι τις απειλές από κακόβουλες εισόδους χρηστών. Η «Κωδικοποίηση εξόδου» είναι μια άλλη σημαντική τεχνική. Διασφαλίζει ότι τα δεδομένα εξόδου του προγράμματός μας δεν μπορούν να ερμηνευθούν ως εκτελέσιμες εντολές, τις οποίες θα μπορούσαν να τις εκμεταλλευτούν κακόβουλοι χρήστες. Τέλος, εμβαθύνουμε στην «Αυθεντικοποίηση και έλεγχος πρόσβασης». Αυτή η θεμελιώδης τεχνική ασφάλειας προσδιορίζει ποιος μπορεί να έχει πρόσβαση στο σύστημά μας και ποιες ενέργειες μπορούν να εκτελέσουν. Επιβάλλοντας αυστηρούς ελέγχους πρόσβασης, περιορίζουμε την πιθανότητα μη εξουσιοδοτημένων ενεργειών.
  6. Συνεχίζοντας, εξετάστηκε η "Κρυπτογράφηση". Αυτή η τεχνική κρυπτογραφεί ευαίσθητες πληροφορίες για να αποτρέψει τη μη εξουσιοδοτημένη πρόσβαση, λειτουργώντας ως κλειδαριά στις ψηφιακές μας πόρτες. Στη συνέχεια, υπάρχει ο «Έλεγχος εξαιρέσεων». Με την προσεκτική διαχείριση μη αναμενόμενων περιπτώσεων ή συνθηκών με εξαιρέσεις, μπορούμε να εμποδίσουμε το σύστημά μας να αποκαλύψει ευαίσθητες πληροφορίες. Μελετήθηκε επίσης η απειλή της «Υπερχείλισης Προσωρινής Μνήμης», μια κατάσταση όπου ένα πρόγραμμα υπερβαίνει το όριο της προσωρινής μνήμης και αντικαθιστά τη γειτονική μνήμη. Αυτό μπορεί να αξιοποιηθεί για την εισαγωγή κακόβουλου κώδικα ή το κρασάρισμα του συστήματος. Τέλος, «SQL Injection». Αυτή η τεχνική έχει να κάνει με τις μη εξουσιοδοτημένες εντολές στις βάσεις δεδομένων. Με την «απολύμανση» της εισόδου και τη χρήση παραμετροποιημένων ερωτημάτων, μπορούμε να αποτρέψουμε τις προσπάθειες να πειράξουν τα δεδομένα μας. Έτσι, συλλογικά, αυτές οι τεχνικές αποτελούν την εργαλειοθήκη μας για την εύρεση και την εξουδετέρωση των ευπαθειών ασφαλείας
  7. Έχοντας εξετάσει πώς βρίσκουμε ευπάθειες ασφαλείας, ας δούμε τώρα πώς αντιμετωπίζουμε τις κακόβουλες οντότητες που επιδιώκουν να τις εκμεταλλευτούν: Κακόβουλα λογισμικά. Μελετήθηκαν διάφορες τεχνικές για τον εντοπισμό τέτοιων απειλών. Πρώτον, χρησιμοποιούμε την ανίχνευση βάσει υπογραφής. Ουσιαστικά είναι σαν να αναγνωρίζεις έναν εγκληματία από τα δακτυλικά του αποτυπώματα. Ελέγχουμε τον κώδικα σε μια βάση δεδομένων γνωστών υπογραφών κακόβουλων λογισμικών. Αν βρεθεί κάτι που να ταιριάζει, έχουμε έναν ύποπτο! Στη συνέχεια, εφαρμόζουμε την ανίχνευση βάσει συμπεριφοράς. Αντί να ψάχνουμε για γνωστές υπογραφές, παρατηρούμε τη συμπεριφορά του κώδικα. Εάν αρχίσει να λειτουργεί ύποπτα, μπορούμε να το σημειώσουμε για έλεγχο. Τέλος, εξετάζουμε την ανίχνευση συσκότισης κώδικα. Κάποιο κακόβουλο λογισμικό προσπαθεί να κρύψει τις πραγματικές του προθέσεις θολώνοντας ή ανακατεύοντας τον κώδικά του. Ανιχνεύοντας τέτοιες απόπειρες συσκότισης, μπορούμε να αποκαλύψουμε το κακόβουλο λογισμικό που κρύβεται από πίσω.
  8. Συνεχίζοντας την περιήγησή μας στις τεχνικές ανίχνευσης κακόβουλου λογισμικού, ξεκινάμε με την Ανάλυση κλήσεων API. Ορισμένα κακόβουλα προγράμματα αλληλεπιδρούν με το σύστημα χρησιμοποιώντας κλήσεις Διασύνδεσης Προγραμματισμού Εφαρμογών (API). Παρακολουθώντας και αναλύοντας αυτές τις κλήσεις, μπορούμε να εντοπίσουμε μία μη φυσιολογική συμπεριφορά. Στη συνέχεια, υπάρχει η Ανάλυση ροής ελέγχου. Ακριβώς όπως στην ανάλυση στατικού κώδικα, εδώ εξετάζουμε τη σειρά εντολών που ακολουθεί το πρόγραμμα. Παρατυπίες σε αυτήν τη ροή θα μπορούσαν να υποδηλώνουν την παρουσία κακόβουλου λογισμικού. Μελετήθηκε επίσης η ανάλυση εντροπίας. Η υψηλή εντροπία υποδηλώνει ότι τα δεδομένα είναι τυχαία ή κρυπτογραφημένα - κάτι που μπορεί να υπάρχει σε συσκοτισμένο κώδικα κακόβουλου λογισμικού. Έτσι, μπορεί να είναι μια καλή ένδειξη κρυφού κακόβουλου κώδικα. Τέλος, διερευνήθηκε η χρήση της Μηχανικής Μάθησης. Εκπαιδεύοντας ένα μοντέλο σε γνωστά δείγματα κακόβουλων λογισμικών, μπορούμε να το χρησιμοποιήσουμε για να εντοπίσουμε τελείως νέο κακόβουλο λογισμικό. Μαζί, αυτές οι τεχνικές μας παρέχουν μια ισχυρή στρατηγική για τον εντοπισμό και την αποτροπή επιθέσεων κακόβουλων λογισμικών.
  9. Μόλις καταλάβαμε καλά αυτές τις τεχνικές, υλοποιήσαμε μια λύση βασισμένη στην γλώσσα Python για να εφαρμόσουμε τη θεωρία στην πράξη. Το πρόγραμμά μας πραγματοποιεί μια σειρά ελέγχων στον κώδικα. Αναλύει διευθύνσεις IP και διευθύνσεις URL και ελέγχει τις κλήσεις API, ψάχνοντας κάτι ύποπτο. Έχουμε επίσης συμπεριλάβει ελέγχους για τεχνικές anti-debugging και anti-virtualization που ενδέχεται να χρησιμοποιήσει κακόβουλο λογισμικό για να αποφύγει τον εντοπισμό. Το πρόγραμμά μας πραγματοποιεί ανάλυση εντροπίας, ελέγχοντας εάν ο κώδικας είναι συσκοτισμένος. Επίσης, ανεβάζει το αρχείο σε μια βάση δεδομένων στο cloud για να το διασταυρώσει με γνωστά δείγματα κακόβουλων λογισμικών, αυξάνοντας τις πιθανότητές μας να ανιχνεύσουμε απειλές. Τέλος, εντάχθηκε ένα επίπεδο δυναμικής ανάλυσης εκτελώντας το αρχείο σε μια ασφαλή εικονική μηχανή, ελέγχοντας τις συνδέσεις που προσπαθεί να δημιουργήσει. Αυτή η ολοκληρωμένη προσέγγιση αποτελεί παράδειγμα για το πώς μπορούμε να συνδυάσουμε διαφορετικές μεθόδους για να παρέχουμε ένα ισχυρό και αποτελεσματικό εργαλείο για τον εντοπισμό ευπαθειών ασφαλείας και κακόβουλου λογισμικού στον κώδικα.
  10. Το συγκεκριμένο malware κατεβάζει και εκτελεί ένα κακόβουλο αρχείο στον υπολογιστή μας. Το εργαλείο που υλοποιήθηκε εντοπίζει όλες τις διευθύνσεις URL και τις περνάει από έλεγχο για να βρει αν είναι ύποπτες. Στο συγκεκριμένο παράδειγμα, το εργαλείο μας βρίσκει πως η διεύθυνση URL απ’ όπου κατεβαίνει το κακόβουλο αρχείο, είναι ύποπτη σε 4 απ’ τις 5 βάσεις με κακόβουλα URL. Σε διαφορετική περίπτωση, αν το URL ήταν άλλο, το εργαλείο μας θα εμφάνιζε πως το πρόγραμμα προς εξέταση περνάει επιτυχώς από τον έλεγχο.
  11. Στο δεύτερο σενάριο χρήσης, βλέπουμε έναν πολύ απλό keylogger, ένα πρόγραμμα που καταγράφει κάθε πλήκτρο που πατάμε στο πληκτρολόγιο, αποθηκεύοντας έτσι κωδικούς, μηνύματα κλπ. Το εργαλείο μας, ανεβάζοντας το keylogger στο cloud για έλεγχο βάσει υπογραφής, βρίσκει πως το συγκεκριμένο πρόγραμμα βρέθηκε σε 2 βάσεις δεδομένων με γνωστά κακόβουλα προγράμματα. Καταλαβαίνουμε έτσι πως πρόκειται ξεκάθαρα για malware.
  12. Καθώς ολοκληρώνουμε τη συζήτησή μας, ας συνοψίσουμε τα βασικά μας συμπεράσματα. Πρώτον, η Στατική Ανάλυση είναι πράγματι πολύτιμη, αλλά έχει τους περιορισμούς της. Αν και είναι εξαιρετική στο να εντοπίζει πολλά πιθανά ζητήματα, δεν εγγυάται την πλήρη κάλυψη όλων των πιθανών απειλών. Ορισμένοι τύποι προβλημάτων ενδέχεται να εντοπιστούν μόνο μέσω δυναμικής ανάλυσης ή σχολαστικής μη αυτόματης αναθεώρησης κώδικα. Δεύτερον, συνειδητοποιήσαμε τη σημασία της χρηστικότητας. Είναι σημαντικό να παρέχουμε ουσιαστικό και κατανοητό αποτέλεσμα. Η αποτελεσματικότητα του εργαλείου μας εξαρτάται σε μεγάλο βαθμό από το πόσο εύκολα οι χρήστες μπορούν να κατανοήσουν και να ενεργήσουν βάσει των αποτελεσμάτων του. Τέλος, η ανάγκη για τακτικές ενημερώσεις είναι σημαντικός παράγοντας. Ο χώρος των απειλών στον κυβερνοχώρο εξελίσσεται διαρκώς, όπως και οι προγραμματιστικές πρακτικές. Για να παραμείνει συναφές και αποτελεσματικό, το εργαλείο μας πρέπει να ενημερώνεται τακτικά για να αντιμετωπίσει νέες απειλές και να προσαρμοστεί στις αλλαγές στη γλώσσα Python. Συμπερασματικά, ενώ το εργαλείο μας είναι ένας ισχυρός σύμμαχος στην καταπολέμηση των ευπαθειών ασφαλείας στον κυβερνοχώρο, θα πρέπει να θεωρηθεί ως μέρος μιας ευρύτερης εργαλειοθήκης, που χρησιμοποιείται σε συνδυασμό με άλλες μεθόδους, για την παροχή μίας πιο ολοκληρωμένης προστασίας
  13. Ας ρίξουμε τώρα μία σύντομη ματιά στο μέλλον και ας οραματιστούμε κάποιες πιθανές επεκτάσεις και βελτιώσεις για το εργαλείο μας. Πρώτον, θα μπορούσαμε να βελτιώσουμε τις δυνατότητες δυναμικήςανάλυσης για να χειριστούμε πιο περίπλοκα σενάρια. Θα μπορούσαν να ενσωματωθούν τεχνικές όπως η ανάλυση που βασίζεται στη συμπεριφορά, η προηγμένη ανάλυση ροής ελέγχου και η παρακολούθηση μνήμης. Δεύτερον, εξετάζουμε την ενσωμάτωση μηχανικής μάθησης. Αυτό θα μπορούσε να ενισχύσει την ικανότητα του εργαλείου μας να μαθαίνει από προηγούμενες αναλύσεις και να κάνει προγνωστικούς εντοπισμούς απειλών, ασυνήθιστων συμπεριφορών ή καινοτόμων μεθόδων συσκότισης. Θα μπορούσαμε επίσης να εξετάσουμε το ενδεχόμενο επέκτασης της δυνατότητας εφαρμογής του εργαλείου σε άλλες γλώσσες προγραμματισμού πέρα από την Python, ενισχύοντας τη χρηστικότητά του σε διαφορετικά προγραμματιστικά περιβάλλοντα. Για λόγους φιλικότητας προς τον χρήστη, θα μπορούσαμε να εξερευνήσουμε το σχεδιασμό μιας γραφικής διεπαφής χρήστη, καθιστώντας το εργαλείο μας πιο διαισθητικό και προσβάσιμο για μη ειδικούς. Η ενσωμάτωση στο cloud είναι μια άλλη ενδιαφέρουσα δυνατότητα. Ως υπηρεσία cloud, το εργαλείο μας θα είναι προσβάσιμο από οπουδήποτε και οι ενημερώσεις ή οι βελτιώσεις θα μπορούσαν να παρέχονται αβίαστα. Η ανάλυση του κώδικα σε πραγματικό χρόνο ή σχεδόν σε πραγματικό χρόνο όπως γράφεται θα μπορούσε να αλλάξει το παιχνίδι, παρέχοντας στους προγραμματιστές άμεση ανατροφοδότηση σχετικά με πιθανά ζητήματα ασφάλειας. Όσον αφορά την ασφάλεια του API, μπορούμε να εμβαθύνουμε τους ελέγχους αξιολογώντας τους ίδιους τους ορισμούς του API, προσέχοντας μη ασφαλείς πρακτικές. Τέλος, θα μπορούσαμε να εξετάσουμε το ενδεχόμενο επέκτασης του εργαλείου μας για να υποστηρίξει δυαδική και εκτελέσιμη ανάλυση, η οποία θα επέτρεπε τη χρήση του ακόμη και όταν ο πηγαίος κώδικας δεν είναι διαθέσιμος. Αν και αυτές είναι απλώς ιδέες αυτή τη στιγμή, αντιπροσωπεύουν συναρπαστικά μονοπάτια για τη μελλοντική εξέλιξη του εργαλείου μας
  14. Καθώς φτάνουμε στο τέλος αυτής της παρουσίασης, θα ήθελα να σας ευχαριστήσω όλους εσάς για την προσοχή σας. Ειλικρινά εκτιμώ τον χρόνο και το ενδιαφέρον σας. Τώρα, έχουμε λίγο χρόνο για ερωτήσεις. Εάν υπάρχει κάτι για το οποίο θα θέλατε να μάθετε περισσότερα ή κάτι που δεν ήταν σαφές κατά την παρουσίαση, μη διστάσετε να ρωτήσετε. Και πάλι ευχαριστώ.