Ανάλυση ευπαθειών σε διαδικτυακές εφαρμογές που υλοποιούνται με τη χρήση πλαισίων λογισμικού
Abstract
Οι σύγχρονες διαδικτυακές εφαρμογές πλέον απαρτίζονται από κώδικα προερχόμενο από
διάφορες γλώσσες προγραμματισμού, υψηλού επιπέδου ενώ υλοποιούνται σε ελεύθερα
διαθέσιμα πλαίσια λογισμικού (software frameworks) επαναχρησιμοποιώντας στοιχεία τρίτων
εφαρμογών. Αυτό έχει ως αποτέλεσμα, στην δραστική μείωση του χρόνου και του κόστους,
που απαιτείται για την ανάπτυξή τους, καθώς διάφορες βιβλιοθήκες και πλαίσια λογισμικού
μπορούν να χρησιμοποιηθούν παραπάνω από μία φορά ακόμα και για διαφορετικές
λειτουργίες. Συνεπώς δίνεται η δυνατότητα σε μία διαδικτυακή εφαρμογή να λάβει μορφή και
λειτουργικότητα σε μικρό χρονικό διάστημα. Πολλές φορές όμως με την συγκεκριμένη
διαδικασία υλοποίησης μιας εφαρμογής, εκδηλώνονται σφάλματα και ευπάθειες στον κώδικα
της εφαρμογής, τα οποία έχουν να κάνουν με την λειτουργικότητα της εφαρμογής στο
παρασκήνιο τα οποία δεν μπορούν να γίνουν εύκολα αντιληπτά, με άμεσο αντίκτυπο στην
ασφάλεια του συστήματος. Οι αδυναμίες του κώδικα, οι ευπάθειες, η πρόσβαση σε προσωπικά
δεδομένα και η δημόσια έκθεσή τους είναι μερικά από τα κενά ασφάλειας που μπορούν να
παρουσιάσουν διαδικτυακές εφαρμογές και τα οποία μπορούν να αξιοποιηθούν από
επιτήδειους του κυβερνοχώρου. Για το σκοπό αυτό, έχουν αναπτυχθεί εργαλεία για τον
εντοπισμό τρωτών σημείων σε μία διαδικτυακή εφαρμογή. Η συγκεκριμένη εργασία
αναφέρεται στην παρουσίαση ενός εργαλείου εύρεσης ευπαθειών το Zed Attack Proxy(ZAP)
το οποίο έχει αναπτυχθεί από τον οργανισμό OWASP. Ο στόχος μιας τέτοιας δοκιμής είναι να
ελεγχθεί η συγκεκριμένη διαδικτυακή εφαρμογή για ελαττώματα και τρωτά σημεία και στην
συνέχεια να προτείνουμε μία λύση για την διόρθωσή τους. Για την διαδικασία της αξιολόγησης
των διαδικτυακών εφαρμογών έχουν επιλεχθεί είκοσι συστήματα διαχείρισης πλαισίων, όπου
εξετάζεται μία διαδικτυακή εφαρμογή και πραγματοποιείται καταγραφή των ευπαθειών που
εντοπίστηκαν. Με την βοήθεια του προγράμματος Weka, κατασκευάζουμε J48 δέντρα
απόφασης με βάση τις ευπάθειες ως αντικείμενα εισόδου και εντοπίζουμε συσχετίσεις με την
χρήση του αλγορίθμου APRIORI. Τέλος παρατηρούμε ότι η πλειοψηφία των εφαρμογών
διαθέτει μετρίου και χαμηλού κινδύνου ευπάθειες καθώς στην κάθε κατηγορία εντάσσονται
από 10 και 12 εφαρμογές αντίστοιχα. Το χαμηλότερο ποσοστό υφίσταται στην υψηλού
κινδύνου κατηγορία καθώς περιλαμβάνονται 4 εφαρμογές.
Modern and new applications is been using to create a complete web application, having a wide
variety of high-level programming languages, software frameworks as well as third-party
application elements. This results, in a drastic reduction of time and cost requirement for their
development, as different code frames can be used more than once even for different functions.
In other words, we are given the opportunity for a web application to take shape and
functionality in a short period of time. However, many times with the specific process of
implementing an application, errors occur in the program coding, which have to do with the
functionality of the program in the background and cannot be easily find out and fixed. This
difficulty in understanding and finding vulnerabilities can even have an impact on system
security. Coding vulnerabilities, access to personal data and their public exposure are some of
the things that can be exploited by cyber criminals. Weakness in these systems therefore need
to be identified in a timely manner to prevent such frauds. To this end, tools have been
developed, to identify vulnerabilities in a web application. This work, refers to present a
vulnerability detection tool call Zed Attack Proxy (ZAP) which has been developed by
OWASP foundation. The purpose of this testing is to detect defects and vulnerabilities and then
suggest a solution to fix them. In total, twenty content management systems have been selected
for the testing process of the tool, were for each one we record all the listing vulnerabilities. In
the end with the usage of Weka program, we create J48 decision trees, based on the findings
as attributes and also, we create associations using Apriori Algorithm. In the end, we observe
that the majority of application have moderate and low risk vulnerabilities as each category
includes 10 and 12 applications respectively. The lowest results exist in the high risk category
as 4 applications are included.