ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοµατεπώνυµο Μόσχος Αναστάσιος.



Σχετικά έγγραφα
Κεφάλαιο 6ο ΕΠΙΠΕΔΟ ΕΦΑΡΜΟΓΗΣ. Εισαγωγή

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

Εισαγωγή στο DNS lookup

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

Σκοπιµότητα των firewalls

Διαχειριστικό σύστημα ονομάτων χώρου

7.2.2 Σχέση OSI και TCP/IP

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

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

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 10: Ασφάλεια στο Διαδίκτυο

Vodafone Business Connect

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Δίκτυα Υπολογιστών Επίπεδο εφαρμογής To Σύστημα Ονομασίας Τομέων DNS

7.2 Τεχνολογία TCP/IP

ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ

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

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

Start/Programs/ Administrative Tools/DNS

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος

7.8 Σύστηµα ονοµάτων περιοχών (Domain Name System, DNS)

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

Επίπεδο δικτύου IP Forwading κτλ

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7]

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (ΙΙ) Πρωτόκολλα & Αρχιτεκτονικές Firewalls Anomaly & Intrusion Detection Systems (IDS)

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου

Πρόσκληση 10: Προηγμένες Τηλεματικές Υπηρεσίες Τ.Ε.Ι. Ηπείρου Δίκτυο Τ.Ε.Ι. Ηπείρου ΙΙ

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

DDoS (Denial of Service Attacks)

7.8 Σύστημα Ονομάτων Περιοχών (Domain Name System, DNS)

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

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Εξοικείωση με τις εντολές ipconfig και ping

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Γ Τάξη Ε.Π.Α.Λ.

ιαδίκτυα και το ιαδίκτυο (Internetworking and the Internet)

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης

Εργαστήριο Ethereal: ICMP

Δίκτυα Η/Υ στην Επιχείρηση

Κάντε κλικ για έναρξη

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

ΟΝΟΜΑΤΟΔΟΣΙΑ ΚΑΙ IP ΔΙΕΥΘΥΝΣΕΙΣ. ΜΕΡΟΣ 2 ο

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία Domain Name Service

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

Απομακρυσμένη Πρόσβαση και Εντολές Ελέγχου και Υποστήριξης

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

ΚΕΦΑΛΑΙΟ 16: Επίλυση Ονομάτων (Name Resolution) και DNS

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

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

1 Παραστατικών Πωλήσεων

ΚΕΠΛΗΝΕΤ ΕΒΡΟΥ. Καλτσίδης Χρήστος

Σύστημα Ονομάτων Περιοχών (Domain Name System, DNS) Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

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

Vodafone Business Connect

Τεχνική Οδηγία. Εγκατάσταση & ρύθµιση MS ISA Server 2000 στο περιβάλλον των σχολικών εργαστηρίων. Έκδοση 1.0. Ιανουάριος 2005

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

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

Τεχνική Οδηγία. Εγκατάσταση & ρύθμιση MS ISA Server 2000 στο περιβάλλον των σχολικών εργαστηρίων. Έκδοση 1.0. Ιανουάριος 2005

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

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ 1 στα Δίκτυα Υπολογιστών

Μάθημα 6: Αρχιτεκτονική TCP/IP

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Συνεργείο Αυτοκινήτων

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

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

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Εγχειρίδιο Χρήσης Slide Recorder

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

ΚΕΦΑΛΑΙΟ 2: Βασικό Υλικό σε τοπικά Δίκτυα και Network Hosts

ΟΡΓΑΝΙΣΜΟΣ ΛΙΜΕΝΟΣ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΩΝΥΜΗ ΕΤΑΙΡΕΙΑ (Ο.Λ.Θ. Α.Ε.) Αρ. Μ.Α.Ε. : 42807/06/Β/99/30 Ε ΡΑ ΘΕΣΣΑΛΟΝΙΚΗ

Εργαστήριο Wireshark: DNS

Επαναληπτικές Ασκήσεις Μαθήματος

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

Φύλλο Εργασίας 1 ου Κεφαλαίου

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Τεχνολογίες ιαδικτύου

Νέες Επικοινωνιακές Τεχνολογίες

Open Text edocs Records Management

Δίκτυα Θεωρία

Εγχειρίδιο Χρήστη - Μαθητή

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

7.8 Σύστημα Ονομάτων Περιοχών (Domain Name System, DNS) Χώρος Ονομάτων του DNS

3.2 Το αυτοδύναμο πακέτο IP (datagram) Δομή πακέτου

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP

Κεφάλαιο 10 ο Υποπρογράµµατα

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΑΝΑΣΧΕΣΗ ΕΠΙΘΕΣΕΩΝ ΤΟΥ ΤΥΠΟΥ DNS AMPLIFICATION Ονοµατεπώνυµο Μόσχος Αναστάσιος Επιβλέπων: Καµπουράκης Γεώργιος Λέκτορας ΣΑΜΟΣ, Γενάρης 2008

Η ιπλωµατική Εργασία παρουσιάστηκε ενώπιον του ιδακτικού Προσωπικού του Πανεπιστηµίου Αιγαίου Σε Μερική Εκπλήρωση των Απαιτήσεων για το ίπλωµα του Μεταπτυχιακού Προγράµµατος Τεχνολογίες και ιοίκηση Πληροφοριακών και Επικοινωνιακών Συστηµάτων µε κατεύθυνση Ασφάλεια Πληροφοριακών και Υπολογιστικών Συστηµάτων από τον Μόσχο Αναστάσιο Καρλόβασι, Σάµος, Γενάρης 2008

Η ΤΡΙΜΕΛΗΣ ΕΠΙΤΡΟΠΗ Ι ΑΣΚΟΝΤΩΝ ΕΓΚΡΙΝΕΙ ΤΗ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΟΥ ΜΟΣΧΟΥ ΑΝΑΣΤΑΣΙΟΥ Καµπουράκης Γεώργιος, Επιβλέπων Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων Στέφανος Γκρίτζαλης, Μέλος Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων Άγγελος Ρούσκας, Μέλος Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων

Περίληψη Πέρα από κάθε αµφιβολία το Internet, όπως αυτό έχει διαµορφωθεί σήµερα, αποτελεί εκτός όλων των άλλων, ένα πεδίο που δίνει τη δυνατότητα σε κακόβουλους χρήστες να εκµεταλλευτούν συγκεκριµένες αδυναµίες του, προκειµένου να παρεµποδίσουν την οµαλή λειτουργία συστηµάτων και υπηρεσιών ή να αποκτήσουν µη εξουσιοδοτηµένη πρόσβαση σε δεδοµένα και πληροφορίες, που κάτω από κανονικές συνθήκες δεν θα µπορούσαν να έχουν. Σήµερα, υπάρχει πλήθος επιθέσεων που µπορεί ο εκάστοτε κακόβουλος χρήστης να χρησιµοποιήσει, προκειµένου να υποβαθµίσει συστήµατα και υπηρεσίες και να προσβάλει την οµαλή λειτουργία ενός δικτύου και των υπηρεσιών του. Από τις πιο επικίνδυνες επιθέσεις είναι αυτές της άρνησης υπηρεσίας (Denial of Service Attacks, DoS) καθώς και παραλλαγές της, όπως οι επιθέσεις κατανεµηµένης άρνησης υπηρεσίας (Distributed Denial of Service Attack, DDoS) και οι κατανεµηµένες επιθέσεις ανάκλησης άρνησης υπηρεσίας (Distributed Reflected Denial of Service Attacks, DrDoS) [1]. Οι συγκεκριµένες επιθέσεις εκτός του ότι είναι ιδιαίτερα αποτελεσµατικές µε σοβαρές συνέπειες για τους στόχους τους, είναι πολλές φορές ιδιαίτερα δύσκολο όχι µόνο να αντιµετωπιστούν και να προβλεφθούν έγκαιρα, αλλά ακόµα και να ανιχνευθούν. Τις περισσότερες φορές δε, γίνονται αντιληπτές από τις συνέπειες τους και µόνο. Μια από τις βασικότερες υπηρεσίες στην οποία βασίζεται ολόκληρη η υποδοµή του διαδικτύου σήµερα είναι αυτή της ονοµατολογίας και της αντιστοίχησης ονοµάτων υπολογιστών σε IP διευθύνσεις (Domain Name System, DNS) [2],[3]. Η µη οµαλή λειτουργία της συγκεκριµένης υπηρεσίας έχει σοβαρές επιπτώσεις στην εύρυθµη λειτουργία όλων των συστηµάτων και των υπηρεσιών ενός δικτύου. εν είναι λίγες οι περιπτώσεις όπου οι βασικοί εξυπηρετητές που υποστηρίζουν την υπηρεσία DNS καλούνται να αντιµετωπίσουν επιθέσεις άρνησης υπηρεσίας µε σηµαντικότερη από αυτές τη DNS Amplification επίθεση [4]. Πρόκειται για µια κατανεµηµένη επίθεση άρνηση υπηρεσίας, µε χρήση ανακλαστήρων, η οποία πολλές φορές έχει ως αποτέλεσµα να θέτονται σε πολύ µικρό χρονικό διάστηµα εκτός λειτουργίας συστήµατα ή/και δίκτυα ολόκληρα. Η συγκεκριµένη επίθεση διαθέτει τέτοια χαρακτηριστικά που την κατατάσσουν σε µια από τις πιο επικίνδυνες επιθέσεις άρνησης υπηρεσίας σήµερα. Από τη µια µεριά υλοποιείται εύκολα, λόγω της παραµετροποίησης της ίδιας της υπηρεσίας που έχει σαν στόχο. Από την άλλη βασίζεται στο πρωτόκολλο UDP και στις αδυναµίες αυτού. Επιπλέον η ιδιαίτερα δύσκολη ανίχνευση της, την καθιστούν πραγµατικά επικίνδυνη για την οµαλή λειτουργία ενός δικτύου και των προσφερόµενων υπηρεσιών. Ο σκοπός της παρούσας εργασίας είναι διττός. Συγκεκριµένα, στο πρώτο µέρος της εργασίας παρέχεται µια λεπτοµερής ανάλυση των διαφόρων κατηγοριών DoS που σχετίζονται άµεσα µε την υπηρεσία DNS. Tο δεύτερο και πιο ουσιαστικό µέρος της εργασίας αφιερώνεται στις επιθέσεις του τύπου DNS amplification. Σε αυτό το τµήµα της διπλωµατικής παρουσιάζονται τα συστατικά µέρη και περιγράφεται η λειτουργικότητα ενός νέου εργαλείου (λογισµικού), το οποίο αναπτύχθηκε µε σκοπό την αποτελεσµατική αντιµετώπιση και ανάσχεση του προαναφερόµενου τύπου επιθέσεων. Το εν λόγω εργαλείο είναι ικανό να ανιχνεύσει µε επιτυχία επιθέσεις DNS amplification κατά τα πρώτα στάδια τους, και ακολούθως να προβεί στην αποτελεσµατική αντιµετώπισή τους. Η διάρθρωση της παρούσας εργασίας είναι η ακόλουθη: Στο δεύτερο κεφάλαιο γίνεται µια αναλυτική παρουσίαση της υπηρεσία της DNS και των βασικών αρχών λειτουργίας της ενώ στο τρίτο κεφάλαιο γίνεται µια αναφορά στις πιο γνωστές επιθέσεις άρνησης υπηρεσίας (Denial of Service Attacks, DoS). Στο τέταρτο κεφάλαιο παρουσιάζεται αναλυτικά η επίθεση DNS amplification. Τέλος, το πέµπτο κεφάλαιο αναφέρεται στο εργαλείο ανίχνευσης επιθέσεων DNS amplification (DAAD) και παρουσιάζονται στατιστικά χρήσης και επιδόσεων του.

Ευχαριστίες Αρχικά θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή της παρούσας εργασίας κ. Γιώργο Καµπουράκη για την πολύτιµη βοήθεια του στην ολοκλήρωση της εργασίας. Η συνεργασία µας ήταν άψογη σε κάθε επίπεδο. Θα ήθελα επίσης να ευχαριστήσω και τα δύο έτερα µέλη της επιτροπής αξιολόγησης της, τους κυρίους Στέφανο Γκρίτζαλη και Άγγελο Ρούσκα για τα χρήσιµα σχόλια και τις υποδείξεις τους κατά τη συγγραφή της εργασίας. Ένα µεγάλο ευχαριστώ στο Θοδωρή Λεουτσάκο και στο ηµήτρη Γενειατάκη για τις ωραίες συζητήσεις που κάναµε και που αποτέλεσαν πηγή έµπνευσης για την υλοποίηση του εργαλείου DAAD. Επίσης ένα µεγάλο ευχαριστώ στην Αναστασία ούµα για τα χρήσιµα σχόλια της. Τέλος ένα πολύ µεγάλο ευχαριστώ στην Κατερίνα που µε άντεξε και µε στήριξε τόσο κατά τη διάρκεια των µαθηµάτων του µεταπτυχιακού όσο και της συγγραφής της παρούσας εργασίας.

Συντοµογραφίες DNS Domain Name System DoS Denial Of Service DDoS Distributed Denial of Service DrDoS Distributed Reflected Denial of Service DAAD DNS Amplification Attack Detector TCP Transmission Control Protocol UDP User Datagram Protocol IP Internet Protocol URL Uniform Resource Locator TLD Top Level Domain NS Authoritative Name Server SOA Start of Authority CNAME Canonical Name for an alias MX Mail Exchange IAB Internet Architecture Board US-CERT United States Computer Emergency Readiness Team ICMP Internet Control Message Protocol NTP Network Time Protocol TFTP Trivial File Transfer Protocol IDS Intrusion Detection System

Περιεχόµενα Περίληψη... 4 Ευχαριστίες...5 Συντοµογραφίες... 6 Περιεχόµενα... 7 Λίστα Πινάκων... 9 Λίστα Σχηµάτων... 10 1 Εισαγωγή... 11 2 Υπηρεσία Domain Name System (DNS Service)... 13 2.1 Εισαγωγή... 13 2.2 DNS Domains & Sub Domains... 13 2.3 Σύνταξη Ονοµάτων... 14 2.4 Αντίστροφα Domains... 14 2.5 Ο Τοµέας 0.0.127.in-addr.arpa... 16 2.6 Ζώνες DNS... 16 2.6.1 Ειδικές Ζώνες... 16 2.7 DNS Ερωτήµατα... 16 2.8 Resolvers... 19 2.9 Name Server... 20 2.10 Forwarder Server... 23 2.11 Βάση δεδοµένων DNS... 24 2.11.1 Είδη εγγραφών... 26 2.11.1.1 Εγγραφές τύπου SOA... 26 2.11.1.2 Εγγραφή A... 27 2.11.1.3 Εγγραφή CNAME... 27 2.11.1.4 Εγγραφές HINFO & TXT... 27 2.11.1.5 Εγγραφές NS... 27 2.11.1.6 Εγγραφές MX... 28 2.11.1.7 Εγγραφές PTR... 28 3 Επιθέσεις Denial of Service, Distributed DoS, Flooding... 29 3.1 Εισαγωγή... 29 3.2 Μέθοδοι DoS επιθέσεων... 30 3.2.1 ICMP Flooding... 31 3.2.2 Επιθέσεις Peer to Peer... 32 3.2.3 Flooding σε επίπεδο εφαρµογής... 33 3.2.4 Nuke... 33 3.2.5 Κατανεµηµένες επιθέσεις... 34

3.2.6 Επιθέσεις ανάκλασης... 35 3.2.7 Ακούσιες επιθέσεις... 35 3.3 Πρόληψη και αντιµετώπιση DoS επιθέσεων... 36 4 DNS Amplification Attacks... 37 4.1 Περιγραφή της επίθεσης... 37 4.2 Αποτελεσµατικότητα της επίθεσης... 40 4.3 Αντιµετώπιση... 40 4.3.1 Περιορισµός του IP Spoofing... 41 4.3.2 Περιορισµός των Open Recursive DNS servers... 42 4.3.3 Ασφαλής παραµετροποίηση των DNS Servers... 42 4.3.4 Άλλες προτάσεις... 42 5 Ανίχνευση και αντιµετώπιση DAA (Εργαλείο DAAD)... 44 5.1 Εισαγωγή... 44 5.2 Σχεδιασµός... 45 5.3 Υλοποίηση... 48 5.4 Έλεγχος λειτουργίας και αποτελεσµατικότητα του εργαλείου... 52 5.5 Πλεονεκτήµατα... 58 5.6 Περιορισµοί... 59 6 Συµπεράσµατα... 61 Παράρτηµα Κώδικας υλοποίησης... 62 Configuration.php... 62 DBCon.php... 62 LogDNS.php... 63 CheckAndMail.php... 67 Αναφορές... 70

Λίστα Πινάκων Πίνακας 1: Βασικά ήδη εγγραφών σε µια DNS βάση... 25 Πίνακας 2: Ρυθµίσεις περιορισµού του IP Spoofing για δροµολογητή Cisco... 41 Πίνακας 3: Ρυθµίσεις περιορισµού του IP Spoofing για δροµολογητή Juniper... 41 Πίνακας 4: Απόσπασµα από το αρχείο καταγραφής του iptraf... 47 Πίνακας 5: Εγγραφές του πίνακα outgoing... 49 Πίνακας 6: Εγγραφές του πίνακα incoming... 49 Πίνακας 7: Απόσπασµα του αρχείου καταγραφείς των περιοδικών ελέγχων... 51 Πίνακας 8: εδοµένα 12ωρης λειτουργίας του εργαλείου DAAD... 53 Πίνακας 9: Πακέτα και καθυστερήσεις κατά τη διάρκεια µιας επίθεσης 20 λεπτών... 55 Πίνακας 10: Συγκριτικά δεδοµένα κατά την κανονική λειτουργία και κατά τη διάρκεια µιας επίθεσης... 56 Πίνακας 11: Αντιµετώπιση επίθεσης - εντολές για τα iptables... 57 Πίνακας 12: Αντιµετώπιση επίθεσης - εντολές για έναν δροµολογητή Cisco... 57 Πίνακας 13: Κατάσταση λειτουργίας συστήµατος υπό κανονικές συνθήκες... 57 Πίνακας 14: Κατάσταση λειτουργίας συστήµατος κατά τη διάρκεια µιας επίθεσης... 57

Λίστα Σχηµάτων Σχήµα 1: Λειτουργία υπηρεσίας DNS... 13 Σχήµα 2: ενδρική δοµή της υπηρεσίας DNS... 14 Σχήµα 3: ενδρική δοµή της υπηρεσίας DNS για τους αντίστροφους τοµείς... 15 Σχήµα 4: Αναζήτηση δεδοµένων στην cache µνήµη των DNS Servers... 17 Σχήµα 5: Περιγραφή ενός Stub Resolver... 17 Σχήµα 6: Συνολική περιγραφή της επικοινωνίας µεταξύ των name servers... 18 Σχήµα 7: Επικοινωνία ενός name server µε τους root name servers... 19 Σχήµα 8: ιαδικασία µετάφρασης του ονόµατος abc.company.com σε IP διεύθυνση... 22 Σχήµα 9: Λειτουργία ενός Forwarder... 23 Σχήµα 10: Εκκίνηση της υπηρεσία DNS και οι βάσεις που φορτώνονται... 24 Σχήµα 11: Επίθεση Smurf... 31 Σχήµα 12: Dos επίθεση µε στόχο έναν DNS server... 37 Σχήµα 13: DNS Amplification Attack... 39 Σχήµα 14: Επικοινωνίας τοπικού DNS server µε αποµακρυσµένους name servers... 45 Σχήµα 15: Ρυθµίσεις iptraf για καταγραφή των αποκρίσεων... 46 Σχήµα 16: Ρυθµίσεις iptraf για καταγραφή των αιτήσεων... 46 Σχήµα 17: Τοπολογία εργαλείου DAAD... 48 Σχήµα 18: Περιγραφή ελέγχου των εισερχόµενων πακέτων και λειτουργία του εργαλείου DAAD... 51 Σχήµα 19: Requests και Responses σε σχέση µε το χρόνο... 54 Σχήµα 20: False Positives σε σχέση µε το χρόνο... 54 Σχήµα 21: Μέσες τιµές καθυστέρησης σε σχέση µε το χρόνο... 55 Σχήµα 22: Αιτήσεις, Αποκρίσεις και "ύποπτα" πακέτα κατά τη διάρκεια µιας επίθεσης... 56 Σχήµα 23: Web Interface του εργαλείο DAAD... 58

1 Εισαγωγή Αναµφίβολα το Internet αποτελεί το χώρο δράσης για επίδοξους κακόβουλους χρήστες που θέλουν να εκµεταλλευτούν τη βασική του υποδοµή και να εξαπολύσουν επιθέσεις σε κρίσιµα αγαθά προκειµένου να αποκτήσουν µη εξουσιοδοτηµένη πρόσβαση σε πόρους και συστήµατα ή και να εµποδίσουν την οµαλή λειτουργία βασικών υπηρεσιών µε επιθέσεις άρνησης υπηρεσίας (Denial of Service Attacks, DoS). Οι επιθέσεις τύπου DoS θα µπορούσαν να ταξινοµηθούν σε δύο µεγάλες κατηγορίες. Στην πρώτη ο επιτιθέµενος δροµολογεί πακέτα µε σκοπό να εκµεταλλευτεί ευπάθειες στο εγκατεστηµένο λογισµικό του στόχου ή των υπηρεσιών που φιλοξενεί. Παράδειγµα τέτοιων επιθέσεων είναι το ping of death [5], όπως αναφέρεται σε επόµενο κεφάλαιο, που σκοπό έχει την κατάρρευση του στόχου µε την αποστολή τεράστιου αριθµού και µεγάλου σε όγκου ICMP πακέτων προς το υποψήφιο θύµα. Στη δεύτερη κατηγορία ο επιτιθέµενος στοχεύει στην εξάντληση των πόρων (CPU, µνήµη, κλπ) ενός υπολογιστικού συστήµατος ή στην κατασπατάληση του εύρους του δικτύου διοχετεύοντας πακέτα, τα οποία φαινοµενικά είναι κανονικά αλλά στην ουσία καταστροφικά. Αυτές του είδους οι επιθέσεις είναι επίσης γνωστές και ως επιθέσεις πληµµύρας (flooding). Παγκοσµίως υπάρχουν πάρα πολλά καταγεγραµµένα περιστατικά σαν flooding επιθέσεις οι οποίες επηρεάζουν κρίσιµες προσφερόµενες υπηρεσίες ή την ίδια υποδοµή του δικτύου. Οι πιο σοβαρές από αυτές παρουσιάζονται στα [6],[7] και είναι γνωστές σαν Reflection Distributed Denial of Service (RDDoS). Τέτοιου είδους επιθέσεις κοστίζουν τόσο σε χρήµα όσο και στη µείωση της παραγωγικότητας καθώς παραλύουν κρίσιµες υπηρεσίες στο δίκτυο που έχουν σαν στόχο. Τον τελευταίο καιρό έχουν καταγραφεί αρκετές επιθέσεις της παραπάνω κατηγορίας µε στόχο µια από τις βασικότερες υπηρεσίες της υποδοµής του Internet, αυτής της υπηρεσίας Domain Name System (DNS). Η παράλυση µιας τόσο κρίσιµης υπηρεσίας για τη λειτουργία του δικτύου έχει σαφώς καταστροφικές συνέπειες για το δίκτυο στόχο. Για παράδειγµα, όπως έχει καταγραφεί τον Οκτώβρη του 2002, οκτώ από τους δεκατρείς root name servers παγκοσµίως υπέφεραν από µια µεγάλη DoS επίθεση. Πολλές παρόµοιες επιθέσεις έχουν καταγραφεί το 2003 και το 2004 ενώ υπάρχουν πάρα πολλές σε µικρότερη κλίµακα επιθέσεις µε στόχο πάντα την ίδια υπηρεσία. εν είναι όµως µόνο οι καταστροφικές συνέπειες των παραπάνω επιθέσεων που τις κάνουν τόσο ιδιαίτερες και επικίνδυνες. Ακόµα και η ανίχνευση τους πολλές φορές είναι πολύ δύσκολη και τις περισσότερες φορές γίνεται εκ των υστέρων και µέσω των επιπτώσεων τους. Επιπλέον, η αντιµετώπιση τους είναι ιδιαίτερα δύσκολη, µιας και εµπλέκονται συστήµατα διασπαρµένα στο διαδίκτυο. Επίσης, η αναγνώριση των υπευθύνων είναι σχεδόν αδύνατη αφού συχνά οι επιθέσεις αυτές υλοποιούνται από αθώα µηχανήµατα, τα οποία έχουν θέσει υπό τον έλεγχο τους οι κακόβουλοι χρήστες. Ο σκοπός της συγκεκριµένης εργασίας είναι διττός. Αρχικά δίνεται µια λεπτοµερής περιγραφή της υπηρεσίας DNS και των πιο συνηθισµένων DoS επιθέσεων που εµφανίζονται στο δίκτυο σήµερα. Στο δεύτερο µέρος της εργασίας παρουσιάζονται αναλυτικά επιθέσεις του τύπου DNS Amplification ενώ µεγαλύτερο βάρος δίνεται στην παρουσίαση ενός πρωτοποριακού εργαλείου ανίχνευσης και αντιµετώπισης τέτοιων επιθέσεων. Το εργαλείο DAAD (DNS Amplification Attack Detector) [8] [9] µε ένα πολύ απλό αλλά αποτελεσµατικό µηχανισµό είναι σε θέση να ανιχνεύσει µια επίθεση DNS Amplification κατά τα πρώτα της στάδια. ίνει επιπλέον τη δυνατότητα στους διαχειριστές ενός δικτύου να αντιµετωπίσουν τέτοιες επιθέσεις αποτελεσµατικά πριν δηµιουργηθούν σοβαρά προβλήµατα στη λειτουργία ενός δικτύου και των προσφερόµενων υπηρεσιών. Έτσι στο δεύτερο κεφάλαιο δίνεται µια αναλυτική περιγραφή της υπηρεσίας DNS, ενώ στο τρίτο παρουσιάζονται οι κυριότερες επιθέσεις άρνησης υπηρεσίας που εµφανίζονται στο Σελ 11/72

διαδίκτυο σήµερα. Στο τέταρτο κεφάλαιο αναλύονται οι επιθέσεις τύπου DNS Amplification και στο πέµπτο κεφάλαιο παρουσιάζεται ο σχεδιασµός, η υλοποίηση αλλά και ο έλεγχος λειτουργίας του εργαλείου DAAD (DNS Amplification Attack Detector). Σελ 12/72

2 Υπηρεσία Domain Name System (DNS Service) 2.1 Εισαγωγή Όλες οι εφαρµογές που παρέχουν επικοινωνία µεταξύ υπολογιστικών συστηµάτων στο διαδίκτυο χρησιµοποιούν IP διευθύνσεις. Η χρήση όµως αυτών των διευθύνσεων κάθε άλλο παρά φιλική προς τους χρήστες είναι, µιας και είναι πολύ δύσκολο ο κάθε χρήστης να τις αποµνηµονεύει. Γι αυτό το λόγο χρησιµοποιούνται ονόµατα, αντί αυτών των διευθύνσεων. Για να είναι εφικτό όµως κάτι τέτοιο, απαιτείται η ύπαρξη µιας υποδοµής που θα µεταφράζει IP διευθύνσεις σε ονόµατα και το αντίστροφο [10]. Η σχέση µεταξύ της IP διεύθυνσης ενός συστήµατος και του ονόµατος του καθορίζεται µέσα σε µια βάση που ονοµάζεται Domain Name System Database. Η DNS βάση είναι κατανεµηµένη παγκοσµίως και φυσικά προσβάσιµη παγκοσµίως. Για κάθε IP είναι δυνατή η αντιστοίχηση ενός ή περισσοτέρων ονοµάτων αλλά για κάθε όνοµα µόνο µια IP µπορεί να αντιστοιχιστεί. Η χρήση και λειτουργία της υπηρεσίας DNS σε µια πολύ απλή µορφή της φαίνεται στο παρακάτω σχήµα. Σχήµα 1: Λειτουργία υπηρεσίας DNS Παραδείγµατος χάριν, όταν ένα πρόγραµµα πελάτης θέλει θα συνδεθεί µε τη διεύθυνση www.aegean.gr, θα επικοινωνήσει πρώτα µε κάποιον Name Server προκειµένου να µάθει την IP διεύθυνση που αντιστοιχεί στο όνοµα www.aegean.gr. Στη συνέχεια τα δύο συστήµατα θα προχωρήσουν στην εγκαθίδρυση του καναλιού επικοινωνίας. 2.2 DNS Domains & Sub Domains Το Internet χωρίζεται σε τοµείς (domains) [11] που ουσιαστικά είναι οµάδες ονοµάτων µε κάποια λογική συσχέτιση. Οι τοµείς καθορίζουν κατά πόσο τα συγκεκριµένα ονόµατα ανήκουν για παράδειγµα σε µια χώρα, µια εταιρία, έναν οργανισµό κ.ο.κ. Υπάρχει η δυνατότητα της δηµιουργίας υπό τοµέων (sub domains) µέσα σε έναν τοµέα. Για παράδειγµα η δηµιουργία ενός υπό τοµέα µέσα στον τοµέα µιας επιχείρησης. Ο τοµέας coca-cola.com είναι υποτοµέας του τοµέα com και ο σταθµός εργασίας µε το όνοµα bob.coca-cola.com είναι ένα µέλος αυτού του τοµέα. Τα ονόµατα των τοµέων και υποτοµέων αποτελούνται από αλφαριθµητικά (strings) που χωρίζονται από τελείες. ιαβάζονται από αριστερά προς τα δεξιά και το δεξιότερο αλφαριθµητικό είναι και ο υψηλότερος και γενικότερος τοµέας. Το µήκος ενός ονόµατος Σελ 13/72

µπορεί να είναι έως και 255 χαρακτήρες ενώ το κάθε αλφαριθµητικό που απαρτίζει το όνοµα δεν µπορεί να υπερβαίνει τους 63 χαρακτήρες. Οι τοµείς υψηλού επιπέδου (Top Level Domains TLD) καθορίζονται στη ρίζα των τοµέων. Υπάρχουν δύο ειδών TLDs. Τα γενικά gtlds και αυτά των χωρών cctlds. Γνωστά gtlds είναι το edu, το com, το net και άλλα και συνήθως χρησιµοποιούνται στις Ηνωµένες Πολιτείες της Αµερικής. Τα cctlds χρησιµοποιούνται εκτός Ηνωµένων Πολιτειών και σύµφωνα µε το ISO 3166 αποτελούνται από 2 χαρακτήρες που καταδεικνύουν µια συγκεκριµένη χώρα, όπως για παράδειγµα gr για την Ελλάδα, fr για τη Γαλλία κλπ. Όλα τα παραπάνω δηµιουργούν µια δενδρική δοµή στο DNS όπως φαίνεται και στο παρακάτω σχήµα: Σχήµα 2: ενδρική δοµή της υπηρεσίας DNS 2.3 Σύνταξη Ονοµάτων Τα ονόµατα όπως έχει ήδη αναφερθεί έχουν τη γενική µορφή string.string.string string Το πρώτο string φανερώνει πάντοτε το όνοµα του υπολογιστή και τα υπόλοιπα αναπαριστούν το όνοµα του τοµέα στον οποίο ανήκει ο υπολογιστής αυτός. εξιότερα βρίσκεται το όνοµα του περισσότερου σηµαντικού τοµέα ενώ στο τέλος βρίσκεται πάντοτε το όνοµα του TLD. Όπως ήδη αναφέρθηκε το συνολικό µήκος του ονόµατος δεν µπορεί να υπερβαίνει τους 255 χαρακτήρες ενώ το κάθε string δεν µπορεί να υπερβαίνει τους 63 χαρακτήρες. Επιπλέον, δεν γίνεται κανένας διαχωρισµός µεταξύ πεζών και κεφαλαίων γραµµάτων. Έτσι το όνοµα www.aegean.gr είναι ισοδύναµο µε τα WWW.AEGEAN.GR ή www.aegean.gr. Στους επιτρεπτούς χαρακτήρες ενός ονόµατος συµπεριλαµβάνονται όλα τα γράµµατα του λατινικού αλφαβήτου, τα ψηφία, το και το «_». Να σηµειωθεί επίσης ότι το όνοµα δεν µπορεί να ξεκινάει µε κανέναν από τους δύο τελευταίους χαρακτήρες (- και _). 2.4 Αντίστροφα Domains Η επικοινωνία µεταξύ σταθµών εργασίας γίνεται πάντοτε µε βάση την IP τους διεύθυνση και όχι των ονοµάτων τους. Από την άλλη µεριά, κάποιες εφαρµογές απαιτούν την προηγούµενη γνώση των ονοµάτων των υπολογιστικών συστηµάτων προκειµένου να επιτευχθεί η οµαλή λειτουργία τους. Για παράδειγµα, η υπηρεσία E-Mail µπορεί να έχει ρυθµιστεί µε τέτοιο Σελ 14/72

τρόπο ώστε να µη δέχεται µηνύµατα από εξυπηρετητές ή σταθµούς εργασίας οι οποίοι δεν έχουν κάποιο έγκυρο όνοµα. Έτσι, υπάρχει η ανάγκη και της αντίστροφης διαδικασίας, δηλαδή της µετάφρασης µιας IP διεύθυνσης σε ένα όνοµα. Όπως ισχύει µε τα Domains, έτσι και οι IP διευθύνσεις δηµιουργούν µια δενδρική δοµή. Οι τοµείς που δηµιουργούνται από IP διευθύνσεις ονοµάζονται αντίστροφοι τοµείς (Reverse Domains). Για το λόγο αυτό δηµιουργούνται οι ψευδοτοµείς inaddr-arpa για το IPv4 και ip6.arpa για το IPv6 [12]. Κάτω από τον τοµέα inaddr-arpa δηµιουργούνται άλλοι τοµείς µε όνοµα τον πρώτο αριθµό της IP διεύθυνσης. Έτσι κάτω από τον τοµέα inaddr.arpa µπορεί να υπάρχουν 256 τοµείς µε ονόµατα από το 0 µέχρι το 255 και κάτω από καθέναν από αυτούς άλλοι 256 τοµείς πάλι µε ονόµατα από το 0 µέχρι το 255. Για παράδειγµα, το υποδίκτυο 195.251.144.0/24 ανήκει στον τοµέα 144.251.195.inaddr.arpa, το οποίο µε τη σειρά του ανήκει στον τοµέα 251.195.inaddr.arpa κ.ο.κ. Να σηµειωθεί ότι η ονοµατολογία των αντίστροφων τοµέων γίνεται διαβάζοντας την IP διεύθυνση ανάποδα. Στο παρακάτω σχήµα φαίνεται η δενδρική δοµή που δηµιουργείται µε τους αντίστροφους τοµείς. Σχήµα 3: ενδρική δοµή της υπηρεσίας DNS για τους αντίστροφους τοµείς Ο παραπάνω µηχανισµός λειτουργεί για κλάσεις IP διευθύνσεων A, B και C. Τι θα συµβεί όµως όταν υπάρχει µια υποκλάση της κλάσης C; Αν και η IP διεύθυνση έχει 4 Bytes και ένα κλασικό αντίστροφο domain έχει 3 αριθµούς (ο τέταρτος είναι το όνοµα του σταθµού εργασίας), τα αντίστροφα domains για υποκλάσεις της C δηµιουργούνται µε 4 αριθµούς. Για παράδειγµα, για το υποδίκτυο 195.251.144.16/28 θα χρησιµοποιηθεί το domain 16.144.251.195.inaddr-arpa. Αυτό αποτελεί ένα λάθος της αρχικής υλοποίησης του DNS που στην πορεία όµως αποδείχθηκε πρακτικό και ωφέλιµο και έτσι καθιερώθηκε ως πρότυπο (standard). Σελ 15/72

2.5 Ο Τοµέας 0.0.127.in-addr.arpa Μια IP διεύθυνση που παρουσιάζει ιδιαίτερο ενδιαφέρον είναι η 127.0.0.1. Το δίκτυο 127 είναι δεσµευµένο για loopback, δηλαδή επικοινωνία του εκάστοτε υπολογιστικού συστήµατος µε τον εαυτό του. Έτσι, ενώ κάθε άλλη διεύθυνση είναι µοναδική στο διαδίκτυο, η διεύθυνση 127.0.0.1 είναι κοινή για όλους του υπολογιστές. Ο κάθε name server δεν είναι υπεύθυνος µόνο για συγκεκριµένους τοµείς αλλά και για τον τοµέα 0.0.127.in-addr.arpa. Ακόµα και ένας name server που κάνει µόνο cashing είναι υπεύθυνος για έναν τέτοιο τοµέα. 2.6 Ζώνες DNS Έχει ήδη αναφερθεί ότι ένας τοµέας είναι µια οµάδα από υπολογιστές που διαµοιράζονται ένα κοινό όνοµα τοµέα. Για παράδειγµα, µια οµάδα υπολογιστών που µοιράζονται το όνοµα aegean.gr αποτελούν τον τοµέα aegean.gr. Στην περίπτωση όµως που ένας τοµέας γίνεται πολύ µεγάλος υπάρχει η δυνατότητα να χωριστεί σε υπό-τοµείς. Έτσι είναι δυνατό να υπάρχουν οι υπό-τοµείς chios.aegean.gr, ba.aegean.gr, stt.aegean.gr, iscd.aegean.gr κλπ. Σε αυτήν την περίπτωση υπάρχει η διαχειριστική δυνατότητα ενός name server για όλα ή ενός ξεχωριστού name server για κάθε υπό-τοµέα. Μια ζώνη είναι ένα µέρος του χώρου των ονοµάτων ενός τοµέα για το οποίο υπεύθυνος είναι ένας συγκεκριµένος name server. 2.6.1 Ειδικές Ζώνες Πλέον των κλασικών ζωνών, οι οποίες περιέχουν δεδοµένα για το µέρος ενός τοµέα ή υπότοµέων υπάρχουν και κάποιες ειδικές ζώνες στην υλοποίηση του DNS και αυτές είναι: Zone Stub: Πρόκειται για µια ζώνη που διατηρεί πληροφορίες σχετικά µε τους υπεύθυνους name servers ενός συγκεκριµένου τοµέα ή υπό-τοµέα (περιέχουν µόνο εγγραφές τύπου NS). Για το λόγο αυτό η Zone Stub δεν περιέχει ολόκληρη την ζώνη. Zone Cache/Hint: Μια τέτοια ζώνη κρατάει µια λίστα από root name servers. Ουσιαστικά διατηρεί δεδοµένα για τοµείς που µαθαίνει ο name server κατά τη διάρκεια της λειτουργίας του και έχουν συγκεκριµένη διάρκεια ζωής. 2.7 DNS Ερωτήµατα Τα πιο συνήθη ερωτήµατα αφορούν την εύρεση µιας IP διεύθυνσης. Υπάρχουν όµως και περιπτώσεις που κάποιος πελάτης της DNS υπηρεσίας ενδέχεται να ζητήσει περισσότερες πληροφορίες. Τα ερωτήµατα σε κάθε περίπτωση αποστέλλονται από κάποιο resolver. Ένας resolver δεν είναι τίποτα παραπάνω από ένας DNS πελάτης ο οποίος «ρωτάει» κάποιον name server. Με δεδοµένο ότι η βάση του DNS είναι κατανεµηµένη παγκοσµίως δεν είναι απαραίτητο ο name server να γνωρίζει εκ των προτέρων την τελική απάντηση που θα δοθεί στο resolver. Σε κάθε περίπτωση όµως έχει τη δυνατότητα, θέτοντας τα κατάλληλα ερωτήµατα σε άλλους name servers, να δώσει µια απάντηση στο resolver. Η απάντηση αυτή είτε θα είναι µια αρνητική απάντηση αν ο resolver ζητήσει κάτι για το οποίο δεν υπάρχει διαθέσιµη πληροφορία ή µια θετική απάντηση µε την πληροφορία που αρχικά ζήτησε ο resolver [13]. Αρχικά ο name server αναζητά στα cache δεδοµένα του πληροφορίες για τη ζώνη που είναι υπεύθυνος κατά την εκκίνηση του. Ο πρωτεύων name server αναζητά τα δεδοµένα στον τοπικό του δίσκο ενώ οι δευτερεύοντας name servers αναζητούν τα δεδοµένα, µε µεταφορές ζωνών από τον πρωτεύοντα, στη cache µνήµη τους. Τα δεδοµένα που είναι αποθηκευµένα στους πρωτεύοντες και δευτερεύοντες name servers καλούνται authoritative data (πιστοποιηµένα δεδοµένα). Επιπλέον, οι name servers αντλούν δεδοµένα και από τα cache δεδοµένα που βρίσκονται στις Cache/Hint ζώνες και τα δεδοµένα αυτά καλούνται non authoritative data (µη πιστοποιηµένα δεδοµένα). Σελ 16/72

Σχήµα 4: Αναζήτηση δεδοµένων στην cache µνήµη των DNS Servers Οι name server αποθηκεύουν στην cache µνήµη τους θετικές και µερικές φορές αρνητικές απαντήσεις σε ερωτήµατα (queries). Σύµφωνα µε αυτή την οπτική τέτοιου είδους δεδοµένα θεωρούνται non authoritative data. Με αυτό τον τρόπο εποµένως εξοικονοµείται χρόνος κατά την απάντηση επαναλαµβανοµένων όµοιων ερωτηµάτων. Σχήµα 5: Περιγραφή ενός Stub Resolver Οι απαιτήσεις για την ανάκτηση DNS δεδοµένων ορίζονται µέσα από οποιοδήποτε λογισµικό που εκτελείται σε κάποιον υπολογιστή. Το λειτουργικό σύστηµα µεταφέρει το ερώτηµα σε κάποιο κοµµάτι του, που καλείται resolver, το οποίο στη συνέχεια µεταφέρει το ερώτηµα σε κάποιον name server. Σε µικρά σχετικά δίκτυα υπάρχει µόνο ένας stub resolver (resolver που δεν διαθέτει cache µνήµη). Σε αυτή τη περίπτωση ο resolver µεταφέρει όλες τις απαιτήσεις του ερωτήµατος από το DNS πρωτόκολλο σε έναν name server που βρίσκεται σε κάποιο άλλο µηχάνηµα. Σελ 17/72

Μερικοί υπολογιστές διαθέτουν µόνο ένα resolver ενώ κάποιοι άλλοι µπορεί να διαθέτουν resolver και name server. Επιπλέον, υπάρχει η δυνατότητα οποιουδήποτε συνδυασµού, αλλά η βασική ιδέα παραµένει η ίδια: 1. Ο χρήστης εισάγει µια εντολή σύµφωνα µε την οποία πρέπει ένα όνοµα να µεταφραστεί σε µια IP διεύθυνση. 2. Αν ο resolver που διαθέτει ο υπολογιστής διαθέτει δική του cache τότε θα γίνει απόπειρα να απαντηθεί το ερώτηµα εσωτερικά από τον ίδιο. 3. Αν δεν βρεθεί απάντηση από την εσωτερική cache µνήµη, τότε το ερώτηµα προωθείται στο name server. 4. Ο name server θα αναζητήσει την απάντηση στη δική του cache µνήµη. 5. Αν δεν βρεθεί απάντηση τότε θα αναζητήσει την απάντηση σε άλλους name servers. 6. Ένας name server µπορεί να επικοινωνήσει επαναληπτικά µε περισσότερους από ένα name servers που είναι υπεύθυνοι για µια απάντηση. Ο υπεύθυνος στη σειρά name server θα δώσει µια τελευταία απάντηση είτε θετική είτε αρνητική. 7. Σε περίπτωση που η παραπάνω διαδικασία δεν δώσει απάντηση σε σύντοµο χρονικό διάστηµα ο resolver επαναλαµβάνει το ερώτηµα σε κάποιον άλλο name server. Στην περίπτωση που η παραµετροποίηση του resolver προβλέπει περισσότερους από έναν name servers το κάθε ερώτηµα θα δροµολογείται προς τον επόµενο στη λίστα. Σχήµα 6: Συνολική περιγραφή της επικοινωνίας µεταξύ των name servers Η υπηρεσία DNS χρησιµοποιεί τόσο το UDP όσο και το TCP πρωτόκολλο για τη µεταφορά ερωτηµάτων και απαντήσεων. Και για τα δύο πρωτόκολλα χρησιµοποιείται η πόρτα 53. Συνήθη ερωτήµατα για τη µετάφραση ενός ονόµατος σε IP και αντίστροφα υλοποιούνται µε τη χρήση UDP. Το µέγεθος των δεδοµένων που µεταφέρονται µε το UDP πρωτόκολλο είναι Σελ 18/72

512 bytes. Οι µεταφορές ζωνών µεταξύ πρωτεύοντος και δευτερεύοντος name server υλοποιούνται µε τη χρήση TCP πρωτοκόλλου. Σχήµα 7: Επικοινωνία ενός name server µε τους root name servers Όπως όλα τα κρίσιµα δεδοµένα, έτσι και τα περιεχόµενα µιας DNS βάσης που είναι απαραίτητα για τις µεταφράσεις ονοµάτων σε διευθύνσεις και το αντίστροφο, δεν θα µπορούσαν παρά να είναι αποθηκευµένα σε περισσότερα από ένα υπολογιστικά συστήµατα. Έτσι, σε περίπτωση που κάποιο δεν είναι διαθέσιµο, η µετάφραση ενός ονόµατος ή µιας IP διεύθυνσης γίνεται µε τη χρήση κάποιου άλλου. Σε γενικές γραµµές δεν είναι δυνατό όλοι οι name servers να είναι οποιαδήποτε στιγµή διαθέσιµοι. Σε περίπτωση που είχε χρησιµοποιηθεί TCP πρωτόκολλο για µια απλή µετατροπή ονόµατος σε IP και αντίστροφα, τότε αν κάποιος εµπλεκόµενος name server δεν είναι διαθέσιµος θα είχε σαν αποτέλεσµα µεγάλα διαστήµατα αδράνειας. Έτσι η λύση µε τη χρήση του UDP πρωτοκόλλου είναι πιο κοµψή και αποτελεσµατική. Ένα IP datagram που περιέχει την αίτηση αποστέλλεται στον πρώτο name server. Στην περίπτωση που δεν ληφθεί απάντηση σε ένα σύντοµο χρονικό διάστηµα η ίδια αίτηση αποστέλλεται σε άλλον name server κ.ο.κ. Αν όλοι οι διαθέσιµοι name servers εξαντληθούν τότε ξεκινάει η διαδικασία πάλι από την αρχή. 2.8 Resolvers Ένας resolver όπως έχει ήδη αναφερθεί είναι ουσιαστικά ένα κοµµάτι του συστήµατος φορτισµένο µε την µετατροπή ονοµάτων σε IP διευθύνσεις και αντίστροφα. Πρόκειται για έναν πελάτη και όχι για κάποιο συγκεκριµένο πρόγραµµα. Είναι ένα σύνολο από συναρτήσεις οι οποίες είναι συνδεδεµένες µε εφαρµογές που έχουν ανάγκη µετάφρασης ονοµάτων και IP διευθύνσεων, όπως για παράδειγµα οι εφαρµογές telnet, ftp, ssh κλπ. Στην περίπτωση που για παράδειγµα η εφαρµογή telnet χρειάζεται τη µετατροπή ενός ονόµατος σε IP διεύθυνση, τότε καλεί την κατάλληλη συνάρτηση µέσα από κάποια βιβλιοθήκη συναρτήσεων. Ο πελάτης (στη συγκεκριµένη περίπτωση το telnet) καλεί τη συνάρτηση (gethostbyname), η οποία και θα σχηµατίσει το ερώτηµα και θα το αποστείλει στο name server. Σελ 19/72

Ο αρµόδιος resolver από την πλευρά του θα πρέπει να λάβει υπόψη του κάποιους χρονικούς περιορισµούς. Είναι δυνατό ένας resolver να µη λάβει απάντηση για κάποιο ερώτηµα και να λάβει απάντηση για κάποιο επόµενο. Αυτό συµβαίνει διότι καθώς ο εξυπηρετητής περιµένει απάντηση για το πρώτο ερώτηµα, λαµβάνει απάντηση για το δεύτερο από κάποιον άλλο name server και έτσι το πρώτο ερώτηµα µένει αναπάντητο µιας και περνάει µεγάλο χρονικό διάστηµα για τη λήψη απάντησης, Από την πλευρά του χρήστη φαίνεται ότι η µετάφραση δεν έγινε µε την πρώτη προσπάθεια αλλά ολοκληρώθηκε µε επανάληψη της διαδικασίας. Η χρήση του UDP πρωτοκόλλου έχει ανάλογα αποτελέσµατα. Είναι δυνατό επίσης ο name server να µη λάβει καν κάποιο ερώτηµα λόγω υπερφόρτωσης του δικτύου και το UDP πακέτο να χαθεί κάπου στη διαδροµή. Αυτός είναι και ο λόγος που δεν υπάρχει 1-1 αντιστοιχία στα ερωτήµατα και τις απαντήσεις. Για τους ίδιους λόγους που µπορεί να χαθεί ένα ερώτηµα µπορεί να χαθεί και µια απάντηση. 2.9 Name Server Ένας Name Server διατηρεί την απαραίτητη πληροφορία για τη µετάφραση ονοµάτων σε IP διευθύνσεις και το αντίστροφο. Φροντίζει για ένα συγκεκριµένο κοµµάτι του χώρου των ονοµάτων όλων των υπολογιστών. Αυτό το κοµµάτι καλείται και ζώνη. Κατ ελάχιστο είναι υπεύθυνος για την ζώνη 0.0.0.127.in-addr.arpa. Ένας τοµέας (domain) ή µέρη αυτού αποτελούν µια ζώνη [14]. Ο Name Server, µε τη βοήθεια µιας NS εγγραφής στην παραµετροποίηση του παρέχει τη διαχείριση υπό-τοµέων σε άλλους Name Servers κάτω από αυτόν. Ουσιαστικά ο Name Server είναι ένα πρόγραµµα που εξυπηρετεί µια αίτηση από ένα Resolver ή από κάποιον άλλο Name Server. Υπάρχουν διάφορα είδη Name Servers ανάλογα µε τον τρόπο που αποθηκεύουν τα δεδοµένα τους: Primary Name Server / Primary Master: Αποτελεί τη βασική πηγή δεδοµένων µιας ζώνης και είναι ο authoritative server (πιστοποιηµένος εξυπηρετητής) γι αυτή τη ζώνη. Αντλεί τα δεδοµένα του από µια βάση που βρίσκεται αποθηκευµένη τοπικά στο σκληρό δίσκο του. Ο διαχειριστής έχει την ευθύνη να δηµιουργεί χειροκίνητα την εκάστοτε βάση. Με την κατάλληλη SOA (Start of Authority) εγγραφή ο Name Server δηµοσιοποιεί τον εαυτό του ως τον πιστοποιηµένο εξυπηρετητή για τις αντίστοιχες ζώνες. Master Name Server: Είναι ένας πιστοποιηµένος εξυπηρετητής για µια συγκεκριµένη ζώνη. Ένας Master Name Server δηµοσιοποιείται πάντοτε ως πιστοποιηµένος εξυπηρετητής για κάποιο συγκεκριµένο τοµέα µέσω µιας NS εγγραφής. Αποτελεί επίσης την πηγή δεδοµένων για ζώνες που εξυπηρετούνται από άλλους εξυπηρετητές χαµηλότερα στην ιεραρχία (slave / secondary servers). Secondary Name Server / Slave Name Server: Αντλούν τα δεδοµένα τους για συγκεκριµένες ζώνες αντιγράφοντας τα από τον primary name server (ή το master server) σε τακτά χρονικά διαστήµατα. Προφανώς δεν έχει κανένα ουσιαστικό νόηµα να τροποποιηθούν αυτά τα δεδοµένα σε έναν τέτοιο εξυπηρετητή µιας και θα αλλάξουν στην επόµενη τακτική ενηµέρωση / αντιγραφή. Όπως και στην περίπτωση των primary και master name server, αυτού του είδους οι secondary / slave name servers χαρακτηρίζονται ως πιστοποιηµένοι εξυπηρετητές (authoritative servers) για τα δεδοµένα στις ζώνες που κρατούν. Caching-Only Name Server: εν είναι ούτε primary ούτε secondary name server για καµιά ζώνη. ιαθέτουν όµως τα βασικά χαρακτηριστικά ενός name server, όπως το να διατηρούν δεδοµένα στην cache µνήµη τους. Τα δεδοµένα που παρέχουν στους χρήστες τους είναι προφανώς µη πιστοποιηµένα. Θα πρέπει να τονιστεί ότι θεωρούνται primary server για τη ζώνη 0.0.127.in-addr.arpa, όπως άλλωστε και κάθε name server είναι primary name server για τη συγκεκριµένη ζώνη. Σελ 20/72

Root Name Server: Πρόκειται για πιστοποιηµένο εξυπηρετητή για το root domain. Κάθε root domain server είναι ένας primary name server που διαφοροποιείται από άλλους name servers. Stealth Name Server: Πρόκειται για κρυφούς εξυπηρετητές. Ο συγκεκριµένος τύπος εξυπηρετητών δεν δηµοσιοποιείται πουθενά. Έτσι αυτοί είναι γνωστοί µόνο σε άλλους εξυπηρετητές που έχουν δηλωµένη την IP διεύθυνση τους στατικά στις ρυθµίσεις τους. Πρόκειται για πιστοποιηµένους εξυπηρετητές. Αντλούν τα δεδοµένα τους για κάποια ζώνη µε τη βοήθεια της µεταφοράς ζωνών. Μπορεί να είναι ο βασικός εξυπηρετητής γι αυτή τη ζώνη. Οι stealth servers µπορούν να χρησιµοποιηθούν ως τοπικό αντίγραφο ασφάλειας όταν οι τοπικοί εξυπηρετητές δεν είναι διαθέσιµοι. Από την µεριά του πελάτη δεν υπάρχει καµιά διαφορά ούτε και γίνεται κάποιος διαχωρισµός µεταξύ primary (master) και secondary (slave) server. Και οι δύο κατηγορίες διαθέτουν στον πελάτη (client) το ίδιο σηµαντικές πληροφορίες (και οι δύο είναι πιστοποιηµένοι για συγκεκριµένες ζώνες). Ο πελάτης δεν γνωρίζει καν ποιος είναι ο master ή ο slave server. Από την άλλη µεριά, ένας caching-only server δεν είναι πιστοποιηµένος για καµιά ζώνη και επικοινωνεί µε τους κατάλληλους πιστοποιηµένους εξυπηρετητές προκειµένου να εξυπηρετήσει κάποιο ερώτηµα ενός πελάτη (για το οποίο δεν έχει ήδη κάποια απάντηση στην cache µνήµη του). Σε περίπτωση που αλλαχθεί κάποια πληροφορία στον master server (π.χ. προσθήκη ενός νέου υπολογιστή), αυτόµατα θα ενηµερωθούν και οι βάσεις στους slave servers µετά από συγκεκριµένο χρονικό διάστηµα που ορίζεται µέσα στην SOA εγγραφή. Στην περίπτωση αυτή υπάρχει ένα θέµα της λήψης λάθους πληροφορίας από κάποιον πελάτη που θα απευθύνει το ερώτηµα του προς τον slave server πριν ενηµερωθούν οι βάσεις του τελευταίου. Ακόµα χειρότερη είναι η ακόλουθη περίπτωση: Ο master server λειτουργεί κανονικά, αλλά δεν υπάρχουν δεδοµένα για µια συγκεκριµένη ζώνη στον slave server γιατί έχει αποτύχει η µεταφορά της ζώνης προς τον συγκεκριµένο slave server. Έτσι, αν ο εκάστοτε πελάτης απευθύνει το ερώτηµα του προς τον slave server θα λάβει εντελώς λανθασµένη απάντηση. Τα πιστοποιηµένα δεδοµένα (authoritative data) προέρχονται από τη βάση που είναι αποθηκευµένη στον δίσκο του primary master server. Μη πιστοποιηµένα δεδοµένα (no authoritative data) προέρχονται από άλλους name servers. Υπάρχει µόνο µια εξαίρεση για την τελευταία περίπτωση. Ο name server χρειάζεται να γνωρίζει κάποιους root name servers προκειµένου να εξασφαλίσει την σωστή του λειτουργία. Όµως δεν είναι πιστοποιηµένος name server γι αυτούς τους root name servers. Τις όποιες πληροφορίες διαθέτει γι αυτούς τις κρατάει ως µη πιστοποιηµένα δεδοµένα στο δίσκο του. Με βάση τα παραπάνω, η διαδικασία της µετάφρασης του ονόµατος abc.company.com σε IP διεύθυνση περιγράφεται στο παρακάτω σχήµα: Σελ 21/72

Σχήµα 8: ιαδικασία µετάφρασης του ονόµατος abc.company.com σε IP διεύθυνση Αναλυτικά η διαδικασία έχει ως εξής: 1. Ο resolver σχηµατίζει ένα συγκεκριµένο ερώτηµα προς τον name server και περιµένει να λάβει µια ξεκάθαρη απάντηση. Στην περίπτωση που ο name server είναι σε θέσει να απαντήσει, στέλνει την απάντηση του αµέσως. Αρχικά αναζητά την απάντηση του στη cache µνήµη που έχει σχηµατίσει από προηγούµενα ερωτήµατα που έχει διεκπεραιώσει. Αν δεν εντοπίσει απάντηση µέσα στην cache µνήµη τότε επικοινωνεί µε άλλους name servers. Σε αυτή την περίπτωση, ξεκινά πάντα από τον root name server. Για το λόγο αυτό πρέπει πάντα ο name server να γνωρίζει την IP διεύθυνση του root name server. Αν δεν βρεθεί κανείς root name server να απαντήσει τότε µετά από αρκετές αποτυχηµένες προσπάθειες η όλη διαδικασία αποτυγχάνει. 2. Ο root name server βρίσκει την πληροφορία σχετικά µε το.com από την κατάλληλη NS εγγραφή και επιστρέφει την IP διεύθυνση ενός πιστοποιηµένου name server. 3. Ο name server απευθύνεται τώρα προς τον πιστοποιηµένο εξυπηρετητή για το.com τοµέα και βρίσκει την IP για τον πιστοποιηµένο εξυπηρετητή για το company.com τοµέα. 4. Στη συνέχεια αναζητά την απάντηση µε ερώτηµα προς τον πιστοποιηµένο εξυπηρετητή για το company.com τοµέα. Η απάντηση που θα λάβει χαρακτηρίζεται ως πιστοποιηµένη και αποστέλλεται πίσω στον client. 5. Η πληροφορία που στάλθηκε προς τον client αποθηκεύεται και στην cache µνήµη για µελλοντική χρήση. Η απάντηση σε µια παρόµοια ερώτηση θα αναζητηθεί στην cache µνήµη και φυσικά θα χαρακτηριστεί ως µη πιστοποιηµένο δεδοµένο (non authoritative data). Η αποθηκευµένη πληροφορία στην cache µνήµη βοηθάει το name server να γλυτώνει χρόνο αλλά βοηθάει και τους ίδιους τους root name server ώστε να µη δέχονται υπερβολικό αριθµό ερωτηµάτων. Φυσικά, σε περίπτωση που ζητηθεί µια πληροφορία που δεν είναι αποθηκευµένη στην cache µνήµη, τότε πράγµατι εµπλέκεται στην διαδικασία κάποιος root Σελ 22/72

name server. Ως εκ τούτου, οι root name servers δέχονται πολλά ερωτήµατα και µια πιθανή δυσλειτουργία τους θα είχε σοβαρές επιπτώσεις στην οµαλή λειτουργία του διαδικτύου. 2.10 Forwarder Server Πρόκειται για µια ξεχωριστή κατηγορία name server. Τα χαρακτηριστικά αυτή της κατηγορίας δεν συνδέονται µε το κατά πόσο ο name server είναι primary ή secondary για κάποια ζώνη, αλλά µε τον τρόπο που υλοποιείται η µετάφραση DNS ερωτηµάτων [15]. Όπως ήδη ειπώθηκε, ένας resolver µεταφέρει το ερώτηµα προς το name server. Αν ο name server δεν είναι σε θέση να απαντήσει ο ίδιος τότε εκτελεί µια επαναλαµβανόµενη µετάφραση χρησιµοποιώντας µη επαναλαµβανόµενα ερωτήµατα Αρχικά επικοινωνεί µε το root name server, ο οποίος και τον καθοδηγεί ώστε να επικοινωνήσει µε τον κατάλληλο name server που θα απαντήσει στο ερώτηµα. Τέλος, επικοινωνεί µε τον κατάλληλο name server που του υπέδειξε ο root name server. Αν υποτεθεί ότι µια εταιρία συνδέεται στο διαδίκτυο µε µια αργή γραµµή τότε ο name server επιβαρύνει τη γραµµή µε πολλές εξυπηρετήσεις ερωτηµάτων. Σε αυτή την περίπτωση προφανώς συµφέρει να ρυθµιστούν κάποιοι από τους name server ώστε να λειτουργούν ως forwarders. Σχήµα 9: Λειτουργία ενός Forwarder Ο τοπικός name server αποστέλλει τα ερωτήµατα προς το forwarder server. Όµως ο τοπικός name serer χαρακτηρίζει αυτά τα ερωτήµατα ως επαναλαµβανόµενα. Ο forwarder παίρνει το πρώτο ερώτηµα από τον τοπικό name server και εκτελεί τη µετάφραση µέσω µη επαναλαµβανόµενων ερωτηµάτων. Τέλος, απαντάει µε ένα τελικό αποτέλεσµα προς τον name server. Ο τοπικός name server αναµένει µια τελική απάντηση από τον forwarder. Αν δεν τη λάβει σε ένα συγκεκριµένο χρονικό διάστηµα τότε επικοινωνεί µε τον root name server και προσπαθεί από µόνος του να ολοκληρώσει τη διαδικασία. Στην περίπτωση που ο τοπικός name server δεν αναµένεται να επικοινωνεί µε κάποιον root name server αλλά να περιµένει µόνο απαντήσεις, τότε είναι υποχρεωτικό να ρυθµιστεί σαν forwarder only. Παρόµοιες περιπτώσεις εµφανίζονται σε intranets όπου η επικοινωνία µε έναν root name server δεν είναι δυνατή. Σελ 23/72

Ένας forwarder serer µπορεί να λειτουργήσει και ως caching only server και µπορεί να είναι primary ή secondary name server για κάποιες ζώνες. 2.11 Βάση δεδοµένων DNS Τα βασικότερα αγαθά της υπηρεσίας DNS είναι οι βάσεις δεδοµένων DNS (DNS databases) και οι σωστά ρυθµισµένοι name servers που διαχειρίζονται αυτές τις βάσεις. Οι βάσεις αυτές αποθηκεύονται σε αρχεία στον primary name server. Τα περιεχόµενα τους φορτώνονται στη µνήµη κατά την εκκίνηση της DNS υπηρεσίας. Σχήµα 10: Εκκίνηση της υπηρεσία DNS και οι βάσεις που φορτώνονται Μια DNS βάση αποτελείται από διάφορα αρχεία, τα οποία καθορίζονται ως η τελευταία παράµετρος συγκεκριµένων εντολών που βρίσκονται µέσα στο αρχείο named.boot. Μια βάση στο δίσκο µπορεί να περιέχει τους ακόλουθους τύπους δεδοµένων: Πιστοποιηµένα δεδοµένα για τις ζώνες που διαχειρίζεται: Αυτά πάντοτε ξεκινάνε µε µια SOA εγγραφή. Αυτά τα δεδοµένα κρατούνται µόνο στον primary name server. Ένας secondary name server λαµβάνει αυτά τα δεδοµένα κατά τη µεταφορά της ζώνης που γίνεται σε συγκεκριµένα χρονικά διαστήµατα. εδοµένα που επιτρέπουν την πρόσβαση σε root name servers. Αυτά δεν ξεκινάνε µε µια SOA εγγραφή. Το πεδίο TTL πρέπει να δηλώνεται σε κάθε ξεχωριστή εγγραφή. Τα δεδοµένα αυτά πρέπει να βρίσκονται σε κάθε name server µε εξαίρεση τους slave servers και τους root servers. εδοµένα που χρησιµοποιεί ο name server κατά την ανάθεση της διαχείρισης υπό τοµέων σε άλλους name servers. Πρόκειται για NS εγγραφές που περιέχουν τους εγκεκριµένους name servers για έναν υπό τοµέα Η γενική σύνταξη για τη γραµµή µιας συγκεκριµένης βάσης είναι η ακόλουθη: [name] [TTL] class type δεδοµένα ανάλογα µε το είδος της εγγραφής Τα πεδία µέσα σε [] είναι προαιρετικά και είναι δυνατόν να λάβουν τις τιµές τους από προηγούµενες εγγραφές. Περιγραφή των πεδίων: Το πεδίο name περιέχει το όνοµα του τοµέα. Υπάρχουν διάφορες τιµές που µπορεί να λάβει: o Το πεδίο είναι κενό. Σε αυτήν την περίπτωση η τιµή του λαµβάνεται από την προηγούµενη εγγραφή (γραµµή). Σελ 24/72

o o o Έχει την τιµή @ σε µια SOA εγγραφή. Αυτό σηµαίνει ότι το όνοµα του τοµέα που έχει δηλωθεί σε µια σχετική εντολή του named.boot (ή named.conf) πρέπει να εισαχθεί στον πεδίο name. ηλώνεται το όνοµα ενός τοµέα χωρίς την τελεία στο τέλος. Σε αυτήν την περίπτωση το όνοµα του τοµέα που καθορίζεται στην SOA εγγραφή τοποθετείται αυτοµάτως στο πεδίο name. Αν η εντολή $ORIGIN είναι δηλωµένη, τότε το όνοµα του τοµέα που υπάρχει στην εντολή $ORIGIN προστίθεται. Έχει την τιµή κάποιου τοµέα αλλά µε την τελεία στο τέλος. Τότε αναφέρεται σε ένα συγκεκριµένο όνοµα, όπως αυτό είναι γραµµένο. Το πεδίο TTL περιέχει τη διάρκεια ζωής σε δευτερόλεπτα µιας εγγραφής που βρίσκεται στην cache µνήµη ενός name server. Ο name server µειώνει αυτόµατα αυτή την τιµή και µόλις µηδενιστεί τότε η εγγραφή διαγράφεται από την cache µνήµη. Το πεδίο class µπορεί να πάρει τις τιµές IN (Internet), HS (Hesiod) ή CH (Chaos). Το πεδίο type δηλώνει το είδος της εγγραφής και λαµβάνει τιµές όπως αυτές φαίνονται στον παρακάτω πίνακα. Το τελευταίο πεδίο έχει σαν τιµές ονόµατα ή IP διευθύνσεις ή κάτι άλλο, ανάλογα µε τον τύπο της εγγραφής. Πίνακας 1: Βασικά ήδη εγγραφών σε µια DNS βάση Σελ 25/72

2.11.1 Είδη εγγραφών Στη συνέχεια θα παρουσιαστούν οι συνηθέστερες εγγραφές που βρίσκονται σε µια DNS βάση δεδοµένων. 2.11.1.1 Εγγραφές τύπου SOA Η εγγραφή Start of Authority (SOA) καθορίζει το name server που είναι η πιστοποιηµένη πηγή πληροφοριών για ένα συγκεκριµένο τοµέα. Υπάρχει πάντα µόνο µια τέτοια εγγραφή για κάθε τοµέα σε ένα αρχείο και τοποθετείται στην αρχή του. Ένα παράδειγµα µιας τέτοιας εγγραφής είναι το ακόλουθο: @ IN SOA ns.company.com.hostmaster.company.com ( 1 ; Σειριακός αριθµός 85400 ; Ανανέωση κάθε 24 ώρες 600 ; Επαναπροσπάθεια µετά από 5 λεπτά 120960 ; Λήξη µετά από 2 βδοµάδες 86400 ; Ελάχιστος χρόνος ζωής 1 βδοµάδα ) Το πεδίο του ονόµατος πρέπει να ξεκινάει ακριβώς στην πρώτη θέση της γραµµής και να έχει µια τελεία στο τέλος. Είναι αυτό που καθορίζει το όνοµα της ζώνης. Συνήθως χρησιµοποιείται η τιµή @ που δηλώνει ότι το όνοµα θα ληφθεί από τα αρχεία ρυθµίσεων (named.boot ή named.conf) Το ΙΝ δηλώνει τον τύπο της διεύθυνσης και στη συγκεκριµένη περίπτωση είναι Internet. Το SOA δηλώνει τον τύπο της εγγραφής. Το πρώτο όνοµα µετά το SOA είναι το όνοµα του primary name server, ενώ το δεύτερο καθορίζει την e-mail διεύθυνση του υπευθύνου για την συγκεκριµένη ζώνη. εδοµένου ότι το σύµβολο @ έχει ιδιαίτερη σηµασία στην συγκεκριµένη εγγραφή, δεν θα µπορούσε να χρησιµοποιηθεί και στην e-mail διεύθυνση. Το ρόλο του @ το παίζει η πρώτη δεύτερη τελεία. Έτσι το «.hostmaster.company.com» µεταφράζεται ως hostmaster@company.com. Η παρένθεση δηλώνει ότι η εγγραφή συνεχίζεται και στις επόµενες γραµµές, µέχρι να κλείσει. Ο σειριακός αριθµός καθορίζει την έκδοση του συγκεκριµένου αρχείου. Σε περίπτωση που γίνει οποιαδήποτε αλλαγή στο αρχείο θα πρέπει να αυξηθεί και ο σειριακός αριθµός του τουλάχιστον κατά ένα. Συνήθως χρησιµοποιούνται αριθµοί που σχετίζονται µε την ηµεροµηνία και την ώρα της τροποποίησης του αρχείου, ώστε να είναι δυνατή η εύκολη αύξηση του σειριακού αριθµού σε κάθε αλλαγή. Αυτό είναι πολύ σηµαντικό γιατί ένας secondary name server θα αιτηθεί την µεταφορά µιας ζώνης µόνο όταν o σειριακός αριθµός στον primary server είναι µεγαλύτερος από αυτόν που έχει o ίδιος. Οι παρακάτω τιµές είναι όλες σε δευτερόλεπτα: o o o Ο χρόνος ανανέωσης δηλώνει πόσο συχνά ένας secondary name server θα ελέγχει για νέα δεδοµένα (δεδοµένα µε µεγαλύτερο σειριακό αριθµό) στον primary name server. Ο χρόνος επαναπροσπάθειας (retry) δηλώνει το χρόνο που θα µεσολαβήσει προκειµένου ο secondary να επιχειρήσει µια νέα επικοινωνία µε τον primary εφόσον η προηγούµενη είχε αποτύχει. Ο χρόνος λήξης δηλώνει το χρόνο που θα περάσει αν ο secondary δεν καταφέρει να επικοινωνήσει µε το primary, ώστε να πάψει να παρέχει Σελ 26/72

o 2.11.1.2 Εγγραφή A πληροφορία για τη συγκεκριµένη ζώνη. Προφανώς, αυτός ο χρόνος πρέπει να είναι µεγαλύτερος από τον προηγούµενο Ο ελάχιστος χρόνος ζωής αφορά όλες τις εγγραφές του συγκεκριµένου αρχείου και καθορίζει το χρόνο που µπορούν αυτές να µείνουν στην cache µνήµη. Πρόκειται για τις πιο συνηθισµένες εγγραφές. Καταχωρούν σε ένα όνοµα µια IP διεύθυνση. Η IP διεύθυνση δεν πρέπει να έχει τελεία στο τέλος. Για παράδειγµα οι εγγραφές: www IN A 192.168.1.1 mail.noc IN A 192.168.1.2 συνδέουν τα ονόµατα www.company.com & mail.noc.company.com µε τις διευθύνσεις 192.186.1.1 και 192.168.1.2 αντίστοιχα. 2.11.1.3 Εγγραφή CNAME Συνώνυµα ονοµάτων ή αλλιώς ψευδώνυµα (aliases) µπορούν να δηµιουργηθούν µε τέτοιες εγγραφές. Για παράδειγµα οι δηλώσεις: Mail IN A 192.168.1.1 www IN CNAME mail.company.com. server IN CNAME mail.company.com Έχουν ως αποτέλεσµα τα ονόµατα mail.company.com, www.company.com & server.company.com να συνδεθούν µε την IP διεύθυνση 192.168.1.1 2.11.1.4 Εγγραφές HINFO & TXT Οι συγκεκριµένες εγγραφές παρέχονται για λόγους πληροφόρησης και µόνο. Μια HINFO εγγραφή έχει δύο τµήµατα στο κοµµάτι των δεδοµένων της. Το πρώτο είναι η πληροφορία σχετικά µε το hardware και το δεύτερο η πληροφορία σχετικά µε το software. Μια TXT εγγραφή περιέχει ένα γενικού τύπου αλφαριθµητικό στο µέρος των δεδοµένων της. Mail IN A 192.168.1.1 IN HINFO AlphaServer Unix IN TXT Μια γενική περιγραφή Οι TXT εγγραφές είναι ιδιαίτερα σηµαντικές στη λειτουργία της υπηρεσία του ηλεκτρονικού ταχυδροµείου αλλά και σε επιθέσεις τύπου DNS Amplification, όπως θα φανεί και στη συνέχεια στο 4 ο κεφάλαιο. 2.11.1.5 Εγγραφές NS Οι συγκεκριµένες εγγραφές καθορίζουν τους authoritative name servers µιας ζώνης. Το δεξί τµήµα τους πρέπει να περιέχει ένα όνοµα, το οποίο έχει συνδεθεί µε µια IP διεύθυνση µέσω µιας A εγγραφής. Επίσης, δεν επιτρέπεται να περιέχει κάποιο συνώνυµο ή ψευδώνυµο. Για παράδειγµα: Company.com IN SOA ` IN NS ns.provider.com. IN NS ns.company.com. ns IN A 192.168.1.11 branch IN NS ns.company.com. IN NS ns.branch.company.com. ns.branch IN A 192.168.2.11 Σελ 27/72

2.11.1.6 Εγγραφές MX Οι εγγραφές MX καθορίζουν τους mail servers ενός τοµέα. Η MX εγγραφή καθορίζει σε ποιο mail server θα πρέπει να αποσταλούν τα µηνύµατα για κάποιο συγκεκριµένο τοµέα αλλά και την προτεραιότητα των mail servers που είναι ρυθµισµένοι να παραλαµβάνουν µηνύµατα. Η πρώτη απόπειρα γίνεται πάντοτε στο mail server µε την υψηλότερη προτεραιότητα. Αν αυτή αποτύχει τότε γίνεται απόπειρα αποστολής στο mail server µε την αµέσως χαµηλότερη προτεραιότητα κ.ο.κ. Για παράδειγµα: Company.com IN SOA. IN MX 10 mail.company.com. IN MX 20 mail2.company.com. IN MX 30 mail3.company.com. mail1 IN A 192.168.1.21 mail2 IN A 192.168.1.22 mail3 IN A 192.168.1.23 2.11.1.7 Εγγραφές PTR Οι εγγραφές PTR χρησιµοποιούνται για να µεταφράζουν IP διευθύνσεις σε ονόµατα. Ουσιαστικά, επιτελούν το αντίστροφο έργο από αυτό των A εγγραφών. Για παράδειγµα PTR εγγραφές για τον υπολογιστή ns.company.com µε IP διεύθυνση 192.168.1.1 και για τον υπολογιστή www.company.com µε IP διεύθυνση 192.168.1.201 θα ήταν οι παρακάτω: 1.168.192.in-addr.arpa IN SOA. 1 IN PTR ns.company.com. 201 IN PTR www.company.com. Σελ 28/72

3 Επιθέσεις Denial of Service, Distributed DoS, Flooding 3.1 Εισαγωγή Επιθέσεις άρνησης υπηρεσίας (Denial of Service Attacks DoS) είναι προσπάθειες να τεθούν εκτός λειτουργίας συγκεκριµένοι πόροι ενός υπολογιστικού συστήµατος, ώστε να µην είναι διαθέσιµοι στους νόµιµους χρήστες. Παρόλο που ο τρόπος εκδήλωσης, ο στόχος και τα κίνητρα µιας DoS επίθεσης µπορεί να διαφέρουν, σε γενικές γραµµές εµπεριέχει τις συνειδητές προσπάθειες ενός ή περισσοτέρων ατόµων να θέσουν εκτός λειτουργίας ένα δικτυακό τόπο ή µια υπηρεσία, προσωρινά ή για µεγαλύτερο χρονικό διάστηµα [16]. Οι δράστες τέτοιων επιθέσεων συνήθως έχουν ως στόχο δικτυακούς τόπους και υπηρεσίες τραπεζών, ηλεκτρονικού εµπορίου, ακόµα και root DNS εξυπηρετητές. Η πιο συνηθισµένη µέθοδος σε επιθέσεις τύπου DoS είναι η προσπάθεια του δράστη να επιφέρει κορεσµό στο στόχο του (θύµα) µε συνεχείς και µεγάλου πλήθους αιτήσεις εξωτερικής επικοινωνίας. Οι αιτήσεις αυτές είναι τέτοιες ώστε να προκαλέσουν στο στόχο την αδυναµία να εξυπηρετήσει τις νόµιµες προς αυτόν αιτήσεις ή η εξυπηρέτηση τους να γίνεται σε πολύ αργούς ρυθµούς που πρακτικά τις καθιστούν άχρηστες. Σε γενικές γραµµές οι επιθέσεις DoS πραγµατοποιούνται [17]: Εξαναγκάζοντας τον υπολογιστή στόχο να µηδενίζει ή να καταναλώνει το σύνολο των πόρων του, µε αποτέλεσµα να µη µπορεί να εξυπηρετήσει τις προσφερόµενες υπηρεσίες. Παρεµποδίζοντας την επικοινωνία των νόµιµων χρηστών µε τον υπολογιστή στόχο µε αποτέλεσµα την αδυναµία χρήσης των προσφερόµενων υπηρεσιών. Οι DoS επιθέσεις θεωρούνται παραβιάσεις της πολιτικής ορθής χρήσης του Internet όπως αυτή ορίζεται από την IAB (Internet Architecture Board) και σε πολλές περιπτώσεις διώκονται µε βάση την εθνική νοµοθεσία πολλών κρατών. Η US-CERT (United States Computer Emergency Readiness Team) καθορίζει τα συµπτώµατα µιας DoS επίθεσης να περιέχουν µεταξύ άλλων [18]: Ασυνήθιστα χαµηλή ταχύτητα κατά το άνοιγµα ή την πρόσβαση σε αποµακρυσµένα αρχεία ή δικτυακούς τόπους. Μη διαθεσιµότητα κάποιου συγκεκριµένου ιστοτόπου. Αδυναµία πρόσβασης σε οποιονδήποτε ιστότοπο. Μεγάλη αύξηση την εισερχόµενης ανεπιθύµητης ηλεκτρονικής αλληλογραφίας (spam e-mails) Θα πρέπει να σηµειωθεί ότι όλες οι προγραµµατισµένες ή µη διακοπές παροχής µιας υπηρεσίας δεν αποτελούν απαραίτητα το αποτέλεσµα µιας DoS επίθεσης, ακόµα και αν προέρχονται από παράνοµη δραστηριότητα. Υπάρχουν δε περιπτώσεις όπου η άρνηση της υπηρεσίας είναι το αποτέλεσµα µιας µεγαλύτερης επίθεσης. Υπάρχουν επίσης περιπτώσεις όπου τα αποτελέσµατα µιας DoS επίθεσης δεν περιορίζονται µόνο στον υπολογιστή στόχο και τις υπηρεσίες που αυτός προσφέρει, αλλά επηρεάζουν το συνολικό δίκτυο στο οποίο αυτός βρίσκεται. Για παράδειγµα, αν ο στόχος της επίθεσης είναι η σύνδεση ενός δροµολογητή µε το τοπικό δίκτυο τότε τα αποτελέσµατα της είναι ορατά από το σύνολο των υπολογιστών του τοπικού δικτύου. Σε περιπτώσεις όπου µια DoS επίθεση πραγµατοποιείται µε στόχο ένα µεγάλο σε εύρος δίκτυο είναι δυνατό να υποβαθµιστεί η κανονική λειτουργία µεγάλων γεωγραφικών περιοχών του Internet χωρίς απαραίτητα ο επιτιθέµενος να αποσκοπούσε άµεσα σε αυτό. Σελ 29/72