Successfully reported this slideshow.
Your SlideShare is downloading. ×

Flionis Ioannis: Development of a security vulnerability scanning tool for web applications through functional testing execution

Flionis Ioannis: Development of a security vulnerability scanning tool for web applications through functional testing execution

Download to read offline

The continuous outspread and rising popularity of the internet nowadays has resulted in successive breakthroughs on multiple fields of human life. E-commerce, e-banking, social networking and message exchanging are only some of the unlimited services that modern web applications offer and consist an inextricable part of human everyday life in the 21st century.One of the most vital needs of the contemporary web is that of security. Web application development and continuous maintenance is a repetitive and sometimes painful process that demands constant validation of the offered functionality in the desired manner and with the desired result, e.g. with no bugs, and that no vulnerabilities are left to be exploited, as well. The present diploma thesis aims to contribute to the combination of the automated functional and security testing execution, for enhanced vulnerability detection. Towards this direction, a web application was developed, that applies functional and security testing on other web applications in order to reveal as many of their vulnerabilities as possible, by employing a state-of-the-art penetration tool. The developed application analyses the results and visualizes them into comparative lists and graphical charts, providing app security insights over time.

The continuous outspread and rising popularity of the internet nowadays has resulted in successive breakthroughs on multiple fields of human life. E-commerce, e-banking, social networking and message exchanging are only some of the unlimited services that modern web applications offer and consist an inextricable part of human everyday life in the 21st century.One of the most vital needs of the contemporary web is that of security. Web application development and continuous maintenance is a repetitive and sometimes painful process that demands constant validation of the offered functionality in the desired manner and with the desired result, e.g. with no bugs, and that no vulnerabilities are left to be exploited, as well. The present diploma thesis aims to contribute to the combination of the automated functional and security testing execution, for enhanced vulnerability detection. Towards this direction, a web application was developed, that applies functional and security testing on other web applications in order to reveal as many of their vulnerabilities as possible, by employing a state-of-the-art penetration tool. The developed application analyses the results and visualizes them into comparative lists and graphical charts, providing app security insights over time.

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Flionis Ioannis: Development of a security vulnerability scanning tool for web applications through functional testing execution

  1. 1. Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Θεσσαλονίκη, Ιούλιος 2020 Επιβλέπων Καθηγητής: Ανδρέας Λ. Συμεωνίδης Εκπόνηση: Φλιώνης Ιωάννης ΑΕΜ: 8263
  2. 2. Μεθοδολογία 1 Σκοπός Αποτελέσματα Μελλοντική Εργασία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 2 Περιεχόμενα Παρουσίασης 2 3 4 5 6 Συμπεράσματα Κίνητρο
  3. 3. Κίνητρο  Συνεχώς αυξανόμενος αριθμός διαδικτυακών εφαρμογών  Ανάγκη για ασφάλεια στο διαδίκτυο  Υψηλό κόστος πρόσληψης επαγγελματιών ασφάλειας  Αυτοματοποιημένα εργαλεία ασφάλειας λογισμικού που χρήζουν βελτιώσεων 1,783,000,000 Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΜεθοδολογίαΣκοπόςΚίνητρο Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 3 Web Apps Live Right Now
  4. 4. Robert Mueller “There are two types of companies: those that have been hacked, and those that will be” ” FBI Director, 2012 Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΜεθοδολογίαΣκοπόςΚίνητρο Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 4
  5. 5. Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΜεθοδολογίαΣκοπόςΚίνητρο Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 5 67% 11% 50% Αύξηση των παραβιάσεων δεδομένων σε σχέση με τα τελευταία 5 χρόνια Αύξηση των παραβιάσεων δεδομένων σε σχέση με το 2018 Των μεγάλων επιχειρήσεων ξοδεύουν περισσότερο από $1 εκατομμύριο ετησίως για ασφάλεια Μέσο κόστος μίας παραβίασης δεδομένων Πηγή: AccentureΠηγή: Accenture Πηγή: Cisco Πηγή: IBM 3,900,000
  6. 6. Σκοπός της διπλωματικής εργασίας Η ανάπτυξη ενός δωρεάν και open-source εργαλείου το οποίο: 1. Θα εκτελεί αυτοματοποιημένο λειτουργικό έλεγχο 2. Θα εκτελεί αυτοματοποιημένο έλεγχο για βασικές ευπάθειες ασφάλειας και τέλος 3. Θα παραθέτει αναφορές και συγκριτικά διαγράμματα με τα ευρήματά του. Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο ΜεθοδολογίαΣκοπός Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 6
  7. 7. Τι είναι… …ΛΕΙΤΟΥΡΓΙΚΟΣ ΕΛΕΓΧΟΣ; …ΕΛΕΓΧΟΣ ΑΣΦΑΛΕΙΑΣ;  Αποσκοπεί στον εντοπισμό και την εκμετάλλευση τρωτών σημείων σε διαδικτυακές εφαρμογές, από τα οποία μπορεί οποιοσδήποτε επιτήδειος να παραβιάσει την εφαρμογή και τα δεδομένα των χρηστών της. Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 7Ιούλιος 2020 Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο ΜεθοδολογίαΣκοπός  Ελέγχει ότι η διαδικτυακή εφαρμογή λειτουργεί όπως θα έπρεπε σύμφωνα με τις προδιαγραφές απαιτήσεών της. o Κατατάσσεται στο QA κομμάτι του Software Development process
  8. 8. Γνώσεις που αποκτήθηκαν Σκοπός Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 8
  9. 9. Πρώτη επαφή με τους επιστημονικούς κλάδους Διερεύνηση Επιστημονικών Πεδίων Επέκταση των δυνατοτήτων ενός ήδη υπάρχοντος εργαλείου Ανάπτυξη Εργαλείου State of the Art Review Συμπλήρωση του εργαλείου με frontend και backend Ανάπτυξη Διακομιστή Χρήση των πιο διαδεδομένων εργαλείων στην βιομηχανία Πακετάρισμα μέσω Docker Dockerization Σκοπός Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 9 Roadmap
  10. 10. Συνολική Δομή Συστήματος (1/2) Σκοπός Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 10 Presentation Layer (Frontend) Business Layer (Backend) Persistence Layer (Java Persistence API, JPA) Database Layer Raw Data Processed Data Read Data Persist Data Retrieve Data Store Data
  11. 11. Εκτέλεση Ελέγχων Ασφάλειας μέσω OWASP ZAP Εκτέλεση Λειτουργικών Ελέγχων μέσω Selenium Συνολική Δομή Συστήματος (2/2) Σκοπός Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 11 Εισαγωγή αρχείου και παραμέτρων εκτέλεσης του ελέγχου Χρήστης Frontend Backend Προώθηση στο backend σύστημα Διαγραμματική παρουσίαση αποτελεσμάτων Επεξεργασία αρχείου ώστε να είναι εκτελέσιμο
  12. 12. Δομή του Backend συστήματος Σκοπός Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 12 Εισαγωγή αρχείου και παραμέτρων εκτέλεσης του ελέγχου Επεξεργασία αρχείου ώστε να είναι εκτελέσιμο Εκκίνηση επιθυμητού browser με proxying μέσω OWASP ZAP Εκτέλεση Λειτουργικών Ελέγχων μέσω Selenium Εκτέλεση Ελέγχων Ασφάλειας μέσω OWASP ZAP Αποθήκευση αποτελεσμάτων Διαγραμματική και συγκριτική παρουσίαση αποτελεσμάτων ή
  13. 13. Διαδραστικό Frontend Σκοπός Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 13 Powered by
  14. 14. Light Mode Dark Mode Σκοπός Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 14
  15. 15. Video Demo Σκοπός Αποτελέσματα Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 15
  16. 16. Αποτελέσματα Σκοπός Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 16 Αποτελέσματα Εφαρμογές Στόχοι:  Πολλαπλοί έλεγχοι με διαφορετικά αρχεία λειτουργικών ελέγχων και διαφορετικές παραμέτρους  Προσθαφαίρεση ευπαθειών στα αρχεία των αποτελεσμάτων Αξιολόγηση Αξιοπιστίας: OWASP Broken Web Applications, BWA 1. BodgeIt Store 2. Damn Vulnerable Web Application, DVWA και 3. OWASP Juice Shop
  17. 17. Αποτελέσματα Σκοπός Συμπεράσματα Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 17 Αποτελέσματα XSS Vulnerability Detected
  18. 18. Συμπεράσματα 1. Η χρήση του εργαλείου OWASP ZAP στην backend μεριά του συστήματος δίνει ακριβή και τεκμηριωμένα αποτελέσματα όσον αφορά τις ευπάθειες που εντοπίζονται, 2. Η χρήση του Selenium προσφέρει ιδιαίτερη αξιοπιστία όσον αφορά την σωστή και πιστή αναπαραγωγή των testcases. Σκοπός Μελλοντική ΕργασίαΚίνητρο Μεθοδολογία Αποτελέσματα Συμπεράσματα Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 18
  19. 19. Μελλοντική Εργασία  Υποστήριξη αρχείων ελέγχου Selenium σε διαφορετικές γλώσσες πέραν της Java  Υποστήριξη αρχείων ελέγχου σε διαφορετικά frameworks πέραν του Selenium  Επέκταση του Λειτουργικού Ελέγχου με visual testing tools  Επέκταση του Λειτουργικού Ελέγχου με δυνατότητα καταγραφής και αναπαραγωγής της διαδικασίας του λειτουργικού ελέγχου ή λήψη στιγμιότυπων Σκοπός ΣυμπεράσματαΚίνητρο Μεθοδολογία Αποτελέσματα Μελλοντική Εργασία  Δημιουργία ισχυρότερων πολιτικών επίθεσης μέσω του OWASP ZAP για τις σαρώσεις που εκτελούνται  Επέκταση των Ελέγχων Ασφάλειας με περισσότερες σαρώσεις μέσω του OWASP ZAP  Επέκταση των Ελέγχων Ασφάλειας με περισσότερες σαρώσεις μέσω άλλων εργαλείων πέραν του OWASP ZAP  Επιπλέον, θα μπορούσε να προστεθεί προγραμματισμένη (scheduled) εκτέλεση ελέγχων ΛΕΙΤΟΥΡΓΙΚΟΙ ΕΛΕΓΧΟΙ ΕΛΕΓΧΟΙ ΑΣΦΑΛΕΙΑΣ Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 19
  20. 20. Ευχαριστίες Θα ήθελα να ευχαριστήσω θερμά: • Τον κ. Ανδρέα Συμεωνίδη, • Τους δικούς μου ανθρώπους, και φυσικά • Όλους εσάς για την προσοχή σας. Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 20
  21. 21. Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 21 Κώδικας Διπλωματικής Εργασίας Όλος ο κώδικας της διπλωματικής εργασίας είναι open-source και μπορεί να βρεθεί στο GitHub Repository του παρακάτω συνδέσμου.
  22. 22. Ερωτήσεις Στην διάθεσή σας για οποιαδήποτε ερώτηση, διευκρίνιση ή συζήτηση. The Dunning-Kruger Effect Ιούλιος 2020 Δημιουργία Εργαλείου Ανίχνευσης Ευπαθειών Ασφάλειας σε Διαδικτυακές Εφαρμογές μέσω Εκτέλεσης Λειτουργικών Ελέγχων 22

Editor's Notes

  • Καλησπέρα σε όλες και όλους ονομάζομαι Φλιώνης Ιωάννης και θα σας παρουσιάσω την διπλωματική μου εργασία, η οποία εκπονήθηκε κατά την διάρκεια των τελευταίων 9 μηνών, υπό την επίβλεψη του καθηγητή Ανδρέα Συμεωνίδη.
    Το θέμα της ήταν η Δημιουργία ενός Εργαλείου που ανιχνεύει ευπάθειες ασφάλειας σε διαδικτυακές εφαρμογές μέσα από εκτέλεση λειτουργικών ελέγχων.
  • Όσον αφορά την διάρθρωση της παρουσίασης, πρώτα θα μιλήσουμε για το κίνητρο που μας οδήγησε σε αυτό το θέμα της διπλωματικής εργασίας και ύστερα για τον σκοπό αυτής.
    Έπειτα θα αναλυθεί η μεθοδολογία η οποία χρησιμοποιήθηκε και θα παρατεθούν τα αποτελέσματα και συμπεράσματα που εξήχθησαν.
    Ενώ τέλος, θα αναφερθούν πιθανές προτάσεις για μελλοντικές επεκτάσεις του έργου.
  • Αυτή την στιγμή υπάρχουν live, up and running στο διαδίκτυο περίπου 1,8 δισεκατομμύρια διαδικτυακές εφαρμογές και ιστοσελίδες και ο αριθμός αυτός συνεχώς αυξάνεται.
    Το διαδίκτυο είναι ένα εκ φύσεως μη ασφαλές δίκτυο και η επίλυση του γρίφου της ασφάλειας εντός αυτού γίνεται ολοένα και πιο απαραίτητη.
    Όμως το κόστος πρόσληψης επαγγελματιών ασφάλειας για την εκπόνηση αυτού του έργου από αρχής μέχρι τέλους είναι υψηλό.
    Και τα αυτοματοποιημένα εργαλεία ασφάλειας λογισμικού ακόμα χρήζουν βελτιώσεων.
  • Όπως ανέφερε χαρακτηριστικά το 2012 σχετικά με το θέμα της ασφάλειας στο διαδίκτυο ο διευθυντής του FBI, Robert Mueller:
    «Υπάρχουν δύο είδη εταιριών, αυτές που έχουν χακαριστεί και αυτές που θα χακαριστούν».
    Πάμε να δούμε όμως και μερικά στατιστικά νούμερα που παρουσιάζουν λίγο καλύτερα την σημερινή κατάσταση σχετικά με την ασφάλεια στο διαδίκτυο.
  • Σύμφωνα με την Accenture, υπάρχει 67% αύξηση των παραβιάσεων δεδομένων τα τελευταία 5 χρόνια
    Και 11% η αύξηση των παραβιάσεων από το 2018 μέχρι το 2019
    Ενώ, το 50% των μεγάλων επιχειρήσεων (δηλαδή των επιχειρήσεων με περισσότερους από 10.000 υπαλλήλους) ξοδεύουν περισσότερο από $1 εκατομμύριο ετησίως στην ασφάλεια, σύμφωνα με την IBM
    Τέλος, σύμφωνα με την Cisco, το κόστος μίας παραβίασης υπολογίζεται κατά μέσο όρο στα $3.9 εκατομμύρια
    ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________

    Το 43% των θυμάτων παραβίασης δεδομένων ήταν μικρές επιχειρήσεις. [Verizon](https://enterprise.verizon.com/en-gb/resources/reports/dbir/)
  • Σκοπός της παρούσας διπλωματικής ήταν η ανάπτυξη ενός δωρεάν και open-source εργαλείου το οποίο:
    Θα εκτελεί αυτοματοποιημένο λειτουργικό έλεγχο και
    Αυτοματοποιημένο έλεγχο για βασικές ευπάθειες ασφάλειας και τέλος
    Θα παραθέτει αναφορές και συγκριτικά διαγράμματα με τα ευρήματά του.
  • Όμως, μιλάμε για Λειτουργικό Έλεγχο και Έλεγχο Ασφάλειας, που δεν είναι απαραίτητο ότι όλοι γνωρίζουν τι ακριβώς είναι. Συνοπτικά, μπορούμε να πούμε ότι:
    Ο Λειτουργικός Έλεγχος είναι η διαδικασία που ελέγχει και επικυρώνει εάν η διαδικτυακή εφαρμογή λειτουργεί όπως θα έπρεπε να λειτουργεί σύμφωνα με τις προδιαγραφές των απαιτήσεών της.
    Ένα χαρακτηριστικό παράδειγμα Λειτουργικού Ελέγχου είναι ο έλεγχος του login functionality, όπου σωστοί συνδυασμοί login credentials θα πρέπει να επιτρέπουν την είσοδο του χρήστη, ενώ εσφαλμένοι όχι. Στην εικόνα στα αριστερά μπορούμε να δούμε ένα ακόμα παράδειγμα όπου η φόρμα πέρα από την εικόνα που περιλαμβάνει και στην δεξιά περίπτωση δεν εμφανίζεται, θα αποτύχει και στον λειτουργικό έλεγχο όπου ο χρήστης κλικάρει να δει τα terms και conditions της σελίδας
    Όσον αφορά τον Έλεγχο Ασφάλειας είναι η διαδικασία που αποσκοπεί στον εντοπισμό και την έμπρακτη εκμετάλλευση των τρωτών σημείων της διαδικτυακής εφαρμογής με στόχο την αποκάλυψη των σημείων από τα οποία μπορεί κανείς επιτήδειος να την παραβιάσει και να αποκτήσει πρόσβαση και έλεγχο στα δεδομένα των χρηστών της.
    Στην εικόνα στα δεξιά φαίνεται η συχνότητα εμφάνισης και επικινδυνότητα των πιο συνηθισμένων ευπαθειών ασφάλειας.
    Ίσως έχετε ακουστά το Cross-Site Scripting (XSS) που είναι στην δεύτερη θέση ή το A1 Injection, με πιο γνωστά τα SQL Injections που μπορούν να οδηγήσουν σε απώλεια ή υποκλοπή της βάσης δεδομένων.
    Ενώ, στην τελευταία θέση τα XML External Entities, γνωστά ως XXEs, είναι τα πιο trending στον τομέα του Bug Bounty Hunting.
  • Πάμε όμως να δούμε την Μεθοδολογία που ακολουθήθηκε, ξεκινώντας από τις Γνώσεις που αποκτήθηκαν. Όλα αυτά είναι εργαλεία, γλώσσες και frameworks που χρησιμοποιήθηκαν για την δημιουργία της διαδικτυακής εφαρμογής:
    Για το web development χρησιμοποιήθηκαν οι HTML, CSS και JavaScript
    Όλο το project είναι end-to-end σε Java, με την βοήθεια του Maven για την διαχείριση των dependencies.
    Το backend είναι ένα Spring Boot Web App, ενώ το frontend αναπτύχθηκε με την βοήθεια του Vaadin Framework
    Για το testing χρησιμοποιήθηκαν οι βιβλιοθήκες JUnit και TestNG
    Ενώ για την βάση δεδομένων χρησιμοποιήθηκε μία H2 ενσωματωμένη βάση για να είναι πιο portable η εφαρμογή κατά την φάση του development, αλλά έχει γίνει και το configuration για integration με MySQL βάση δεδομένων, που είναι πιο αξιόπιστη και ασφαλής για production-ready εφαρμογές.
    Όσον αφορά τον Λειτουργικό Έλεγχο χρησιμοποιήθηκαν τα εργαλεία Selenium, Katalon, Selenium IDE, Katalon Recorder και SideeX Recorder
    Ενώ όσον αφορά τον Έλεγχο Ασφάλειας χρησιμοποιήθηκαν τα Kali Linux, Metasploit Framework, Burp Suite και OWASP ZAP.
    Το version controlling του project έγινε φυσικά μέσω git και
    Πακεταρίστηκε μέσω docker για να μπορεί να εγκατασταθεί σε οποιοδήποτε μηχάνημα.

    Όμως πέρα και πάνω από όλες τις τεχνικές γνώσεις που αποκτήθηκαν, αποκτήθηκε η εμπειρία της διερεύνησης ενός επιστημονικού πεδίου, η έμπνευση μίας ιδέας, η επίλυση πολυσύνθετων ρεαλιστικών προβλημάτων και η τελική υλοποίηση ενός έργου λογισμικού.
  • Σε ότι αφορά την πορείας της διπλωματικής μέσα στον χρόνο:
    Σε πρώτη φάση, έγινε μία διερεύνηση των επιστημονικών πεδίων που θα παντρεύονταν, δηλαδή του Λειτουργικού Ελέγχου και του Ελέγχου Ασφάλειας
    Ύστερα περάσαμε στο State of the Art Review όπου έγινε χρήση των πιο διαδεδομένων εργαλείων που διατίθενται στην βιομηχανία επάνω σε αυτούς τους κλάδους.
    Ώστε να αναπτυχθεί το εργαλείο που προσφέρει έλεγχο ασφάλειας μέσα από λειτουργικό έλεγχο, χρησιμοποιώντας ένα από τα δημοφιλέστερα ήδη υπάρχοντα εργαλεία ασφάλειας
    Στην συνέχεια, το εργαλείο αυτό συμπληρώθηκε με frontend και backend, ώστε να αποτελέσει ένα πλήρες Web Application, το οποίο θα δούμε σε Demo παρακάτω
    Τέλος, φυσικά, το έργο πακεταρίστηκε μέσω Docker για να μπορεί να συνεχιστεί το development process σε οποιοδήποτε άλλο μηχάνημα
  • Όσον αφορά την συνολική δομή του συστήματος, ακολουθήθηκε μία 4-tier ή στα ελληνικά 4 επιπέδων αρχιτεκτονική:
    Στο επίπεδο της παρουσίασης, έχουμε φυσικά το frontend
    Στο επίπεδο της επεξεργασίας, έχουμε το backend
    Στο επίπεδο της επιμονής (ή persistence), έχουμε το JPA ή Java Persistence API, το οποίο αναλαμβάνει την μετάφραση των Java κλάσεων σε εισαγωγές πίνακα που μπορούν να αποθηκευτούν από την Βάση Δεδομένων
    Η οποία είναι στο τελευταίο και ομώνυμο επίπεδο.
  • Αναλυτικότερα, η ροή της πληροφορίας είναι η εξής:
    Ο χρήστης αρχικά εισάγει της παραμέτρους για την εκτέλεση του ελέγχου, μαζί με το αρχείο που περιέχει τον λειτουργικό έλεγχο
    Αυτές οι παράμετροι προωθούνται στο backend
    Το οποίο με την σειρά του επεξεργάζεται τον κώδικα του αρχείου, μέσω της βιβλιοθήκης JavaParser, ώστε να τον φέρει σε εκτελέσιμη μορφή και να ορίσει κατάλληλα τις παραμέτρους εκτέλεσης
    Έπειτα εκτελείται ο Λειτουργικός Έλεγχος μέσω του Selenium
    Και τέλος εκτελείται ο Έλεγχος Ασφάλειας και πάλι σύμφωνα με τις παραμέτρους που εισήχθησαν από τον χρήστη, μέσω του εργαλείου OWASP ZAP
    Όταν όλοι οι έλεγχοι ολοκληρωθούν, τα αποτελέσματα αποθηκεύονται και επιστρέφονται στο frontend για διαγραμματική και συγκριτική παρουσίαση
  • Όσον αφορά την δομή του backend συστήματος, τα περισσότερα κομμάτια αναλύθηκαν ήδη στην προηγούμενη διαφάνεια, αξίζει να σημειώσουμε ότι:
    Όσον αφορά τον Λειτουργικό Έλεγχο αυτή την στιγμή υπάρχει δυνατότητα επιλογής ανάμεσα στους browsers Google Chrome και Mozilla Firefox
    Ενώ όσον αφορά το OWASP ZAP, υπάρχει δυνατότητα εκτέλεσης Crawling, AJAX Spidering, Passive και Active Scanning
  • Αναφορικά με το frontend του συστήματος μπορούμε να πούμε ότι πρόκειται για ένα PWA το οποίο έχει δημιουργηθεί μέσω του Vaadin Framework και είναι ιδιαίτερα responsive, καθώς μπορεί να χρησιμοποιηθεί και να εγκατασταθεί σε οποιαδήποτε συσκευή, από desktop έως mobile.
  • Η εφαρμογή διατίθεται σε Light και σε Dark Mode κάνοντας toggle από το paper button στην πάνω δεξιά γωνία, ώστε να είναι εύχρηστη καθόλη την διάρκεια της ημέρας, αλλά και της νύχτας. Πάμε όμως να δούμε το DEMO για μια πλήρη παρουσίαση των δυνατότητων του συστήματος.
  • Login
    Responsiveness
    Dark Theme
    Request a Scanning
    Scanning
    Getting the Results
    Reports
    Scan Details
    About
    Settings
    Logout


  • Για την αξιολόγηση των αποτελεσμάτων του συστήματος χρησιμοποιήθηκαν οι εφαρμογές με γνωστές ευπάθειες του Virtual Machine που παρέχεται από τον OWASP και ονομάζεται Broken Web Applications, και πιο συγκεκριμένα 3 από αυτές. Ο λόγος για τις BodgeIt Store, Damn Vulnerable Web Application, DVWA, και OWASP Juice Shop.
    Για την πλήρη αξιολόγηση της αξιοπιστίας του συστήματος έγιναν πολλαπλοί έλεγχοι με διαφορετικά αρχεία λειτουργικών ελέγχων και διαφορετικές παραμέτρους, και τα αποτελέσματα του συστήματος συγκρίθηκαν με τις γνωστές ευπάθειες, σύμφωνα με του δημιουργούς.
    Επίσης, χρειάστηκε να γίνει προσθαφαίρεση ευπαθειών στα αρχεία των αποτελεσμάτων, ώστε να ελεγχθεί ότι πράγματι εντοπιζόταν με ακρίβεια η ύπαρξη ή μη ευπαθειών λογισμικού, προσομοιώνοντας μία υπό ανάπτυξη διαδικτυακή εφαρμογή όπου διορθώνονται ευπάθειες, ενώ παράλληλα θα προστίθενταν νέες, συνήθως λόγω προσθήκης νέας λειτουργικότητας.
    Αυτήν η διαδικασία είναι ιδιαίτερα χρονοβόρα, για αυτό και εκτελέστηκε σε ένα μικρό μόνο δείγμα εφαρμογών.
  • Για παράδειγμα, στο στιγμιότυπο της εικόνας στα αριστερά, βλέπουμε την Scoring σελίδα της εφαρμογή BodgeIt Store, η οποία δηλώνει ότι υπάρχει ευπάθεια Cross-Site Scripting μέσω client-side JavaScript (δηλαδή το <script>)
    Εάν δούμε το στιγμιότυπο της εικόνας στα δεξιά θα παρατηρήσουμε αμέσως ότι η υψηλότερης επικινδυνότητας ευπάθεια που εντοπίστηκε από τους ελέγχους του συστήματος Pentest Insights στην εν λόγω εφαρμογή ήταν ακριβώς το Reflected Cross-Site Scripting.
  • Από την χρήση επάνω στις διαφορετικές εφαρμογές στόχους αποκομίσαμε τα εξής συμπεράσματα:
    Η χρήση του εργαλείου OWASP ZAP στην backend μεριά του συστήματος δίνει ακριβή και τεκμηριωμένα αποτελέσματα όσον αφορά τις ευπάθειες που εντοπίζονται. Βέβαια, σημειώνεται ότι, σε καμία των περιπτώσεων δεν θα έπρεπε κάποιος να βασίζεται αποκλειστικά σε αυτοματοποιημένα λογισμικά για την εκτέλεση ελέγχων ασφάλειας και συστήνεται αυστηρά η συμπλήρωση αυτών με χειροκίνητους ελέγχους από κάποιον επαγγελματία πριν το deployment της εφαρμογής.
    Η χρήση του Selenium προσφέρει ιδιαίτερη αξιοπιστία όσον αφορά την σωστή και πιστή αναπαραγωγή των testcases.
    Ευελπιστούμε το σύστημα Pentest Insights να αποτελέσει μία ολοκληρωμένη και αξιόπιστη open-source λύση με γραφική διεπαφή χρήστη και διαγραμματική παρουσίαση αποτελεσμάτων για υπό ανάπτυξη εφαρμογές που δεν έχουν την οικονομική δυνατότητα να αναλάβουν το πλήρες κόστος των δοκιμών διείσδυσης μίας επαγγελματικής εταιρείας.
  • Ακολουθούν ορισμένες προτάσεις από τις οποίες μπορεί να εμπνευστεί κανείς και να σκεφτεί ακόμα περισσότερες ιδέες, καθώς οι δυνατότητες επέκτασης του συστήματος είναι μεγάλες και μπορούν να χωριστούν σε δύο κύριους άξονες, αυτές που αφορούν τον Λειτουργικό Έλεγχο και αυτές που αφορούν τους Ελέγχους Ασφάλειας:
    Το σύστημα θα μπορούσε να καταστεί αυτομάτως πιο εύχρηστο και ευέλικτο εάν μπορούσε να δεχθεί σαν είσοδο και να εκτελέσει κώδικα και σε άλλες γλώσσες, όπως Python, JavaScript κ.α. καθώς κάποιοι προγραμματιστές ή οργανισμοί μπορεί να διαθέτουν τους Selenium ελέγχους των εφαρμογών τους ήδη γραμμένους σε εκείνες
    Επίσης θα μπορούσε να γίνει πιο versatile εάν προστιθόταν δυνατότητα εκτέλεσης ελέγχων και σε άλλα testing frameworks, όπως το Robot Framework, το Cucumber ή το Katalon Studio
    Για παράδειγμα, με χρήση των λογισμικών της εταιρίας Applitools, με το οποίο μπορεί κανείς να εντοπίσει 20% περισσότερα bugs μέσω cross-platform οπτικής σύγκρισης των σελίδων που εμφανίζουν οι εφαρμογές.
    Καθώς οι σαρώσεις που εκτελούνται στην παρούσα υλοποίηση από το OWASP ZAP χρησιμοποιούν την προεπιλεγμένη πολιτική επίθεσης
    Καθώς στην τρέχουσα υλοποίηση χρησιμοποιούνται μόνο το Crawling, το AJAX Spidering, το Passive και το Active Scanning, ενώ το OWASP ZAP παρέχει περισσότερες δυνατότητες, όπως μέσω Forced Directory Browsing, για εύρεση ξεχασμένων αρχείων και Easter eggs [95] στον server, ή μέσω Forced User Browsing, όπου εκτελούνται σαρώσεις με μόνιμα αυθεντικοποιημένο χρήστη, πράμα που παράγει συνήθως καλύτερα αποτελέσματα κ.α.
    Καθώς θα μπορούσε κανείς να συμπληρώσει τους ελέγχους της παρούσας υλοποίησης με άλλους που θα εκτελούνται από κάποιο εντελώς διαφορετικό εργαλείο. Μια ιδέα θα μπορούσε να είναι το brute-forcing σε login σελίδες μέσω του εργαλείου Hydra και κάποιας λίστα με γνωστούς συνήθεις κωδικούς πρόσβασης, όπως το δημοφιλές rockyou.txt.
    Όπως είθισται να γίνεται στον κλάδο του testing ώστε οι έλεγχοι να μην ενοχλούν το development process. Συνήθως, το testing προγραμματίζεται και εκτελείται αυτόματα κατά την διάρκεια της νύχτας ή κάποιας άλλης άεργης χρονικής περιόδου και οι developers λαμβάνουν την ενημέρωση με τα αποτελέσματα την επομένη ημέρα το πρωί.
  • Τέλος, θα ήθελα να ευχαριστήσω θερμά:
    Τον κ. Ανδρέα Συμεωνίδη, για την καθοδήγηση και την στήριξή του καθόλη την διάρκεια των τελευταίων εννέα μηνών
    Όλους τους δικούς μου ανθρώπους, [ χωρίς την παρουσία και την συνδρομή των οποίων, τα χρόνια της φοίτησής μου θα ήταν τουλάχιστον βαρετά ]
    Και φυσικά όλους εσάς για την προσοχή και χρόνο σας.
  • Όλος ο κώδικας της διπλωματικής εργασίας είναι φυσικά open-source και μπορεί να βρεθεί στο GitHub Repo του συνδέσμου.
  • Ενώ φυσικά είμαι στην διάθεσή σας για οποιαδήποτε ερώτηση, διευκρίνιση ή συζήτηση.

×