Μεταπτυχιακή Εργασία. Έλεγχος ασφάλειας ιστοχώρων: μεθοδολογίες και έλεγχος ευπαθειών. Ονοματεπώνυμο Φοιτητή: Μακρυπόδης Βασίλειος ΑΜ: 2010016



Σχετικά έγγραφα
Ασφάλεια Πληροφοριακών Συστημάτων

Πολιτικές Ασφάλειας Πληροφοριακών Συστημάτων. Σωκράτης Κ. Κάτσικας Τμήμα Μηχ/κών Πληροφοριακών & Επικοινωνιακών Συστημάτων Πανεπιστήμιο Αιγαίου

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

ΤΕΧΝΟΛΟΓΙΕΣ & ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΩΝ ΙΩΑΝΝΗ Δ. ΙΓΓΛΕΖΑΚΗ

GDPR και Τεχνικά Μέτρα Ασφάλειας Πληροφοριακών Συστημάτων

Ασφάλεια, Διαθεσιμότητα και Ταχύτητα για τις Web Εφαρμογές

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής

ISMS κατά ISO Δεκέμβριος 2016

Τείχος Προστασίας Εφαρμογών Διαδικτύου

ΕΚΤΕΛΕΣΤΙΚΟΣ ΚΑΝΟΝΙΣΜΟΣ (ΕΕ) /... ΤΗΣ ΕΠΙΤΡΟΠΗΣ. της

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Ασφάλεια Υπολογιστικών Συστηµάτων

Ηλεκτρονικό εμπόριο. HE 6 Ασφάλεια

Πρακτικά όλα τα προβλήματα ασφαλείας οφείλονται σε λάθη στον κώδικα

ΕΛΕΓΧΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΣΥΝΕΧΕΙΑΣ (Auditing Business Continuity Plan & Disaster Recovery Plan)

Security & Privacy. Overview

16REQ

«ΖΕΥΣ» Εγχειρίδιο Συμμετοχής σε Ψηφοφορία

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

«ΖΕΥΣ» Εγχειρίδιο Συμμετοχής σε Ψηφοφορία

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

(Μη νομοθετικές πράξεις) ΚΑΝΟΝΙΣΜΟΙ

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

«ΖΕΥΣ» Εγχειρίδιο Συμμετοχής σε Ψηφοφορία

Ηλεκτρονικό Εμπόριο. Ενότητα 9: Ασφάλεια Ηλεκτρονικού Εμπορίου Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΑΠΟΦΑΣΗ. (αριθμ.: 53 /2009)

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012

«ΖΕΥΣ» Εγχειρίδιο Συμμετοχής σε Ψηφοφορία

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (Ι) Απειλές Ασφαλείας Συμμετρική & Μη-Συμμετρική Κρυπτογραφία

ΜΕΤΡΗΣΗ ΑΣΦΑΛΕΙΑΣ ΕΦΑΡΜΟΓΩΝ ΙΣΤΟΥ

Ready Business Secure Business

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ

Κων/νος Λαμπρινουδάκης Αναπληρωτής Καθηγητής Τμήμα Ψηφιακών Συστημάτων Εργαστήριο Ασφάλειας Συστημάτων Πανεπιστήμιο Πειραιώς

Υπηρεσίες Πληροφόρησης στην Ψηφιακή Εποχή: Ζητήματα Ασφάλειας και Προστασίας Ιδιωτικότητας

Ασφάλεια Υπολογιστικών Συστηµάτων

ΙΤ Infrastructures. Cyber Security Presentation

ΗΜΕΡΟΛΟΓΙΟ ΓΛΩΣΣΑΡΙ ΔΙΑΔΙΚΤΥΟΥ

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Γενικά Μέτρα Προστασίας. Πληροφοριακών Συστημάτων. από Ηλεκτρονικές Επιθέσεις

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

Ασφάλεια Πληροφοριακών Συστημάτων

Ασφάλεια Υπολογιστικών Συστημάτων

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Πολιτική Ασφαλείας Δεδομένων Πιστοποίηση ISO 27001:2013 από την TÜV Austria Hellas

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

ΑΡΧΗ ΔΙΑΣΦΑΛΙΣΗΣ ΤΟΥ ΑΠΟΡΡΗΤΟΥ ΤΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΟ

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο

Πολιτική Ασφαλείας Προσωπικών Δεδομένων GDPR General Data Protection Regulation

EΠΙΣΗΜΑΝΣΗ ΑΠΟΡΡΗΤΟΥ (PRIVACY NOTICE)

Επισκόπηση προβλημάτων ασφαλείας, απειλών και κακόβουλων επιθέσεων αντίμετρα hands on lab/training module

1. Ποια δεδομένα προσωπικού χαρακτήρα συλλέγουμε και επεξεργαζόμαστε

Ασφαλίστε τις εμπιστευτικές πληροφορίες σας.

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Εκτίμηση κινδύνου και μέτρα ασφαλείας για την προστασία προσωπικών δεδομένων

G D P R : C O M P L I A N C E & P H Y S I C A L S E C U R I T Y

(Εννοιολογική θεμελίωση)

Εισαγωγή στο Ethical Hacking. Καλώς Ήρθατε!!

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

MOBILE BANKING ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΕΤΑΠΤΥΧΙΑΚΟΣ ΦΟΙΤΗΤΗΣ: ΜΠΙΖΑΝΙΔΗΣ ΓΕΩΡΓΙΟΣ, 35/05 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΜΑΝΙΤΣΑΡΗΣ ΑΘΑΝΑΣΙΟΣ

Πρότυπα εξασφάλισης του απορρήτου των δεδομένων ( vs Patient Link)

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Συστήματα Διαχείρισης Κινδύνου στα Ασύρματα Δίκτυα. Επιμέλεια: Βασίλης Παλιούρας MSc Information Security, MCSA, CCDA, CCA

Πολιτική Προστασίας Δεδομένων

Παρουσίαση Μεταπτυχιακής Εργασίας

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών

Πολιτική για την Ιδιωτικότητα και την Προστασία των Προσωπικών Δεδομένων

Η αξία της έρευνας ευπαθειών στις δοκιμές παρείσδυσης. Δρ Πάτροκλος Αργυρούδης / Ερευνητής Ασφάλειας Η/Υ

ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Διαχείριση Πολιτισμικών Δεδομένων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Βασικές Έννοιες Web Εφαρμογών

Cryptography and Network Security Overview & Chapter 1. Fifth Edition by William Stallings

Αρχιτεκτονική Ασφάλειας

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Εφαρμογή Βάσης Δεδομένων για την Εθελοντική Αιμοδοσία στο ΑΤΕΙ-Θ

Ασφάλεια Στο Ηλεκτρονικό Εμπόριο. Λάζος Αλέξανδρος Α.Μ. 3530

Σύστημα Άυλων Τίτλων - Οδηγίες παραμετροποίησης client συστήματος

Ημερομηνία Παράδοσης: 4/4/2013

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

ΠΟΛΙΤΙΚΗ ΠΡΟΣΤΑΣΙΑΣ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ

ΕταιρικήΠαρουσίαση ΠΟΛΙΤΙΚΕΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΣΦΑΛΕΙΑΣ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΜΑΪΟΣ 2018

WHEN INFORMATION IS YOUR MOST IMPORTANT ASSET. Ολοκληρωμένες και ειδικά σχεδιασμένες λύσεις διαχείρισης και διανομής περιεχομένου

ΕΙΝΑΙ Η ΕΠΙΧΕΙΡΗΣΗ ΜΟΥ ΑΣΦΑΛΗΣ; CHECKLIST

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Transcript:

Πανεπιστήμιο Πελοποννήσου Σχολή Οικονομίας, Διοίκησης και Πληροφορικής Τμήμα Πληροφορικής και Τηλεπικοινωνιών Μεταπτυχιακή Εργασία Έλεγχος ασφάλειας ιστοχώρων: μεθοδολογίες και έλεγχος ευπαθειών Ονοματεπώνυμο Φοιτητή: Μακρυπόδης Βασίλειος ΑΜ: 2010016 Επιβλέπων Καθηγητής: Βασιλάκης Κωνσταντίνος Τρίπολη, Οκτώβριος 2013

Μακρυπόδης Βασίλειος 1

Στην κόρη μου Ιωάννα, Μακρυπόδης Βασίλειος 2

Μακρυπόδης Βασίλειος 3

Ευχαριστίες Κάθε εργαζόμενος που έχει συνειδητοποιήσει τις ανάγκες του χώρου όπου εργάζεται, συχνά αναζητεί επιστημονικά αντικείμενα στο χώρο δράσης του, που επαυξάνουν τις αρχικές του γνώσεις. Στο πλαίσιο αυτό, αναζήτησα κάποιες επιπρόσθετες γνώσεις που αφορούν την επιστήμη των υπολογιστών. Συμμετέχοντας στο πρόγραμμα μεταπτυχιακών σπουδών «Πληροφορική και Εφαρμογές» κατέληξα στη συγγραφή της διπλωματικής μου εργασίας με τίτλο «Έλεγχος ασφάλειας ιστοχώρων: μεθοδολογίες και έλεγχος ευπαθειών». Θα ήθελα να ευχαριστήσω τον κο. Βασιλάκη Κωνσταντίνο για την υποστήριξη του, την ενθάρρυνσή του και την καθοδήγηση του, καθ όλη τη διάρκεια εκπόνησης της εν λόγω διπλωματικής εργασίας. Επίσης οφείλω ένα μεγάλο ευχαριστώ στη σύζυγό μου Κατερίνα για την υπομονή και τη κατανόηση που έδειξε, καθώς και για τις συνθήκες εκείνες που διαμόρφωσε και βοήθησε έμμεσα για την ολοκλήρωση της εργασίας μου. Στην κόρη μου Ιωάννα που μου έδινε χαρά με την παρουσία της, καθ όλη τη διάρκεια συγγραφής της εργασίας και στην αγέννητη ακόμη κόρη μου που μου έδινε χαρά με την «αισθητή» παρουσία της και με την αναμονή του ερχομού της. Τέλος να ευχαριστήσω τον αδερφό μου Άγγελο, για την πολύτιμη βοήθεια που μου πρόσφερε. Μακρυπόδης Βασίλειος 4

Περίληψη Στη σημερινή εποχή, η τεχνολογία μπορεί να θεωρηθεί ο καλύτερος σύμμαχος του τρόπου ζωής του σύγχρονου ανθρώπου. Μπορούμε να κάνουμε σχεδόν τα πάντα πάνω από δικτυωμένα συστήματα ή το διαδίκτυο, από απλές εργασίες όπως η κράτηση θέσης σε μια πτήση αεροπορικής εταιρείας, μέχρι σύνθετες εργασίες εμβάσματα σημαντικών ποσών μεταξύ μεγάλων χρηματοπιστωτικών οργανισμών, σχεδιασμό ταξιδιών κ.λπ. Η ασφάλεια των επικοινωνιών και των πληροφοριακών συστημάτων ωστόσο δεν μπορούμε να την θεωρήσουμε δεδομένη και όσο η τεχνολογία εξελίσσεται τόσο το πρόβλημα της ασφάλειας γίνεται πιο σύνθετο. Είναι εξαιρετικά σημαντικό να γνωρίσουμε νέες τεχνικές και μεθοδολογίες για την καταπολέμηση των κυβερνοεπιθέσεων σε κρίσιμα συστήματα πληροφοριών, των κλοπών δεδομένων και των διεισδύσεων σε δίκτυα δεδομένων. Οι οργανισμοί και οι διαχειριστές συστημάτων πρέπει να εκπαιδευτούν για να είναι σε θέση να επιλέξουν την κατάλληλη τεχνολογία ασφαλείας, τα κατάλληλα εργαλεία και εκείνες τις μεθοδολογίες που θα τους βοηθήσουν στην πρόληψη ή στον μετριασμό των απειλών, πριν αυτές εκδηλωθούν. Πρέπει επίσης να αξιολογήσουν την ασφάλεια των συστημάτων που υποστηρίζουν, για να αναδείξουν τις ευπάθειες που πιθανά να υπάρχουν και να λάβουν τα κατάλληλα διορθωτικά μέτρα. Αντικείμενο της παρούσας μεταπτυχιακής εργασίας αποτελεί η διερεύνηση των ευπαθειών και των υπαρχουσών μεθοδολογιών που αφορούν τον έλεγχο ασφαλείας των ιστοχώρων, όπως αυτές περιγράφονται από τρεις μεγάλους οργανισμούς. Επίσης πραγματοποιήθηκαν έλεγχοι ασφαλείας, μέσω δοκιμών διείσδυσης, σε ιστόχωρους του Πανεπιστημίου Πελοποννήσου Η δομή της εργασίας έχει ως ακολούθως: στο πρώτο κεφάλαιο γίνεται μια εισαγωγή στην έννοια της ασφάλειας και στις μεθόδους ελέγχου ασφάλειας των εφαρμογών ιστού. Oι δέκα δημοφιλέστερες ευπάθειες που συναντώνται σε δικτυακές εφαρμογές όπως αυτές παρουσιάζονται από τον οργανισμό OWASP παρουσιάζονται στο δεύτερο κεφάλαιο. Στο τρίτο κεφάλαιο παρουσιάζεται η μεθοδολογία για την αξιολόγηση της ασφάλειας σύμφωνα με τον οργανισμό NIST. Οι ευπάθειες και οι πιθανοί κίνδυνοι που απειλούν ένα ιστόχωρο σύμφωνα με την κατηγοριοποίηση του οργανισμού Web Application Security παρατίθενται στο τέταρτο κεφάλαιο. Στο πέμπτο κεφάλαιο γίνεται μια επισκόπηση και αναλύονται τα χαρακτηριστικά των πιο σημαντικών εργαλείων που διατίθενται για τον έλεγχο των ευπαθειών. Στο έκτο κεφάλαιο παρουσιάζονται και αναλύονται διεξοδικά οι λειτουργίες του ανοιχτού λογισμικού Webscarab. Πραγματοποιήθηκαν μετρήσεις ασφαλείας με τη μέθοδο της δοκιμής διείσδυσης, σύμφωνα με τον οδηγό OWASP Testing Guide v.3 στους εξυπηρέτες του Τμήματος Κοινωνικής & Εκπαιδευτικής Πολιτικής του Πανεπιστημίου Πελοποννήσου με το συγκεκριμένο λογισμικό. Στο έβδομο κεφάλαιο παρουσιάζονται τα συμπεράσματα από τις πραγματοποιηθείσες μετρήσεις ασφαλείας. Λέξεις κλειδιά: Δοκιμή διείσδυσης, έλεγχος ευπάθειας, αξιολόγηση ασφάλειας, εργαλεία μέτρησης ασφάλειας Μακρυπόδης Βασίλειος 5

Abstract Nowadays technology can be considered as the indispensable companion of people s modern way of life. Numerous tasks can be performed over networks or the internet, ranging from simple tasks such as booking a flight, to highly complex tasks such as transferring significant amounts of money through financial organizations or vacation planning. The security of communications and information systems, however, cannot be taken as granted. The more technology evolves, the more complicated the security issue becomes. It is extremely important to keep up to date with new technics and methods, in order to confront cyber attacks against critical data systems, data stealing and database intrusions. Organizations and system administrators must be trained to choose the more efficient security technologies, tools and methods so that to prevent or moderate the possible threats. The security of the systems supported must be evaluated, so as to identify possible vulnerabilities and take appropriate corrective measures. This dissertation focuses on the study of the vulnerabilities and the existing methods concerning the web sites security assessment, as they are described by three important organizations such as OWASP, NIST and Web Application Security. Security assessments were also conducted for the websites of the University of Peloponnese. The structure of this dissertation is as follows: first chapter is an introduction to the concept of security and the methods for assessing the web applications security. The second chapter investigates the ten most popular vulnerabilities that come across in the web applications as they are presented by the OWASP. Chapter three presents the security assessment method published by NIST. The fourth chapter examines vulnerabilities and possible threats for a website, according to the classification of the Web Application Security organization. Chapter five surveys and analyzes the most important tools available for vulnerability control. Chapter six presents and analyses the functionality provided by Webscarab, a piece of software for conducting penetration tests. Webscarab was used for conducting penetration testing, according to the OWASP Testing Guide v.3, against the servers of the Department of Social and Educational Policy of the University of Peloponnese. Finally, the chapter seven concludes the thesis and presents the outcomes of the conducted security assessment tests. Key words: Penetration Testing, vulnerability control, security Assessment, security measurement tools Μακρυπόδης Βασίλειος 6

Περιεχόμενα Ευχαριστίες... 4 Περίληψη... 5 Abstract... 6 Περιεχόμενα... 7 Ευρετήριο Εικόνων... 11 Ευρετήριο Πινάκων... 13 1. Θεωρητικό υπόβαθρο... 14 1.1. Ασφάλεια υπολογιστικών συστημάτων... 14 1.2. Σχεδιασμός Πολιτικής Ασφαλείας... 14 1.3. Βασικές αρχές ασφάλειας της πληροφορίας... 17 1.4. Βασικές μέθοδοι ελέγχου ασφάλειας των εφαρμογών ιστού.... 19 1.4.1. Σύγκριση των μεθόδων ελέγχου της ασφάλειας... 20 1.4.2. Τεχνικές δοκιμής διείσδυσης... 20 2. Η προσέγγιση ελέγχου του OWASP... 23 2.1. Τι είναι το OWASP... 23 2.2. OWASP TOP 10... 23 2.2.1. Α1 Επιθέσεις τύπου έγχυσης (Injection)... 24 2.2.2. A2 Χρήση Scripts Μεταξύ Πολλαπλών Ιστοχώρων (Cross Site Scripting, XSS)... 25 2.2.3. Α3 Επισφαλής Αυθεντικοποίηση και διαχείριση Συνόδου (Broken Authentication and Session Management)... 27 2.2.4. A4 Επισφαλής άμεση αναφορά αντικειμένου (Insecure Direct Object References).. 28 2.2.5. Α5 Παραχάραξη Αιτήσεων μεταξύ Πολλαπλών Ιστοχώρων (Cross Site Request Forgery, CSRF)... 29 2.2.6. Α6 Επισφαλείς ρυθμίσεις ασφαλείας (Security Misconfiguration)... 31 2.2.7. Α7 Επισφαλής κρυπτογραφημένη αποθήκευση (Insecure Cryptographic Storage)... 32 2.2.8. A8 Ανεπαρκής περιορισμός πρόσβασης URL Failure to Restrict URL Access... 34 2.2.9. Α9 Ανεπαρκής προστασία του επιπέδου μεταφοράς (Insufficient Transport Layer Protection)... 35 2.2.10. A10 Μη επικυρωμένες ανακατευθύνσεις και προωθήσεις (Unvalidated Redirects and Forwards)... 37 3. NIST National Institute of Standards and Technology (NIST)... 39 3.1. Γενικά για το Ίδρυμα NIST... 39 3.2. Μεθοδολογία και τεχνικές αποτίμησης της ασφάλειας των πληροφοριών... 39 3.2.1. Μεθοδολογία για την αξιολόγηση της ασφάλειας... 39 3.2.2. Τεχνικές αξιολόγησης της ασφάλειας... 41 4. Web application security Consortium... 53 4.1. Χρήση της Κατηγοριοποίησης Απειλών... 53 4.2. Κατηγοριοποίηση απειλών, απαριθμημένη εκδοχή... 54 4.3. Κατηγοριοποίηση απειλών, εκδοχή ανά φάση ανάπτυξης της εφαρμογής... 55 4.4. Επιθέσεις (attacks)... 58 4.4.1. Κατάχρηση της λειτουργικότητας (Abuse of Functionality)... 58 4.4.2. Επιθέσεις ωμής βίας (Brute Force)... 59 4.4.3. Υπερχείλιση ενδιάμεσης μνήμης (Buffer Overflow)... 60 4.4.4. Πλαστογράφηση περιεχομένου (Content Spoofing)... 60 Μακρυπόδης Βασίλειος 7

4.4.5. Πρόβλεψη διαπιστευτηρίων / συνόδου (Credential / Session Prediction)... 61 4.4.6. Cross Site Scripting... 61 4.4.7. Πλαστογράφηση αιτήσεων μεταξύ ιστοχώρων (Cross Site Request Forgery)... 62 4.4.8. Άρνηση Υπηρεσίας (Denial of Service)... 62 4.4.9. Λήψη αποτυπωμάτων (Fingerprinting)... 63 4.4.10. Συμβολοσειρά μορφοποίησης (Format String)... 63 4.4.11. «Λαθραία» αιτήματα HTTP (HTTP Request Smuggling)... 64 4.4.12. Διάσπαση αιτήσεων HTTP (HTTP Request Splitting)... 65 4.4.13. «Λαθραίες» απαντήσεις HTTP (HTTP Response Smuggling)... 65 4.4.14. Διάσπαση απαντήσεων HTTP (HTTP Response Splitting)... 65 4.4.15. Υπερχείλιση ακεραίων (Integer Overflows)... 66 4.4.16. Έγχυση στον LDAP (LDAP Injection)... 66 4.4.17. Έγχυση στο σύστημα ηλεκτρονικής αλληλογραφίας (Mail Command Injection)... 67 4.4.18. Έγχυση μηδενικών bytes (Null Byte Injection)... 67 4.4.19. Εκτέλεση εντολών λειτουργικού συστήματος (OS Commanding)... 68 4.4.20. Διάσχιση διαδρομής (Path Traversal)... 68 4.4.21. Προβλέψιμη τοποθεσία πόρων (Predictable Resource Location)... 69 4.4.22. Συμπερίληψη απομακρυσμένου αρχείου (Remote File Inclusion RFI)... 69 4.4.23. Παράκαμψη Δρομολόγησης (Routing Detour)... 69 4.4.24. Εκμετάλλευση πινάκων σε μηνύματα SOAP (SOAP Array Abuse)... 70 4.4.25. Έγχυση σε αρχεία συμπερίληψης εξυπηρέτη (SSI Injection)... 70 4.4.26. Κακόβουλος ορισμός αναγνωριστικών συνόδου (Session Fixation)... 71 4.4.27. Έγχυση σε εντολές SQL (SQL Injection)... 71 4.4.28. Κατάχρηση ανακατεύθυνσης URL (URL Redirector Abuse)... 72 4.4.29. Έγχυση σε XPath (XPath Injection)... 72 4.4.30. Καταιγισμός γνωρισμάτων XML (XML Attribute Blowup)... 73 4.4.31. Εξωτερικές οντότητες XML (XML External Entities)... 73 4.4.32. Ανάπτυξη οντοτήτων XML (XML Entity Expansion)... 73 4.4.33. Έκχυση XML (XML Injection)... 74 4.4.34. Έγχυση XQUERY (XQUERY Injection)... 74 4.5. Ευπάθειες, (Weaknesses)... 74 4.5.1. Κακή διαμόρφωση εφαρμογής (Application Misconfiguration)... 74 4.5.2. Εμφάνιση λίστας περιεχομένων καταλόγων (Directory Indexing)... 75 4.5.3. Ακατάλληλα δικαιώματα στο σύστημα αρχείων (Improper Filesystems Permission)... 75 4.5.4. Ακατάλληλος χειρισμός εισόδου (Improper Input Handling)... 77 4.5.5. Ακατάλληλος χειρισμός εξόδου (Improper Output Handling)... 78 4.5.6. Διαρροή πληροφοριών (Information Leakage)... 79 4.5.7. Μη ασφαλής ευρετηριασμός (Insecure Indexing)... 80 4.5.8. Ανεπαρκή μέτρα έναντι αυτοματοποιημένης εκτέλεσης (Insufficient Anti automation)..... 81 4.5.9. Ανεπαρκής αυθεντικοποίηση (Insufficient Authentication)... 82 4.5.10. Ανεπαρκής εξουσιοδότηση (Insufficient Autorization)... 82 4.5.11. Ανεπαρκής διαδικασία ανάκτησης συνθηματικών (Insufficient Password Recovery)..... 82 4.5.12. Ανεπαρκής επικύρωση διαδικασιών (Insufficient Process Validation)... 83 4.5.13. Ανεπαρκής αυτόματη λήξη συνόδων (Insufficient Session Expiration)... 84 4.5.14. Ανεπαρκής προστασία επιπέδου μεταφοράς (Insufficient Transport Layer Protection)... 85 4.5.15. Επισφαλής διαμόρφωση εξυπηρέτη (Server Misconfiguration)... 86 5. Επισκόπηση διαθέσιμων εργαλείων για έλεγχο ευπαθειών... 87 5.1. Εισαγωγή... 87 5.2. Εργαλεία για έλεγχο ευπαθειών... 87 5.3. Εργαλεία ανίχνευσης Ευπαθειών (Vulnerability Scanners)... 87 5.3.1. Nessus... 88 5.3.2. Core Impact... 88 Μακρυπόδης Βασίλειος 8

5.3.3. OpenVAS... 89 5.4. Εργαλεία ανίχνευσης και εκμετάλλευσης ευπαθειών (Vulnerability Exploitation Tools) 89 5.4.1. Metasploit... 89 5.4.2. Social Engineer Toolkit... 90 5.4.3. WebGoat... 90 5.5. Εργαλεία καταγραφής πακέτων (Packet Analyzer Sniffers)... 90 5.5.1. Wireshark... 91 5.5.2. Cain and Abel... 91 5.5.3. Tcpdump... 91 5.5.4. Ettercap... 92 5.6. Εργαλεία καταγραφής και παραμετροποίησης πακέτων (Packet Crafting Tools) 92 5.6.1. Netcat... 92 5.6.2. Hping... 93 5.6.3. Yersinia... 93 5.7. Εργαλεία σπασίματος συνθηματικών (Password crackers)... 94 5.7.1. Aircrack... 94 5.7.2. THC Hydra... 94 5.7.3. Medusa... 95 5.7.4. RainbowCrack... 95 5.8. Εργαλεία ανίχνευσης ευπαθειών σε εξυπηρέτες ιστοσελίδων (Web Vulnerability Scanners)... 96 5.8.1. W3af... 96 5.8.2. WebScarab... 96 5.8.3. Skipfish... 97 5.8.4. Netsparker... 97 5.8.5. Firebug... 98 5.9. Rootkit Detectors... 98 5.9.1. Sysinternals... 99 5.9.2. HijackThis... 99 6. Παρουσίαση του τρόπου λειτουργίας του Webscarab και αναφορά των πιθανών ευπαθειών κατά τον έλεγχο στους εξυπηρέτες του Τμήματος Κοινωνικής & Εκπαιδευτικής Πολιτικής... 100 6.1. Παρουσίαση του WebScarab... 100 6.2. Εγκατάσταση... 100 6.3. Ρυθμίσεις περιβάλλοντος εργασίας... 100 6.3.1. Ρυθμίσεις εξυπηρέτη αντιπροσώπευσης (Upstream Proxy)... 101 6.3.2. Πιστοποιητικά πελάτη (Client side Certificates)... 103 6.4. Διαχείριση συνόδων από το Webscarab (Webscarab session management)... 103 6.5. Πρόσθετα του Webscarab (Webscarab Plugins)... 104 6.5.1. Το Πρόσθετο του εξυπηρέτη αντιπροσώπευσης (The Proxy Plugin)... 104 6.5.2. Το πρόσθετο χειροκίνητου αιτήματος (The Manual Request Plugin)... 107 6.5.3. Το πρόσθετο Spider (The Spider Plugin)... 107 6.5.4. Session ID Analysis... 108 6.5.5. Πρόσθετο εκτέλεσης script (The scripted plugin)... 109 6.5.6. The fragments plugin... 110 6.5.7. Το πρόσθετο σύγκρισης (The Compare plugin)... 110 6.5.8. Το πρόσθετο Fuzzer (The Fuzzer plugin)... 110 6.5.9. Το πρόσθετο της αναζήτησης (Τhe search plugin)... 110 6.5.10. Το πρόσθετο XSS/CRL (XSS/CRLF plugin)... 111 6.6. Μετρήσεις ασφαλείας και ανάλυση στοιχείων του δικτύου του Τμήματος Κοινωνικής & Εκπαιδευτικής Πολιτικής του Πανεπιστημίου Πελοποννήσου... 111 6.7. Συλλογή πληροφοριών (Information Gathering)... 117 Μακρυπόδης Βασίλειος 9

6.7.1. Λήψη αποτυπωμάτων, Αρ. Αναφοράς OWASP IG 004... 117 6.7.2. Εντοπισμός εφαρμογών, Αρ. Αναφοράς OWASP IG 005... 119 6.7.3. Spiders, Robots and Crawlers, Αρ. Αναφοράς OWASP IG 001... 120 6.7.4. Έλεγχος για λάθη στον κώδικα, Αρ. Αναφοράς OWASP IG 006... 121 6.8. Έλεγχος Αυθεντικοποίησης (Authentication Testing)... 122 6.8.1. Έλεγχος για επίθεση ωμής βίας, Αρ. Αναφοράς OWASP AT 004... 123 6.8.2. Έλεγχος για παράκαμψη της αυθεντικοποίησης, Αρ. Αναφοράς OWASP AT 005... 123 6.8.3. Έλεγχος για ευπάθεια απομνημόνευσης κωδικού, Αρ. Αναφοράς OWASP AT 006... 130 6.8.4. Έλεγχος για αποσύνδεση χρήστη και διαχείριση προσωρινής μνήμης, Αρ. Αναφοράς OWASP AT 007... 132 6.9. Έλεγχος επικύρωσης δεδομένων... 133 6.9.1. Έλεγχος για Cross Site Scripting, Αρ. Αναφοράς OWASP DV 001... 133 7. Επισκόπηση Συμπεράσματα... 135 Πηγές Βιβλιογραφία... 137 Μακρυπόδης Βασίλειος 10

Ευρετήριο Εικόνων Εικόνα 1. Οι τρεις βασικές αρχές της ασφάλειας... 18 Εικόνα 2: Σχηματική αναπαράσταση της διεπαφής (interface) των Black Box και White Box τεχνικών δοκιμής διείσδυσης σε μια εφαρμογή ιστού.... 21 Εικόνα 3: Μεθοδολογία ελέγχου διείσδυσης τεσσάρων φάσεων κατά NIST... 51 Εικόνα 4. Η οθόνη εκκίνησης του Webscarab... 101 Εικόνα 5. Καρτέλα διαμόρφωσης του proxy μέσα από το περιβάλλον του Webscarab... 102 Εικόνα 6. Διαμόρφωση ρυθμίσεων του τοπικού δικτύου και χρήση proxy, από το περιβάλλον του Internet Explorer... 102 Εικόνα 7. Καρτέλα διαχειριστή πιστοποιητικών μέσα από το περιβάλλον του Webscarab... 103 Εικόνα 8. Καρτέλα επιλογών του Proxy Listener μέσα από το περιβάλλον του Webscarab... 105 Εικόνα 9. Καρτέλα επιλογών του Manual Request μέσα από το περιβάλλον του Webscarab... 107 Εικόνα 10. Καρτέλα επιλογών του πρόσθετου Spider μέσα από το περιβάλλον του Webscarab... 108 Εικόνα 11. Καρτέλα επιλογών του πρόσθετου session ID Analysis μέσα από το περιβάλλον του Webscarab... 108 Εικόνα 12. Πληροφορίες του ιστοχώρου HTTP://dsep.uop.gr όπως φαίνονται από το Webscarab... 118 Εικόνα 13. Αποτελέσματα αυτοματοποιημένου ελέγχου με το httpprint στο υποδίκτυο 195.251.46.0 /28... 118 Εικόνα 14. Αποτελέσματα on line ελέγχου με το Netcraft στον ιστοχώρο HTTP://dsep.uop.gr... 119 Εικόνα 15. Αποτελέσματα ελέγχου με το Netmap στον ιστοχώρο HTTP://dsep.uop.gr... 120 Εικόνα 16. Πληροφορίες των συνδέσεων του ιστοχώρου HTTP://dsep.uop.gr όπως φαίνονται από το πρόσθετο Spider του Webscarab... 121 Εικόνα 17. Αποτελέσματα χειροκίνητου ελέγχου με το Webscarab κατά το αίτημα ανύπαρκτης ιστοσελίδας... 122 Εικόνα 18. Εξέταση κώδικα της εφαρμογής Webmail του Πανεπιστημίου Πελοποννήσου... 123 Εικόνα 19. Παρακολούθηση συνομιλίας μέσα από το περιβάλλον του Webscarab.... 125 Εικόνα 20. Αποτυχημένη απόπειρα σύνδεσης κατά τον έλεγχο της παράκαμψης αυθεντικοποίησης... 125 Εικόνα 21. Συνομιλίες οι οποίες περιλαμβάνουν cookies.... 126 Εικόνα 22. Το πρόσθετο SessionID Analysis σε συγκεκριμένη συνομιλία... 127 Εικόνα 23. Αποτελέσματα από την ανάλυση των αναγνωριστικών περιόδου. 128 Μακρυπόδης Βασίλειος 11

Εικόνα 24. Γράφημα των τιμών των cookies συναρτήσει του χρόνου... 128 Εικόνα 25. Προσπάθεια πραγματοποίησης έκχυσης SQL... 129 Εικόνα 26. Άρνηση πρόσβασης στην εφαρμογή μετά από έκχυση SQL... 130 Εικόνα 27. Παρατήρηση του cache control της εφαρμογής που παρατηρούμε... 131 Εικόνα 28. Δυνατότητα αποθήκευσης του ονόματος χρήστη, στην εφαρμογή ιστού του χρήστη... 132 Εικόνα 29. Έλεγχος αποσύνδεσης χρήστη με επαναχρησιμοποίηση cokkie.... 132 Εικόνα 30. Έλεγχος για XSS ευπάθεια με το Webscarab... 134 Εικόνα 31. Αναλυτικός έλεγχος συγκεκριμένης συνομιλίας για την ευπάθεια XSS... 134 Μακρυπόδης Βασίλειος 12

Ευρετήριο Πινάκων Πίνακας 1. αντιπροσωπευτικές επιθέσεις και απειλές, βάσει του WASC... 55 Πίνακας 2. Αντιπροσωπευτικές επιθέσεις και απειλές, βάσει του WASC, ταξινομημένες κατά στάδιο κύκλου ζωής... 58 Πίνακας 3. Λίστα κατηγοριοποίησης ελέγχων του OWASP... 116 Πίνακας 4. Βασικά αποτελέσματα του ελέγχου ασφάλειας... 136 Μακρυπόδης Βασίλειος 13

1. Θεωρητικό υπόβαθρο 1.1. Ασφάλεια υπολογιστικών συστημάτων Η ασφάλεια πληροφοριακών συστημάτων είναι κλάδος της επιστήμης της πληροφορικής που ασχολείται με την προστασία των υπολογιστών, των δικτύων που τους συνδέουν και των δεδομένων που εμπεριέχονται σε αυτά τα συστήματα. Η ασφάλεια μεριμνά για την προστασία των πόρων (δεδομένων και προγραμμάτων) από συμπτωματική ή κακόβουλη τροποποίηση, καταστροφή ή διαρροή, διασφαλίζοντας την ακεραιότητα, την αυθεντικότητα, την εγκυρότητα, την εμπιστευτικότητα, τη διαθεσιμότητα και τη μη αποποίηση ευθύνης. Ειδικότερα, οι διαστάσεις αυτές της ασφάλειας ορίζονται ως ακολούθως: Εμπιστευτικότητα: οι πληροφορίες είναι προσπελάσιμες μόνο από εξουσιοδοτημένους χρήστες Ακεραιότητα: τα δεδομένα και τα προγράμματα τροποποιούνται και καταστρέφονται μόνο με καλά καθορισμένους τρόπους και με κατάλληλη εξουσιοδότηση Διαθεσιμότητα: Οι εξουσιοδοτημένοι χρήστες θα μπορούν να χρησιμοποιήσουν δεδομένα, προγράμματα και υπηρεσίες όταν το επιθυμήσουν Αυθεντικότητα: εξασφάλιση ότι τα δεδομένα είναι απαλλαγμένα ατελειών και ανακριβειών κατά τις εξουσιοδοτημένες τροποποιήσεις Εγκυρότητα: εξασφάλιση ότι τα δεδομένα είναι ακριβή και πλήρη Μη αποποίηση ευθύνης: κανένα από τα συναλλασσόμενα μέρη δεν πρέπει να έχει τη δυνατότητα να αρνηθεί τη συμμετοχή του σε μία συναλλαγή. Ανάμεσα στους συγγενικούς τομείς της ασφάλειας πληροφοριακών συστημάτων συμπεριλαμβάνονται η ψηφιακή εγκληματολογία και η εφαρμοσμένη κρυπτογραφία. 1.2. Σχεδιασμός Πολιτικής Ασφαλείας Η πολιτική ασφάλειας των πληροφοριακών συστημάτων περιλαμβάνει τον σκοπό και τους στόχους της ασφάλειας, οδηγίες, διαδικασίες, κανόνες, ρόλους και υπευθυνότητες που αφορούν την προστασία των πληροφοριακών συστημάτων του οργανισμού. Ο σχεδιασμός πολιτικών ασφάλειας στα Πληροφοριακά Συστήματα, συνδέεται άμεσα τόσο με τεχνικές, διαδικασίες και διοικητικά μέτρα όσο και με ηθικό κοινωνικές αντιλήψεις, αρχές και παραδοχές, προφυλάσσοντας από κάθε είδους απειλή τυχαία ή σκόπιμη. Οι διαδικασίες σχεδιασμού πολιτικών ασφαλείας, δεν θα πρέπει να παρεμβαίνουν στην απρόσκοπτη λειτουργία των πληροφοριακών συστημάτων, ενώ οφείλουν να τηρούν την αρχή της αποκέντρωσης, της ύπαρξης αντικατάστασης και την αρχή της άμυνας σε βάθος. Ως βάση μπορεί να οριστεί ο εντοπισμός, η αξιολόγηση και στη συνεχεία η διαμόρφωση ενός θεωρητικού πλαισίου για το σχεδιασμό πολιτικών σχεδιασμού ασφάλειας. Το πιο βασικό σημείο στη διαδικασία σχεδιασμού πολιτικών ασφάλειας, είναι ο εντοπισμός και χαρακτηρισμός με την κατάλληλη διαβάθμιση των πληροφοριών που πρόκειται να χρησιμοποιηθούν και να προστατευθούν (εμπιστευτικές, Μακρυπόδης Βασίλειος 14

απόρρητές, άκρως απόρρητες κ.λπ.). Εκτός από τις αρχές της Ακεραιότητας Πληροφοριών, την Εμπιστευτικότητα και τη Διαθεσιμότητα Πληροφοριών οι πολιτικές ασφάλειας θα πρέπει να εμπεριέχουν και τους όρους αυθεντικότητα, εγκυρότητα, μοναδικότητα και μη αποποίηση. Ωστόσο, οι πολιτικές ασφάλειας προϋποθέτουν την ύπαρξη μίας δέσμης βασικών αρχών, εκφρασμένων με σαφήνεια η οποία να τέμνει τους σχεδιαστικούς στόχους των λειτουργικών συστημάτων. Κάθε αντικείμενο του συστήματος θα πρέπει να μπορεί να αναγνωρισθεί μονοσήμαντα και να συνοδεύεται από μία ένδειξη του βαθμού εμπιστευτικότητας. Επιπλέον, η ισχύς των ασφαλιστικών μηχανισμών δεν θα πρέπει να βασίζονται στην άγνοια των χρηστών σχετικά με τις τεχνικές ασφαλείας οι οποίες χρησιμοποιούνται (Security through obscurity), αλλά στην αποτελεσματική τους σχεδίαση.[1] Στόχος μιας μεθοδολογίας ανάπτυξης πολιτικών ασφάλειας είναι ο περιορισμός της επικινδυνότητας σε αποδεκτό επίπεδο. Η μεθοδολογία περιλαμβάνει αξιολόγηση της επικινδυνότητας και καθορισμό του αποδεκτού επιπέδου ασφαλείας, ανάπτυξη και εφαρμογή μιας πολιτικής ασφαλείας καθώς και δημιουργία κατάλληλου οργανωτικού πλαισίου και εξασφάλιση των απαιτούμενων πόρων για την εφαρμογή της πολιτικής ασφάλειας. Η πολιτική ασφάλειας, μαζί με το σύνολο των μέτρων προστασίας, αποτελούν το σχέδιο ασφαλείας (security plan) για τα πληροφοριακά συστήματα ενός οργανισμού διότι χρειαζόμαστε ένα ολοκληρωμένο πλαίσιο με την καθοδήγηση των μέτρων ασφαλείας να λειτουργεί ως μέσο επικοινωνίας των εμπλεκομένων στα ζητήματα ασφαλείας. Επιπλέον θεμελιώνεται η σημασία της ασφάλειας του πληροφοριακού συστήματος για τα μέλη του οργανισμού, δημιουργείται μια κουλτούρα ασφαλείας καθώς πολλές φορές αποτελεί νομική υποχρέωση και αποτελεί παράγοντα εμπιστοσύνης μεταξύ οργανισμού και πελατών. Τα είδη των πολιτικών ασφαλείας είναι: οι τεχνικές (computer oriented), οι οποίες περιλαμβάνουν Πολιτικές Ασφάλειας Πληροφοριών, Πολιτικές Ασφάλειας Λειτουργικών Συστημάτων και Πολιτικές Ασφάλειας Δικτύων Υπολογιστών και οι οργανωτικές (human oriented), όπου διαμορφώνονται Πολιτικές Ασφάλειας Πληροφοριακών Συστημάτων, οι οποίες άπτονται όλων των πτυχών των πληροφοριακών συστημάτων. Από την άλλη πλευρά, οι πολιτικές ασφάλειας μπορούν να έχουν τις εξής μορφές: ατομικές (individual security policies). Οι πολιτικές αυτές αναπτύσσονται ανά σύστημα ή εφαρμογή (π.χ. Πολιτική Ασφάλειας για τη χρήση του e mail). Παρέχουν αποσπασματική διαχείριση της ασφάλειας ΠΣ και έχουν μεγάλη πολυπλοκότητα στη συντήρηση των πολιτικών, είναι ωστόσο αποτελεσματικές όταν υπάρχουν αυτόνομες εφαρμογές και υπολογιστικά συστήματα που δε συνδέονται μεταξύ τους. αναλυτικές (Comprehensive Security Policies), όπου υπάρχει ένα ενιαίο έγγραφο που αναφέρεται σε όλα τα υπολογιστικά συστήματα, τις εφαρμογές και τις διαδικασίες του. Είναι μεγάλες σε όγκο, και κατά συνέπεια όχι πολύ εύχρηστες, ενώ οι οδηγίες και διαδικασίες που περιλαμβάνονται είναι σε γενικό επίπεδο, χωρίς λεπτομέρειες. Μακρυπόδης Βασίλειος 15

αρθρωτές (Modular Security Policies). Σε αυτές υπάρχει ένα ενιαίο έγγραφο με παραρτήματα που περιγράφουν τις επιμέρους πολιτικές. Το έγγραφο αυτό μπορεί να είναι σε μορφή υπερκειμένου (hypertext). Οι απαιτήσεις για την ασφάλεια του ΠΣ που πρέπει να ικανοποιεί η Πολιτική Ασφάλειας προέρχονται από όλους τους εμπλεκόμενους στη χρήση και λειτουργία του ΠΣ ενός οργανισμού, όπως είναι: Οι χρήστες και διαχειριστές των ΠΣ Η διοίκηση του οργανισμού Οι πελάτες του οργανισμού Οι νομικές και κανονιστικές διατάξεις που διέπουν τη λειτουργία του Ο καθορισμός της πολιτικής ασφάλειας ενός πληροφοριακού συστήματος θα πρέπει να καλύπτει τις ακόλουθες κατηγορίες: Ζητήματα προσωπικού Φυσική ασφάλεια Έλεγχος πρόσβασης στο πληροφοριακό σύστημα Διαχείριση υλικών και λογισμικών Νομικές υποχρεώσεις Διαχείριση της πολιτικής ασφάλειας Οργανωτική δομή Σχέδιο συνέχισης λειτουργίας Όταν εφαρμόζουμε μια πολιτική ασφαλείας επιδιώκουμε: οι οδηγίες και τα μέτρα προστασίας οφείλουν να καλύπτουν το σύνολο των αγαθών και όλες τις λειτουργίες (πληρότητα) να λάβουμε υπόψη τις τρέχουσες τεχνολογικές εξελίξεις (επικαιρότητα) με κάποιες τροποποιήσεις ή προσθήκες να μπορεί η πολιτική να καλύπτει μικρές αλλαγές ή επεκτάσεις στο πληροφοριακό σύστημα (γενικευσιμότητα). Επιπλέον πρέπει να υπάρχει σαφήνεια και εύκολη κατανόηση, τεχνολογική ανεξαρτησία και καταλληλότητα ανάλογα με τον οργανισμό που απευθύνεται. Μια Πολιτική Ασφάλειας ΠΣ επιτυγχάνει καλύτερα τους στόχους της όταν υποστηρίζει τους επιχειρηματικούς στόχους, η ανώτερη διοίκηση του οργανισμού υποστηρίζει και συμμετέχει ενεργά στην εφαρμογή της, είναι κατάλληλη για το συγκεκριμένο περιβάλλον όπου εφαρμόζεται (οργανωσιακή κουλτούρα) και οι χρήστες εκπαιδεύονται και ενημερώνονται κατάλληλα. Παράλληλα, πρέπει να υπάρχουν διαδικασίες αξιολόγησης της αποτελεσματικότητάς της, ώστε να αναθεωρείται αναλόγως, να εφαρμόζεται σταδιακά, ανάλογα με το βαθμό της αλλαγής που επιφέρει η εφαρμογή της Πολιτικής στις δραστηριότητες των χρηστών και τέλος να έχουν εύκολη και άμεση πρόσβαση σε αυτήν όλοι οι χρήστες του ΠΣ. Μακρυπόδης Βασίλειος 16

1.3. Βασικές αρχές ασφάλειας της πληροφορίας Για να κατανοήσουμε καλύτερα την έννοια της ασφάλειας της πληροφορίας (information security) πρέπει να μπορέσουμε να διακρίνουμε τις τρεις συνεχείς και διαφορετικές μεταξύ τους δράσεις που αυτή απαιτεί: Πρόληψη (prevention): Είναι η λήψη μέτρων που µας επιτρέπουν να προλαβαίνουμε τη δημιουργία επικίνδυνων καταστάσεων. Ανίχνευση (detection): Είναι η λήψη μέτρων που µας επιτρέπουν να αντιληφθούμε πως, πότε και από ποιόν έχει προκληθεί κάποια ζημιά. Αντίδραση (reaction): Είναι η λήψη μέτρων που µας επιτρέπουν να αποκαταστήσουμε τις ζημιές που έχουν προκληθεί. Έτσι συμπεραίνουμε πως, η πρόληψη αποτελεί την ουσία της ασφάλειας, καθώς χρησιμεύει ως μονάδα ποσοτικής μέτρησης έναντι της ανίχνευσης και αντίδρασης. Η ανίχνευση συνεπικουρεί στον εντοπισμό τυχόν κενών και προβλημάτων ασφάλειας μόλις τα προληπτικά μέτρα τεθούν σε εφαρμογή και η αντίδραση ανταποκρίνεται με τους κατάλληλους μηχανισμούς στις παραβιάσεις ασφάλειας. Η ασφάλεια σε ένα σύστημα, κατά κύριο λόγο, συνεπάγεται την εξέταση των ευπαθειών, των απειλών, των αντιμέτρων και του αποδεκτού ρίσκου. Ευπάθεια (vulnerability): ονομάζεται μια αδυναμία της εφαρμογής, η οποία μπορεί να οφείλεται σε ένα τρωτό σημείο της κατά τη σχεδίαση της, ή σε ένα σφάλμα κατά την υλοποίηση της και η οποία μπορεί να επιτρέψει στην πραγματοποίηση μιας απειλής. Απειλή (threat): ονομάζουμε οποιαδήποτε πράξη ή γεγονός που θα μπορούσε να παραβιάσει την ασφάλεια μιας εφαρμογής ή ενός συστήματος γενικότερα και να προκαλέσει ζημιά υπό μορφή καταστροφής, κοινοποίησης, τροποποίησης των στοιχείων ή και άρνηση της υπηρεσίας. Αντίμετρα (countermeasures): ονομάζουμε τον μηχανισμό ή τη διαδικασία εκείνη (τεχνολογίες ή μοντέλα άμυνας) που αποσκοπεί στη μείωση ή αποτροπή των επιμέρους κινδύνων στους οποίους εκτίθεται το πληροφοριακό σύστημα. Τα αναγκαία αντίμετρα σε μια εφαρμογή πρέπει να αναγνωριστούν με την χρήση της ανάλυσης κινδύνου (risk analysis) έτσι ώστε να διασφαλιστεί ότι η εφαρμογή προστατεύεται από κοινούς τύπους επιθέσεων. Οποιαδήποτε αδυναμία ή ρωγμή στη σχεδίαση των αντίμετρων ή ακόμα και ή παράλειψη ενός συγκεκριμένου αντιμέτρου μπορεί να έχει ως αποτέλεσμα μια ευπάθεια, η οποία μπορεί να είναι ικανή να καταστήσει την εφαρμογή ευάλωτη σε επιθέσεις. Η ασφάλεια πληροφοριακών συστημάτων στηρίζεται σε τρεις βασικές αρχές. Την Ακεραιότητα, την Διαθεσιμότητα και την εμπιστευτικότητα. Μακρυπόδης Βασίλειος 17

Εικόνα 1. Οι τρεις βασικές αρχές της ασφάλειας Ακεραιότητα (integrity): αναφέρεται στη διατήρηση των δεδομένων ενός πληροφοριακού συστήματος σε μια γνωστή κατάσταση χωρίς ανεπιθύμητες τροποποιήσεις, αφαιρέσεις ή προσθήκες από μη εξουσιοδοτημένα άτομα, καθώς και την αποτροπή της πρόσβασης ή χρήσης των υπολογιστών και δικτύων του συστήματος από άτομα χωρίς άδεια. Στην περίπτωση αυτή αναφερόμαστε είτε στην πληροφορία η οποία υπάρχει μέσα στα δεδομένα είτε στην μεταπληροφορία η οποία συνοδεύεται από τα δεδομένα. Ένα παράδειγμα μεταπληροφορίας σε μία βάση δεδομένων θα ήταν τα ονόματα των πινάκων, το σχήμα τους και το πλήθος των εγγραφών τους. Ο επιτιθέμενος μπορεί να μην καταφέρει να διαβάσει τις εγγραφές της βάσης δεδομένων αλλά ακόμη και η γνώση του σχήματος (π.χ. αν υπάρχει στήλη «πολιτικές πεποιθήσεις») ή η γνώση του πλήθους των εγγραφών (π.χ. αριθμός πελατών μιας εταιρείας) μπορεί να είναι πολύτιμες πληροφορίες για τον επιτιθέμενο, ή αντίστροφα πληροφορίες που δεν πρέπει να διαρρεύσουν, σε ό,τι αφορά τον ιδιοκτήτη του πληροφοριακού συστήματος. Διαθεσιμότητα (availability): Η διαθεσιμότητα των δεδομένων και των υπολογιστικών πόρων, είναι η εξασφάλιση ότι οι υπολογιστές, τα δίκτυα και τα δεδομένα θα είναι στη διάθεση των νομότυπων χρηστών όποτε απαιτείται η χρήση τους. Μία τυπική απειλή που αντιμετωπίζουν τα σύγχρονα πληροφοριακά συστήματα είναι η επίθεση άρνησης υπηρεσιών (DOS attack), που έχει ως σκοπό να τεθούν εκτός λειτουργίας οι στοχευόμενοι πόροι είτε προσωρινά, είτε μόνιμα. Η άρνηση υπηρεσιών δεν προκαλείται αναγκαία από εχθρική επίθεση. Το φαινόμενο Slashdot, κατά το οποίο δημοσιεύεται σε δημοφιλή ιστοχώρο ένας σύνδεσμος προς μια ιστοσελίδα φιλοξενούμενη σε εξυπηρέτη με σύνδεση χαμηλής χωρητικότητας, με συνέπεια εκατοντάδες χιλιάδες αναγνώστες να υπερφορτώσουν τη σύνδεση της αναφερομένης ιστοσελίδας (του εξυπηρέτη δηλαδή με τη χαμηλής χωρητικότητας σύνδεση), προκαλεί το ίδιο αποτέλεσμα. Εμπιστευτικότητα (confidentiality): Είναι η προστασία της πληροφορίας και των πληροφοριακών συστημάτων. Αυτό σημαίνει ότι ευαίσθητες πληροφορίες δεν Μακρυπόδης Βασίλειος 18

θα έπρεπε να αποκαλύπτονται σε μη εξουσιοδοτημένα άτομα. Τα δεδομένα τα οποία είτε διακινούνται είτε αποθηκεύονται πρέπει να είναι προσβάσιμα μόνο από τα άτομα που πρέπει να έχουν πρόσβαση σε αυτά. Δεν θέλουμε κανένας τρίτος με κανένα τρόπο να μπορεί να διαβάσει αυτά τα δεδομένα και να τα χρησιμοποιήσει κατά το δοκούν. Η διαρροή ευαίσθητων πληροφοριών μπορεί να γίνει με πιο παραδοσιακές μεθόδους από την ψηφιακή υποκλοπή, π.χ. με την κλοπή φορητών υπολογιστών από το κατάλληλο τμήμα μιας εταιρίας. Το 2006 μια μελέτη με τη συνεργασία 480 εταιριών έδειχνε ότι 80% των εταιριών είχε πρόβλημα με διαρροή πληροφοριών λόγω κλοπής φορητού υπολογιστή. 1.4. Βασικές μέθοδοι ελέγχου ασφάλειας των εφαρμογών ιστού. Λόγω της μεγάλης εξάπλωσης που έχει γνωρίσει ο παγκόσμιος ιστός και οι εφαρμογές του, η ασφάλεια των εφαρμογών ιστού έχει αποκτήσει ιδιαίτερη σημασία. Ο συνεχής έλεγχος και η μέτρηση της ασφάλειας των εφαρμογών ιστού είναι απαραίτητη προϋπόθεση για τη διατήρηση της ασφάλειας ενός συστήματος, το οποίο συνδέεται στο Web. Όμως σε έναν ιστότοπο είναι δυνατό να φιλοξενείται ένα μεγάλο πλήθος εφαρμογών ιστού διαφορετικού τύπου με διαφορετικό λογισμικό. Οι εφαρμογές ιστού κατασκευάζονται σε επίπεδα, από προγράμματα και δεδομένα τα οποία φιλοξενούνται σε πολλαπλούς εξυπηρέτες (web servers, application servers, database servers) και για τον λόγο αυτό υπάρχουν διάφορες μέθοδοι ελέγχου της ασφάλειας των εφαρμογών ιστού. Οι σημαντικότερες και ευρέως χρησιμοποιούμενες μέθοδοι είναι οι ακόλουθες: Επιθεώρηση ασφαλείας (security audit): Είναι η διαδικασία όπου ένα σύστημα ελέγχεται με βάση ένα σύνολο από λίστες ελέγχου (checklists), οι οποίες διαμορφώνονται με βάση διεθνή πρότυπα σχετικά με την ασφάλεια, καθώς και κατάλληλες πολιτικές ασφάλειας του οργανισμού, που χρησιμοποιεί την εφαρμογή ιστού. Οι ελεγκτές εκτελούν την εργασία τους μέσα από προσωπικές συνεντεύξεις, ανιχνεύσεις αδυναμιών, επιθεωρήσεις των ρυθμίσεων, αναλύσεις των διαμοιρασμένων πόρων δικτύου και μελέτες των αρχείων καταγραφής (log files). Αυτοαξιολόγηση ασφάλειας (security self assement): Εδώ δεν υπάρχουν συγκεκριμένα standards ως προς τα οποία θα αξιολογηθεί το σύστημα, αλλά ο στόχος προσδιορίζεται από την περιοχή που χρειάζεται διερεύνηση και βελτίωση στη θωράκισή της. Ξεπερνά τους πίνακες ελέγχου (checklists) και επεκτείνεται σε ένα πιο λεπτομερή έλεγχο για εντοπισμό αδυναμιών, αλλά και σε συστάσεις για επιδιορθώσεις και βελτιώσεις. Το πλεονέκτημα της μεθόδου είναι η δυνατότητα να οριστούν επίπεδα προτεραιότητας σε κάθε συστατικό που αξιολογείται, έτσι ώστε με την ολοκλήρωσή της να δοθεί μια κατάταξη προτεραιοτήτων στην επιδιόρθωση των ευπαθειών που ανιχνεύθηκαν. Δοκιμή διείσδυσης (penetration testing ή ethical hacking): Είναι η ελεγχόμενη προσομοίωση μιας επίθεσης, προκειμένου να επιτευχθεί ένας προκαθορισμένος στόχος. Επίσης είναι γνωστή και ως εσωτερική επιθεώρηση ασφάλειας (internal security auditing). Ο σκοπός της είναι να εντοπιστούν συγκεκριμένες πληροφορίες σχετικές με την ύπαρξη γνωστών Μακρυπόδης Βασίλειος 19

ευπαθειών και να διερευνηθεί κατά πόσο είναι δυνατόν ένας εξωτερικός χρήστης, κάνοντας χρήση αυτών των πληροφοριών, να είναι σε θέση να δημιουργήσει προβλήματα στην εφαρμογή ιστού. Δεν έχει σκοπό να εντοπίσει όλες τις ευπάθειες, αλλά να αποδείξει ότι η ασφάλεια του συστήματος μπορεί να διακυβευτεί. Η δοκιμή μπορεί να πραγματοποιηθεί στη βάση μηδενικής γνώσης (zero knowledge) ή με πλήρη γνώση (full knowledge) του συστήματος, που δοκιμάζεται. Χρησιμοποιείται για να καθορίσει την αξιοπιστία και την ισχύ των μέτρων ασφάλειας που έχουν ληφθεί. Οι ethical hackers προσπαθούν να υιοθετήσουν τις τεχνικές επιθέσεων των hackers, ώστε να μπορέσουν να μετρήσουν το επίπεδο ασφάλειας της εφαρμογής. 1.4.1. Σύγκριση των μεθόδων ελέγχου της ασφάλειας Κάνοντας μια σύγκριση των μεθόδων ελέγχου ασφάλειας των εφαρμογών ιστού μπορούμε να πούμε ότι: Για τον έλεγχο της ασφάλειας μιας εφαρμογής ιστού με τις μεθόδους της επιθεώρησης ασφάλειας και της αυτοαξιολόγησης απαιτείται η φυσική παρουσία μιας μεγάλης ομάδας ειδικών ασφαλείας στον τόπο που λειτουργεί ο οργανισμός, του οποίου η ασφάλεια της εφαρμογής ελέγχεται. Η ομάδα αυτή πρέπει να έχει στη διάθεσή της τα κατάλληλες λίστες ελέγχου, να έχει υψηλή τεχνογνωσία και να είναι άρτια συντονισμένη. Για τη διενέργεια των ελέγχων απαιτείται πολύς χρόνος, ώστε να ολοκληρωθούν οι συνεντεύξεις, οι επιθεωρήσεις, οι αξιολογήσεις και οι έρευνες στη διάρκεια των οποίων αποκαλύπτεται και διαταράσσεται η λειτουργία του οργανισμού. Όλα τα ανωτέρω, σε συνάρτηση με την ανάγκη για συνεχείς και επαναλαμβανόμενους ελέγχους καθιστούν τη δοκιμή διείσδυσης ιδιαίτερα ελκυστική. Επιπλέον, η δοκιμή διείσδυσης έχει τα ακόλουθα πλεονεκτήματα: απαιτείται ελάχιστο προσωπικό, του οποίου δεν είναι αναγκαία η μετακίνηση παρέχει τη δυνατότητα πλήρους αυτοματοποίησης διαρκεί ελάχιστο χρόνο και είναι εύκολα επαναλαμβανόμενη δεν απαιτεί τη σε βάθος γνώση της ελεγχόμενης εφαρμογής δεν διαταράσσει τη λειτουργία της εφαρμογής ή του οργανισμού είναι πολύ οικονομικότερη από τις δύο άλλες μεθόδους. 1.4.2. Τεχνικές δοκιμής διείσδυσης Υπάρχουν δύο κύριες κατηγορίες τεχνικών ελέγχου ασφάλειας των εφαρμογών ιστού με τη μέθοδο της δοκιμής διείσδυσης: Χειροκίνητη (manual), στην οποία όλη η διαδικασία ελέγχου γίνεται βήμα βήμα χωρίς την ύπαρξη αυτοματισμών επανάληψης παρόμοιων βημάτων. Αυτοματοποιημένη (automated), στην οποία με τη χρήση εργαλείων, αυτοματοποιούνται μερικοί ή όλοι οι έλεγχοι και οι διαδικασίες ελέγχου. Μακρυπόδης Βασίλειος 20

Μία διαφορετική κατάταξη των τεχνικών δοκιμής διείσδυσης εξετάζει τον βαθμό γνώσης που ο «επιτιθέμενος» διαθέτει για το σύστημα στόχο: o Black Box: ονομάζεται ο τύπος της δοκιμής διείσδυσης όπου ο επιτιθέμενος δεν διαθέτει καμία γνώση για το υπό εξέταση σύστημα, πέραν της δημόσιας διεπαφής του. Η εφαρμογή εξετάζεται χρησιμοποιώντας την εξωτερική της διεπαφή, αυτή, που χρησιμοποιούν οι απλοί χρήστες. o White Box: ονομάζεται ο τύπος της δοκιμής διείσδυσης όπου ο επιτιθέμενος διαθέτει πλήρη γνώση για το υπό εξέταση σύστημα, δηλαδή όχι μόνο γνώση της εξωτερικής διεπαφής του αλλά και της εσωτερικής δομής του, συμπεριλαμβάνοντας την αρχιτεκτονική του λογισμικού, τις δομές δεδομένων, τις βιβλιοθήκες τρίτων κατασκευαστών, το λειτουργικό σύστημα και τις βάσεις δεδομένων. Στην (Εικόνα 2) παρουσιάζεται η διαφορά στη διεπαφή που χρησιμοποιεί ο ελεγκτής ασφαλείας για την πραγματοποίηση των ελέγχων του με τις δυο αυτές τεχνικές. Εικόνα 2: Σχηματική αναπαράσταση της διεπαφής (interface) των Black Box και White Box τεχνικών δοκιμής διείσδυσης σε μια εφαρμογή ιστού. (Πηγή: HTTP://www.onjava.com/pub/a/onjava/2003/05/07/blackboxwebtest.html) Στην συνέχεια της εργασίας γίνεται μια επισκόπηση των μεθοδολογιών για τον έλεγχο ασφάλειας ιστοχώρων όπως αυτές περιγράφονται από τρεις μεγάλους οργανισμούς: OWASP (www.owasp.org) NIST (www.nist.gov) Μακρυπόδης Βασίλειος 21

Web Application Security Consortium (www.webappsec.org) Επίσης γίνεται μια επισκόπηση των διαθέσιμων εργαλείων για τον έλεγχο των κυριότερων ευπαθειών. Τέλος, για το πεδίο εφαρμογής της εργασίας αυτής, επιλέχθηκαν μερικές από τις κυριότερες ευπάθειες, προκειμένου να ελεγχθεί το δίκτυο και οι εξυπηρέτες του Τμήματος Κοινωνικής & Εκπαιδευτικής Πολιτικής του Πανεπιστημίου Πελοποννήσου από πιθανά τρωτά σημεία και συντάχθηκε η σχετική αναφορά ευπαθειών των εξυπηρετών του συγκεκριμένου Τμήματος. Μακρυπόδης Βασίλειος 22

2. Η προσέγγιση ελέγχου του OWASP 2.1. Τι είναι το OWASP Το Open Web Application Security Project (OWASP) είναι μια ανοιχτή κοινότητα αφιερωμένη στην ενημέρωση των οργανισμών για το πώς μπορούν να αναπτύξουν, προμηθευτούν και συντηρήσουν ασφαλείς εφαρμογές. Ως μη κερδοσκοπικός οργανισμός ακολουθεί την ιδεολογία του ελεύθερου ανοιχτού λογισμικού και παρέχει δωρεάν, όλα τα πρότυπα, έγγραφα και εργαλεία που αναπτύσσονται. Παράλληλα διοργανώνει διεθνή συνέδρια για την ενημέρωση των επαγγελματιών του χώρου. Έχει έδρα την Αμερική και συνεργάζεται με προγραμματιστές από όλο τον κόσμο. Το OWASP είναι ένα νέο είδος οργανισμού το οποίο είναι ελεύθερο από τις πιέσεις της αγοράς γιατί δεν σχετίζεται με καμία εταιρεία τεχνολογίας, γεγονός που επιτρέπει να παρέχει ανεπηρέαστες, πρακτικές και οικονομικές πληροφορίες για την ασφάλεια των εφαρμογών. Όπως και άλλα έργα ελεύθερου και ανοιχτού λογισμικού, έτσι και το OWASP παράγει υλικό με έναν ανοικτό και συνεργατικό τρόπο. Η Ελληνική ομάδα εργασίας δημιουργήθηκε το 2005 με κύριο στόχο την ενημέρωση και την ευαισθητοποίηση της Ελληνικής κοινότητας αναφορικά με τους κινδύνους ασφαλείας στις διαδικτυακές εφαρμογές. Η Ελληνική ομάδα δραστηριοποιείται σε προγράμματα ελεύθερου/ανοιχτού λογισμικού, σε μεταφράσεις κειμένων του OWASP στα Ελληνικά, ενώ συμμετέχει σε συνέδρια και ημερίδες προωθώντας το OWASP σε τοπικό επίπεδο. Παράλληλα, με εργαλείο τη λίστα διανομής ηλεκτρονικού ταχυδρομείου (mailing list) που διαθέτει ενημερώνει και προκαλεί συζητήσεις σχετικά με επίκαιρα θέματα ασφαλείας στο διαδίκτυο, εκδίδει newsletter, ενώ διατηρεί και το πρώτο Ελληνικό ιστολόγιο (blog) για την ασφάλεια των πληροφοριών στη διεύθυνση: HTTP://blog.owasp.gr/ 2.2. OWASP TOP 10 Οι ευπάθειες που μπορεί να παρουσιάζει ένας ιστοχώρος ή μια εφαρμογή στο διαδίκτυο είναι πολυάριθμες. Το OWASP Top 10 είναι μια λίστα που μας περιγράφει τα κυριότερα τρωτά σημεία που πρέπει να γνωρίζουν και να λαμβάνουν υπόψη τους όσοι αναπτύσσουν λογισμικό τέτοιου είδους. Το OWASP Top 10 εκδόθηκε πρώτη φορά το 2003, ενώ μικρές ενημερώσεις έγιναν το 2004 και 2007. Η τελευταία έκδοση του 2010 σηματοδοτεί τον όγδοο χρόνο του έργου αυτού αλλά και της προσπάθειας για την ευαισθητοποίηση σχετικά με τη σημασία των κυριότερων κινδύνων στην ασφάλεια των εφαρμογών. Για καθέναν από τους κινδύνους που αναφέρονται στην λίστα γίνεται αναφορά στη δυσκολία πραγματοποίησης μιας επίθεσης, το πόσο είναι διαδεδομένη η συγκεκριμένη ευπάθεια, το πόσο εύκολα μπορεί να αντιμετωπιστεί, καθώς και τον αντίκτυπο των επιπτώσεων που έχει στην εταιρεία ή οργανισμό. Στη συνέχεια παρουσιάζονται συνοπτικά, οι 10 κυριότερες, σύμφωνα με το OWASP, ευπάθειες που απαντώνται στις διαδικτυακές εφαρμογές. Για το 2010 και με φθίνουσα σειρά σημασίας αυτές είναι: Μακρυπόδης Βασίλειος 23

2.2.1. Α1 Επιθέσεις τύπου έγχυσης (Injection) Επιτιθέμενοι: Στην πιο διαδεδομένη ευπάθεια της λίστας, μπορούμε να θεωρήσουμε ως επιτιθέμενο οποιονδήποτε χρήστη συμπεριλαμβανομένων των εξωτερικών, των εσωτερικών χρηστών καθώς και των διαχειριστών, που μπορεί να στείλει, μη αξιόπιστα δεδομένα στον διερμηνευτή (interpreter) μας προκειμένου να εκτελεστούν ως κώδικας. Είδος επίθεσης: Ο επιτιθέμενος στέλνει απλές επιθέσεις βασισμένες σε κείμενο, εκμεταλλευόμενος τη σύνταξη της γλώσσας που υποστηρίζει ο διερμηνευτής (interpreter) στο σύστημα στόχο. Σχεδόν οποιαδήποτε πηγή δεδομένων μπορεί να γίνει φορέας για την επίθεση τύπου έγχυσης (injection), συμπεριλαμβανομένων και των εσωτερικών πηγών. Αδυναμία ασφαλείας: Ελαττώματα τύπου έγχυσης (injection) μπορούν να συμβούν όταν μια εφαρμογή στέλνει μη αξιόπιστα δεδομένα στον διερμηνευτή (interpreter). Αυτή η ευπάθεια είναι πολύ διαδεδομένη ιδιαίτερα στον κώδικα legacy 1, που συχνά βρίσκονται σε επερωτήσεις SQL, LDAP, Xpath, εντολές λειτουργικών συστημάτων παραμέτρους προγραμμάτων κ.ά. Η ευπάθεια αυτή είναι εύκολο να εντοπιστεί κατά την εξέταση του κώδικα αλλά δυσκολότερο να εντοπιστεί μέσω του ελέγχου διείσδυσης (penetration testing). Συνήθως εφαρμογές της κατηγορίας scanners και fuzzers 2 μπορούν να βοηθήσουν τους επιτιθέμενους να τα εντοπίσουν. Επιπτώσεις: Η ευπάθεια μπορεί να έχει ως αποτέλεσμα την απώλεια ή καταστροφή των δεδομένων μέχρι και άρνηση εξυπηρέτησης ή ακόμα την απόκτηση δικαιωμάτων πλήρους διαχείρισης του συστήματος στόχου. Επιχειρηματικές επιπτώσεις: Πρέπει να ληφθεί σοβαρά υπόψη η επιχειρηματική αξία των επηρεαζόμενων στοιχείων ή των λειτουργιών της εφαρμογής, όπως και ο αντίκτυπος στη φήμη της επιχείρησης κατά τη δημοσιοποίηση της ευπάθειας, καθώς είναι πιθανό όλα τα δεδομένα να κλαπούν, να παραποιηθούν ή να διαγραφούν. Τρόποι εντοπισμού της ευπάθειας: Ο καλύτερος τρόπος για να βρεθεί αν μια εφαρμογή είναι ευάλωτη στην ευπάθεια τύπου έγχυσης (injection) είναι να επιβεβαιώσουμε ότι η χρήση όλων των διερμηνευτών διαχωρίζει με σαφήνεια τα μη έμπιστα δεδομένα από μια εντολή ή μια επερώτηση (query). Για τις ερωτήσεις SQL αυτό σημαίνει, χρήση μεταβλητών δέσμευσης (bind variables) σε όλες τις προετοιμασμένες ερωτήσεις (prepared statements) και στις αποθηκευμένες διαδικασίες, με παράλληλη αποφυγή δυναμικά γραφόμενων ερωτημάτων. Ο έλεγχος του κώδικα είναι ένας γρήγορος και αποτελεσματικός τρόπος για να καταλάβουμε αν η εφαρμογή χρησιμοποιεί τους διερμηνευτές με ασφαλή τρόπο. 1 Με τον όρο «Legacy» αναφερόμαστε στον κώδικα που είτε προέρχεται από παλαιότερα συστήματα είτε έχει ως στόχο την επικοινωνία με αυτά 2 Το Web Fuzzing είναι ένας από του πλέον αποτελεσματικούς τρόπους ανακάλυψης σφαλμάτων (bugs) που προκαλούν οι επιθέσεις τύπου άρνησης υπηρεσίας (DoS attacks), κυρίως XSS αλλά και SQL εκγύσεων (SQL Injections). Fuzzers είναι τα εργαλεία εκείνα που χρησιμοποιούνται για να ανιχνεύσουν τις ευπάθειες αυτές. Μακρυπόδης Βασίλειος 24

Τα εργαλεία ανάλυσης κώδικα μπορούν να βοηθήσουν έναν αναλυτή ασφαλείας να εντοπίσει την χρήση των διερμηνευτών και να παρακολουθήσει τη ροή των δεδομένων μέσω της εφαρμογής. Οι ελεγκτές εισβολής (penetration testers) μπορούν να επικυρώσουν αυτά τα προβλήματα δημιουργώντας exploits 3 που επιβεβαιώνουν την ευπάθεια. Επίσης, η αυτοματοποιημένη δυναμική σάρωση που ελέγχει την εφαρμογή μπορεί να παράσχει πληροφόρηση σχετικά με το αν υπάρχουν εκμεταλλεύσιμα λάθη τύπου έγχυσης (injection). Οι σαρωτές δεν μπορούν πάντα να προσεγγίσουν τους διερμηνευτές και αντιμετωπίζουν δυσκολία στο να ανιχνεύσουν πότε μια επίθεση ήταν επιτυχής και πότε όχι. Ο κακός χειρισμός των σφαλμάτων κάνει την ευπάθεια τύπου έγχυσης ευκολότερη στην ανίχνευσή της. Τρόποι αποτροπής της ευπάθειας: Η πρόληψη της συγκεκριμένης ευπάθειας απαιτεί τον διαχωρισμό των μη έμπιστων δεδομένων από τις εντολές και τις επερωτήσεις (queries). 1. Η προτεινόμενη επιλογή είναι η χρήση ενός ασφαλούς API το οποίο αποφεύγει τελείως τη χρήση του διερμηνευτή (interpreter) ή απλά παρέχει μια παραμετροποιημένη διεπαφή (interface). Εδώ πρέπει να δώσουμε προσοχή σε API s τύπου «αποθηκευμένες διαδικασίες» τα οποία είναι μεν παραμετροποιημένα αλλά μπορούν να παρουσιάσουν και αυτά ευπάθεια τύπου έγχυσης, με όχι ορατό τρόπο. 2. Αν δεν είναι διαθέσιμο ένα παραμετροποιημένο API, θα πρέπει προσεκτικά να αναιρέσουμε την ειδική σημασία των ειδικών χαρακτήρων χρησιμοποιώντας το ειδικό συντακτικό διαφυγής (escaping) για τον διερμηνευτή (interpreter). 3. Επίσης προτείνεται η θετική ή διαφορετικά «λευκή λίστα» επικύρωσης εισόδου, π.χ. με χρήση κανονικών εκφράσεων με άλλα λόγια η θεώρηση εισόδων που περιέχουν ειδικούς χαρακτήρες ως μη παραδεκτές. Η μέθοδος αυτή ωστόσο δεν θεωρείται πλήρης άμυνα, καθώς αρκετές εφαρμογές μπορεί να απαιτούν τη δυνατότητα χρήσης ειδικών χαρακτήρων στην είσοδό τους. Το ESAPI του OWASP παρέχει μια εκτεταμένη βιβλιοθήκη, με αλγόριθμους επικύρωσης εισόδου λευκής λίστας. 2.2.2. A2 Χρήση Scripts Μεταξύ Πολλαπλών Ιστοχώρων (Cross Site Scripting, XSS) Επιτιθέμενοι: Στην ευπάθεια του τύπου XSS, ο επιτιθέμενος μπορεί να είναι ο οποιοσδήποτε χρήστης συμπεριλαμβανομένων των εξωτερικών, των εσωτερικών χρηστών καθώς και των διαχειριστών, που επιδιώκει να στείλει, μη αξιόπιστα δεδομένα στον διερμηνευτή μας προκειμένου να εκτελεστούν ως κώδικας. Είδος επίθεσης: Ο επιτιθέμενος στέλνει στην εφαρμογή πλοήγησης (browser) απλά scripts τύπου απλού κειμένου (text based) τα οποία εκμεταλλεύονται τον διερμηνευτή. Σχεδόν οποιαδήποτε πηγή δεδομένων μπορεί να είναι φορέας της 3 Είναι η μέθοδος με την οποία επιτυγχάνεται η εκμετάλλευση μίας αδυναμίας ή ενός bug του λογισμικού, προκειμένου να προκληθεί μια επίθεση. Από την στιγμή που ανακαλύπτεται μια αδυναμία, δημιουργείται και το ανάλογο exploit που μπορεί να την εκμεταλλευτεί. Μακρυπόδης Βασίλειος 25

επίθεσης, συμπεριλαμβανομένων των εσωτερικών πηγών όπως τα δεδομένα από τη βάση δεδομένων. Αδυναμία ασφαλείας: Η ευπάθεια XSS είναι το πιο διαδεδομένο ελάττωμα ασφαλείας εφαρμογών ιστού (web). Οι ευπάθειες XSS μπορούν να συμβούν όταν μια εφαρμογή περιλαμβάνει σε μια σελίδα που αποστέλλεται στην εφαρμογή πλοήγησης (browser) δεδομένα που παρέχονται από τον χρήστη, χωρίς την κατάλληλη επικύρωση ή την χρήση διαφυγής (escaping) του περιεχομένου. Υπάρχουν τρία γνωστά είδη ευπάθειας XSS: Stored Reflected DOM based XSS Η ανίχνευση της ευπάθειας είναι αρκετά εύκολη μέσω ελέγχων (testing) ή μέσω ανάλυσης κώδικα (code analysis). Επιπτώσεις: Οι επιτιθέμενοι μπορούν να εκτελέσουν scripts στην εφαρμογή πλοήγησης (browser) του θύματος, να υποκλέψουν συνεδρίες (sessions) του χρήστη, να αλλοιώσουν ιστοσελίδες (web sites), να εισάγουν εχθρικό περιεχόμενο, να ανακατευθύνουν τους χρήστες, να ενσωματώσουν στην εφαρμογή πλοήγησης του χρήστη κακόβουλο λογισμικό (malware) κ.ά. Επιχειρηματικές επιπτώσεις: Για την πλήρη αποτίμηση των επιχειρηματικών επιπτώσεων, θα πρέπει να αξιολογηθεί η επιχειρηματική αξία του πληγέντος συστήματος και όλων των δεδομένων που επηρεάζονται από αυτό, καθώς και την επίπτωση στην επιχείρηση από τη δημοσιοποίηση της ευπάθειας. Τρόποι εντοπισμού της ευπάθειας: Για την αντιμετώπιση της ευπάθειας θα πρέπει να εξασφαλιστεί ότι όλα τα δεδομένα εισόδου του χρήστη τα οποία στέλνονται πίσω στην εφαρμογή πλοήγησης, έχουν επαληθευτεί (μέσω επαλήθευσης εισόδου) και ότι στα δεδομένα αυτά έχει γίνει χρήση διαφυγής (escaping) του περιεχομένου πριν αυτά να περιληφθούν στη σελίδα εξόδου. Η κατάλληλη κωδικοποίηση στην έξοδο διασφαλίζει ότι παρόμοιες είσοδοι πάντα αντιμετωπίζονται από την εφαρμογή πλοήγησης ως «κείμενο» (browser) και όχι ως ενεργό περιεχόμενο το οποίο μπορεί να είναι εκτελέσιμο με πιθανώς κακόβουλο σκοπό. Τόσο τα στατικά όσο και τα δυναμικά εργαλεία μπορούν να ανακαλύψουν κάποια προβλήματα XSS αυτόματα. Παρόλα αυτά, κάθε εφαρμογή δημιουργεί σελίδες εξόδου με διαφορετικό τρόπο και χρησιμοποιεί διαφορετικούς διερμηνευτές (interpreters) στην πλευρά της εφαρμογής πλοήγησης, όπως JavaScript, activex, Flash και Silverlight, κάτι το οποίο καθιστά τον αυτόματο εντοπισμό δύσκολο. Έτσι, μια ολοκληρωμένη κάλυψη του προβλήματος απαιτεί συνδυασμό από τη χειροκίνητη μελέτη του κώδικα και χειροκίνητες δοκιμές διείσδυσης, επιπρόσθετα σε κάθε αυτόματη προσέγγιση που επιλέγεται. Οι τεχνολογίες Web2.0, όπως η AJAX, κάνουν την ευπάθεια XSS πολύ πιο δύσκολη στον εντοπισμό της, μέσω αυτοματοποιημένων εργαλείων εντοπισμού της ευπάθειας. Τρόποι αποτροπής της ευπάθειας: Η πρόληψη της ευπάθειας XSS προϋποθέτει τον διαχωρισμό των μη έμπιστων δεδομένων από το ενεργό περιεχόμενο της εφαρμογής πλοήγησης (browser). Μακρυπόδης Βασίλειος 26

Η επιλογή που προτείνεται είναι να γίνει κατάλληλη χρήση διαφυγής (escaping) όλων των μη έμπιστων δεδομένων τα οποία βασίζονται στο πλαίσιο του προτύπου HTML (σώμα, ιδιότητες, Javascript, CSS ή URL) όπου τα δεδομένα μπορούν να τοποθετηθούν σε αυτό. Οι κατασκευαστές λογισμικού πρέπει να περιλαμβάνουν τη χρήση διαφυγής (escaping) στις εφαρμογές τους, εκτός αν το πλαίσιο διεπαφής χρήστη αναλαμβάνει τη διαδικασία αυτή με πλήρως αξιόπιστο τρόπο. Η θετική ή λευκή λίστα (whitelist) επικύρωσης εισόδου επίσης προτείνεται, καθώς βοηθάει στην προστασία από την ευπάθεια XSS, αλλά αυτή δεν αποτελεί ολοκληρωμένη προστασία, καθώς αρκετές εφαρμογές μπορεί να απαιτούν τη δυνατότητα χρήσης ειδικών χαρακτήρων στην είσοδό τους. Μια τέτοια επικύρωση πρέπει να επικυρώνει το μήκος, τους χαρακτήρες και τη μορφή των δεδομένων εισόδου, προτού να κάνει αποδεκτή την είσοδο. 2.2.3. Α3 Επισφαλής Αυθεντικοποίηση και διαχείριση Συνόδου (Broken Authentication and Session Management) Επιτιθέμενοι: Σε αυτή την περίπτωση οι επιτιθέμενοι μπορεί να είναι ανώνυμοι εξωτερικοί χρήστες ή χρήστες που διαθέτουν δικό τους λογαριασμό και προσπαθούν να κλέψουν λογαριασμούς από άλλους. Στην τελευταία κατηγορία περιλαμβάνονται οι χρήστες εκείνοι που προσπαθούν να αποκρύψουν τις ενέργειες τους, ενεργώντας κάτω από κλεμμένους λογαριασμούς. Είδος επίθεσης: Οι επιτιθέμενοι χρησιμοποιούν κενά ασφαλείας στις λειτουργίες διαχείρισης ταυτότητας για να παραστήσουν κάποιον άλλο χρήστη. Αδυναμία ασφαλείας: Οι κατασκευαστές λογισμικού συχνά φτιάχνουν δικά τους σχήματα αυθεντικοποίησης και ελέγχου της συνεδρίας (session) αλλά τα σχήματα αυτά δεν είναι εύκολο να μην έχουν λάθη. Το αποτέλεσμα είναι συνήθως να έχουν κενά ασφαλείας, όπως η έξοδος από την σελίδα, η διαχείριση κωδικών, η λήξη της συνόδου, οι κρυφές ερωτήσεις για είσοδο σε περίπτωση απώλειας συνθηματικού, ενημέρωση λογαριασμού κ.ά. Η εύρεση των ελαττωμάτων αυτών είναι συνήθως δύσκολη, καθώς κάθε εφαρμογή είναι μοναδική. Επιπτώσεις: Ένα τέτοιο ελάττωμα του λογισμικού μπορεί να έχει ως συνέπεια την πρόσβαση του επιτιθέμενου σε έναν, σε μερικούς ακόμα και σε όλους τους λογαριασμούς. Συνήθως, οι λογαριασμοί που γίνονται στόχος είναι λογαριασμοί με υψηλά δικαιώματα ώστε να μπορεί ο επιτιθέμενος να έχει πλήρη πρόσβαση στην εφαρμογή. Επιχειρηματικές επιπτώσεις: Πρέπει να ληφθεί σοβαρά υπόψη η επιχειρηματική αξία των επηρεαζόμενων στοιχείων ή των λειτουργιών της εφαρμογής, καθώς και ο αντίκτυπος στην φήμη της επιχείρησης κατά την δημοσιοποίηση της ευπάθειας. Τρόποι εντοπισμού της ευπάθειας: Για να εντοπίσει κάποιος κατασκευαστής λογισμικού εάν είναι ασφαλής ως προς την ευπάθεια αυτή θα πρέπει να είναι σίγουρος ότι μπορεί να απαντήσει στις παρακάτω ερωτήσεις: 1. Είναι ασφαλή τα διαπιστευτήρια (credentials) σύνδεσης όταν αυτά αποθηκεύονται χρησιμοποιώντας κρυπτογράφηση (encryption) ή κερματισμό (hashing); Μακρυπόδης Βασίλειος 27