Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: Ηλεκτρονικής και Υπολογιστών ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Νικόλαου Τζιρή-Γεωργόπουλου του Γεωργίου Αριθμός Μητρώου: 6390 Θέμα «Ασφάλεια σε επιθέσεις εξυπηρετητών παγκοσμίου ιστού» Επιβλέπων Δημήτριος Σερπάνος Αριθμός Διπλωματικής Εργασίας: Πάτρα, Φεβρουάριος 2019

2 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «Ασφάλεια σε επιθέσεις εξυπηρετητών παγκοσμίου ιστού» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Νικόλαου Τζιρή-Γεωργόπουλου του Γεωργίου Αριθμός Μητρώου: 6390 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις.../../ Ο Επιβλέπων Δημήτριος Σερπάνος, Καθηγητής Ο Διευθυντής του Τομέα Ευθύμιος Χούσος, Καθηγητής

3 Αριθμός Διπλωματικής Εργασίας: Θέμα: «Ασφάλεια σε επιθέσεις εξυπηρετητών παγκοσμίου ιστού» Φοιτητής: Νικόλαος Τζιρής-Γεωργόπουλος Επιβλέπων: Δημήτριος Σερπάνος Περίληψη Η παρούσα διπλωματική εργασία επικεντρώνεται στην εξέταση του ελέγχου διείσδυσης για την αξιολόγηση της ασφάλειας ενός εξυπηρετητή παγκοσμίου ιστού σε επιθέσεις και συγκεκριμένα στην υλοποίηση ενός ρεαλιστικού περιβάλλοντος ελέγχου διείσδυσης για εκπαιδευτικούς λόγους. Η υλοποίηση γίνεται με τη δημιουργία μιας σκόπιμα ευάλωτης εικονικής μηχανής. Χρησιμοποιείται η γλώσσα Python και το Django Framework για τη δημιουργία ευάλωτων εφαρμογών ως σεναρίων προς επίλυση. Οι κίνδυνοι ασφαλείας που συμπεριλαμβάνονται στα σενάρια είναι οι Broken Authentication, XSS, SQL Injection, Buffer Overflow 32-bit και 64-bit. Η διεπαφή έχει τη μορφή ενός εκπαιδευτικού παιχνιδιού ανάκτησης σημαίας (CTF).CTF). Abstract This thesis focuses on the examination of the penetration testing for the evaluation of a world web server in attacks and specifically on the implementation of a realistic penetration testing environment for educational purposes. The implementation is done through the development of an intentionally vulnerable virtual machine. Python programming language and Django Framework are used for the development of vulnerable applications as scenarios for resolution. The security vulnerabilities included in the scenarios are Broken Authentication, XSS, SQL Injection, Buffer Overflow 32bit and 64-bit. The interface has the form of a capture the flag education game (CTF).CTF).

4 Ευχαριστίες Θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή μου κύριο Δημήτριο Σερπάνο για τη συνεργασία και το ενδιαφέρον του κατά τη διαδικασία εκπόνησης της παρούσας διπλωματικής εργασίας. Ταυτόχρονα θα ήθελα να ευχαριστήσω τον υποψήφιο διδάκτορα Παναγιώτη Σουφρίλα και τον διδάκτορα Κυριάκο Στεφανίδη για τη βοήθεια τους στην εισαγωγή στο συγκεκριμένο αντικείμενο.

5 Περιεχόμενα 1. Εισαγωγή Περιγραφή του προβλήματος Προσδιορισμός απαιτήσεων Επιλογές δημιουργίας ενός εργαστηρίου pentesting...11 Τι είναι τα virtual machines; Υπάρχουσες υλοποιήσεις intentionally vulnerable VMs...13 i. Metasploitable ii. OWASP BWA...14 iii. Web Security DOJO...14 iv. Metasploitable v. Kioptrix series Διαμόρφωση χαρακτηριστικών Οργάνωση των περιστατικών & επιδιωκόμενη επίδειξη Κίνδυνοι ασφαλείας...17 i. Injection...18 ii. Broken Authentication & Session Management...18 iii. Cross-Site Scripting (CTF).XSS)...18 iv. Sensitive Data Exposure...18 v. Χρήση Components με Γνωστά Vulnerabilities...18 vi. Security Misconfiguration...19 vii. Insecure DOR...19 viii. Missing Function Level Access Control...19 ix. Cross-site Request Forgery (CTF).CSRF)...19 x. Insecure Redirect Προδιαγραφές για το σύστημα Περιγραφή της υλοποίησης Τεχνολογίες Υλοποίησης...23 i. Python & Django Framework...23 ii. Bootstrap...24 iii. SQLite...24 iv. C language...24 v. Selenium...24 vi. Apache HTTP Server και mod_wsgi...25 vii. Elementary Linux...25 viii. Kali Linux...26 ix. VirtualBox Διαδικασία Υλοποίησης...26 i. Γενικά για την ανάπτυξη των web applications...26 ii. Interface: Subzero CTF...28 iii. Broken Authentication Challenge: Astronomy fanpage...28 iv. XSS Challenge: Gastronomy fanpage...29 v. SQL injection Challenge: Mysite blogpage...30 vi. Buffer Overflow Challenge: vulserver & vulserver vii. Deployment Σενάρια & Παραδείγματα Εγκατάσταση & επισκόπηση Επίδειξη επίλυσης σεναρίων...38 i. Broken Authentication Challenge write-up

6 ii. XSS Challenge write-up...42 iii. SQL Injection Challenge write-up...46 iv. Buffer Overflow Challenge...53 (CTF).α) Stack Overflow 32-bit...54 (CTF).β) Stack Overflow 64-bit Συμπεράσματα Βιβλιογραφία

7 1. Εισαγωγή «Η κυβερνοασφάλεια ή cybersecurity είναι η οργάνωση και συλλογή πόρων, διαδικασιών και δομών προς χρήση στην προστασία του κυβερνοχώρου και συστημάτων διασυνδεδεμένων με τον κυβερνοχώρο από περιστατικά τα οποία δεν ευθυγραμμίζουν τα de jure με τα de facto δικαιώματα ιδιοκτησίας.» [1] Ο ορισμός της κυβερνοασφαλείας ή cybersecurity είναι δύσκολος εξαιτίας της διεπιστημονικότητας του συγκεκριμένου όρου. Ένας ευρέως αποδεκτός ορισμός αποτελεί μια δύσκολη υπόθεση, όπως εξηγεί η ομάδα επιστημόνων η οποία επεξεργάστηκε τον ορισμό τον οποίο παραθέτουμε εισαγωγικά. Υπάρχουν ορισμοί περισσότερο τεχνικής ή περισσότερο οικονομικής φύσης. Αδιαμφισβήτητο γεγονός, ωστόσο, αποτελεί το γεγονός ότι η ασφάλεια σε επιθέσεις εξυπηρετητών παγκοσμίου ιστού αποτελεί συστατικό μέρος του ευρύτερου κλάδου του cybersecurity. Ο καθοριστικός ρόλος του διαδικτύου στη διαμόρφωση της κοινωνικής, οικονομικής, πολιτικής ζωής και κάθε άλλης σφαίρας της ανθρώπινης δραστηριότητας είναι αδιαμφισβήτητος και μια σχετική παρουσίαση υπερβαίνει τα όρια αυτής της εισαγωγής. Οφείλουμε, ωστόσο, να υπογραμμίσουμε τους σημαντικούς κινδύνους οι οποίοι ενέχονται για τα δεδομένα τα οποία διαμοιράζονται μέσω του διαδικτύου και για την ασφάλεια των ενεργειών και διαδικασιών των συστημάτων τα οποία είναι συνδεδεμένα με το διαδίκτυο. Από τις ηλεκτρονικές συναλλαγές μεμονωμένων χρηστών μέχρι τους όγκους ευαίσθητων δεδομένων των ασφαλισμένων ενός εθνικού οργανισμού κοινωνικής ασφάλισης το αίτημα της ασφάλειας στο διαδίκτυο είναι αυτονόητο. Αυτό το αίτημα οδηγεί στην επιστράτευση επιστημόνων από το κλάδο της πληροφορικής, των ηλεκτρολόγων μηχανικών, των μαθηματικών και μια σειρά άλλων επιστημών για τη διαμόρφωση του cybersecurity, ενός αντικειμένου διαρκώς εξελισσόμενου για να αντιμετωπίσει την εξέλιξη των απειλών αλλά και να ακολουθήσει την ανάπτυξη των συστημάτων τα οποία καλείται να θωρακίσει ενάντια σε απειλές. Η αγορά του cybersecurity έχει γνωρίσει εκθετική ανάπτυξη τα τελευταία χρόνια. Οι τρέχουσες ετήσιες επενδύσεις στον τομέα του cybersecurity υπολογίζονται στα 140 δισεκατομμύρια δολάρια ετησίως για το Πρόσφατη προγνωστική μελέτη από την εταιρεία ερευνών Zion Market Research αναλύοντας τις τάσεις ανάπτυξης της συγκεκριμένης αγοράς προβλέπει πως ο σύνθετος ρυθμός ετήσιας ανάπτυξης στο συγκεκριμένο κλάδο για το διάστημα θα ανέλθει στο 9,5%, ήτοι από τα 105,45 το 2015 στα 181,77 δισεκατομμύρια δολάρια το Οι αριθμοί είναι εντυπωσιακοί για την αλματώδη ανάπτυξη του τομέα. Καταδεικνύουν τη στροφή του διεθνούς ενδιαφέροντος και συνεπώς τη δημιουργία μιας πληθώρας ερευνητικών και επιχειρηματικών δυνατοτήτων. Ωστόσο, όπως υπογραμμίζει ο Dr Mike 1 Global Cyber Security Market Is Set for Rapid Growth to Reach around USD Billion in 2021, 24/8/2016, (CTF).τελευταία προσπέλαση: 19/2/2019) 7

8 Lloyd, CTO της εταιρείας RedSeal, μια σύγκριση του ύψους των επενδύσεων στον κλάδο της κυβερνοασφάλειας με το αντίστοιχο μέγεθος της αγοράς του ηλεκτρονικού εγκλήματος η οποία υπολογίζεται στα 4 τρισεκατομμύρια δολάρια θα οδηγήσει στο ασφαλές συμπέρασμα πως το επιπέδου των δεδομένων επενδύσεων είναι έκδηλα ανεπαρκές 2. Επιπρόσθετα στο προαναφερθέν χάσμα, οι τεχνολογίες cloud (CTF).σύννεφου) και το περίφημο Διαδίκτυο των Αντικειμένων (CTF).IoT Internet of Things) δημιουργούν ένα νέο -σε σημαντικό βαθμό ανεξερεύνητο πεδίο ρίσκων ασφαλείας εξαιτίας του χαμηλού επιπέδου ασφαλείας το οποίο κατά κανόνα χρησιμοποιείται στις συγκεκριμένες συσκευές. Ενδεικτικές είναι οι έρευνες της εταιρείας ESET οι οποίες δείχνουν ότι περί τις κάμερες ασφαλείας χρησιμοποιούν τους αρχικούς εργοστασιακούς κωδικούς, όπως και το 15% των οικιακών routers (CTF).δρομολογητών)3 4. Οι συσκευές αυτές έχουν πρωταγωνιστήσει σε επιθέσεις DDoS τα τελευταία χρόνια, καθώς δημιουργούν μια τεράστια εφεδρεία πόρων για τους δράστες τέτοιων επιθέσεων. Η αρχιτεκτονική του σχεδιασμού των συστημάτων και του λογισμικού σπάνια με γνώμονα την ασφάλεια των δεδομένων και των διαδικασιών. Μια ασφαλής αρχιτεκτονική κατά το σχεδιασμό διασφαλίζει τη δυνατότητα αντιμετώπισης του συνόλου των γνωστών κινδύνων και τη βέλτιστη δυνατότητα διαχείρισης νέων απειλών. Η υπάρχουσα αρχιτεκτονική όσον αφορά την πλειονότητα των συστημάτων και του λογισμικού σήμερα επιτρέπει την ύπαρξη σημαντικών περιθωρίων για κακόβουλη εκμετάλλευση και εισβολές. [2] Η αξιολόγηση της ασφάλειας ενός συστήματος αποτελεί τομέα-κλειδί για την κυβερνοασφάλεια και διαμορφώνεται από μια συνολική διαδικασία διαχείρισης κινδύνου. Ο σαφής ορισμός των εννοιών κίνδυνος ασφαλείας, ευαλωτότητα (CTF).vulnerability) και πρόβλημα ασφαλείας είναι απαραίτητος για την κατανόηση αυτής της διαδικασίας. Ως κίνδυνο ασφαλείας αναφερόμαστε σε μια δυνάμει ευαλωτότητα και την πιθανή βλάβη την οποία μπορεί να προκαλέσει στο σύστημα το οποίο εξετάζουμε. Ως ευαλωτότητα αναφερόμαστε σε ένα κίνδυνο ασφαλείας ο οποίος μπορεί άμεσα να γίνει αντικείμενο εκμετάλλευσης και να μετατραπεί σε πρόβλημα ασφαλείας. Τέλος, ως πρόβλημα ασφαλείας ορίζουμε ένα πρόβλημα ασφαλείας το οποίο έχει γίνει αντικείμενο εκμετάλλευσης. Μια πληθώρα συμπληρωματικών τεχνικών απαρτίζουν τη διαδικασία αξιολόγησης ασφαλείας από τη στιγμή της ανάπτυξης μέχρι οποιαδήποτε φάση της λειτουργίας του. Οι μεθοδολογίες και οι κωδικοποιήσεις ποικίλουν. Εντούτοις μπορούμε να κωδικοποιήσουμε τρεις κύριες διαδικασίες αξιολόγησης: έλεγχος λογισμικού Νick Ismall, What sectors are investing the most and least in cyber security?, 4/7/2018, (CTF).τελευταία προσπέλαση: 19/2/2019) Stephen Cobb, 10 things to know about the October 21 IoT DDoS attacks (CTF).τελευταία προσπέλαση: 19/2/2019) Peter Stancik, At least 15% of home routers are unsecured τελευταία προσπέλαση: 19/2/2019) 8

9 αποτίμηση αδυναμιών(ctf).ή vulnerability assesment) έλεγχος διείσδυσης (CTF).ή penetration testing) Ο έλεγχος λογισμικού εντάσσει μια σειρά διαφορετικών διαδικασιών κατά την ανάπτυξη ενός συστήματος από διαδικασίες αναφορών και συνεντεύξεων με τους προγραμματιστές για τον επανέλεγχο των τεχνολογιών υλοποίησης και των επιλογών σχεδίασης (CTF).manual inspection & reviews), τη μοντελοποίηση των κινδύνων σαν σημείο αναφοράς για τους προγραμματιστές κατά την υλοποίηση (CTF).threat modelling) και την επισκόπηση του ίδιου του πηγαίου κώδικα (CTF).source code review). Το ιδιαίτερο προνόμιο αυτές τις μεθόδου είναι ότι μπορεί να εντοπίσει προβλήματα τα οποία θα ήταν ίσως αδύνατο να εντοπιστούν διαφορετικά. [3] Η διαδικασία του vulnerability assesment είναι μια διαρκής διαδικασία για τον εντοπισμό όλων των ευαλωτοτήτων οι οποίες αφορούν ένα σύστημα και κατά κανόνα διεξάγεται από αυτοματοποιημένο λογισμικό κατά τη λειτουργία ενός συστήματος. Το penetration testing (CTF).ή pentesting) διεξάγεται από εξειδικευμένο προσωπικό (CTF).white hat hackers) και αποτελεί την πλήρη εξομοίωση μιας επίθεσης στο σύστημα για τον έλεγχο της ασφάλειας του. Σαφή ιδιαιτερότητα της συγκεκριμένης τεχνικής αποτελεί είναι ότι δεν εντοπίζει μόνο ευαλωτότητες, όπως συμβαίνει στη διαδικασία του vulnerability assesment με το οποίο είναι συμπληρωματικές διαδικασίες, αλλά τις εκμεταλλεύεται όταν αυτό είναι εφικτό ώστε να αξιολογηθεί το σύνολο των επιπτώσεων μιας επιτυχημένης επίθεσης. [4]. Στο πλαίσιο αυτής της διπλωματικής θα επικεντρωθούμε στη διαδικασία του penetration testing για εκπαιδευτικούς λόγους. Το penetration testing από τη φύση του οδηγεί στην καλύτερη κατανόηση των σημαντικών βλαβών οι οποίες μπορούν να προκληθούν στα συστήματα στα οποία εργαζόμαστε από την αμέλεια σε σχέση με την κυβερνοασφάλεια. Ως εκ τούτου, μια εισαγωγική γνώση γύρω από τη συγκεκριμένη διαδικασία είναι διαφωτιστική για προγραμματιστές, ηλεκτρολόγους μηχανικούς, μηχανικούς η/υ και άλλες εμπλεκόμενους στην ανάπτυξη διαδικτυακών συστημάτων και εφαρμογών, πέρα φυσικά από τους καθεαυτό ειδικούς κυβερνοασφάλειας. Η πρακτική εξάσκηση των τεχνικών του penetration testing είναι αναγκαία για τη σχετική εκπαίδευση, συμπληρωματικά με τη θεωρητική τους κατανόηση. Η πρακτική αυτή εφαρμογή καθίσταται εφικτή με τη χρήση του intentionally vulnerable software σε ένα εργαστήριο penetration testing. Το intentionally vulnerable software ή σκόπιμα ευάλωτο λογισμικό αποτελεί ένα ρεαλιστικό περιβάλλον νόμιμης δοκιμαστικής εφαρμογής γνωστών τεχνικών επίθεσης. Η κατηγοριοποίηση αυτού του λογισμικού η οποία προτείνεται από το OWASP Vulnerable Web Applications Directory (CTF).VWAD) Project είναι on-line εφαρμογές, off-line εφαρμογές και virtual machines (CTF).εικονικές μηχανές). Η τελευταία κατηγορία αποτελεί προ-εγκατεστημένα και έτοιμα προς χρήση virtual machines τα οποία εμπεριέχουν ένα ή περισσότερα ευάλωτα web applications (CTF).εφαρμογές παγκοσμίου ιστού) ή άλλα services (CTF).υπηρεσίες) με κενά ασφαλείας. 9

10 Στόχο της παρούσας διπλωματικής αποτελεί η ανάπτυξη ενός περιβάλλοντος σκόπιμα ευάλωτου λογισμικού για εκπαιδευτική χρήση. Η διπλωματική μου εργασία δομείται μέσα σε επτά κεφάλαια συμπεριλαμβανομένης της παρούσας εισαγωγής ως Κεφάλαιο 1 και το οποίο εισάγει στοιχειώδεις έννοιες γύρω από την κυβερνοασφάλεια. Στο πλαίσιο του Κεφαλαίου 2 περιγράφεται το πρόβλημα προς επίλυση, διατυπώνονται οι απαιτήσεις του προβλήματος, διερευνώνται υπάρχουσες λύσεις και επιλέγονται οι προδιαγραφές. Στο Κεφάλαιο 3 γίνεται μια επισκόπηση της οργάνωσης των περιστατικών και της επιδιωκόμενης επίδειξης, συνοδευόμενη από τη συμπληρωματική αναφορά συνηθισμένων κινδύνων ασφαλείας και τεχνικών επιθέσεων. Στο Κεφάλαιο 4 παρουσιάζονται οι τεχνολογίες υλοποίησης και η διαδικασία της υλοποίησης. Στο Κεφάλαιο 5 παρουσιάζονται τα σενάρια και τα παραδείγματα όπως αυτά έχουν τελικά διαμορφωθεί. Κλείνοντας το Κεφάλαιο 6 συνοψίζει τα συμπεράσματα της παραπάνω διαδικασίας ανάπτυξης και επεξεργασίας, ενώ το Κεφάλαιο 7 αναφέρει τη σχετική βιβλιογραφία χωρίς την οποία δεν θα ήταν εφικτό να ολοκληρωθεί αυτή η διπλωματική εργασία. 10

11 2. Περιγραφή του προβλήματος Όπως περιγράφεται εισαγωγικά, αντικείμενο της παρούσας διπλωματικής είναι η ανάπτυξη ενός νόμιμου ολοκληρωμένου περιβάλλοντος για την πρακτική εξάσκηση penetration testing. Ένα τέτοιο περιβάλλον απαιτεί τη δημιουργία ενός δικτύου διασυνδεδεμένων υπολογιστών μέρος των οποίων θα πρέπει να είναι σχεδιασμένα ώστε να είναι ευάλωτα σε ελέγχους διείσδυσης. Οι διαφορετικές σχεδιαστικές επιλογές για μια τέτοια υλοποίηση ποικίλουν. Οι συγκεκριμένες παράμετροι του σχεδιασμού πρέπει να ανταποκρίνονται στις λειτουργικές απαιτήσεις μας, συνεπώς αφετηρία οφείλει να είναι ο σαφής προσδιορισμός τους. Η εξέταση των ποικίλων αντίστοιχων υλοποιήσεων συνεισφέρει στη διαμόρφωση του δικού μας στίγματος εντός του υπάρχοντος τοπίου και τη δημιουργική αφομοίωση όψεων υπαρχουσών λύσεων. 2.1 Προσδιορισμός απαιτήσεων Η διαδικασία του προσδιορισμού των απαιτήσεων είναι στενά συνδεδεμένη με το σκοπό της υλοποίησης μας και το προφίλ των χρηστών. Μια εκπαιδευτική εφαρμογή, όπως είναι και η παρούσα, είναι σημαντικό να είναι εύκολη στη χρήση και αξιόπιστη στη λειτουργία της ώστε να μην αποθαρρύνει το χρήστη από το να προχωρήσει στη διερεύνηση των εκπαιδευτικών της λειτουργιών εξαιτίας τεχνικών δυσκολιών. Η ευκολία της εγκατάστασης σε διαφορετικές πλατφόρμες, η δυνατότητα μεταφερσιμότητας, αποτελεί σημαντική παράμετρο, καθώς οι πιθανοί χρήστες της εφαρμογής δύνανται να χρησιμοποιούν ποικίλα διαφορετικά λειτουργικά συστήματα ή αρχιτεκτονικές υλικού (CTF).hardware). Επιπρόσθετα, η επεκτασιμότητα μιας εκπαιδευτική πλατφόρμας είναι σημαντικό χαρακτηριστικό για τη βιωσιμότητας της μακροπρόθεσμα. Τέλος, η χρήση ελεύθερου λογισμικού ή λογισμικού το οποίο διατίθεται δωρεάν απαλλάσσει την ανάπτυξη και τη χρήση αυτής της εργασίας από επιπρόσθετα κόστη. 2.2 Επιλογές δημιουργίας ενός εργαστηρίου pentesting Τρεις κύριες επιλογές εμφανίζονται για τη δημιουργία ενός εργαστηρίου penetration testing: χρήση φυσικού hardware, χρήση εικονικών μηχανών ή ένα υβριδικός συνδυασμός των δύο προηγούμενων επιλογών. Η χρήση φυσικού hardware για τη δημιουργία ενός δικτύου με ευάλωτα υπολογιστικά συστήματα υπερέχει σαφώς στην αξιοπιστία, καθώς η μίμηση της λειτουργίας ενός πραγματικού hardware μέσα από την εικονοποίηση ενίοτε δεν αποδίδει πλήρως το φυσικό σύστημα. Οι διαφορετικές επιλογές διασύνδεσης για τη διαμόρφωση του ίδιου του δικτύου και η δυνατότητα χρήσης όλου του εύρους του διαθέσιμου στην αγορά hardware είναι χαρακτηριστικά πλεονεκτήματα της δημιουργίας ενός φυσικού εργαστηρίου penetration testing. 11

12 Το προφανές πεδίο στο οποίο υστερεί, ωστόσο, μια φυσική υλοποίηση είναι η μεταφερσιμότητα και το κόστος. Η απαίτηση της αγοράς επιπρόσθετου hardware, η εγκατάσταση του απαραίτητου λογισμικού και η διασύνδεση του μπορούν να αποφευχθούν με τη χρήση ενός περιβάλλοντος εικονοποίησης. Ένα εικονικό εργαστήριο penetration testing μπορεί να συμπεριλάβει ένα δίκτυο υπολογιστών με διαφορετικές αρχιτεκτονικές μέσα σε μια φυσική μηχανή ηλεκτρονικού υπολογιστή. Τα μειονεκτήματα σε σχέση με την πιστότητα των λειτουργιών σαφώς κάμπτονται από το χαμηλό κόστος και την ευκολία της διαδικασίας εγκατάστασης. Το υβριδικό μοντέλο συνδυάζει διαφορετικές φυσικές μηχανές με εικονικές μηχανές οι οποίες λειτουργούν σε αυτούς εκμεταλλευόμενο τα πλεονεκτήματα και των δύο μοντέλων σε ένα περισσότερο ρεαλιστικό και σύνθετο περιβάλλον. Η επιλογή της χρήσης εικονικών μηχανών -με την ταυτόχρονη δυνατότητα προσαρμογής τους σε ένα υβριδικό μοντέλο ανταποκρίνεται στην απαίτηση μας για μια χρηστική και μεταφέρσιμη υλοποίηση. [5] Τι είναι τα virtual machines; Ένα virtual machine ή εικονική μηχανή (CTF).VM) αποτελεί εξομοίωση μιας μηχανής από τη σκοπιά μια διαδικασίας (CTF).process) ή ενός συστήματος: Οι διαδικασίες virtual machines παρέχουν εφαρμογές σχεδιασμένες ώστε πρωτίστως να εκτελούν προγράμματα ανεξαρτήτως πλατφόρμας (CTF).με χαρακτηριστικό παράδειγμα το Java virtual machine). Τα συστήματα VMs παρέχουν την πλήρη λειτουργικότητα ενός συστήματος και υποστηρίζουν διαφορετικές εφαρμογές οι οποίες μπορούν να λειτουργούν εντός του εξομοιώνοντας μια πραγματική μηχανή. Με τη χρήση του ένας ηλεκτρονικός υπολογιστής μπορεί να υποστηρίξει την ταυτόχρονη λειτουργία διαφορετικών λειτουργικών συστημάτων. Το λογισμικό επόπτη (CTF).hypervisor) αναλαμβάνει τη δημιουργία και εκτέλεση των virtual machines. [6] Για τους σκοπούς του pentesting χρησιμοποιούμε τις εικονικές μηχανές από την σκοπιά των συστημάτων virtual machines. Αυτά χωρίζονται σε δύο βασικές κατηγορίες: bare-metal ή Type 1 και Type 2. Όταν εγκαθιστούμε ένα σύστημα σε bare-metal ή Type 2 περιβάλλον, ο hypervisor είναι εγκατεστημένος στο hardware του φυσικού ηλεκτρονικού υπολογιστή και αυτός επιλέγει την παροχή των πόρων στις εικονικές μηχανές αναλαμβάνοντας το ρόλο του λειτουργικού συστήματος. Η συγκεκριμένη επιλογή δίνει τη δυνατότητα δημιουργίας ισχυρών και σύνθετων αρχιτεκτονικών, ωστόσο απαιτεί τη χρήση hardware αφιερωμένου σε αυτόν τον ειδικό σκοπό δυσχεραίνοντας σαφώς τη μεταφερσιμότητα, καθώς και σημαντική εξειδίκευση για τη ρύθμιση του. 12

13 Στην αρχιτεκτονική του περιβάλλοντος Type 2 ο hypervisor εγκαθίσταται στο λειτουργικό σύστημα και συνεπώς το λειτουργικό σύστημα διαμεσολαβεί ανάμεσα στο hypervisor και το hardware. Αυτή η λειτουργία είναι πιο εύκολα υλοποιήσιμη και μπορεί να λειτουργήσει εύκολα και σε laptop, πράγμα το οποίο εμφανίζεται σημαντικές δυσκολίες για το περιβάλλον Type 1. [7] 2.3 Υπάρχουσες υλοποιήσεις intentionally vulnerable VMs Η εξερεύνηση του γαλαξία του vulnerable software και των διαθέσιμων virtual machines (CTF).VMs) μπορεί να είναι συχνά αποθαρρυντική για έναν αρχάριο στο penetration testing. Το VulnHub5 το οποίο αποτελεί το μεγαλύτερο online αποθετήριο ευάλωτων VMs φιλοξενεί μερικές εκατοντάδες VMs. Τα περισσότερα διαθέσιμα VMs δεν παρέχουν καμιά καθοδήγηση στον αρχάριο χρήστη και το επίπεδο δυσκολίας τους είναι αποθαρρυντικό. Αντίστοιχα προβλήματα θα συναντήσει κανείς στο Hack The Box6 στο οποίο η ίδια η εγγραφή απαιτεί την εφαρμογή τεχνικών hacking και συνεπώς μια σχετική εμπειρία. Το OWASP Vulnerable Web Applications Directory Project παρέχει μια επιλογή VMs. Ορισμένα απευθύνονται σε αρχάριους και είναι ιδιαίτερα δημοφιλή σαν εκπαιδευτικές πλατφόρμες. Μια επισκόπηση ορισμένων εξ αυτών θα είναι διαφωτιστική για να προχωρήσουμε στο σχεδιασμό του δικού μας συστήματος. i. Metasploitable 2 Το Metasploitable 27 είναι ανεπτυγμένο από την εταιρεία Rapid7 η οποία έχει αναπτύξει τη δημοφιλή πλατφόρμα Metasploit Framework. Το Metasploit επιτρέπει τον εντοπισμό, εκμετάλλευση και επιβεβαίωση ενός μεγάλου εύρους vulnerabilities. Με τη σειρά του το συχνά εισαγωγικό για αρχάριους Metasploitable είναι μια σκόπιμα ευάλωτη έκδοση του Ubuntu Linux σχεδιασμένη για τη δοκιμή εργαλείων ασφαλείας και την επίδειξη κοινών vulnerabilities. Η εγκατάσταση του ως VM είναι εύκολη με τη χρήση του VMWare, του VirtualBox και άλλων δημοφιλών εφαρμογών virtualization. Η πρόσβαση στα web services του γίνεται μέσω του εικονικού NAT network. Η πληθώρα των ενσωματωμένων backdoors (CTF).παράνομων οδών πρόσβασης) που προσφέρει μπορούν να εντοπιστούν και να αξιοποιηθούν εύκολα με τη χρήση του Metasploit. Ταυτόχρονα έχει εγκατεστημένα δημοφιλή vulnerable web applications όπως το OWASP Mutillidae και το DVWA, υλοποιημένα αμφότερα σε PHP. Το Mutillidae προσφέρει ταυτόχρονα ένα περιβάλλον παιχνιδιού με τη συγκέντρωση πόντων, καθώς και παραπομπές/πληροφορίες για την επίλυση των διαφόρων προβλημάτων τα οποία περιλαμβάνουν ασκήσεις SQL, json και Javascript injections, XSS, Click-jacking και πολλά άλλα. Αντίστοιχα το DVWA προσφέρει ένα περισσότερο ρεαλιστικό περιβάλλον, αλλά μια πιο περιορισμένη γκάμα ασκήσεων (CTF).τελευταία προσπέλαση: 19/2/2019) (CTF).τελευταία προσπέλαση: 19/2/2019) (CTF).τελευταία προσπέλαση: 19/2/2019) 13

14 ii. OWASP BWA Το OWASP Broken Web Applications (CTF).BWA) Project8 έχει αναπτυχθεί από το OWASP Foundation και παρουσιάζει σημαντικές ομοιότητες με το Metasploitable 2. Το συγκεκριμένο VM αποτελείται επίσης από μια ευάλωτη έκδοση Linux και προσφέρει πέρα από εκπαιδευτικές εφαρμογές, όπως το DVWA και το Web Goat, άλλες δύο κατηγορίες ευάλωτων εφαρμογών: ρεαλιστικές ευάλωτες εφαρμογές αλλά και παλιές εκδόσεις δημοφιλών εφαρμογών όπως το Wordpress και το Joomla για την εκμετάλλευση γνωστών αδυναμιών τους. iii. Web Security DOJO Το Web Security DOJO9 από τη συμβουλευτική εταιρεία κυβερνοασφάλειας Maven αναπτύχθηκε με τα μάτια στραμμένα στους συμμετέχοντες στα σεμινάρια της εταιρείας. Προσφέρει στο ίδιο VM τα βασικά εργαλεία pentesting, το ευάλωτο λογισμικό βασισμένο σε μια σκόπιμα ευάλωτη έκδοση του Ubuntu Linux και αναλυτικά εγχειρίδια. Αξίζει να σημειώσουμε ότι έχει μια σειρά ειδικών διεπαφών για τη διευκόλυνση χρήσης του λογισμικού pentesting από αρχάριους χρήστες. iv. Metasploitable 3 Το Metasploitable 310 είναι επίσης δημιούργημα της Rapid7 και είναι επίσης σχεδιασμένο για δοκιμές pentesting με τη χρήση του Metasploit. Η σημαντικότερη διαφορά με όσα έχουμε εξετάσει μέχρι τώρα είναι πως το Metasploitable 3 δεν έρχεται ως ένα έτοιμο στιγμιότυπο ενός VM, αλλά εισάγει τη δυνατότητα δυναμικού χτισίματος του VM. Ένας άλλος λόγος για τον οποίο είναι δημοφιλής η συγκεκριμένη υλοποίηση είναι πως προσφέρεται για να υλοποιηθεί με τα Windows Server 2008 R2. v. Kioptrix series Ιδιαίτερο ενδιαφέρον έχει η σειρά ευάλωτων VMs Kioptrix 11, αναπτυγμένη από μια ομάδα δύο προγραμματιστών/pentesters, τα οποία απευθύνονται σε περισσότερο προχωρημένους αρχάριους pentesters και θεωρούνται ιδανικά για την προετοιμασία πιστοποιήσεων στο pentesting όπως το OSCP της Offensive Security. Η παρουσία ξεχωριστών buffer errors σε κάθε VM της σειράς αποτελεί μια πιο απαιτητική και λιγότερο καθοδηγούμενη αναζήτηση vulnerabilities σε ένα περισσότερο ρεαλιστικό περιβάλλον. Στόχος είναι η ανάκτηση των σημαιών (CTF).flags) τα οποία βρίσκονται στο εσωτερικό του φακέλου διαχειριστή (CTF).root folder) του συστήματος για να θεωρηθεί ότι ο χρήστης έχει πάρει υπό τον έλεγχο του το σύστημα. 8 (CTF).τελευταία προσπέλαση: 19/2/2019) 9 (CTF).τελευταία προσπέλαση: 19/2/2019) 10 (CTF).τελευταία προσπέλαση: 19/2/2019) 11 (CTF).τελευταία προσπέλαση: 19/2/2019) 14

15 2.4 Διαμόρφωση χαρακτηριστικών Ανταποκρινόμενοι στα επιθυμητά χαρακτηριστικά και λαμβάνοντας υπόψιν τις διαφορετικές δυνατότητες για την υλοποίηση καθώς και τις κύριες τρέχουσες υλοποιήσεις μπορούμε να οδηγηθούμε σε σαφή συμπεράσματα για τη διαμόρφωση της αρχιτεκτονική μας. Η επιλογή της δημιουργίας ενός εικονικού περιβάλλοντος Type 2 ανταποκρίνεται βέλτιστα στις απαιτήσεις μας. Το εικονικό περιβάλλον το οποίο θα δημιουργήσουμε θα έχει εγκατεστημένα ευάλωτα web applications, όπως το σύνολο των διαθέσιμων ευάλωτων VMs τα οποία εξετάσαμε. Θα διαφοροποιηθούμε, ωστόσο, από την επιλογή του Web Security DOJO να ενσωματώσει στο ίδιο περιβάλλον τη μηχανή η οποία είναι επιφορτισμένη με τη λειτουργία της επίθεσης και τη μηχανή-στόχο. Ο λόγος είναι ότι παρά το πλεονέκτημα στην ευκολία εγκατάστασης οδηγεί στην έλλειψη ρεαλισμού. Ταυτόχρονα θα απομακρυνθούμε από την επιλογή της δυναμικής δημιουργίας του VM την οποία προσφέρει το Metasploitable 3, αλλά αυξάνει σημαντικότητα την πολυπλοκότητα τόσο στο στάδιο της ανάπτυξης όσο και στην εγκατάσταση από τον τελικό χρήστη. Θα βασιστούμε όπως οι περισσότερες υλοποιήσεις σε μια δημοφιλή διανομή του λειτουργικού συστήματος Linux για αναπτύξουμε το intentionally vulnerable VM target μας. 15

16 16

17 3. Οργάνωση των περιστατικών & επιδιωκόμενη επίδειξη Από την προηγούμενη επεξεργασία του προβλήματος εξάγουμε την ανάγκη δημιουργίας ενός ευάλωτου virtual machine, μια εύχρηστη διεπαφή (CTF).interface) με τη μορφή web application και επιμέρους σκόπιμα ευάλωτων web applications ή applications σαν σενάρια πραγματικών ρίσκων ασφαλείας. Η εξυπηρέτηση γίνεται σε localhost στο ευάλωτο guest VM victim. Ένα guest VM αναλαμβάνει το ρόλο του επιτιθέμενου (CTF).attacker) για τη διενέργεια των επιθέσεων. Παρακάτω παρουσιάζεται ένα διάγραμμα του σχεδιαζόμενου συστήματος σαν εικονικό εργαστήριο penetration testing. Hard ware Host OS GuestTarget Hyper visor GuestAttacker Router Ο σχεδιασμός των σεναρίων τα οποία θα κληθεί να αντιμετωπίσει ο χρήστης της εφαρμογής απαιτεί την εξέταση των σημαντικότερων τρεχουσών κινδύνων ασφαλείας. Η υλοποίηση των σεναρίων αποτελούν τις βασικές προδιαγραφές του σχεδιαζόμενου λογισμικού. 3.1 Κίνδυνοι ασφαλείας Θα παρουσιάσουμε τους δέκα σημαντικότερους κινδύνους ασφαλείας σύμφωνα με το OWASP, ώστε να προχωρήσουμε στη διαμόρφωση των σεναρίων μας. Η επιλογή του όρου κίνδυνος ασφαλείας είναι σκόπιμος από πλευράς του OWASP. Σκοπεύει να καταδείξει ότι επιμέρους κίνδυνοι οι οποίοι μπορεί να φαίνονται μικρής σημασίας σε ένα λογισμικό, όπως η χρήση αδύναμων κωδικών ή αδύναμων αλγορίθμων κρυπτογράφησης 17

18 μπορούν σε συνδυασμό να οδηγήσουν στην παραβίαση του συστήματος από έναν επιτιθέμενο. [8] i. Injection Τα Injection (CTF).ένεση) vulnerabilities αποτελούν μια ένα σύνολο κινδύνων όταν οι επιτιθέμενοι μπορούν να εισάγουν κακόβουλο κώδικα για εκτέλεση στον server. Συχνά, δεδομένα από μη έμπιστες πηγές και τα οποία δεν ελέγχονται επαρκώς εισάγονται στη βάση δεδομένων, το shell ή κάποιου άλλου parser. Καθώς τα επιβλαβή δεδομένα θα εμφανιστούν στην είσοδο μαζί με τον κώδικα, θα εκτελεστεί με τα ίδια προνόμια όπως η αρχική λειτουργία. Το SQL Injection αποτελεί ένα επιμέρους σύνολο ρίσκων της ίδιας κατηγορίας όπου queries τα οποία δίνονται σε μια βάση δεδομένων SQL είναι τροποποιημένα ώστε να εκτελέσουν ανεπιθύμητες ενέργειες ή να αποκτήσουν ευαίσθητες πληροφορίες. ii. Broken Authentication & Session Management Στα ελληνικά θα αποδίδαμε το συγκεκριμένο κίνδυνο ως Σπασμένη Διαχείριση Πιστοποίησης και Συνεδρίας. Διαπιστευτήρια χρηστών μπορεί να κλαπούν, συνεδρίες (CTF).sessions) να σφετεριστούν, και δικαιώματα πρόσβασης να κλιμακωθούν μέσα από λάθη στην υλοποίηση της διαδικασίας ταυτοποίησης, χαμηλή προστασία στα διαπιστευτήρια των sessions και ανασφαλείς πρακτικές κατά τη διαδικασία της εγγραφής (CTF).registration). iii. Cross-Site Scripting (XSS) Το XSS συμβαίνει όταν δεδομένα τα οποία παρέχονται από τον χρήστη παρουσιάζονται επισφαλώς σε μια εφαρμογή. Αν ο χρήστης παράσχει δεδομένα τα οποία μπορούν να δημιουργήσουν νέο κώδικα HTML ή Javascript, ο χρήστης μπορεί να ελέγξει τη συμπεριφορά της εφαρμογής στο επίπεδο της παρουσίασης. iv. Sensitive Data Exposure Το Sensitive Data Exposure ή έκθεση ευαίσθητων πληροφοριών είναι μια κατηγορία κινδύνων ασφαλείας, όπου σημαντικά δεδομένα για την εφαρμογή ή το σύστημα δεν προστατεύονται σωστά. Τα ευαίσθητα δεδομένα θα πρέπει να είναι κρυπτογραφημένα ή προστατευμένα με ασφαλείς αλγορίθμους και ισχυρά κλειδιά. Το πιο συνηθισμένο κενό ασφάλειας είναι μη κρυπτογράφηση κωδικών πρόσβασης. Δεν αποτελούν κατηγορία επίθεσης, αλλά κατά τη διαδικασία μιας επίθεσης μπορούν να αποτελέσουν το κενό μέσα από το οποίο τελικά ο επιτιθέμενος θα αποκτήσει πρόσβαση σε ολόκληρο το σύστημα. v. Χρήση Components με Γνωστά Vulnerabilities Η χρήση παλιών εκδόσεων λογισμικού με γνωστές ευαλωτότητες σε οποιοδήποτε κομμάτι της υλοποίησης θέτει σε κίνδυνο τις εφαρμογές και τα συστήματα. Αυτά τα components μπορούν να ποικίλουν από εξωτερικές βιβλιοθήκες μέχρι εκδόσεις servers. 18

19 vi. Security Misconfiguration Το security misconfiguration ή κακή ρύθμιση ασφαλείας είναι μια κατηγορία ρίσκων η οποία συμβαίνει όταν το λογισμικό δεν είναι σωστά εγκατεστημένο και ρυθμισμένο με αποτέλεσμα να μένει ανασφαλές. Μisconfiguration μπορεί να συμβεί σε οποιοδήποτε επίπεδο μιας εφαρμογής, δηλαδή της πλατφόρμας, του server, της βάσης δεδομένων, του framework ή οποιουδήποτε κώδικα. Επιλογές όπως σελίδες debug, απροστάτευτα αρχεία ή φάκελοι και default στοιχεία για login κατατάσσονται στα security misconfigurations. vii. Insecure DOR Το Insercure Direct Object Reference (CTF).DOR) ή επισφαλής άμεσης αναφορά αντικειμένου είναι μια κατηγορία ρίσκων στην οποία οι επιτιθέμενοι έχουν τη δυνατότητα πρόσβασης σε απαγορευμένες σελίδες με τροποποίηση παραμέτρων μεταβλητών. Αυτή η επίθεση αποτελεί αποτέλεσμα ανεπαρκούς ελέγχου πρόσβασης και παροχής υπέρμετρης εμπιστοσύνης στους χρήστες. viii. Missing Function Level Access Control Το Function Level Access Control ή Συνάρτηση Ελέγχου Επιπέδου Πρόσβασης είναι μια έννοια σύμφωνα με την οποία συναρτήσεις ή κλήσεις της εφαρμογής είναι σωστά προστατευμένα ενάντια σε ανεπίτρεπτη πρόσβαση κάνοντας κατάλληλους ελέγχους σε κάθε αίτημα που τους απευθύνεται. Κατά συνέπεια το Missing Function Level Access Control λαμβάνει χώρα όταν η εφαρμογή δεν προστατεύει επαρκώς τις αντίστοιχες διαδρομές. Τέτοια ρίσκα είναι εύκολο να αμεληθούν από ένα προγραμματιστή, αλλά εύκολο να εντοπιστούν και να εκμεταλλευθούν από έναν εισβολέα. Η αλλαγή μιας παραμέτρου μέσα από ένα URL επιτρέπει στον επιτιθέμενο να εκμεταλλευτεί την ευάλωτη συνάρτηση. ix. Cross-site Request Forgery (CSRF) Μια επίθεση Cross-site Request Forgery (CTF).CSRF) ή απάτη αιτήματος ανάμεσα σε site επιτρέπει σε ένα κακόβουλο χρήστη να εκτελέσει ενέργειες χρησιμοποιώντας τα διαπιστευτήρια κάποιου άλλου χρήστη χωρίς τη γνώση ή τη συγκατάθεση. αποτελεί μια επίθεση κατά την οποία ο browser του χρήστη. Αυτό υλοποιείται υποκλέπτοντας από το browser του χρήστη ένα αίτημα για ένα άλλο site στο οποίο είναι διαπιστευμένος. x. Insecure Redirect Μια ανασφαλής ανακατεύθυνση ή insecure redirect είναι μια ανακατεύθυνση HTTP η οποία επιτρέπει την πρόσβαση σε ένα αυθαίρετο URL. Συχνά δεν αναγνωρίζονται ως πρόβλημα καθώς δεν επηρεάζουν άμεσα το site στο οποίο εντοπίζονται. Ωστόσο, δύναται να χρησιμοποιηθούν από επιτιθέμενους για να ανακατευθύνουν χρήστες σε επιβλαβή hosts, ενώ εμφανίζονται σαν αξιόπιστα domains. 19

20 3.2 Προδιαγραφές για το σύστημα Οι κίνδυνοι ασφαλείας έχουν σημασία για να γίνει κατανοητή η παρουσία δυνατοτήτων για εκμετάλλευση μέσα από μια επίθεση στο διαδίκτυο. Ωστόσο, εξετάζουν το πρόβλημα από την πλευρά του αμυνόμενου. Για το σχεδιασμό μιας επίθεσης θα πρέπει να προσδιορίσουμε συγκεκριμένα τον τύπο των επιθέσεων με τις οποίες σκοπεύουμε να εκμεταλλευτούμε τα συγκεκριμένα προβλήματα ασφαλείας. SQL Injection: Η συγκεκριμένη κατηγορία αποτελεί το δημοφιλέστερο τύπο injection και την πλέον συνηθισμένη ευαλωτότητα η οποία αξιοποιείται για την εκμετάλλευση web applications, καθώς η πλειονότητα των βάσεων δεδομένων οι οποίες είναι διαθέσιμες αυτή τη στιγμή στο διαδίκτυο είναι βασισμένες σε κάποια έκδοση συστήματος διαχείρισης βάσεων δεδομένων SQL. Password cracking: Τα δεδομένα τα οποία εξάγονται από μια βάση δεδομένων είναι κατά κανόνα κρυπτογραφημένα. Η διαδικασία του σπασίματος της κρυπτογράφησης είναι απαραίτητη για να αξιοποιηθούν τα ευρήματα μιας ανάκτησης δεδομένων μέσα από ένα επιτυχημένο SQL injection ή άλλη μορφή επίθεσης. Stored XSS: Ο κακόβουλος κώδικας αποθηκεύεται στο web application target αυτής της επίθεσης και εκτελείται στον browser κάθε επισκέπτη αυτής της σελίδας και μπορεί να χρησιμοποιηθεί σε forum ή άλλα site στα οποία ο χρήστης δημοσιεύει περιεχόμενο. Η άλλη κατηγορία XSS την οποία δεν θα υλοποιήσουμε είναι το Reflected XSS στο οποίο ο κακόβουλος κώδικας ενσωματώνεται μέσα σε ένα request. Ο χρήστης-θύμα επισκέπτεται μια σελίδα στην οποία υποβάλει ένα request το οποίο του έχει δώσει με κάποια μορφή παραπλάνησης ο επιτιθέμενος και το οποίο εκτελεί στο browser του τον κακόβουλο κώδικα. Stack Overflow: Ανάμεσα στους κινδύνους ασφαλείας οι οποίοι αναφέρθηκαν παραπάνω είναι η χρήση λογισμικού με γνωστές ευαλωτότητες. Μια από τις συνηθέστερες μορφές ευαλωτότητας σχετίζεται με τις επιθέσεις buffer overflows. Εδώ θα υλοποιήσουμε επιθέσεις της κατηγορίας stack overflow, δηλαδή υπερχείλιση δεδομένων στη είσοδο του stack του προγράμματος, της τοπικής περιοχής στην οποία αποθηκεύει δεδομένα ένα πρόγραμμα. Επιλέγουμε τα stack overflows ανάμεσα στις άλλες κατηγορίες οverflows γιατί είναι η συνηθέστερη μορφή οverflow που συναντάμε και παρουσιάζεται εισαγωγικά σε όλη τη σχετική βιβλιογραφία περί buffer overflow. Άλλες μορφές buffer overflow είναι τα format string bugs και τα heap overflows. Στα format string bugs γίνεται εκμετάλλευση του προγράμματος όταν δεδομένα του χρήστη εμπεριέχονται στη μορφοποίηση ενός string της οικογένειας του printf (CTF).αφορά ειδικά τη γλώσσα C). Στην περίπτωση των heap overflows συμβαίνει η εκμετάλλευση του προγράμματος μέσα από την περιοχή μνήμης στις οποίες αποθηκεύονται οι global variables, το heap. [9] Τα ρεαλιστικά σενάρια τα οποία θα υλοποιηθούν θα ενσωματώνουν παραδείγματα από έξι κατηγορίες ρίσκων ασφαλείας τα οποία αναφέρθηκαν παραπάνω. 20

21 Συγκεκριμένα θα συμπεριληφθούν τέσσερα σενάρια τα οποία θα συνδυάζουν: 1. Broken Authentication & Session Management: μια registration form με παραλείψεις θα επιτρέπει privileges escalation από κακόβουλους χρήστες 2. SQL Injection και Sensitive Data Exposure: ο συνδυασμός αδύναμων κωδικών και αδύναμου αλγορίθμου κρυπτογράφησης θα γίνει αντικείμενο κλιμάκωσης μιας επίθεσης SQL injection 3. Cross-Site Scripting (CTF).XSS): η μη αξιολόγηση/έλεγχος των δεδομένων των χρηστών θα επιτρέπει σε κακόβουλους χρήστες την εκτέλεση script σε JS ενάντια στους επισκέπτες της σελίδας 4. Χρήση Components με Γνωστά Vulnerabilities και Security Misconfiguration: ένας ερασιτεχνικός server στο σύστημα που φιλοξενεί το λογισμικό μας επιτρέπει την εκτέλεση buffer overflow από έναν επιτιθέμενο με απλή πρόσβαση χρήστη σε επισφαλώς ρυθμισμένο σύστημα Βασικό κριτήριο για τη διαμόρφωση των άνωθεν σεναρίων αποτελεί η κλιμακούμενη δυσκολία και η δοκιμή των πιο κλασικών μεθόδων pentesting. 21

22 22

23 4. Περιγραφή της υλοποίησης Για την ικανοποίηση των απαιτήσεων και προδιαγραφών μας ήταν απαραίτητη η επιλογή συγκεκριμένων τεχνολογιών. Η γλώσσα Python και το Django framework εξαιτίας των δυνατοτήτων και της αναπτυσσόμενης δημοτικότητας τους θεωρήθηκαν ιδανικά για την υλοποίηση. Η ανάγκη για ένα ισχυρό, γρήγορο και δωρεάν λογισμικό εικονοποίησης οδήγησε στη χρήση του VirtualBox, το οποίο είναι διαθέσιμο για τα περισσότερα σύγχρονα λειτουργικά συστήματα καθιστώντας μεταφέρσιμη την υλοποίηση. Επιπρόσθετα, το Linux σαν επιλογή λειτουργικού συστήματος ικανοποιεί την απαίτηση για χρήση ελεύθερου λογισμικού και η χρήση LTS εκδόσεων συμβάλει στην αξιοπιστία του περιβάλλοντος. 4.1 Τεχνολογίες Υλοποίησης Σε αυτό το υποκεφάλαιο παρουσιάζουμε αναλυτικά τις τεχνολογίες τις οποίες χρησιμοποιήσαμε στην παρούσα υλοποίηση. i. Python & Django Framework Σημαντική αφετηρία στο σχεδιασμό του συστήματος μας είναι η χρήση της γλώσσας Python, εξαιτίας των ισχυρών δυνατοτήτων της, τη χρήση του OOP παραδείγματος και της αυξανόμενης δημοτικότητας της. Η πλειονότητα των μελετών για την πιο δημοφιλή γλώσσα για το 2018 ανέδειξε την Python στις πρώτες θέσεις, σταθερά επάνω από την PHP στην οποία είναι γραμμένα τα περισσότερα ευάλωτα web applications. Ένας άλλος σημαντικός παράγοντας για την επιλογή της Python και ειδικά της έκδοσης 3.6 είναι ότι πρόκειται για τεχνολογία αιχμής με εξαιρετικές δυνατότητες ασφαλείας. Αυτό δίνει συχνά τη ψευδαίσθηση στους προγραμματιστές ότι είναι απαλλαγμένοι από την έγνοια για ζητήματα ασφαλείας. Θόρυβο είχε προκαλέσει η έρευνα του Βραζιλιάνου ερευνητή ασφαλείας Fabio Castro τον περασμένο Μάρτιο στον ειδικό Τύπο 12, καθώς web εφαρμογές με την ασφαλή πλατφόρμα Django εντοπίστηκαν μέσω του Shodan 13 να είναι online έχοντας ενεργοποιημένη τη λειτουργία debug, το οποίο τα καθιστά ευάλωτα σε επιθέσεις. Το Django Framework είναι το πιο ισχυρό python framework για την ανάπτυξη backend και frontend web applications σήμερα με μια μεγάλη κοινότητα υποστήριξης και περισσότερα από δέκα χρόνια παρουσίας. Είναι εξαιρετικά γρήγορο, scalable και όπως υποστηρίζεται εξαιρετικά ασφαλές. Πράγματι στην επίσημη σελίδα του Django για την έκδοση 2.1 την 12 Catalin Cimpanu, Misconfigured Django Apps Are Exposing Secret API Keys, Database Passwords, Bleeping Computer, 30/3/2018: (CTF).τελευταία πρόσβαση: 19/2/2019) 13 Μηχανή αναζήτησης για συσκευές συνδεδεμένες στο internet: (CTF).τελευταία πρόσβαση: 19/2/2019) 23

24 οποία χρησιμοποιούμε θα βρούμε αναλυτικές αναφορές για την ενσωματωμένη ασφάλεια για XSS, CSRF, SQL injection, clickjacking, cache poisoning και sniffing [10]. Παρουσιάζεται, συνεπώς, ο συνδυασμός ενός ισχυρού stack για την ανάπτυξη των εφαρμογών μας με την ταυτόχρονη δυνατότητα εμφάνισης κενών ασφαλείας σε ένα stack υπεράνω υποψίας. ii. Bootstrap Συμπληρωματικά χρησιμοποιείται το Boostrap 4 για το front-end των web applications. Για το Bootstrap διαβάζουμε στη Wikipedia: Το Bootstrap είναι ένα δωρεάν ανοιχτού κώδικα front-end Web framework. Εμπεριέχει design templates βασισμένα σε HTML και CSS για τυπογραφία, φόρμες, κουμπιά, μπάρες μενού και άλλα συνθετικά του interface, καθώς και πρόσθετα Javascript. Σε αντίθεση με άλλα web frameworks αφορά αποκλειστικά το frontend development. 14 iii. SQLite Η SQLite είναι ένα σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων ανεπτυγμένο σε C. Η συνήθης εφαρμογή της είναι να λειτουργεί ως ενσωματωμένη βάση δεδομένων σε εφαρμογές. Λιγότερο συνηθισμένη είναι η χρήση της σε λειτουργίες server. Το Django προσπαθεί να υποστηρίζει όλες τις βάσεις δεδομένων. Ωστόσο, η SQLite αποτελεί την default επιλογή για τα projects του Django -μια μάλλον αναμενόμενη επιλογή κατά τη διάρκεια του development- και ταυτόχρονα μια εξαιρετικά ελαφριά βάση δεδομένων. Η αδυναμία της να εξυπηρετήσει μεγάλο όγκο δεδομένων δεν αποτελεί πρόβλημα για τη συγκεκριμένη υλοποίηση, ενώ μας διευκολύνουν οι ελάχιστες απαιτήσεις της σε πόρους. iv. C language Η γλώσσα C προσφέρει εξαιρετική ταχύτητα και απόδοση εξαιτίας της τρομερής εγγύτητας της με το hardware. Αυτή η εγγύτητα αποτελεί και τη σημαντικότερη αδυναμία που την καθιστά μια δύσκολη επιλογή για αρχάριους. Οι κλασικότερες επιθέσεις buffer overflows από τις αρχές της δεκαετίας του 80 έγιναν επάνω σε αβλεψίες προγραμματιστών στη C. Στη παρούσα υλοποίηση δεν θα εξετάσουμε τις δυνατότητες της, αλλά τα αποτελέσματα της αμελούς χρήσης αυτού του ισχυρού εργαλείου από αρχάριους ή απρόσεκτους προγραμματιστές. v. Selenium Το Selenium είναι ένα μεταφέρσιμο framework για testing web applications. Δεν απαιτεί τη γνώση κάποιας ειδικής γλώσσας scripting. Παρέχει μια ειδική γλώσσα για τη συγγραφή των test και επιτρέπει τη συγγραφή test scripts σε μια σειρά από γλώσσες, μεταξύ των οποίων και η Python. Σε συνδυασμό με το Geckodriver, την καρδιά του Mozilla Firefox, 14 Wikipedia, λήμμα Bootstrap (CTF).front-end framework): (CTF).τελευταία πρόσβαση: 20/2/2019) 24

25 χρησιμοποιήσαμε ένα headless browser ως bot στο ρόλο του επισκέπτη-θύματος της επίθεσης XSS. Συμπληρωματικά θα αναφέρουμε εδώ τη χρήση του Xvfb το οποίο υλοποιεί το πρωτόκολλο προβολής X11 χρησιμοποιώντας εικονική μνήμη και χωρίς να δείχνει κάποια έξοδο στην οθόνη μας, ώστε να λειτουργεί η όλη διαδικασία στο παρασκήνιο. Για την ενσωμάτωση του στο script χρησιμοποιήθηκε το PyVirtualDisplay το οποίο διευκολύνει αυτή τη διαδικασία. vi. Apache HTTP Server και mod_wsgi Το ίδιο το Django πέρα από τη χρήση του ενσωματωμένου development server μας καθοδηγεί σαν πρώτη επιλογή για deployment των projects του στη χρήση του Apache μαζί με το mod_wsgi [10]. Το Django χρησιμοποιεί την πλατφόρμα WSGI, το οποίο αποτελεί τη σταθερά για την Python σχετικά με web server και applications. Το WSGI (CTF).Web Server Gateway Interface) αποτελεί μια σύμβαση κλήσεων για web server ώστε να προωθήσουν αιτήματα σε web applications ή frameworks γραμμένα σε Python. Το mod_wsgi είναι ένα Apache module το οποίο μπορεί να φιλοξενήσει οποιοδήποτε Python WSGI application. Η λειτουργία των πολλαπλών site τα οποία απαρτίζουν την υλοποίηση μας φιλοξενείται στο localhost ενός Apache 2 server σε τοπικά subdirectories με διευρυμένη χρήση του WSGIScriptAlias για την απαραίτητη παραμετροποίηση. vii. Elementary Linux Βασισμένο στο Ubuntu LTS, το Elementary OS 0.5 Juno 15 είναι μια ελαφριά και αξιόπιστη επιλογή σαν λειτουργικό σύστημα. Η αρχική εφαρμογή αναπτύχθηκε στην κανονική έκδοση του, αλλά για την ελαχιστοποίηση της κατανάλωσης υπολογιστικών πόρων καταλήξαμε σε μια αυτοσχέδια stripped down (CTF).απογυμνωμένης) έκδοση της χωρίς γραφικό περιβάλλον διεπαφής με το χρήστη. Για τις ανάγκες των σεναρίων χρησιμοποιήσαμε την 64bit έκδοση του λειτουργικού ώστε να μπορεί να υλοποιηθεί 64bit buffer overflow, ενώ παρέχεται συμβατότητα για 32bit buffer overflow. Πέρα από προσωπικές προτιμήσεις το Εlementary παρουσιάζει ενδιαφέρον σχετικά με το πώς ένα δημοφιλές και ασφαλές λειτουργικό σύστημα μπορεί να καταστεί επισφαλές με κάποιες αρκετά- κακές επιλογές λογισμικού και ρυθμίσεων (CTF).τελευταία πρόσβαση: 20/2/2019) 25

26 viii. Kali Linux Η Kali Linux αποτελεί την κορυφαία επιλογή σε penetration testing OS και είναι ένα απαραίτητο λογισμικό για τις δοκιμές κατά τη διάρκεια της ανάπτυξης σκόπιμα ευάλωτου λογισμικού. Η Kali είναι μια διανομή Linux βασισμένη σε Debian σχεδιασμένη για digital forensics και penetration testing. Αναπτύσσεται από την εταιρεία Offensive Security και αποτελεί το διάδοχο του BackTrack της ίδιας εταιρείας. Περιέχει προεγκατεστημένα πολλά εργαλεία ανάλυσης, εντοπισμού και αξιοποιήσης vulnerabilities. Εδώ χρησιμοποιούμε την έκδοση σε 64bit αρχιτεκτονική. ix. VirtualBox Το VirtualBox της Oracle είναι η καλύτερη δωρεάν λύση για εικονοποίηση σε desktop. Ανταποκρίνεται σαφώς στις ανάγκες και τον προϋπολογισμό της δεδομένης υλοποίησης. Ειδικότερα θα χρησιμοποιήσουμε την επιλογή NAT service ανάμεσα στις άλλες επιλογές Virtual Networking του συγκεκριμένου Hypervisor [11] για να δημιουργήσουμε ένα εικονικό δίκτυο. Το Network Address Translation (CTF).NAT) service λειτουργεί παρόμοια με ένα οικιακό router, ομαδοποιώντας τα συστήματα τα οποία το χρησιμοποιούν σε ένα δίκτυο (CTF).NAT Network) και παράλληλα αποκλείονται συστήματα στο εξωτερικό του δικτύου από το να έχουν απευθείας πρόσβαση στο εσωτερικό του. Τα συστήματα στο εσωτερικό ωστόσο μπορούν να επικοινωνήσουν με τον έξω κόσμο χρησιμοποιώντας TCP και UDP μέσω IPv4 και IPv Διαδικασία Υλοποίησης i. Γενικά για την ανάπτυξη των web applications Το Django χρησιμοποιεί το πρότυπο του MVC framework (CTF).Model-View-Controller ή Μοντέλου-Όψης-Ελεγκτή) για την οργάνωση ενός web project. Ωστόσο, ακολουθεί τη δική του ονοματολογία και κάποιες εννοιολογικές ιδιαιτερότητες. Συνοπτικά, η αντίληψη των προγραμματιστών της Django είναι πως ένα Views περιγράφει τα δεδομένα που βλέπει ο χρήστης, όχι τον τρόπο με τον οποίο τα βλέπει -όπως συνηθίζεται σε άλλα frameworks. Συνεπώς, ένα view είναι μια συνάρτηση κλήσης Python για ένα συγκεκριμένο URL, διότι περιγράφει το ποια δεδομένα παρουσιάζονται. Περαιτέρω, έχει σημασία ο διαχωρισμός του περιεχομένου από την παρουσίαση και αυτό το ρόλο αναλαμβάνει το template. Τα templates αναλαμβάνουν τον τρόπο παρουσίασης των δεδομένων στο χρήστη, ενώ το ρόλο του controller αναλαμβάνει το ίδιο το framework. Ο μηχανισμός ο οποίος στέλνει τα αιτήματα στο κατάλληλο view γίνεται σύμφωνα με το URL configuration του framework. Ένα μοντέλο είναι η μοναδική προσδιοριστική πηγή πληροφοριών για τα δεδομένα. Εμπεριέχει τα βασικά πεδία και συμπεριφορές των δεδομένων τα αποθηκεύονται. Γενικά, κάθε μοντέλο αντιστοιχεί σε ένα πίνακα βάσης δεδομένων. 26

27 Περαιτέρω ένα view μπορεί να κληθεί ως αίτημα (CTF).request) και να επιστρέψει μια απόκριση (CTF).response). Αυτό μπορεί να είναι περισσότερο από απλώς μια συνάρτηση, και το Django παρέχει ένα παράδειγμα κλάσεων τα οποία μπορούν να χρησιμοποιηθούν ως views. Αυτό επιτρέπει την καλύτερη δόμηση του κώδικα και την επανάχρηση του μέσα από της αρχές της κληρονομικότητας και τη λειτουργία των mixins. Οι Class-based views (CTF).views βασισμένα σε κλάσεις - CBVs) παρέχουν έναν εναλλακτικό τρόπο υλοποίησης με αντικείμενα Python αντί για συναρτήσεις. Είναι ίσως αυτονόητο, αλλά αξίζει να σημειωθεί ότι η χρήση κλάσεων δεν αντικαθιστά τα views βασισμένα σε συναρτήσεις, αλλά παρέχει κάποιες διαφορές και πλεονεκτήματα στην υλοποίηση. Σε αυτή την υλοποίηση έχουμε ακολουθήσει το παράδειγμα των Class-based views για όλες τις web εφαρμογές. Πριν κλείσουμε τις εισαγωγικές σημειώσεις να υπογραμμίσουμε άλλη μια ονοματολογική ιδιαιτερότητα του Django. Ο όρος project περιγράφει ένα Django web application. Το πακέτο Python -ένας φάκελος με κώδικα ορίζεται πρωταρχικά από ένα module ρυθμίσεων, αλλά κατά κανόνα περιέχει και επιπλέον ρυθμίσεις και κώδικα. Κάθε project περιέχει στο φάκελο του όλες της εφαρμογές (CTF).applications) του project τα οποία εγκαθίστανται ξεχωριστά. Ο όρος application περιγράφει ένα πακέτο Python το οποίο περιέχει μια σειρά λειτουργιών. Ένα application μπορεί να επαναχρησιμοποιηθεί σε διαφορετικά projects. Παρακάτω φαίνεται η ανάπτυξη Django στο περιβάλλον Atom. 27

28 ii. Interface: Subzero CTF Το ρόλο του user interface της όλης υλοποίησης για την επικοινωνία με το χρήστη αναλαμβάνει το web application το οποίο ονομάσαμε Subzero CTF και είναι το μοναδικό web application της εφαρμογής το οποίο δεν είναι vulnerable -τουλάχιστον όχι σκόπιμα. Ο όρος CTF στο όνομα του επεξηγεί ότι πρόκειται για ένα παιχνίδι pentesting της μορφής Capture The Flag (CTF).CTF). Στο συγκεκριμένο Django project αποτελείται από δύο επιμέρους Django applications, το Accounts και Challenges. Το πρώτο αναλαμβάνει τη διαδικασία εγγραφής, ταυτοποίησης και ανανέωσης του προφίλ των χρηστών της εφαρμογής, ενώ το δεύτερο διαχειρίζεται τις ασκήσεις/σενάρια τα οποία καλούνται challenges και τα οποία καλείται να επιλύσει ο χρήστης. Κάθε challenge θεωρείται επιλυμένο μετά την παροχή του αντίστοιχου (CTF).σωστού) κωδικού-flag από το χρήστη. Με την ολοκλήρωση κάθε challenge παρέχονται points και σημειώνεται η πρόοδος του χρήστη μέχρι την ολοκλήρωση του παιχνιδιού. Η παρουσία ενός scoreboard με την πρόοδο όλων των χρηστών και το χρόνο που έχουν επιτεύξει την πρόοδο τους προσπαθεί να συνεισφέρει σε μια λογική αντιμετώπισης των σεναρίων από ομάδα εκπαιδευόμενων και εμβάθυνση της αίσθησης του παιχνιδιού κατά τις δοκιμασίες. Η εφαρμογή είναι σχεδιασμένη ώστε να είναι επεκτάσιμη με νέα challenges. Σε περισσότερο τεχνικές λεπτομέρειες κάθε app χρησιμοποιεί από ένα μοντέλο, Account και Challenge αντίστοιχα. Διαφορετικά προνόμια/επίπεδα πρόσβασης δίνονται σε διαφορετικούς χρήστες της εφαρμογής. Ένας διαχειριστής μπορεί να παραμετροποιήσει τα challenges ή να δημιουργήσει νέα, ενώ για έναν απλό χρήστη εμφανίζονται μόνο οι βασικές επιλογές. Η βελτίωση της εμφάνισης του τελικού αισθητικού αποτελέσματος γίνεται με τη χρήση Bootstrap 4 και του Bootstrap theme LUX 16. Όλα τα vulnerable web applications έχουν διαθέσιμα fixtures ώστε να μπορεί να επανέλθει η αρχική τους κατάσταση αν κάποιος επιτιθέμενος-παίκτης δημιουργήσει πρόβλημα στη λειτουργία. iii. Broken Authentication Challenge: Astronomy fanpage Το πρώτο vulnerable web application το οποίο θα εξετάσουμε έχει τη μορφή μιας σελίδας φίλων της αστρονομίας με δυνατότητα εγγραφής χρήστη, δημιουργία θεματικών και δημοσιεύσεις για κάθε ζήτημα. Το project αποτελείται από τρία επιμέρους Django apps: Accounts, Groups και Posts. Το Accounts διαχειρίζεται την εγγραφή και την είσοδο των χρηστών, όπως και στην προηγούμενη εφαρμογή. Το Posts διαχειρίζεται τη δημιουργία, τροποποίηση, διαγραφή και προβολή δημοσιεύσεων. Το Groups διαμορφώνει τις θεματικές, δηλαδή ομάδες δημοσιεύσεων και διαχειρίζεται το ποιοι χρήστες είναι εγγεγραμμένοι στην κάθε θεματική. Κάθε app αποτελείται από ένα μοντέλο/πίνακα βάσης δεδομένων. 16 Bootswatch: (CTF).Τελευταία πρόσβαση: 19/2/2019) 28

29 Για μια πιο διαστημική αίσθηση χρησιμοποιείται το Fireflies (CTF).interactive) από το codepen.io17. Το κενό ασφαλείας της εφαρμογής εντοπίζεται στην εφαρμογή Accounts και οφείλεται σε μια απροσεξία του developer στην ανάπτυξη της φόρμας εγγραφής. Ο developer αμελεί να επιλέξει σωστά τα πεδία τα οποία θα εμφανίζονται στη φόρμα του μέσω του Form Class το οποίο περιγράφει μια φόρμα και προσδιορίζει τη λειτουργία και την εμφάνιση, αν και σωστά κληρονομεί από την κλάση UserCreationForm. Συγκεκριμένα, αντί να επιλέξει ποια πεδία θα φαίνονται στο χρήστη (CTF).όρισμα field στο Meta της κλάσης), επιλέγει το ποια δεν θα φαίνονται (CTF).όρισμα exclude στο Meta της κλάσης). Αντίθετα, επεμβαίνει απευθείας στο template για να ρυθμίσει με απλή HTML για την εμφάνιση και την επιλογή των πεδίων τα οποία θα βλέπει ο χρήστης. Τα templates, ωστόσο, αφορούν κυρίαρχα την παρουσίαση των δεδομένων και των ενεργειών επί αυτών. Το Django επιλέγει ήδη τα δεδομένα τα οποία θα προβάλει στη Form class και τα στέλνει κατά το request από το αντίστοιχο URL μαζί με τις επιτρεπτές τους ενέργειες. Δυστυχώς για τον αμελή προγραμματιστή ανοιχτά μένουν τα πεδία is_superuser και ιs_staff τα οποία δίνουν δικαιώματα διαχειριστή στον κακόβουλο χρήστη ο οποίος θα επέμβει στο request του browser. Το flag αυτού του challenge βρίσκεται σε περίοπτη θέση στη σελίδα /admin της εφαρμογής μετά από ένα επιτυχημένο login, δηλαδή στο Django CMS. iv. XSS Challenge: Gastronomy fanpage Πρόκειται για μια σελίδα κλώνο της σελίδας των φίλων της Αστρονομίας που εξετάσαμε προηγουμένως για ανθρώπους με πιο γήινα ενδιαφέροντα. Πιο συγκεκριμένα, διατηρήθηκαν τα apps, τα μοντέλα, τα views και τα templates της προηγούμενης σελίδας σε μια σελίδα φίλων της γαστρονομίας και της μαγειρικής. Οι αλλαγές στην εμφάνιση αφορούν το περιεχόμενο, τους τίτλους και την επιλογή ενός CSS Drawing για το frontend από το codepen.io με τίτλο The Great Sandwich Chef 18. Είναι μάλλον αυτονόητο πως η ευπαθής φόρμα έχει αντικατασταθεί στη συγκεκριμένη εφαρμογή. Το vulnerability το οποίο καθιστά ευπαθή τη συγκεκριμένη σελίδα εντοπίζεται στο app Posts και έχει να κάνει με τη χρήση του πρόσθετου app misaka 19. Το πρόσθετο αυτό αποτελεί ένα template tag για το rendering του Markdown των κειμένων των posts των χρηστών, με άλλα λόγια παρέχει τη δυνατότητα μορφοποίησης με HTML tags του κειμένου που εισάγουν οι χρήστες στις δημοσιεύσεις τους. Ο μη έλεγχος ή ο μη επαρκής έλεγχος επιτρέπει την είσοδο scripts από πλευράς ενός κακόβουλου χρήστη/επιτιθέμενου. Η συγκεκριμένη επίθεση, ωστόσο, δεν αφορά τόσο άμεσα το ίδιο το site όσο τους επισκέπτες της σελίδας στον browser των οποίων εκτελείται κάποιο επιβλαβές script. Το ρόλο του επισκέπτη-θύματος αναλαμβάνει ένα headless Firefox browser ως bot με τη 17 Thibaut, Fireflies (CTF).interactive): (CTF).Τελευταία πρόσβαση: 19/2/2019) 18 Chris Evans. CSS Drawing - The Great Sandwhich Chef : (CTF).τελευταία πρόσβαση: 19/2/2019) 19 Django-misaka: (CTF).τελευταία πρόσβαση: 19/2/2019) 29

30 χρήση του Selenium. Ένα Python script λειτουργεί στο μηχάνημα όπου γίνεται το hosting και το οποίο εκκινεί μέσω του Cron κατά την εκκίνηση του υπολογιστή. Το Cron αποτελεί ένα λογισμικό για τη διαχείριση εργασιών σε λειτουργικά συστήματα τύπου Unix. Το bot μας επισκέπτεται ανά τακτά χρονικά διαστήματα τη σελίδα των posts και στέλνει ένα cookie. Το flag αυτού του Challenge βρίσκεται αποθηκεύμενο στο cookie το οποίο καλείται να υποκλέψει ο επιτιθέμενος από το χρήστη-bot της σελίδας. Το επιπλέον bonus αυτού του Challenge είναι ότι στο cookie παρέχεται και το username για την είσοδο στο host μηχάνημα, ώστε να καταστεί εφικτή η εκπλήρωση του Buffer Overflow Challenge. v. SQL injection Challenge: Mysite blogpage Ξεκινάμε την παρουσίαση της συγκεκριμένης υλοποίησης ότι πρόκειται για την υλοποίηση ενός σεναρίου το οποίο συνδυάζει δύο ευπάθειες, το SQL Injection και το Sensitive Data Exposure. Η επιλογή της ονομασίας του γίνεται για να κατευθύνει το χρήστη στον τύπο της επίθεσης την οποία θα πρέπει να εξαπολύσει για να ανακτήσει τα δεδομένα τα οποία ζητάμε από το site. Η έκθεση των ευαίσθητων δεδομένων θα γίνει εύκολα κατανοητή κατά την πρόοδο της διαδικασίας. Πρόκειται για μια προσωπική σελίδα ιστολογίου blogpage. Οι τρέχουσες αναρτήσεις επικεντρώνονται στο ίδιο το Django. Αποτελείται από ένα μόνο app με το όνομα blog, το οποίο διαχειρίζεται τις αναρτήσεις από το διαχειριστή της σελίδας και τα σχόλια από επισκέπτες της σελίδας. Τα δύο μοντέλα τα οποία χρησιμοποιούνται είναι τα Post και Comment με τη χρήση του καθενός να είναι μάλλον προφανής. Πρόκειται για μια πιο απλή σελίδα σε σχέση με τις προηγούμενες που εξετάσαμε. Μια επιπρόσθετη λειτουργία την οποία εμφανίζει είναι η δυνατότητα ανάρτησης φωτογραφιών στα posts και μια φόρμα αναζήτησης στην οποία εντοπίζονται τα κενά ασφαλείας. Ο ερασιτέχνης προγραμματιστής για να υλοποιήσει ένα απλό blog σε Django είναι κατανοητό ότι μπορεί να αμελήσει εύκολα να ακολουθήσει την ασφαλή μεθοδολογία development. Εν προκειμένω, για την υλοποίηση του πεδίου αναζήτησης δεν χρησιμοποιεί το Django ORM (CTF).Object-Relational Management layer), το οποίο αποτελεί την καρδιά της διαχείρισης δεδομένων από το Django Framework. Αντίθετα, το υλοποιεί με τη χρήση raw SQL ορισμάτων μέσω Python strings στα views του app blog. Ταυτόχρονα φαίνεται να αγνοεί τις προειδοποιήσεις του Django documentation για τη μη χρήση string formatting σε raw SQL queries το οποίο το καθιστά το site ευάλωτο σε SQL injections [10]. Το ένοχο query είναι το κάτωθι: query = "SELECT id AS pk, title, published_date, image, body_text FROM blog_post WHERE (CTF).title ' ' body_text) LIKE '%s' AND published_date NOT NULL" % p 30

31 Επιτρέπεται έτσι η εκτέλεση SQL queries στο χρήστη μέσω της κατάλληλης διαμόρφωσης της μεταβλητής p. Το πρόβλημα θα ήταν περισσότερο ελεγχόμενο, αν ο προγραμματιστής δεν είχε επιλέξει την κρυπτογράφηση τον κωδικό με τον απλό αλγόριθμο SHA-1 (CTF).Secure Hash Algorithm 1) ο οποίος δεν θεωρείται ασφαλής από το 2005 και από το 2010 προτείνεται η αντικατάσταση του από νεότερους πιο σύνθετους αλγορίθμους [12]. Μια επίθεση bruteforce αν αυτός συνδυαστεί με ένα αδύναμο password μπορεί εύκολα να είναι επιτυχημένη σε μικρό χρόνο και με μηδενικό κόστος. Το flag το οποίο απαιτείται από το χρήστη για την επιτυχημένη ολοκλήρωση αυτού του Challenge δεν είναι άλλο από τον αποκρυπτογραφημένο κωδικό πρόσβασης του administrator της σελίδας. Το επιπλέον bonus εδώ είναι ότι ο ίδιος κωδικός πρόσβασης μπορεί να χρησιμοποιηθεί συνδυαστικά με το username που εντοπίζεται στο XSS Challenge για την επιτυχή πρόσβαση στο hosting μηχάνημα. vi. Buffer Overflow Challenge: vulserver & vulserver64 Το τελευταίο και μεγαλύτερης δυσκολίας Challenge πέραν του ότι είναι το μόνο Challenge με προαπαιτούμενα παρουσιάζει μια πρόσθετη ιδιαιτερότητα: είναι το μόνο Challenge το οποίο υποστηρίζει δύο διαφορετικά μονοπάτια εργασίας για επίθεση με buffer overflow σε 32-bit ή 64 bit αρχιτεκτονική. Πρόκειται για την ίδια εφαρμογή απλού server γραμμένη σε C, αλλά με τροποποίηση στη διαδικασία του compile. Ο κώδικας βασίζεται στο simple server με χρήση TCP από το linuxhowtos20. Η διαφοροποίηση μας ακολουθεί τις κατευθύνσεις των διαλέξεων του Sam Bowne από το City College of San Fransisco και οι οποίες αποτελούν μια ελεύθερα προσβάσιμη πηγή γνώσεων γύρω από τα διάφορα είδη buffer overflows [13]. Η υλοποίηση μας αφορά την πιο βασική μορφή αυτής της κατηγορίας των επιθέσεων και η οποία δεν είναι άλλη από τα stack overflows. Πιο συγκεκριμένα στην υλοποίηση μας τώρα ένοχη για το stack overflow είναι η συνάρτηση copier η οποία επιστρέφει στο μηχάνημα hosting το μήνυμα του χρήστη και η οποία ορίζει ως buffer μια μεταβλητή char μεγέθους 1024 bytes, ενώ στη main επιτρέπεται η καταχώρηση μιας μεταβλητής char 4096 bytes. Για τη διευκόλυνση της επίθεσης έχει απενεργοποιηθεί το ASLR από το λειτουργικό σύστημα του μηχανήματος του server. Παράλληλα κατά τη διαδικασία της μεταγλώττισης (CTF).compile) έχουν απενεργοποιηθεί μια σειρά από επιπλέον μηχανισμούς ασφάλειας: Προστασία εγγραφής μνήμης (CTF).Non executable stack), Stack canaries reordering, κρυπτογράφηση δείκτη (CTF).Pointer encyption). Ο 32-bit ερασιτεχνικός server και ο 64-bit κλώνος του λειτουργούν στις ports 4001 και 4003 αντίστοιχα. Είναι ρυθμισμένα να λειτουργούν ως systemctl services στο μηχάνημα hosting και να επανεκκινούν σε περίπτωση τερματισμού τους

32 Πρόκειται σαφώς για Known Vulnerabilities Components καθώς χρησιμοποιείται ένα εξαιρετικά ερασιτεχνικό και κακοφτιαγμένο application το οποίο δεν έχει περάσει κανέναν έλεγχο ασφαλείας. Οι κακές ρυθμίσεις του sudoers αρχείου το οποίο επιτρέπει χωρίς κωδικό τη διενέργεια συγκεκριμένων εντολών με προνόμια superuser είναι που παρουσιάζουν την ύπαρξη ρίσκου ασφαλείας της κατηγορίας Security Misconfiguration. Αλλιώς θα ήταν δύσκολη έως αδύνατη η παραμετροποίηση της επίθεσης στον stack του server αποκλειστικά remotely. Ωστόσο και πάλι επιλέχθηκε η ονομασία Buffer Overflow Challenge για να κατευθύνει τον χρήστη στο είδος της επίθεσης και μάλιστα του γνωστοποιούνται εν είδη hint τα κενά ασφαλείας στις ρυθμίσεις του λειτουργικού συστήματος. vii. Deployment Μετά την ολοκλήρωση της διαδικασίας ανάπτυξης ακολουθεί το configuration του Apache server με το mod_wsgi και το testing όλων των λειτουργιών. Για τη μείωση των απαιτήσεων πόρων όπως έχουμε ήδη σημειώσει αφαιρέσαμε το γραφικό περιβάλλον. Το intentionally vulnerable VM με το όνομα Subzero όπως και η εφαρμογή του interface μένει μόνο να γίνει γίνει export σε ένα αρχείο με κατάληξη ova, δηλαδή ένα virtual appliance, για να είναι μεταφέρσιμο σε άλλα συστήματα. Η διάθεση ενός τέτοιου λογισμικού γίνεται ως επί τω πλείστον μέσω διαδικτύου και ως εκ τούτου το μέγεθος του αρχείου πρέπει να ελαχιστοποιηθεί. Αυτό επιτεύχθηκε με τη χρήση του λογισμικού zerofree. Το zerofree είναι μια εφαρμογή η οποία σαρώνει τα ελεύθερα μπλοκ σε ένα δίσκο με filesystem ext2/3/4 και αντικαθιστά μη μηδενικό μπλοκ με μηδέν. Με τη χρήση της επιλογής compact από το VirtualBox ελαχιστοποιούμε το τελικό αρχείο το οποίο γίνεται export σε ένα αρχείο μεγέθους περίπου 2 gigabytes, το οποίο δεν υπερβαίνει το μέσο όρο των 64bit intentionally vulnerable VMs. 32

33 5. Σενάρια & Παραδείγματα Στο παρόν κεφάλαιο θα εξετάσουμε τα αποτελέσματα της υλοποίησης μας παρακολουθώντας το λογισμικό από τη διαδικασία της εγκατάστασης μέχρι την επίλυση των επιμέρους σεναρίων. 5.1 Εγκατάσταση & επισκόπηση Η εγκατάσταση είναι μια απλή διαδικασία εισαγωγής ενός νέου appliance στο VirtualBox. Για το εικονικό εργαστήριο φυσικά συστήνεται η εγκατάσταση της Kali σε άλλο VM ώστε να διαθέτουμε τα απαραίτητα pentesting tools για να επιλυθούν τα Challenges. Το VM εκκινεί και βρισκόμαστε μπροστά στην αρχική οθόνη χωρίς πολλές επιλογές για να αλληλεπιδράσουμε αφού δεν διαθέτουμε τα απαραίτητα διαπιστευτήρια. 33

34 Η μεθοδολογία την οποία θα ακολουθήσουμε είναι να σαρώσουμε το τοπικό δίκτυο με χρήση του nmap από το Kali VM για να εντοπίσουμε τη διεύθυνση ip του Subzero και τα διαθέσιμα services. Πρώτα ανιχνεύουμε τη διεύθυνση του τοπικού δικτύου εκτελώντας την εντολή ifconfig από το terminal: Στη συνέχεια έχοντας εντοπίσει πως οι διευθύνσεις του τοπικού δικτύου είναι της μορφής * χρησιμοποιούμε το nmap για μια πρώτη σάρωση. 34

35 Εντοπίζουμε πως ο στόχος μας βρίσκεται στη διεύθυνση Θα ήταν λογικό να επιχειρήσουμε ένα agressive scan καθώς βλέπουμε δύο ασυνήθιστα ανοιχτά ports. Ωστόσο, δεν αναγνωρίζεται από το nmap κάποιο γνωστό vulnerability. Αποτέλεσμα αναμενόμενο αφού πρόκειται για services δικής μας κατασκευής. 35

36 Προχωράμε στην πιο νομιμόφρονα επιλογή του να αναζητήσουμε μέσω του browser μας τη διεύθυνση και η οποία μας ανακατευθύνει αμέσως στη σελίδα την αρχική δηλαδή σελίδα του Subzero CTF και βλέπουμε το μήνυμα καλωσορίσματος από την εφαρμογή. 36

37 Ακολουθούμε τις οδηγίες και προχωράμε στην οθόνη εγγραφής όπου συμπληρώνουμε τα στοιχεία μας. Μετά την οθόνη επιτυχημένης εγγραφής, πλοηγούμαστε στην ενότητα Login και βλέπουμε για πρώτη φορά την αρχική οθόνη με την ιδιότητα του συνδεδεμένου χρήστη. Εμφανίζεται η μπάρα προόδου στο μηδέν αφού δεν έχουμε ολοκληρώσει κανένα Challenge και βλέπουμε μπροστά μας όλα τα διαθέσιμα Challenges για πλοήγηση. 37

38 5.2 Επίδειξη επίλυσης σεναρίων i. Broken Authentication Challenge write-up Πλοηγούμαστε στη σελίδα της αντίστοιχης δοκιμασίας. Βλέπουμε ότι η ολοκλήρωση αποφέρει 15 πόντους και πλοηγούμαστε στο σχετικό url. Εκεί θα συναντήσουμε τη σελίδα των φίλων της αστρονομίας. 38

39 Και θα πλοηγηθούμε στην ευάλωτη φόρμα εγγραφής. Επιλέγουμε την προβολή του πηγαίου κώδικα της σελίδας και διαπιστώνουμε εύκολα τα ανοιχτά πεδία τα οποία μας ενδιαφέρουν. 39

40 Ενεργοποιούμε στον browser μας τις κατάλληλες ρυθμίσεις για να ανακατευθύνουμε την κίνηση μας μέσω της επιλογής proxy της σουίτας Burp. Ρυθμίζουμε τον browser να ανακατευθύνει την κίνηση μέσω proxy στην ip του localhost (CTF) ). Συμπληρώνουμε τη φόρμα εγγραφής έχοντας ενεργοποιημένη την επιλογή intercept και κάνουμε υποβάλουμε τη φόρμα πατώντας Sign Up. Τώρα στο Burp προσθέτουμε τις παραμέτρους is superuser: yes και is staff: yes. 40

41 Η εγγραφή μας ολοκληρώνεται επιτυχώς με τα επιθυμητά διευρυμένα προνόμια. Αυτό μπορούμε να το διαπιστώσουμε άμεσα μέσα από την πλοήγηση στη διεύθυνση και δοκιμάζοντας να εισάγουμε τα στοιχεία μας για να εισέλθουμε. Στην επόμενη οθόνη διαπιστώνουμε ότι έχουμε εισέλθει στο CMS του διαχειριστή του συγκεκριμένου Django site. Στο επάνω αριστερά μέρος της σελίδας φαίνεται το flag το οποίο προσπαθούμε να ανακτήσουμε. 41

42 Πλοηγούμαστε πίσω στο subzero και εισάγοντας το σωστό κωδικό βλέπουμε το μήνυμα επιτυχίας από το site. ii. XSS Challenge write-up Πλοηγούμαστε στη σελίδα του XSS Challenge. Ο λίγο αυξημένος βαθμός δυσκολίας οδηγεί στην απόκτηση 20 πόντων κατά την ολοκλήρωση. Ακολουθούμε και πάλι το URL. Πλοηγούμαστε στη σελίδα των φίλων της γαστρονομίας και ακολουθούμε τη διαδικασία εγγραφής. 42

43 Μετά το login δημιουργούμε μια νέα δημοσίευση για να ελέγξουμε αν η σελίδα είναι ευάλωτη σε XSS. Και πράγματι βλέπουμε γρήγορα να εμφανίζεται το pop-up ενός alert. 43

44 Συνεπώς μπορούμε να προχωρήσουμε άμεσα στην καταχώρηση ενός script που θα μας στέλνει τα cookies των επισκεπτών της σελίδας. Πηγαίνουμε τώρα στο terminal και βάζουμε το netcat να ακούει στην port

45 Αποκτήσαμε έτσι με επιτυχία το επόμενο flag και το όνομα χρήστη για το host μηχάνημα. Το καταχωρούμε με επιτυχία στη σελίδα του subzero και βλέπουμε πως το score μας έχει ανέβει στο 35% 45

46 iii. SQL Injection Challenge write-up Κατά τα συνήθη πηγαίνουμε στη σελίδα του SQL injection Challenge και μεταβαίνουμε στην αντίστοιχη σελίδα. Εμφανίζεται μπροστά μας η κεντρική σελίδα του blog και διακρίνουμε επάνω δεξιά το πεδίο αναζήτησης. 46

47 Ξεκινάμε να πειραματιζόμαστε με την αναζήτηση και διαπιστώνουμε ότι λειτουργεί κανονικά. Προσπαθούμε να βάζουμε ένα sql query προσθέτοντας ένα απλό εισαγωγικό μπροστά και το σύμβολο του σχολίου για τη MySQL. Γράφουμε συγκεκριμένα and 1=1 # υποθέτοντας ότι η είσοδος μας θα γίνει κομμάτι ενός SELECT SQL query. Το αποτέλεσμα της προσπάθειας μας δεν έχει το αναμενόμενο αποτέλεσμα, αλλά είναι μια σημαντική πρόοδος. Η είσοδος μας πράγματι δεν αντιμετωπίστηκε ως απλός κώδικας, αλλά προκάλεσε πρόβλημα στην επεξεργασία του αιτήματος μας από τη βάση. Μια εύλογη αιτία για αυτό μπορεί να είναι ότι το σύστημα βάσης δεδομένων που χρησιμοποιείται δεν είναι η MySQL. Επαναλαμβάνουμε τη δοκιμή μας αλλάζοντας μόνο το σύμβολο σχολίου με αυτό της SQLite. Η υπόθεση μας είναι σωστή και εμφανίζονται όλες οι εγγραφές. Ας δοκιμάσουμε τώρα τι θα συμβεί με μια μη αληθή υπόθεση στο query πχ and 1=

48 Λαμβάνουμε ως αποτέλεσμα μια κενή σελίδα. Συνεπώς πλέον μπορούμε να είμαστε βέβαιοι ότι μπορούμε να στείλουμε SQL queries στη βάση χρησιμοποιώντας τη σύνταξη της SQLite. Είναι απαραίτητες όμως κάποιες προκαταρκτικές ενέργειες. Με μια σειρά order by θα διαπιστώσουμε πόσα columns έχει ο πίνακας του αρχικού SELECT στο οποίο κάνουμε injection. Όλα λειτουργούν κανονικά με την παράμετρο 1. Προχωράμε τις δοκιμές μας με μια μεγάλη παράμετρο πχ

49 Το αναμενόμενο αποτέλεσμα είναι μήνυμα λάθους από το server. Με διαδοχικές δοκιμές βρίσκουμε πως ο αριθμός των rows είναι 5. Μπορούμε τώρα να οικοδομήσουμε το SELECT μας υπολογίζοντας 5 rows. Έχουμε λοιπόν UNION SELECT 1,2,3,4,

50 Το SELECT μας είναι επιτυχές και διαπιστώνουμε ότι ο τίτλος είναι το column 2 ενώ το κυρίως κείμενο είναι το column 5. Θα προτιμήσουμε τη χρήση του column 2. Εισάγουμε πάλι δοκιμαστικά UNION SELECT 1,sqlite_version(CTF).),3,4,5 -- Μας επιστρέφεται η έκδοση της SQLite την οποία χρησιμοποιεί το site. Μπορούμε δηλαδή πλέον να είμαστε βέβαιοι για την έκδοση SQL την οποία έχουμε μπροστά μας. Προχωράμε περισσότερο στην ανάκτηση δεδομένων από τη βάση και αναζητούμε το σχήμα της βάσης δεδομένων από τον αντίστοιχο πίνακα τον οποίο γνωρίζουμε ότι έχει κάθε βάση SQLite. 50

51 Πρόκειται για τον πίνακα SQLITE_MASTER. Η είσοδος μας θα είναι της μορφής UNION SELECT 1,name,3,4,5 from sqlite_master --. Έχουμε πράγματι ανακτήσει τα ονόματα όλων των πινάκων της βάσης δεδομένων. Εντοπίζουμε ανάμεσα τους έναν πίνακα ο οποίος φαίνεται να σχετίζεται με τα δεδομένα των πιστοποιημένων χρηστών. Πρόκειται για τον πίνακα auth_user. Εισάγουμε ένα νέο query ερευνώντας αν υπάρχει το πεδίο password στο συγκεκριμένο πίνακα ή πιο συγκεκριμένα UNION SELECT 1,password,3,4,5 from auth_user

52 Σαν αποτέλεσμα λαμβάνουμε ένα κρυπτογραφημένο password. Το σκέλος του SQL injection ως εκ τούτου έχει παρέλθει. Προχωράμε στο password cracking ενός SHA1 hash αφού αποθηκεύσουμε τον κρυπτογραφημένο κωδικό σε ένα αρχείο. Για το cracking θα χρησιμοποιήσουμε την εφαρμογή hashcat, το δημοφιλές dictionary rockyou.txt και το Hob0Rules για να ενισχύσουμε το dictionary με μια rule-based επίθεση. Η διαδικασία είναι επιτυχής και το password ανακτάται σε μόλις 12 δευτερόλεπτα. Επιστρέφουμε στη σελίδα του Subzero και το καταχωρούμε ως flag στο αντίστοιχο πεδίο. 52

53 Μετά την επιτυχή ανάκτηση του κωδικού από το SQL injection Challenge είναι εφικτή η αντιμετώπιση του Buffer Overflow Challenge. iv. Buffer Overflow Challenge Πλοηγούμαστε στη σελίδα του Buffer Overflow Challenge και διαπιστώνουμε ότι δεν έχουμε κάποιο url link διαθέσιμο αυτή τη φορά. Έχουμε, ωστόσο, κάποια χρήσιμα hints. Γνωρίζουμε ότι μπορούμε να εισέλθουμε στο σύστημα και πέραν αυτού ότι μας είναι προσβάσιμες οι εντολές fuser και gdb με προνόμια superuser. Μια σημαντική ιδιαιτερότητα του συγκεκριμένου Challenge είναι ότι μας δίνει δύο εντελώς διαφορετικά μονοπάτια εργασίας: ένα για 32 bit και ένα για 64 bit service. Οι πόντοι από αυτό το Challenge είναι διπλάσιοι από τα προηγούμενα, όπως και το επίπεδο δυσκολίας. Πραγματοποιούμε για πρώτη φορά είσοδο στο subzero VM με τα credentials τα οποία έχουμε πλέον στη διάθεση μας. 53

54 Εργαζόμαστε διαφορετικά ανάλογα με το ποιο service θέλουμε να εκμεταλλευτούμε. Σημείωση: Κατά τη διάρκεια της επανεκκίνησης του server και η οποία απαιτείται συχνά στο επόμενο Challenge, υπάρχει η πιθανότητα να αντιμετωπίσουμε το μήνυμα ERROR on binding: Address already in use. Αυτό συμβαίνει γιατί η σύνδεση στο port 4001 ή 4003 δεν έχει λήξει ακόμα. Αυτό συμβαίνει από το λειτουργικό σύστημα για να μην υπάρξει σύγχυση πακέτων κατά τη διαδοχική χρήση ενός port από διαφορετικές εφαρμογές. Με την εντολή watch netstat -an grep 4001 (CTF).ή 4003 για τον 64 bit server) μπορούμε να παρακολουθήσουμε μια διεργασία ενώ σε κατάσταση TIME-WAIT σε πραγματικό χρόνο. Η αναμονή είναι κατά κανόνα ένα λεπτό. (α) Stack Overflow 32-bit Ο 32-bit server είναι αυτός ο οποίος ακούει στην port Αρχικά δοκιμάζουμε να συνδεθούμε από το Kali machine για να κατανοήσουμε εποπτικά τη λειτουργία του server. Διαπιστώνουμε ότι δέχεται ένα μήνυμα σαν είσοδο, το επιστρέφει ως επιβεβαίωση της επικοινωνίας και περιμένει νέα είσοδο. Μεταβένουμε στο Subzero machine στο οποίο έχουμε εισέλθει ως χρήστης sub. Εκτελούμε fuser ως su για να διαπιστώσουμε το ποια εφαρμογή έχει ανοίξει το συγκεκριμένο port. Περνάμε τη συγκεκριμένη εφαρμογή ενώ συνεχίζει να εκτελείται στο gdb debugger ως διαχειριστές με sudo gdb -p pid. 54

55 Το debugging γίνεται πιο εύκολα καθώς το compile έχει γίνει με ενσωμάτωση των συμβόλων. Με την εντολή list βλέπουμε τον κώδικα σε C. Στη συνέχεια εκτέλουμε list 10,45 για προβολή του συνόλου του κώδικα. 55

56 Παρατηρούμε την αστοχία του προγραμματιστή στο διαφορετικό μέγεθος του declaration της μεταβλητής buffer με 1024 bytes στη συνάρτηση copier(ctf).) και 4096 στη main(ctf).), η οποία βλέπουμε ότι είναι η μεταβλητή εισόδου που δέχεται το μήνυμα μας. Γράφουμε ένα απλό πρόγραμμα fuzzer σε Python στο Kali μηχάνημα μας το οποίο αποτελείται από ένα string 1100 χαρακτήρων το οποίο θα λειτουργήσει ως DOS exploit. Αφήνουμε το πρόγραμμα να τρέχει στο gdb δίνοντας την εντολή continue ή τη συντόμευση c. Προσοχή: Δίνουμε continue και όχι run καθ όλη τη διαδικασία. Η εντολή run θα επανεκκινήσει το πρόγραμμα και θα το μεταφέρει σε νέο stack του χρήστη μας, αντί του χρήστη root. 56

57 Πίσω στην Kali: μετατρέπουμε το fuzzer script μας σε εκτέλεσιμο και αποθηκεύουμε την είσοδο του σε ένα αρχείο. Έπειτα εισάγουμε αυτό το αρχείο σαν είσοδο στο server. Αυτή η ενέργεια προκαλεί κατάρρευση του server ο οποίος εμφανίζει σφάλμα segmentation fault. Επιλέγουμε quit στο gdb και επανεκκινούμε τη διαδικασία για να εντοπίσουμε το νέο process μετά την κατάρρευση του προγράμματος. Γνωρίζουμε ότι ο buffer έχει μέγεθος 1024 bytes και συνεπώς μια είσοδος 1100 bytes οδηγεί στην κατάρρευση του server. Κάπου ανάμεσα στα 1024 και τα 1100 bytes βρίσκονται τα bytes τα οποία καταχωρούνται στον $eip, τον instruction pointer, ο οποίοςeip, τον instruction pointer, ο οποίος κατευθύνει το πρόγραμμα στην επόμενη εντολή την οποία θα εκτελέσει. Για να τον εντοπίσουμε θα τοποθετήσουμε ένα μη επαναλαμβανόμενο μοτίβο από bytes στα τελευταία 100 bytes του exploit. 57

58 Αφήνουμε να τρέχει ο server. Ελέγχουμε ότι το αρχείο του script με το pattern μας είναι 1101 bytes με ls -l και το καταχωρούμε στην είσοδο ακριβώς όπως πριν με το fuzzer και προκαλείται νέα κατάρρευση του server. Εκτελούμε info registers για να εποπτεύσουμε το περιεχόμενο των registers κατά την κατάρρευση. Hex Char Οι κώδικες ANSI των αριθμών μπορούν να αναγνωριστούν εύκολα. Το περιεχόμενο του eip έχει πάρει την τιμή 0x Με τη βοήθεια του διπλανού πίνακα και τη γνώση ότι οι χαρακτήρες Hex καταχωρούνται σε little-endian στους καταχωρητές -δηλαδή αντιστραμμένα - αντιλαμβανόμαστε ότι τα bytes είναι Αφού έχουμε επιτύχει πράγματι τον έλεγχο της τιμής του $eip, τον instruction pointer, ο οποίοςeip και έτσι του προγράμματος κατ ουσίαν θα επιχειρήσουμε την καταχώρηση μιας συγκεκριμένης τιμής στον instruction pointer και θα ετοιμάσουμε το shellcode μας στο οποίο θα ανακατευθύνουμε στη συνέχεια τον instruction pointer για να εκτελέσουμε εντολές στο μηχάνημα-στόχο. Έχουμε υπολογίσει ότι από τον $eip, τον instruction pointer, ο οποίοςesp, τον stack pointer ο οποίος δείχνει στην κορυφή του stack μας, μέχρι τον $eip, τον instruction pointer, ο οποίοςeip μεσολαβούν 1036 χαρακτηρές. Αυτός ο υπολογισμός 58

59 προκύπτει από τα 1000 bytes των A του προηγούμενου μοτίβου και τους 18 επί 2 χαρακτήρες που προηγούνται της καταχώρησης στον $eip, τον instruction pointer, ο οποίοςeip -από 00 μέχρι 17. Το script μας δημιουργεί μια είσοδο 1101 bytes που ξεκινά χαρακτήρες Α όπως προηγουμένως. Αφήνουμε όμως μέχρι τον instruction pointer κάποια bytes για να καταχωρήσουμε μερικά NOP και το περιεχόμενο της μεταβλητής buf στην οποία θα καταχωρήσουμε το reverse shell. Ακολουθεί η τιμή του ABCD σε ANSI την οποία θα αποπειραθούμε να καταχωρήσουμε στον $eip, τον instruction pointer, ο οποίοςeip και μετά μερικοί χαρακτήρες X για να συμπληρώσουμε τους 1100 χαρακτήρες -θα φτάσουμε στους 1101 με το χαρακτήρα αλλαγής γραμμής. Για τη δημιουργία του shellcode μας θα χρησιμοποιήσουμε το metasploit framework στο οποίο έχουμε αναφερθεί στα εισαγωγικά κεφάλαια. Το metasploit παρέχει ένα εργαλείο με το όνομα msfvenom το οποίο παράγει shellcodes. Βλέπουμε μια πληθώρα επιλογών για bindshell μέσω tcp. Ανάμεσα τους επιλέγουμε το linux/x86/shell_bind_tcp για x86 αρχιτεκτονική και βλέπουμε τις επιλογές του συγκεκριμένου payload. 59

60 Η παράμετρος την οποία είναι απαραίτητο να γνωρίζουμε είναι η LPORT HOST, δηλαδή το σε ποια port ακούει το bindshell το οποίο δημιουργεί αυτο το payload. Η αρχική επιλογή είναι η port Μπορούμε να ζητήσουμε τη δημιουργία του payload σε μορφή κατάλληλη για Python script. Την προσοχή μας πρέπει να τραβήξει η παρουσία των διαδοχικών x00 στο payload το οποίο φαίνεται στην εικόνα. Ένα shellcode δεν πρέπει να περιέχει null bytes (CTF).00) γιατί αυτό θα αναγνωριστεί ως σημείο τερματισμού του string. Το ίδιο συμβαίνει με τους χαρακτήρες νέας γραμμής (CTF).line feed 0A) και αλλαγής γραμμής (CTF).carriage return 0D). Υπάρχουν και άλλοι απαγορευμένοι χαρακτήρες οι οποίοι εξαρτώνται από ιδιαιτερότητες κάθε σετ εντολών. Θα αντιμετωπίσουμε αυτό το πρόβλημα με ενεργοποίηση της επιλογής alpha_mixed. Αυτή η επιλογή ρυθμίζει τη δημιουργία του shellcode κατ αποκλειστικότητα με γράμματα και αριθμούς. 60

61 Παρακάτω βλέπουμε το τελικό μας shellcode. Εισάγουμε το payload στο script της επίθεσης μας αντιγράφοντας το παραπάνω. Επαναλαμβάνουμε τη διαδικασία με το fuser για τον εντοπισμό του νέου process και ξεκινάμε ξανά τον gdb debugger. 61

62 Μετατρέπουμε το script μας σε εκτελέσιμο και το στέλνουμε ως είσοδο στο server. Προκαλείται νέα κατάρρευση του server kai εκτελούμε info registers για να δούμε το περιεχόμενο του $eip, τον instruction pointer, ο οποίοςeip τη στιγμή της κατάρρευσης. Διαπιστώνουμε πως περιέχει τους χαρακτήρες ABCD όπως στοχεύαμε. Για να ελέγξουμε τη δομή του exploit μας στη RAM χρειάζεται να τοποθετήσουμε ένα breakpoint πριν ώστε ο κώδικας να σταματήσει πριν την κατάρρευση. Επανεκκινούμε το πρόγραμμα στο gdb κατά τα γνωστά. Με list 11,20 βλέπουμε τον κώδικα C και ειδικά τη γραμμή 14 στην οποία γίνεται η κλήση της διαβοητής επισφαλούς συνάρτησης strcpy(ctf).). Τοποθετούμε το breakpoint ακριβώς μετά, στη γραμμή 15, ώστε να σταματήσει άμεσως μετά το buffer overflow πριν το πρόγραμμα επιχειρήσει να επιστρέψει από τη συνάρτηση copier(ctf).) και καταρρεύσει. Στη συνέχεια αφήνουμε το server να τρέχει όπως φαίνεται παρακάτω. 62

63 Στέλνουμε ξανά το exploit στην είσοδο και το πρόγραμμα σταματάει στο breakpoint. Βλέπουμε πάλι τους registers. Τώρα με την εντολή x/260x $eip, τον instruction pointer, ο οποίοςesp βλέπουμε το περιεχόμενο του stack ξεκινώντας από τον $eip, τον instruction pointer, ο οποίοςesp μέχρι τον $eip, τον instruction pointer, ο οποίοςebp. 63

64 Βλέπουμε τη δομή του exploit μας στη μνήμη. Παρατηρούμε ότι η μνήμη ακολουθεί το μοτίβο που δημιουργεί το script μας. Χρειαζόμαστε μια τιμή διεύθυνσης για να ανακατευθύνουμε το $eip, τον instruction pointer, ο οποίοςeip στα NOP τα οποία προηγούνται του shellcode. Μια νέα εντολή είναι απαραίτητο κατά κανόνα να ξεκινά μετά από ΝOP, δηλαδή εντολή αναμονής του επεξεργαστή. Μπορούμε να επιλέξουμε για παράδειγμα την διεύθυνση 0xffffb720. Κλείνουμε το gdb και επιστρέφουμε για να καταχωρούμε την παραπάνω διεύθυνση στο exploit μας ως νέα τιμή του $eip, τον instruction pointer, ο οποίοςeip. Η καταχώρηση πρέπει φυσικά να γίνει σε little endian αντιστρέφοντας τη σειρά των bytes. 64

65 Τώρα μπορούμε να στείλουμε απευθείας το οutput του script μας στον server. Ο server δεν έχει καταρρεύσει όπως τις προηγούμενες φορές. Αντίθετα φαίνεται απλώς να παραμένει σε λειτουργία. Αυτό συμβαίνει επειδή η επίθεση μας ήταν επιτυχής και ένα νέο shell έχει ανοίξει στην port Σε ένα νέο terminal με το προηγούμενο ανοιχτό δίνουμε εντολή στο netcat να ακούσει στο port του shell μας. 65

66 Η εντολή whoami παραπάνω έχει εκτελεστεί στο shell του Subzero VM και καταδεικνύει πως χρησιμοποιούμε το shell ως χρήστης root. Απομένει πλέον μόνο να κατευθυνθούμε στο φάκελο root για να δούμε το περιεχόμενο του αρχείου flag και έχουμε ολοκληρώσει το Challenge με επιτυχία. Πλοηγούμαστε από τον browser της Kali στο Subzero και καταχωρούμε το flag με επιτυχία. Πριν εξετάσουμε το εναλλακτικό σενάριο του συγκεκριμένου Challenge μπορούμε να ρίξουμε μια ματιά στο Scoreboard καθώς έχουμε συμπληρώσει όλα τα Challenges. Ο χρήστης test-user εμφανίζεται να έχει συμπληρώσει το 100% της προόδου. (β) Stack Overflow 64-bit Η εποπτική λειτουργία του 64-bit server είναι ταυτόσημη με αυτή του 32-bit που είδαμε στην προηγούμενη ενότητα. 66

67 Εκτελούμε sudo fuser 4003/tcp, προσδένουμε στο gdb debugger την εφαρμογή και την εκκινούμε με continue. Τα σύμβολα της C του compile είναι διαθέσιμα, αλλά δεν θα τα χρησιμοποιήσουμε στην παρούσα επίλυση ώστε να παρουσιάσουμε μια επιπρόσθετη μεθοδολογία. Φτιάχνουμε ένα fuzzer στο Kali machine. Η επιλογή του κατάλληλου μεγέθους buffer μπορεί να γίνει με επισκόπηση του κώδικα σε γλώσσα Assembly με την εντολή disassemble ή με διαδοχικές δοκιμές για να διαπιστώσουμε με τι μέγεθος εισόδου πέφτει ο server. Θα υπερπηδήσουμε, ωστόσο, αυτό το στάδιο και θα στείλουμε μια είσοδο 1100 bytes στο server και η οποία θα προκαλέσει την κατάρρευση του. 67

68 Εποπτεύουμε τους καταχωρητές μνήμης με info registers. Πέρα από την προσθήκη νέων registers και την αλλαγή των γνώριμων μας με το πρόθεμα r (CTF).register) αντί για e (CTF).extended) του x86 instruction set παρατηρούμε ότι ο $eip, τον instruction pointer, ο οποίοςrbp, ο base point έχει εγγραφεί από τον fuzzer με A(CTF).41 σε ANSI). Ωστόσο, ο $eip, τον instruction pointer, ο οποίοςrip, δηλαδή ο instruction point, δεν έχει εγγραφεί από τον fuzzer κατά την κατάρρευση όπως συνέβαινε προηγούμενα21. Μπορούμε να κατανοήσουμε το τι συμβαίνει εκτελώντας disassemble copier, τη συνάρτηση στην οποία παρουσιάζεται η κατάρρευση στο μήνυμα το οποίο προηγήθηκε. 21 Για μια παρουσίαση της x64 αρχιτεκτονικής και των διαφορών με τις παλαιότερες τεχνολογίες: MSDN Documentation, x64 Architecture, 68

69 Η κατάρρευση συμβαίνει στη διαβόητη κλήση του strcpy. Συνεπώς εδώ πρέπει να τοποθετήσουμε το breakpoint μας. Βγαίνουμε από το gdb και ανοίγουμε το νέο process του server μετά την κατάρρευση του προηγούμενου με sudo fuser. Προσθέτουμε το breakpoint με την εντολή b * copier+38 και εκκινούμε ξανά με continue. Στέλνουμε ξανά το output του fuzzer από το Kali machine και ενεργοποιείται το breakpoint. Με x $eip, τον instruction pointer, ο οποίοςrsp και x $eip, τον instruction pointer, ο οποίοςrbp εποπτεύουμε τον stack και base pointer αντίστοιχα. Υπολογίζουμε ότι το μέγεθος του stack frame είναι 0x410 bytes. Εκτελούμε x/270x $eip, τον instruction pointer, ο οποίοςrsp για να δούμε το περιεχόμενο του stack frame. 69

70 Στη γραμμή που αντιστοιχεί φαίνεται η διεύθυνση 0x7fffffffc750 η οποία αντιστοιχεί στον base pointer και ο οποίος καταλαμβάνει τις δύο πρώτες τιμές των 32-bit. Ακολουθούν τα 64 bits τα οποία περιέχουν την τιμή επιστροφή. Όταν η συνάρτηση επιστρέφει, η τιμή 70

71 επιστροφής τοποθετείται στον ιnstruction pointer ώστε το πρόγραμμα να συνεχίσει την εκτέλεση της συνάρτησης που έχει κάνει την αρχική κλήση. Το τι συμβαίνει γίνεται περισσότερο κατανοητό αν εκτελέσουμε την εντολή strcpy και δούμε ξανά το stack frame. Εκτελούμε nexti και επαναλαμβάνουμε x/270x $eip, τον instruction pointer, ο οποίοςrsp. 71

72 Η τιμή επιστροφής έχει 0x εγγραφεί από τον fuzzer και περιέχει την τιμή Εκτελούμε continue και x/3i $eip, τον instruction pointer, ο οποίοςrip. Ο server καταρρέει εκτελώντας την τελευταία οδηγία στη συνάρτηση copier(ctf).) retq. 72

73 Ο ρόλος της retq είναι ακριβώς η μεταφορά (CTF).pop) της τιμής επιστροφής του stack και η τοποθέτηση του στο $eip, τον instruction pointer, ο οποίοςrip. Σε ένα 32-bit stack overflow, η τιμή 0x θα μεταφέροντας στον $eip, τον instruction pointer, ο οποίοςeip και ο server θα κατάρρεε στην επόμενη οδηγία, γιατί η διεύθυνση του δεν θα ήταν διαθέσιμη για το πρόγραμμα. Εντούτοις σε ένα σύστημα 64-bit ο επεξεργαστής δεν μπορεί να τοποθετήσει μια τιμή όπως αυτή στο $eip, τον instruction pointer, ο οποίοςrip. Αυτό συμβαίνει γιατί δεν επιτρέπει όλες τις πιθανές διευθύνσεις. Οι τρέχουσες προδιαγραφές από την AMD για ένα 64-bit επεξεργαστή χρησιμοποιεί μόνο 48 bits διευθύνσεων. Ως εκ τούτου υπάρχουν δύο περιοχές διευθύνσεων. Μια παραστατική επεξήγηση φαίνεται στο σχήμα από την Intel22. FFFFFFFF FFFFFFFF [Υψηλό Ήμισυ Κανονικών Διευθύνσεων] FFFF [Μη χρησιμοποιούμενη περιοχή Μη νόμιμες διευθύνσεις ] 00007FFF FFFFFFFF [Χαμηλό Ήμισυ Κανονικών Διευθύνσεων] bit διευθυνσιοδότηση (CTF).Πηγή: Intel Software - προσαρμογή του γράφοντος) Συνεπώς δεν μπορούμε να χρησιμοποιήσουμε απλώς μια σειρά από Α. Είναι απαραίτητο να τοποθετήσουμε μια επιτρεπόμενη τιμή στον instruction pointer. Για να επιτευχθεί αυτός ο στόχος θα φτιάξουμε ένα script με ένα μοτίβο ανίχνευσης με αριθμούς όπως εργαστήκαμε και στο 32-bit παράδειγμα

74 Μετατρέπουμε το αρχείο σε εκτελέσιμο και αποθηκεύουμε την έξοδο του σε ένα αρχείο. Ελέγχουμε ότι το μέγεθος του είναι το επιθυμητό, δηλαδή 1101 bytes. Επανεισάγουμε τον server στο gdb, επιλέγουμε continue και στη συνέχεια στέλνουμε από το Kali machine το exploit στον server. Ο server καταρρέει ξανά. Για να ελέγξουμε το stack frame μετά την κατάρρευση θα πρέπει να χρησιμοποιήσουμε την διεύθυνση του $eip, τον instruction pointer, ο οποίοςrsp η οποία μας είναι γνωστή. Συγκεκριμένα εκτελούμε x/270x 0x7fffffffc

75 75

76 Βλέπουμε στην τιμή επιστροφής τις τιμές 0x x Κατανοούμε ότι πρόκειται για οκτώ ASCII χαρακτήρες σε δύο 32-bit λέξεις γραμμένους σε little endian. Οι τιμές τους είναι Συνεπώς μπορούμε να υπολογίσουμε ότι της τιμή επιστροφής προηγούνται 1000 χαρακτήρες A και 16x2=32 αριθμοί, δηλαδή 1032 χαρακτήρες. Διαμορφώνουμε κατάλληλα ένα exploit script για να στοχεύσουμε απευθείας στην τιμή επιστροφής. Στόχος είναι η καταχώρηση εντός του του string ABCDEFGH. Εκκινούμε ξανά το gdb σύμφωνα με τη γνωστή μεθοδολογία και τοποθετούμε εκ νέου το breakpoint στο copier+44 και εξετάζουμε το stack frame. 76

77 Η στόχευση της τιμής επιστροφής έχει γίνει με επιτυχία. Με χρήση του msfvenom από το metasploit framework παράγουμε το payload. Χρειαζόμαστε ένα bindshell μέσω tcp για 64bit σύστημα. Εκτελούμε στο Kali machine: msfvenom -p linux/x64/shell_bind_tcp -b '\x00' f python. 77

78 Εισάγουμε το payload στο attack exploit και τοποθετούμε στη μεταβλητή rip μια διεύθυνση μνήμης που αντιστοιχεί στις διευθύνσεις των NOP του stack frame. Επιλέγουμε τη διεύθυνση 0x7fffffffc360 και την γράφουμε σε 64 bit little endian. Εξάγουμε το exploit σε ένα αρχείο και το στέλνουμε ως είσοδο στο server χωρίς πια να μας απασχολεί ο debugger. Σε ένα νέο terminal τοποθετούμε το netcat να ακούει στην port 4444 και το bindshell λειτουργεί! 78

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

Ασφάλεια Πληροφοριακών Συστημάτων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ασφάλεια Πληροφοριακών Συστημάτων Ενότητα 9: Code injections Θεματική Ενότητα: Επιθέσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

Διαβάστε περισσότερα

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

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών Φορολογική Βιβλιοθήκη Θανάσης Φώτης Προγραμματιστής Εφαρμογών Το έργο Η φορολογική βιβλιοθήκη πρόκειται για ένα έργο που φιλοδοξεί να αποτελέσει σημαντικό βοήθημα για τον επαγγελματία λογιστή και όχι μόνο.

Διαβάστε περισσότερα

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

Εισαγωγή στο Ethical Hacking. Καλώς Ήρθατε!! Εισαγωγή στο Ethical Hacking Καλώς Ήρθατε!! Θεοφάνης Κασίμης CEO of Audax Cybersecurity White Hat hacker OSCP Certification Ομιλητής σε συνέδρια & εκδηλώσεις PWB Offensive Security Twitter : @_thekondor_

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012 ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ Τρίτη, 7 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου Κων/νος Ποτιέ 21/ Χανιά, ΤΚ 73100 AΦΜ: 065439343 Τηλ./Fax:

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

Διαβάστε περισσότερα

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

Ασφάλεια, Διαθεσιμότητα και Ταχύτητα για τις Web Εφαρμογές Ασφάλεια, Διαθεσιμότητα και Ταχύτητα για τις Web Εφαρμογές Barracuda Web Application Firewall Καλοχριστιανάκης Αντώνης Διευθυντής Πωλήσεων Digital SIMA Ανατομία Web επίθεσης Οι Web επιθέσεις δε διαφέρουν

Διαβάστε περισσότερα

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ 1 Λειτουργικές απαιτήσεις Το σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών στοχεύει στο να επιτρέπει την πλήρως ηλεκτρονική υποβολή αιτήσεων από υποψήφιους

Διαβάστε περισσότερα

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

Βασικές Έννοιες Web Εφαρμογών ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Τεχνολογίες και Εφαρμογές Διαδικτύου Βασικές Έννοιες Web Εφαρμογών Κατερίνα Πραματάρη Τεχνολογίες και Εφαρμογές Διαδικτύου Περιεχόμενα

Διαβάστε περισσότερα

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΚΟΤΣΟΓΙΑΝΝΙΔΗΣ ΛΑΖΑΡΟΣ Επιβλέπων καθηγητής Σφέτσος Παναγιώτης ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ως Ηλεκτρονικό Εμπόριο ή

Διαβάστε περισσότερα

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

Τείχος Προστασίας Εφαρμογών Διαδικτύου Τείχος Προστασίας Εφαρμογών Διαδικτύου Web Application Firewalls Ιωάννης Στάης {istais@census-labs.com} Γιατί είναι σημαντική η προστασία των εφαρμογών ιστού; Πάνω από 70% όλων των επιθέσεων συμβαίνουν

Διαβάστε περισσότερα

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής. Βασιλάκης Βασίλειος Τζανάκης Δημήτριος

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής. Βασιλάκης Βασίλειος Τζανάκης Δημήτριος Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής Βασιλάκης Βασίλειος Τζανάκης Δημήτριος Εισαγωγή Σκοπός Να παρουσιαστούν προτάσεις αξιοποίησης

Διαβάστε περισσότερα

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

Διαβάστε περισσότερα

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

Διαβάστε περισσότερα

Αξιοποίηση Εικονικών Μηχανών στην διδασκαλία εξειδικευμένων εκπαιδευτικών αντικειμένων

Αξιοποίηση Εικονικών Μηχανών στην διδασκαλία εξειδικευμένων εκπαιδευτικών αντικειμένων Αξιοποίηση Εικονικών Μηχανών στην διδασκαλία εξειδικευμένων εκπαιδευτικών αντικειμένων Γιώργος Αυγέρης MSc, Καθηγητής Πληροφορικής Β θμιας Εκπσης 2010 VMware Inc. All rights reserved Overview Η ανάγκη

Διαβάστε περισσότερα

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

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Τι είναι το Wordpress: To Wordpress είναι ένα δωρεάν ανοικτού κώδικα (open source) λογισμικό (εφαρμογή), με το οποίο μπορεί κάποιος να δημιουργεί

Διαβάστε περισσότερα

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637 8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637 Υλοποιηση νεων τεχνολογιων (Web GIS, Application Servers) για τη δυναμικη προσβαση μεσω διαδικτυου στη βαση δεδομενων του Ελληνικου Εθνικου Κεντρου Ωκεανογραφικων

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1 Ενότητα 2 Πηγές Λογισμικού Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1 Μαθησιακοί στόχοι Εξοικείωση με εναλλακτικές πηγές λογισμικού Κατανόηση του τρόπου αξιολόγησης έτοιμου λογισμικού

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Ηλεκτρονικό Εμπόριο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Ηλεκτρονικό Εμπόριο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Ηλεκτρονικό Εμπόριο Αναπτύσσοντας ένα Ηλεκτρονικό Κατάστημα Ηλεκτρονικό Εμπόριο Λειτουργικότητα Εφαρμογής Κατάλογος προϊόντων Καλάθι

Διαβάστε περισσότερα

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ Αριθμ. Πρωτ.: 129334/2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΤΟΥ ΑΡΙΣΤΟΤΕΛΕΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΑΚΟΙΝΩΝΕΙ Τη διενέργεια διαδικασίας ΑΠΕΥΘΕΙΑΣ

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Βασικές Έννοιες Διαδικτύου Wordpress & Κοινωνικά Δίκτυα (Part 1) Σταύρος Καουκάκης Ευτύχιος Βαβουράκης 1 Περιεχόμενα Γενικές Έννοιες Διαδικτύου Η αρχιτεκτονική του Web Συστήματα Διαχείρισης

Διαβάστε περισσότερα

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress Σταύρος Καουκάκης Χάρης Παπαγιαννάκης Ευτύχης Βαβουράκης 1 Περιεχόμενα Γενικές Έννοιες Διαδικτύου Η αρχιτεκτονική του Web Συστήματα

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΤΟ

Διαβάστε περισσότερα

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

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

Διαβάστε περισσότερα

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής Εργαλεία και τεχνικές από την πλευρά του πελάτη Java Applet

Διαβάστε περισσότερα

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

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

Διαβάστε περισσότερα

Σύστημα Διαχείρισης Περιεχομένου

Σύστημα Διαχείρισης Περιεχομένου Σύστημα Διαχείρισης Περιεχομένου Τι είναι ένα CMS Σύστημα διαχείρισης περιεχομένου - (Content Management System) Οργάνωση, ταξινόμηση και αρχειοθέτηση πληροφορίας Δημιουργία της υποδομής πάνω στην οποία

Διαβάστε περισσότερα

ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ Τμήμα Μηχανικών Η/Υ & Πληροφορικής Computer Engineering & Informatics Department (CEID) www.ceid.upatras.gr ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ Ακαδημαϊκό Έτος 2017-18 (Τελευταία Ανανέωση: 20/11/2017) Ερευνητική Ομάδα

Διαβάστε περισσότερα

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

ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ 2 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 351 ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ Τζουμάκας Βασίλης Καθηγητής Πληροφορικής στο Παπαστράτειο Γυμνάσιο Αγρινίου vtzoum@sch.gr

Διαβάστε περισσότερα

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

ΟΛΟΚΛΗΡΩΜΕΝΕΣ ΥΠΗΡΕΣΙΕΣ ΕΝΙΣΧΥΣΗΣ ΨΗΦΙΑΚΗΣ ΕΜΠΙΣΤΟΣΥΝΗΣ ΟΛΟΚΛΗΡΩΜΕΝΕΣ ΥΠΗΡΕΣΙΕΣ ΕΝΙΣΧΥΣΗΣ ΨΗΦΙΑΚΗΣ ΕΜΠΙΣΤΟΣΥΝΗΣ ΥΠΟΕΡΓΟ 2 ΕΝΕΡΓΕΙΑ Β : «Έλεγχος Ασφάλειας Υπολογιστών που χρησιμοποιούνται στα πλαίσια του «ΝΕΟΥ ΣΧΟΛΕΙΟΥ» (Διανομή Ασφάλειας) ΥΠΟΕΡΓΟ 2 ΥΠΗΡΕΣΙΕΣ

Διαβάστε περισσότερα

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP Εισαγωγή... 1 Σε Ποιους Απευθύνεται το Βιβλίο... 1 Η Οργάνωση του Βιβλίου... 2 Ο Πηγαίος Κώδικας του Βιβλίου... 3 Συμβάσεις που Χρησιμοποιούνται σε Αυτό το Βιβλίο... 3 Μέρος Ι: Εγκατάσταση και ιαμόρφωση

Διαβάστε περισσότερα

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ > ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΡΙΣΜΟΣ: Το Cloud Computing είναι η ονοµασία της τεχνολογίας η οποία επιτρέπει στους χρήστες να

Διαβάστε περισσότερα

XAMPP Apache MySQL PHP javascript xampp

XAMPP Apache MySQL PHP javascript xampp XAMPP Το xampp είναι ένα δωρεάν πρόγραμμα με το οποίο μπορούμε να κάνουμε εγκατάσταση τον Apache, τη MySQL και την PHP. Apache. Ο Apache είναι ένας Web Server. Είναι δηλαδή πρόγραμμα το οποίο τρέχει μόνιμα

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Τεχνολογίες και Εφαρμογές Διαδικτύου

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Τεχνολογίες και Εφαρμογές Διαδικτύου ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Τεχνολογίες και Εφαρμογές Διαδικτύου Τυπικά Χαρακτηριστικά Εφαρμογών Διαδικτύου Κατερίνα Πραματάρη Τεχνολογίες και Εφαρμογές Διαδικτύου

Διαβάστε περισσότερα

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

Διαβάστε περισσότερα

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

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

Διαβάστε περισσότερα

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

Διαβάστε περισσότερα

Αναφορά εργασιών για το τρίμηνο Μάρτιος 2013 Μάιος 2013 Όνομα : Παπαχριστόπουλος Λεωνίδας

Αναφορά εργασιών για το τρίμηνο Μάρτιος 2013 Μάιος 2013 Όνομα : Παπαχριστόπουλος Λεωνίδας Στο πλαίσιο της πράξης «Αναβάθμιση και Εμπλουτισμός των Ψηφιακών Υπηρεσιών της Βιβλιοθήκης του Παντείου Πανεπιστημίου». Η Πράξη συγχρηματοδοτείται από το Ευρωπαϊκό Ταμείο Περιφερειακής Ανάπτυξης (ΕΤΠΑ).

Διαβάστε περισσότερα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

Διαβάστε περισσότερα

Επιχειρησιακά Πληροφοριακά Συστήματα. Site: www.aggelopoulos.tk e-mail: ioannis.aggelopoulos@gmail.com. Στόχος Σκοπός μαθήματος

Επιχειρησιακά Πληροφοριακά Συστήματα. Site: www.aggelopoulos.tk e-mail: ioannis.aggelopoulos@gmail.com. Στόχος Σκοπός μαθήματος Επιχειρησιακά Πληροφοριακά Συστήματα Διδάσκων: Αγγελόπουλος Γιάννης Δευτέρα 3-5 Τρίτη 4-6 Εργαστήριο Α Site: www.aggelopoulos.tk e-mail: ioannis.aggelopoulos@gmail.com 1 Στόχος Σκοπός μαθήματος Σκοπός:

Διαβάστε περισσότερα

Γενικός Κανονισμός για την Προστασία Δεδομένων και Microsoft 365: Απλοποιήστε την πορεία σας προς τη συμμόρφωση

Γενικός Κανονισμός για την Προστασία Δεδομένων και Microsoft 365: Απλοποιήστε την πορεία σας προς τη συμμόρφωση Γενικός Κανονισμός για την Προστασία Δεδομένων και Microsoft 365: Απλοποιήστε την πορεία σας προς τη συμμόρφωση Γενικός Κανονισμός για την Προστασία Δεδομένων: Μια επισκόπηση Ο Γενικός Κανονισμός για την

Διαβάστε περισσότερα

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΘΕΟΔΟΣΙΟΥ ΝΙΚΗ Α.Μ. 103/04 ΠΑΠΑΠΕΤΡΟΥ ΦΩΤΕΙΝΗ Α.Μ. 134/04 Εξεταστική Επιτροπή Επιβλέπουσα Καθηγήτρια : Σατρατζέμη Μαρία, Καθηγήτρια Μέλη : Ευαγγελίδης

Διαβάστε περισσότερα

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή Τι είναι ένα CMS CMS ή Σύστημα Διαχείρισης Περιεχομένου (Content Management System) ονομάζουμε ένα λογισμικό που μας βοηθά να ελέγχουμε και να διαχειριζόμαστε έναν ιστότοπο δημόσιας ή περιορισμένης πρόσβασης.

Διαβάστε περισσότερα

16REQ

16REQ Πληροφορίες: Βλάχος Απόστολος Τηλέφωνο: 20 33 77 85 Τηλεομοιοτυπία: 20 33 77 73 Ηλ. Ταχυδρομείο: a.vlachos@cmc.gov.gr Ταχ. Διεύθυνση: Κολοκοτρώνη και Σταδίου Ταχ. Κώδικας: 05 62 ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΜΗΤΡΩΟ Αθήνα,

Διαβάστε περισσότερα

Μονάδα Διασφάλισης Ποιότητας. ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας. Κωδικός Πράξης ΟΠΣ: Επιχειρησιακό Πρόγραμμα:

Μονάδα Διασφάλισης Ποιότητας. ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας. Κωδικός Πράξης ΟΠΣ: Επιχειρησιακό Πρόγραμμα: Μονάδα Διασφάλισης Ποιότητας Πανεπιστημίου Δυτικής Μακεδονίας Κωδικός Πράξης ΟΠΣ: 335662 Τίτλος Πράξης: ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας Επιχειρησιακό Πρόγραμμα: Άξονας Προτεραιότητας: Στοιχεία επιστημονικά

Διαβάστε περισσότερα

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

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΕΓΚΑΤΑΣΤΑΣΗ & ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ INTERNET INFORMATION SERVER (IIS) ΓΙΑ ΥΛΟΠΟΙΗΣΗ ΥΠΗΡΕΣΙΩΝ ΔΙΑΔΙΚΤΥΟΥ (WEB SERVICES) ΣΠΟΥΔΑΣΤΡΙΑ:Μπάρδα Μαρία ΕΙΣΗΓΗΤΗΣ: Τσιαντής

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 2. Το περιβάλλον του παγκόσμιου Ιστού Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 Πλεονεκτήματα παγκόσμιου Ιστού Εξυπηρετητής Ιστού & Ιστοσελίδες Κύριες

Διαβάστε περισσότερα

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης Bread Online Σχεδιασμός και μετατροπή μιας απλής οικιακής συσκευής σε επαναπρογραμματιζόμενη συσκευή IP Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών

Διαβάστε περισσότερα

A J A X AJAX Γιάννης Αρβανιτάκης

A J A X AJAX Γιάννης Αρβανιτάκης A J A X AJAX Γιάννης Αρβανιτάκης 04/07/08 AJAX Στην πράξη 2 Autocomplete AJAX Στην πράξη 3 Webmail (google, yahoo) AJAX Στην πράξη 4 Flickr AJAX Στην πράξη 5 Google Docs AJAX Στην πράξη 6 Google maps http://maps.google.com/

Διαβάστε περισσότερα

Social Network : Programming on FACEBOOK

Social Network : Programming on FACEBOOK Social Network : Programming on FACEBOOK Συντελεστές: Παύλος Τούλουπος Ευθυμία Παπαδοπούλου Ξάνθη Μάρκου Κοινωνικά Δίκτυα Κοινωνικό δίκτυο προέρχεται από την ψυχολογία αφορά μια κοινωνική δομή ατόμων τα

Διαβάστε περισσότερα

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

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

Διαβάστε περισσότερα

Server Virtualization με εργαλεία ΕΛ/ΛΑΚ. ΛΑΚ Δήμος Ρεθύμνης. www.rethymno.gr

Server Virtualization με εργαλεία ΕΛ/ΛΑΚ. ΛΑΚ Δήμος Ρεθύμνης. www.rethymno.gr Server Virtualization με εργαλεία ΕΛ/ΛΑΚ ΛΑΚ Μαθηνός Παναγιώτης Λ. Κουντουριώτη 80, τ.κ. 74100, Ρέθυμνο Τηλ: 28313 41310 e mail: mathinos@rethymno.gr www.linkedin.com/in/pmathinos Πληροφορική Μηχανοργάνωση

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ Σκοπός του κεφαλαίου είναι η εισαγωγή της έννοιας της διάταξης λογισμικού, ως αρχιτεκτονικής δόμησης των υπολογιστικών πόρων και της ανάθεσης σε αυτούς συστατικών

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ασφάλεια Πληροφοριακών Συστημάτων Ενότητα 11: Δικτυακές απειλές - συστήματα προστασίας Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό Το περιεχόμενο του

Διαβάστε περισσότερα

ΑΡΧΕς ΛΕΙΤΟΥΡΓΙΑς CMS (Content Management System) ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥς ςε ΜΙΚΡΟΜΕςΑΙΕς ΕΠΙΧΕΙΡΗςΕΙς

ΑΡΧΕς ΛΕΙΤΟΥΡΓΙΑς CMS (Content Management System) ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥς ςε ΜΙΚΡΟΜΕςΑΙΕς ΕΠΙΧΕΙΡΗςΕΙς ΑΡΧΕς ΛΕΙΤΟΥΡΓΙΑς CMS (Content Management System) ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥς ςε ΜΙΚΡΟΜΕςΑΙΕς ΕΠΙΧΕΙΡΗςΕΙς Χρήστος Γεωργιάδης Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Περιεχόμενα 1. Η εικόνα του διαδικτύου

Διαβάστε περισσότερα

Στοιχεία παρουσίασης. Εισαγωγή Θεωρητικό υπόβαθρο Υλοποίηση λογισμικού μέρους συστήματος Συμπεράσματα Μελλοντικές Επεκτάσεις

Στοιχεία παρουσίασης. Εισαγωγή Θεωρητικό υπόβαθρο Υλοποίηση λογισμικού μέρους συστήματος Συμπεράσματα Μελλοντικές Επεκτάσεις ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Σχεδιασμός Πληροφοριακού Συστήματος Καταγραφής μετρήσεων κοινής ωφελείας Υποβοηθούμενο από οπτική αναγνώριση μέσω Κινητού τηλεφώνου Μπούντας Δημήτρης Επιβλέπων Καθηγητής : Δασυγένης

Διαβάστε περισσότερα

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425 Cloud Computing with Google and Microsoft Despoina Trikomitou Andreas Diavastos Class: EPL425 Σχεδιάγραμμα Εισαγωγή Τεχνολογίες Cloud Computing Περιγραφή Εργασίας Επιτεύγματα Εργασίας Συμπεράσματα Cloud

Διαβάστε περισσότερα

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Το Oracle Analytics Cloud αποτελεί ένα ολοκληρωμένο σύνολο δυνατοτήτων που περιλαμβάνει έτοιμο περιεχόμενο, εξειδικευμένα

Διαβάστε περισσότερα

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

Διαβάστε περισσότερα

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε! Θέλετε να μάθετε πως μπορείτε να έχετε πρόσβαση στις 5250 οθόνες μέσω browser, χωρίς αλλαγή στις υπάρχουσες εφαρμογές και χωρίς εγκατάσταση στον client? Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

Διαβάστε περισσότερα

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

ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ Θεσσαλονίκη, Οκτώβριος 2016 Χριστίνα Δηµητριάδου 1 Διπλωµατική εργασία: ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ Φοιτήτρια: Χριστίνα Δηµητριάδου Επιβλέπων Καθηγητής: Νικόλαος

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας) Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

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

Πρακτικά όλα τα προβλήματα ασφαλείας οφείλονται σε λάθη στον κώδικα 1 2 3 Το λογισμικό αποτελεί το τσιμέντο της σύγχρονης κοινωνίας. Τα πάντα γύρω μας ελέγχονται από εφαρμογές, συνεπώς ο κώδικας από τον οποίο αποτελούνται είναι ένα κρίσιμο στοιχείο για την ίδια μας τη

Διαβάστε περισσότερα

Στρατηγική Επιλογή. Το xline ERP - Λογιστικές Εφαρμογές αποτελείται από:

Στρατηγική Επιλογή. Το xline ERP - Λογιστικές Εφαρμογές αποτελείται από: Στρατηγική Επιλογή Οι απαιτήσεις του συνεχώς μεταβαλλόμενου οικονομικού - φοροτεχνικού περιβάλλοντος σε συνδυασμό με τις αυξανόμενες ανάγκες πληροφόρησης των επιχειρήσεων, έχουν αυξήσει ραγδαία τον όγκο

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα

Διαβάστε περισσότερα

AN IMPLEMENTATION OF THE CLOUD BASED SCHOOL

AN IMPLEMENTATION OF THE CLOUD BASED SCHOOL AN IMPLEMENTATION OF THE CLOUD BASED SCHOOL V.S. Belesiotis K. Alexopoulos Selected article for the European Journal of Engineering Research and Science Τεχνολογικές Προκλήσεις στην Εκπαίδευση Γρήγοροι

Διαβάστε περισσότερα

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται special report τoυ Γιώργου Φετοκάκη / gfetokakis@boussias.com Jobs scheduling Η χρυσή τοµή της αυτοµατοποίησης Μια λύση job scheduling πρέπει να είναι αρκετά περιεκτική. Πρέπει να υποστηρίζει την ενσωµάτωση

Διαβάστε περισσότερα

Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site

Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site Θεσσαλονίκη 6/12/2001 Βασίλης Φούρκας, ΕΜΧΑ Η δηµιουργία και λειτουργία ενός

Διαβάστε περισσότερα

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

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

Διαβάστε περισσότερα

Η χρήση του MOODLE από την οπτική γωνία του ιαχειριστή

Η χρήση του MOODLE από την οπτική γωνία του ιαχειριστή Ανοικτή και Εξ Αποστάσεως Εκπαίδευση Χρησιµοποιώντας το Εκπαιδευτικό Περιβάλλον του MOODLE. Open and Distance Learning Using MOODLE Learning Environment Αθανάσιος Ι. Μάργαρης, Ευθύµιος. Κότσιαλος Πανεπιστήµιο

Διαβάστε περισσότερα

24η Πανελλήνια Συνάντηση Χρηστών ArcGIS. 20 Μαΐου 2016, Crowne Plaza Hotel, Αθήνα ΕΚΚΕ / ΕΛΣΤΑΤ. Χαρτογραφικό Πανόραμα Απογραφικών Δεδομένων

24η Πανελλήνια Συνάντηση Χρηστών ArcGIS. 20 Μαΐου 2016, Crowne Plaza Hotel, Αθήνα ΕΚΚΕ / ΕΛΣΤΑΤ. Χαρτογραφικό Πανόραμα Απογραφικών Δεδομένων 1 24η Πανελλήνια Συνάντηση Χρηστών ArcGIS 20 Μαΐου 2016, Crowne Plaza Hotel, Αθήνα ΕΚΚΕ / ΕΛΣΤΑΤ Χαρτογραφικό Πανόραμα Απογραφικών Δεδομένων 1991-2011 Εθνικό Kέντρο Κoινωνικών Ερευνών 2 Ελληνική Στατιστική

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

Διπλωματική Εργασία. Σχεδίαση και ανάπτυξη ιστοχώρου για την αξιολόγηση σεμιναρίων και μαθημάτων

Διπλωματική Εργασία. Σχεδίαση και ανάπτυξη ιστοχώρου για την αξιολόγηση σεμιναρίων και μαθημάτων Διπλωματική Εργασία Σχεδίαση και ανάπτυξη ιστοχώρου για την αξιολόγηση σεμιναρίων και μαθημάτων Κοκκαλιάρης Δημήτριος Επιβλέπων Καθηγητής: Δρ. Μηνάς Δασυγένης Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών

Διαβάστε περισσότερα

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

ΑΚΑΔΗΜΙΑ ΠΛΑΤΩΝΟΣ ΑΝΑΠΤΥΞΗ ΤΗΣ ΓΝΩΣΗΣ ΚΑΙΚΑΙΝΟΤΟΜΩΝ ΙΔΕΩΝ ΑΚΑΔΗΜΙΑ ΠΛΑΤΩΝΟΣ ΑΝΑΠΤΥΞΗ ΤΗΣ ΓΝΩΣΗΣ ΚΑΙΚΑΙΝΟΤΟΜΩΝ ΙΔΕΩΝ Υποέργο6 «Τροφεία μεταπτυχιακών φοιτητών, θεμελίωση και λειτουργία Αποθετηρίου και Επιστημονικοτεχνική Υποστήριξη του Έργου» Δράση 2«Θεμελίωση,

Διαβάστε περισσότερα

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης Μικρομεσαίες Επιχειρήσεις και Καινοτομία Ηλεκτρονικό Εμπόριο H δυνατότητα των καταναλωτών και των εμπορικών καταστημάτων να κάνουν

Διαβάστε περισσότερα

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

Διαβάστε περισσότερα

COSMOS CLOUD CMS. Η σύγχρονη επικοινωνία με τον COSMOS σας

COSMOS CLOUD CMS. Η σύγχρονη επικοινωνία με τον COSMOS σας COSMOS CLOUD CMS Η σύγχρονη επικοινωνία με τον COSMOS σας Το Σύστημα Διαχείρισης Επαφών COSMOS CLOUD CMS ( Contacts Management System ) είναι μια καινοτόμα και εύκολη στη χρήση της εφαρμογή που ανταποκρίνεται

Διαβάστε περισσότερα

COSMOS CLOUD CMS ΤΟ COSMOS CLOUD CMS ΔΕΝ ΕΙΝΑΙ ΜΙΑ ΑΠΛΗ ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΚΟΥ ΓΡΑΦΕΙΟΥ.

COSMOS CLOUD CMS ΤΟ COSMOS CLOUD CMS ΔΕΝ ΕΙΝΑΙ ΜΙΑ ΑΠΛΗ ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΚΟΥ ΓΡΑΦΕΙΟΥ. COSMOS CLOUD CMS Η σύγχρονη επικοινωνία με τον COSMOS σας Το Σύστημα Διαχείρισης Επαφών COSMOS CLOUD CMS ( Contacts Management System ) είναι μια καινοτόμα και εύκολη στη χρήση της εφαρμογή που ανταποκρίνεται

Διαβάστε περισσότερα

Ολοκληρωμένο Πληροφοριακό Σύστημα Εξυπηρέτησης Πολιτών και Παρόχων

Ολοκληρωμένο Πληροφοριακό Σύστημα Εξυπηρέτησης Πολιτών και Παρόχων Ολοκληρωμένο Πληροφοριακό Σύστημα Εξυπηρέτησης Πολιτών και Παρόχων Γιάννης Γιαννάκος Ηλεκτρονικός Μηχανικός Ηλεκτρονικών Υπολογιστών/ Α.Δ.Α.Ε. Ηράκλειο,1Δεκεμβρίου 2008 ΟΛΟΚΛΗΡΩΜΕΝΟ ΠΛΗΡΟΦΟΡΙΑΚΟ ΣΥΣΤΗΜΑ

Διαβάστε περισσότερα

Tales & Trails. apps4thessaloniki 2016

Tales & Trails. apps4thessaloniki 2016 Tales & Trails apps4thessaloniki 2016 the digiwalkers team Πανισκάκη Κική, πτυχιούχος τμήματος Πληροφορικής ΑΠΘ, σχεδίαση & ανάπτυξη εφαρμογής Βακάλη Αθηνά, Kαθηγήτρια Πληροφορικής στο Αριστοτέλειο Πανεπιστήμιο

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

Διαβάστε περισσότερα

ΘΕΜΑ: Πρόσκληση εκδήλωσης ενδιαφέροντος για την παροχή υπηρεσιών με τίτλο «Σχεδιασμός λογοτύπου και σχεδιασμός και κατασκευή δυναμικής ιστοσελίδας»

ΘΕΜΑ: Πρόσκληση εκδήλωσης ενδιαφέροντος για την παροχή υπηρεσιών με τίτλο «Σχεδιασμός λογοτύπου και σχεδιασμός και κατασκευή δυναμικής ιστοσελίδας» ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΔΗΜΟΣΙΑ ΚΕΝΤΡΙΚΗ ΒΙΒΛΙΟΘΗΚΗ ΚΟΝΙΤΣΑΣ Ταχ. Δ/νση : Κόνιτσα, 44100 Πληροφορίες: Περσεφόνη Ντούλια Τηλ: 26550-22298, 29311 FAX: 26550-22298

Διαβάστε περισσότερα

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα