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

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

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

Transcript

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

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

3 ΕΥΧΑΡΙΣΤΙΕΣ Η παρούσα εργασία εκπονήθηκε στο εργαστήριο αρχιτεκτονικής και δικτύων υπολογιστών τη χρονική περίοδο από το Οκτώβριο έως τον Σεπτέμβριο Θα ήθελα να εκφράσω τις ευχαριστίες μου στον επίκουρο καθηγητή κύριο Π. Νικοπολιτίδη. Θεσσαλονίκη, Σεπτέμβριος

4 Κωνσταντίνος Βλυσσίδης Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Τμήμα Πληροφορικής, Κατεύθυνση Δικτύων-Επικοινωνιών και Αρχιτεκτονικής Συστημάτων. ΠΕΡΙΛΗΨΗ Η παρούσα πτυχιακή διατριβή ασχολείται με την ασφάλεια δικτύων υπολογιστών και την ανάλυση αδυναμιών τους. Περιγράφονται ζητήματα σχετικά τόσο με την ασφάλεια του απλού χρήστη κατά την περιήγηση του στο διαδίκτυο, όσο και την ασφάλεια των εξυπηρετών δικτύων. Παρέχονται, ακόμα, εργαστηριακοί έλεγχοι του επιπέδου ασφαλείας των εξυπηρετών δικτύου αλλά και πρακτική προσπάθεια βελτίωσης της ασφάλειας ενός οικιακού εξυπηρέτη. Στο πρώτο κεφάλαιο παρέχεται μια εισαγωγή στο ζήτημα της ασφάλειας δικτύων, ενώ αναφέρεται και το περιεχόμενο της εργασίας. Το δεύτερο κεφάλαιο ασχολείται με την ασφάλεια περιήγησης και διενέργειας συναλλαγών των ιδιωτών στο διαδίκτυο. Θίγονται γενικά ζητήματα ασφάλειας, όπως σωστή χρήση του SSL, κίνδυνοι από active contents όπως τα Java Applets και το ActiveX, ενέργειες για ιδιωτικοτητα στο διαδίκτυο, τρόποι προφύλαξης από ιούς και άλλα επιβλαβή προγράμματα. Ταυτόχρονα, δίνονται συμβουλές και εργαλεία αντιμετώπισης των κινδύνων αυτών. Στο τρίτο κεφάλαιο εξετάζεται η ασφάλεια των εξυπηρετητών δικτύου. Αναφέρονται συνήθεις λόγοι επιθέσεων προς αυτούς, γνωστά είδη επιθέσεων. Ταυτόχρονα, παρέχονται συμβουλές για τη διασφάλιση Unix και Windows servers. Δίνονται, ακόμα, βήματα για τον σωστό έλεγχο ασφαλείας ενός οργανισμού, αλλά και μια σύγκριση μεταξύ των πιο γνωστών εξυπηρετών δικτύου. Τέλος εξετάζονται, ορισμένες κατηγορίες προγραμμάτων ασφαλείας δικτύου, ενώ αναφέρονται οι δέκα κορυφαίοι κίνδυνοι για τους web servers σύμφωνα με τον οργανισμό OWASP (open web application security project). Στο τέταρτο κεφάλαιο παρουσιάζονται εργαστηριακοί έλεγχοι εξακρίβωσης του επιπέδου ασφαλείας και εύρεσης πιθανών αδυναμιών, τόσο σε έναν οικιακό εξυπηρέτη δικτύου, όσο και στον web server που φιλοξενεί την ιστοσελίδα της σχολής. Στο πέμπτο κεφάλαιο, τέλος, δίνονται απλές οδηγίες βελτίωσης της ασφάλειας σε έναν εξυπηρέτη Apache σε περιβάλλον Linux. 4

5 SECURITY AND VULNERABILITY ASSESSMENT ON COMPUTER NETWORKS KONSTANTINOS VLISSIDIS Aristotle University of Thessaloniki, School of Informatics, Direction of Communication, Networks and Architecture of Systems ABSTRACT This paper deals with the security of computer networks and the assessment of their vulnerabilities. It employs with the security of both, the simple user's during his web browsing, as well as, the web server's. Also, lab tests of the level of security on a home and the school's web server are given. Finally, simple advices on upgrading the security levels on a home web server are presented. The first chapter provides an introduction on the subject of the paper. The second chapter deals with the browsing and electronic transactions security of web's private users. General subjects of security are referred, like SSL's correct use, dangers from active contents like Java Applets and ActiveX, acts that must be done in favor of privacy on the web, ways of protecting against viruses and other malicious programs. Concurrently, advices and tools of dealing with these dangers are given. The third chapter centers on the web server's security. Common reasons of attacks on them are referred as well as known types of attacks. Advices on securing Unix and Windows web servers are provided. Furthermore, steps on the correct control of an organization's security and a comparison between favorite web servers are given. The top 10 security risks for a web server, according to OWASP are, also, given. Finally, types of security programs are presented. In the fourth chapter, a practical act of an audit on the security level of a home web server and the school's web server, problems that presented and the programs that were used are provided. In the fifth, and last, chapter, simple advices on improving the security of an Apache web server, on a Linux machine, are given. 5

6 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: Εισαγωγή Ασφάλεια δικτύου Η αναγκαιότητα για διεξοδικότερη ασφάλεια δικτύων σήμερα Η οργάνωση του εγγράφου ΚΕΦΑΛΑΙΟ 2: Ασφάλεια απλού χρήστη Εισαγωγή Ενεργό Περιεχόμενο Βοηθητικές εφαρμογές και πρόσθετα Java ActiveX JavaScript Ο περιηγητής από θέμα ασφαλείας Τι μπορεί να κάνει ο χρήστης Ιδιωτικότητα στο διαδίκτυο Server logs Referer logs Proxy logs Cookies Τι μπορεί να κάνει ο χρήστης Σωστή χρήση SSL για ασφαλείς ηλεκτρονικές συναλλαγές Τι πρέπει να κάνει ο χρήστης ΚΕΦΑΛΑΙΟ 3: Ασφάλεια εξυπηρέτη Εισαγωγή Πηγές προβλημάτων για τις σελίδες Σφάλματα σε λογισμικά συστήματος Λάθος διαμόρφωση λογισμικού Το hardware του εξυπηρέτη δεν είναι ασφαλές Τα δίκτυα δεν είναι ασφαλή Η απομακρυσμένη εργασία και διαχείριση ενέχει ρίσκο Απειλές εκ των έσω παραβλέπονται Απειλές άρνησης υπηρεσίας συχνά αγνοούνται Απουσία πολιτικής ασφαλείας Βήματα για τον σωστό έλεγχο ασφαλείας ενός οργανισμού Καθορισμός ρόλων και ευθυνών

7 Απογραφή κεφαλαίων οργανισμού Ρόλοι των κεφαλαίων Ανάπτυξη μετρήσεων Αξιολόγηση και σημείο εκκίνησης Καθορισμός επιθυμητού επιπέδου ασφαλείας Ανάπτυξη μιας ομάδας αντιμετώπισης περιστατικών ασφαλείας υπολογιστών Έλεγχος της ροής πληροφόρησης για νέες αδυναμίες Ανάπτυξη κατηγοριοποίησης απειλών Προτυποποίηση διαδικασιών Βελτίωση προληπτικών ελέγχων Συνεχής παρακολούθηση Βήματα για την διασφάλιση ενός Unix web server Εφαρμογή επιδιορθώσεων λειτουργικού συστήματος Απενεργοποίηση αδρανών υπηρεσιών Προσθήκη των ελάχιστων απαιτούμενων λογαριασμών χρηστών Δικαιώματα χρηστών ενός web server Εκτέλεση του web server ως μη προνομιούχο χρήστη Απενεργοποίηση μη αναγκαίων χαρακτηριστικών εξυπηρέτη δικτύου Έναρξη και τερματισμός του server χωρίς δικαιώματα υπερχρήστη. 42 Ο εξυπηρέτης σε περιβάλλον chroot Περιορισμός των επιθέσεων άρνησης υπηρεσίας Παρακολούθηση των αρχείων καταγραφών Καταγραφή της ακεραιότητας των αρχείων συστήματος Δημιουργία αντιγράφων ασφαλείας (back up) του συστήματος Web Servers σε Microsoft Windows Έννοιες ασφαλείας των Windows Ανάλυση ασφαλείας των Windows Κίνδυνοι ασφαλείας των Windows και τακτικές αντιμετώπισης τους Οι δέκα κορυφαίοι κίνδυνοι ασφάλειας εφαρμογών σύμφωνα με τον OWASP Οι δέκα κορυφαίοι κίνδυνοι ασφαλείας λογισμικών Injection Cross site scripting (XSS)

8 Λανθασμένη ή μη λειτουργική αυθεντικοποιήση και έλεγχος συνεδρίας Μη ασφαλείς άμεσες αναφορές αντικειμένων Cross-Site Request Forgery Λάθος ρυθμίσεις ασφαλείας Μη ασφαλής κρυπτογραφική αποθήκευση Αποτυχία περιορισμού URL πρόσβασης Μη επαρκής προστασία επιπέδου μεταφοράς Μη επικυρωμένες ανακατευθύνσεις ή προωθήσεις Προγράμματα εξυπηρετών δικτύου Εργαλεία ασφάλειας δικτύου Packet analyzer (sniffer) Web vulnerability scanners Web application scanners Password crackers Τείχος ασφαλείας (firewall) Antivirus Software ΚΕΦΑΛΑΙΟ 4: Εργαστηριακοί έλεγχοι ασφάλειας υπολογιστή με εξυπηρέτη δικτύου Οικιακό δίκτυο Υπολογιστικό υλικό που χρησιμοποιήθηκε Προγράμματα που χρησιμοποιήθηκαν Αποτελέσματα ελέγχων Ιστοσελίδα σχολής (www.csd.auth.gr) Υπολογιστικό υλικό που χρησιμοποιήθηκε Προγράμματα που χρησιμοποιήθηκαν Αποτελέσματα ελέγχων ΚΕΦΑΛΑΙΟ 5: Απλά βήματα για την βελτίωση της ασφάλειας του εξυπηρέτη δικτύου

9 Βήματα για την βελτίωση της ασφάλειας του εξυπηρέτη δικτύου Επίλογος Βιβλιογραφία

10 ΚΕΦΑΛΑΙΟ ΕΝΑ ΕΙΣΑΓΩΓΗ Ασφάλεια δικτύου Η ασφάλεια των δικτύων επικοινωνίας χρηστών έχει πλέον αναδειχθεί σε ένα σημαντικό και άκρως ενδιαφέρων κομμάτι της σύγχρονης τεχνολογίας των επικοινωνιών. Η καθολικότητα του παγκοσμίου ιστού και η χρήση του για οποιαδήποτε δραστηριότητα της καθημερινότητας από επιχειρήσεις και ιδιώτες έχει τονίσει την σημαντικότητα της ασφαλούς περιήγησης και εκτέλεσης δραστηριοτήτων σε αυτόν. Η αναποτελεσματική ασφάλεια αντίθετα, εκθέτει τους χρήστες σε γνωστούς και επιβλαβείς κινδύνους όπως Spam, ιούς και κλοπή προσωπικών δεδομένων. Η ασφάλεια των δικτύων και των διακινούμενων πληροφοριών αποτελεί όμως και ένα αρκετά πολύπλοκο θέμα. Αποδίδεται, αρχικά, διαφορετικά από διαφορετικές κατηγορίες χρηστών, καθώς μπορεί να αποτελεί απλά τη δυνατότητα της ανώνυμης περιήγησης στον παγκόσμιο ιστό, της ασφαλούς εκτέλεσης χρηματοοικονομικών συναλλαγών ή, για τους διαχειριστές, της εύρυθμης λειτουργίας της ιστοσελίδας τους αλλά και ολόκληρου του εταιρικού τους δικτύου και των ιδιωτικών του αρχείων. Δυστυχώς υπάρχουν αρκετά προβλήματα ασφαλείας που μπορεί να επηρεάσουν τους εξυπηρετητές δικτύου (web servers), τα τοπικά δίκτυα που αυτοί φιλοξενούνται ή ακόμα και τους περιηγητές δικτύου (web browsers) των απλών χρηστών. Ο κίνδυνος είναι υψηλότερος για τους διαχειριστές των δικτύων. Η εγκατάστασή ενός web server για μια ιστοσελίδα αποτελεί ταυτόχρονα και ένα παράθυρο πρόσβασης από τους χρήστες του ίντερνετ στο τοπικό δίκτυο του εξυπηρετητή, κάτι το οποίο μπορεί να οδηγήσει σε μία πληθώρα προβλημάτων που διευρύνονται από την απλή τροποποίηση της ιστοσελίδας ως και την κλοπή προσωπικών δεδομένων χρηστών της, άλλα και την χρήση του web server για την απόκτηση πρόσβασης σε άλλες θέσεις και αρχεία του τοπικού δικτύου. Και ο απλός χρήστης,όμως, καλείται να αντιμετωπίσει πολλά θέματα ασφαλείας. Μπορεί η περιήγηση στο διαδίκτυο να φαίνεται αρχικά ασφαλής και ανώνυμη, κάτι τέτοιο όμως απέχει αρκετά από την πραγματικότητα. Ενεργά περιεχόμενα που είναι ενσωματωμένα στις ιστοσελίδες όπως το Active X και τα Java applets εισάγουν την πιθανότητα διείσδυσης ιών και άλλων επιβλαβών προγραμμάτων στον υπολογιστή του χρήστη. Ταυτόχρονα, ακόμα και χωρίς αυτούς τους κίνδυνους μόνο η πράξη της περιήγησης αφήνει ηλεκτρονικές καταγραφές του ιστορικού περιήγησης του χρήστη, κάτι το οποίο μπορεί να οδηγήσει στην κατασκευή ενός πολύ ακριβούς προφίλ του χρήστη, από τρίτους. Στο τέλος, και ο απλός χρήστης άλλα και οι διαχειριστές των δικτύων πρέπει να ανησυχούν για την ασφάλεια και την ιδιωτικοτητα των δεδομένων που μεταφέρονται μέσω των δικτύων. Το TCP/IP πρωτόκολλο έχει σχεδιαστεί με πολλά κενά ασφαλείας κάτι που επιτρέπει την παρακολούθηση των δεδομένων στο δίκτυο. 10

11 Η αναγκαιότητα για διεξοδικότερη ασφάλεια δικτύων σήμερα Δυστυχώς οι σημερινές επιθέσεις κατά των δικτύων και των δεδομένων που είτε διακινούνται σε αυτά είτε είναι αποθηκευμένα σε θέσεις τους αυξάνονται σε συχνότητα άλλα και σε πολυπλοκότητα. Τα malware (προγράμματα που περιέχουν ακολουθίες βημάτων για να διαπράξουν επιθέσεις), παραδείγματος χάριν, έχουν εξελιχθεί σε τρεις γενιές, μέχρι στιγμής. Η πρώτη γενιά ήταν οι ιοί που διαδίδονταν μέσω και διαμοιρασμό αρχείων που απαιτούσαν ανθρώπινη δράση για να πυροδοτήσουν την περαιτέρω αναπαραγωγή και επέκταση τους. Παραδείγματα τέτοιων προγραμμάτων ήταν τα LoveLetter, Fizzer και Melissa. Η δεύτερη γενιά είναι worms που εκμεταλλεύονται αδυναμίες λειτουργικών συστημάτων ή εφαρμογών μεσώ αυτοματοποιημένων τρόπων και δεν απαιτούν ανθρώπινη παρέμβαση. Στη τρίτη γενιά τα malware είναι ικανά να προκαλέσουν ακόμα μεγαλύτερη ζημιά σε συγκριτικά μικρότερο χρόνο. Αυτή η κατηγορία περιέχει ένα συνδυασμό ιών, Trojan horses, και αυτοματισμών. Παραδείγματα είναι τα Blaster, SQL Slammer, Slapper, Sasser και τα Witty worms. Στις 25 Ιανουαρίου 2003, το SQL Slammer worm, μόλυνε πάνω από συστήματα, απενεργοποιώντας πολλά ΑΤΜ μηχανήματα τις Bank of America, διαταράσσοντας τα τηλεφωνικά κέντρα της αστυνομίας στην Ουάσινγκτον και προκαλώντας διάφορες ζημίες σε όλο τον κόσμο. Αυτό το worm μόλυνε το 90% των διαθέσιμων και τρώσιμων εξυπηρετητών δικτύου μέσα σε ένα παράθυρο 10 λεπτών. Μέσα σε 3 λεπτά από τότε που απελευθερώθηκε, αντίγραφα του διενεργούσαν περισσότερες από 55 εκατομμύρια σαρώσεις το δευτερόλεπτο για ευπαθείς, στην συγκεκριμένη αδυναμία, εξυπηρετητές δικτύου. Ταυτόχρονα όμως πιο πολύπλοκες και πολυπληθείς γίνονται και οι δραστηρίοτητες hacking ακόμα και από ανθρώπους που δεν έχουν την τεχνική γνώση που απαιτείται, μέσω απλουστευμένων προγραμμάτων που έχουν κατασκευαστεί από τρίτους, όπως παρουσιάζεται και στο σχήμα 1. Σχήμα 1 11

12 Ένα ζήτημα που πρέπει, επίσης, να τονιστεί είναι η ταχύτητα με την οποία αυτές οι τεχνικές εκμετάλλευσης και τα νέα εργαλεία παράγονται, κάτι το οποίο μειώνει σημαντικά το περιθώριο που υπάρχει για εφαρμογή διορθώσεων και αντισταθμιστικών μεθόδων. Σήμερα, πολλές επιθέσεις και worms απελευθερώνονται προτού καν οι οργανισμοί προλάβουν να εντοπίσουν την αδυναμία. Σχήμα 2 Μια ακόμα απειλή που οι οργανισμοί πρέπει να αντιμετωπίσουν είναι οι επιθέσεις εκ των έσω. Σύμφωνα με έρευνες ένα ποσοστό της τάξης του 70-80% των απειλών που αντιμετωπίζει ένας οργανισμός προκαλούνται από εσωτερικούς εργαζόμενους. Αυτό οφείλεται στο γεγονός ότι η συγκεκριμένη κατηγορία έχει άμεση και προνομιούχα πρόσβαση στα πολύτιμα δεδομένα της εταιρίας. Παρ'οτι, αυτοί οι τύποι των απειλών μπορεί να προκαλούνται και από επιβλαβείς σκοπούς, η πλειοψηφία των ζημιών που έχει ένας οργανισμός οφείλεται σε λάθη ή έλλειψη γνώσης από τους εργαζομένους σε αυτόν. Το σχήμα 3 παρουσιάζει κάποιες από τις απειλές που δέχονται οι οργανισμοί καθώς και το αναμενόμενο ύψος ζημιών από αυτές. Το συγκεκριμένο πρόβλημα ενισχύεται από την πολυπλοκότητα του σημερινού επιχειρηματικού περιβάλλοντος καθώς και από το πλήθος των οντοτήτων,ακόμα και πελατών του οργανισμού, που επιθυμούν διαφορετικά προνόμια πρόσβασης στα δεδομένα του οργανισμού. Οι υποκλοπές ή παραβιάσεις δεδομένων μπορούν να κοστίσουν περισσότερο και από 500 χιλιάδες δολάρια. Σύμφωνα με έρευνα του ινστιτούτου Ponemon, το κόστος της παραβίασης δεδομένων προσεγγίζει τα 202 δολάρια για κάθε εγγραφή. Είναι εμφανές λοιπόν, ότι η μη-συμμόρφωση σε καθορισμένους κανονισμούς ασφάλειας, μπορεί να θέσει μια εταιρία σε κίνδυνο. Επιπλέον, ακόμα και μια παραβιασμένη ή αλλοιωμένη ιστοσελίδα μπορεί να δημιουργήσει έλλειψη εμπιστοσύνης στους πελάτες της εταιρίας με σημαντικά οικονομικά κόστη. Παρόλα αυτά, πολλές εταιρίες δεν επικεντρώνονται στην διασφάλιση των δικτυακών τους εγκαταστάσεων, εφαρμογών και εγγράφων. Η κυρία αιτία, παραμένει η έλλειψη κατανόησης και γνώσης. 12

13 Σχημα3 Η οργάνωση του εγγράφου Η περαιτέρω οργάνωση του εγγράφου χωρίζεται σε τέσσερα κεφάλαια: Το δεύτερο κεφάλαιο ασχολείται με την ασφάλεια περιήγησης και διενέργειας συναλλαγών των ιδιωτών στο διαδίκτυο. Θίγονται γενικά ζητήματα ασφάλειας, όπως σωστή χρήση του SSL, κίνδυνοι από active contents όπως τα Java Applets και το ActiveX, ενέργειες για ιδιωτικοτητα στο διαδίκτυο, τρόποι προφύλαξης από ιούς και άλλα επιβλαβή προγράμματα. Ταυτόχρονα, δίνονται συμβουλές και εργαλεία αντιμετώπισης των κινδύνων αυτών. Στο τρίτο κεφάλαιο θίγεται η ασφάλεια των εξυπηρετητών δικτύου. Αναφέρονται συνήθεις λόγοι επιθέσεων προς αυτούς, γνωστά είδη επιθέσεων. Ταυτόχρονα, παρέχονται συμβουλές για τη διασφάλιση Unix και Windows servers. Δίνονται, ακόμα. βήματα για τον σωστό έλεγχο ασφαλείας ενός οργανισμού, ενώ παρέχεται μια σύγκριση μεταξύ των πιο γνωστών εξυπηρετών δικτύου. Αναφέρονται, επίσης, οι δέκα κορυφαίοι κίνδυνοι για τους εξυπηρέτες σύμφωνα με τον οργανισμό OWASP. Τέλος εξετάζονται, ορισμένες κατηγορίες προγραμμάτων ασφαλείας δικτύου. Στο τέταρτο κεφάλαιο παρουσιάζονται εργαστηριακοί έλεγχοι εξακρίβωσης του επιπέδου ασφαλείας και εύρεσης πιθανών αδυναμιών, τόσο σε έναν οικιακό εξυπηρέτη δικτύου, όσο και στον web server που φιλοξενεί την ιστοσελίδα της σχολής. Στο πέμπτο κεφάλαιο, τέλος, δίνονται απλές οδηγίες βελτίωσης της ασφάλειας σε έναν εξυπηρέτη Apache σε περιβάλλον Linux. 13

14 ΚΕΦΑΛΑΙΟ ΔΥΟ ΑΣΦΑΛΕΙΑ ΑΠΛΟΥ ΧΡΗΣΤΗ Εισαγωγή Όπως τονίστηκε και στο πρώτο κεφάλαιο η περιήγηση στο διαδίκτυο για τον απλό χρήστη, ενέχει πολλούς κινδύνους. Υπάρχουν πολλά ζητήματα που μπορεί να επηρεάσουν τόσο την ασφαλή περιήγηση του χρήστη στο διαδίκτυο, την ιδιωτικότητα του όσο και την επιτυχημένη και χωρίς απρόοπτα διενέργεια συναλλαγών. Για την αύξηση της ευχρηστίας και της φιλικότητας, πολλές ιστοσελίδες στο διαδίκτυο χρησιμοποιούν scripts που εκτελούν προγράμματα μέσα στον περιηγητή δικτύου. Αυτό το ενεργό περιεχόμενο χρησιμοποιείται για να δημιουργήσει επιλογές όπως κυλιόμενα μενού. Δυστυχώς, όμως, αυτά τα script αποτελούν συχνά και ένα μέσο για τον επιτιθέμενο να ανεβάσει η να εκτελέσει επιβλαβές κώδικα στον υπολογιστή του χρήστη. Μεγάλος κίνδυνος επίσης για τον χρήστη είναι η απώλεια της ιδιωτικότητας του. Οι ιστοσελίδες μπορούν να αποκτήσουν πληροφορίες για την ταυτότητα του χρήστη με μια ποικιλία τρόπων. Ο πιο βασικός είναι το αρχείο καταγραφών του εξυπηρετητή (server log), που καταγράφει την ώρα και ημερομηνία της σύνδεσης, την ταυτότητα του εγγράφου που ο χρήστης αιτήθηκε καθώς και το URL του προηγούμενου εγγράφου που ο χρήστης διάβαζε. Περισσότερη πληροφορία για τις κινήσεις του χρήστη υπάρχει στον παροχέα ίντερνετ του χρήστη όπου οι εξυπηρετητές proxy καταγράφουν κάθε website που ο χρήστης επισκέφθηκε. Ένας ακόμα τρόπος συλλογής πληροφοριών για τους χρήστες από τις ιστοσελίδες είναι μέσω τον cookies, μικρών ταυτοτήτων που οι ιστοσελίδες χρησιμοποιούν για να σημαδεύουν περιηγητές δικτύου, δηλαδή να θυμούνται έναν συγκεκριμένο περιηγητή όταν επιστρέφει στην ιστοσελίδα μετά από καιρό. Τα cookies σχεδιάστηκαν για να εμπλουτίσουν την περιήγηση στο διαδίκτυο, επιτρέποντας στους χρήστες να μεταβάλουν τις ιστοσελίδες σύμφωνα με τις δικές τους ανάγκες, να προσπελαύνουν βάσεις δεδομένων και να εκτελούν και άλλες εργασίες που απαιτούν συνέχεια ανάμεσα στις περιόδους περιήγησης. Η μεγαλύτερη απειλή όμως για την ιδιωτικοτητα του χρήστη δεν είναι οι πληροφορίες για αυτόν που εξάγονται με έμμεσες μεθόδους αλλά πληροφορίες που οι χρήστες δίνουν οικειοθελώς -σε έρευνες χρηστών, μηνύματα και on-line παραγγελίες. Μόλις αυτές οι πληροφορίες δοθούν από τον χρήστη δεν υπάρχει κάποια εγγύηση για το πως χρησιμοποιούνται και από ποιους. Άμεσος κίνδυνος για την ασφάλεια των προσωπικών δεδομένων του χρήστη είναι και οι επιθέσεις phising. Το phising είναι μια τεχνική για την απόκτηση ευαίσθητων πληροφοριών όπως ονομάτων χρήστη, κωδικών πρόσβασης, και λεπτομερειών πιστωτικών καρτών, στην οποία ο επιτιθέμενος παριστάνει μια εμπιστεύσιμη οντότητα, όπως μια τράπεζα, έναν κοινωφελή οργανισμό, διαχειριστές δικτύου ή ακόμα και ιστοσελίδες κοινωνικής δικτύωσης. Το phising διεξάγεται κυρίως μέσω spoofing ή instant messaging, και συχνά απαιτεί από τους χρήστες να δώσουν πληροφορίες σε μια ιστοσελίδα που είναι όμοια με την αυθεντική ιστοσελίδα της οντότητας που ο επιτιθέμενος προσποιείται ότι είναι. Το phising είναι μόνο μια από τις τεχνικές social engineering που χρησιμοποιούνται για να χειραγωγήσουν ανθρώπους στο να διαπράξουν ενέργειες ή να δώσουν προσωπικά τους δεδομένα και εκμεταλλεύονται την ελλιπή χρήση των τωρινών τεχνολογιών ασφαλείας δικτύου. Τρόποι αντιμετώπισης του αυξανόμενου αριθμού phising επιθέσεων είναι η εκπαίδευση του χρήστη, η ενημέρωση του κοινού και τεχνικά μέτρα ασφαλείας. Στο παρών κεφάλαιο αναλύονται οι κίνδυνοι από το ενεργό περιεχόμενο, καθώς και τρόποι περιορισμού του και προφύλαξης από αυτό. Τονίζεται παράλληλα οι σημαντικότητα της 14

15 κρυπτογράφησης στις ηλεκτρονικές επικοινωνίες, αναλύεται το πρωτόκολλο SSL και τεχνικές για να καταλάβει ο χρήστης ότι αυτό χρησιμοποιείται σωστά. Ακόμα, θίγονται μέθοδοι και τεχνικές που χρησιμοποιούνται και παραβιάζουν την ιδιωτικοτητα του χρήστη και παρέχονται τρόποι για την αντιμετώπιση τους, ενώ τέλος δίνεται ένας αριθμός συμβουλών που θα ήταν καλό να ακολουθήσει ο απλός χρήστης για να έχει ένα επίπεδο ασφαλείας στην περιήγηση του στο δίκτυο. Ενεργό περιεχόμενο (Active Content) Για να αυξήσουν την ευχρηστία και την φιλικότητα της ιστοσελίδας οι περιηγητές δικτύου έχουν την ικανότητα να κατεβάσουν και να εκτελέσουν κώδικα αυτόματα, χωρίς προειδοποίηση. Ο κώδικας αυτός είναι κοινώς γνωστός ως ενεργό περιεχόμενο. Δυστυχώς όμως το ενεργό περιεχόμενο, που είτε κατασκευάστηκε για αυτό τον σκοπό είτε περιέχει σφάλματα που μπορούν να εκμεταλλευτούν από άλλους για επικίνδυνους σκοπούς, δίνει συχνά την δυνατότητα στον επιτιθέμενο να εκτελέσει επιβλαβές κώδικα στον υπολογιστή του χρήστη. Παρακάτω παρουσιάζονται κάποιες κατηγορίες ενεργού περιεχομένου. Βοηθητικές εφαρμογές και πρόσθετα Οι βοηθητικές εφαρμογές (helper applications ή και external viewers), είναι κανονικές εφαρμογές που μπορούν να τρέξουν και ανεξάρτητα του περιηγητή δικτύου. Δημιουργούν τα δικά τους παράθυρα, επεξεργάζονται τα δικά τους μενού εντολών και αλληλεπιδρούν απευθείας με εξωτερικές συσκευές. Τα πρόσθετα, αντίθετα, είναι μικρές βιβλιοθήκες κώδικα που μπορούν να εκτελεστούν μόνο στο περιθώριο μιας συνεδρίας του περιηγητή δικτύου. Ο τελευταίος μάλιστα εκτελεί τον κύριο όγκο της επεξεργασίας που απαιτείται από το πρόσθετο για να δουλέψει. Τα πρόσθετα είναι κατά κύριο λόγο γραμμένα από τρίτους κατασκευαστές για να καταστήσουν ικανό τον περιηγητή να μεταφράσει ή να αναπαράγει συγκεκριμένους τύπους δεδομένων ή ακόμα και για να επεκτείνουν τις δυνατότητες του. Η εγκατάστασή των προσθέτων γίνεται από τον χρήστη, κατεβάζοντας τον κώδικα τους και εκτελώντας το πρόγραμμα εγκατάστασης. Κατά τη διάρκεια της, η βιβλιοθήκη του προσθέτου αντιγράφεται σε ένα καθορισμένο κατάλογο αρχείων (directory) και ο περιηγητής ειδοποιείται για την ύπαρξη του. Παρά τις διαφορές τους, και οι βοηθητικές εφαρμογές και τα πρόσθετα είναι όμοια από την σκοπιά της ασφάλειας. Είναι κομμάτια κώδικα που έχουν πλήρη πρόσβαση στον υπολογιστή του χρήστη. Ακόμα και αν είναι κατασκευασμένα με τις καλύτερες των προθέσεων δεν υπάρχει κάποια εγγύηση ότι είναι ασφαλή. Τα περισσότερα από τα προβλήματα που παρουσιάζουν είναι μικρές ενοχλήσεις αλλά άλλα μπορεί να είναι πιο απειλητικά. Αμφότερα μπορούν να είναι μολυσμένα με ιούς, όπως και οποιοδήποτε άλλο πρόγραμμα. Ακόμα κάτι που οι χρήστες πρέπει να προσέχουν είναι βοηθητικές εφαρμογές που περιέχουν διερμηνευτές εντολών. Ακόμα και αν η εφαρμογή είναι ελεύθερη από σφάλματα υπάρχει η πιθανότητα ότι κάποιος θα δημιουργήσει ένα σύνολο εντολών, το οποίο όταν διερμηνευτεί από το πρόγραμμα θα το ωθήσει σε λάθος συμπεριφορά. Ως ένας γενικός κανόνας, οτιδήποτε περιέχει επεξεργαστή μακροεντολών είναι πιθανά επικίνδυνο. Οποιοδήποτε πρόγραμμα μπορεί να εκκινήσει εξωτερικές εφαρμογές, ενέχει επίσης κινδύνους. Ακόμα όμως και μια απλή εφαρμογή μπορεί να μην είναι εντελώς ασφαλής. Ευτυχώς και οι βοηθητικές εφαρμογές και τα πρόσθετα απαιτούν ενέργειες από τον χρήστη για να εγκατασταθούν. Αυτή η διαδικασία καθιστά σαφές στον χρήστη ότι τα προγράμματα αυτά είναι κατασκευασμένα από τρίτους. Οι χρήστες πρέπει να σκεφτούν καλά 15

16 πρώτου εγκαταστήσουν ένα τέτοιο πρόγραμμα. Η καλύτερη συμβουλή που μπορεί να δοθεί είναι οι χρήστες να κρατούν τον αριθμό των εγκαταστημένων βοηθητικών εφαρμογών και προσθέτων στο ελάχιστο. JAVA Η Java είναι μια γλώσσα προγραμματισμού που κατασκευάστηκε από την Sun Microsystems και έχει υιοθετηθεί για την χρήση εφαρμογών στο διαδίκτυο. Ένα από τα βασικά πλεονεκτήματα της Java έναντι των περισσότερων άλλων γλωσσών είναι η ανεξαρτησία του λειτουργικού συστήματος και πλατφόρμας. Τα προγράμματα που είναι γραμμένα σε Java τρέχουνε ακριβώς το ίδιο σε Windows, Linux, Unix και Macintosh, χωρίς να χρειαστεί να ξαναγίνει μεταγλώττιση (compiling) ή να αλλάξει ο πηγαίος κώδικας για κάθε διαφορετικό λειτουργικό σύστημα. Επίσης επιλύει πολλές από τις τεχνικές δυσκολίες που κάνουν τον προγραμματισμό δύσκολο και τα προγράμματα μη εμπιστεύσιμα. Ταυτόχρονα όμως οι σχεδιαστές της Java σκέφθηκαν και την ασφάλεια που αυτή πρέπει να παρέχει. Τα προγράμματα της Java εκτελούνται σε δύο καταστάσεις: στην κατάσταση application εκτελούνται με τα ίδια δικαιώματα και ελευθερίες όπως οι ξεχωριστές ολοκληρωμένες εφαρμογές, ενώ στην κατάσταση applet τα αντικείμενα Java κατεβάζονται από μια ιστοσελίδα και εκτελούνται στο περιθώριο του περιηγητή. Οι προδιαγραφές ασφαλείας των Java applications και των Java Applets είναι αρκετά διαφορετικές. Όταν μια εφαρμογή εκτελείται σε κατάσταση application τα προγράμματα Java έχουν όλα εκείνα τα δικαιώματα των κανονικών προγραμμάτων που τρέχουν στον υπολογιστή του χρήστη. Μπορούν να διαβάσουν και να γράψουν σε αρχεία, να στείλουν δεδομένα στον εκτυπωτή, να ανοίξουν τις συνδέσεις δικτύου. Σε αντίθεση, όταν τα προγράμματα Java τρέχουν ως applets είναι περιορισμένα σε κάτι που η Sun ονομάζει Sandbox. Στις αρχικές εκδόσεις της Java οι περιορισμοί για αυτήν την κατάσταση ήταν αυστηροί. Οι εφαρμογές δεν μπορούσαν να γράψουν ή να διαβάσουν από τον σκληρό δίσκο, ούτε μπορούσαν να έχουν πρόσβαση σε υλικό του υπολογιστή όπως η μνήμη ή οι οδηγοί που ελέγχουν το πληκτρολόγιο και το ποντίκι. Δεν μπορούσαν επίσης να εξάγουν πληροφορίες για το σύστημα, συμπεριλαμβανομένου και του λειτουργικού συστήματος που χρησιμοποιείται, ούτε να εκτελέσουν εντολές συστήματος ή να τρέξουν εξωτερικά προγράμματα. Τέλος δεν μπορούσαν να ανοίξουν συνδέσεις δικτύου για κανένα μηχάνημα εκτός από εκείνο που είχαν αρχικά εγκατασταθεί. Αυτό το μοντέλο ασφαλείας επιβλέπεται με δύο τρόπους. Καταρχάς, μια κλάση Java γνωστή ως διαχειριστής ασφαλείας ( security manager ) επιβλέπει όλες τις ευαίσθητες σε ασφάλεια κλήσεις συστήματος. Αν ένα κομμάτι κώδικα Java επιχειρήσει να κάνει μια κλήση που παραβιάζει την πολιτική ασφαλείας της applet κατάστασης, ο security manager θα προκαλέσει μια διακοπή που θα αναγκάσει την applet να ανακληθεί. Δεύτερον, ο διερμηνευτής Java περιλαμβάνει ένα πακέτο γνωστό ως bytecode verifier το οποίο είναι υπεύθυνο να εξετάζει τα προγράμματα Java καθώς κατεβαίνουν από ιστοσελίδες. Έπειτα επιβεβαιώνει ότι το πρόγραμμα παράχθηκε από έναν Java μεταγλωττιστή και ακολουθεί τους κανόνες και περιορισμούς της Java. Παρότι στη θεωρία τα applets της Java είναι ασφαλή, έχουν αναφερθεί λάθη εφαρμογής (implementation bugs) που επιτρέπουν την παραβίαση των περιορισμών ασφαλείας της Java. Το πρώτο από αυτά αναφέρθηκε τον Φεβρουάριο του 1996 και αφορούσε σε ένα DNS spoofing σενάριο στο οποίο μια applet μπορούσε να συνδεθεί σε διαφορετικό υπολογιστή από αυτόν στον οποίο είχε αρχικά φορτωθεί. Έκτοτε έχουν προκύψει αρκετά λάθη στην εφαρμογή της πολιτικής ασφαλείας των Java applets. Μια χρονολογική λίστα μπορεί να βρει ο χρήστης στην κάτωθι ιστοσελίδα (http://www.oracle.com/technetwork/java/chronology html) αλλά και στις ιστοσελίδες του πανεπιστημίου Princeton (http://sip.cs.princeton.edu/) και του 16

17 οργανισμού CERT (http://www.cert.org/). Γεγονός είναι όμως ότι η πλειοψηφία των λαθών αυτών ήταν σχετικά ασήμαντα και διορθώθηκαν γρήγορα. Ταυτόχρονα, επιθέσεις βασισμένες σε αυτά τα ελαττώματα ήταν πολύ δύσκολο να δομηθούν, ενώ οι περισσότερες δεν κυκλοφόρησαν καν ποτέ στο ίντερνετ αφού κατασκευάστηκαν σε εργαστήρια για ερευνητικούς σκοπούς. Μεγαλύτερο πρόβλημα από τις εχθρικές είναι στην πράξη οι ενοχλητικές applets που κυκλοφορούν στο ίντερνετ. Αυτές, καταναλώνοντας υπερβολική επεξεργαστική ισχύ και μνήμη, μπορούν να διαπράξουν επιθέσεις άρνησης υπηρεσίας εναντίον του περιηγητή δικτύου ή ακόμα και του υπολογιστή του χρήστη. ActiveX Το ActiveX είναι ένα πλαίσιο για τον καθορισμό επαναχρησιμοποιήσιμων συστατικών λογισμικού σε έναν ανεξάρτητο από γλώσσες προγραμματισμού τρόπο. Οι εφαρμογές λογισμικού μπορούν να συντεθούν από ένα ή περισσότερα από αυτά τα συστατικά. Κυκλοφόρησε το 1996 από την Microsoft ως μια εξέλιξη των COM (Component Object Model) και OLE (object linking and embedding) τεχνολογιών της και χρησιμοποιείται ευρέως στα Windows λειτουργικά συστήματα από προγράμματα όπως τα Internet Explorer, Microsoft Office, Microsoft Visual Studio, Microsoft Media Player. Όπως και τα Java applets, τα ActiveX προγράμματα συνήθως προβάλλονται στους περιηγητές δικτύου ως ζωντανές, ενσωματωμένες εικόνες. Αυτά τα μικρά προγράμματα γνωστά και ως controls, μπορούν να κάνουν ότι και τα Java applets, συμπεριλαμβανομένης και της δημιουργίας απεικονίσεων, δημιουργίας παραθύρων και αλληλεπιδράσεως με το ποντίκι και το πληκτρολόγιο. Η πιο σημαντική διαφορά ανάμεσα στα Java applets και τα ActiveX controls είναι ότι τα controls είναι μεταγλωττισμένα σε κώδικα μηχανής. Τα controls είναι γραμμένα σε οποιαδήποτε από τις συμβατικές γλώσσες προγραμματισμού και μεταγλωττίζονται σε μορφή που τους επιτρέπει να φορτώνονται και να σβήνονται από την μνήμη εύκολα. Αυτό σημαίνει ότι ένα control πρέπει να επαναμεταγλωτίζεται για κάθε συνδυασμό λειτουργικού συστήματος και πλατφόρμας υλικού. Από την άποψη της ασφαλείας, τα controls είναι επικίνδυνα καθώς μπορούν να κάνουν οτιδήποτε. Μπορούν να διαγράψουν αρχεία, ελέγξουν τον εκτυπωτή, επαναμορφοποιήσουν τον σκληρό δίσκο, παρακάμψουν το τείχος ασφαλείας η και να εγκαταστήσουν ίο. Μόλις ένα ActiveX control τρέξει στον υπολογιστή του χρήστη, έχει την ικανότητα να κάνει ότι και ένα πλήρες πρόγραμμα. Αυτό καθιστά τα ActiveX controls πολύ ισχυρά αλλά ταυτόχρονα και πιθανώς επικίνδυνα. Ένα control γραμμένο με επιβλαβείς σκοπούς ή ακόμα και ένα control που απλά περιέχει λάθη, μπορεί να παραβιάσει την ιδιωτικοτητα του χρήστη η να βλάψει το υπολογιστικό του σύστημα. Η Microsoft ήταν ενήμερη για τα προβλήματα ασφαλείας όταν διέθεσε στη κυκλοφορία το ActiveX. Με σκοπό να αποτρέψει μια εξάπλωση επιβλαβών controls η Microsoft και η Verisign δημιούργησαν ένα σύστημα πιστοποίησης λογισμικού γνωστό ως Authenticode, υπό το οποίο τα controls είναι κρυπτογραφικά υπογεγραμμένα από τους κατασκευαστές τους, προτού διατεθούν στην κυκλοφορία. Η υπογραφή πιστοποιεί μοναδικά τον κατασκευαστή του προγράμματος, και παρέχει μια ισχυρή εγγύηση ότι το λογισμικό δεν τροποποιήθηκε από τότε που υπογράφηκε. Όταν ένας περιηγητής δικτύου κατεβάζει ένα ActiveX control, ελέγχει την εγκυρότητα της υπογραφής του. Αν δεν υπάρχει υπογραφή ή η υπογραφή είναι από έναν μη εμπιστεύσιμο πάροχο λογισμικού, ή το control τροποποιήθηκε από τότε που υπογράφηκε, ο περιηγητής δικτύου θα ανιχνεύσει το πρόβλημα. Το internet explorer διατηρεί μια λίστα από πιστοποιητικά οργανισμών πιστοποίησης όπως και πιστοποιητικά από κατασκευαστές λογισμικού που ο χρήστης εμπιστεύεται. Πρώτου 17

18 εκτελέσει ένα υπογεγραμμένο control, το internet explorer ελέγχει αν το πιστοποιητικό που χρησιμοποιήθηκε για να το υπογράψει ανήκει σε έναν εμπιστεύσιμο κατασκευαστή λογισμικού. Αν όχι, ο περιηγητής ελέγχει αν η αρχή πιστοποίησης που υπέγραψε το πιστοποιητικό του κατασκευαστή λογισμικού είναι εμπιστεύσιμη. Αν δεν ικανοποιείται κανένα από τα δύο κριτήρια, τότε ο περιηγητής ή βγάζει ένα προειδοποιητικό παράθυρο ζητώντας από τον χρήστη να αποφασίσει για τυχόν εκτέλεση του control η ματαιώνει την ενέργεια, ανάλογα με τις ρυθμίσεις του. Παρόλα αυτά, το μοντέλο ασφαλείας Authenticode έχει κάποια προβλήματα. Καταρχάς δεν υπάρχει κάποια εγγύηση ότι ένας κατασκευαστής προγράμματος με επιβλαβείς σκοπούς δεν θα κάνει αίτηση ή δεν θα έχει ήδη ένα πιστοποιητικό εκδότη. Ταυτόχρονα, το σύστημα υποθέτει ότι τα επικίνδυνα με σκοπό προγράμματα είναι ο μεγαλύτερος κίνδυνος για τον υπολογιστή του χρήστη, παραβλέποντας τυχόν προβλήματα ασφαλείας που μπορεί να προκύψουν από λάθη στην κατασκευή ενός εμπιστεύσιμου προγράμματος. Το internet explorer προσφέρει αρκετές επιλογές για τον έλεγχο της συμπεριφοράς του ActiveX. Ο χρήστης μπορεί να επιλέξει να μην τρέχει καθόλου controls, να τρέχει αυτόματα υπογεγραμμένα controls άλλα να προειδοποιείται πρώτου τρέξει μη υπογεγραμμένα, ή να τρέχει οποιοδήποτε control, υπογεγραμμένο ή μη. JAVASCRIPT Η JavaScript, που κυκλοφόρησε το 1995 από την επιχείρηση Netscape, είναι μόνο ένα από τα πολλά web scripts (όπως τα VBScript, ECMAScript, και Jscript) που κυκλοφορούν και είναι πιθανώς η πιο διαδεδομένη. Αυτές οι γλώσσες σεναρίου εντολών προσφέρουν ένα ενδιάμεσο στη συγγραφή HTML και στην κατασκευή applets/controls. Χρησιμοποιώντας επεκτάσεις της HTML γλώσσας, οι σχεδιαστές των ιστοσελίδων μπορούν να γράψουν μικρά προγράμματα για να ελέγχουν και να τροποποιούν τα περιεχόμενα φορμών συμπλήρωσης, να ανοίγουν και να κλείνουν παράθυρα, να φορτώνουν νέα URLs και να παράγουν κείμενο δυναμικά. Ένα ακόμα σημαντικό χαρακτηριστικό τους είναι ότι μπορούν να χρησιμοποιηθούν για αποστολή μηνυμάτων σε Java applets ή ActiveX controls. Αυτό επιτρέπει στους κατασκευαστές να προσθέτουν applets και controls τρίτων στις ιστοσελίδες τους και μετά να τα τροποποιούν για να παράγουν χρήσιμα εφέ. Από την εισαγωγή της η JavaScript δέχτηκε ένα σημαντικό μερίδιο της προσοχής της κοινότητας του διαδικτύου. Ένας αριθμός τρυπών ασφαλείας στον σχεδιασμό και την εφαρμογή της ανακαλύφθηκαν. Αντίθετα με την Java και το ActiveX όπου το μοντέλο ασφαλείας ήταν κομμάτι του αρχικού σχεδιασμού, στην JavaScript φαίνεται ότι εξελίχθηκε με τον χρόνο. Έτσι, αρχικές εκδόσεις της JavaScript περιείχαν πολλά λάθη και παραλείψεις. Καθώς τα προβλήματα αναφέρονταν, τα λάθη διορθώνονταν συνήθως απενεργοποιώντας κάποια από τα χαρακτηριστικά ή τις επιλογές της γλώσσας. Αυτή η διεργασία συνεχίζεται και σήμερα. Καταρχάς, κώδικας σε Javascript μπορεί να αναπτυχθεί για να εκτελέσει ηθελημένα επιβλαβείς εντολές στο σύστημα του χρήστη, μέσα στα όρια της γλώσσας προγραμματισμού. Παρόλα αυτά, υπάρχει λίγη ή και καθόλου προσοχή στην αποτροπή εμφάνισης τέτοιου κώδικα στις ιστοσελίδες. Η μόνη διασφάλιση θα ήταν η περιήγηση μόνο σε εμπιστεύσιμες και καλόφημες ιστοσελίδες. Παρότι κάποια χαρακτηριστικά ασφαλείας εναντίον επιβλαβούς κώδικα έχουν ενσωματωθεί στους σημερινούς περιηγητές δικτύου, αρκετή ζημιά μπορεί να γίνει χωρίς να παραβιαστούν οι περιορισμοί του περιηγητή. Καθώς η JavaScript μπορεί να είναι δυναμική και να εκτελείται απομακρυσμένα, ένας ακόμα παράγοντας που πρέπει να προσεχθεί είναι και ο κώδικας. Αν μέρος, ή και ολόκληρος ο κώδικας εκτελείται από κάποιο άλλο domain, είναι σημαντικό να υπάρχει προσοχή για την ημερομηνία λήξης των συγκεκριμένων domains καθώς και την εμπιστευσιμότητα τους, καθώς 18

19 τέτοιος κώδικας μπορεί εύκολα να αλλαχθεί με σκοπό να εκμεταλλευτεί την ιστοσελίδα. Η ασφάλεια της JavaScript κυρίως σχετίζεται με επιθέσεις phising, κάτι το οποίο συνήθως γίνεται χρησιμοποιώντας το χαρακτηριστικό της ανακατεύθυνσης (redirection). Ευτυχώς, με τα εξελιγμένα μέτρα ασφαλείας που λαμβάνονται από σύγχρονους περιηγητές δικτύου όπως το Mozilla Firefox, οι απειλές ασφαλείας που σχετίζονται με την JavaScript μειώνονται. Ο περιηγητής από θέμα ασφαλείας Ένας περιηγητής δικτύου δεν είναι αναγκαίο να τρέχει ενεργό περιεχόμενο για να θέσει σε κίνδυνο την ασφάλεια του χρήστη. Επειδή οι περιηγητές δικτύου είναι μεγάλα και πολύπλοκα προγράμματα λογισμικού είναι και τα ίδια ευάλωτα σε λάθη ασφαλείας. Έχει μάλιστα αναφερθεί ένας μεγάλος αριθμός τέτοιων σφαλμάτων σε όλους τους περιηγητές δικτύου, όπως παρουσιάζεται και στο σχήμα 1. Σχήμα 1. (οι πληροφορίες ανανεώθηκαν τελευταία φορά στις 10 Φεβρουαρίου 2009) 19

20 Τι μπορεί να κάνει ο χρήστης Τι πρέπει λοιπόν να κάνει ο χρήστης; Από τη μια το ενεργό περιεχόμενο βελτιώνει την ποιότητα της περιήγησης στο διαδίκτυο και αποτελεί τη βάση για μια νέα γενιά εφαρμογών, από την άλλη όμως τυχόν χρήση του ενέχει κινδύνους για την ασφάλεια των δεδομένων και του υλικού του χρήστη. Η παράγραφος αυτή δίνει κάποιες συμβουλές προφύλαξης. Δικαιώματα χρήστη Σε λειτουργικά συστήματα πολλαπλών χρηστών, όπως τα συστήματα που είναι βασισμένα στα Windows NT και το UNIX, επιβλαβής κώδικας που θα τρέξει από τον λογαριασμό ενός χρήστη, θα έχει τα δικαιώματα χρήσης του χρήστη. Παρότι αυτό δεν αποτελεί προστασία για τα δεδομένα του χρήστη, προστατεύει το περαιτέρω σύστημα από ζημιά. Ζωτικά εκτελέσιμα του συστήματος, εφαρμογές, αρχεία ρυθμίσεων, και έγγραφα κωδικών θα είναι προστατευμένα από τροποποίηση και ο κίνδυνος περαιτέρω μόλυνσης σε υπολογιστές συνδεδεμένους με τον χρήστη μέσω του δικτύου θα περιοριστεί. Εντολές που μπορεί να κάνουν εκτενή ζημιά, όπως η επαναμορφοποίηση του σκληρού δίσκου, δεν είναι συνήθως διαθέσιμες στον απλό χρήστη του συστήματος. Σε συστήματα όπως τα Windows NT και το UNIX, οι παρακάτω συμβουλές μπορούν να εφαρμοστούν: Ένας περιηγητής δικτύου ή και οποιαδήποτε άλλη μη διαχειριστική εφαρμογή είναι καλό να μην τρέχει από έναν προνομιούχο λογαριασμό χρήστη ( root στα Unix και administrator στα Windows NΤ). Το σύστημα πρέπει να τροποποιηθεί έτσι ώστε μη προνομιούχοι χρήστες να μην έχουν δικαιώματα εγγραφής σε αρχεία του συστήματος και εφαρμογές. Σε συστήματα με βάση το Windows NT, ο κατάλογος των αρχείων του συστήματος να αποθηκευτεί σε ένα NTFS σύστημα αρχείων, το οποίο παρέχει εργαλεία πρόσβασης σε αρχεία που βοηθούν στην πρόληψη μη εξουσιοδοτημένων μετατροπών σε αρχεία. Προγράμματα Antivirus Ο χρήστης θα πρέπει να έχει και να χρησιμοποιεί ένα καλό πρόγραμμα antivirus ειδικά αν δουλεύει σε λειτουργικά συστήματα, όπως τα Windows, που είναι ευαίσθητα σε ιούς και άλλα επιβλαβή προγράμματα. Όλα τα προγράμματα ανίχνευσης και προστασίας από ιούς ελέγχουν εκτελέσιμα αρχεία, συστήματα αρχείων και εξωτερικές συσκευές αποθήκευσης. Ο έλεγχος μπορεί να συμβαίνει είτε σε μια προκαθορισμένη από τον χρήστη χρονική στιγμή είτε μπορεί να ενεργοποιηθεί από μια ενέργεια του χρήστη όπως το κατέβασμα από το διαδίκτυο ενός αρχείου. Σημαντικό είναι όμως τα προγράμματα antivirus και οι βάσεις δεδομένων τους να ανανεώνονται συχνά. Το σχήμα 2 παρουσιάζει κάποια προγράμματα και μια αξιολόγηση τους. Έλεγχος της ακεραιότητας και της γνησιότητας ενός κατεβασμένου λογισμικού Συχνά ένα επιβλαβές λογισμικό είναι μεταμφιεσμένο να μοιάζει σε ένα γνωστό εμπιστεύσιμο πρόγραμμα. Ταυτόχρονα κάποιος μπορεί να μολύνει ένα δημοφιλές πακέτο λογισμικού με έναν ίο και να το διαθέσει σε ένα FTP server ή μια ιστοσελίδα. Παρότι δεν υπάρχει κάποια εγγύηση για την ακεραιότητα του λογισμικού είναι ασφαλέστερο ο χρήστης να το κατεβάζει από την επίσημη ιστοσελίδα του προγράμματος ή από μεγάλες εμπιστεύσιμες ιστοσελίδες παροχής λογισμικού. 20

21 Σχήμα 2 Περιηγητές δικτύου Ο χρήστης θα πρέπει να διασφαλίσει ότι ο περιηγητής δικτύου που χρησιμοποιεί έχει ανανεωθεί πρόσφατα. Ταυτόχρονα, καλό θα ήταν να έχει εγκατεστημένους περισσότερους του ενός περιηγητές και να υποστηρίζουν 128 bit κρυπτογράφηση. Επίσης προτείνεται να αποφεύγει αμφισβητήσιμες ή κακόφημες ιστοσελίδες. Ταυτόχρονα ο χρήστης μέσω των ρυθμίσεων του περιηγητή του, ή και μέσω πρόσθετων (όπως το Noscript για το Firefox) μπορεί να περιορίσει ή και να διακόψει πλήρως την εμφάνιση ενεργού περιεχομένου. Backups (Αποθηκεύσεις ασφαλείας) Όσο ασφαλές και αν είναι το σύστημα του χρήστη δεν υπάρχει κάποια εγγύηση ότι δεν θα συμβεί κάποιο απρόοπτο που θα οδηγήσει σε απώλεια δεδομένων. Για αυτό το λόγο καλό είναι ο χρήστης περιοδικά να αποθηκεύει τα δεδομένα του σε εξωτερικές συσκευές αποθήκευσης. 21

22 Ιδιωτικότητα στο διαδίκτυο (Web Privacy) Μπορεί η περιήγηση στο διαδίκτυο να φαίνεται σαν μια ανώνυμη δραστηριότητα, κάτι τέτοιο όμως απέχει αρκετά από την πραγματικότητα. Οτιδήποτε ο χρήστης κάνει, μπορεί να καταγράφεται αυτόματα. Ταυτόχρονα δεν μπορεί να γνωρίζει ποιες πληροφορίες συγκεντρώνονται, ούτε για ποιο σκοπό. Υπάρχουν πολλές πιθανές τοποθεσίες όπου οι καταγραφές των URLs που ο χρήστης έχει επισκεφθεί μπορεί να αποθηκεύονται για εκμετάλλευση. 1. Στο ιστορικό του περιηγητή του χρήστη και στην προσωρινή μνήμη των εγγράφων. 2. Στο τοίχος ασφαλείας του οργανισμού του χρήστη. 3. Στο τοίχος ασφαλείας ή στο proxy server του ISP του χρήστη. 4. Σε καθέναν από τους απομακρυσμένους εξυπηρέτες που επισκέφθηκε. Οι πληροφορίες που μπορεί να ανακτηθούν από αυτές τις πηγές διαφέρουν. Μπορεί να αφορούν τις ιστοσελίδες που ο χρήστης επισκέφθηκε, τα έγγραφα που έλαβε από το επιχειρησιακό του intranet, το όνομα και την ΙΡ διεύθυνση του υπολογιστή του, λέξεις κλειδιά στις αναζητήσεις του στο διαδίκτυο. Μεμονωμένες ιστοσελίδες είναι επίσης υπεύθυνες για την δημιουργία και συλλογή cookies, που χρησιμοποιούνται για να μαρκάρουν περιηγητές έτσι ώστε ο εξυπηρετητής να μπορεί να τους αναγνωρίσει αν ξαναεπιστρέψουν. Ο μεγαλύτερος κίνδυνος, είναι όμως πληροφορίες που ο χρήστης εθελοντικά δίνει σε μια ιστοσελίδα. Φόρμες κριτικής χρηστών, αιτήσεις για περαιτέρω πληροφορίες, online παραγγελίες και αναρτήσεις σε γκρουπ συζητήσεων, όλα μπορεί να αποθηκευτούν για ακαθόριστη χρονική περίοδο και να χρησιμοποιηθούν από την ιστοσελίδα κατά βούληση. Στην συνέχεια της ενότητας, δίνονται τρόποι με τους οποίους μπορούν να εξαχθούν πληροφορίες για τον χρήστη, καθώς και συμβουλές προφύλαξης. Server logs Αρκετές από της πληροφορίες που καταγράφονται κατά τη διάρκεια μιας συνόδου περιήγησης στο διαδίκτυο καταλήγουν στα αρχεία καταγραφών των απομακρυσμένων εξυπηρετητών. Τα log αρχεία, τα οποία δημιουργούνται και συντηρούνται αυτόματα από τον εξυπηρετητή, είναι μια καταγραφή των δραστηριοτήτων που εκτελούνται από αυτόν. Ένα τυπικό παράδειγμα είναι ένα web server log που συντηρεί ένα ιστορικό από αιτήσεις σελίδων. Το W3C (world wide web consortium) διατηρεί μια στάνταρ μορφοποίηση για τα log αρχεία, αλλά και άλλες μορφές ενδέχεται να υπάρχουν. Οι πληροφορίες για της αιτήσεις συνήθως περιλαμβάνουν την ΙΡ διεύθυνση του πελάτη, την ώρα και ημερομηνία της αίτησης, την σελίδα που αιτήθηκε, τον ΗΤΤΡ κώδικα, τα bytes της συνδιαλλαγής, τον agent του χρήστη (συνήθως δηλαδή των περιηγητή δικτύου του χρήστη, πληροφορίες για το σύστημα στο οποίο ο περιηγητής εκτελείται, την πλατφόρμα που ο περιηγητής χρησιμοποιεί, καθώς και λεπτομέρειες για αυτήν), καθώς και το referrer, δηλαδή την διεύθυνση της ιστοσελίδας (πιο συχνά το URL) στην οποία ήταν ο χρήστης πριν κάνει την αίτηση του. Αυτά τα στοιχεία μπορούν να συνδυαστούν σε ένα αρχείο ή να διαχωριστούν σε ξεχωριστά logs, όπως το access log, το error log και το referrer log. Αυτά τα αρχεία δεν είναι συνήθως προσβάσιμα στους απλούς χρήστες του ίντερνετ, αλλά μόνο στους διαχειριστές της ιστοσελίδας. Μια στατιστική ανάλυση του server log μπορεί να εξάγει πολλές πληροφορίες για τους χρήστες αλλά και την επισκεψιμότητα της ιστοσελίδας γενικά. 22

23 Referrer logs Μια ενδιαφέρουσα πηγή πληροφοριών από τα logs των server είναι το πεδίο του referrer, το οποίο συνήθως καταγράφεται από πολλούς εξυπηρέτες σε ένα διαφορετικό αρχείο το referer log. Πολλές ιστοσελίδες χρησιμοποιούν τα referrers ως μια προσπάθεια να παρακολουθούν τους χρήστες τους, για διαφημιστικούς λόγους ή λόγους ασφαλείας. Υπάρχουν πολλά λογισμικά ανάλυσης web logs που μπορούν να επεξεργαστούν τις συγκεκριμένες πληροφορίες. Τα πεδία referrer μπορούν να διαγνώσουν και να λύσουν πιθανά προβλήματα. Ταυτόχρονα όμως, εξαιτίας της προοπτικής του referrer πεδίου να διαρρέει πληροφορίες από μια ιστοσελίδα στην άλλη, μπορεί να οδηγήσουν σε σοβαρές παραβιάσεις της ιδιωτικότητας του χρήστη. Για αυτό το λόγο, ορισμένοι περιηγητές δικτύου, επιτρέπουν στον χρήστη να απενεργοποιήσει την αποστολή αυτών των πληροφοριών. Ορισμένα proxy λογισμικά αλλά και τείχη ασφαλείας έχουν επίσης την δυνατότητα φιλτραρίσματος των referrer πληροφοριών, για την αποφυγή διαρροών μη δημοσίων ιστοσελίδων. Proxy logs Τα proxies του δικτύου είναι τροποποιημένοι web servers που δρουν ως ενδιάμεσοι ανάμεσα στον χρήστη και στον απομακρυσμένο εξυπηρετητή του δικτύου. Όταν ένα proxy χρησιμοποιείται, όλες οι αιτήσεις για έγγραφα είναι έμμεσες. Αντί να απευθύνεται απευθείας στην απομακρυσμένη ιστοσελίδα για ένα έγγραφο, ο περιηγητής του χρήστη, αναθέτει στο proxy να του το παραδώσει. Τα proxies χρησιμοποιούνται από πάροχους ίντερνετ για να μειώσουν την κίνηση στο διαδίκτυο. Αναγνωρίζοντας ότι η πλειοψηφία των χρηστών, αιτούνται τα ίδια δημοφιλή έγγραφα επαναλαμβανόμενα, αυτά τα proxies τα αποθηκεύουν προσωρινά, στις τοπικές μηχανές των παρόχων. Όταν φθάνουν αιτήσεις για URLs, το proxy αναζητάει πρώτα την προσωρινή του μνήμη. Αν το έγγραφο υπάρχει, τότε το proxy το παραδίδει απευθείας στον χρήστη, μειώνοντας με αυτόν τον τρόπο την χρήση του δικτύου και τον χρόνο απόκρισης, αλλιώς απευθύνεται στην απομακρυσμένη ιστοσελίδα. Τα web proxies είναι επίσης αναγκαία συστατικά για αρκετά συστήματα τείχους ασφαλείας. Ορισμένες αρχιτεκτονικές firewall, εμποδίζουν την άμεση πρόσβαση από την πύλη σε αιτήσεις για έγγραφα του διαδικτύου. Σε αυτήν την περίπτωση, ένα proxy εγκαθίσταται, στη μηχανή που φιλοξενεί το τείχος ασφαλείας για να προωθεί της αιτήσεις ανάμεσα στο εσωτερικό και το εξωτερικό δίκτυο. Τα proxies είναι γενικά διαφανή για τον τελικό χρήστη. Για την ακρίβεια, μπορεί καν να μην ξέρει ότι ένα proxy χρησιμοποιείται. Τα αρχεία καταγραφών των εξυπηρετητών proxy, καταγράφουν ότι και οι συμβατικοί web servers και ακόμη περισσότερα. Όλα τα URL που αιτήθηκαν από τους χρήστες καταγράφονται, μαζί με την ώρα και ημερομηνία και τις referrer πληροφορίες. Οι πάροχοι των υπηρεσιών ίντερνετ, μπορούν να παράγουν λεπτομερείς στατιστικές αναλύσεις, για τα sites τα οποία οι πελάτες τους επισκέπτονται, ή μπορούν να συσχετίσουν πελάτες με συγκεκριμένα site. Οι proxy servers μπορούν όμως και να βοηθήσουν στην διατήρηση της ιδιωτικότητας. Τα firewall proxies, προγραμματισμένα κρύβουν τη διεύθυνση του περιηγητή του χρήστη, κάνοντας έτσι την αίτηση να φαίνεται ότι προήλθε από την μηχανή του firewall. Επίσης, ειδικά σχεδιασμένα anonymizing proxies, αφαιρούν όλες τις πληροφορίες ταυτοποίησης από τις αιτήσεις στο διαδίκτυο, καθιστώντας έτσι τον εντοπισμό της πηγής αδύνατο. 23

24 Cookies Όπως είδαμε, τα αρχεία καταγραφών των εξυπηρετητών, καταγράφουν την διεύθυνση ΙΡ ή και το όνομα του υπολογιστή του χρήστη, δεν μπορούν όμως συνήθως να παρέχουν αρκετές πληροφορίες για να συσχετίσουν ένα συγκεκριμένο άτομο με κάθε αίτηση, ούτε να εντοπίσουν την συνολική διαδρομή του χρήστη στο διαδίκτυο. Τα cookies των περιηγητών,από την άλλη, δίνουν την δυνατότητα αναγνώρισης των ξεχωριστών χρηστών και της καταγραφής της περιήγησης τους στο διαδίκτυο. Τα cookies αρχικά δημιουργήθηκαν για να λυθούν προβλήματα που προέκυπταν καθώς το HTTP πρωτόκολλο είναι χωρίς σύνδεση. Παρόλο που αυτή η συμπεριφορά παρέχει πλεονεκτήματα, ταυτόχρονα δημιουργεί και προβλήματα για τους κατασκευαστές ιστοσελίδων, καθώς καθιστά πολύ δύσκολο για την εφαρμογή του διαδικτύου να μπορεί να ξεχωρίσει μια συγκεκριμένη συνεδρία σε ένα συγκεκριμένο περιηγητή. Τα cookies έχουν πολλά μεγέθη και κατηγορίες. Μπορεί να περιέχουν μεγάλες ποσότητες πληροφοριών, ή απλά τυχαίους αριθμούς πιστοποίησης που οι ιστοσελίδες χρησιμοποιούν για να ξεχωρίζουν τους χρήστες. Μπορεί να παραμένουν επίσης στον υπολογιστή του χρήστη κατά τη διάρκεια μόνο μιας συνεδρίας του περιηγητή και να διαγράφονται κατά την έξοδο του (session cookie), ή να διαρκούν για μεγαλύτερο χρονικό διάστημα ( persistent cookies ή tracking cookies, in-memory cookies). Τα cookies μπορούν να χρησιμοποιηθούν για να διατηρήσουν δεδομένα για τον χρήστη κατά την διάρκεια της πλοήγησης, πιθανώς και για διαφορετικές επισκέψεις. Παράδειγμα είναι η εφαρμογή του καλαθιού αγοράς (shopping cart) που χρησιμοποιείται από αρκετές ιστοσελίδες στην οποία τα αντικείμενα που περιέχει το καλάθι αποθηκεύονται σε βάσεις δεδομένων στην πλευρά του εξυπηρετητή, ενώ τα cookies περιέχουν ένα μοναδικό αναγνωριστικό. Η είσοδος (log in) σε ένα site είναι επίσης άλλος ένας λόγος χρήσης τους. Κατά τη διαδικασία της εισόδου, αρχικά ο web server στέλνει ένα cookie το οποίο περιέχει ένα μοναδικό αναγνωριστικό συνεδρίας. Έπειτα ο χρήστης εισάγει τα στοιχεία του και η εφαρμογή πιστοποιεί την συνεδρία και δίνει στον χρήστη πρόσβαση στις υπηρεσίες της. Τα cookies μπορούν επίσης να χρησιμοποιηθούν για να αναγνωρίζουν οι ιστοσελίδες τους χρήστες καθώς και πληροφορίες για αυτούς ούτως ώστε να μπορούν να τους παρέχουν σχετικά δεδομένα σε μελλοντικές τους επισκέψεις. Παραδείγματος χάρη, μια ιστοσελίδα μπορεί να θυμάται το ονοματεπώνυμο του χρήστη, ούτως ώστε αυτό να εισάγεται αυτόματα σε φόρμες που θα θέλει να συμπληρώσει. Ταυτόχρονα πολλές ιστοσελίδες δίνουν μέσω των cookies την δυνατότητα προσωποποίησης των περιεχομένων τους στους χρήστες. Όταν χρησιμοποιούνται καταλλήλως, τα cookies βελτιώνουν την περιήγηση στο διαδίκτυο, επιτρέποντας στους σχεδιαστές ιστοσελίδων να προσθέτουν χαρακτηριστικά που αλλιώς θα ήταν πολύ δύσκολο να υλοποιηθούν. Τα cookies μπορούν μάλιστα να προστατέψουν την ιδιωτικότητα του χρήστη αποθηκεύοντας προσωπικές πληροφορίες τοπικά στον σκληρό δίσκο του χρήστη, και όχι στις βάσεις δεδομένων της ιστοσελίδας. Όταν όμως χρησιμοποιούνται ακατάλληλα, τα cookies είναι απειλή για την ιδιωτικότητα. Το πρωτόκολλο των cookies σχεδιάστηκε για να αποτρέπει διαρροή πληροφοριών ανάμεσα στις ιστοσελίδες. Εκτός της δυνατότητας σχεδιασμού ασφαλών cookies (secure cookie) που μεταδίδονται μόνο όταν χρησιμοποιείται το πρωτόκολλο SSL, υπάρχουν περιορισμοί στην δυνατότητα διαμοιρασμού cookies μεταξύ ιστοσελίδων, καθώς τυπικά απαγορεύεται η επιστροφή ενός cookie από έναν περιηγητή σε διαφορετικό domain από το οποίο το έλαβε. Ταυτόχρονα επειδή τα cookies παράγονται από τους servers και όχι από τον περιηγητή του χρήστη, δεν μπορούν να περιέχουν κάποια πληροφορία που ο χρήστης προηγουμένως δεν έχει εθελοντικά δώσει. 24

25 Το πρόβλημα είναι όμως ότι οι ιστοσελίδες μπορούν να συνεργαστούν ούτως ώστε να διαμοιράζονται πληροφορίες των cookies μεταξύ τους. Αυτό επιτρέπει σε διαφημιστικές εταιρίες και εταιρίες μάρκετινγκ να κατασκευάζουν ένα λεπτομερές προφίλ των συνηθειών και των ιστορικών περιήγησης των χρηστών. Τι μπορεί να κάνει ο χρήστης Όπως είναι φανερό οι ιστοσελίδες μπορούν να μαζέψουν ευρείας κλίμακας πληροφορίες για τις συνήθειες περιήγησης του χρήστη, ειδικά αν συνεργάζονται. Υπάρχουν,όμως, μερικές τεχνικές προτάσεις που μπορεί να αυξήσουν τις πιθανότητες του χρήστη να παραμείνει ανώνυμος. Καμία όμως δεν αποτελεί εγγύηση μιας και όλες έχουν τα μειονεκτήματα τους. Anonymizing Proxies Τα anonymizing proxies είναι ειδικά σχεδιασμένοι web proxy servers. Όπως και σε κάθε άλλο proxy, ο περιηγητής του χρήστη, στέλνει την αίτηση για το URL που θέλει να ανακτήσει στο proxy το οποίο αναλαμβάνει να το ζητήσει από την απομακρυσμένη ιστοσελίδα για λογαριασμό του περιηγητή. Αντίθετα όμως με τα συνηθισμένα proxies, τα οποία μεταδίδουν πληροφορίες ταυτοποίησης, τα anonymizing proxies φιλτράρουν προσεκτικά τέτοια δεδομένα. Referrer πεδία, ΙΡ διευθύνσεις των υπολογιστών των χρηστών και cookies όλα αφαιρούνται προτού οι αιτήσεις φθάσουν στην απομακρυσμένη ιστοσελίδα. Το anonymizing proxy δεν καταγράφει επίσης πληροφορίες πρόσβασης στα δικά του log αρχεία. Στα πλεονεκτήματα τους, τα anonymizing proxies είναι αποτελεσματικά και όταν ρυθμιστούν η χρήση τους είναι ουσιαστικά διαφανής για τον χρήστη. Όμως η χρήση ενός anonymizing proxy θα μειώσει αισθητά τον χρόνο απόκρισης του διαδικτύου για τον χρήστη. Ταυτόχρονα ιστοσελίδες που εξαρτώνται από cookies μπορεί πλέον να μην συμπεριφέρονται σωστά. Ακόμα τα proxies μπορεί να μην υποστηρίζουν SSL συνδέσεις, ενώ τα Java Applets και τα ActiveX controls μπορούν να παραβιάζουν την ιδιωτικότητα πάρα την χρήση τους. Επίσης ο χρήστης θα πρέπει να εμπιστεύεται τον φορέα του anonymizing proxy ότι όντως μέλημα του είναι η διασφάλιση της ιδιωτικότητας του χρήστη και δεν χρησιμοποιεί τα προσωπικά του δεδομένα για άλλους σκοπούς. Τα anonymizing proxies είναι εύκολα στην χρήση. Το proxy μπορεί να είναι προσβάσιμο είτε μέσω διαδικτύου, είτε στο firewall του οργανισμού του χρήστη ή στον ISP του. Φιλτράρισμα των cookies Οι περιηγητές δικτύου, μπορούν να ρυθμιστούν, ούτως ώστε να προειδοποιούν προτού αποδεχτούν ένα cookie. Ο χρήστης έχει τότε την ευκαιρία να απορρίψει ή να δεχτεί ένα cookie. Δυστυχώς κάτι τέτοιο είναι προβληματικό λόγω του αριθμού των cookies που χρησιμοποιούνται σήμερα, καθώς και της επιμονής ορισμένων ιστοσελίδων να προσφέρουν συνέχεια το ίδιο cookie αν απορρίπτεται. Επίσης ο χρήστης μπορεί να διαπιστώσει ότι ορισμένες ιστοσελίδες δεν λειτουργούν σωστά, η ακόμα και ότι δεν λειτουργούν καθόλου. Μια εναλλακτική λύση για τους χρήστες είναι να αποδέχονται τα cookies αλλά να μην τα αποθηκεύουν. Αυτό θα εξουδετερώσει τα μόνιμα cookies ταυτοποίησης που χρησιμοποιούνται από διαφημιστικές εταιρίες για να ξεχωρίζουν τους χρήστες, ενώ ταυτόχρονα θα επιτρέπει στους περιηγητές να δέχονται τα προσωρινά cookies που βοηθάνε τις web εφαρμογές να διατηρήσουν την σωστή τους κατάσταση. Στους περισσότερους περιηγητές υπάρχει πλέον η δυνατότητα, μέσω των ρυθμίσεων για εκκαθάριση των αρχείων που περιέχουν cookies, ενώ 25

26 υπάρχουν και πολλά πρόσθετα για τους browsers που βοηθάνε στο φιλτράρισμα των διαφημιστικών cookies από τις ιστοσελίδες. Άλλοι τρόποι διατήρησης της ιδιωτικότητας Η μεγαλύτερη απειλή στην ιδιωτικότητα του χρήστη είναι τα στοιχεία που ο ίδιος εθελοντικά δίνει σε μια ιστοσελίδα. Φόρμες κριτικής χρηστών, αιτήσεις για περαιτέρω πληροφορίες, online παραγγελίες και αναρτήσεις σε γκρουπ συζητήσεων, όλα μπορεί να αποθηκευτούν για ακαθόριστη χρονική περίοδο και να χρησιμοποιηθούν από την ιστοσελίδα κατά βούληση. Ο χρήστης θα πρέπει να είναι εξαιρετικά προσεκτικός για το που δίνει εμπιστευτικές πληροφορίες όπως η διεύθυνση του, το ονοματεπώνυμο του, το τηλέφωνο του και η διεύθυνση κατοικίας του, για την αποφυγή spam mail ή και ακόμα χειρότερων επιπλοκών. Σωστή χρήση SSL για ασφαλείς ηλεκτρονικές συναλλαγές Οι απρόσκλητοι ωτακουστές του δικτύου είναι ένα σημαντικό πρόβλημα στο ίντερνετ. Προγράμματα παρακολούθησης πακέτων, εγκαταστημένα οπουδήποτε στην διαδρομή μεταξύ του περιηγητή του δικτύου του χρήστη και του server μπορούν να καταγράψουν το σύνολο της συνομιλίας, περιλαμβανομένων πληροφοριών που δίνονται σε φόρμες συμπλήρωσης η αποθηκεύονται σε cookies. Το SSL πρωτόκολλο, το οποίο αναπτύχθηκε από την Netscape Communications Corporation, μειώνει σημαντικά τον κίνδυνο, απομονώνοντας το κανάλι δεδομένων του περιηγητή-εξυπηρετητή. Το SSL (Secure Sockets Layer) είναι ένα ευέλικτο γενικού σκοπού σύστημα κρυπτογράφησης για την προστασία της επικοινωνίας μέσω του παγκοσμίου ιστού, το οποίο είναι ενσωματωμένο στους περιηγητές. Το πρωτόκολλο SSL παρέχει κρυπτογράφηση δεδομένων, πιστοποίηση εξυπηρέτη, ακεραιότητα μηνυμάτων και προαιρετική πιστοποίηση του πελάτη. Το μήκος του κλειδιού συνόδου, που δημιουργείται για κάθε κρυπτογραφημένη συναλλαγή, κυμαίνεται από 40 ως 256 bits με μήκος κλειδιού όμως κάτω των 128 bits να θεωρείται πλέον ανασφαλές. Η χρήση του SSL είναι ιδιαίτερα εύκολη. Στην πραγματικότητα, η διαδικασία εγκατάστασης μιας ασφαλής σύνδεσης είναι τόσο γρήγορη και εύκολη, που ο χρήστης μπορεί να την χρησιμοποιεί συχνά χωρίς να το καταλαβαίνει. Σχεδόν όλοι οι browsers προσφέρουν το SSL πρωτόκολλο. Ο χρήστης μπορεί να καταλάβει ότι βρίσκεται σε μία συνεδρία που χρησιμοποιεί το SSL αν παρατηρήσει ότι το URL ξεκινάει με https (από το http-secure) αντί για http, ενώ και οι περιηγητές συνήθως δείχνουν μέσω του GUI τους ότι πραγματοποιείται μια σύνοδος SSL. Επειδή οι συνδέσεις SSL είναι αισθητά πιο αργές από τις μη κρυπτογραφημένες, οι περισσότερες ιστοσελίδες χρησιμοποιούν το HTTP για τις δημόσιες σελίδες τους. Όταν ο χρήστης εισέλθετε σε προνομιούχα κομμάτια της ιστοσελίδας ή θέλει να δώσει εμπιστευτικές πληροφορίες, ο σύνδεσμος που τον μεταφέρει εκεί είναι ένα https URL. Μπορεί να μην το συνειδητοποιήσει καν ότι το SSL χρησιμοποιείται, εκτός αν κοιτάξει για τα στοιχεία. Το URL που ζήτησε είναι προστατευμένο, όπως και τα περιεχόμενα του εγγράφου. Κάθε πληροφορία που δίνει επίσης σε φόρμες συμπλήρωσης ή μεταδίδονται από ή σε cookies είναι επίσης κρυπτογραφημένες. 26

27 Τι πρέπει να προσέχει ο χρήστης Παρότι η χρήση του SSL είναι αρκετά απλή υπάρχουν μερικές επιπλοκές για τις οποίες ο χρήστης πρέπει να προσέχει. Ανομοιότητα ονομάτων ιστοσελίδας Όταν ένας περιηγητής δικτύου συνδέεται σε έναν SSL εξυπηρέτη, κάνει μια βασική επικύρωση του πιστοποιητικού της ιστοσελίδας. Ανάμεσα στα αντικείμενα που ελέγχει είναι το αν το όνομα που δίνεται στο πιστοποιητικό ταιριάζει στο URL της ιστοσελίδας. Αν όχι, τότε συνήθως ο browser εμφανίζει μια προειδοποίηση στον χρήστη, επιτρέποντας του να ακυρώσει την συναλλαγή του ή να συνεχίσει. Είναι καλό ο χρήστης να ελέγχει μόνος του το πιστοποιητικό της ιστοσελίδας προτού δώσει εμπιστευτικές πληροφορίες. Μεικτές σελίδες Είναι πιθανό HTML σελίδες να περιέχουν μια μίξη κρυπτογραφημένων και μη κρυπτογραφημένων πληροφοριών. Συνήθως κάτι τέτοιο δεν αποτελεί αιτία ανησυχίας. Ορισμένοι browsers μάλιστα επιτρέπουν στον χρήστη να προειδοποιείται όταν είναι σε τέτοια σελίδα. Πηγή μεγαλύτερης ανησυχίας είναι όταν μια σελίδα ανακτάται με τη χρήση του πρωτοκόλλου SSL αλλά φόρμες συμπλήρωσης που περιέχονται σε αυτήν μεταδίδονται πίσω στον server χωρίς κρυπτογράφηση. Ο χρήστης θα μπορούσε να ανιχνεύσει αυτού του είδους το λάθος ρυθμίζοντας τον περιηγητή του να τον προειδοποιεί αν προσπαθήσει να στείλει φόρμες συμπλήρωσης σε μη κρυπτογραφημένη μορφή. CA και site certificates Κάθε περιηγητής δικτύου έχει προεγκατεστημένα δημόσια κλειδιά αρκετών πιστοποιητικών οργανισμών. Τα δημόσια κλειδιά είναι εγκατεστημένα στη μορφή αυτουπογραφόμενων πιστοποιητικών. Εάν ο χρήστης επιθυμεί μπορεί να διαγράψει ολοκληρωτικά ή να απενεργοποιήσει ένα πιστοποιητικό. Ταυτόχρονα οι browsers δίνουν την δυνατότητα στον χρήστη να εγκαταστήσει πρόσθετα CA πιστοποιητικά, συνήθως μέσω ίντερνετ, επιτρέποντας στον περιηγητή να αναγνωρίζει ιστοσελίδες πιστοποιημένες από αυτούς. Υπάρχει μια σημαντική διαφορά ανάμεσα σε ένα πιστοποιητικό ιστοσελίδας και ένα CA πιστοποιητικό. Ένα πιστοποιητικό σελίδας επιτρέπει στον περιηγητή να ανταλλάξει SSL κρυπτογραφημένα μηνύματα μόνο με την συγκεκριμένη ιστοσελίδα, ενώ ένα CA πιστοποιητικό επιτρέπει στον browser να εμπιστευτεί όλα τα site που αναγνωρίζει η πιστοποιούσα αρχή. Ο χρήστης δεν θα πρέπει να εγκαταστήσει ένα CA πιστοποιητικό εάν δεν είναι απόλυτα σίγουρος. 27

28 ΚΕΦΑΛΑΙΟ ΤΡΙΑ ΑΣΦΑΛΕΙΑ ΕΞΥΠΗΡΕΤΗ Εισαγωγή Αν και η εγκατάσταση ενός εξυπηρέτη δικτύου φαίνεται μια σχετικά απλή διαδικασία, οι επιπλοκές της είναι θεμελιώδεις. Αν ο εξυπηρέτης είναι συνδεδεμένος στο διαδίκτυο, ο οργανισμός αποκτά διαδικτυακή παρουσία, επιτρέποντας στους πελάτες και στους συνεταίρους τους την απομακρυσμένη ενημέρωση και τέλεση συναλλαγών. Ακόμα και αν ο εξυπηρέτης είναι συνδεδεμένος σε ένα intranet, προστίθεται μια νέα διάσταση ευχρηστίας και ενδιαφέροντος. Δυστυχώς όμως, αυτή η αυξημένη προβολή, μπορεί να προσελκύσει ανεπιθύμητη προσοχή. Όντας η ηλεκτρονική είσοδος του οργανισμού, η ιστοσελίδα του, αποτελεί στόχο για επίθεση. Ο επιτιθέμενος μπορεί να προσπαθήσει να παρακάμψει τους περιορισμούς πρόσβασης του εξυπηρέτηση για να αποκτήσει είσοδο σε εμπιστευτικά έγγραφα, που προορίζονται μόνο για εσωτερικούς χρήστες του οργανισμού, αποθηκευμένα σε άλλες θέσεις του δικτύου όπως βάσεις δεδομένων και υπολογιστές χρηστών. Ο επιτιθέμενος μπορεί ακόμα να τροποποιήσει τα περιεχόμενα της ιστοσελίδας. Για ορισμένους οργανισμούς, ο βανδαλισμός της ιστοσελίδας τους μπορεί να είναι απλά μια ντροπιαστική εμπειρία, για κάποιους άλλους όμως, όπως οικονομικά ιδρύματα, μπορεί να βλάψει μόνιμα τη φήμη τους με σύνθετες επιπτώσεις. Στη συνέχεια του κεφαλαίου δίνονται κάποιοι λόγοι για τους οποίους οι εξυπηρέτες δικτύου παρουσιάζουν αδυναμίες καθώς και κάποιες συμβουλές αντιμετώπισης τους. Ταυτόχρονα παρουσιάζονται και κάποιες πρακτικές συμβουλές για την διασφάλιση της δομής των server. Πηγές προβλημάτων για τις ιστοσελίδες Επιθέσεις στις ιστοσελίδες γίνονται σε καθημερινή βάση. Ορισμένες από αυτές δημοσιεύονται, ενώ άλλες μπορεί να μην παρατηρηθούν καν. Τα προβλήματα που προκαλούν τρύπες ασφαλείας είναι διάφορα, τα περισσότερα όμως πηγάζουν από κάποιες συγκεκριμένες κύριες αιτίες. Σφάλματα σε λογισμικά συστήματος Ένα ασφαλές λογισμικό είναι αυτό που πράττει μόνο ότι είναι γραμμένο να πράττει, και τίποτα περισσότερο. Πρέπει δηλαδή να είναι χωρίς σφάλματα. Αυτός ο ορισμός δυστυχώς ταιριάζει σε ένα μικρό αριθμό προγραμμάτων, καθώς σφάλματα βρίσκονται ακόμα και στα πιο απλά από αυτά. Τα σφάλματα γίνονται πιο συχνά όσο τα προγράμματα γίνονται μεγαλύτερα και πιο πολύπλοκα. Ταυτόχρονα εμφανίζονται όπου αναμένονται λιγότερο: σε λογισμικά από μεγάλους ή μικρούς εκδότες, γραμμένα για κάθε λειτουργικό σύστημα και για κάθε έκδοση. Όταν ένα σφάλμα συμβαίνει σε μία εφαρμογή που δρα ως εξυπηρέτης μπορεί να θέσει σε κίνδυνο την ασφάλεια του υπολογιστή που την φιλοξενεί αλλά και του δικτύου γενικότερα. Τυπικά λάθη στις εφαρμογές εξυπηρέτη εμφανίζονται όταν ο τελευταίος εκτίθεται σε μία κατάσταση που οι δημιουργοί του δεν ανέμεναν ή ακόμα και όταν υποσυστήματα του 28

29 λογισμικού αλληλεπιδρούν με απρόσμενους τρόπους. Οι crackers (άτομα που επιδιώκουν να παραβιάζουν υπολογιστικά συστήματα ή δίκτυα υπολογιστών) είναι σε συνεχή αναζήτηση για τέτοια σφάλματα καθώς μπορούν να αποτελέσουν πιθανή είσοδο. Εξετάζοντας προσεκτικά την είσοδο που δίνεται σε έναν εξυπηρέτη ή με έναν ελεγμένο χειρισμό του περιβάλλοντος του, οι crackers μπορούν να οδηγήσουν το λογισμικό να εκτελέσει μια ενέργεια που δεν ανέμεναν ούτε οι κατασκευαστές του. Παρόλο που ο στοιχειώδης εξυπηρέτης δικτύου μπορεί να είναι αρκετά μικρός, οι σύγχρονοι web servers δεν είναι απλοί. Έχουν πολλές επιλογές τροποποίησης, είσοδο σε ένα πλήθος βάσεων δεδομένων, παροχή υποστήριξης για προηγμένα πρωτόκολλα δικτύου και είναι επεκτάσιμοι με διεπαφές API και CGI scripts. Το εκτελέσιμο αρχείο για έναν τυπικό web server είναι περίπου τρεις με πέντε φορές όσο για ένα FTP server. Εξαιτίας του ανταγωνισμού των κατασκευαστών εφαρμογών εξυπηρετών δικτύου, οι web servers κυκλοφορούν και ανανεώνονται με πολύ γρήγορο ρυθμό. Είναι μεγάλα και πολύπλοκα προγράμματα και ταυτόχρονα νέα και χωρίς πολλές δοκιμές με αποτέλεσμα να υπάρχει μεγάλη πιθανότητα να περιέχουν σφάλματα σχετικά με την ασφάλεια. Επιπλέον, σφάλματα σε άλλα συστήματα που αλληλεπιδρούν με τον server, όπως βάσεις δεδομένων, CGI scripts, και server API modules, μπορεί να ανοίξουν τρύπες ασφαλείας. Λάθος διαμόρφωση λογισμικού Ακόμα και αν ο εξυπηρέτης δικτύου και όλα τα υποστηρικτικά του λογισμικά είναι ελεύθερα από σφάλματα, μια ιστοσελίδα δεν θα είναι ασφαλής, εκτός αν ο server καθώς και όλοι οι υπόλοιποι εξυπηρέτες του δικτύου, και τα λειτουργικά συστήματα των υπολογιστών που φιλοξενούνται είναι σωστά ρυθμισμένα. Παρότι τα έτοιμα για δίκτυο λειτουργικά συστήματα, σχεδιάστηκαν να είναι ασφαλή, συνήθως απαιτείται κάποιος κόπος για να συμβεί αυτό. Όταν ένα λογισμικό τίθεται σε κυκλοφορία, ο κύριος σκοπός του κατασκευαστή του συνήθως δεν είναι να το κάνει ασφαλές αλλά εύκολο στην εγκατάσταση και στην χρήση. Ως αποτέλεσμα τα περισσότερα συστήματα είναι ρυθμισμένα στην πιο ανεκτική τους μορφή. Δημοφιλείς υπηρεσίες δικτύου είναι ενεργοποιημένες εξ ορισμού όπως και λειτουργίες απομακρυσμένης τροποποίησης, και η πολιτική πρόσβασης σε αρχεία συστήματος είναι πολύ χαλαρή. Η λειτουργία ενός εξυπηρέτη δικτύου του οποίου ο διαχειριστής δεν έχει πλήρη γνώση αποτελεί σημαντικό κίνδυνο. Πιθανή αδυναμία μπορεί επίσης να εμφανιστεί εξαιτίας των προκαθορισμένων λογαριασμών χρήστη που ορισμένα λειτουργικά συστήματα δημιουργούν κατά την εγκατάσταση, αλλά παραλείπεται έπειτα να διαγραφούν. Η αρχική διαρρύθμιση του Windows NT workstation είναι ιδιαίτερα ευάλωτη, ενώ και αρκετές εκδόσεις Unix έχουν πολλές επιλογές ενεργοποιημένες. Ένα ευρέος διαδεδομένο πρόβλημα είναι τα λάθος ρυθμισμένα δικαιώματα αρχείων. Τα λειτουργικά συστήματα πολλαπλών χρηστών χρησιμοποιούν τα δικαιώματα των χρηστών ως τον βασικό τους μηχανισμό ασφαλείας. Κάθε εγγεγραμμένος χρήστης έχει ξεχωριστό λογαριασμό εισόδου. Κάθε λογαριασμός σχετίζεται με διαφορετικά επίπεδα δικαιωμάτων, επιτρέποντας η απορρίπτοντας την ανάγνωση και εγγραφή συγκεκριμένων αρχείων, το άνοιγμα των συνδέσεων δικτύου, και την πρόσβαση σε συσκευές. Αυτός ο μηχανισμός δίνει στους προνομιούχους χρήστες, όπως τους διαχειριστές του συστήματος, την ικανότητα να κάνουν σημαντικές τροποποιήσεις στη διαρρύθμιση του συστήματος ενώ αποτρέπει τους υπόλοιπους από το να προβούν σε μη εγκεκριμένες αλλαγές. Όπως και οι χρήστες, έτσι και οι εξυπηρέτες δικτύου και άλλα προγράμματα έχουν συγκεκριμένα προνόμια. Πολλοί servers, στην πραγματικότητα, εισέρχονται στο σύστημα 29

30 χρησιμοποιώντας λογαριασμούς που δημιουργήθηκαν ειδικά για αυτούς. Στη θεωρία ένας εξυπηρέτης θα έπρεπε να έχει τόσα δικαιώματα όσα του επιτρέπουν να φέρνει σε πέρας την δουλεία του. Δυστυχώς, στην πράξη, τους δίνονται συνήθως πολύ περισσότερα προνόμια, καθιστώντας τους έτσι έναν ελκυστικό στόχο για επίθεση. Ο επιτιθέμενος θα προσπαθήσει να εκμεταλλευτεί λάθη στο λογισμικό του εξυπηρέτη για να εκτελέσει τις εντολές της προτίμησης του. Αν το επιτύχει, οι εντολές θα εκτελεστούν με τα δικαιώματα του εξυπηρέτη, επιτρέποντας του πρόσβαση σε εμπιστευτικές πληροφορίες και άλλα ευαίσθητα κομμάτια του συστήματος. Ορισμένες ιστοσελίδες μάλιστα κάνουν το λάθος να δίνουν στον εξυπηρέτη προνόμια διαχειριστή. Το Hardware του εξυπηρέτη δεν είναι ασφαλές Ο υπολογιστής στον οποίο εκτελείται ο εξυπηρέτης θα πρέπει να είναι τοποθετημένος σε ασφαλή τοποθεσία. Αυτό αν και αυτονόητο, αρκετές φορές παραλείπεται. Δεν θα πρέπει συνεπώς να είναι τοποθετημένος σε δημόσιο ή με εύκολη πρόσβαση χώρο, ούτε να χρησιμοποιείται ως γενικού σκοπού σταθμός εργασίας. Ακόμα και αν χρειάζεται κάποιος κωδικός χρήστη και όνομα για την είσοδο σε αυτό η παραβίαση του είναι μια σχετικά εύκολη υπόθεση. Τα δίκτυα δεν είναι ασφαλή Η πλειοψηφία των εκπομπών δεδομένων στο ίντερνετ αλλά και στα περισσότερα τοπικά δίκτυα είναι μη κρυπτογραφημένες. Αυτό δίνει την δυνατότητα στον οποιοδήποτε με πρόσβαση στο δίκτυο και το κατάλληλο λογισμικό να υποκλέπτει μηνύματα. Ως αποτέλεσμα, έγγραφα, s αλλά και διαδραστικές σύνοδοι εισόδου είναι ευπαθείς σε απρόσκλητους ωτακουστές. Σημαντικό κίνδυνο αντιμετωπίζουν τα ονόματα λογαριασμών και οι κωδικοί τους, που μπορούν να υποκλαπούν μέσω χρήσης ειδικά σχεδιασμένων προγραμμάτων υποκλοπής κωδικών. Η απομακρυσμένη εργασία και διαχείριση ενέχει ρίσκο Οι εξυπηρέτες δικτύου χρειάζονται ιδιαίτερη προσοχή. Τα log αρχεία χρειάζονται εξέταση, παράμετροι απόδοσης χρειάζονται ρύθμιση, νέοι δίσκοι και κατάλογοι αρχείων πρέπει να προστίθενται περιοδικά. Τα περιεχόμενα της ιστοσελίδας χρειάζονται συνεχώς αλλαγή και ανανέωση. Ταυτόχρονα δεν είναι συνήθως εφικτή η τοπική παρακολούθηση και διαχείριση της λειτουργίας και των περιεχομένων του εξυπηρέτη, ειδικά όταν πολλαπλοί δημιουργοί και διαχειριστές χρειάζονται ταυτόχρονα πρόσβαση στον υπολογιστή. Για αυτόν τον λόγο, πολλές ιστοσελίδες χρησιμοποιούν εργαλεία παραγωγής και διαχείρισης που επιτρέπουν απομακρυσμένη εργασία είτε μέσω τοπικού δικτύου, είτε μέσω ίντερνετ. Αν και βολικό, η απομακρυσμένη εργασία και διαχείριση δημιουργεί αρκετά προβλήματα ασφαλείας. Καθιστώντας ευκολότερο για τους νόμιμους χρήστες να κάνουν αλλαγές στις ιστοσελίδες, γίνεται ταυτόχρονα ευκολότερη και η διαδικασία μη νόμιμης εισόδου σε αυτές. 30

31 Απειλές εκ των έσω παραβλέπονται Οι περισσότερες επιθέσεις και απειλές ασφαλείας γίνονται από χρήστες που έχουν ένα νόμιμο λόγο χρήσης του συστήματος. Υπάρχουν πολλοί λόγοι για τους οποίους ένας χρήστης θα ήθελε να πειράξει το σύστημα υπολογιστών του δικού του οργανισμού, όπως απλή περιέργεια ή ακόμα και βιομηχανική κατασκοπία. Ένας μεγάλος οργανισμός, μπορεί να διαθέτει πολλαπλούς web servers. Μπορεί να υπάρχει ένας δημόσιος εξυπηρέτης για χρήστες του ίντερνετ, όπως και αρκετοί intranet servers για κάθε τμήμα του οργανισμού. Ο δημόσιος εξυπηρέτης δέχεται απειλές και από το εξωτερικό αλλά και από το εσωτερικό περιβάλλον. Οι εξυπηρέτες των τμημάτων επίσης απειλούνται και από το ίδιο τους το τμήμα αλλά και από τα υπόλοιπα τμήματα. Η ίδια προσοχή στην ασφάλεια ενός internet server πρέπει να δίνεται και για την ασφάλεια ενός intranet server. Απειλές άρνησης υπηρεσίας (Denial of Service) συχνά αγνοούνται Ένα σύγχρονο, καλοσχεδιασμένο, και σωστά ρυθμισμένο σύστημα δεν έχει κάποια αξία αν είναι ευάλωτο σε επιθέσεις άρνησης υπηρεσίας. Θα πρέπει να υπάρχει σωστή μελέτη κατά την εγκατάσταση του συστήματος ώστε να παρέχεται αρκετή προστασία και να μειώνονται τα αποτελέσματα τέτοιου είδους επιθέσεων. Απουσία πολιτικής ασφαλείας Κάθε οργανισμός θα έπρεπε να έχει μια έγγραφη πολιτική ασφαλείας, μια λίστα με το τι επιτρέπετε και το τι όχι. Θα πρέπει να αντικατοπτρίζει την πολιτική πραγματικότητα του οργανισμού και την συναλλαγή μεταξύ ρίσκου και ευχρηστίας. Συνήθως η πολιτική ασφαλείας αντικατοπτρίζει το τι πρέπει να γίνει και όχι το πώς. Βήματα για τον σωστό έλεγχο ασφαλείας ενός οργανισμού Η ασφάλεια των υπολογιστικών συστημάτων και πληροφοριών ενός οργανισμού είναι μια διεργασία που θα πρέπει να ενσωματωθεί σε κάθε κλιμάκιο και σε κάθε φάση της λειτουργίας του. Η σωστή διαχείριση ασφαλείας προϋποθέτει μια ενοποίηση ανθρώπων, διεργασιών και τεχνολογιών με στόχο την εγκατάσταση και διατήρηση μιας βάσης προστασίας για τον οργανισμό. Η διεργασία της διαχείρισης ασφαλείας περιλαμβάνει εξεύρεση των αδυναμιών, ανάλυση απειλών, βήματα άμβλυνσης και μια υποδομή που επιτρέπει την κατάλληλη και συνεχή παρακολούθηση και βελτίωση του δικτύου. Κάθε λειτουργική διαχείριση ασφαλείας περιέχει κάποια αναγκαία βήματα που θα πρέπει να εκτελεστούν με τον ένα τρόπο ή τον άλλο. Καθορισμός ρόλων και ευθυνών Καμία πολιτική ασφαλείας δεν μπορεί να έχει επιτυχία, αν δεν έχουν ανατεθεί στα κατάλληλα τμήματα και μεμονωμένα άτομα του οργανισμού οι ρόλοι και οι ευθύνες που έχουν για την διατήρηση της ασφαλείας του. 31

32 Καθορισμός ρόλων και ευθυνών Απογραφή κεφαλαίων οργανισμού Η απογραφή των κεφαλαίων ενός οργανισμού είναι κάτι το απαραίτητο. Ο διαχειριστής ασφαλείας πρέπει να ξέρει τι πρέπει να προστατέψει, προτού καθορίσει το πως. Αν και ακούγεται ως ένα αρκετά απλό και εύκολα πραγματοποιήσιμο καθήκον, στην πραγματικότητα δεν είναι. Σημαντικά δεδομένα συνήθως κρατούνται σε διάφορες τοποθεσίες στο δίκτυο της εταιρίας, ενώ και το δίκτυο επεκτείνεται χωρίς πλήρη καταγραφή. Όσο αφορά τη διαχείριση ασφαλείας, είναι εξαιρετικά σημαντικό να υπάρχει γνώση για το τι πλατφόρμες και λογισμικό χρησιμοποιείται στο περιβάλλον του οργανισμού. Αυτός είναι ο μόνος τρόπος για να γνωρίζει αν μια νέα αδυναμία που ανακοινώνεται συναντάται στο δίκτυο της εταιρίας και πρέπει να αντιμετωπιστεί. Πρέπει να ολοκληρωθεί μια πλήρης καταγραφή λειτουργικών συστημάτων που χρησιμοποιούνται, εφαρμογών, υλικού και firmware του δικτύου. Αυτό πρέπει να περιλαμβάνει τις εκδόσεις και οποιαδήποτε patches ή upgrades που εφαρμόστηκαν. Τα κάτωθι περιγράφουν τα αναγκαία βήματα για την διαχείριση κεφαλαίων. Αναγνώριση όλων των κεφαλαίων, ρυθμίσεων, εκδόσεων, λογισμικού και επιδιορθώσεων. Ανανέωση και συντήρηση αυτών των πληροφοριών για όλα τα κεφάλαια καθ'όλο τον κύκλο ζωής τους. Αναγνώριση ενός ατόμου, υπεύθυνου για την διαχείριση των κεφαλαίων. 32

33 Ρόλοι των κεφαλαίων Οι ρόλοι των διάφορων κεφαλαίων του οργανισμού πρέπει να καθοριστούν. Αυτό θα βοηθήσει να αναγνωριστεί ο αντίκτυπος αν ένα από αυτά τα κεφάλαια επηρεαστούν αρνητικά, ενώ θα βοηθήσει να διατεθούν και οι κατάλληλοι πόροι για να προστατευτούν τα πιο σημαντικά από αυτά. Οι ρόλοι των κεφαλαίων θα πρέπει να καταγραφούν με επίπεδα κατηγοριοποίησης και να ενσωματωθούν ως κομμάτι των διαδικασιών διαχείρισης κεφαλαίων. Ένα παράδειγμα κατηγοριοποίησης ως προς τον μέγιστο χρόνο μη λειτουργίας ενός πόρου του δικτύου του οργανισμού θα μπορούσε να είναι: Μη σημαντικά: 30 μέρες MTD (maximum tolerable downtime/ μέγιστος ανεκτός χρόνος μη λειτουργίας). Κανονικά: 7 μέρες MTD. Σημαντικά: 72 ώρες MTD. Επείγοντα: 24 ώρες MTD. Κρίσιμα: MTD από λεπτά ως κάποιες ώρες. Ανάπτυξη μετρήσεων Πολλές εταιρίες ήδη χρησιμοποιούν διάφορους τύπους μετρήσεων για τον εντοπισμό και την αναφορά του αριθμού και του τύπου των περιστατικών ανά μήνα, του κόστους της ανάκαμψης από αυτά τα περιστατικά σε ανθρωποώρες, και του χρόνου που χρειάζεται για να επιλυθούν συμβάντα. Ο οργανισμός θα έπρεπε επίσης να αναπτύξει μετρήσεις και για τα παρακάτω: επίγνωση ασφαλείας (security awareness) για τους χρήστες του οργανισμού. Πολιτική συμμόρφωσης στις διεργασίες. Τοποθέτηση της τεχνικής ασφάλειας (technical security posture). Περιστατικά ασφαλείας (security incidents). Αξιολόγηση και σημείο εκκίνησης Είναι σημαντικό να γίνει μια αρχική αξιολόγηση των αδυναμιών στο δίκτυο ενός οργανισμού και να τεθεί το αρχικό σημείο του επιπέδου αδυναμιών και απειλής. Ο τύπος και το βάθος των αξιολογήσεων εξαρτώνται από τον τύπο των πόρων που θα εξεταστούν. Αδυναμίες συναντώνται σε λειτουργικά συστήματα, σε εφαρμογές, στην ροή της κίνησης του δικτύου, στο προσωπικό και στις διεργασίες. 33

34 Καθορισμός επιθυμητού επιπέδου ασφαλείας Στο προηγούμενο βήμα καθορίστηκε σε ποιο επίπεδο ασφάλειας βρίσκεται ο οργανισμός τώρα και σε αυτό σε ποιο θέλει να βρεθεί. Τα επίπεδα ασφαλείας εξάγονται από μετρήσεις και στατιστικές. Μόλις καθοριστούν οι μετρήσεις που ο οργανισμός θα χρησιμοποιεί θα πρέπει να καθοριστούν και τα επίπεδα τους που θα θεωρούνται ανεκτά. Ο στόχος αυτού του επιπέδου είναι να οριστεί ένα αποδεκτό από τον οργανισμό επίπεδο ρίσκου, μια ισορροπία μεταξύ της ευχρηστίας για τον χρήστη, των απαιτήσεων ασφαλείας και της διαθέσιμης χρηματοδότησης. Μόλις το επίπεδο ασφαλείας καθοριστεί είναι καθήκον της ομάδας διαχείρισης ασφαλείας να διασφαλίσει την τήρηση του. Ανάπτυξη μιας ομάδας αντιμετώπισης περιστατικών ασφαλείας υπολογιστών Πολλοί οργανισμοί προσπαθούν να αποτρέψουν ένα πιθανό περιστατικό ασφαλείας από το να συμβεί αλλά παραμελούν να σχεδιάσουν το τι πρέπει να γίνει όταν ένα τέτοιο διαδραματίζεται. Ένα σημαντικό στοιχείο της διαχείρισης αδυναμιών οποιοδήποτε οργανισμού είναι η ομάδα αντιμετώπισης περιστατικών ασφαλείας υπολογιστών ( Computer security incident response team, CSIRT). Η ομάδα θα πρέπει να αποτελείται από τεχνικούς υπολογιστών άλλα και από managers, νομικούς όπως και άλλες ειδικότητες. Πρέπει να υπάρχει ένα κατάλληλο κανάλι επικοινωνίας για να ειδοποιούνται τα αρμόδια άτομα όταν ένα περιστατικό συμβαίνει. Είναι σημαντικό τα μέλη της ομάδας να είναι ποιοτικός εκπαιδευμένα στον τομέα ευθύνης τους. Έλεγχος της ροής πληροφόρησης για νέες αδυναμίες Το μέγεθος της πληροφόρησης για νέες αδυναμίες δικτύου και ασφαλείας είναι ιδιαίτερα υψηλό πλέον. Αυτό συμβαίνει γιατί υπάρχουν αρκετοί τύποι αδυναμιών, για πολλούς τύπους προϊόντων, που αναφέρονται κάθε εβδομάδα. Είναι σημαντικό η ομάδα ασφαλείας να ενημερώνεται για τυχόν αδυναμίες που επηρεάζουν το περιβάλλον του δικτύου της. Τα μέλη της CSIRT ομάδας θα πρέπει να λαμβάνουν αυτές τις ειδοποιήσεις και να εξετάζουν το επίπεδο απειλής. Ανάπτυξη κατηγοριοποίησης απειλών Θα πρέπει να δημιουργηθεί ένα σχήμα κατηγοριοποίησης των επιθέσεων ανάλογα με το μέγεθος της απειλής, την πιθανότητα επιτυχίας, και το επίπεδο της πιθανής ζημιάς στον οργανισμό. Αυτό το σχήμα θα πρέπει επίσης να περιλαμβάνει τα κεφάλαια που δέχονται επίθεση και τον πιθανό αντίκτυπο στον οργανισμό αν αυτά παραβιαστούν. Αυτό παρέχει έναν απλό και αποτελεσματικό τρόπο μεταφοράς ειδοποιήσεων για νέες αδυναμίες. Συνδυάζει τεχνικά και επιχειρησιακά ζητήματα για τη σωστή εξακρίβωση του επίκεντρου προσοχής από το προσωπικό. Συνοπτικά: Κατηγοριοποίηση των αδυναμιών ανάλογα με το επίπεδο απειλής και πιθανότητας επιτυχίας. Κατηγοριοποίηση των κεφαλαίων ανάλογα με το επίπεδο της τρωσιμότητας τους, ρόλου τους στον οργανισμό, και αξίας. Αποφάσεις για επανορθωτικά μέτρα να λαμβάνονται ως συνδυασμός τεχνικών και επιχειρησιακών δεδομένων. 34

35 Προτυποποίηση διαδικασιών Ανάπτυξη προτυποποιημένων διαδικασιών και οδηγιών που θα πρέπει να τηρούνται όταν μια νέα αδυναμία αναγνωρίζεται. Αυτή η προσέγγιση μειώνει τον χρόνο και τα λειτουργικά κόστη που απαιτούνται. Αυτές οι διαδικασίες θα πρέπει να περιγράφουν τα απαραίτητα βήματα που θα πρέπει να εκπληρωθούν όταν μια νέα αδυναμία αναγνωρίζεται, και τους υπεύθυνους ρόλους για να ολοκληρωθούν αυτά τα βήματα. Οι διαδικασίες θα έπρεπε να καλύπτουν όλα τα κοινά στοιχεία των βημάτων δράσης διαχείρισης αδυναμιών: αναγνώριση αδυναμίας, ανάλυση απειλής και διαδικασίες επανόρθωσης. Βελτίωση προληπτικών ελέγχων Στις διαδικασίες διαχείρισης αδυναμιών, η βελτίωση των τωρινών αντιμέτρων είναι ένα σημαντικό βήμα. Στις περισσότερες περιπτώσεις, μια επίθεση στο δίκτυο του οργανισμού, αποτελεί και μια ένδειξη ότι τα τωρινά προληπτικά μέτρα είναι ελλειπή ή έχουν παραβιαστεί. Μετά από μια εισβολή η ομάδα CSIRT δεν πρέπει μόνο να περιορίσει τις απώλειες και να επαναφέρει το περιβάλλον παραγωγής. Το προσωπικό ασφαλείας πρέπει επίσης να εκλάβει το γεγονός αυτό και ως μια ευκαιρία για ενδυνάμωση των απαραίτητων μέτρων ασφαλείας. Συνεχής παρακολούθηση Η διαχείριση αδυναμιών είναι μια διαδικασία και όχι ένα προϊόν ή ένα project. Αυτό σημαίνει ότι πρέπει να υπάρχει μια συνεχής παρακολούθηση για όλες τις πιθανές απειλές που μπορεί να αντιμετωπίσει ένας οργανισμός. Πολλοί οργανισμοί ξοδεύουν το μεγαλύτερο μέρος της προσοχής τους ελέγχοντας της εισερχόμενες θύρες αλλά είναι εξίσου σημαντικό να ελέγχονται και τα παρακάτω στοιχεία: Servers απομακρυσμένης πρόσβασης. Εξερχόμενες θύρες. Αξιολόγηση γνώσης προσωπικού ασφαλείας. Επιβεβαίωση δεδομένων και buffer overflow σε λογισμικά. Συμμόρφωση με πολιτικές, νόμους και κανόνες. Σωστή ρύθμιση συσκευών ασφαλείας. Έλεγχος δικαιωμάτων πρόσβασης. Εσωτερικές απειλές. 35

36 Εμπιστευτικά δεδομένα. Ασύρματα δίκτυα. Διατήρηση επαφών με τις κορυφαίες αδυναμίες. Αδυναμίες σε windows λειτουργικά συστήματα: Internet Information Services (IIS). Microsoft SQL Servers (MSSQL). Windows Authentication. Internet Explorer (IE). Windows Remote Access Services. Microsoft Data Access Components. Windows Scripting Host. Microsoft Outlook, Outlook Express (και οποιοσδήποτε client). Windows Peer 2 Peer File Sharing. Simple Network Management Protocol (SNMP). Αδυναμίες σε UNIX συστήματα: BIND domain name system. Remote Procedure Calls. Apache Web Server. Γενικοί Unix λογαριασμοί πρόσβασης χωρίς κωδικό πρόσβασης ή με αδύναμο 36 κωδικό πρόσβασης. Cleartext Services. Sendmail. Simple Network Management Protocol (SNMP). Secure Shell (SSH). Λάθος ρύθμιση των επιχειρησιακών υπηρεσιών NIS/NFS. Open Secure Sockets Layer (SSL).

37 Βήματα για την διασφάλιση ενός Unix web server Ένα βασικό χαρακτηριστικό των συστημάτων που βασίζονται στο Unix, (όπως τα λειτουργικά συστήματα που χρησιμοποιούν το πυρήνα Linux), είναι ότι αποτελούν λειτουργικά συστήματα πολλαπλών χρηστών. Ένα μόνο μηχάνημα, μπορεί να υποστηρίξει δεκάδες ή και εκατοντάδες χρήστες. Ο καθένας έχει ένα δικό του μοναδικό κατάλογο αρχείων (το home directory) και περιβάλλον χρήσης, και καθένας είναι προστατευμένος από την διάδραση με άλλους χρήστες μέσω ενός συστήματος αδειών πρόσβασης. Τα αρχεία, τα προγράμματα, οι συσκευές και άλλοι πόροι χρήστη προστατεύονται από τον έλεγχο πρόσβασης (access control). Για απλοποίηση οι χρήστες μπορούν να τοποθετηθούν σε ομάδες που έχουν κοινά προνόμια και δικαιώματα πρόσβασης. Τα δικαιώματα πρόσβασης χρηστών και ομάδων, είναι ο κύριος άξονας της ασφάλειας του Unix. Κάθε πρόγραμμα που τρέχει σε ένα τέτοιο σύστημα, συμπεριλαμβανομένων και αυτών που παρέχουν υπηρεσίες ίντερνετ, χρησιμοποιούν τα δικαιώματα ενός χρήστη. Ένα τυπικό σύστημα Unix εξυπηρέτη, εκτελεί διάφορες υπηρεσίες για χειρισμό ενεργειών όπως απομακρυσμένη πρόσβαση, εκτύπωση, εισερχόμενο FTP, και . Καθεμία από αυτές της υπηρεσίες τρέχουν υπό έναν λογαριασμό χρήστη (για παράδειγμα lp για printer server, ftp για ftp server). Ο χρήστης root, επίσης γνωστός και ως υπερχρήστης, είναι ένας μοναδικός λογαριασμός διαχειριστή, που έχει απεριόριστη πρόσβαση σε όλα τα κομμάτια του συστήματος. Το ίδιο ισχύει και για τις υπηρεσίες που τρέχουν υπό τα δικαιώματα του υπερχρήστη, για αυτό και αυτή η προσέγγιση δεν προτείνεται. Όταν ένα σύστημα Unix ξεκινάει για πρώτη φορά, είναι διαμορφωμένο για να αποτελέσει ένα μηχάνημα γενικής χρήσης και για αυτό τον λόγο δεν είναι ιδιαίτερα ασφαλές. Χρειάζεται κάποια βελτίωση του συστήματος προτού μπορέσει να φιλοξενήσει με ασφάλεια μια ιστοσελίδα. Περισσότερη από τη δουλειά που χρειάζεται για την ρύθμιση του Unix web server περιλαμβάνει τα ακόλουθα τέσσερα καθήκοντα: 1. Εφαρμογή επιδιορθώσεων λειτουργικού συστήματος. 2. Απενεργοποίηση μη αναγκαίων υπηρεσιών. 3. Προσθήκη μόνο του απολύτως απαραίτητου αριθμού χρηστών. 4. Σωστή ρύθμιση των δικαιωμάτων αρχείων και καταλόγων αρχείων. Το κεφάλαιο αυτό δίνει κάποιες συμβουλές για σωστή εγκατάσταση και ρύθμιση ενός εξυπηρέτη δικτύου με βάση το Unix. Εφαρμογή επιδιορθώσεων λειτουργικού συστήματος Όλα τα λογισμικά περιέχουν λάθη, και τα λειτουργικά συστήματα, ανεξαρτήτως εκδόσεως και δημοτικότητας, δεν θα μπορούσαν να αποτελέσουν εξαίρεση. Τα περισσότερα λειτουργικά συστήματα πλέον διενεργούν αυτόματα τον έλεγχο για νέες εκδόσεις η επιδιορθώσεις του λογισμικού τους καθώς και την εγκατάσταση αυτών, εκτός αν επιλέξει διαφορετικά ο διαχειριστής τους. Είναι σημαντικό όμως, πριν την εφαρμογή οποιασδήποτε αναβάθμισης, να υπάρχει αντίγραφο ασφαλείας (backup). Επίσης, ορισμένες επιδιορθώσεις, προκειμένου να εγκατασταθούν, μπορεί να απαιτήσουν από τον εξυπηρέτη, να τεθεί εκτός λειτουργίας για κάποιο χρονικό διάστημα. 37

38 Απενεργοποίηση αδρανών υπηρεσιών Όταν ένα σύστημα Unix ξεκινάει για πρώτη φορά, συνήθως έχει αρκετές υπηρεσίες ενεργοποιημένες. Για παράδειγμα, μια έκδοση linux μπορεί να έχει ftp, web, mail καθώς και αρκετούς άλλους σέρβερς ενεργοποιημένους. Οι εξυπηρέτες δικτύου, χωρίζονται σε δύο κατηγορίες, ανάλογα με τον χρόνο έναρξης τους, τους daemons που ξεκινούν κατά την εκκίνηση του υπολογιστή και αυτούς που εκκινούν κατ'απαίτηση του inetd. Ένας daemon server παραμένει ενεργός καθ'όλη την διάρκεια χρήσης του μηχανήματος, αναμένοντας για αιτήσεις που μπορεί να εξυπηρετήσει. Το πρόγραμμα inetd αναμένει για εισερχόμενες συνδέσεις σε έναν αριθμό θυρών. Όταν φθάσει μια αίτηση, εκκινεί τον συγκεκριμένο εξυπηρέτη, που ξέρει πώς να την χειριστεί. Όταν ο εξυπηρέτης, τελειώσει την λειτουργία του, τερματίζει. Ένας απλός τρόπος για να καθορίσει ο χρήστης, ποιες ίντερνετ υπηρεσίες τρέχουν στο σύστημα του είναι μέσω του netstat, όπου μπορεί να βρει ποιες θύρες είναι στην listening κατάσταση. Η ακριβής εντολή που απαιτείται να δοθεί στο netstat, μπορεί να διαφέρει ανάλογα με το σύστημα (στον υπολογιστή του γράφον για παράδειγμα είναι netstat -atu). Οι εξυπηρέτες που εκκινούν μέσω του inetd συνήθως βρίσκονται στο έγγραφο inetd.conf. Ο χρήστης μπορεί να απενεργοποιήσει έναν εξυπηρέτη είτε σβήνοντας την κατάλληλη γραμμή από το έγγραφο, είτε βάζοντας τον χαρακτήρα δίεση (#) μπροστά του. Η υπηρεσία θα απενεργοποιηθεί κατά την επανεκκίνηση του συστήματος. Υπηρεσίες,από την άλλη, που εκτελούνται ως μόνιμοι daemons, εκκινούνται από shell scripts κατά την έναρξη του συστήματος. Η τοποθεσία αυτών των scripts διαφέρει από σύστημα σε σύστημα. Σε κάποια νέα συστήματα, βρίσκονται σε έναν κατάλογο με την ονομασία init.d ο οποίος βρίσκετε συνήθως στο /etc/. Υπάρχουν συνήθως αρκετά scripts, καθένα από τα οποία εκκινούν έναν ξεχωριστό server. Για να αποτρέψουμε έναν server από το να εκκινήσει, πρέπει να βρούμε το κομμάτι στο script που ξεκινά τον εξυπηρέτη και να τοποθετήσουμε την δίεση. Συγκεκριμένες υπηρεσίες είναι γνωστό ότι είναι προβληματικές από άποψη ασφαλείας. Καλό θα ήταν να απενεργοποιηθούν ορισμένες από αυτές όπως τα: tftp, finger, systat, netstat, uucp, exec, login, shell. Ταυτόχρονα και το sendmail πρόγραμμα θα μπορούσε να απενεργοποιηθεί, εκτός και αν ο εξυπηρέτης αποτελεί μία εισερχόμενη θύρα mail, καθώς αρκετές εκδόσεις του αντιμετώπιζαν προβλήματα. Προσθήκη των ελάχιστων απαιτούμενων λογαριασμών χρηστών Ένα μεγάλο ποσοστό των παραβιάσεων ασφαλείας μέσω ίντερνετ είναι από εισβολείς που απέκτησαν ένα έγκυρο όνομα και κωδικό χρήστη και το χρησιμοποιούν για να εισέλθουν στον εξυπηρέτη. Εκτός από τον root λογαριασμό, τα περισσότερα Unix συστήματα έχουν ακόμα αρκετούς προκαθορισμένους λογαριασμούς για χρήση σε διάφορες υπηρεσίες και εξυπηρέτες. Ορισμένα συστήματα μπορεί μάλιστα να έχουν και γνωστούς κωδικούς συννημένους σε αυτούς τους λογαριασμούς. Ο χρήστης θα έπρεπε να πάει στο αρχείο κωδικών συστήματος και να σιγουρευτεί ότι κανείς από αυτούς τους λογαριασμούς δεν μπορεί να χρησιμοποιηθεί για είσοδο, απενεργοποιώντας το πεδίο κωδικού, τοποθετώντας έναν αστερίσκο στο δεύτερο πεδίο της κατάλληλης γραμμής. 38

39 Δικαιώματα χρηστών ενός web server Συνήθως, η προκαθορισμένη εγκατάσταση ενός web server θα δημιουργήσει ένα πλήθος εκτελέσιμων και καταλόγων αρχείων, που είναι προσβάσιμα από οποιονδήποτε που μπορεί να εισέλθει στο σύστημα. Περισσότεροι από τους κινδύνους που παρουσιάζονται κατά την εκτέλεση ενός εξυπηρέτη, μπορούν να αποφευχθούν με τον προσεκτικό περιορισμό πρόσβασης σε αυτόν και τα αρχεία του. Όσο λιγότεροι είναι οι λογαριασμοί με πρόσβαση στα αρχεία ρύθμισης του server, στα logs του και στα έγγραφα του, τόσο πιο προστατευμένο το σύστημα είναι από μη εξουσιοδοτημένη τροποποίηση. Παρόλο που οι λεπτομέρειες μπορεί να διαφέρουν από εξυπηρέτη σε εξυπηρέτη, υπάρχουν κάποιοι συγκεκριμένοι τύποι καταλόγων αρχείων που χρησιμοποιούνται, ο καθένας με τα δικά του θέματα ιδιωτικότητας και ασφαλείας. Configuration directory: περιέχει αρχεία που ελέγχουν τις λειτουργίες του εξυπηρέτη. Webmaster tools directory: περιέχει μια ποικιλία εκτελέσιμων αρχείων που προορίζονται για χρήση από τον διαχειριστή. Log file directory: περιέχει τα αρχεία καταγραφών του εξυπηρέτη. CGI directory, server module directory: ο κατάλογος αρχείων CGI περιέχει scripts που χρησιμοποιούνται για να παράγουν δυναμικές μορφές δεδομένων, για απόκτηση πρόσβασης σε βάσεις δεδομένων, και για εκτέλεση διαδραστικών επιλογών. Το module directory, αν υπάρχει, επιτρέπει στους προγραμματιστές να προσθέσουν τα δικές τους λειτουργίες στον εξυπηρέτη, αυξάνοντας έτσι την χρηστικότητα του. Κακογραμμένα CGI scripts και επεκτάσεις εξυπηρέτη, είναι σημαντικές πηγές αδυναμίας για τους web servers. Η πρόσβαση σε αυτούς τους καταλόγους αρχείων πρέπει να είναι περιορισμένη. Document Directory: η κορυφή του δέντρου αρχείων HTML που περιέχουν τα στατικά έγγραφα. Υπάρχουν τέσσερις κατηγορίες χρηστών που χρειάζονται πρόσβαση σε έναν εξυπηρέτη δικτύου, στα έγγραφα του και στα βοηθητικά του αρχεία. Διαχειριστής ιστοσελίδας (Webmaster). Σχεδιαστής ιστοσελίδας (Web Author). Web developer: Ένας σχεδιαστής ιστοσελίδας, με την πρόσθετη ικανότητα να εγκαταστεί και να τροποποιεί CGI scripts και server modules. Web server: όπως κάθε Unix πρόγραμμα, ο εξυπηρέτης δικτύου, όσο εκτελείται, χρησιμοποιεί τα προνόμια ενός χρήστη. Ένας πίνακας με τα προτεινόμενα δικαιώματα πρόσβασης ανά κατηγορία χρηστών δίνεται παρακάτω. User Configuration Tools Logs CGI Documents Webmaster RW R R RW RW Web Developer RW RW Web Author R RW Web Server R R 39

40 Εκτέλεση του Web Server ως ένα μη προνομιούχο χρήστη Ο εξυπηρέτης δικτύου συνήθως ξεκινά από τον root χρήστη κατά την εκκίνηση του συστήματος. Αυτό συμβαίνει επειδή χρειάζεται τα δικαιώματα του root έτσι ώστε να μπορεί να ανοίξει την HTTP θύρα 80 (στα Unix συστήματα, οι θύρες 1 ως 1023 είναι προνομιούχες θύρες που μπορεί να ανοίξουν μόνο από τον υπερχρήστη) και να μπορεί να χρησιμοποιήσει τα αρχεία καταγραφών του εξυπηρέτη για εγγραφή. Μετά την εκκίνηση, η διεργασία του εξυπηρέτη χάνει τα δικαιώματα του root και εξυπηρετεί όλες τις εισερχόμενες αιτήσεις ως ένας μη προνομιούχος χρήστης. Αυτό βοηθάει στο να αποφευχθούν κακόβουλες διεργασίες με δικαιώματα του υπερχρήστη, σε περίπτωση που παραβιαστεί η ασφάλεια του εξυπηρέτη. Πολλοί Web Servers έχουν ρυθμιστεί να τρέχουν ως ένας χρήστης nobody που ανήκουν στο group nogroup. Αυτή η ρύθμιση δουλεύει καλά αλλά έχει το ελαφρύ μειονέκτημα ότι ο nobody χρήστης μοιράζεται και από άλλους εξυπηρέτες. Με σκοπό να παρακαμφθεί αυτό το πρόβλημα συνίσταται να αλλαχθεί το όνομα του χρήστη και του group του server (πχ http). Ταυτόχρονα έτσι δίνεται η δυνατότητα για επιλεκτική πίστωση προνομίων στον εξυπηρέτη. Ο http χρήστης δεν θα έπρεπε να έχει κωδικό εισόδου ή shell. Επίσης το home directory του μπορεί να είναι οποιοδήποτε. Είναι σημαντικό όμως ο http χρήστης, να μην ανήκει σε άλλα groups, καθώς αυτό μπορεί να παρέχει επιπλέον πρόσβαση στο σύστημα απ'ότι χρειάζεται ο εξυπηρέτης. Μόλις δημιουργηθούν ο ειδικός για τον εξυπηρέτη χρήστης και γκρουπ πρέπει να ρυθμιστεί ο server έτσι ώστε να τα χρησιμοποιεί κατά την εκκίνηση. Οι λεπτομέρειες αυτής της διαρρύθμισης διαφέρουν ανάλογα με τον server. Μια μικρή αλλά σημαντική λεπτομέρεια ακόμα αποτελεί ότι κατά την εκκίνηση ο εξυπηρέτης δικτύου, δημιουργεί αρκετά αρχεία για καταγραφή πληροφοριών logging και status. Κάποια από αυτά τα αρχεία περιέχουν εμπιστευτικές πληροφορίες. Το πρόβλημα είναι ότι ορισμένοι εξυπηρέτες τα δημιουργούν με άδειες ανάγνωσης από οποιονδήποτε χρήστη. Αν το αρχείο ρύθμισης του server το επιτρέπει ο χρήστης θα έπρεπε να αλλάξει αυτά τα δικαιώματα πρόσβασης. Απενεργοποίηση μη αναγκαίων χαρακτηριστικών εξυπηρέτη δικτύου Αυτόματη λίστα καταλόγου αρχείων Η πρώτη επιλογή που θα έπρεπε να απενεργοποιηθεί είναι η ικανότητα του εξυπηρέτη να δημιουργεί αυτόματα λίστες καταλόγων αρχείων. Κατά την δημιουργία και συντήρηση μίας ιστοσελίδας, όλων των ειδών τα έγγραφα μπορεί να μαζευτούν στο αρχείο εγγράφων: έγγραφα δοκιμών, συνθέτες κειμένων, αρχεία αυτόματης αποθήκευσης, σημειώσεις και παλιότερες σελίδες. Αν η αυτόματη δημιουργία λιστών καταλόγων αρχείων είναι ενεργοποιημένη, είναι πιθανό για τον απλό χρήστη να μπορεί να περιηγηθεί σε αυτό το υλικό, μαθαίνοντας περισσότερα για το σύστημα απ'ότι είναι επιθυμητό. Η αυτόματη δημιουργία λιστών καταλόγων αρχείων μπορεί να απενεργοποιηθεί είτε τοποθετώντας ένα welcome αρχείο ( συνήθως το index.html) είτε απενεργοποιώντας πλήρως αυτήν την επιλογή. Χρήση συμβολικών συνδέσμων Ακόμα μια επιλογή που θα μπορούσε να απενεργοποιηθεί είναι η ικανότητα για δημιουργία συμβολικών συνδέσμων για επέκταση του δέντρου εγγράφων σε άλλα κομμάτια του συστήματος αρχείων, καθώς μπορεί να δημιουργηθούν προβλήματα για την ασφάλεια του εξυπηρέτη, όταν κατά λάθος ο σύνδεσμος οδηγεί σε μία σημαντική περιοχή του συστήματος. 40

41 CGI scripts και Server Modules Τα CGI scripts και τα modules θα έπρεπε να περιοριστούν σε έναν μικρό αριθμό καθορισμένων καταλόγων αρχείων. Παρόλο που ορισμένοι εξυπηρέτες επιτρέπουν στα CGI scripts να είναι σκορπισμένα ελεύθερα ανάμεσα σε στατικά αρχεία στην ιεραρχία εγγράφων, κάτι τέτοιο θα έπρεπε να αποφευχθεί, καθώς δυσκολεύει ιδιαίτερα την εύρεση και επίβλεψη των scripts, ενώ αυξάνει και την πιθανότητα κλοπής και τροποποίησης του κώδικα τους. Ο περιορισμός των scripts σε έναν εξειδικευμένο κατάλογο αρχείων εγγυάται ότι ο εξυπηρέτης δεν θα τα αντιμετωπίσει ποτέ ως κανονικά αρχεία κειμένου ούτε θα επιστρέψει τον πηγαίο τους κώδικα. Ο διαχειριστής θα έπρεπε επίσης να ξέρει τι scripts και plug-ins είναι εγκατεστημένα και τι κάνει το καθένα. Ταυτόχρονα θα έπρεπε να σκεφτεί προσεκτικά πριν εγκαταστήσει οποιοδήποτε νέο script καθώς, αν είναι δυνατόν, να εξετάσει αυτός η κάποιος άλλος με την κατάλληλη γνώση, τον πηγαίο τους κώδικα. Όταν ένας εξυπηρέτης εκτελεί ένα script, χρησιμοποιεί τα δικαιώματα του χρήστη που του έχει ανατεθεί στο αρχείο ρύθμισης του εξυπηρέτη. Περιορίζοντας τα δικαιώματα πρόσβασης αυτού του χρήστη, περιορίζεται και η ζημιά που μπορεί να προκληθεί από ένα κακόβουλο script. Τα περιεχόμενα του εξυπηρέτη Οι λεγόμενες εντολές ενσωμάτωσης είναι εντολές που ενσωματώνονται σε ένα έγγραφο HTML και υφίστανται επεξεργασία από τον εξυπηρέτη, πριν το έγγραφο αποσταλεί στον πελάτη. Αν και τα περισσότερα από αυτά δεν αποτελούν πρόβλημα από πλευράς ασφαλείας, ένας τύπος, η φόρμα exec των περιεχομένων του εξυπηρέτη δημιουργεί ένα μεγάλο κενό στην ασφάλεια του, καθώς επιτρέπει την εκτέλεση εντολών συστήματος και την έξοδο των αποτελεσμάτων τους κατευθείαν στην ιστοσελίδα. Εκτός και αν ο σχεδιαστής της ιστοσελίδας γνωρίζει απολύτως τι κάνει, συνίσταται αυτός ο τύπος του περιεχομένου να απενεργοποιείται. Διαχείριση καταλόγων από τους χρήστες Η διαχείριση καταλόγων από τους χρήστες δίνει την δυνατότητα σε κάθε χρήστη να διατηρεί τον δικό του κατάλογο με ηλεκτρονικές σελίδες και να μπορεί να προσθέτει νέες σελίδες ή να αφαιρεί παλιότερες κατά βούληση. Οι προσωπικές σελίδες του χρήστη μπορούν να προσπελαστούν με ένα URL που περιέχει τον χαρακτήρα ~. Πολλοί χρήστες θέτουν τον εαυτό τους σε κίνδυνο, μέσω αυτής της επιλογής, μερικές φορές τοποθετώντας ιδιωτικά έγγραφα στους προσπελάσιμους από το δίκτυο κατάλογους αρχείων ή χειρότερα, τοποθετώντας συμβολικούς συνδέσμους προς ιδιωτικούς καταλόγους αρχείων. Επίσης, το να επιτρέπεται στους απλούς χρήστες να εγκαταστούν CGI scripts στους δικούς τους καταλόγους αποτελεί μεγάλο κίνδυνο για την ασφάλεια του εξυπηρέτη. Μια επιλογή είναι να απενεργοποιηθεί πλήρως αυτό το χαρακτηριστικό. Μία ακόμη πρακτική είναι η παροχή, σε κάθε χρήστη που επιθυμεί να συντάσσει ηλεκτρονικές σελίδες, ενός ιδιωτικού χώρου στο document root. Είτε οι σελίδες είναι αποθηκευμένες στις διευθύνσεις του κεντρικού χρήστη, είτε σε ένα ξεχωριστό κομμάτι του document root, το καλύτερο είναι τα περιεχόμενα του εξυπηρέτη και τα CGI scripts να μην επιτρέπονται σε καμία από αυτές τις περιοχές. Σημαντικό είναι να κατανοήσει ο χρήστης την πολιτική ασφαλείας του εξυπηρέτη και πόσο απαραίτητο είναι να την τηρεί. 41

42 Έναρξη και τερματισμός του server χωρίς δικαιώματα υπερχρήστη Από αναγκαιότητα ο εξυπηρέτης δικτύου πρέπει να ξεκινάει ως root. Επίσης απαιτούνται root δικαιώματα για να σταματήσει ο server ή να κάνει επανεκκίνηση μετά από κάποια νέα ρύθμιση, κάτι το οποίο μπορεί να αποτελέσει πρόβλημα. Ένας τρόπος για να εξαλειφθεί η ανάγκη ανάκτησης root δικαιωμάτων για διαχείριση του εξυπηρέτη, είναι η δημιουργία ενός set-user-id (suid) script για την έναρξη, τερματισμό και επανεκκίνηση του server. Τα δικαιώματα του script πρέπει να οριστούν ως root, και το script πρέπει να εκτελείται μόνο από τα μέλη της ομάδας διαχειριστών της ιστοσελίδας. Ο εξυπηρέτης σε περιβάλλον chroot Η ασφάλεια του εξυπηρέτη μπορεί να αυξηθεί σημαντικά αν τρέξει σε περιβάλλον chroot μέσα στο περιβάλλον Unix. Το σύστημα χειρισμού chroot τοποθετεί τον εξυπηρέτη σε ένα περιοριστικό πλέγμα, έτσι ώστε να μην μπορεί να δει κανένα αρχείο εκτός αυτού που βρίσκονται στο δέντρο των διευθύνσεων που προγραμματίστηκε να ξεχωρίζει. Έτσι καθορίζεται ένα directory, το οποίο θα αποτελεί το το νέο directory '/' του server root. Οτιδήποτε πέρα από αυτό το directory, δεν είναι προσβάσιμο. Για να τρέξει ο εξυπηρέτης σε περιβάλλον chroot, είναι απαραίτητο να δημιουργηθεί ένα νέο ολοκληρωμένο σύστημα root αρχείων, για την ακρίβεια μια μινιατούρα των root αρχείων που ήδη υπάρχουν. Με την βοήθεια των νέων αυτών αρχείων ο εξυπηρέτης θα μπορεί να έχει πρόσβαση σε ότι του χρειάζεται. Επίσης, χρειάζεται να προσαρμοστούν όλα τα ονόματα των μονοπατιών, που βρίσκονται στα αρχεία ρύθμισης του εξυπηρέτη, έτσι ώστε να σχετίζονται με την καινούργια διεύθυνση του root. Ένα περιβάλλον chroot, είναι περισσότερο αποτελεσματικό όταν δεν υπάρχουν ερμηνευτές, κυψέλες ή αρχεία ρύθμισης στην καινούργια διεύθυνση του root. Δυστυχώς όμως αυτό σημαίνει ότι τα CGI scripts που βασίζονται στην Perl ή στις κυψέλες δε θα μπορούν να τρέξουν σε ένα περιβάλλον chroot. Οι ερμηνευτές αυτοί μπορούν, βέβαια, να προστεθούν. Έτσι, όμως, χάνονται κάποια από τα πλεονεκτήματα του chroot. Περιορισμός των επιθέσεων άρνησης υπηρεσίας Ορισμένες επιθέσεις άρνησης υπηρεσίας, όπως η TCP/IP SYN, ή η Ping of Death, δεν μπορούν να προληφθούν χωρίς την εφαρμογή επιδιορθώσεων στο λειτουργικό σύστημα ή στο σχεδιασμένο για αυτό το σκοπό, τοίχος ασφαλείας. Άλλες επιθέσεις άρνησης υπηρεσίας, κατευθύνονται στον ίδιο τον εξυπηρέτη. Αν και δεν μπορούν να αποφευχθούν εντελώς, μπορούν να ληφθούν μέτρα για τον περιορισμό των ζημιών από τις επιθέσεις αυτές. Μια τυπική επίθεση άρνησης ασφαλείας, είναι η υπερφόρτωση του εξυπηρέτη δικτύου με αιτήσεις URL. Ο server είναι τόσο απασχολημένος να εξυπηρετεί αυτές τις αιτήσεις, με αποτέλεσμα να μην μπορεί να αποκριθεί στις νόμιμες. Ορισμένες φορές μάλιστα, η επανεκκίνηση του εξυπηρέτη είναι αναγκαία. Τα λειτουργικά συστήματα αλλά και το λογισμικό του εξυπηρέτη παρέχουν λύσεις για τον έλεγχο των πόρων του web server. Στο επίπεδο του λειτουργικού συστήματος, μπορούν να τεθούν όρια πόρων με τις εντολές limit (C shell) ή ulimit (Bourne shell) πριν την εκκίνηση του εξυπηρέτη. Περιορισμοί μπορούν να τεθούν σε πόρους όπως η χρήση μνήμης, ο αριθμός των αρχείων που μπορούν να ανοίξουν παράλληλα, ο αριθμός των διεργασιών που μπορεί να ανοίξει ο εξυπηρέτης, και το ποσοστό του χρόνου CPU που του επιτρέπετε να καταναλώσει. Μία καλή ιδέα ακόμα είναι ο ορισμός του μεγέθους core dump σε 0. Ένας τρόπος επίθεσης είναι ο εξαναγκασμός του εξυπηρέτη να κρασάρει και μετά η μελέτη του core dump για κωδικού και άλλα μυστικά. 42

43 Ο Apache web server παρέχει πολλές επιλογές τροποποίησης για τον έλεγχο χρήσης των πόρων, περιλαμβανομένων των RlimitCPU, RlimitMem, και RlimitNPROC. Αυτές οι επιλογές μπορούν να χρησιμοποιηθούν για παράκαμψη των ρυθμίσεων του λειτουργικού συστήματος ή σε συνδυασμό με αυτές. Συνήθως βρίσκονται στο httpd.conf. Άλλες σημαντικές επιλογές για την ρύθμιση της χρήσης των πόρων περιλαμβάνουν τα MaxClients, Timeout και το KeepAlive. Η πρώτη επιλογή περιορίζει των αριθμό των ταυτόχρονων εισερχόμενων αιτήσεων που ο server μπορεί να εξυπηρετήσει. Η δεύτερη ελέγχει για πόσο χρονικό διάστημα ο εξυπηρέτης θα επιτρέπει σε ένα περιηγητή δικτύου να κρατάει ανοιχτή μια σύνδεση. Η τελευταία επιλογή ελέγχει πόσες φορές ο εξυπηρέτης θα τηρεί τις αιτήσεις των περιηγητών για να διατηρείται ανοιχτή η σύνδεση. Κατά την ρύθμιση αυτών των επιλογών πρέπει να δοθεί προσοχή σε σημάδια που καταδεικνύουν ότι υπάρχει άρνηση υπηρεσιών σε νομότυπους χρήστες. Παρακολούθηση των αρχείων καταγραφών Τα αρχεία καταγραφών που διατηρούνται από τον εξυπηρέτη δικτύου και από το Unix αποτελούν μια πλούσια πηγή πληροφοριών. Τα αρχεία καταγραφών μπορούν να εφησυχάσουν τον διαχειριστή ότι όλα εκτελούνται ομαλά ή να τον προειδοποιήσουν όταν κάτι συμβαίνει λάθος. Unix System logs Το Unix κρατάει έναν αριθμό αρχείων καταγραφών. Ανάλογα με το σύστημα που χρησιμοποιείται, μπορεί να έχουν διαφορετικές ονομασίες και να βρίσκονται σε διαφορετικές θέσεις. Δημοφιλείς τοποθεσίες είναι οι /var/log, /var/adm, και /usr/adm. Το στάνταρ σύστημα syslog επιτρέπει την τροποποίηση του τι καταγράφεται στα αρχεία αυτά. Ο έλεγχος για το τι καταγράφεται συνήθως επιτυγχάνεται μέσω του αρχείου ρυθμίσεων /etc/syslog.conf. Η προτεινόμενη πρακτική είναι να καταγράφονται όλα και να γίνεται επεξεργασία μέσω scripts, είτε φτιαγμένα από τον διαχειριστή είτε έτοιμα, για να διαχωριστούν τα χρίζοντα προσοχής ζητήματα. Επειδή ακριβώς, τα αρχεία καταγραφών, παρέχουν στοιχεία μη εγκεκριμένης πρόσβασης, οι εισβολείς συχνά προσπαθούν να τα διαγράψουν ή να τα τροποποιήσουν. Αν ο εισβολέας έχει αποκτήσει δικαιώματα root, δεν υπάρχει τρόπος να προστατευτεί οτιδήποτε στο τοπικό σύστημα αρχείων. Όμως ορισμένες εκδόσεις του syslog επιτρέπουν την προώθηση των log αρχείων σε απομακρυσμένα μηχανήματα. Αν αυτό το μηχάνημα είναι ασφαλές, οι εισβολείς δεν θα καταφέρουν να τροποποιήσουν τα αρχεία καταγραφών, ή τουλάχιστον θα δυσκολευτούν αρκετά. Web server logs Τα αρχεία καταγραφών που δημιουργούνται από τον εξυπηρέτη είναι επίσης πολύ χρήσιμα για τον εντοπισμό προβλημάτων. Οι περισσότεροι servers δημιουργούν τουλάχιστον δύο αρχεία, το αρχείο πρόσβασης (access log) και το αρχείο σφαλμάτων (error log). Το αρχείο πρόσβασης παρέχει μία λεπτομερή καταγραφή κάθε πρόσβασης στον εξυπηρέτη και περιλαμβάνει πληροφορίες όπως το όνομα του υπολογιστή που κάνει την αίτηση, το URL που ζητήθηκε από τον εξυπηρέτη, και την ώρα και ημερομηνία που έγινε η αίτηση. Το αρχείο σφαλμάτων, από την άλλη, καταγράφει προβλήματα, όπως αιτήσεις για έγγραφα που δεν υπάρχουν, προσπάθειες για πρόσβαση σε προστατευμένα έγγραφα και εσωτερικά σφάλματα από CGI scripts και από τον server. Ένα πρόβλημα με αυτά τα αρχεία καταγραφών είναι ότι το μέγεθος τους αυξάνεται πολύ 43

44 γρήγορα. Η πλειοψηφία των πληροφοριών για την λειτουργία του εξυπηρέτη του δικτύου, μπορεί να βρεθεί στο αρχείο καταγραφής πρόσβασης στον εξυπηρέτη. Κάθε γραμμή στο αρχείο είναι μία ξεχωριστή αίτηση για ένα URL. Τα εφτά πεδία που περιέχονται είναι: όνομα ή αριθμός IP του υπολογιστή host, rfc931 (όνομα εισόδου του χρήστη στο προσωπικό του υπολογιστή), όνομα χρήστη, ημερομηνία/ώρα, αίτηση URL συμπεριλαμβανομένων και CGI παραμέτρων, κατάσταση της απάντησης του εξυπηρέτη, bytes (ο αριθμός των bytes που μεταφέρθηκαν). Το αρχείο καταγραφής σφαλμάτων έχει μια πιο απλή μορφή, στην οποία μηνύματα σφαλμάτων από τον εξυπηρέτη, CGI scripts, και από πρόσθετα του εξυπηρέτη καταγράφονται. Ένας μεγάλος αριθμός προγραμμάτων επιτρέπουν την ανάλυση αυτών των αρχείων καταγραφών του εξυπηρέτη για την παραγωγή στατιστικών στοιχείων. Επίσης τα αρχεία καταγραφών πρόσβασης και σφαλμάτων μπορούν να παρέχουν πολύτιμα στοιχεία για να προειδοποιηθούν οι διαχειριστές της ιστοσελίδας για πιθανή επίθεση. Όπως και στα αρχεία καταγραφών του UNIX, η γενική στρατηγική για τον έλεγχο των αρχείων αυτών είναι το φιλτράρισμα όλων των αναμενόμενων συμβάντων και η εξέταση των υπολοίπων. Στην περίπτωση των αρχείων πρόσβασης, μπορούν να αγνοηθούν όλες οι εγγραφές που καταλήγουν σε μία επιτυχή κατάσταση κωδικού 200, όπως και όλες οι προσβάσεις σε μη περιορισμένα κομμάτια του δέντρου εγγράφων. Όμως ορισμένοι κωδικοί καταστάσεων, ειδικά το 401(unauthorized) και το 403 (forbidden), που εμφανίζονται όταν απομακρυσμένοι χρήστες επιχειρούν να εισέλθουν σε κομμάτια τις ιστοσελίδας που επιβλέπονται από έλεγχο πρόσβασης, μπορεί να αναπαριστούν μια προσπάθεια μη εγκεκριμένης εισόδου. Ένας αριθμός εξυπηρετών δικτύου και CGI scripts παρουσιάζουν προβλήματα όταν τους ζητηθεί να επεξεργαστούν πολύ μεγάλα URLs ή URLs που περιέχουν παράξενους χαρακτήρες. Απομακρυσμένοι χρήστες έχουν καταφέρει να αποκτήσουν πρόσβαση σε συστήματα που παρουσιάζουν αυτό το πρόβλημα. Κομμάτι του ελέγχου στα αρχεία καταγραφών θα έπρεπε να επικεντρώνεται στην εύρεση τέτοιου είδους URL επιθέσεων. Το αρχείο καταγραφών σφαλμάτων μεγαλώνει αρκετά πιο αργά από το αρχείο καταγραφών πρόσβασης, και όλες του οι εγγραφές είναι άξιες εξέτασης για τον εντοπισμό σφαλμάτων στην ιστοσελίδα. Κάποια από τα μηνύματα λάθους που μπορεί να εμφανιστούν είναι: File does not exist ή no multi in this directory File permissions deny server access Password mismatch Client denied by server configuration Malformed header from script Η επιλογή που δίνεται για προώθηση των αρχείων καταγραφών συστήματος σε άλλα μηχανήματα, για λόγους ασφαλείας, δίνεται και σε αρκετούς εξυπηρέτες. Καταγραφή της ακεραιότητας των αρχείων συστήματος Αν το σύστημα παραβιαστεί από έναν εισβολέα, το πιο πιθανό είναι ότι αυτός θα προσπαθήσει να αντικαταστήσει αρχεία ρυθμίσεων του συστήματος και δομικά αρχεία με επεξεργασμένες αντιγραφές, με σκοπό να αποκτήσει ευκολότερα πρόσβαση στο σύστημα την επόμενη φορά, ή να επιτεθεί σε άλλα μηχανήματα στο δίκτυο. Αν και η απευθείας επίβλεψη από τον διαχειριστή για τους χρόνους τροποποίησης αυτών των αρχείων μπορεί να έχει αποτέλεσμα, συνήθως δεν αποτελεί εγγύηση, καθώς υπάρχουν τρόποι να γίνουν αλλαγές χωρίς να επηρεαστούν οι χρόνοι τροποποίησης. Ένας άλλος τρόπος εξέτασης των αρχείων αυτών για αλλαγές είναι μέσω ειδικών 44

45 προγραμμάτων που δημιουργούν ένα μοναδικό αποτύπωμα για κάθε σημαντικό αρχείο συστήματος. Μέσω της αποθήκευσης των αποτυπωμάτων αυτών και της εξέτασης τους, ο χρήστης μπορεί να διαπιστώσει αν υπάρχουν μη εξουσιοδοτημένες αλλαγές στα αρχεία ή στα δικαιώματα χρήσης τους. Δημιουργία αντιγράφων ασφαλείας (back up) του συστήματος Η δημιουργία αντιγράφων ασφαλείας είναι μια ζωτικής σημασίας λειτουργία, όχι μόνο, εξαιτίας της πιθανής ζημίας που μπορεί να προκύψει από τυχόν επίθεση στο δίκτυο της εταιρίας, αλλά και από απώλειες δεδομένων που μπορεί να προκληθούν από βλάβες στο υλικό του δικτύου. Υπάρχουν αρκετά προγράμματα που βοηθάνε στη δημιουργία αντιγράφων ασφαλείας, είτε ενσωματωμένα στο σύστημα UNIX είτε εμπορικά. Web Servers σε Microsoft Windows Τα Microsoft Windows είναι μια σειρά λειτουργικών συστημάτων με γραφικές διεπαφές που παράγεται από την Microsoft. Η πρώτη έκδοση των Windows παρουσιάστηκε στις 20 Νοεμβρίου του Αποτελούσε πρόσθετο στα MS-DOS σαν μια απάντηση στην αυξανόμενη ζήτηση για γραφικές διεπαφές χρηστών. Τα Windows κυριαρχούν στην παγκόσμια αγορά των λειτουργικών συστημάτων. Η πιο πρόσφατη Windows client version είναι τα Windows 7, ενώ η πιο πρόσφατη server version είναι τα Windows Server 2008 R2. Έννοιες ασφαλείας των Windows Οι εμπορικές εκδόσεις των Windows σχεδιάσθηκαν αρχικά με σκοπό την ευκολία χρήσης σε υπολογιστές μοναδικού χρήστη χωρίς σύνδεση δικτύου, και δεν είχαν ενσωματωμένα χαρακτηριστικά ασφαλείας. Αντίθετα οι εκδόσεις των Windows NT, καθώς και οι διάδοχοι τους έχουν σχεδιαστεί για ασφαλή λειτουργία σε υπολογιστές πολλών χρηστών με σύνδεση στο δίκτυο, χωρίς όμως να έχουν, αρχικά, πολλές δυνατότητες ασφάλειας στο ίντερνετ, καθώς αναπτύχθηκαν για πρώτη φορά στις αρχές της δεκαετίας του 1990, όπου η χρήση του διαδικτύου δεν ήταν διαδεδομένη. Αυτά τα προβλήματα σχεδιασμού σε συνδυασμό με λάθη προγραμματισμού (πχ buffer overflows) και την δημοτικότητα του λειτουργικού συστήματος, το καθιστά ένα συχνό στόχο για computer worms και ιούς. Τον Ιούνιο του 2005, στο Counterpane Internet Security του Bruce Scheiner αναφερόταν ότι είχαν παρατηρηθεί πάνω από 1000 νέοι ιοί και worms τους τελευταίους έξι μήνες. Το 2005 το Kaspersky lab είχε βρει πάνω από κακόβουλα προγράμματα γραμμένα για Windows. Η Microsoft διαθέτει επιδιορθώσεις ασφαλείας, διαμέσου του Windows Update, περίπου μια φορά τον μήνα, αν και σημαντικές ανανεώσεις μπορούν να γίνουν διαθέσιμες σε συντομότερα διαστήματα αν είναι αναγκαίο. Στις πρόσφατες εκδόσεις των Windows, οι ανανεώσεις αυτές μπορούν, αν το επιλέξει ο χρήστης, να κατεβαίνουν και να εγκαθίστανται αυτόματα. Χρήστες και Groups Ενώ οι εκδόσεις των Windows 9x προσέφεραν την δυνατότητα να υπάρχουν προφίλ για πολλαπλούς χρήστες, δεν υπήρχε η έννοια των προνομίων πρόσβασης, ούτε η δυνατότητα της ταυτόχρονης πρόσβασης. Πρόσθετα ενσωμάτωναν μόνο μερική προστασία μνήμης. 45

46 Οι εκδόσεις των windows NT όμως, αντίθετα, έχουν πραγματικά δυνατότητες πολλαπλών χρηστών και ενσωματώνουν ολοκληρωμένη προστασία μνήμης. Οι χρήστες αποτρέπονται από το να παρεμβάλλονται μεταξύ τους μέσω λιστών ελέγχου πρόσβασης. Κάθε πόρος του συστήματος έχει και έναν ιδιοκτήτη, ο οποίος αποφασίζει ποιος επιτρέπεται να έχει πρόσβαση στον πόρο και τι μπορεί να κάνει με αυτόν. Οι κωδικοί των χρηστών αποθηκεύονται σε κρυπτογραφημένη μορφή στο σκληρό δίσκο του υπολογιστή, σε ένα από τα αρχεία registry του συστήματος. Ακόμα και αν το αρχείο κλαπεί δεν υπάρχει τρόπος να ανακτηθούν οι κωδικοί αποκρυπτογραφώντας τους άμεσα. Όμως εξαιτίας ότι ο αλγόριθμος κρυπτογράφησης των κωδικών είναι γνωστός, είναι δυνατή η χρήση της τακτικής του dictionary attack. Για απλοποίηση του ελέγχου των λογαριασμών χρηστών, οι τελευταίοι μπορούν να κατηγοριοποιηθούν σε ομάδες. Οι λίστες ελέγχου πρόσβασης συνήθως παραχωρούν προνόμια πρόσβασης σε ομάδες παρά σε μεμονωμένους χρήστες. Windows Defender Στις 6 Ιανουαρίου 2005, η Microsoft κυκλοφόρησε μια δοκιμαστική εκδοσή του Microsoft Antispyware, βασισμένο στο πρόγραμμα antispyware Giant. Στις 14 Φεβρουαρίου 2006, το Microsoft Antispyware μετονομάστηκε σε Windows Defender, κατά την έκδοση της δεύτερης δοκιμαστικής έκδοσης. Το Windows Defender είναι ένα δωρεάν πρόγραμμα, σχεδιασμένο να παρέχει προστασία εναντίον spyware και άλλων κακόβουλων λογισμικών. Παρόλο που είναι προεγκατεστημένο, το Windows Defender μπορεί να απενεργοποιηθεί, ώστε να χρησιμοποιηθεί διαφορετικό λογισμικό προστασίας. Windows Domain και Windows Workgroup Ένα domain στα Microsoft Windows επιτρέπει στους χρήστες να μοιράζονται τους πόρους ενός δικτύου (όπως μια κεντρική βάση δεδομένων). Κάθε χρήστης του domain έχει τον δικό του μοναδικό λογαριασμό ή user name. Οι πόροι αυτοί του δικτύου συντονίζονται και επιβλέπονται από ένα domain controller, ένα Windows ή Samba εξυπηρέτη ο οποίος ελέγχει όλα τα θέματα ασφαλείας που προκύπτουν στην ανάδραση μεταξύ χρήστη και domain. Οι υπολογιστές του δικτύου δεν χρειάζεται να είναι σε μια μοναδική τοποθεσία ή να χρησιμοποιούν ένα συγκεκριμένο τύπο δικτύου. Τα Windows Server domains ενδείκνυνται για εταιρίες ή οργανισμούς με περισσότερους από 10 υπολογιστές σε χρήση. Το Windows Workgroups είναι το άλλο μοντέλο για την ομαδοποίηση υπολογιστών που χρησιμοποιούν Windows σε περιβάλλον δικτύου. Το Workgroup είναι παράδειγμα Peer-to-peer μοντέλου δικτύωσης, καθώς δεν χρησιμοποιούν εξυπηρέτες όπως το Windows domain. Τα Workgroups θεωρούνται δύσκολο να ελεγχθούν για ένα μεγάλο αριθμό υπολογιστών και δεν παρέχουν ιδιαίτερους μηχανισμούς ασφαλείας. Για το λόγο αυτό, το συγκεκριμένο μοντέλο είναι κατάλληλο μόνο για οικιακά ή μικρά δίκτυα. Ανάλυση ασφαλείας των Windows Σε ένα άρθρο βασισμένο σε μια αναφορά της Symantec, το internetnews.com περιέγραψε τα Microsoft Windows ως το λειτουργικό σύστημα,ανάμεσα σε πέντε, με τα λιγότερα patches και τον μικρότερο μέσο χρόνο ανάπτυξης ενός patch. [Έρευνα κατά τη διάρκεια ενός εξαμήνου του έτους 2006] Σύμφωνα με έρευνες ένα απροστάτευτο και χωρίς patches Windows XP σύστημα με Service Pack 1 αντέχει μόνο 4 λεπτά στο διαδίκτυο προτού παραβιαστεί η ασφάλεια του, ενώ ένα παρόμοια μη ρυθμισμένο Windows Server 2003 σύστημα αντέχει για 8 ώρες. Αντίθετα ένα σύστημα με Windows XP με Service Pack 2,λόγω σημαντικών βελτιώσεων ασφαλείας, είναι 46

47 πολύ πιο δύσκολο να παραβιαστεί. Η AOL National Cyber Security Alliance Online Safety Study του Οκτωβρίου του 2004 είχε επισημάνει ότι το 80% των χρηστών Windows ήταν μολυσμένοι από τουλάχιστον ένα Spyware/Adware προϊόν. Κίνδυνοι ασφαλείας των Windows και τακτικές αντιμετώπισης τους. Υπάρχουν αρκετοί παράγοντες που προκαλούν προβλήματα για την ασφάλεια των Windows και κατ' επέκταση της ιδιωτικότητας και ακεραιότητας του υπολογιστή και όλου του δικτύου στο όποιο αυτό ανήκει όπως: Λάθος ρυθμίσεις του λειτουργικού συστήματος. Αυτό μπορεί να αναφέρεται είτε σε αρχικές ρυθμίσεις του λειτουργικού συστήματος οι οποίες δεν είναι επαρκείς από θέμα ασφαλείας είτε σε μετέπειτα λανθασμένες ρυθμίσεις του χρήστη. Αδυναμία σε επιθέσεις από κακόβουλο λογισμικό (όπως Trojan horses, viruses, worms). Παρόλο που όλα τα λειτουργικά συστήματα είναι ευπαθή σε κακόβουλα λογισμικά, τα Windows έχουν δεχτεί δυσανάλογα μεγάλο αριθμό τέτοιων επιθέσεων, στα πρόσφατα χρόνια, για έναν αριθμό λόγων, όπως: 1. Δεν υπάρχει κάποιο συγκεκριμένο μέρος στο οποίο εγκαθίσταται νέο λογισμικό. Εκτελέσιμα αρχεία τείνουν να είναι σκορπισμένα παντού μέσα στο σύστημα αρχείων. 2. Μη προνομιούχοι χρήστες συχνά μπορούν να εγκαταστήσουν νέο λογισμικό. 3. Οι χρήστες τείνουν να εισέρχονται στο σύστημα με δικαιώματα διαχειριστή. 4. Η δημοτικότητα του λειτουργικού συστήματος. Αδυναμία από επιθέσεις στο NetBios. (Στα πριν του 2000, Windows). Τα βήματα, από την άλλη, για την ασφαλή χρήση ενός βασισμένου σε Windows NT εξυπηρέτη είναι παρόμοια με την διασφάλιση ενός εξυπηρέτη που λειτουργεί σε σύστημα UNIX. 1. Εφαρμογή όλων των επιδιορθώσεων του λειτουργικού συστήματος. 2. Διόρθωση όλων των αδειών χρήσης του συστήματος αρχείων. 3. Διόρθωση όλων των αδειών πρόσβασης στην registry. 4. Απενεργοποίηση ή απεγκατάσταση όλων των μη χρησιμοποιήσιμων υπηρεσιών δικτύου. 5. Προσθήκη μόνο του ελάχιστου αριθμού λογαριασμών χρήστη αναγκαίων για να διατηρηθεί ο εξυπηρέτης. 6. Εγκατάσταση του λογισμικού του εξυπηρέτη και σωστή ρύθμιση των δικαιωμάτων πρόσβασης σε αρχεία και καταλόγους για περιορισμό μη αναγκαίας πρόσβασης. 7. Απενεργοποίηση ή απεγκατάσταση μη αναγκαίων χαρακτηριστικών του εξυπηρέτη, CGI scripts, και πρόσθετων. 8. Παρακολούθηση του συστήματος και των αρχείων καταγραφής. 9. Δημιουργία αντιγράφων ασφαλείας του συστήματος. 47

48 Οι δέκα κορυφαίοι κίνδυνοι ασφάλειας εφαρμογών σύμφωνα με τον OWASP (open web application security project) Ένας κακόβουλος χρήστης μπορεί να χρησιμοποιήσει πολλά διαφορετικά μονοπάτια στη προσπάθεια του να εκμεταλλευτεί την εφαρμογή που του προσφέρεται και να προκαλέσει ζημιά σε μία επιχείρηση ή οργανισμό. Κάθε ένα από αυτά τα μονοπάτια αναπαριστούν έναν κίνδυνο, που μπορεί να είναι σοβαρός αρκετά ώστε να απαιτεί προσοχή. Μερικές φορές τα μονοπάτια αυτά είναι αρκετά εύκολα στον εντοπισμό τους, ενώ άλλες εξαιρετικά δύσκολα. Ομοίως, η ζημία που μπορεί να προκαλέσουν εκτείνεται από το τίποτα, ως την απόλυτη καταστροφή. Για να διαπιστωθεί ο κίνδυνος για τον οργανισμό, πρέπει να αξιολογηθεί η πιθανότητα που σχετίζεται με κάθε φορέα απειλής (threat agent), είδος επίθεσης (attack vector) και αδυναμία ασφαλείας (security weakness), και να συνδυαστεί με μια πρόβλεψη για το επιχειρηματικό και τεχνικό αντίκτυπο στον οργανισμό. Μαζί αυτοί οι παράγοντες καθορίζουν τον συνολικό κίνδυνο. Η παράγραφος αυτή επικεντρώνεται στο να αναγνωριστούν οι δέκα πιο σημαντικοί κίνδυνοι για ένα ευρύ φάσμα οργανισμών. Για κάθε έναν από αυτούς τους κινδύνους παρέχονται, έπειτα, γενικές πληροφορίες, παραδείγματα εφαρμογής τους και τρόποι προφύλαξης. Οι δέκα κορυφαίοι κίνδυνοι ασφαλείας λογισμικών 1. Injection. Επιθέσεις injection, όπως SQL, OS και LDAP injection, είναι δυνατό να συμβούν όταν, μη εμπιστεύσιμα δεδομένα στέλνονται σε έναν διερμηνέα ως μέρος μίας εντολής ή αίτησης. Τα εχθρικά δεδομένα του επιτιθέμενου, μπορούν να ξεγελάσουν τον διερμηνέα ούτως ώστε να εκτελέσει μη θεμιτές εντολές ή να παρέχει πρόσβαση σε εμπιστευτικά δεδομένα. 2. Cross-Site Scripting (XSS). Επιθέσεις XSS μπορούν να συμβούν οποτεδήποτε μια εφαρμογή λαμβάνει μη εμπιστεύσιμα δεδομένα και τα στέλνει σε έναν περιηγητή δικτύου, χωρίς να έχει εκτελέσει πρώτα κατάλληλη επικύρωση και εφαρμογή συνθηκών εξόδου (escaping). Ο συγκεκριμένος τύπος επίθεσης επιτρέπει την εκτέλεση μικρών προγραμμάτων (scripts), 48

49 στον περιηγητή του θύματος, τα οποία μπορούν, παραδείγματος χάριν, να υποκλέψουν τις συνεδρίες του χρήστη, να καταστρέψουν ιστοσελίδες, ή να προωθήσουν τον χρήστη σε κακόβουλες ιστοσελίδες. Λανθασμένη ή μη λειτουργική αυθεντικοποιήση και έλεγχος συνεδρίας (Broken authentication and session management). Λειτουργίες εφαρμογών σχετικά με αυθεντικοποιήση και έλεγχο συνεδρίας, συχνά δεν εφαρμόζονται σωστά, με αποτέλεσμα, οι επιτιθέμενοι να είναι ικανοί να παραβιάσουν κωδικούς, κλειδιά και κουπόνια συνεδρίας, ή να εκμεταλλευτούν άλλα λάθη εφαρμογής με σκοπό να προσποιηθούν ταυτότητες άλλων χρηστών. Μη ασφαλείς άμεσες αναφορές αντικειμένων (insecure direct object references). Μία άμεση αναφορά σε αντικείμενο συμβαίνει όταν ο κατασκευαστής του λογισμικού φανερώνει την αναφορά σε ένα εσωτερικό αντικείμενο εφαρμογής, όπως αρχείο, κατάλογο ή κλειδί βάσης δεδομένων. Χωρίς έλεγχο πρόσβασης ή άλλου τύπου προστασία, ο επιτιθέμενος μπορεί να εκμεταλλευτεί αυτές τις αναφορές για να έχει πρόσβαση σε εμπιστευτικά δεδομένα. Cross-Site Request Forgery. Μια CSRF επίθεση αναγκάζει τον περιηγητή δικτύου του συνδεδεμένου θύματος, να στείλει μια παραποιημένη HTTP αίτηση, συμπεριλαμβανομένου του cookie συνεδρίας του χρήστη και οποιασδήποτε άλλης αυτόματα παραγόμενης πληροφορίας αυθεντικοποιήσης, σε μια ευπαθή εφαρμογή δικτύου. Αυτό επιτρέπει στον επιτιθέμενο, να αναγκάζει τον περιηγητή δικτύου του θύματος να παράγει αιτήσεις, τις οποίες, η ευπαθής εφαρμογή αντιλαμβάνεται ως νομότυπες αιτήσεις του χρήστη. Λάθος ρυθμίσεις ασφαλείας. Η καλή ασφάλεια απαιτεί τον ορισμό και ανάπτυξη μιας καλής διαρρύθμισης ασφαλείας για τις εφαρμογές, frameworks, application servers, web servers, database servers και πλατφόρμες. Όλες αυτές οι ρυθμίσεις πρέπει να είναι καθορισμένες, εφαρμοσμένες, και να αναθεωρούνται τακτικά. Αυτό περιλαμβάνει και την τακτική αναβάθμιση όλου του λογισμικού, συμπεριλαμβανομένων και τον βιβλιοθηκών κώδικα, με τις πιο πρόσφατες ανανεώσεις ασφαλείας. Μη ασφαλής κρυπτογραφική αποθήκευση. Πολλές εφαρμογές δικτύου δεν προστατεύουν αποτελεσματικά, με κατάλληλη κρυπτογράφηση ή κατακερματισμό, τα ευαίσθητα δεδομένα, όπως αριθμούς πιστωτικών καρτών, social serial numbers, και διαπιστευτήρια αυθεντικοποιήσης. Οι επιτιθέμενοι, μπορούν να κλέψουν ή να τροποποιήσουν, τέτοια, μη καταλλήλως φυλασσόμενα δεδομένα, για να διαπράξουν παραποίηση ταυτότητας, απάτες πιστωτικών καρτών και άλλα αδικήματα. Αποτυχία να περιοριστεί η URL πρόσβαση. Αρκετές εφαρμογές δικτύου ελέγχουν τα δικαιώματα πρόσβασης σε URL προτού προσφέρουν προστατευόμενους υπερσυνδέσμους και κουμπιά. Οι εφαρμογές όμως πρέπει να διενεργούν παρόμοιους ελέγχους πρόσβασης κάθε φορά που προσπελάζονται οι συγκεκριμένες ιστοσελίδες, αλλιώς οι επιτιθέμενοι θα είναι ικανοί να παραποιήσουν URLs για να αποκτήσουν πρόσβαση. Μη επαρκής προστασία επιπέδου μεταφοράς. Οι εφαρμογές συχνά αποτυγχάνουν να αυθεντικοποιήσουν, κρυπτογραφήσουν και προστατέψουν την εμπιστευτικότητα και ακεραιότητα της ευαίσθητης κίνησης του δικτύου. Όταν το καταφέρνουν, υποστηρίζουν, μερικές φορές, αδύναμους αλγορίθμους, χρησιμοποιούν ληγμένα ή άκυρα πιστοποιητικά ή δεν τα χρησιμοποιούν ορθώς.

50 10. Μη επικυρωμένες ανακατευθύνσεις ή προωθήσεις. Οι εφαρμογές δικτύου συχνά ανακατευθύνουν ή προωθούν χρήστες σε άλλες ιστοσελίδες, και χρησιμοποιούν μη εμπιστεύσιμα δεδομένα για να καθορίσουν τις σελίδες προορισμού. Χωρίς κατάλληλη επικύρωση, οι επιτιθέμενοι μπορούν να κατευθύνουν τα θύματα σε ιστοσελίδες phishing ή malware, ή να χρησιμοποιήσουν προωθήσεις για να αποκτήσουν πρόσβαση σε εμπιστευτικές σελίδες. Injection Φορείς απειλής: Ο οποιοσδήποτε που μπορεί να στείλει μη εμπιστεύσιμα δεδομένα στο σύστημα, συμπεριλαμβανομένων εξωτερικών χρηστών, εσωτερικών χρηστών και διαχειριστών. Είδος επίθεσης: Ο επιτιθέμενος στέλνει απλές, βασιζόμενες σε κείμενο, επιθέσεις, που εκμεταλλεύονται το συντακτικό του διερμηνέα-στόχου. Σχεδόν κάθε πηγή δεδομένων μπορεί να είναι φορέας για injection, συμπεριλαμβανομένων εσωτερικών δεδομένων. Αδυναμία ασφαλείας: Σφάλματα injection, συμβαίνουν όταν μια εφαρμογή στέλνει μη εμπιστεύσιμα δεδομένα σε έναν διερμηνέα. Τα σφάλματα αυτά είναι πολύ διαδεδομένα, ιδιαίτερα σε κώδικα legacy (πηγαίος κώδικας που σχετίζεται με ενα πλέον μη υποστηριζόμενο η κατασκευαζόμενο λειτουργικό σύστημα ή οποιοδήποτε στοιχείο λογισμικού), ενώ συχνά βρίσκονται σε SQL, LDAP και Xpath αιτήσεις, εντολές λειτουργικών συστημάτων, στοιχεία προγραμμάτων, κ.α. Τα σφάλματα injection είναι εύκολο να ανακαλυφθούν όταν εξετάζεται ο κώδικας, αλλά πιο δύσκολο μέσω του testing. Scanners και fuzzers (εργαλεία που χρησιμοποιούνται για να ελέγχονται οι παράμετροι προγραμμάτων όπως buffer overflows, format string vulnerabilities, και error handling, ενώ πιο προηγμένα fuzzers μπορούν να ελέγξουν ακόμα για αδυναμίες εκτέλεσης εντολών, SQL injection και XSS) μπορούν να βοηθήσουν τους επιτιθέμενους να τα βρούνε. Τεχνικό αντίκτυπο: Το injection μπορεί να οδηγήσει σε απώλεια ή κατάρρευση δεδομένων, έλλειψη υπευθυνότητας ως προς το αποτέλεσμα, άρνηση εξυπηρέτησης ως και πλήρη κατάληψη του στόχου. Επιχειρησιακό αντίκτυπο: Πρέπει να ληφθεί υπόψη η επιχειρησιακή αξία των επηρεασμένων δεδομένων, και της πλατφόρμας στην οποία εκτελείται ο διερμηνέας. Τρόποι εξακρίβωσης ευπάθειας σε injection: Ο καλύτερος τρόπος να εξακριβωθεί αν μια εφαρμογή παρουσιάζει αδυναμίες σε injection είναι να επαληθευτεί ότι η χρήση όλων των διερμηνευτών διαχωρίζει καθαρά τα μη εμπιστεύσιμα δεδομένα από τις εντολές και τις αιτήσεις. Για τις SQL κλήσεις αυτό συνεπάγεται τη χρήση δεσμευμένων μεταβλητών (bind variables) σε όλες τις προετοιμασμένες δηλώσεις και αποθηκευμένες διεργασίες και την αποφυγή δυναμικών αιτήσεων. Ο έλεγχος του κώδικα είναι ένας γρήγορος και αποτελεσματικός τρόπος να εξακριβωθεί αν μία εφαρμογή χρησιμοποιεί τους διερμηνευτές σωστά. Εργαλεία ανάλυσης κώδικα μπορούν να βοηθήσουν έναν αναλυτή κώδικα να βρει την χρήση των διερμηνευτών και να παρακολουθήσει 50

51 την ροή δεδομένων μέσα στην εφαρμογή. Οι δοκιμαστές εισβολής (penetration testers), μπορούν να επαληθεύσουν τα προβλήματα αυτά, δημιουργώντας exploits που επιβεβαιώνουν την αδυναμία. Αυτοματοποιημένος δυναμικός έλεγχος στην εφαρμογή, μπορεί να παρέχει κάποια γνώση στο εάν υπάρχουν εκμεταλλεύσιμα λάθη injection. Τα scanners δεν μπορούν όμως πάντα να προσεγγίσουν τους διερμηνευτές, και παρουσιάζουν δυσκολίες στο να αντιληφθούν αν μια επίθεση παρουσίασε επιτυχία. Ο ανεπαρκής χειρισμός σφαλμάτων κάνει επίσης τα λάθη injection, ευκολότερα στην παρατήρηση. Τρόποι αποτροπής injection: Η αποτροπή injection προϋποθέτει τον διαχωρισμό μη εμπιστεύσιμων δεδομένων από εντολές και αιτήσεις. Η επιθυμητή επιλογή είναι η χρήση ενός ασφαλούς API που αποφεύγει εντελώς τη χρήση του διερμηνευτή ή χρησιμοποιεί μια παραμετροποιημένη διεπαφή χρήσης. Πρέπει να δοθεί προσοχή όμως σε APIs, όπως αποθηκευμένες διεργασίες, οι οποίες είναι παραμετροποιημένες αλλά και πάλι μπορούν να εισάγουν λάθη injection. Αν ένα παραμετροποιημένο API δεν είναι διαθέσιμο, πρέπει να γίνει προσεκτικά η εγκατάλειψη (escape) ειδικών χαρακτήρων, χρησιμοποιώντας το ειδικό συντακτικό εγκατάλειψης του διερμηνευτή. Θετική ή white list επικύρωση εισόδου επίσης προτείνεται, αλλά δεν είναι μια πλήρης άμυνα, καθώς αρκετές εφαρμογές απαιτούν ειδικούς χαρακτήρες στην είσοδο τους. Παράδειγμα σεναρίου επίθεσης: Η εφαρμογή χρησιμοποιεί μη εμπιστεύσιμα δεδομένα στην κατασκευή της ακόλουθης ευπαθής SQL κλήσης: String query= SELECT * FROM accounts WHERE custid= ' + request.getparameter( id ) + ' ; Ο επιτιθέμενος τροποποιεί την παράμετρο id στον περιηγητή του, να στέλνει ' or '1'='1. Αυτό αλλάζει το νόημα της αίτησης, να επιστρέφει όλες τις εγγραφές από τη βάση δεδομένων των λογαριασμών, αντί μόνο των προκαθορισμένων πελατών. Cross site scripting (XSS) Φορείς απειλής: Ο οποιοσδήποτε που μπορεί να στείλει μη εμπιστεύσιμα δεδομένα στο σύστημα, συμπεριλαμβανομένων εξωτερικών χρηστών, εσωτερικών χρηστών και διαχειριστών. Είδος επίθεσης: ο επιτιθέμενος στέλνει σκρίπτς, βασιζόμενα στο κείμενο, που εκμεταλλεύονται τον διερμηνευτή του περιηγητή. Σχεδόν κάθε πηγή δεδομένων μπορεί να είναι φορέας για επίθεση, συμπεριλαμβανομένων εσωτερικών πηγών όπως δεδομένα από βάσεις δεδομένων. Αδυναμία ασφαλείας: Το XSS είναι το επικρατέστερο λάθος ασφαλείας εφαρμογών δικτύου. Τα σφάλματα XSS λαμβάνουν χώρα όταν μια εφαρμογή περιλαμβάνει δεδομένα εφοδιασμένα από τον χρήστη σε μια σελίδα απεσταλμένη σε έναν περιηγητή χωρίς κατάλληλη επικύρωση ή χρήση escaping. Υπάρχουν 3 γνωστά είδη XSS σφαλμάτων: 1) Stored, 2) Reflected και 3) DOM based XSS. Η εύρεση των XSS είναι σχετικά εύκολη μέσω testing ή ανάλυσης του κώδικα. 51

52 Τεχνικό αντίκτυπο: Οι επιτιθέμενοι μπορούν να εκτελέσουν scripts στον περιηγητή του θύματος για να υποκλέψουν συνεδρίες του χρήστη, παραμορφώσουν ιστοσελίδες, εισάγουν εχθρικό περιεχόμενο, ανακατευθύνουν χρήστες κ.α. Επιχειρησιακό αντίκτυπο: Πρέπει να ληφθεί υπόψη η επιχειρησιακή αξία του επηρεασμένου συστήματος και όλων των δεδομένων που επεξεργάζεται, καθώς και η κοινωνική αντίδραση όταν αυτή η αδυναμία αποκαλυφθεί. Τρόποι εξακρίβωσης ευπάθειας σε XSS: Κάθε, εφοδιασμένη από τον χρήστη, είσοδος στον περιηγητή πρέπει να είναι επικυρωμένο ότι είναι ασφαλής και να έχει υποβληθεί στο κατάλληλο escaping προτού συμπεριληφθεί στην σελίδα εξόδου. Η κατάλληλη κωδικοποίηση εξόδου διασφαλίζει ότι η είσοδος αντιμετωπίζεται πάντα ως κείμενο στον περιηγητή, αντί σαν ενεργό περιεχόμενο που μπορεί να εκτελεστεί. Αμφότερα στατικά αλλά και δυναμικά εργαλεία μπορούν να βρούνε XSS προβλήματα αυτόματα. Κάθε εφαρμογή όμως δομεί τις σελίδες εξόδου διαφορετικά και χρησιμοποιεί διαφορετικούς διερμηνευτές πλευράς περιηγητή, όπως Javascript, ActiveX, Flash και Silverlight, καθιστώντας έτσι τον αυτόματο εντοπισμό δυσκολότερο. Για αυτό το λόγο, η πλήρης κάλυψη του προβλήματος, απαιτεί έναν συνδυασμό χειροποίητης θεώρησης του κώδικα και ελέγχου διείσδυσης, επιπρόσθετα οποιασδήποτε αυτοματοποιημένης μεθόδου χρησιμοποιείται. Πρέπει να ληφθεί επίσης υπόψη ότι μέθοδοι web 2.0, όπως AJAX, καθιστούν τον εντοπισμό μέσω αυτοματοποιημένων εργαλείων ακόμα πιο δύσκολο. Τρόποι αποτροπής XSS: Η αποτροπή φαινομένων XSS απαιτεί τον διαχωρισμό μη εμπιστεύσιμων δεδομένων από το ενεργό περιεχόμενο του περιηγητή. Η προτιμώμενη επιλογή είναι η κατάλληλη χρήση escaping σε όλα τα μη εμπιστεύσιμα δεδομένα, βασιζόμενη στο πλαίσιο του HTML (σώμα, ιδιότητες, URL, Javascript, CSS) που τα δεδομένα μπορεί να τοποθετηθούν. Οι κατασκευαστές λογισμικού πρέπει να συμπεριλαμβάνουν το escaping στις εφαρμογές τους εκτός αν το UI framework τους το κάνει για αυτούς. Θετική ή white list επικύρωση εισόδου επίσης προτείνεται, καθώς βοηθάει στην προστασία εναντίων του XSS, αλλά δεν αποτελεί πλήρη άμυνα, καθώς πολλές εφαρμογές πρέπει να δέχονται ειδικούς χαρακτήρες. Τέτοια επικύρωση πρέπει να αποκωδικοποιεί οποιαδήποτε κωδικοποιημένη είσοδο, και μετά να επικυρώνει το μήκος, χαρακτήρες και μορφή των δεδομένων προτού κάνει αποδεκτή την είσοδο. Η χρήση του Mozilla Content Security Policy μπορεί επίσης να ληφθεί υπόψη. Παράδειγμα σεναρίου επίθεσης: Η εφαρμογή χρησιμοποιεί μη εμπιστεύσιμα δεδομένα στην κατασκευή του παρακάτω HTML snippet χωρίς επικύρωση ή escaping: Ο επιτιθέμενος αντικαθιστά την CC παράμετρο στον περιηγητή του με: το οποίο προκαλεί την αποστολή του αναγνωριστικού συνεδρίας του χρήστη στην ιστοσελίδα που χρησιμοποιεί ο επιτιθέμενος. 52

53 Λανθασμένη ή μη λειτουργική αυθεντικοποιήση και έλεγχος συνεδρίας (Broken authentication and session management). Φορείς απειλής: Ανώνυμοι εξωτερικοί επιτιθέμενοι όπως και ήδη χρήστες οι οποίοι θέλουν να κλέψουν λογαριασμούς άλλων ή να καμουφλάρουν τις πράξεις τους. Είδος επίθεσης: Ο επιτιθέμενος χρησιμοποιεί διαρροές ή ελαττώματα σε λειτουργίες ελέγχου αυθεντικοποιήσης και συνεδρίας για να προσποιηθεί χρήστες. Αδυναμία ασφαλείας: Οι κατασκευαστές λογισμικού συχνά δομούν χειροποίητα σχήματα ελέγχου αυθεντικοποιήσης και συνεδρίας, κάτι το οποίο είναι ιδιαίτερα δύσκολο να γίνει δίχως λάθη. Ως αποτέλεσμα, τα σχήματα αυτά, έχουν ελαττώματα σε περιοχές όπως η έξοδος (logout), διαχείριση κωδικών, timeouts, κρυφές ερωτήσεις, ανανεώσεις λογαριασμών κ.α. Η εύρεση αυτών των ελαττωμάτων είναι, ως επί το πλείστον, δύσκολη, καθώς κάθε εφαρμογή είναι διαφορετική. Τεχνικό αντίκτυπο: Τέτοια ελαττώματα μπορεί να επιτρέψουν την επίθεση σε ορισμένους ή και σε όλους τους λογαριασμούς. Μόλις τα καταφέρει, ο επιτιθέμενος, μπορεί να πράξει ότι και το θύμα. Προνομιούχοι λογαριασμοί στοχεύονται συχνότερα. Επιχειρηματικό αντίκτυπο: Πρέπει να ληφθεί υπόψη η επιχειρησιακή αξία των επηρεασμένων δεδομένων ή λειτουργιών της εφαρμογής, καθώς επίσης και το αντίκτυπο στην φήμη του οργανισμού κατά την δημοσιοποιήση της αδυναμίας. Τρόποι εξακρίβωσης ευπάθειας: Τα κυρίως κεφάλαια προς προστασία είναι τα πιστοποιητικά (credentials) και τα αναγνωριστικά συνεδρίας. Οι παρακάτω ερωτήσεις πρέπει να απαντηθούν: Προστατεύονται πάντα τα πιστοποιητικά κατά την αποθήκευση τους, μέσω χρήσης κρυπτογράφησης ή κατακερματισμού; Μπορεί κάποιος να μαντέψει ή να αλλάξει τα πιστοποιητικά μέσω χρήσης αδύναμων λειτουργιών ελέγχου του λογαριασμού (δημιουργία λογαριασμού, αλλαγή κωδικού, ανάκτηση κωδικού); Είναι τα αναγνωριστικά συνεδρίας εκτεθειμένα στο URL; Είναι τα αναγνωριστικά συνεδρίας ευπαθή σε επιθέσεις υποκλοπής συνεδρίας; Λήγουν τα αναγνωριστικά συνεδρίας; Μπορούν οι χρήστες να πραγματοποιήσουν έξοδο; Στέλνονται οι κωδικοί, τα αναγνωριστικά συνεδρίας και άλλα πιστοποιητικά μόνο πάνω από TLS συνδέσεις; Τρόποι αποτροπής: Η κύρια συμβουλή για τον οργανισμό, είναι να καταστήσει διαθέσιμο στους κατασκευαστές λογισμικού ένα σύνολο δυνατών εργαλείων ελέγχου αυθεντικοποιήσης και συνεδρίας. Τέτοια εργαλεία πρέπει να ικανοποιούν όλες τις απαιτήσεις που ορίζονται από το OWASP Application Security Verification Standard, καθώς και να έχουν μια απλή διεπαφή 53

54 για τους κατασκευαστές. Δυνατές προσπάθειες πρέπει επίσης να γίνουν για να αποφευχθούν ελαττώματα XSS που μπορεί να οδηγήσουν στην κλοπή αναγνωριστικών συνεδρίας. Παράδειγμα σεναρίου επίθεσης: Μια εφαρμογή κράτησης αεροπορικών εισιτηρίων υποστηρίζει URL rewriting τοποθετώντας αναγνωριστικά συνεδρίας στο URL: Ένας αυθεντικοποιημένος χρήστης της ιστοσελίδας θέλει να ενημερώσει τους φίλους του για την κράτηση και τους στέλνει το URL. Όταν οι φίλοι του πατούν την υπερσύνδεση μπορούν να χρησιμοποιήσουν την συνεδρία του και την πιστωτική του κάρτα. Μη ασφαλείς άμεσες αναφορές αντικειμένων (insecure direct object references). Φορείς απειλής: Πρέπει να ληφθούν υπόψιν οι τύποι των χρηστών του συστήματος. Έχουν μερικοί τύποι μόνο μερική πρόσβαση στο σύστημα; Είδος επίθεσης: Ο επιτιθέμενος, ο οποίος είναι ένας εξουσιοδοτημένος χρήστης του συστήματος, απλά αλλάζει την αξία μιας παραμέτρου που αναφέρεται απευθείας σε ένα αντικείμενο του συστήματος, σε ένα άλλο αντικείμενο στο οποίο ο χρήστης δεν έχει πρόσβαση. Αδυναμία ασφαλείας: Οι εφαρμογές συχνά χρησιμοποιούν το πραγματικό όνομα ή κλειδί ενός αντικειμένου κατά την παραγωγή μιας ιστοσελίδας, χωρίς πρώτα να εξακριβώνουν αν ο χρήστης είναι εξουσιοδοτημένος για το αντικείμενο-στόχο. Το αποτέλεσμα είναι ενα λάθος μη ασφαλούς άμεσης αναφοράς σε αντικείμενο. Οι δοκιμαστές μπορούν εύκολα να αλλάξουν την αξία μιας παραμέτρου για να εντοπίσουν τέτοια λάθη. Η ανάλυση κώδικα δείχνει, γρήγορα, αν η αυθεντικοποίηση εξακριβώνεται κατάλληλα. Τεχνικό αντίκτυπο: Τέτοια λάθη μπορεί να θέσουν σε κίνδυνο όλα τα δεδομένα που μπορεί να αναφέρονται από την παράμετρο. Εκτός αν το πεδίο ονόματος είναι διεσπαρμένο (sparse), είναι εύκολο για τον επιτιθέμενο να αποκτήσει πρόσβαση σε όλα τα διαθέσιμα δεδομένα αυτού του τύπου. Επιχειρηματικό αντίκτυπο: Πρέπει να ληφθεί υπόψη η επιχειρησιακή αξία των επηρεασμένων δεδομένων, καθώς επίσης και το αντίκτυπο στην φήμη του οργανισμού κατά την δημοσιοποιήση της αδυναμίας. Τρόποι εξακρίβωσης ευπάθειας: Ο καλύτερος τρόπος για να εξακριβωθεί εάν μια εφαρμογή παρουσιάζει αδυναμίες όσο αφορά την μη ασφαλή άμεση αναφορά σε αντικείμενα συστήματος, είναι να επαληθευτεί ότι όλες αυτές οι αναφορές είναι εξοπλισμένες με την κατάλληλη άμυνα. Για να επιτευχθεί αυτό, πρέπει: Για άμεσες αναφορές σε εμπιστευτικούς πόρους, η εφαρμογή να μπορεί να επαληθεύσει ότι ο χρήστης έχει την κατάλληλη άδεια για πρόσβαση στον πόρο. Για έμμεσες αναφορές, η χαρτογράφηση στην άμεση αναφορά πρέπει να περιορίζεται σε πόρους για τους οποίους έχει άδεια ο χρήστης. 54

55 Η θεώρηση του κώδικα της εφαρμογής μπορεί γρήγορα να εξακριβώσει αν κάθε προσέγγιση εφαρμόζεται ασφαλώς. Οι δοκιμές είναι επίσης αποτελεσματικές για την εύρεση απευθείας αναφορών σε αντικείμενα και το κατά πόσο αυτές είναι ασφαλείς. Τα αυτοματικοποιημένα εργαλεία, τυπικά, δεν ελέγχουν για τέτοια ελαττώματα, επειδή δεν μπορούν να αναγνωρίσουν τι απαιτεί προστασία και τι θεωρείται ως ασφαλές ή όχι. Τρόποι αποτροπής: Η αποτροπή μη ασφαλούς άμεσης αναφοράς σε αντικείμενα του συστήματος, απαιτεί την επιλογή μιας προσέγγισης για την προστασία των προσβάσιμων αντικειμένων κάθε χρήστη. Μπορούν να χρησιμοποιούνται έμμεσες αναφορές αντικειμένων ανά χρήστη ή ανά συνεδρία, αποτρέποντας έτσι τον επιτιθέμενο από την άμεση στοχοποίηση πόρους στους οποίους δεν έχει πρόσβαση. Επίσης πρέπει να ελέγχεται η πρόσβαση. Κάθε χρήση μιας άμεσης αναφοράς σε αντικείμενο, από μια μη εμπιστεύσιμη πηγή, πρέπει να περιλαμβάνει έλεγχο πρόσβασης για να εξακριβωθεί ότι έχει δοθεί η άδεια στον χρήστη για το αιτούμενο αντικείμενο. Παράδειγμα σεναρίου επίθεσης: Η εφαρμογή χρησιμοποιεί μη επαληθευμένα δεδομένα σε μια SQL κλήση, η οποία έχει πρόσβαση σε πληροφορίες λογαριασμών: Ο επιτιθέμενος απλά τροποποιεί την acct παράμετρο στον περιηγητή του για να στείλει οποιονδήποτε αριθμό λογαριασμού θέλει. Εάν δεν υπάρχει επαλήθευση, ο επιτιθέμενος μπορεί να έχει πρόσβαση σε οποιονδήποτε λογαριασμό χρήστη. Cross-Site Request Forgery. Φορείς απειλής: Ο οποιοσδήποτε που θα μπορούσε να ξεγελάσει τους χρήστες να υποβάλλουν αίτηση στην ιστοσελίδα. Οποιαδήποτε ιστοσελίδα ή HTML feed που έχουν είσοδο οι χρήστες του οργανισμού. Είδος επίθεσης: Ο επιτιθέμενος δημιουργεί παραποιημένες HTTP αιτήσεις και ξεγελάει το θύμα στο να τις υποβάλλει, μέσω image tags, XSS ή πολλών άλλων τεχνικών. Αν ο χρήστης είναι αυθεντικοποιημένος, η επίθεση έχει επιτυχία. Αδυναμία ασφαλείας: Το CSRF εκμεταλλεύεται τις εφαρμογές δικτύου που επιτρέπουν στον επιτιθέμενο να προβλέψει όλες τις λεπτομέρειες μιας συγκεκριμένης ενέργειας. Από την στιγμή που οι περιηγητές στέλνουν διαπιστευτήρια όπως cookies συνεδρίας αυτόματα, ένας 55

56 κακόβουλος χρήστης μπορεί να δημιουργήσει ιστοσελίδες που παράγουν πλαστές αιτήσεις όμοιες με τις κανονικές. Ο εντοπισμός λαθών CSRF είναι εύκολος μέσω ελέγχου μεθόδων εισβολής (penetration testing) ή ανάλυσης κώδικα. Τεχνικό αντίκτυπο: Ο επιτιθέμενος μπορεί να αναγκάσει το θύμα να αλλάξει οποιοδήποτε δεδομένο του επιτρέπεται να αλλάξει, ή να εκτελέσει οποιαδήποτε ενέργεια για την οποία έχει εξουσιοδότηση. Επιχειρηματικό αντίκτυπο: Πρέπει να ληφθεί υπόψη η επιχειρησιακή αξία των επηρεασμένων δεδομένων ή λειτουργιών της εφαρμογής, καθώς επίσης και το αντίκτυπο στην φήμη του οργανισμού κατά την δημοσιοποιήση της αδυναμίας. Τρόποι εξακρίβωσης ευπάθειας: Ο ευκολότερος τρόπος ελέγχου αδυναμίας μίας εφαρμογής είναι να ελεγχθεί αν κάθε υπερσύνδεση και φόρμα περιλαμβάνει ένα απρόβλεπτο token για κάθε χρήστη. Χωρίς αυτό, ο επιτιθέμενος μπορεί να κατασκευάσει κακόβουλες αιτήσεις. Επιπλέον προσοχή πρέπει να δοθεί σε υπερσυνδέσεις και φόρμες που περιλαμβάνουν λειτουργίες που αλλάζουν καταστάσεις, καθώς αυτές είναι οι κυρίως στόχοι CSRF επιθέσεων. Πρέπει επίσης να ελεγχθούν οι συναλλαγές πολλών βημάτων, καθώς δεν είναι εγγενώς άτρωτες. Ο επιτιθέμενος μπορεί εύκολα να κατασκευάσει μια σειρά αιτήσεων, χρησιμοποιώντας πολλαπλά tags ή πιθανώς Javascript. Πρέπει επίσης να σημειωθεί ότι cookies συνεδρίας, IP διευθύνσεις πηγής και άλλες πληροφορίες που αυτόματα στέλνονται από τον περιηγητή δεν μετρούν καθώς αυτές μπορούν εύκολα να περιληφθούν σε πλαστές αιτήσεις. Τρόποι αποτροπής: Η αποτροπή του CSRF απαιτεί την εισαγωγή ενός απρόβλεπτου κουπονιού στο URL κάθε HTTP αίτησης. Τέτοια κουπόνια πρέπει να είναι, κατ'ελάχιστο, μοναδικά ανά συνεδρία χρήστη, άλλα μπορούν επίσης να είναι μοναδικά και ανά αίτηση. Η επιθυμητή επιλογή είναι η περίληψη του μοναδικού κουπονιού σε ένα κρυφό πεδίο. Αυτό προκαλεί την τιμή να στέλνεται στο σώμα της HTTP αίτησης, αποφεύγοντας έτσι την περίληψη του στο URL, το οποίο είναι επιρρεπές σε έκθεση. Το μοναδικό κουπόνι μπορεί επίσης να περιληφθεί στο URL ή σε μια παράμετρο του. Τέτοια τοποθέτηση όμως ενέχει το ρίσκο της αποκάλυψης του URL στον επιτιθέμενο, θέτοντας έτσι σε κίνδυνο το κουπόνι. Παράδειγμα σεναρίου επίθεσης: Η εφαρμογή επιτρέπει σε έναν χρήστη να καταθέσει μια αίτηση αλλαγής κατάστασης η οποία δεν περιλαμβάνει κάτι το κρυφό. Ο επιτιθέμενος μπορεί, λοιπόν, να κατασκευάσει μια αίτηση η οποία θα καταθέτει χρήματα από τον λογαριασμό του θύματος στον λογαριασμό του, και έπειτα ενσωματώνει την επίθεση αυτή σε μια αίτηση εικόνας, αποθηκευμένη σε διάφορες, υπό τον έλεγχο του, ιστοσελίδες. Αν το θύμα επισκεφτεί μια από αυτές τις ιστοσελίδες, ενώ είναι ήδη συνδεδεμένος στο example.com, οποιεσδήποτε παραποιημένες αιτήσεις θα περιλαμβάνουν τις πληροφορίες συνεδρίας του χρήστη. 56

57 Λάθος ρυθμίσεις ασφαλείας. Φορείς απειλής: Ανώνυμοι εξωτερικοί επιτιθέμενοι όμως και χρήστες με δικούς τους λογαριασμούς που θέλουν να θέσουν το σύστημα σε κίνδυνο ή να κρύψουν τις κινήσεις τους. Είδος επίθεσης: Ο επιτιθέμενος μπορεί να έχει πρόσβαση σε προκαθορισμένους λογαριασμούς, αχρησιμοποίητες σελίδες, μη διορθωμένες αδυναμίες, απροστάτευτα αρχεία και καταλόγους κ.α, για να αποκτήσει πρόσβαση ή γνώση του συστήματος. Αδυναμία ασφαλείας: Λάθος ρυθμίσεις ασφαλείας μπορούν να συμβούν σε οποιοδήποτε επίπεδο της εφαρμογής, περιλαμβανομένης της πλατφόρμας, του εξυπηρέτη δικτύου, του εξυπηρέτη εφαρμογών, του framework αλλά και του κώδικα. Οι κατασκευαστές λογισμικού και οι διαχειριστές του δικτύου πρέπει να συνεργαστούν για να διασφαλίσουν ότι η εφαρμογή στο σύνολο της είναι ρυθμισμένη σωστά. Αυτοματοποιημένοι ελεγκτές είναι χρήσιμοι για τον εντοπισμό μη διορθωμένων λαθών, λάθος ρυθμίσεων, χρήση προκαθορισμένων λογαριασμών ή μη αναγκαίων υπηρεσιών. Τεχνικό αντίκτυπο: Τέτοια λάθη συχνά παρέχουν στον επιτιθέμενο μη εξουσιοδοτημένη πρόσβαση σε δεδομένα του συστήματος ή λειτουργίες του. Περιστασιακά μπορούν να οδηγήσουν και σε πλήρη παραβίαση του. Επιχειρησιακό αντίκτυπο: Το σύστημα μπορεί να παραβιαστεί χωρίς να το καταλάβει ο διαχειριστής. Όλα τα δεδομένα μπορεί να κλαπούν ή να τροποποιηθούν. Το κόστος ανάκτησης μπορεί να είναι αρκετά υψηλό. Τρόποι εξακρίβωσης ευπάθειας: Όπως αναφέρθηκε και σε άλλα κεφάλαια της εργασίας είναι αναγκαίο να υπάρχει η κατάλληλη διασφάλιση ασφαλείας σε ολόκληρη τη δομή της εφαρμογής. Θα πρέπει να υπάρχει μια διεργασία εγκατάστασης των πιο πρόσφατων ενημερώσεων ασφαλείας λογισμικού, συμπεριλαμβανομένου του λειτουργικού συστήματος, των εξυπηρετών, των εφαρμογών αλλά και των βιβλιοθηκών κώδικα. Θα πρέπει να απενεργοποιηθεί ή να απεγκατασταθεί οτιδήποτε μη αναγκαίο σε τομείς όπως θύρες, υπηρεσίες, λογαριασμοί, σελίδες και προνόμια. Θα πρέπει να αλλάξουν ή να απενεργοποιηθούν οι προκαθορισμένοι κωδικοί λογαριασμών. Θα πρέπει ο χειρισμός λαθών να τροποποιηθεί κατάλληλα ούτως ώστε να αποτρέπει την διαρροή πολύτιμων πληροφοριών συστήματος, από μηνύματα λάθους. Θα πρέπει να κατανοηθούν και να διαμορφωθούν κατάλληλα όλες οι ρυθμίσεις ασφαλείας στα frameworks ανάπτυξης και στις βιβλιοθήκες. Η ύπαρξη μιας συντονισμένης και επαναλαμβανόμενης διεργασίας είναι απαραίτητη για την διατήρηση της ασφαλείας σε έναν οργανισμό. 57

58 Τρόποι αποτροπής: Οι κυρίως προτάσεις είναι η καθιέρωση όλων των υπολοίπων: Μίας επαναλαμβανόμενης διεργασίας που καθιστά εύκολη και γρήγορη την ανάπτυξη άλλου περιβάλλοντος που είναι κατάλληλα διασφαλισμένο. Περιβάλλοντα ανάπτυξης, διασφάλισης ποιότητας και παραγωγής πρέπει να είναι ομοίως ρυθμισμένα. Αυτή η διεργασία θα πρέπει να είναι αυτοματοποιημένη για να ελαχιστοποιεί την προσπάθεια που χρειάζεται για να εγκατασταθεί ένα νέο ασφαλές περιβάλλον. Μια διεργασία για την τακτική εύρεση και εγκατάσταση όλων των ενημερώσεων και επιδιορθώσεων λογισμικού σε όλα τα ανεπτυγμένα περιβάλλοντα. Αυτό πρέπει να περιλαμβάνει επίσης όλες τις βιβλιοθήκες κώδικα, που συχνά παραβλέπονται. Μια καλή αρχιτεκτονική εφαρμογής που παρέχει καλό διαχωρισμό και ασφάλεια ανάμεσα στα στοιχεία της. Εκτέλεση ελέγχων και επιθεωρήσεων περιοδικά για την βοήθεια εύρεσης λανθασμένων ρυθμίσεων ή μη εγκατεστημένων επιδιορθώσεων ασφαλείας. Παράδειγμα σεναρίου επίθεσης: Σενάριο 1: Η εφαρμογή βασίζεται σε ένα δυνατό framework όπως το Struts ή το Spring. Λάθη XSS εντοπίζονται σε στοιχεία του πλαισίου τα οποία χρησιμοποιούμε. Μια ενημέρωση διατίθεται η οποία επιδιορθώνει αυτά τα προβλήματα, την οποία όμως δεν εγκαθιστούμε. Μέχρι να το πράξουμε οι επιτιθέμενοι μπορούν εύκολα να εντοπίσουν και να εκμεταλλευτούν τα λάθη στην εφαρμογή μας. Σενάριο 2: Η κονσόλα διαχειριστή του εξυπηρέτη εφαρμογών εγκαθίσταται αυτόματα και δεν απομακρύνεται. Οι προκαθορισμένοι λογαριασμοί δεν δέχονται αλλαγή. Ένας επιτιθέμενος μπορεί να ανακαλύψει τις στάνταρ σελίδες διαχειριστή να εισέλθει με τους προκαθορισμένους κωδικούς και να καταλάβει το σύστημα. Μη ασφαλής κρυπτογραφική αποθήκευση Φορείς απειλής: Χρήστες του συστήματος που θα θέλανε να αποκτήσουν πρόσβαση σε δεδομένα ή και εσωτερικοί διαχειριστές. Είδος επίθεσης: Ο επιτιθέμενος τυπικά δεν σπάει την κρυπτογραφία. Εκμεταλλεύονται κάτι διαφορετικό όπως βρίσκουν κλειδιά, παίρνουν cleartext αντιγραφές των δεδομένων ή εισέρχονται στα δεδομένα μέσω καναλιών που είναι αυτόματα αποκρυπτογραφημένα. Αδυναμία ασφαλείας: Το πιο κοινό λάθος είναι η μη κρυπτογράφηση δεδομένων που το απαιτούν. Όταν η κρυπτογράφηση εφαρμόζεται, η μη ασφαλής αποθήκευση και παραγωγή κλειδιών, η μη περιστροφή των κλειδιών και η χρήση αδύναμων αλγόριθμων είναι κάτι το κοινό. Όπως επίσης και η χρήση αδύναμων κατακερματισμών για την προστασία των κωδικών. Οι εξωτερικοί επιτιθέμενοι έχουν δυσκολίες στον εντοπισμό τέτοιων λαθών λόγω περιορισμένης πρόσβασης. Συνήθως πρέπει να εκμεταλλευτούν κάτι άλλο πρώτα για να αποκτήσουν την απαραίτητη πρόσβαση. Τεχνικό αντίκτυπο: Η αποτυχία συχνά θέτει σε κίνδυνο όλα τα δεδομένα που θα έπρεπε να 58

59 είχαν κρυπτογραφηθεί. Τυπικά αυτό περιλαμβάνει ευαίσθητες πληροφορίες όπως καταγραφές υγείας, πιστοποιητικά, προσωπικά δεδομένα, αριθμούς πιστωτικών καρτών κ.α. Επιχειρησιακό αντίκτυπο: Πρέπει να ληφθεί υπόψιν η επιχειρηματική αξία των χαμένων δεδομένων και το αντίκτυπο στη φήμη του οργανισμού, καθώς και οι νομικές συνέπειες αν τα δεδομένα αυτά αποκαλυφθούν. Τρόποι εξακρίβωσης ευπάθειας: Το πρώτο πράγμα που πρέπει να γίνει είναι η εξακρίβωση ως προς το ποια δεδομένα είναι ευαίσθητα αρκετά ώστε να απαιτούν κρυπτογράφηση. Για όλα αυτά τα δεδομένα πρέπει να διασφαλιστεί ότι: είναι κρυπτογραφημένα οπουδήποτε είναι αποθηκευμένα μακροπρόθεσμα, ιδιαίτερα σε backups των δεδομένων. Μόνο οι εξουσιοδοτημένοι χρήστες μπορούν αποκρυπτογραφημένα αντίγραφα των δεδομένων. να έχουν πρόσβαση σε Χρησιμοποιείται ένας δυνατός αλγόριθμος κρυπτογράφησης. Ένα δυνατό κλειδί χρησιμοποιείται, το οποίο προστατεύεται από μη εξουσιοδοτημένη πρόσβαση, και η αλλαγή του είναι προγραμματισμένη. Τρόποι αποτροπής: Για όλα τα ευαίσθητα δεδομένα που απαιτούν κρυπτογράφηση θα πρέπει, τουλάχιστον, να: ληφθούν υπόψιν οι απειλές από τις οποίες πρέπει να προστατευτούν τα δεδομένα (πχ επίθεση εκ των έσω, εξωτερικός χρήστης), και να διασφαλιστεί ότι η κρυπτογράφηση έχει γίνει με τέτοιο τρόπο ώστε να αμύνεται αποτελεσματικά σε αυτές τις απειλές. Διασφαλιστεί ότι αποθηκεύσεις ασφαλείας (backups), των δεδομένων αυτών, είναι κρυπτογραφημένες αλλά και ότι τα κλειδιά είναι αποθηκευμένα ξεχωριστά. Χρησιμοποιούνται κατάλληλοι δυνατοί αλγόριθμοι και κλειδιά, και ότι υπάρχει αναπτυγμένη διαχείριση κλειδιών. Κατακερματίζονται οι κωδικοί με έναν δυνατό αλγόριθμο. Προστατεύονται όλα τα κλειδιά και οι κωδικοί από μη εξουσιοδοτημένη πρόσβαση. Παράδειγμα σεναρίου επίθεσης: Μια εφαρμογή κρυπτογραφεί κωδικούς πιστωτικών καρτών σε μια βάση δεδομένων για να αποτρέπει την έκθεση σε τελικούς χρήστες. Η βάση δεδομένων όμως έχει ρυθμιστεί να αποκρυπτογραφεί αυτόματα ερωτήματα στις στήλες των πιστωτικών καρτών, επιτρέποντας σε μια επίθεση SQL injection να ανακτήσει όλα τα δεδομένα σε cleartext. Το σύστημα θα έπρεπε να έχει ρυθμιστεί ούτως ώστε να επιτρέπει μόνο σε back end εφαρμογές την αποκρυπτογράφηση. Αποτυχία περιορισμού URL πρόσβασης. Φορείς απειλής: Ο οποιοσδήποτε με σύνδεση δικτύου που μπορεί να στείλει μια αίτηση στην εφαρμογή. 59

60 Είδος επίθεσης: Ένας εξουσιοδοτημένος χρήστης συστήματος αλλάζει το URL μιας προνομιούχας σελίδας. Παρέχεται πρόσβαση; Ανώνυμοι χρήστες μπορούν να αποκτήσουν πρόσβαση σε ιδιωτικές σελίδες που δεν είναι προστατευμένες. Αδυναμία ασφαλείας: Οι εφαρμογές συχνά δεν προστατεύουν τις αιτήσεις σελίδων κατάλληλα. Μερικές φορές, η προστασία URL ελέγχεται μέσω ρυθμίσεων οι οποίες είναι λάθος στο σύστημα. Άλλες φορές, οι κατασκευαστές λογισμικού ξεχνούν να εντάξουν τους κατάλληλους ελέγχους κώδικα. Ο εντοπισμός τέτοιων λαθών είναι εύκολος. Το δυσκολότερο κομμάτι είναι η αναγνώριση ποιες σελίδες υπάρχουν για επίθεση. Τεχνικό αντίκτυπο: Τέτοια λάθη δίνουν μη εξουσιοδοτημένη πρόσβαση στον επιτιθέμενο. Οι λειτουργίες διαχειριστή είναι κύριοι στόχοι για αυτό το είδος της επίθεσης. Επιχειρησιακό αντίκτυπο: Πρέπει να ληφθεί υπόψιν η επιχειρησιακή αξία των εκτεθειμένων λειτουργιών και των δεδομένων που επεξεργάζονται, καθώς και το αντίκτυπο στην φήμη του οργανισμού κατά την δημοσιοποιήση της επίθεσης. Τρόποι εξακρίβωσης ευπάθειας: Ο καλύτερος τρόπος να εξακριβωθεί αν μια εφαρμογή έχει αποτύχει να περιορίσει κατάλληλα την πρόσβαση URL είναι να εξεταστεί η κάθε σελίδα. Ο διαχειριστής θα πρέπει να αναλογιστεί αν η σελίδα πρέπει να είναι δημόσια ή ιδιωτική. Στην περίπτωση μιας ιδιωτικής σελίδας θα πρέπει να απαιτείται αυθεντικοποίηση για την πρόσβαση στην σελίδα και να υπάρχει έλεγχος για το ποιοι εξουσιοδοτημένοι χρήστες έχουν δικαιώματα πρόσβασης στη σελίδα. Εξωτερικοί μηχανισμοί ασφαλείας συχνά παρέχουν ελέγχους εξουσιοδότησης για την πρόσβαση σε σελίδες. Πρέπει να επαληθευτεί ότι είναι σωστά ρυθμισμένοι για πρόσβαση σε κάθε σελίδα. Αν χρησιμοποιείται προστασία σε επίπεδο κώδικα, πρέπει να επαληθευτεί ότι αυτή είναι τοποθετημένη σε κάθε σελίδα. Ο έλεγχος εισβολής (penetration testing) μπορεί επίσης να χρησιμοποιηθεί για να εξακριβωθεί αν λαμβάνονται τα κατάλληλα μέτρα. Τρόποι αποτροπής: Η αποτροπή μη εξουσιοδοτημένης πρόσβασης URL απαιτεί την επιλογή μιας προσέγγισης για την απαίτηση κατάλληλης αυθεντικοποίησης και εξουσιοδότησης για κάθε σελίδα. Συχνά, τέτοια προστασία παρέχεται από ένα ή περισσότερα, εξωτερικά του κώδικα της εφαρμογής, στοιχεία. Ανεξάρτητα από τους μηχανισμούς, προτείνονται τα παρακάτω: οι πολιτικές αυθεντικοποίησης και εξουσιοδότησης να είναι βασισμένες σε ρόλους, για να ελαχιστοποιείται η προσπάθεια που απαιτείται για την συντήρηση τους. Οι πολιτικές να δέχονται ρυθμίσεις σε υψηλό επίπεδο. Οι μηχανισμοί επιβολής θα πρέπει, προκαθορισμένα, να απορρίπτουν κάθε πρόσβαση, απαιτώντας ρητές καταχωρήσεις για κάθε χρήστη ή ομάδα για πρόσβαση σε κάθε σελίδα. Αν η σελίδα εμπλέκεται σε μια ροή εργασίας (workflow), πρέπει να ελεγχθεί ότι η συνθήκες είναι κατάλληλα ρυθμισμένες ώστε να επιτρέπουν την πρόσβαση. Παράδειγμα σεναρίου επίθεσης: Ο επιτιθέμενος απλά αναγκάζει τους περιηγητές να στοχεύουν URLs. Θεωρείστε τα παρακάτω URLs τα οποία υποτίθεται ότι απαιτούν αυθεντικοποιήση. Δικαιώματα διαχειριστή επίσης απαιτούνται για την πρόσβαση στην admin_getappinfo σελίδα. Αν ο επιτιθέμενος δεν έχει εξουσιοδότηση, και η πρόσβαση σε κάποια σελίδα επιτραπεί, τότε η επίθεση είναι επιτυχημένη. Αν ένας εξουσιοδοτημένος χρήστης, χωρίς όμως δικαιώματα διαχειριστή, αποκτήσει πρόσβαση στην admin_getappinfo σελίδα, τότε αυτό μπορεί να 60

61 οδηγήσει τον επιτιθέμενο σε περισσότερες, μη σωστά προστατευμένες, σελίδες. Μη επαρκής προστασία επιπέδου μεταφοράς Φορείς απειλής: Ο οποιοσδήποτε που μπορεί να καταγράψει την κίνηση δικτύου των χρηστών. Αν η εφαρμογή είναι συνδεδεμένη στο ίντερνετ, όποιος γνωρίζει τον τρόπο πρόσβασης των χρηστών. Είδος επίθεσης: Η καταγραφή της κίνησης δικτύου των χρηστών μπορεί να είναι γενικώς δύσκολη, γίνεται όμως μερικές φορές εύκολη. Η κυρίως δυσκολία εστιάζεται στην καταγραφή της κατάλληλης κίνησης δικτύου, όταν οι χρήστες έχουν πρόσβαση στην αδύναμη περιοχή. Αδυναμία ασφαλείας: Οι εφαρμογές συχνά δεν προστατεύουν την κίνηση του δικτύου. Μπορεί να χρησιμοποιούν SSL/TLS κατά την διαδικασία της αυθεντικοποίησης, αλλά πουθενά αλλού, αφήνοντας τα δεδομένα και να αναγνωριστικά συνεδρίας απροστάτευτα από υποκλοπή. Ληγμένα ή λάθος ρυθμισμένα πιστοποιητικά μπορεί επίσης να χρησιμοποιούνται. Ο εντοπισμός βασικών λαθών είναι εύκολος. Αρκεί η παρατήρηση της κίνησης δικτύου της ιστοσελίδας. Πιο διακριτικά λάθη απαιτούν την επιθεώρηση του σχεδιασμού της εφαρμογής και των ρυθμίσεων του εξυπηρέτη. Τεχνικό αντίκτυπο: Τέτοια λάθη εκθέτουν τα δεδομένα ξεχωριστών χρηστών και μπορεί να οδηγήσουν σε κλοπή λογαριασμών. Αν παραβιαστεί ένας λογαριασμός διαχειριστή, μπορεί να εκτεθεί ολόκληρη η ιστοσελίδα. Φτωχή εγκατάσταση του SSL, μπορεί επίσης να διευκολύνει επιθέσεις phishing και MITM. Επιχειρησιακό αντίκτυπο: Πρέπει να ληφθεί υπόψιν η επιχειρησιακή αξία των εκτεθειμένων δεδομένων, στο κανάλι επικοινωνίας, με όρους όπως η ανάγκη εμπιστευτικότητας, ακεραιότητας, και αυθεντικοποίησης των συμμετεχόντων. Τρόποι εξακρίβωσης ευπάθειας: Ο καλύτερος τόπος εξακρίβωσης αν μία εφαρμογή έχει επαρκή προστασία επιπέδου μεταφοράς, είναι η επαλήθευση των παρακάτω: Το SSL χρησιμοποιείται για να προστατεύεται όλη η κίνηση που έχει σχέση με την αυθεντικοποίηση. Το SSL χρησιμοποιείται για όλους τους πόρους στις ιδιωτικές σελίδες και υπηρεσίες. Αυτό προστατεύει όλα τα δεδομένα και κουπόνια συνεδρίας που ανταλλάσσονται. Η μικτή SSL σε μια ιστοσελίδα θα έπρεπε να αποφεύγεται, καθώς προκαλεί ειδοποιήσεις χρηστών στους περιηγητές, και μπορεί να αποκαλύψει τα αναγνωριστικά συνεδρίας. Μόνο δυνατοί αλγόριθμοι υποστηρίζονται. Όλα τα cookies συνεδρίας έχουν ρυθμισμένη την secure flag τους, ώστε ο περιηγητής να μην μπορεί να τα εκπέμπει απροστάτευτα. Το πιστοποιητικό του εξυπηρέτη είναι νόμιμο και κατάλληλα ρυθμισμένο. Αυτό περιλαμβάνει να έχει διανεμηθεί από έναν εξουσιοδοτημένο διανομέα, να μην είναι ληγμένο, να μην έχει ανακληθεί, και να ταιριάζει σε όλα τα domain που χρησιμοποιεί η ιστοσελίδα. 61

62 Τρόποι αποτροπής: Η παροχή κατάλληλης προστασίας στο επίπεδο μεταφοράς μπορεί να επηρεάσει τον σχεδιασμό της ιστοσελίδας. Είναι ευκολότερο να απαιτηθεί SSL για ολόκληρη την ιστοσελίδα. Για λόγους απόδοσης ορισμένοι ιστότοποι χρησιμοποιούν SSL μόνο σε ιδιωτικές σελίδες. Άλλοι χρησιμοποιούν SSL μόνο σε σημαντικές σελίδες, αλλά αυτή η προσέγγιση μπορεί να φανερώσει αναγνωριστικά συνεδρίας και άλλα ευαίσθητα δεδομένα. Κατ' ελάχιστο πρέπει να τηρηθούν τα ακόλουθα: απαίτηση για SSL σε όλες τις ευαίσθητες σελίδες. Μη SSL αιτήσεις σε αυτές τις σελίδες πρέπει να ανακατευθύνονται στην SSL ιστοσελίδα. Καθορισμός secure flag σε όλα τα ευαίσθητα cookies. Ρύθμιση του SSL πάροχου να υποστηρίζει μόνο δυνατούς αλγορίθμους. Διασφάλιση ότι τα πιστοποιητικά είναι έγκυρα, μη ληγμένα, δεν έχουν ανακληθεί, και ταιριάζουν σε όλα τα domain που χρησιμοποιούνται από την ιστοσελίδα. Backend και άλλες συνδέσεις πρέπει επίσης να χρησιμοποιούν SSL ή άλλες μορφές κρυπτογράφησης. Παράδειγμα σεναρίου επίθεσης: Μια ιστοσελίδα απλά δεν χρησιμοποιεί SSL για όλες τις σελίδες που απαιτούν αυθεντικοποίηση. Ο επιτιθέμενος απλά καταγράφει την κίνηση του δικτύου, και παρατηρεί το cookie συνεδρίας ενός αυθεντικοποιημένου χρήστη. Ο επιτιθέμενος απλά αναπαράγει το cookie και καταλαμβάνει την συνεδρία του χρήστη. Μη επικυρωμένες ανακατευθύνσεις ή προωθήσεις. Φορείς απειλής: Ο οποιοσδήποτε που μπορεί να ξεγελάσει τους χρήστες να υποβάλλουν μία αίτηση στην ιστοσελίδα. Οποιαδήποτε ιστοσελίδα ή άλλη ροή HTML που οι χρήστες χρησιμοποιούν θα μπορούσε να το κάνει αυτό. Είδος επίθεσης: Ο επιτιθέμενος κάνει συνδέσεις σε μη επικυρωμένες ανακατευθύνσεις και ξεγελάει τα θύματα στο να τις πατήσουν. Ο επιτιθέμενος στοχεύει μη ασφαλείς προωθήσεις για να αποφύγει ελέγχους ασφαλείας. Αδυναμία ασφαλείας: Οι εφαρμογές συχνά ανακατευθύνουν χρήστες σε άλλες σελίδες ή χρησιμοποιούν εσωτερικές προωθήσεις με παρόμοιο τρόπο. Μερικές φορές η σελίδα στόχος είναι καθορισμένη σε μια μη επικυρωμένη παράμετρο, επιτρέποντας στον επιτιθέμενο να διαλέξει την σελίδα προορισμό. Ο εντοπισμός μη ελεγμένων ανακατευθύνσεων είναι εύκολος. Αρκεί να αναζητήσουμε ανακατευθύνσεις εκεί που μπορούμε να θέσουμε το πλήρες URL. Μη ελεγμένες προωθήσεις είναι δυσκολότερες, αφού στοχεύουν εσωτερικές σελίδες. Τεχνικό αντίκτυπο: Τέτοιες ανακατευθύνσεις μπορεί να επιχειρήσουν να εγκαταστήσουν επιβλαβές λογισμικό, ή να ξεγελάσουν τα θύματα στο να αποκαλύψουν κωδικούς ή άλλα ευαίσθητα δεδομένα. Μη ασφαλείς προωθήσεις μπορεί να οδηγήσουν στην παράκαμψη του ελέγχου πρόσβασης. Επιχειρησιακό αντίκτυπο: Πρέπει να ληφθεί υπόψιν η επιχειρησιακή αξία της ανάκτησης της εμπιστοσύνης των χρηστών, καθώς και τα επακόλουθα να πληγούν από malware. Επίσης 62

63 πρέπει να αναλογιστούν οι συνέπειες της πρόσβασης ενός επιτιθέμενου σε εσωτερικές μόνο λειτουργίες. Τρόποι εξακρίβωσης ευπάθειας: Ο καλύτερος τρόπος να εξακριβωθεί αν μία εφαρμογή έχει μη επικυρωμένες ανακατευθύνσεις ή προωθήσεις είναι να: επανεξεταστεί ο κώδικας για όλες τις χρήσεις της ανακατεύθυνσης και της προώθησης. Για κάθε χρήση, η αναγνώριση αν το URL στόχος, περιλαμβάνεται σε οποιαδήποτε αξία παραμέτρου. Αν ναι, πρέπει να βεβαιωθεί ότι οι παράμετροι είναι επικυρωμένες να περιλαμβάνουν μόνο έναν επιτρεπόμενο προορισμό, ή στοιχείο του. Γίνει πλήρης έλεγχος της σελίδας για να εξακριβωθεί αν παράγει ανακατευθύνσεις ακολουθούμενος από έλεγχο στις παραμέτρους που παρέχονται πριν την ανακατεύθυνση για να φανεί αν εμφανίζονται ως ένα URL στόχος ή ένα κομμάτι του. Αν ναι, πρέπει να αλλαχθεί το URL στόχος και να παρατηρηθεί αν η ιστοσελίδα ανακατευθύνει στον καινούργιο στόχο. Γίνει έλεγχος όλων των παραμέτρων, σε περίπτωση που ο κώδικας δεν είναι διαθέσιμος, για να φανεί αν αποτελούν κομμάτι μιας ανακατεύθυνσης ή προώθησης και έλεγχος, έπειτα, αυτών που είναι. Τρόποι αποτροπής: Ασφαλής χρήση ανακατευθύνσεων και προωθήσεων μπορεί να επιτευχθεί με μια πληθώρα τρόπων: μπορεί απλά να αποφευχθεί η χρήση τους. Αν χρησιμοποιούνται, καλό είναι να μην υπολογίζονται παράμετροι χρηστών στον υπολογισμό του προορισμού. Αν πάλι, οι παράμετροι προορισμού δεν μπορούν να αποφευχθούν, πρέπει να διασφαλιστεί ότι η εφοδιασμένη τιμή είναι έγκυρη, και εξουσιοδοτημένη για τον χρήστη. Προτείνεται οι παράμετροι προορισμού να είναι τιμές χαρτογράφησης, παρά το πραγματικό URL ή κομμάτι του, και ο κώδικας από την πλευρά του εξυπηρέτη να μεταφράζει την χαρτογράφηση στον στόχο. Η αποφυγή τέτοιων λαθών είναι εξαιρετικά σημαντική, καθώς είναι ένας αγαπημένος στόχος για phishers, που προσπαθούν να αποκτήσουν την εμπιστοσύνη του χρήστη. Παράδειγμα σεναρίου επίθεσης: Η εφαρμογή έχει μια σελίδα που ονομάζεται redirect.jsp η οποία δέχεται μια μοναδική παράμετρο url. Ο επιτιθέμενος σχεδιάζει ένα κακόβουλο URL που ανακατευθύνει τους χρήστες σε ένα επιβλαβές site. 63

64 Προγράμματα εξυπηρετών δικτύου Στους παρακάτω πίνακες δίνονται πληροφορίες για τα δημοφιλή προγράμματα εξυπηρετών δικτύου, χαρακτηριστικά τα οποία προσφέρουν, τα λειτουργικά συστήματα με τα οποία το καθένα είναι συμβατό, καθώς και το μερίδιο αγοράς των έξι πιο δημοφιλών. Overview of web server software 64

65 Features 65

66 Operating System Support 66

67 Εργαλεία Ασφάλειας δικτύου Packet analyzer (sniffer) Ένας αναλυτής πακέτων είναι ένα πρόγραμμα ή υλικό υπολογιστή, το οποίο μπορεί να υποκλέπτει και να καταγράφει διερχόμενα από ένα δίκτυο, ή κομμάτι του, δεδομένα. Καθώς τα τελευταία, διασχίζουν το δίκτυο, το sniffer καταγράφει κάθε πακέτο και, αν χρειαστεί, αποκρυπτογραφεί και αναλύει τα δεδομένα του πακέτου σύμφωνα με το κατάλληλο RFC ή άλλες προδιαγραφές. Σε ενσύρματα ή και ασύρματα τοπικά δίκτυα, για την υποκλοπή δεδομένων που εκπέμπονται με μεθόδους διαφορετικές των unicast, multicast και broadcast, ο προσαρμογέας δικτύου του υπολογιστή όπου λειτουργεί το sniffer πρέπει να λειτουργεί σε αδιάκριτο τρόπο λειτουργίας ( promiscuous mode), ώστε να μπορεί να βλέπει όλα τα δεδομένα που διακινούνται στο δίκτυο. Η πληροφορία μετατρέπεται από ψηφιακή σε αναγνώσιμη από τον χρήστη μορφή, που επιτρέπει εύκολη επίβλεψη της. Οι αναλυτές πακέτων διαφέρουν στις δυνατότητες τους να παρουσιάζουν δεδομένα σε διαφορετικές μορφές, να ανιχνεύουν αυτόματα λάθη, να καθορίζουν τις αιτίες τους, να παράγουν διαγράμματα χρόνων, να ανακατασκευάζουν TCP και UDP κανάλια δεδομένων, κ.α. Συγκεκριμένα, οι αναλυτές πακέτων μπορούν να χρησιμοποιηθούν για: Ανάλυση προβλημάτων δικτύου. Ανίχνευση προσπαθειών εισβολής στο δίκτυο. Ανίχνευση λάθος χρήσης του δικτύου από εσωτερικούς και εξωτερικούς χρήστες. Καταγραφή πληροφοριών για εισβολή σε δίκτυο. Απομόνωση παραβιασμένων συστημάτων. Παρακολούθηση χρησιμοποίησης WAN bandwidth. 67

68 Παρακολούθηση ποσοστού χρήσης δικτύου. Παρακολούθηση επιπέδου ασφαλείας WAN και τελικού σημείου (endpoint). Συλλογή και αναφορά στατιστικών δικτύου. Φιλτράρισμα ύποπτου υλικού από την κίνηση του δικτύου. Ανίχνευση και επαλήθευση αλλαγών και μετακινήσεων. Επαλήθευση αποτελεσματικότητας μηχανισμού ασφαλείας δικτύου (firewalls, access control, Web filter, Spam filter, proxy). Γνωστά προγράμματα ανάλυσης πακέτων είναι τα: Wireshark (www.wireshark.org). Cain and Abel (www.oxid.it/cain.html). Tcpdump (www.tcpdump.org). Kismet (www.kismetwireless.net). Ettercap (ettercap.sourceforge.net). Dsniff (τελευταία έκδοση το Ngrep (ngrep.sourceforge.net). Etherape (etherape.sourceforge.net). NetworkMiner (http://www.netresec.com/?page=networkminer). KisMAC (για Mac OS X. InSSIDer (http://www.metageek.net/products/inssider/). P0f (http://lcamtuf.coredump.cx./p0f3/). Πρέπει να σημειωθεί ότι αρκετά από τα προγράμματα αυτά δεν αποτελούν απλώς sniffers αλλά έχουν και πολλές προχωρημένες δυνατότητες. Web Vulnerability Scanners Ο ανιχνευτής αδυναμιών είναι λογισμικό σχεδιασμένο για αξιολόγηση υπολογιστών, υπολογιστικών συστημάτων, δικτύων και βάσεων δεδομένων. Υπάρχει ένα πλήθος διαθέσιμων τύπων ανιχνευτών δεδομένων, διαφοροποιούμενων ως προς το επίκεντρο των στόχων που εξετάζουν. Ενώ η χρησιμότητα διαφέρει μεταξύ των διαφόρων κατηγοριών, όλοι έχουν ως κοινό σκοπό, τον εντοπισμό και την καταγραφή τυχών επικίνδυνων αδυναμιών. Γνωστά network vulnerability scanners είναι τα: Nessus (http://www.nessus.org/products/nessus). OpenVAS (http://www.openvas.org/). CoreImpact (http://www.coresecurity.com/content/core-impact-overview). Nexpose (http://www.rapid7.com/products/vulnerability-management.jsp). GFI LanGuard (http://www.gfi.com/network-security-vulnerability-scanner). QualysGuard (http://www.qualys.com/). Microsoft Baseline Security Analyzer (MBSA Retina (http://www.eeye.com/products/retina.aspx). SAINT (http://www.saintcorporation.com/index.html). 68

69 Web Application Scanners Ένας ανιχνευτής ασφαλείας εφαρμογών δικτύου, έχει ως σκοπό τον εντοπισμό και την αναγνώριση πιθανών αδυναμιών ασφαλείας και αρχιτεκτονικών σφαλμάτων σε εφαρμογές δικτύου. Συνήθως ο έλεγχος για την εξεύρεση των αδυναμιών αυτών γίνεται χρησιμοποιώντας το μοντέλο του μαύρου κουτιού, χωρίς δηλαδή ο ανιχνευτής να γνωρίζει την αρχιτεκτονική και τον πηγαίο κώδικα της εφαρμογής δικτύου, διεξάγοντας άρα και ο ίδιος επιθέσεις στην εφαρμογή. Οι ανιχνευτές μπορούν να εντοπίσουν έναν μεγάλο αριθμό αδυναμιών όπως: Θεώρηση εισόδου/εξόδου (Cross-site scripting, SQL Injection, κ.α.). Συγκεκριμένα προβλήματα εφαρμογών. Λάθη στις ρυθμίσεις εξυπηρετητών. Γνωστά προγράμματα ανιχνευτών ασφαλείας είναι: Burp Suite (http://portswigger.net/burp/). Nikto (http://www.cirt.net/nikto2). W3af (http://w3af.sourceforge.net/). Paros Proxy (http://www.parosproxy.org/). WebScarab (https://www.owasp.org/index.php/category:owasp_webscarab_project). Sqlmap (http://sqlmap.sourceforge.net/). Skipfish (http://code.google.com/p/skipfish/). Acunetix WVS (http://www.acunetix.com/vulnerability-scanner/). Netsparker (http://www.mavitunasecurity.com/netsparker/). Password crackers Στην κρυπτανάληση και στην ασφάλεια υπολογιστών, το password cracking αφορά την διαδικασία ανάκτησης κωδικών από δεδομένα που έχουν αποθηκευτεί ή εκπέμπηκαν από ένα υπολογιστικό σύστημα. Ο σκοπός του σπασίματος των κωδικών μπορεί να είναι η βοήθεια προς τον χρήστη να ανακτήσει έναν ξεχασμένο κωδικό, η απόκτηση μη εγκεκριμένης πρόσβασης σε ένα υπολογιστικό σύστημα ή ως ένα αποτρεπτικό μέτρο από τους διαχειριστές για την εξεύρεση εύκολων να σπάσουν κωδικών. Γνωστά password crackers είναι τα: Aircrack (http://www.aircrack-ng.org/). Cain & Abel (http://www.oxid.it/cain.html). John the Ripper (http://www.openwall.com/john/). THC Hydra (http://www.thc.org/thc-hydra/). Ophcrack (http://ophcrack.sourceforge.net/). Medusa (http://www.foofus.net/~jmk/medusa/medusa.html). Τείχος ασφαλείας (Firewall) Ένα τείχος ασφαλείας μπορεί να αποτελείται είτε από λογισμικό είτε και από υλικό (hardware), και έχει ως στόχο την διατήρηση της ασφαλείας ενός δικτύου. Ο βασικός του σκοπός είναι ο έλεγχος της εισερχόμενης και εξερχόμενης κίνησης του δικτύου. Αυτό 69

70 επιτυγχάνεται μέσω της ανάλυσης των πακέτων δεδομένων και του καθορισμού, βάσει ενός συνόλου κανόνων, εάν θα πρέπει η εκπομπή τους να ολοκληρωθεί ή όχι. Το τείχος ασφαλείας του δικτύου, αποτελεί την γέφυρα ανάμεσα στο εσωτερικό δίκτυο του οργανισμού που θεωρείτε εμπιστεύσιμο και ασφαλές και του εξωτερικού δικτύου (συνήθως του διαδικτύου). Πολλά λειτουργικά συστήματα υπολογιστών έχουν προεγκατεστημένο τείχος ασφαλείας για την προστασία απειλών από το διαδίκτυο. Επίσης πολλοί δρομολογητές που περνούν δεδομένα μεταξύ δικτύων περιέχουν συστατικά μέρη τείχους ασφαλείας και,αντίστροφα, πολλά τείχη ασφαλείας μπορούν να εκτελέσουν βασικές λειτουργίες δρομολόγησης. Γνωστά τείχη ασφαλείας (αποτελούμενα από λογισμικό) είναι τα: ZoneAlarm PRO Firewall. Panda Global Protection F-Secure Internet Security. ESET Smart Security 5. Norman Personal Firewall. Net Firewall Rising Firewall Outpost Firewall Pro. Online Armor Premium. BitDefender. Antivirus Software Το antivirus λογισμικό έχει ως σκοπό να αποτρέψει, να ανιχνεύσει και να αφαιρέσει κακόβουλο λογισμικό όπως ιούς, adware, backdoors, επιβλαβή BHOs (browser helper object), dialers, fraudtools, hijackers, keyloggers, επιβλαβή LSPs, rootkits,spyware, trojan horses και worms. Μια ποικιλία στρατηγικών συνήθως εφαρμόζονται. Ανάλυση βασισμένη στις υπογραφές ψάχνει για συγκεκριμένα πρότυπα σε εκτελέσιμο κώδικα. Ταυτόχρονα όμως, χρησιμοποιούνται και ευρεστικές μέθοδοι, για την αποτροπή προσβολής του συστήματος από νέες απειλές. Ορισμένα λογισμικά antivirus χρησιμοποιούν ακόμα και εικονικά κουτιά (sandboxes) για να προβλέψουν την δράση ενός αρχείου στον υπολογιστή του χρήστη. Όσο καλό και να είναι το λογισμικό προστασίας, υπάρχουν πάντα μειονεκτήματα. Απαιτώντας συνεχή εκτέλεση στο παρασκήνιο, επηρεάζουν την απόδοση του υπολογιστή. Οι άπειροι χρήστες επίσης είναι δύσκολο να κατανοήσουν τις αποφάσεις που τους ζητάει το λογισμικό να πάρουν. Μια λανθασμένη απόφαση μπορεί να οδηγήσει σε ρήγμα ασφαλείας. Γνωστά λογισμικά προστασίας από ιούς είναι τα: Trend Micro Titanium. Norton 360. Panda Antivirus Pro ESET NOD32. Avira Antivir Premium. 70

71 Κεφάλαιο 4 Εργαστηριακοί έλεγχοι ασφάλειας υπολογιστή με εξυπηρέτη δικτύου. Οικιακό δίκτυο Υπολογιστικό υλικό που χρησιμοποιήθηκε Στο πλαίσιο της εργασίας επιχειρήθηκε και η δοκιμή, σε προσωπικό επίπεδο, βελτίωσης της ασφάλειας σε υπολογιστή με εξυπηρέτη δικτύου. Ο υπολογιστής που χρησιμοποιήθηκε είναι Intel Core 2 Duo 2.4GHz με 2GB Ram, λειτουργικό σύστημα Linux Ubuntu στον οποίο φορτώθηκε Apache web server (2.2.14). Προγράμματα που χρησιμοποιήθηκαν Για την εξακρίβωση του επιπέδου ασφαλείας του συστήματος χρησιμοποιήθηκαν τα εξής προγράμματα: Nessus Το Nessus είναι ένα ολοκληρωμένο πρόγραμμα εύρεσης αδυναμιών (web vulnerability scanner). Σκοπός του είναι να ανιχνεύει πιθανές αδυναμίες στα υπό έλεγχο συστήματα. Σύμφωνα με δημοσκοπήσεις το Nessus είναι το πιο δημοφιλές vulnerability scanner έχοντας τη πρώτη θέση το 2000, το 2003 και το 2006 ανάμεσα στα προγράμματα ασφαλείας δικτύων, ενώ είναι δωρεάν για προσωπική χρήση σε μη επιχειρησιακό περιβάλλον. Το Nessus περιλαμβάνει ελέγχους για τις παρακάτω αδυναμίες: Αδυναμίες που επιτρέπουν σε έναν απομακρυσμένο cracker να αποκτήσει τον έλεγχο ή τη πρόσβαση σε ευαίσθητες πληροφορίες. Εσφαλμένες ρυθμίσεις (πχ μη εφαρμοσμένα patches). Προκαθορισμένοι κωδικοί, κοινοί κωδικοί ή κενοί κωδικοί σε ορισμένους λογαριασμούς συστήματος. Άρνηση εξυπηρέτησης, μέσω χρήσης θρυμματισμένων πακέτων. Προετοιμασία για ελέγχους PCI DSS. Στα συστήματα Unix αποτελείται από τον Nessusd (τον Nessus daemon) ο οποίος πραγματοποιεί τον έλεγχο και το Nessus, τον πελάτη, ο οποίος εποπτεύει τους ελέγχους και παρουσιάζει τα αποτελέσματα στον χρήστη. Σε τυπική λειτουργία το πρόγραμμα ξεκινάει, εκτελώντας έναν έλεγχο θυρών, με ένα από τα τέσσερα εσωτερικά του portscanners, (ή μπορεί να τροποποιηθεί ώστε να χρησιμοποιεί το Amap ή το Nmap), για να εξακριβώσει τις ανοιχτές θύρες στον στόχο και ακολούθως, δοκιμάζει διάφορα exploits σε αυτές. Η Tenable Network Security (η εταιρία παραγωγής του Nessus) παράγει δεκάδες νέους ελέγχους αδυναμιών, κάθε εβδομάδα, συνήθως σε καθημερινή βάση. 71

72 Nmap/ Zenmap Το Nmap είναι ένα security scanner, που χρησιμοποιείται για την ανακάλυψη hosts και υπηρεσιών σε ένα δίκτυο υπολογιστών, παράγοντας με αυτόν τον τρόπο, έναν χάρτη του δικτύου. Για να επιτύχει τον στόχο του, το Nmap, στέλνει ειδικά επεξεργασμένα πακέτα στο στόχο και αναλύει ακολούθως τις απαντήσεις. Αντίθετα με πολλά άπλα port scanners, τα οποία στέλνουν πακέτα με έναν προκαθορισμένο σταθερό ρυθμό, το Nmap λογαριάζει τις συνθήκες του δικτύου, (αυξομειώσεις καθυστέρησης, συμφόρηση δικτύου, την αλληλεπίδραση του στόχου με το πρόγραμμα), κατά τον έλεγχο. Επίσης εξαιτίας τις μεγάλης και ενεργής κοινωνίας χρηστών του Nmap, που βοηθούν και στην παραγωγή του, είναι ικανό να επεκτείνει τις δυνατότητες του, πέρα από αυτές ενός απλού port scanner, προσφέροντας: Εύρεση host στο δίκτυο. Για παράδειγμα, προβολή των host, που έχουν κάποια θύρα ανοιχτή ή απαντούν σε ping. Έλεγχος θυρών. Απαρίθμηση των ανοιχτών θυρών σε έναν ή περισσότερους target hosts. Εντοπισμός έκδοσης. Ανάκριση υπηρεσιών δικτύου, που ακούνε σε συγκεκριμένες θύρες, για τον καθορισμό του ονόματος εφαρμογής και του αριθμού έκδοσης τους. Εντοπισμός λειτουργικού συστήματος. Απομακρυσμένος καθορισμός του λειτουργικού συστήματος και των χαρακτηριστικών υλικού των συσκευών δικτύου. Αλληλεπίδραση με τον στόχο μέσω σεναρίου εντολών (scripts). Χρησιμοποιώντας το Nmap scripting engine, και την γλώσσα προγραμματισμού Lua, μπορούν να γίνουν προσαρμοσμένα ερωτήματα. Οι τυπικές χρήσεις του Nmap είναι: Εύρεση ανοιχτών θυρών στον στόχο για την προετοιμασία της επιθεώρησης. Επιθεώρηση της ασφαλείας μιας συσκευής μέσω εξακρίβωσης των συνδέσεων δικτύων που μπορούν να γίνουν σε αυτήν. Απογραφή δικτύου, χαρτογράφηση δικτύου, έλεγχος κεφαλαίων. Έλεγχος της ασφαλείας του δικτύου, μέσω εύρεσης απρόσμενων νέων εξυπηρετών. Nikto Το Nikto είναι ένα, ανοιχτού κώδικα, scanner εξυπηρετών δικτύου. Εκτελεί εκτενείς ελέγχους στους εξυπηρέτες, για μια πλειάδα αντικειμένων, περιλαμβανομένων πάνω από 6400 πιθανώς επικίνδυνων αρχείων/cgis, ελέγχους για ξεπερασμένες εκδόσεις εξυπηρετών και προβλημάτων συγκεκριμένων εκδόσεων. Επίσης εξετάζει συγκεκριμένες ρυθμίσεις σε αυτούς, όπως, την παρουσία πολλαπλών αρχείων index, επιλογές HTTP εξυπηρετών, ενώ αναγνωρίζει εγκατεστημένους web servers και λογισμικά. Τα αντικείμενα ελέγχου και τα πρόσθετα, ανανεώνονται συχνά και,κατ'επιλογή, αυτόματα. Ορισμένα σημαντικά χαρακτηριστικά του Nikto είναι: Υποστήριξη SSL. Πλήρης HTTP proxy υποστήριξη. Έλεγχος για πεπαλαιωμένα συστατικά εξυπηρέτη. Αποθήκευση αναφορών σε διάφορα formats. 72

73 Έλεγχος πολλαπλών θυρών ανά εξυπηρέτη και πολλαπλών εξυπηρετών μέσω αρχείου εισόδου. Τεχνικές κωδικοποίησης Libwhisker's IDS. Εύκολη ανανέωση μέσω γραμμής εντολών. Αναγνώριση εγκατεστημένου λογισμικού μέσω κεφαλίδων, favicons και αρχείων. Πιστοποίηση host μέσω Basic και NTLM. Subdomain guessing. Απαρίθμηση ονομάτων χρηστών Apache και cgiwrap. Τεχνικές μετάλλαξης για εύρεση περιεχομένου σε web servers. Ρυθμίσεις για εισαγωγή ή μη ολόκληρων κλάσεων ελέγχων αδυναμιών. Free IP Tools (Από υπολογιστή με περιβάλλον Windows) Το Free IP Tools περιλαμβάνει 12 χρήσιμα εργαλεία δικτύου, κατάλληλα για τον εντοπισμό και την επίλυση προβλημάτων σε αυτό. Τα εργαλεία είναι: ping και traceroute. Port scanner, το οποίο υποστηρίζει πλήρη σύνδεση αλλά και stealth mode. Hostalive, ενα εργαλείο για την εξακρίβωση διαθεσιμότητας hosts αλλά και υπηρεσιών. verify, για την εξακρίβωση της εγκυρότητας μιας διεύθυνσης. SNMPΑudit, ένα scanner SNMP συσκευών για τον γρήγορο και εύκολο εντοπισμό τους. SysFiles για την τροποποίηση αρχείων συστήματος. IPBlackList, για τον έλεγχο, μέσω διάφορων βάσεων δεδομένων, μιας IP διεύθυνσης ή ενός host, αν έχει σημανθεί ως επικίνδυνη (πχ ότι στέλνει spam). NBScan για τον εντοπισμό διαμοιραζόμενων πόρων στο δίκτυο. Shares, το οποίο καταγράφει ποιοι είχαν πρόσβαση στους διαμοιραζόμενους πόρους του δικτύου. GFI Languard Το GFI Languard, είναι μια εφαρμογή ελέγχου ασφαλείας, επιθεώρησης δικτύου, και εφαρμογής επιδιορθώσεων. Αναλυτικά οι δυνατότητες του είναι: Αναγνώριση αδυναμιών συστημάτων ή δικτύου, μέσω χρήσης μιας εκτενούς βάσεως δεδομένων ελέγχων αδυναμιών. Επιθεώρηση όλων των υλικών και λογισμικών στοιχείων του δικτύου,επιτρέποντας έτσι την δημιουργία ενός αναλυτικού καταλόγου των πόρων του. Δυνατότητα απομακρυσμένης λήψης και εφαρμογής επιδιορθώσεων στους πόρους του δικτύου. 73

74 Αποτελέσματα ελέγχων Nessus Αναφορά Nessus Σύνοψη Critical High Medium Low Info Total PLUGIN ID ΠΕΡΙΓΡΑΦΗ High (7.5) USN : curl vulnerabilities High USN : firefox regression Medium (5.0) SSL Certificate signed with an unknown Certificate Authority Medium (5.0) SSL Certificate with Wrong Hostname Info Remote listeners enumeration Info Nessus Server Detection Info Nessus Scan Information Info System Information Enumeration (via DMI) Info SSH Server Type and Version Information Info Common Platform Enumeration (CPE) Info Apache Banner Linux Distribution Disclosure Info Enumerate IPv6 Interfaces via SSH Info SSH Protocol Versions Supported Info Enumerate MAC Addresses via SSH Info Software Enumeration (SSH) Info Processor Information (via DMI) Info Memory Information (via DMI) Info Ethernet card brand Info OS Identification Info BIOS version (SSH) Info Enumerate IPv4 Interfaces via SSH 74 2 Λεπτομέρειες ΚΡΙΣΙΜΟΤΗΤΑ

75 Info Authenticated Check: OS Name and Installed Package Enumeration Info Device Type Info Device Hostname Info Host Fully Qualified Domain Name (FQDN) Resolution Info Backported Security Patch Detection (WWW) Info Backported Security Patch Detection (SSH) Info HyperText Transfer Protocol (HTTP) Information Info HTTP Methods Allowed (per directory) Info HTTP Server Type and Version Info Web Server Directory Enumeration Info HyperText Transfer Protocol (HTTP) Information Info Web Server / Application favicon.ico Vendor Fingerprinting Info HTTP Methods Allowed (per directory) Info HTTP Server Type and Version Info Web Server No 404 Error Code Check Info OpenSSL Detection Info SSL Certificate commonname Mismatch Info SSL Certificate Information Info SSL Cipher Suites Supported Service Detection A web server is running on this port Service Detection A TLSv1 server answered on this port Service Detection A web server is running on this port through TLSv1. Info Info Info Σύνοψη Το Nessus ανακάλυψε έξι ανοιχτές θύρες ( συν μία την θύρα 0 στην οποία εμφανίζονται οι γενικές πληροφορίες). Αυτές είναι: Θύρα 22 στην οποία τρέχει ένας ssh server. Θύρα 80 στην οποία τρέχει ο HTTP server. Θύρα 1241 στην οποία ακούει ο Nessus daemon. 75

76 Θύρα 5353 και θύρα στις οποίες ακούει ο avahi daemon των linux. Θύρα 8834 η οποία χρησιμεύει στον web client του Nessus. Τα δύο προβλήματα υψηλού κινδύνου αφορούν στην έλλειψη εφαρμογής ανανεώσεων στο λειτουργικό σύστημα και στο περιηγητή δικτύου του υπολογιστή που φιλοξενεί τον web server. Έπειτα, τα υπόλοιπα αποτελέσματα αφορούν πληροφορίες σχετικές με το υλικό, το λογισμικό και τις υπηρεσίες που τρέχουν στον υπολογιστή. Αναλυτικά, το Nessus μας αναφέρει, ποιες υπηρεσίες ακούνε σε κάθε θύρα, τα τεχνικά χαρακτηριστικά του επεξεργαστή και της κύριας μνήμης του υπολογιστή, την έκδοση του BIOS, το όνομα του προϊόντος, το όνομα του host και τον τύπο της συσκευής. Επίσης, παραθέτονται, οι Ipv6 και Ipv4 διεπαφές, διευθύνσεις MAC των καρτών δικτύου όπως και ο κατασκευαστής τους. Τέλος, γίνεται φανερό το όνομα και η έκδοση του λειτουργικού συστήματος, καθώς και μια πλήρης λίστα του εγκατεστημένου λογισμικού και των βιβλιοθηκών του μηχανήματος, προς επιθεώρηση, για την εξακρίβωση εάν υπάρχει κάτι μη θεμιτό. Nmap Αναφορά Nmap (απλός έλεγχος) Δίνοντας εντολή για απλό έλεγχο του στόχου ( nmap αποτελέσματα που πήραμε ήταν: Starting Nmap 5.00 ( ) at :29 EEST Interesting ports on : Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http ) στο Nmap τα Nmap done: 1 IP address (1 host up) scanned in 4.30 seconds Σύνοψη Το Nmap λειτούργησε απλά ως port scanner για tcp ports και βρήκε δυο ανοιχτές θύρες, την 22 για τον ssh server και την 80 για τον http server. Δίνοντας εντολή για ποιο διεξοδικό έλεγχο του υπολογιστή συν έλεγχο στις UDP θύρες, τα αποτελέσματα που παίρνουμε είναι πιο αναλυτικά. Συγκεκριμένα η εντολή είναι nmap -ss -su -T4 -A -v -PE -PS22,25,80 -PA21,23,80, όπου: -ss, αναφέρεται σε TCP SYN Scan. Το TCP SYN scan, χρησιμοποιεί κοινές μεθόδους αναγνώρισης θυρών, που επιτρέπουν στο Nmap να συλλέξει πληροφορίες για ανοιχτές θύρες στον στόχο χωρίς να ολοκληρώσει την διεργασία χειραψίας στο TCP. -su, όπου αναφέρεται σε έλεγχο UDP. -Τ4, όπου αναφέρεται στο χρονικό πρότυπο πάνω στο οποίο εφαρμόζεται ο συγκεκριμένος έλεγχος του Nmap. Υπάρχουν 6 χρονικά πρότυπα (paranoid (0), sneaky(1), polite(2), normal(3), aggressive(4), και insane(5) ). Τα 2 πρώτα χρησιμεύουν για την αποφυγή αναγνώρισης από τα συστήματα εντοπισμού εισβολής (IDS). Το τρίτο επιβραδύνει τον έλεγχο για να χρησιμοποιεί λιγότερο εύρος ζώνης αλλά και πόρους του στόχου. Το normal mode είναι το προκαθορισμένο, οπότε η επιλογή -Τ3 76

77 δεν έχει κάποιο συγκεκριμένο αποτέλεσμα. Τέλος οι επόμενες δύο επιλογές επιταχύνουν τον έλεγχο,θεωρώντας όμως ως δεδομένη την ύπαρξη γρήγορου και αξιόπιστου δικτύου. Ειδικότερα, η επιλογή -Τ5 επιταχύνει τον έλεγχο, θυσιάζοντας όμως ποσοστό της αξιοπιστίας των αποτελεσμάτων. -Α, δηλαδή ενεργοποίηση όλων των προηγμένων/ επιθετικών επιλογών, συγκεκριμένα της αναγνώρισης του λειτουργικού συστήματος, αναγνώρισης έκδοσης, έλεγχος scripts, και καταγραφής διαδρομής (traceroute). -v (verbosity level), όπου καθορίζει πόσες πληροφορίες για τον έλεγχο θα εμφανιστούν. -PE, για να στείλει μια αίτηση ICMP echo (ping) για να εξακριβώσει αν ο στόχος λειτουργεί. -PS, για SYN ping, δηλαδή αποστολή μιας ή περισσοτέρων SYN αιτήσεων στις προκαθορισμένες θύρες (22,25,80) για να εξακριβωθεί η διαθεσιμότητα τους. -PA, για ACK ping, για αποστολή δηλαδή μιας ή περισσοτέρων ACK αιτήσεων στις προκαθορισμένες θύρες (21,23,80,3389) για να εξακριβωθεί η διαθεσιμότητα τους. Τα αποτελέσματα του ελέγχου ήταν: Starting Nmap 5.00 ( ) at :17 EEST NSE: Loaded 30 scripts for scanning. Initiating Parallel DNS resolution of 1 host. at 12:17 Completed Parallel DNS resolution of 1 host. at 12:17, 8.03s elapsed Initiating SYN Stealth Scan at 12:17 Scanning [1000 ports] Discovered open port 22/tcp on Discovered open port 80/tcp on Completed SYN Stealth Scan at 12:17, 0.13s elapsed (1000 total ports) Initiating UDP Scan at 12:17 Scanning [1000 ports] Completed UDP Scan at 12:17, 1.29s elapsed (1000 total ports) Initiating Service scan at 12:17 Scanning 3 services on Completed Service scan at 12:18, 55.05s elapsed (3 services on 1 host) Initiating OS detection (try #1) against Retrying OS detection (try #2) against Retrying OS detection (try #3) against Retrying OS detection (try #4) against Retrying OS detection (try #5) against NSE: Script scanning NSE: Starting runlevel 1 scan Initiating NSE at 12:18 Completed NSE at 12:19, 0.27s elapsed NSE: Script Scanning completed. Host is up ( s latency). Interesting ports on : Not shown: 1997 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0) ssh-hostkey: :7c:4c:4a:3a:07:63:d9:e5:43:c7:db:a3:52:f5:0c (DSA) _ :be:2c:4d:a3:8d:bf:34:29:92:b0:44:47:b2:6b:7b (RSA) 80/tcp open http Apache httpd ((Ubuntu)) _ html-title: Site doesn't have a title (text/html). 77

78 5353/udp open filtered zeroconf No exact OS matches for host (If you know what OS is running on it, see ). TCP/IP fingerprint: OS:SCAN(V=5.00%D=8/31%OT=22%CT=1%CU=2%PV=Y%DS=0%G=Y %TM= %P=x86_64-un OS:known-linux-gnu)SEQ(SP=103%GCD=1%ISR=108%TI=Z%CI=Z%II=I %TS=7)OPS(O1=M400 OS:CST11NW7%O2=M400CST11NW7%O3=M400CNNT11NW7%O4=M400CST11NW7% O5=M400CST11NW OS:7%O6=M400CST11)WIN(W1=8000%W2=8000%W3=8000%W4=8000%W5=8000%W6 =8000)ECN(R OS:=Y%DF=Y%T=40%W=8018%O=M400CNNSNW7%CC=Y%Q=)T1(R=Y%DF=Y %T=40%S=O%A=S+%F=AS OS:%RD=0%Q=)T2(R=N)T3(R=Y%DF=Y%T=40%W=8000%S=O%A=S+%F=AS %O=M400CST11NW7%RD= OS:0%Q=)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y %DF=Y%T=40%W=0%S= OS:Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R %O=%RD=0%Q=)T7(R= OS:Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N %T=40%IPL=164%UN=0%R OS:IPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S) Uptime guess: days (since Fri Aug 31 11:41: ) Network Distance: 0 hops TCP Sequence Prediction: Difficulty=259 (Good luck!) IP ID Sequence Generation: All zeros Service Info: OS: Linux Read data files from: /usr/share/nmap OS and Service detection performed. Please report any incorrect Nmap done: 1 IP address (1 host up) scanned in seconds Raw packets sent: 2096 (80.018KB) Rcvd: 3206 ( KB) results at Σύνοψη Το Nmap ανακάλυψε τις ανοιχτές tcp θύρες 22 και 80, τις υπηρεσίες που τρέχουν σε αυτές ( ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0) για την θύρα 22 και http Apache httpd ((Ubuntu)) για την θύρα 80) καθώς και τις udp θύρες 5353 και όπου ακούει ο avahi daemon των linux. Λόγω ρυθμίσεων στον υπολογιστή στόχο, το Nmap μπόρεσε μόνο να καθορίσει τον τύπο του λειτουργικού συστήματος (Linux) αλλά όχι την συγκεκριμένη διανομή (Ubuntu) ή την έκδοση της. Ταυτόχρονα κάνει μια πρόβλεψη για το πόση ώρα είναι σε λειτουργία ο υπολογιστής και την απόσταση δικτύου, σε hops, μεταξύ του Nmap και του στόχου. 78

79 Nikto Έλεγχος μέσω του Nikto Το Nikto εξετάζει τους web servers για να βρει πιθανά προβλήματα και αδυναμίες. Δίνοντας την εντολή perl nikto.pl -h το Nikto ελέγχει αυτομάτως την θύρα 80 της καθορισμένης IP διεύθυνσης για την ύπαρξη εξυπηρέτη δικτύου, και έπειτα προχωράει σε δοκιμές για τον εντοπισμό αδυναμιών. Τα αποτελέσματα του ελέγχου είναι: - Nikto v2.03/ Target IP: Target Hostname: kostas.local+ Target Port: 80+ Start Time: :11: Server: Apache/ (Ubuntu) - Allowed HTTP Methods: GET, HEAD, POST, OPTIONS + OSVDB-3268: GET /icons/ : Directory indexing is enabled: /icons+ OSVDB-3233: GET /icons/readme : Apache default file found items checked: 3 item(s) reported on remote host+ End Time: :11:53 (9 seconds) host(s) tested Test Options: -h Το Nikto βρήκε το όνομα host του στόχου, τον τύπο και την έκδοση του web server (Apache/ (Ubuntu)), τις επιτρεπόμενες HTTP ενέργειες, και παρείχε δύο ειδοποιήσεις, ότι το directory indexing είναι ενεργοποιημένο για τον φάκελο /icons και ότι βρέθηκε ενα προκαθορισμένο αρχείο του Apache στον ίδιο φάκελο. GFI Languard 2012 Έλεγχος μέσω του GFI Languard 2012 Το GFI Languard 2012, το οποίο έτρεχε από διαφορετικό υπολογιστή με λειτουργικό σύστημα Windows Vista, ρυθμίστηκε να εκτελέσει πλήρη έλεγχο στον υπολογιστή-στόχο. Τα αποτελέσματα του ελέγχου δίνονται στην παρακάτω αναφορά που παρήχθη αυτόματα από το πρόγραμμα: 79

80 80

81 81

82 82

83 Σύνοψη αναφοράς Αναλύοντας την αναφορά, παρατηρούμε ότι το GFI Languard σκάναρε 4811 αντικείμενα σε περίπου 38 λεπτά. Ανακάλυψε 2 αδυναμίες υψηλού κινδύνου (μια τροποποιημένη συνάρτηση κλήσης συστήματος και έναν τροποποιημένο πίνακα κλήσης συστήματος), και 7 χαμηλού (μη ρύθμιση ελέγχων δύναμης κωδικών, λάθος άδειες αρχείων και 5 υπηρεσίες). Επίσης βρήκε 14 ανοιχτές TCP θύρες, και στοιχεία σχετικά με το λειτουργικό σύστημα του υπολογιστή, τις εκδόσεις των εξυπηρετών και πληροφορίες προγραμμάτων. Ιστοσελίδα σχολής (www.csd.auth.gr) Στο πλαίσιο της εργασίας, δοκιμάστηκε και ο έλεγχος του επιπέδου ασφαλείας της ιστοσελίδας της σχολής, για να εξακριβωθεί ταυτόχρονα και η απόδοση των προγραμμάτων απέναντι σε ένα κανονικό web server. Υπολογιστικό υλικό που χρησιμοποιήθηκε Για την διενέργεια των ελέγχων χρησιμοποιήθηκε πάλι ο υπολογιστής με το λειτουργικό σύστημα Linux Ubuntu 10.04, αλλά επίσης και υπολογιστής με λειτουργικό Windows Vista, και virtual machine με λειτουργικό Backtrack 5 R3 ( το οποίο αποτελεί έκδοση Linux κατάλληλα ρυθμισμένη για ελέγχους ασφαλείας δικτύων). Προγράμματα που χρησιμοποιήθηκαν 83 Nessus Nmap Nikto W3af: Το W3af είναι ένα ανοιχτού κώδικα σκάνερ ασφαλείας εφαρμογών δικτύου, το οποίο στοχεύει στον έλεγχο πιθανών αδυναμιών αλλά και στην δοκιμή εκμετάλλευσης τους για να εξακριβωθεί η επικινδυνότητα τους. Το W3af αναγνωρίζει τις περισσότερες αδυναμίες εφαρμογών δικτύου, χρησιμοποιώντας περισσότερα από 130 πρόσθετα. Μετά την αναγνώριση αδυναμίες

84 84 όπως SQL injections, OS commanding, remote file inclusions, cross-site scripting, και μη ασφαλή αρχεία μπορούν να εκμεταλλευτούν ώστε να αποκτηθούν διαφορετικοί τύποι πρόσβασης στο απομακρυσμένο σύστημα. Το W3af χωρίζεται σε δυο κυρίως μέρη. Τον πυρήνα και τα πρόσθετα. Ο πυρήνας συντονίζει την διεργασία και παρέχει επιλογές που χρησιμοποιούνται από τα πρόσθετα, τα οποία βρίσκουν τις αδυναμίες και τις εκμεταλλεύονται. Τα πρόσθετα είναι συνδεδεμένα μεταξύ τους και μοιράζονται πληροφορίες χρησιμοποιώντας μια κοινή βάση γνώσεως. Τα πρόσθετα κατηγοριοποιούνται στους παρακάτω τύπους: Discovery Audit Grep Attack Output Mangle Evasion Bruteforce Paros proxy: Το Paros είναι ενα εργαλείο ελέγχου ασφάλειας και αδυναμιών. Το πρόγραμμα μπορεί να χρησιμοποιηθεί για να ανακαλύψει ολόκληρη την ιστοσελίδα και έπειτα να εκτελέσει ελέγχους πιθανών αδυναμιών. WebSecurify Suite : To WebSecurify Suite είναι μια εφαρμογή ελέγχου ασφαλείας εφαρμογών δικτύου, σχεδιασμένη να λειτουργεί αποκλειστικά από τον περιηγητή δικτύου του χρήστη. Ουσιαστικά το πρόγραμμα είναι μια cloud-based εφαρμογή ελέγχου ασφαλείας, η οποία δίνει όμως έμφαση σε client-side τεχνολογίες. Πρακτικά, αυτό σημαίνει ότι μόνο ο κώδικας της εφαρμογής, παραδίδεται από τους εξυπηρέτες της εταιρίας, ενώ τα υπόλοιπα, όπως δεδομένα δοκιμών, η εκτέλεση των δοκιμών και άλλες λειτουργίες παραμένουν στον πελάτη, πχ τον περιηγητή δικτύου. Webshag: Το Webshag είναι ένα πολυνηματικό εργαλείο επιθεώρησης περιηγητών δικτύου, σχεδιασμένο να τρέχει σε πολλαπλές πλατφόρμες. Γραμμένο σε Python, συγκεντρώνει συχνά χρησιμοποιούμενες, χρήσιμες λειτουργίες για έλεγχο περιηγητών δικτύου, όπως website spider, URL scanning ή fuzzing αρχείων (το fuzzing είναι μια τεχνική ελέγχου λογισμικού, συχνά αυτοματοποιημένη ή ημιαυτοματοποιημένη, που σχετίζεται με την παροχή άκυρων, μη προσδοκώμενων ή τυχαίων δεδομένων, στο κανάλι εισόδου ενός προγράμματος υπολογιστή. Το πρόγραμμα, έπειτα, παρακολουθείται, για εξαιρέσεις όπως crashes, ενσωματωμένες δηλώσεις αποτυχίας κώδικα, ή πιθανές διαρροές μνήμης). Το Webshag μπορεί να χρησιμοποιηθεί για να ελέγξει έναν περιηγητή δικτύου σε Http ή Https, διαμέσου ενός proxy ή μέσω χρήσης HTTP αυθεντικοποιήσης. Επιπρόσθετα, εισάγει καινοτόμες λειτουργίες αποφυγής ΙDS, με σκοπό να κάνει πιο δύσκολη την συσχέτιση μεταξύ των αιτήσεων (πχ η χρήση ενός διαφορετικού τυχαίου proxy server ανά αίτηση). Επίσης παρέχει λειτουργίες όπως την ικανότητα ανάκτησης μιας λίστας με domain ονόματα που φιλοξενεί το μηχάνημα-στόχος, και file fuzzing χρησιμοποιώντας δυναμικά παραγόμενα ονόματα αρχείων (επιπρόσθετα με το βασιζόμενο σε λίστα fuzzing). Το Url scanner και το file fuzzer του Webshag προσπαθούν να ελαττώσουν τον αριθμό των "false positives" παράγοντας έτσι ορθότερα σετ αποτελεσμάτων. Για αυτόν τον σκοπό, το πρόγραμμα ενσωματώνει έναν μηχανισμό ταυτοποίησης των ιστοσελίδων,

85 ανθεκτικό στην αλλαγή των περιεχομένων. Ο μηχανισμός αυτός χρησιμοποιείται έπειτα, σε έναν αλγόριθμο απομάκρυνσης των "false positives" ειδικά σχεδιασμένο για να αντιμετωπίζει "soft 404" απαντήσεις εξυπηρετών. Το Webshag παρέχει μια πλήρης διεπαφή χρήστη, όπως και διεπαφή γραμμής εντολών, και είναι διαθέσιμο για πλατφόρμες Linux και Windows, υπό την GPL άδεια. Αποτελέσματα ελέγχων Nessus Αποτελέσματα ελέγχου μέσω Nessus 85

86 86

87 Σύνοψη αποτελεσμάτων Το Nessus μετά τον έλεγχο εμφάνισε 25 αντικείμενα προς εξέταση. Τα 22 από αυτά είναι πληροφορίες μη σημαντικής κρισιμότητας, όπως πληροφορίες σχετικές με τον έλεγχο, τον εξυπηρέτη, τον υπολογιστή που αυτός τρέχει και την ιστοσελίδα, οι οποίες όμως μπορούν να εξάγουν χρήσιμα αποτελέσματα. Συγκεκριμένα, μέσω της αναφοράς, δίνεται μια λίστα με αρχεία τύπου office που βρέθηκαν στην ιστοσελίδα, διευθύνσεις που συλλέχθηκαν, τα directories του εξυπηρέτη, για επιθεώρηση αν αυτά συμμορφώνονται με την πολιτική ασφαλείας. Παρέχεται ειδοποίηση για πιθανώς ευαίσθητες παραμέτρους στα CGI scripts της ιστοσελίδας (σύμφωνα με το όνομα των παραμέτρων), αλλά και οι κατάλογοι που μπορούν να περιηγηθούν (browsable web directories) για εξακρίβωση ότι δεν διαφεύγουν εμπιστευτικές πληροφορίες μέσω αυτών. Επίσης, δίνεται ο τύπος του απομακρυσμένου εξυπηρέτη (Apache), οι HTTP μέθοδοι που επιτρέπονται σε κάθε κατάλογο, το δρομολόγιο που ακολουθήθηκε από το μηχάνημα που τρέχει το Nessus ως τον εξυπηρέτη (traceroute), μια υπόθεση για το λειτουργικό του σύστημα (Linux Kernel 2.6), μια λίστα με όλα τα links της ιστοσελίδας προς εξωτερικές σελίδες, καθώς και μια λίστα με όλα τα CGI scripts που ανακαλύφθηκαν. Τα 3 αντικείμενα μέτριας κρισιμότητας, αφορούν πιθανές αδυναμίες Cross-site scripting, που ανακαλύφθηκαν σε ορισμένα στοιχεία της ιστοσελίδας. Το XSS, το οποίο αναφέρθηκε εκτενώς σε άλλη ενότητα, μπορεί να έχει ιδιαίτερα επικίνδυνες συνέπειες για τον χρήστη, αν καταφέρει ένας κακόβουλος χρήστης να το εκμεταλλευτεί για δικό του σκοπό. Πρέπει να σημειωθεί όμως, ότι αν και υπάρχει ειδοποίηση, δεν είναι σίγουρο ότι υπάρχει και πρόβλημα cross-site scripting, για την εξακρίβωση του οποίου απαιτείται χειροκίνητος έλεγχος. Nikto Έλεγχος μέσω του Nikto Nikto v2.03/ Target IP: Target Hostname: Target Port: 80+ Start Time: :08: Server: Apache+ OSVDB-0: GET /index.php?module=my_egallery : My_eGallery prior to g are vulnerable to a remote execution bug via SQL command injection.+ OSVDB-0: GET /index.php?option=search&searchword=<script>alert(document.cookie);</script> : Mambo Site Server 4.0 build 10 is vulnerable to Cross Site Scripting (XSS). OSVDB-0: GET /index.php?dir=<script>alert('vulnerable')</script> : Auto Directory Index and prior are vulnerable to XSS attacks.+ OSVDB-0: GET /index.php?file=liens&op=\"><script>alert('vulnerable');</script> : Nuked-klan 1.3b is vulnerable to Cross Site Scripting (XSS). OSVDB-0: GET /index.php?action=storenew&username=<script>alert('vulnerable')</script> : 87

88 SunShop is vulnerable to Cross Site Scripting (XSS) in the signup page. CA OSVDB-0: GET /index.php/content/search/? SectionID=3&SearchText=<script>alert(document.cookie)</script> : ez publish v3 and prior allow Cross Site Scripting (XSS). OSVDB-0: GET /index.php/content/advancedsearch/? SearchText=<script>alert(document.cookie)</script>&PhraseSearchText=<script>alert(document.cooki e)</script>&searchcontentclassid=-1&searchsectionid=-1&searchdate=-1&searchbutton=search : ez publish v3 and prior allow Cross Site Scripting (XSS). OSVDB-0: GET /?mod=<script>alert(document.cookie)</script>&op=browse : Sage 1.0b3 is vulnerable to Cross Site Scripting (XSS). OSVDB-25497: GET /index.php?rep=<script>alert(document.cookie)</script> : GPhotos index.php rep Variable XSS.+ OSVDB-12606: GET /index.php?err=3& =\"><script>alert(document.cookie)</script> : MySQL Eventum is vulnerable to XSS in the field.+ OSVDB-2790: GET /index.php?vo=\"><script>alert(document.cookie);</script> : Ralusp Sympoll 1.5 is vulnerable to Cross Site Scripting (XSS). OSVDB-3092: GET /manual/ : Web server manual found.+ OSVDB-3093: GET /index.php?base=test%20 : This might be interesting... has been seen in web logs from an unknown scanner.+ OSVDB-3093: GET /index.php?idadmin=test : This might be interesting... has been seen in web logs from an unknown scanner.+ OSVDB-3093: GET /index.php?pymembs=admin : This might be interesting... has been seen in web logs from an unknown scanner.+ OSVDB-3093: GET /index.php?sqlquery=test%20 : This might be interesting... has been seen in web logs from an unknown scanner.+ OSVDB-3093: GET /index.php?tampon=test%20 : This might be interesting... has been seen in web logs from an unknown scanner.+ OSVDB-3093: GET /index.php? topic=&lt;script&gt;alert(document.cookie)&lt;/script&gt;%20 : This might be interesting... has been seen in web logs from an unknown scanner.+ OSVDB-3268: GET /icons/ : Directory indexing is enabled: /icons+ OSVDB-3268: GET /manual/images/ : Directory indexing is enabled: /manual/images+ OSVDB-3233: GET /icons/readme : Apache default file found items checked: 21 item(s) reported on remote host+ End Time: :14:46 (348 seconds) host(s) tested 88

89 Test Options: -h Σύνοψη αποτελεσμάτων Το Nikto ρυθμίστηκε να ελέγξει τη θύρα 80 (HTTP port) της ιστοσελίδας. Εξέτασε 3577 αντικείμενα και ανέφερε τα 21 από αυτά ως πιθανώς χρήσιμα. Αυτά αφορούν, κυρίως, πιθανά προβλήματα SQL injection και Cross-site scripting σε διάφορα modules της ιστοσελίδας. Πρέπει και πάλι να σημειωθεί ότι, παρόλο που υπάρχει ειδοποίηση δεν είναι αναγκαίο ότι το πρόβλημα αυτό μπορεί να εκμεταλλευτεί. Η αναφορά επίσης παρέχει ειδοποιήσεις σχετικές με default αρχεία που βρέθηκαν και περιοχές του εξυπηρέτη στις οποίες το Directory indexing είναι ενεργοποιημένο, ενώ μας δίνει και τον τύπο του εξυπηρέτη (Apache, καθώς απ'ότι φαίνεται ο διαχειριστής του εξυπηρέτη έχει κάνει καλή δουλεία στο να κρύψει περαιτέρω πληροφορίες όπως τον αριθμό έκδοσης κ.α.). W3af Έλεγχος μέσω του W3af To W3af ρυθμίστηκε να εκτελέσει πλήρη έλεγχο στην ιστοσελίδα της σχολής αφού πρώτα λειτουργήσει το WebSpider πρόσθετο για να την ανακαλύψει ολόκληρη. Από την ροή εξόδου του προγράμματος τα πιο σημαντικά αποτελέσματα ήταν: The server header for the remote web server is: "Apache". This information was found in the request with id 66. The URL: "http://www.csd.auth.gr/files/pliroforiki2010.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 8. The URL: "http://www.csd.auth.gr/files/final_report_csd_auth.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 11. The URL: "http://www.csd.auth.gr/en/files/final_report_csd_auth.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 133. The URL: "http://www.csd.auth.gr/files/award pdf" returned an empty body. This could indicate an error. This information was found in the request with id 319. The URL: "http://www.csd.auth.gr/files/ _websites.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 368. The URL: "http://www.csd.auth.gr/files/sinergazomena_panepistimia.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 372. The URL: "http://www.csd.auth.gr/files/odigos_spoudwn.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 381. The URL: "http://www.csd.auth.gr/en/files/guide-for-undergraduate-studies.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 629. The URL: "http://www.csd.auth.gr/en/files/odigos_spoudwn.pdf" returned an empty body. This could indicate an error. This information was found in the request with id

90 The URL: "http://www.csd.auth.gr/files/eisexorixilek.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 735. The URL: "http://www.csd.auth.gr/files/eisexorixiepik.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 739. The URL: "http://www.csd.auth.gr/files/eisigisikath.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 751. The URL: "http://www.csd.auth.gr/files/eisigisiypolnohm.pdf" returned an empty body. This could indicate an error. This information was found in the request with id 758. The URL: "http://www.csd.auth.gr/files/direction-presentation-networks.pdf" returned an empty body. This could indicate an error. This information was found in the request with id The URL: "http://www.csd.auth.gr/files/direction-presentation-digital-media.pdf" returned an empty body. This could indicate an error. This information was found in the request with id The URL: "http://www.csd.auth.gr/files/direction-presentation-information-systems.pdf" returned an empty body. This could indicate an error. This information was found in the request with id The URL: "http://www.csd.auth.gr/files/direction-presentation-education.pdf" returned an empty body. This could indicate an error. This information was found in the request with id The URL: "http://www.csd.auth.gr/js/mootools core-yc.js" returned a response that may contain a "SHA1" hash. The hash is: "0d4845aab3d9a4fdee2f0d4a6dd59210e4b697cf". This is uncommon and requires human verification. This information was found in the request with id 28. A possible OS Commanding was found at: "http://www.csd.auth.gr/en/announcement-details.php", using HTTP method GET. The sent data was: "id=%26%26ping+-c+9+localhost".please review manually. This information was found in the request with id A possible OS Commanding was found at: "http://www.csd.auth.gr/en/announcement-details.php", using HTTP method GET. The sent data was: "id=%60ping+-n+3+localhost%60".please review manually. This information was found in the request with id A possible OS Commanding was found at: "http://www.csd.auth.gr/en/awards.php", using HTTP method GET. The sent data was: "page=%26%26ping+-n+3+localhost".please review manually. This information was found in the request with id A possible OS Commanding was found at: "http://www.csd.auth.gr/course-info.php", using HTTP method GET. The sent data was: "id=%7cping+-c+9+localhost".please review manually. This information was found in the request with id A possible OS Commanding was found at: "http://www.csd.auth.gr/en/direction-info.php", using HTTP method GET. The sent data was: "id=%7cping+-n+3+localhost".please review manually. This information was found in the request with id eval() input injection was found at: "http://www.csd.auth.gr/en/awards.php", using HTTP method GET. The sent data was: "page=thread.sleep(9000)%3b".. Please review manually. This information was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/announcement- 90

91 details.php", using HTTP method GET. The sent data was: "id=<script>alert("c2xj")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/en/announcementdetails.php", using HTTP method GET. The sent data was: "id=<script>alert("8c0y")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/awards.php", using HTTP method GET. The sent data was: "page=<script>alert("lvmq")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/depdetails.php", using HTTP method GET. The sent data was: "id=<script>alert("wck1")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/announcements.php", using HTTP method GET. The sent data was: "page=<script>alert("nza2")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/en/announcements.php", using HTTP method GET. The sent data was: "page=<script>alert("2bca")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/en/awards.php", using HTTP method GET. The sent data was: "page=<script>alert("buzp")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/en/depdetails.php", using HTTP method GET. The sent data was: "id=<script>alert("sobp")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/direction-info.php", using HTTP method GET. The sent data was: "id=<script>alert("mkbi")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/course-info.php", using HTTP method GET. The sent data was: "id=<script>alert("mkkc")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/en/course-info.php", using HTTP method GET. The sent data was: "id=<script>alert("pkjc")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id [09/04/12 14:29:28] Cross Site Scripting was found at: "http://www.csd.auth.gr/en/direction-info.php", using HTTP method GET. The sent data was: "id=<script>alert("ecqj")</script>". This vulnerability affects ALL browsers. This vulnerability was found in the request with id The URL "http://www.csd.auth.gr/images-slider/flags/" has the following allowed methods: GET, HEAD, OPTIONS, POST. This information was found in the request with id 493. The URL "http://www.csd.auth.gr/files/" has the following allowed methods: GET, HEAD, OPTIONS, POST. This information was found in the request with id 494. The URL "http://www.csd.auth.gr/js/" has the following allowed methods: GET, HEAD, OPTIONS, 91

92 POST. This information was found in the request with id 495. The URL "http://www.csd.auth.gr/images-slider/" has the following allowed methods: GET, HEAD, OPTIONS, POST. This information was found in the request with id 499. The URL "http://www.csd.auth.gr/css/" has the following allowed methods: GET, HEAD, OPTIONS, POST. This information was found in the request with id 500. The URL "http://www.csd.auth.gr/images/" has the following allowed methods: GET, HEAD, OPTIONS, POST. This information was found in the request with id 501. The URL "http://www.csd.auth.gr/style/" has the following allowed methods: GET, HEAD, OPTIONS, POST. This information was found in the request with id 502. The URL "http://www.csd.auth.gr/en/files/" has the following allowed methods: GET, HEAD, OPTIONS, POST. This information was found in the request with id 904. Σύνοψη αποτελεσμάτων Απομονώσαμε 45 αντικείμενα. Αυτά αφορούν: πιθανά λάθη στην ιστοσελίδα λόγω κενών υπερσυνδέσμων που βρέθηκαν. Ειδοποιήσεις για πιθανό OS commanding, μέσω της ιστοσελίδας. Το OS commanding είναι μια μέθοδος επίθεσης στον εξυπηρέτη, μέσω απόκτησης απομακρυσμένης πρόσβασης στο λειτουργικό σύστημα και έπειτα εκτέλεσης εντολών συστήματος μέσω του περιηγητή. Μόλις η πρόσβαση αποκτηθεί, ο κακόβουλος χρήστης μπορεί να ανεβάσει προγράμματα στον εκτεθειμένο εξυπηρέτη και να τα εκτελέσει. Το OS commanding είναι παρόμοιο του command injection. Πιθανό eval() injection. Μια αδυναμία eval injection συμβαίνει όταν ένας επιτιθέμενος μπορεί να ελέγξει ολόκληρη ή κομμάτι της εισόδου που παρέχεται σε μια κλήση λειτουργίας eval(). Το στοιχείο της eval() θα επεξεργαστεί ως PHP, οπότε επιπλέον εντολές μπορούν να ενσωματωθούν. Για παράδειγμα, αν μια παράμετρος "arg" έχει τεθεί ως "10; system('/bin/echo uh-oh')", επιπλέον κώδικας τρέχει, ο οποίος εκτελεί ένα πρόγραμμα στον εξυπηρέτη, σε αυτή την περίπτωση "/bin/echo". Πιθανό cross site scripting. Τέλος εμφανίζονται οι επιτρεπόμενες ενέργειες σε διάφορα directories του apache εξυπηρέτη. Nmap Έλεγχος μέσω του Nmap. Απλό ping. Δοκιμάσαμε διάφορους τύπους ελέγχου με το Nmap για να πειραματιστούμε με την λειτουργία του και τις διαφορετικές επιλογές που δίνει αλλά και για να παρουσιαστούν τα αποτελέσματα του πιο σταδιακά. Αρχικά δώσαμε την εντολή nmap -sn όπου η παράμετρος -sn ρυθμίζει το Nmap να μην κάνει έλεγχο θυρών. Το αποτέλεσμα που πήραμε είναι: Starting Nmap 6.01 ( ) at :33 EEST Nmap scan report for ( ) Host is up (0.0020s latency). Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds 92

93 Ουσιαστικά η αναφορά του Nmap μας δηλώνει ότι ο εξυπηρέτης είναι σε λειτουργία. Έλεγχος μέσω του Nmap. Γρήγορος έλεγχος. Ο επόμενος τύπος ελέγχου του Nmap που δοκιμάσαμε είναι ο γρήγορος έλεγχος (Quick scan). Αυτός καθορίστηκε μέσω της εντολής nmap -T4 -F όπου, όπως εξηγήθηκε και προηγούμενα, η παράμετρος -Τ4 ορίζει το χρονικό πρότυπο πάνω στο οποίο εφαρμόζεται ο συγκεκριμένος έλεγχος, ενώ το -F δηλώνει στο πρόγραμμα να εκτελέσει γρήγορο έλεγχο. Τα αποτελέσματα που πήραμε είναι: Starting Nmap 6.01 ( ) at :35 EEST Nmap scan report for ( ) Host is up (0.0051s latency). Not shown: 86 filtered ports PORT STATE SERVICE 25/tcp open smtp 80/tcp open http 110/tcp open pop3 119/tcp open nntp 143/tcp open imap 465/tcp open smtps 587/tcp open submission 993/tcp open imaps 995/tcp open pop3s 3128/tcp open squid-http 8008/tcp open http 8080/tcp open http-proxy 8081/tcp open blackice-icecap 8888/tcp open sun-answerbook Nmap done: 1 IP address (1 host up) scanned in 2.09 seconds Επιπλέον των αποτελεσμάτων του προηγούμενου ελέγχου, και αφού έχουμε δώσει εντολή για έλεγχο θυρών, το Nmap μας επιστρέφει τον αριθμό των διαθέσιμων υπηρεσιών του εξυπηρέτη (14 υπηρεσίες), τον τύπο τους, την κατάσταση τους και την θύρα στην οποία ακούνε. Έλεγχος μέσω του Nmap. Έντονος έλεγχος. Επόμενος τύπος έλεγχου που εκτελέσαμε είναι ο έντονος έλεγχος. Αυτός καθορίστηκε μέσω της εντολής nmap -T4 -A -v όπου -Α η οδηγία για να ενεργοποιηθούν όλες οι προηγμένες λειτουργίες όπως ο εντοπισμός του λειτουργικού συστήματος, της έκδοσης, η ενεργοποίηση της χρήσης scripts για τον έλεγχο, και του εντοπισμού διαδρομής. Το -v καθορίζει το verbosity level. Τα αποτελέσματα που πήραμε είναι: Starting Nmap 6.01 ( ) at :58 EEST NSE: Loaded 93 scripts for scanning. NSE: Script Pre-scanning. Initiating Ping Scan at 01:58 Scanning ( ) [4 ports] Completed Ping Scan at 01:58, 0.02s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 01:58 Completed Parallel DNS resolution of 1 host. at 01:58, 0.08s elapsed 93

94 Initiating SYN Stealth Scan at 01:58 Scanning ( ) [1000 ports] Discovered open port 587/tcp on Discovered open port 143/tcp on Discovered open port 8888/tcp on Discovered open port 993/tcp on Discovered open port 8080/tcp on Discovered open port 110/tcp on Discovered open port 80/tcp on Discovered open port 995/tcp on Discovered open port 25/tcp on Discovered open port 563/tcp on Discovered open port 465/tcp on Discovered open port 119/tcp on Discovered open port 8081/tcp on Discovered open port 3128/tcp on Discovered open port 8008/tcp on Completed SYN Stealth Scan at 01:58, 5.31s elapsed (1000 total ports) Initiating Service scan at 01:58 Scanning 15 services on ( ) Service scan Timing: About 13.33% done; ETC: 02:14 (0:13:52 remaining) Completed Service scan at 02:00, s elapsed (15 services on 1 host) Initiating OS detection (try #1) against ( ) Retrying OS detection (try #2) against ( ) Initiating Traceroute at 02:00 Completed Traceroute at 02:00, 3.02s elapsed NSE: Script scanning Initiating NSE at 02:00 Completed NSE at 02:03, s elapsed Nmap scan report for ( ) Host is up (0.0045s latency). Not shown: 985 filtered ports PORT STATE SERVICE VERSION 25/tcp open smtp? _smtp-commands: Couldn't establish connection on port 25 80/tcp open http Apache httpd _http-methods: No Allow or Public header in OPTIONS response (status code 200) _http-title: \xce\xa4\xce\xbc\xce\xae\xce\xbc\xce\xb1 \xce\xa0\xce\xbb\xce\xb7\xcf\x81\xce\xbf\xcf\x86\xce\xbf\xcf\x81\xce\xb9\xce\xba\ xce\xae\xcf\x82 \xce\x91\xce\xa0\xce\x98 \xce\x91\xcf\x81\xcf\x87\xce\xb9\xce\xba\xce\xae \xce\xa3\xce\xb /tcp open pop3? 119/tcp open nntp? 143/tcp open imap? imap-capabilities: _ ERROR: Failed to connect to server 465/tcp open smtps? _smtp-commands: Couldn't establish connection on port /tcp open snews? 587/tcp open submission? 94

95 _smtp-commands: Couldn't establish connection on port /tcp open imaps? 995/tcp open pop3s? 3128/tcp open squid-http? 8008/tcp open http? 8080/tcp open http-proxy? 8081/tcp open blackice-icecap? 8888/tcp open sun-answerbook? Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Aggressive OS guesses: QEMU user mode network gateway (95%), 3Com SuperStack 3 Switch 4300, Dell PowerEdge 2650 remote access controller, Samsung ML-2571N or 6555N printer, or Xerox Phaser 3125N printer (88%), Dell 1815dn printer (88%), Xerox WorkCentre 4150 printer (88%), Slingmedia Slingbox AV TV over IP gateway (87%), Bay Networks BayStack 450 switch (software version ) (87%), Bay Networks BayStack 450 switch (software version ) (87%), Samsung CLP-310N or CLX-3175RW, or Xerox Phaser 6110 printer (87%), Cabletron ELS100-24TXM Switch or Icom IC-7800 radio transceiver (86%), Cisco Catalyst 1900 switch or RAD IPMUX-1 TDM-over-IP multiplexer (86%) No exact OS matches for host (test conditions non-ideal). Network Distance: 2 hops TCP Sequence Prediction: Difficulty=17 (Good luck!) IP ID Sequence Generation: Incremental TRACEROUTE (using port 80/tcp) HOP RTT ADDRESS ms ( ) NSE: Script Post-scanning. Read data files from: /usr/local/bin/../share/nmap OS and Service detection performed. Please report any incorrect results at Nmap done: 1 IP address (1 host up) scanned in seconds Raw packets sent: 2057 (95.092KB) Rcvd: 60 (2.540KB) Το Nmap και πάλι εντόπισε τον εξυπηρέτη που ακούει στην IP διεύθυνση της ιστοσελίδας της σχολής, τις υπηρεσίες που τρέχουν, τον τύπο τους και τις θύρες στις οποίες ακούνε. Επιπρόσθετα προσπάθησε να μας προμηθεύσει με περισσότερα στοιχεία για κάθε υπηρεσία (όπως ότι στη θύρα 80 για την Http υπηρεσία ακούει ένας εξυπηρέτης Apache) και τον τύπο του λειτουργικού συστήματος πάνω στο οποίο τρέχει ο εξυπηρέτης (με υπόθεση επιθετικής μορφής και κατά 95% πιθανότητα το Nmap μας λέει ότι πρόκειται για ένα QEMU user mode network gateway όπου το QEMU είναι ένας προσομοιωτής ή virtual machine). Τέλος εκτελεί και εντοπισμό της διαδρομής που ακολουθείτε μεταξύ του υπολογιστή που εκτελεί το Nmap και της ιστοσελίδας της σχολής (αν και εξαιτίας του virtual machine μέσα στο οποίο τρέχουν τα backtrack και κατ'επέκτασιν το Nmap το traceroute δεν φαίνεται να είναι έγκυρο). Έλεγχος μέσω του Nmap. Εκτενής έλεγχος Τελευταίος τύπος ελέγχου που εκτελέστηκε ο εκτενής έλεγχος μέσω του προγράμματος στην ιστοσελίδα της σχολής μέσω επιπλέον χρήσης scripts εξερευνητικού τύπου. 95

96 Η μηχανή σεναρίου εντολών του Nmap (Nmap Scripting Engine) είναι από τις πιο δυνατές και ευέλικτες λειτουργίες του. Επιτρέπει στους χρήστες να γράφουν (και να μοιράζονται) απλά σενάρια εντολών για να αυτοματοποιούν ένα ευρύ φάσμα εργασιών δικτύου. Αυτά τα σκρίπτ, εκτελούνται έπειτα παράλληλα, με την ταχύτητα και την αποτελεσματικότητα που αναμένεται από το Nmap. Οι χρήστες μπορούν να εμπιστευτούν το αυξανόμενο και πολυποίκιλο σύνολο scripts που διανέμονται μαζί με το Nmap ή να γράψουν τα δικά τους. Η μηχανή σεναρίου εντολών έχει σχεδιαστεί να είναι ευπροσάρμοστη, λαμβάνοντας υπόψιν τις ακόλουθες εργασίες: Εξερεύνηση δικτύου, πιο εκλεπτυσμένη ανίχνευση έκδοσης, εντοπισμός αδυναμιών, εντοπισμός Backdoor αλλά και εκμετάλλευση αδυναμιών. Τα σενάρια εντολών γράφονται στην γλώσσα προγραμματισμού Lua. Η εντολή που δώσαμε για τον έλεγχο είναι nmap -ss -su -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU PY -g 53 --script "default or (discovery and safe)" όπου: -ss, αναφέρεται σε TCP SYN Scan. -su, όπου αναφέρεται σε έλεγχο UDP. -Τ4, όπου αναφέρεται στο χρονικό πρότυπο πάνω στο οποίο εφαρμόζεται ο συγκεκριμένος έλεγχος του Nmap. -Α, δηλαδή ενεργοποίηση όλων των προηγμένων/ επιθετικών επιλογών -v (verbosity level), όπου καθορίζει πόσες πληροφορίες για τον έλεγχο θα εμφανιστούν. -PE, για να στείλει μια αίτηση ICMP echo (ping) για να εξακριβώσει αν ο στόχος λειτουργεί. -PP για να στείλει μια διερεύνηση ICMP timestamp, ούτως ώστε να εξακριβωθεί αν ο host είναι σε λειτουργία. -PS, για SYN ping στις θύρες 80, PA, για ACK ping στη θύρα PU για να στείλει διερεύνηση UDP, ούτως ώστε να εξακριβωθεί αν ο host είναι σε λειτουργία. -PY για να στείλει SCTP INIT chunk packets για να εξακριβωθεί αν ο στόχος είναι σε λειτουργία. Το SCTP είναι ένα πρωτόκολλο επιπέδου μεταφοράς, με παρόμοιο ρόλο όπως τα TCP και UDP. Παρέχει κάποιες από τις λειτουργίες υπηρεσιών των δύο: έχει προσανατολισμό στα μηνύματα όπως το UDP και διασφαλίζει αξιόπιστη, ακολουθιακή μεταφορά των μηνυμάτων με έλεγχο συμφόρησης, όπως το TCP. Το ΙΝΙΤ είναι το πρώτο επίπεδο στην λειτουργία χειραψίας τεσσάρων επιπέδων, αντί των τριών του TCP, που χρησιμοποιεί το SCTP. -g για να ορίσουμε ως πηγή προέλευσης των πακέτων (την θύρα από την οποία το Nmap θα στέλνει τα πακέτα όταν είναι εφικτό) την θύρα script για να ενεργοποιήσουμε ορισμένα σκρίπτ (τα οποία εδώ ορίζονται ως default or (discovery and safe)) την NSE. Τα αποτελέσματα που πήραμε είναι: Starting Nmap 6.01 ( ) at :22 EEST NSE: Loaded 177 scripts for scanning. NSE: Script Pre-scanning. Initiating NSE at 16:22 Completed NSE at 16:22, 5.63s elapsed Pre-scan script results: targets-asn: _ targets-asn.asn is a mandatory parameter 96

97 Initiating Ping Scan at 16:22 Scanning ( ) [7 ports] Completed Ping Scan at 16:22, 0.01s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 16:22 Completed Parallel DNS resolution of 1 host. at 16:22, 0.01s elapsed Initiating SYN Stealth Scan at 16:22 Scanning ( ) [1000 ports] Discovered open port 143/tcp on Discovered open port 110/tcp on Discovered open port 8080/tcp on Discovered open port 995/tcp on Discovered open port 8888/tcp on Discovered open port 80/tcp on Discovered open port 587/tcp on Discovered open port 993/tcp on Discovered open port 25/tcp on Discovered open port 119/tcp on Discovered open port 8081/tcp on Discovered open port 8008/tcp on Discovered open port 563/tcp on Discovered open port 465/tcp on Discovered open port 3128/tcp on Completed SYN Stealth Scan at 16:22, 4.82s elapsed (1000 total ports) Initiating UDP Scan at 16:22 Scanning ( ) [1000 ports] Increasing send delay for from 0 to 50 due to 11 out of 11 dropped probes since last increase. Increasing send delay for from 50 to 100 due to 11 out of 11 dropped probes since last increase. UDP Scan Timing: About 14.90% done; ETC: 16:26 (0:02:57 remaining) Increasing send delay for from 100 to 200 due to 11 out of 11 dropped probes since last increase. Increasing send delay for from 200 to 400 due to 11 out of 11 dropped probes since last increase. UDP Scan Timing: About 26.45% done; ETC: 16:27 (0:03:15 remaining) UDP Scan Timing: About 29.85% done; ETC: 16:28 (0:03:55 remaining) UDP Scan Timing: About 33.25% done; ETC: 16:29 (0:04:21 remaining) UDP Scan Timing: About 37.95% done; ETC: 16:30 (0:04:41 remaining) UDP Scan Timing: About 56.85% done; ETC: 16:32 (0:04:18 remaining) UDP Scan Timing: About 63.95% done; ETC: 16:33 (0:03:47 remaining) UDP Scan Timing: About 70.05% done; ETC: 16:33 (0:03:15 remaining) UDP Scan Timing: About 75.80% done; ETC: 16:33 (0:02:42 remaining) UDP Scan Timing: About 81.55% done; ETC: 16:34 (0:02:06 remaining) UDP Scan Timing: About 86.95% done; ETC: 16:34 (0:01:31 remaining) UDP Scan Timing: About 92.35% done; ETC: 16:34 (0:00:54 remaining) Completed UDP Scan at 16:34, s elapsed (1000 total ports) Initiating Service scan at 16:34 Scanning 1015 services on ( ) Service scan Timing: About 0.39% done Service scan Timing: About 1.77% done; ETC: 18:33 (1:56:19 remaining) 97

98 Service scan Timing: About 3.15% done; ETC: 18:02 (1:24:29 remaining) Service scan Timing: About 4.73% done; ETC: 17:48 (1:10:10 remaining) Service scan Timing: About 6.11% done; ETC: 17:42 (1:03:32 remaining) Service scan Timing: About 7.68% done; ETC: 17:37 (0:58:16 remaining) Service scan Timing: About 10.54% done; ETC: 17:27 (0:47:31 remaining) Service scan Timing: About 10.64% done; ETC: 17:33 (0:52:21 remaining) Service scan Timing: About 13.50% done; ETC: 17:26 (0:44:45 remaining) Service scan Timing: About 13.60% done; ETC: 17:30 (0:48:24 remaining) Service scan Timing: About 16.45% done; ETC: 17:25 (0:42:29 remaining) Service scan Timing: About 16.55% done; ETC: 17:29 (0:45:17 remaining) Service scan Timing: About 19.41% done; ETC: 17:24 (0:40:25 remaining) Service scan Timing: About 25.32% done; ETC: 17:24 (0:36:49 remaining) Service scan Timing: About 31.23% done; ETC: 17:23 (0:33:33 remaining) Service scan Timing: About 37.14% done; ETC: 17:23 (0:30:26 remaining) Service scan Timing: About 43.05% done; ETC: 17:23 (0:27:27 remaining) Service scan Timing: About 48.97% done; ETC: 17:22 (0:24:30 remaining) Service scan Timing: About 54.88% done; ETC: 17:22 (0:21:35 remaining) Service scan Timing: About 60.79% done; ETC: 17:22 (0:18:42 remaining) Service scan Timing: About 66.70% done; ETC: 17:22 (0:15:51 remaining) Service scan Timing: About 72.51% done; ETC: 17:22 (0:13:04 remaining) Service scan Timing: About 78.42% done; ETC: 17:22 (0:10:15 remaining) Service scan Timing: About 84.33% done; ETC: 17:22 (0:07:26 remaining) Service scan Timing: About 90.25% done; ETC: 17:22 (0:04:37 remaining) Service scan Timing: About 96.16% done; ETC: 17:22 (0:01:49 remaining) Completed Service scan at 17:22, s elapsed (1015 services on 1 host) Initiating OS detection (try #1) against ( ) Retrying OS detection (try #2) against ( ) Initiating Traceroute at 17:22 Completed Traceroute at 17:22, 3.05s elapsed NSE: Script scanning Initiating NSE at 17:22 Discovered open port 67/udp on Completed NSE at 17:27, s elapsed Nmap scan report for ( ) Host is up (0.0028s latency). Not shown: 999 open filtered ports, 985 filtered ports PORT STATE SERVICE VERSION 25/tcp open smtp? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified _smtp-commands: Couldn't establish connection on port 25 80/tcp open http Apache httpd dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified http-grep: _ ERROR: Argument http-grep.match was not set _http-google-malware: [ERROR] No API key found. Update the variable APIKEY in httpgoogle-malware or set it in the argument http-google-malware.api _http-methods: No Allow or Public header in OPTIONS response (status code 200) _http-title: \xce\xa4\xce\xbc\xce\xae\xce\xbc\xce\xb1 98

99 \xce\xa0\xce\xbb\xce\xb7\xcf\x81\xce\xbf\xcf\x86\xce\xbf\xcf\x81\xce\xb9\xce\xba\ xce\xae\xcf\x82 \xce\x91\xce\xa0\xce\x98 \xce\x91\xcf\x81\xcf\x87\xce\xb9\xce\xba\xce\xae \xce\xa3\xce\xb5... http-headers: Date: Wed, 19 Sep :24:11 GMT Server: Apache Connection: close Content-Type: text/html _ (Request type: HEAD) _http-date: Wed, 19 Sep :24:14 GMT; +1m25s from local time. http- -harvest: Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=www.csd.auth.gr _ 110/tcp open pop3? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified 119/tcp open nntp? dns-client-subnet-scan: 99

100 _ ERROR: dns-client-subnet-scan.domain was not specified 143/tcp open imap? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified imap-capabilities: _ ERROR: Failed to connect to server 465/tcp open smtps? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified _smtp-commands: Couldn't establish connection on port /tcp open snews? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified 587/tcp open submission? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified _smtp-commands: Couldn't establish connection on port /tcp open imaps? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified 995/tcp open pop3s? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified 3128/tcp open squid-http? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified 8008/tcp open http? http-grep: _ ERROR: Argument http-grep.match was not set dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified _http-google-malware: [ERROR] No API key found. Update the google-malware or set it in the argument http-google-malware.api _http-default-accounts: [ERROR] HTTP request table is empty. since we at least made one request. 8080/tcp open http-proxy? _http-google-malware: [ERROR] No API key found. Update the google-malware or set it in the argument http-google-malware.api dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified http-grep: _ ERROR: Argument http-grep.match was not set _http-default-accounts: [ERROR] HTTP request table is empty. since we at least made one request. 8081/tcp open blackice-icecap? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified 8888/tcp open sun-answerbook? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified 100 variable APIKEY in httpthis should not happen variable APIKEY in http- This should not happen

101 67/udp open dhcps? dns-client-subnet-scan: _ ERROR: dns-client-subnet-scan.domain was not specified dhcp-discover: DHCP Message Type: DHCPACK Subnet Mask: Router: Domain Name Server: Domain Name: mshome.net IP Address Lease Time: 1 day, 0:00:00 _ Server Identifier: Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Aggressive OS guesses: QEMU user mode network gateway (95%), 3Com SuperStack 3 Switch 4300, Dell PowerEdge 2650 remote access controller, Samsung ML-2571N or 6555N printer, or Xerox Phaser 3125N printer (88%), Dell 1815dn printer (88%), Xerox WorkCentre 4150 printer (88%), Slingmedia Slingbox AV TV over IP gateway (87%), Bay Networks BayStack 450 switch (software version ) (87%), Bay Networks BayStack 450 switch (software version ) (87%), Samsung CLP-310N or CLX-3175RW, or Xerox Phaser 6110 printer (87%), Cabletron ELS100-24TXM Switch or Icom IC-7800 radio transceiver (86%), Cisco Catalyst 1900 switch or RAD IPMUX-1 TDM-over-IP multiplexer (86%) No exact OS matches for host (test conditions non-ideal). Network Distance: 2 hops TCP Sequence Prediction: Difficulty=18 (Good luck!) IP ID Sequence Generation: Incremental Host script results: _path-mtu: PMTU == 1500 _ipidseq: Unknown _firewalk: None found qscan: PORT FAMILY MEAN (us) STDDEV LOSS (%) % % % % % % % _ % whois: Record found at whois.ripe.net inetnum: netname: AUTH-NET descr: Aristotle University of Thessaloniki country: GR role: Network Operations Center _ ip-geolocation-geoplugin: (www.csd.auth.gr) coordinates (lat,lon): ,

102 _ state: Thessaloníki, Greece asn-query: BGP: /16 Country: GR Origin AS: ASAUTHNET AUTH-NET-AS _ Peer AS: 5408 ip-geolocation-geobytes: (www.csd.auth.gr) coordinates (lat,lon): , _ city: Thessaloniki, Thessaloniki, Greece TRACEROUTE (using port 3389/tcp) HOP RTT ADDRESS ms ( ) NSE: Script Post-scanning. Read data files from: /usr/local/bin/../share/nmap OS and Service detection performed. Please report any Nmap done: 1 IP address (1 host up) scanned in seconds Raw packets sent: 4398 ( KB) Rcvd: 197 (8.020KB) incorrect results at Το Nmap πέρα από τον συνηθισμένο έλεγχο φόρτωσε και 177 scripts για την εκτέλεση επιπλέον λειτουργιών. Ανακάλυψε 15 ανοιχτές TCP θύρες, μια περισσότερη σε σχέση με τα αποτελέσματα του γρήγορου ελέγχου (η θύρα 563 στην οποία ακούει η υπηρεσία snews), και 1 udp θύρα (η θύρα 67 για την υπηρεσία dhcps). Το πρόγραμμα, πέρα των αποτελεσμάτων που είχαμε και στους προηγούμενους ελέγχους, κατάφερε να συλλέξει που εμφανίζονται στον εξυπηρέτη στη θύρα 80 (στην ιστοσελίδα της σχολής), την ώρα και την ημερομηνία στην οποία έχει ρυθμιστεί καθώς και στοιχεία σχετικά με την ταυτότητα του οργανισμού στον οποίο ανήκει η συγκεκριμένη IP διεύθυνση,όπως εμφανίζονται παρακάτω: whois: Record found at whois.ripe.net inetnum: netname: AUTH-NET descr: Aristotle University of Thessaloniki country: GR role: Network Operations Center _ ip-geolocation-geoplugin: (www.csd.auth.gr) coordinates (lat,lon): , _ state: Thessaloníki, Greece asn-query: BGP: /16 Country: GR Origin AS: ASAUTHNET AUTH-NET-AS _ Peer AS: 5408 ip-geolocation-geobytes: (www.csd.auth.gr) coordinates (lat,lon): , _ city: Thessaloniki, Thessaloniki, Greece 102

103 Paros Proxy Έλεγχος μέσω του Paros Proxy Για να χρησιμοποιήσουμε το Paros Proxy αρχικά ρυθμίσαμε τον περιηγητή δικτύου να χρησιμοποιεί ως διαμεσολαβητή τη θύρα 8080 του localhost ούτως ώστε το πρόγραμμα να μπορεί να ελέγχει την κίνηση. Αφού εισάγαμε το URL της ιστοσελίδας στο browser δώσαμε εντολή στο Paros να κάνει spider. Έπειτα δώσαμε εντολή στο Paros να κάνει Scan για αδυναμίες την ιστοσελίδα. Το Paros αναφέρει ένα πρόβλημα μέτριας σοβαρότητας, καθώς εντόπισε 2 προκαθορισμένα (default) αρχεία του Lotus Domino που μπορούν να αποτελέσουν πιθανό κίνδυνο. Παραδείγματος χάριν, η οδηγία OpenServer, δίνει την εντολή στον εξυπηρέτη να επιστρέψει τη λίστα με τις βάσεις δεδομένων που υπάρχουν στον εξυπηρέτη, και πιθανώς να αποκαλύψει την παρουσία ευαίσθητων δεδομένων. Ως αντίμετρο, μπορεί να απενεργοποιηθεί η δυνατότητα των client να έχουν πρόσβαση στις βάσεις δεδομένων. Αυτό μπορεί να γίνει από το Server Document. Τα αποτελέσματα παρουσιάζονται στο παρακάτω report. 103

104 WebSecurify Έλεγχος μέσω του WebSecurify Τρέξαμε το WebSecurify μέσω της ιστοσελίδας, στο link suite.websecurify.com/foundation. Το πρόγραμμα εκτέλεσε 420 διαφορετικού τύπου ελέγχους στην ιστοσελίδα της σχολής. Ως αποτέλεσμα, μας ενημερώνει για τον τύπο του εξυπηρέτη (Apache) καθώς και για διευθύνσεις που βρέθηκαν στην ιστοσελίδα. Τα αποτελέσματα φαίνονται παρακάτω. 104

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

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

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

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

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

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

Linux Terminal Server Project

Linux Terminal Server Project Linux Terminal Server Project Ένα κεντρικό σύστημα διαχείρισης των τερματικών κοινού της Βιβλιοθήκης & Κέντρου Πληροφόρησης του Πανεπιστημίου Μακεδονίας Κολοβός Φίλιππος filippos@uom.gr Ευάγγελος Μπάνος

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

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

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

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

F-Secure Anti-Virus for Mac 2015

F-Secure Anti-Virus for Mac 2015 F-Secure Anti-Virus for Mac 2015 2 Περιεχόμενα F-Secure Anti-Virus for Mac 2015 Περιεχόμενα Κεφάλαιο 1: Έναρξη...3 1.1 Διαχείριση συνδρομής...4 1.2 Πώς μπορώ να βεβαιωθώ ότι ο υπολογιστής μου προστατεύεται;...4

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

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

Κεφάλαιο 1: Έναρξη...3 F-Secure Anti-Virus for Mac 2014 Περιεχόμενα 2 Περιεχόμενα Κεφάλαιο 1: Έναρξη...3 1.1 Τι πρέπει να κάνω μετά την εγκατάσταση;...4 1.1.1 Διαχείριση συνδρομής...4 1.1.2 Άνοιγμα του προϊόντος...4 1.2 Πώς

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

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

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

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

Εισαγωγή 6. Tα πολλά πρόσωπα των απειλών για το PC 8. Οι βασικές ρυθμίσεις ασφαλείας στα Windows 18. Προστασία από το Malware με το Avast Antivirus 34

Εισαγωγή 6. Tα πολλά πρόσωπα των απειλών για το PC 8. Οι βασικές ρυθμίσεις ασφαλείας στα Windows 18. Προστασία από το Malware με το Avast Antivirus 34 περιεχόμενα Εισαγωγή 6 Tα πολλά πρόσωπα των απειλών για το PC 8 Οι βασικές ρυθμίσεις ασφαλείας στα Windows 18 Προστασία από το Malware με το Avast Antivirus 34 Γονικός έλεγχος σε PC και tablet 44 Παρακολούθηση

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

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

Ασφάλεια Στο Ηλεκτρονικό Εμπόριο. Λάζος Αλέξανδρος Α.Μ. 3530 Ασφάλεια Στο Ηλεκτρονικό Εμπόριο Λάζος Αλέξανδρος Α.Μ. 3530 Ηλεκτρονικό Εμπόριο Χρησιμοποιείται για να περιγράψει την χρήση τηλεπικοινωνιακών μέσων (κυρίως δικτύων) για κάθε είδους εμπορικές συναλλαγές

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

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

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

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

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Β5.1.2 Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Τι θα μάθουμε σήμερα: Να ορίζουμε τι είναι πρωτόκολλο επικοινωνίας Να εξηγούμε τη χρησιμότητα των πρωτοκόλλων επικοινωνίας Να ονομάζουμε τα σημαντικότερα

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

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

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

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

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

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

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