Προγραμματισμός Διαδικτύου

Σχετικά έγγραφα
Προγραμματισμός Διαδικτύου

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Ελένη Σακέρογλου Επιβλέπων Καθηγητής: Δρ. Μηνάς Δασυγένης

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

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

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

Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου

Η διεύθυνση της σελίδας είναι: Ποιά προσωπικά δεδομένα συλλέγουμε και γιατί

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

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

Προγραμματισμός Διαδικτύου

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

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

Τίτλος Πακέτου Certified Computer Expert-ACTA

Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence

Περιεχόμενα. Visio / White paper 1

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

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

Ασφάλεια Υπολογιστών Και Δικτύων. Προσομοίωση επίθεσης σε ευπαθές σε SQL Injection σύστημα και απόκτηση κονσόλας διαχειριστή

Περιεχόμενα. Πρόλογος... xiii

Αρχιτεκτονική Υπολογιστών

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

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Φόρμα Επικοινωνίας ΠΡΟΟΙΜΙΟ

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

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης

Δήλωση περί Απορρήτου Προσωπικών Δεδομένων της επιχείρησης PRAGMASSI Μ.Ι.Κ.Ε. (Privacy Notice)

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

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

Περιεχόµενα. 1 Tο βιβλίο "µε µια µατιά" Εισαγωγή στη Microsoft Access Γνωριµία µε τις βάσεις δεδοµένων της Access...

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

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

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7

Επεξεργασία Κειμένου. Προχωρημένο Επίπεδο. Εξεταστέα Ύλη 3.0. Έκδοση 1.0

XAMPP Apache MySQL PHP javascript xampp

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

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

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

Ανοικτό Ψηφιακό Μάθημα για την κατάρτιση του προσωπικού υποστήριξης ανάπτυξης ψηφιακών μαθημάτων

Εισαγωγή στις Βάσεις Δεδομζνων II

Αρχιτεκτονική Υπολογιστών

Πολυτεχνείο Κρήτης Διεύθυνση Τηλεπικοινωνιών, Δικτύων και Υπολογιστικής Υποδομής Τμήμα Εκπαιδευτικής Υπολογιστικής Υποδομής. Υπηρεσία Ερωτηματολογίου

Χρήση του Office 365 σε τηλέφωνο Android

Σενάριο Χρήσης myschool

Κεφάλαιο 1: Έναρξη...3

Διαχείριση Επιλογών Διαμόρφωσης

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

ΟΝΟΜΑ : ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΩΝΥΜΟ : ΚΟΚΟΛΟΓΟΣ Α.Μ. : Ε11060 ΕΞΑΜΗΝΟ : ΕΠΙ ΠΤΥΧΙΟ ΤΜΗΜΑ : ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ : ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΕΦΑΡΜΟΓΗ

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

Ενότητα. Επεξεργασία πινάκων

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ. Κεφάλαιο 5. Αλληλεπιδραστικές ιστοσελίδες (χρήση ετικέτας <FORM> και η τεχνική CGI)

«Οδηγίες χρήσης εφαρμογής Ενιαίου Συστήματος Πληρωμών»

Έκδοση 4.0 Φεβρουάριος P Xerox App Gallery Οδηγός χρήσης

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

Αναζήτηση στον Ιστό. Πληκτρολόγηση του URL: στο πλαίσιο αναζήτησης του Mozilla Firefox. Enter ή κλικ στο Αναζήτηση

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

Διαχείριση περιεχομένου πύλης ηλεκτρονικών υπηρεσιών v10 v.1.0. [User manual]

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

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

6 Εισαγωγή στο Wordpress 3.x

Browsers. Λειτουργικότητα και Παραμετροποίηση

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Πολιτική WHOIS Ονομάτων Τομέα.eu

Η χρήση διαδικτυακών εφαρμογών: εργαλείο για τον σχεδιασμό και την αξιολόγηση των προγραμμάτων Περιβαλλοντικής Εκπαίδευσης

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

Πολιτική απορρήτου. Το EURid είναι υπεύθυνο για την επεξεργασία των προσωπικών δεδομένων σας.

Είσοδος. Καλωσορίσατε στο Ενιαίο Σύστημα Πληρωμών Δαπανών Ηλεκτρονικών Υπηρεσιών.

Οδηγίες χρήσης εφαρμογής μητρώου ασθενών με Χρόνια Μυελογενή Λευχαιμία (Χ,Μ,Λ) Ιατρός

Οδηγίες χρήσης SoSimple

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

Φόρμες και Αγαπημένα. Έκδοση 5.2. Οδηγός διαχειριστή

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

F-Secure Anti-Virus for Mac 2015

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

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

α. Προσωπικά δεδομένα που δύνανται να ζητηθούν από την σελίδα.

Εργαλεία. Επικοινωνίας & Συνεργασίας Πανεπιστήμιο Κύπρου

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

Διαχείριση Βάσης Δεδομένων (dbadmin)

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

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

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...

Δραστηριότητα 9 Δημιουργία και διαχείριση blog μέσω του Blogger. Δημιουργία ιστολογίου

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

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

Δέσμευση1: Παρακολούθηση αλλαγών που εφαρμόζονται στα νομοσχέδια από την κατάθεσή τους μέχρι και την ψήφισή τους στο σύνολο.

Εγκατάσταση λειτουργίας Σάρωση σε

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

30η Συνάντηση Εκπαιδευτικών Δυτικής Μακεδονίας στις ΤΠΕ Φλώρινα 23/2/2014. Επεκτείνοντας το wordpress Η χρήση των προσθέτων (plugins)

Πολιτική Απορρήτου. Ορισμοί

Κατασκευή Ιστολόγιου

ΠΟΛΙΤΙΚΗ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ BICWORLD.COM Τελευταία τροποποίηση Ιούνιος Δήλωση προστασίας απορρήτου.

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

F.A.Q. (ΣΥΧΝΕΣ ΕΡΩΤΗΣΕΙΣ)

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

Transcript:

Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Προγραμματισμός Διαδικτύου Δρ. Μηνάς Δασυγένης mdasygenis@uowm.gr Πανεπιστήμιο Δυτικής Μακεδονίας 1

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Πανεπιστήμιο Δυτικής Μακεδονίας 2

Έγχυση SQL (Injection) Εισαγωγή, επίδειξη και επισκόπηση Πανεπιστήμιο Δυτικής Μακεδονίας 3

Τι είναι το SQL Injection; Εισαγωγή των δηλώσεων SQL σε εισόδους εφαρμογών για την καταστροφή, εκμετάλλευση ή άλλη βλάβη μιας βάσης δεδομένων εφαρμογών. Συνήθως γίνεται απευθείας μέσω διαδικτυακής φόρμας, αλλά μπορεί να κατευθύνεται μέσω hacking διευθύνσεων URL, να ζητάει hacking χρησιμοποιώντας εργαλεία εντοπισμού σφαλμάτων ή χρησιμοποιώντας bots που εξομοιώνουν προγράμματα περιήγησης και χειρίζονται διαδικτυακά αιτήματα. Πανεπιστήμιο Δυτικής Μακεδονίας 4

Τι κάνει? Τα πιο απλά χάκς (hacks) χρησιμοποιούνται για την παράκαμψη του ελέγχου ταυτότητας επιπέδου βάσης δεδομένων. Οι επιθέσεις Bot σε δημόσιες αντιμέτωπες ιστοσελίδες παρουσιάζονται συχνά σε δύο στάδια: - Στάδιο 1: εξαναγκασμός SQL στην εφαρμογή για την εμφάνιση μεταδεδομένων βάσης δεδομένων, όπως δομές πίνακα και στήλης. - Στάδιο 2: Χρησιμοποιήστε τα μεταδεδομένα για να επιτεθείτε στη βάση δεδομένων. Οι άνθρωποι συχνά εφαρμόζουν την κατάσταση 2 μετά από χτύπημα από ένα bot. Το πιο κοινό αποτέλεσμα είναι η εισαγωγή ετικετών HTML σε πίνακες βάσεων δεδομένων: - Το κατεστραμμένο περιεχόμενο εμφανίζεται στη διαδικτυακή εφαρμογή. - Οι κακόβουλες ετικέτες έχουν ως αποτέλεσμα τη μεταφόρτωση κακόβουλου λογισμικού σε οποιονδήποτε επισκέπτεται έναν ιστότοπο χρησιμοποιώντας ενσωματωμένο JavaScript, iframes κ.λπ., ενσωματωμένο σε περιεχόμενο βάσης δεδομένων. Πανεπιστήμιο Δυτικής Μακεδονίας 5

Γενικό πρόβλημα: Επικύρωση εισόδου Πολύ παλαιό πρόβλημα: - Τα HTTP get και post δεν είναι ασφαλείς μηχανισμοί αιτήματος και δεν έχουν σχεδιαστεί για να είναι ασφαλείς. - Το Perl CGI ήταν ευάλωτο σε ενσωματωμένα κομμάτια Perl. - Όλες οι μορφές υπερχείλισης ρυθμιστών (buffer) είναι αποτυχίες για την επικύρωση της εισόδου του χρήστη. Πολύ συνηθισμένο πρόβλημα: - Τα διαδικτυακά αιτήματα τυπικά μεταβιβάζονται σε διεργασίες διακομιστή (server) ως συσσωρευτική συστοιχιών συμβολοσειρών. - Ο γρηγορότερος τρόπος απάντησης σε ένα αίτημα είναι να χρησιμοποιήσετε την ακατέργαστη είσοδο χρήστη. - Τα αποτελέσματα των injection προέρχονται από τεμπέλες πρακτικές προγραμματισμού σε εφαρμογές και παραλείψεις στο λογισμικό διακομιστή (server). Πανεπιστήμιο Δυτικής Μακεδονίας 6

Συναφείς παρενέργειες της επικύρωσης ανεπαρκούς εισαγωγής Cross script scripting Έγχυση κακόβουλου λογισμικού Επιθέσεις υπερχείλισης ρυθμιστή (buffer) Άρνηση παροχής υπηρεσίας SQL Injection Πανεπιστήμιο Δυτικής Μακεδονίας 7

Πρόληψη της έγχυσης SQL Η έγχυση SQL (Injection) μπορεί να προληφθεί χρησιμοποιώντας: Αρχές σχεδιασμού: - Αποφυγή δομών εφαρμογής που αφήνουν τις εφαρμογές ευάλωτες. Πρακτικές κωδικοποίησης: - Αποτροπή της εκτέλεσης κακών αποσπασμάτων SQL. - Αποκλεισμός κακής εισαγωγής / αποχέτευσης εισόδου (input sanitation). Πρακτικές βάσης δεδομένων: - Κάνοντας τη βάση δεδομένων λιγότερο ευάλωτη σε οποιοδήποτε είδος επίθεσης. Υποστήριξη Υποδομής: - Αποτροπή επιθέσεων σε οποιαδήποτε εφαρμογή. Πανεπιστήμιο Δυτικής Μακεδονίας 8

Αρχή σχεδιασμού - Δεν υπάρχουν δεδομένα ανώνυμου χρήστη Αναγκάστε τους χρήστες να δημιουργήσουν έναν λογαριασμό, ο οποίος επαληθεύεται με ένα μήνυμα ηλεκτρονικού ταχυδρομείου. Χρησιμοποιήστε το Captcha ή παρόμοια γραφικά για την καταχώρηση κειμένου για να αποτρέψετε την εισαγωγή αυτοματοποιημένων / bot δεδομένων σε συστήματα. Καταγράψτε όλες τις καταχωρήσεις δεδομένων μέσω αιτήματος ιστού - ποιος, τι, πού, πότε και από ποια διεύθυνση IP. Πανεπιστήμιο Δυτικής Μακεδονίας 9

Αρχή σχεδιασμού - Έλεγχος ταυτότητας Εξαλείψτε όλα τα αποθηκευμένα ονόματα χρηστών και κωδικών πρόσβασης βάσει βάσης δεδομένων. - Μια σελίδα σύνδεσης είναι το σημείο εισόδου σε μια εφαρμογή και πρέπει να επιτρέπει την καταχώριση ανώνυμων δεδομένων. - Η έγχυση SQL χρησιμοποιείται συχνά για να παρακάμψει την ασφάλεια. Πολλές ανέξοδες και δωρεάν εναλλακτικές λύσεις υπάρχουν για καταστήματα ελέγχου ταυτότητας - Το OpenLDAP είναι εύκολο, δωρεάν και η πρόσβαση γίνεται μέσω κλήσεων LDAP και όχι μέσω SQL. - Τα ονόματα χρηστών και οι κωδικοί πρόσβασης μπορούν να επαναχρησιμοποιηθούν σε διαφορετική εφαρμογή χωρίς να επαναχρησιμοποιηθεί μια βάση δεδομένων. Προσοχή: Μην αναμειγνύετε εσωτερικούς και εξωτερικούς χρήστες στο ίδιο κατάστημα LDAP αν είναι δυνατόν. Πανεπιστήμιο Δυτικής Μακεδονίας 10

Αρχή σχεδιασμού - Αποφύγετε το ελεύθερο κείμενο όπου είναι εφικτό και ποτέ μην δεχτείτε ετικέτες HTML Ο περιορισμός των εισροών στις αναπτυσσόμενες και τα μορφοποιημένα πλαίσια κειμένου απλοποιούν τις επικυρώσεις που είναι απαραίτητες για την απόπειρα των προσπαθειών έγχυσης SQL. Οι ετικέτες HTML είναι ένα πολύ κοινός φορέας κακόβουλου λογισμικού. - Καλύτερα να σπάσετε τις εισροές σε πολλαπλά πεδία κειμένου. - Χρησιμοποιήστε τις επιλογές μορφοποίησης μέσω αναπτυσσόμενων πεδίων, πλαισίων ελέγχου και άλλων σταθερών πεδίων εισαγωγής. Προσοχή: Η πλευρά του πελάτη HTML και JavaScript παρακάμπτονται πολύ εύκολα. Πανεπιστήμιο Δυτικής Μακεδονίας 11

Πρακτική κωδικοποίησης - Καμία δυναμική SQL Η καθαρή δυναμική SQL χρησιμεύει ως η πιο κοινή μορφή προσβολών SQL: sqlstring = SELECT From [mytable] WHERE name =.myinputvalue. ; Πολύ εύκολη στην εισαγωγή εισόδου σε μια δομημένη μορφή χρησιμοποιώντας κάποια παραλλαγή τιμών δέσμευσης ή παραμετροποιημένες εντολές SQL. - Οι προετοιμασμένες δηλώσεις της Java. -.NET χρησιμοποιώντας τη δέσμευση sql με τις παραμέτρους τιμών. - mysqli και Pear μέσα στην PHP. - Οι μεταβλητές δέσμευσης αντιμετωπίζονται ως καθαρή είσοδος και δεν εκτελούνται γενικά. Προσοχή: Δεν είναι μια αλεξίσφαιρη προσέγγιση, απλώς μια βέλτιστη πρακτική. Πανεπιστήμιο Δυτικής Μακεδονίας 12

Πρακτική κωδικοποίησης - Έλεγχος ισχυρού τύπου πριν από την αλληλεπίδραση με τη βάση δεδομένων Στο διακομιστή, ένας επεξεργαστής αιτήματος πρέπει να εκτελέσει έναν ισχυρό έλεγχο τύπου: - Βεβαιωθείτε ότι οι αριθμοί είναι αριθμοί, οι ημερομηνίες είναι ημερομηνίες, οι τιμές από τα στοιχεία της φόρμας είναι σωστές, όπως οι δείκτες από τα πτυσσόμενα πεδία (drop downs) κ.λπ. - Περιορίστε το εύρος των αποδεκτών τιμών αν είναι δυνατόν. - Χρησιμοποιήστε τις λειτουργίες ανίχνευσης που έρχονται εγγενώς με πολλές γλώσσες προγραμματισμού, αν είναι διαθέσιμες, όπως σε Java ή.net. - Είναι πολύ σημαντικό στις γλώσσες που έχουν πληκτρολογηθεί σε ασθενώς πληκτρολογημένες γλώσσες, όπως η PHP, για να εξαναγκάσουν τον έλεγχο τύπου. Πανεπιστήμιο Δυτικής Μακεδονίας 13

Πρακτική κωδικοποίησης - Εκτέλεση μήκους και μορφών εισαγωγής Περιορίστε το μέγεθος όλων των συμβολοσειρών τόσο στον πελάτη όσο και στον διακομιστή (server). - Ο καθορισμός του μήκους σε ένα πλαίσιο εισαγωγής ή η χρήση του JavaScript παρακάμπτεται εύκολα. - Απορρίψτε οποιοδήποτε αίτημα όπου οποιαδήποτε τιμή υπερβαίνει ένα μέγιστο αναμενόμενο μήκος. Βεβαιωθείτε ότι κάθε είσοδος συμβολοσειρών συμμορφώνεται με τις μάσκες εισόδου όποτε είναι δυνατόν, για παράδειγμα: - Όταν οι συμβολοσειρές χρησιμοποιούνται για να περιγράψουν τους αριθμούς για να διατηρήσουν τα αρχικά μηδενικά, βεβαιωθείτε ότι όλοι οι χαρακτήρες είναι αριθμοί. - Φιλτράρετε για τυχόν μη αναμενόμενους χαρακτήρες. Προσοχή: Οι κανόνες πρέπει να εφαρμόζονται στον πελάτη και στον διακομιστή. Πανεπιστήμιο Δυτικής Μακεδονίας 14

Πρακτική κωδικοποίησης - Καθαρίστε όλες τις εισροές χρηστών πριν από οποιαδήποτε άλλη επεξεργασία Η ασφαλέστερη και πιο ακίνδυνη πρακτική είναι η επανάληψη μέσω διαδικτυακού αιτήματος και η διήθηση (filter) όλων των μη αναμενόμενων χαρακτήρων. - Αν αφαιρεθούν όλοι οι ειδικοί χαρακτήρες, απενεργοποιούνται απλά οι κλήσεις λειτουργίας, η κωδικοποίηση URI και άλλοι συνηθισμένοι τρόποι προσθήκης ευρετηρίων SQL ή ενσωματωμένων ετικετών HTML. Αφαιρέστε τους ανεπιθύμητους χώρους. Απορρίψτε αιτήματα με ανωμαλίες και καταγράψτε τη δραστηριότητα για ανάλυση. Πανεπιστήμιο Δυτικής Μακεδονίας 15

Πρακτική κωδικοποίησης - Κάλυψη όλων των σφαλμάτων από το χρήστη με φιλική προς το χρήστη έξοδο Ποτέ μην εμφανίζετε σφάλματα SQL ή άλλα ακατάλληλα σφάλματα συστήματος πίσω στον χρήστη. - Μπορεί να παρέχει επιπλέον φορείς επίθεσης για χάκερ. Κάθε φορά που εμφανίζεται μια εξαίρεση, εμφανίζεται ένα γενικό μήνυμα και καταγράψτε το πραγματικό σφάλμα και την είσοδο του χρήστη. Κάθε φορά που μια αίτηση αποτυγχάνει ελέγχους επικύρωσης ή εξυγίανσης, χρησιμοποιήστε μια γενική απάντηση, τερματίστε τη συνεδρία του χρήστη και καταγράψτε λεπτομερώς το σφάλμα. Προσοχή: ΠΟΤΕ μην επαναλάβετε την είσοδο του χρήστη πίσω στον χρήστη χωρίς απολύμανση του αιτήματος. Αυτή είναι η πιο συνηθισμένη μορφή διαδικτυακής δέσμης ενεργειών. Πανεπιστήμιο Δυτικής Μακεδονίας 16

Πρακτική κωδικοποίησης - Χρήση λεπτομερών αρχείων καταγραφής Η λεπτομερής καταγραφή εισάγει πρόσθετα έξοδα αποθήκευσης και επεξεργασίας, αλλά είναι ανεκτίμητο για την ανίχνευση σφαλμάτων και τον εντοπισμό αδυναμιών ασφάλειας. Οι απροσδόκητες συνθήκες, τα απορριφθέντα αιτήματα και παρόμοια σφάλματα είναι συνήθως το πρώτο σημάδι στην επίθεση της εφαρμογής σας στο διαδίκτυο. Πανεπιστήμιο Δυτικής Μακεδονίας 17

Πρακτικές κωδικοποίησης - Χρησιμοποιήστε πλαίσια Κάθε δημοφιλής πλατφόρμα ανάπτυξης ιστού έχει πλαίσια επικύρωσης. Αξιοποίηση υφιστάμενων πλαισίων για την εφαρμογή επικυρώσεων: - Zend για PHP. - Αρκετά πλαίσια για την Java. Τα πλαίσια μπορούν να συγκεντρώσουν πολλά καθήκοντα που σχετίζονται με την ασφάλεια. Το.NET έχει ένα αναδυόμενο μοντέλο MVC το οποίο θα βοηθήσει στη συγκέντρωση εργασιών όπως η αποχέτευση εισόδου (input sanitation). Πανεπιστήμιο Δυτικής Μακεδονίας 18

Πρακτική βάσης δεδομένων - Χρησιμοποιήστε δύο λογαριασμούς Δημιουργία δύο λογαριασμών: - Ιδιοκτήτης βάσης δεδομένων. - Έχει δικαιώματα πάνω σε όλα τα αντικείμενα σε μια βάση δεδομένων ή ένα σχήμα. - Ισοδύναμο με την πρόσβαση σε επίπεδο DBA για μια βάση δεδομένων / σχήμα. - Χρησιμοποιείται για τη δημιουργία και τη διατήρηση μιας βάσης δεδομένων εφαρμογών. - Ποτέ δεν χρησιμοποιείται από διαδικτυακές εφαρμογές. - Λογαριασμός εφαρμογών / λογαριασμός μεσολάβησης βάσης δεδομένων. - Διαθέτει ελάχιστα δικαιώματα για την εφαρμογή: - Όλα τα δικαιώματα σε κάθε αντικείμενο δηλώνονται ρητά. - Δεν κατέχει άμεσα αντικείμενα. - Δεν υπάρχει πρόσβαση σε μεταδεδομένα στην πλατφόρμα βάσης δεδομένων. - Περιορισμένες τοποθεσίες σύνδεσης εάν είναι δυνατόν. Πανεπιστήμιο Δυτικής Μακεδονίας 19

Πρακτικές Βάσεων Δεδομένων - Ισχυρή Πληκτρολόγηση Οι στήλες πρέπει να πληκτρολογούνται έντονα: - Αριθμοί ως αριθμοί. - Οι χαρακτήρες περιορίζονται στο ακριβές μέγιστο που απαιτείται. - Ημερομηνίες αποθηκευμένες ως ημερομηνίες Εάν η απόδοση είναι αποδεκτή, χρησιμοποιήστε τους περιορισμούς ή τους παράγοντες ενεργοποίησης: - Οι μάσκες μορφοποίησης δύναμης και τα εύρη χαρακτήρων όπως το 0-9 για το SSN κ.λπ. Χρησιμοποιήστε τους πίνακες αναζήτησης για τιμές αναφοράς και επιβάλλετε ξένα πλήκτρα. Πανεπιστήμιο Δυτικής Μακεδονίας 20

Πρακτικές βάσης δεδομένων - αποθηκευμένες διαδικασίες και προβολές Προβολές: - Εκθέστε μόνο τις στήλες που απαιτούνται από την εφαρμογή. - Επιτρέψτε σε πιο λεπτομερείς στήλες ανά δικαιώματα στήλης. Αποθηκευμένες διαδικασίες: - Ο λογαριασμός εφαρμογής αποκτά δικαιώματα εκτέλεσης μόνο. - Όλοι οι πίνακες και οι προβολές είναι αόρατοι. - Μπορεί να μειώσει τον αριθμό αλληλεπιδράσεων βάσης δεδομένων. - Απλοποιεί τη διαχείριση συναλλαγών. - Δεν είναι κατάλληλο για όλα τα περιβάλλοντα εφαρμογών/εργαλεία. Πανεπιστήμιο Δυτικής Μακεδονίας 21

Πρακτική Υποδομής - Εγκαταστήστε ένα IDS που ελέγχει συγκεκριμένα την έγχυση SQL (Injection) Αρκετά συστήματα IDS υπάρχουν για να παρακολουθούν ειδικά την κυκλοφορία ιστού για SQL Injection. - Κάθε αίτηση εξετάζεται για υπογραφές SQL injection. - Τα κακά αιτήματα φιλτράρονται και καταγράφονται. Προστατεύει όλες τις εφαρμογές από τα πιο κοινά σφάλματα. Εξαιρετικό πρώτο βήμα έως ότου όλες οι διαδικτυακές εφαρμογές μπορούν να αναθεωρηθούν για ευπάθειες. Προσοχή: Οι υπογραφές θα είναι πάντα τελικά νικημένες. Πανεπιστήμιο Δυτικής Μακεδονίας 22

Πρακτική υποδομής - Κάνει αυτόματη σάρωση αρχείων καταγραφής Χρησιμοποιήστε ένα κεντρικό εργαλείο καταγραφής που ψάχνει για συμπεριφορά SQL Injection: - Σφάλματα SQL. - Ερωτήματα ενάντια των μεταδεδομένων από διαδικτυακές εφαρμογές. Χρησιμοποιήστε εργαλεία χειροκίνητης σάρωσης, όπως grep, awk και parsers καταγραφής, για να αναζητήσετε μη εξουσιοδοτημένα ερωτήματα / αιτήσεις sql. Πανεπιστήμιο Δυτικής Μακεδονίας 23

Πρακτική υποδομής - Χρησιμοποιήστε εργαλεία σάρωσης ασφαλείας Το καλύτερο μέτρο ασφάλειας είναι αυτό που συλλαμβάνει τα προβλήματα πριν αποκαλυφθούν. Ως μέρος των δοκιμών QAT ή UAT, οι εφαρμογές πρέπει να σαρώνονται αυτόματα για ευπάθειες. Αποκαλύπτει ευπάθειες πέραν και πέρα από απλές δοκιμές διείσδυσης. Πολλά εξαιρετικά προϊόντα: - Ορθολογικό APPSCAN από την IBM (παρακολούθησε την παρακολούθηση) - Acunetix. Πανεπιστήμιο Δυτικής Μακεδονίας 24

Ειδικά Θέματα της πλατφόρμας Η PHP, η Java και άλλες γλώσσες προγραμματισμού ιστού μπορούν να καθαρίσουν εύκολα τις αιτήσεις των χρηστών. - Τα αιτήματα μπορούν να τροποποιηθούν και οι τιμές να αντικατασταθούν. - Τo MVC πληκτρολογεί μοντέλα στη Java και περιλαμβάνει οδηγίες σε άλλες γλώσσες δέσμης ενεργειών καθιστώντας αυτήν ασήμαντη. Το.NET 2.0 και ανώτερα θέτουν μια πιο δύσκολη πρόκληση, διότι τα αντικείμενα αιτήματος μόνο διαβάζονται. - Η εφαρμογή υγιεινής καταργεί πολλά από τα πλεονεκτήματα του.net προγραμματισμού. - Χρησιμοποιώντας φίλτρα τύπου ISAPI, τα αιτήματα προ-επεξεργασίας απαιτούν μεγάλη περιττή κωδικοποίηση. Η αδύναμη πληκτρολόγηση σε πολλές από τις διαδικτυακές γλώσσες προγραμματισμού ανοιχτής πηγής (Open Source) δημιουργεί πρόσθετες απαιτήσεις για επαγρύπνηση σε αυτές τις πλατφόρμες. Πανεπιστήμιο Δυτικής Μακεδονίας 25

Συμπέρασμα Η ασφάλεια είναι μια συνεχής διαδικασία επαγρύπνησης. - Κάθε τεμάχιο / μέτρο έχει τελικά έναν μετρητή. Οι καλές συνήθειες στο πλαίσιο της ανάπτυξης και του σχεδιασμού των εφαρμογών μπορούν να αποτρέψουν τα περισσότερα εκμεταλλεύματα τύπου έγχυσης (injection) / υπερχείλισης. Η ασφάλεια εφαρμογών απαιτεί δράση από προγραμματιστές, σχεδιαστές και διαχειριστές. Οι περισσότερες επιθέσεις SQL Injection μπορούν να μπλοκαριστούν με πολύ απλά μέτρα, τα οποία μπορεί να είναι εντατικής εργασίας για την υλοποίηση. Πανεπιστήμιο Δυτικής Μακεδονίας 26

Βιβλιογραφία Κανονικές εκφράσεις για φιλτράρισμα: http://www.securityfocus.com/infocus/1768 Παράδειγμα πειρατείας προέλευσης: http://video.google.com/videosearch?q=sql+injection&oe=utf-8&rls=org.mozilla:en- US:official&client=firefox-a&um=1&ie=UTF-8&sa=X&oi=video_result_group&resnum=5&ct=title# Λογισμικό σάρωσης εφαρμογών: http://www-01.ibm.com/software/awdtools/appscan/ Πανεπιστήμιο Δυτικής Μακεδονίας 27