Ασφάλεια στο Internet
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Τα πρωτόκολλα του Internet
Εφαρμογή
Το επίπεδο εφαρμογής στο Internet καλύπτει τα επίπεδα
εφαρμογής και παρουσίασης του OSI.
Τα πιο συχνά πρωτόκολλα που χρησιμοποιούνται από τους
χρήστες είναι:
- Telnet
- χρήση από απόσταση
- FTP
- μεταφορά αρχείων
- SMTP
- μεταφορά email
- POP/IMAP
- ανάγνωση email
- HTTP/HTML
- πρόσβαση στο Web
Μια σειρά από πρωτόκολλα στο επίπεδο αυτό υποστηρίζουν τη λειτουργία και
τη διαχείριση του δικτύου:
- DNS
- Κατανεμημένος κατάλογος ονομάτων
- SNMP
- Διαχείριση από απόσταση
- BOOTP
- Αρχικό φόρτωμα κώδικα
- RARP
- Αντίστροφη μετατροπή διευθύνσεων
Μεταφορά
Στο επίπεδο της μεταφοράς χρησιμοποιούνται δύο πρωτόκολλα:
- TCP
- Transmission Control Protocol
- UDP
- User Datagram Protoco
Δίκτυο
Στο επίπεδο του δικτύου το Internet Protocol (IP) μαζί με το
Internet Control Message Protocol εξασφαλίζουν τη μεταφορά δεδομένων
από τον αποστολέα στον παραλήπτη.
Το παρακάτω σχήμα παριστάνει τη σχέση ανάμεσα στα διάφορα πρωτόκολλα
του internet:
+------+ +-----+ +-----+ +-----+
|Telnet| | FTP | | TFTP| ... | ... |
+------+ +-----+ +-----+ +-----+
| | | |
+-----+ +-----+ +-----+
| TCP | | UDP | ... | ... |
+-----+ +-----+ +-----+
| | |
+--------------------------+----+
| Internet Protocol & ICMP |
+--------------------------+----+
|
+---------------------------+
| Local Network Protocol |
+---------------------------+
Σημείωση: Τα σχήματα της ενότητας αυτής προέρχονται από τα έντυπα RFC που
αναφέρονται στη βιβλιογραφία.
IP
Πακέτα στο επίπεδο του δικτύου internet έχουν την παρακάτω μορφή:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Οι διευθύνσεις αποστολέα και παραλήπτη χωρίζονται στις παρακάτω
κατηγορίες:
Αρχικά bit Μορφή Κλάση
--------------- ------------------------------- -----
0 7 bit δίκτυο, 24 υπολογιστής A
10 14 bit δίκτυο, 16 υπολογιστής B
110 21 bit δίκτυο, 8 υπολογιστής C
1110 Πολλαπλοί παραλήπτες D
ICMP
Το Internet Control Message Protocol (ICMP) επιτρέπει την επικοινωνία ανάμεσα
σε υπολογιστές και δίκτυα για την ομαλή λειτουργία του IP.
Αν και το ICMP χρησιμοποιεί το IP για τη μεταφορά του, αποτελεί
τμήμα του IP.
Το ICMP ορίζει τα παρακάτω μηνύματα:
- 0
- Echo Reply
- 3
- Destination Unreachable
- 4
- Source Quench
- 5
- Redirect
- 8
- Echo
- 11
- Time Exceeded
- 12
- Parameter Problem
- 13
- Timestamp
- 14
- Timestamp Reply
- 15
- Information Request
- 16
- Information Reply
UDP
Το πρωτόκολλο UDP επιτρέπει τη μεταφορά πακέτων μέσω ενός δικτύου IP.
Τα πακέτα μπορούν να χαθούν, να παραδοθούν με διαφορετική σειρά,
ή να εμφανιστούν διπλά.
Έτσι το πρωτόκολλο εξασφαλίζει αποδοτικότητα σε βάρος όμως της αξιοπιστίας.
Ένα πακέτο UDP μαζί με την επικεφαλίδα IP έχει την παρακάτω μορφή:
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| source address | IP
+--------+--------+--------+--------+ IP
| destination address | IP
+--------+--------+--------+--------+
| zero |protocol| UDP length | UDP
+--------+--------+--------+--------+ UDP
| Source | Destination | UDP
| Port | Port | UDP
+--------+--------+--------+--------+ UDP
| | | UDP
| Length | Checksum | UDP
+--------+--------+--------+--------+ UDP
| UDP
| data octets ... UDP
+---------------- ...
TCP
Το πρωτόκολλο TCP (Transmission Control Protocol) επιτρέπει τη σύνδεση
δύο διεργασιών και τη μεταξύ τους επικοινωνία.
Το TCP θεωρεί ότι το δίκτυο στο οποίο βασίζεται παρέχει τη δυνατότητα μεταφοράς
πακέτων χωρίς εγγυήσεις σχετικά με τη σειρά που θα παραδοθούν,
την απώλεια πακέτων ή τη διπλή παράδοσή τους.
Πάνω από ένα τέτοιο δίκτυο το TCP παρέχει αξιόπιστη μεταφορά δεδομένων.
Οι βασικές υπηρεσίες που παρέχει το TCP είναι οι παρακάτω:
- Μεταφορά δεδομένων
- Αξιοπιστία
- Έλεγχο ροής
- Πολυπλεξία
- Συνδέσεις
- Προτεραιότητα
Η μορφή της επικεφαλίδας του TCP είναι η παρακάτω:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Τα bit URG...FIN έχουν τους παρακάτω ρόλους:
- URG
- Το πεδίο Urgent Pointer περιέχει δεδομένα
- ACK
- Το πεδίο Acknowledgment περιέχει δεδομένα
- PSH
- Λειτουργία Push
- RST
- Επαναρύθμιση της σύνδεσης
- SYN
- Συγχρονισμός των αριθμών της σειράς
- FIN
- Δεν υπάρχουν άλλα δεδομένα από τον αποστολέα
Υπηρεσίες και ασφάλεια
Οι υπηρεσίες που παρέχονται από μηχανήματα που είναι συνδεδεμένα στο
Internet έχουν η κάθε μια τις δικές τους απαιτήσεις σχετικά με
την προστασία τους.
Οι απαιτήσεις προστασίας πρέπει να διαχωριστούν και να αντιμετωπιστούν
διαφορετικά ανάλογα με το αν:
- η υπηρεσία παρέχεται για πρόσβαση μόνο
τους εσωτερικούς χρήστης του οργανισμού
(π.χ. πρόσβαση σε αρχεία μέσω NFS ή SMB/CIFS, βάσεις δεδομένων ODBC),
- η υπηρεσία παρέχεται σε όλο το Internet (π.χ. Web, SMTP),
- η υπηρεσία εξυπηρετεί και απομακρυσμένους χρήστες του οργανισμού
(π.χ. IMAP, telnet) ή ένα εξωδίκτυο (extranet).
Οι υπηρεσίες που είναι προσβάσιμες από όλο το Internet και ειδικά
αυτές που εξυπηρετούν και χρήστες του οργανισμού μέσω του
Internet πρέπει να προστατεύονται με προσοχή.
Ακόμα, καλό είναι υπηρεσίες που εξυπηρετούν αποκλειστικά χρήστες
μέσα στον οργανισμό να μη βρίσκονται στο ίδιο μηχάνημα με υπηρεσίες
που είναι προσβάσιμες από το Internet.
Τα μηχανήματα των δύο κατηγοριών καλό είναι να διαχωρίζονται με
ένα (σωστά διαμορφωμένο) firewall.
Κατάλογοι ονομάτων
Η υπηρεσία Domain Name System (DNS) μεταφράζει μεταξύ
άλλον ονόματα σε διευθύνσεις.
Αν κάποιος εξασφαλίσει παράνομα τον έλεγχο της υπηρεσίας αυτής
μπορεί να αλλάξει τη ροή των πακέτων επηρεάζοντας το σύστημα ασφάλειας.
Για παράδειγμα με τον τρόπο αυτό οι χρήστες μπορεί να έχουν πρόσβαση σε
ένα μηχάνημα που ελέγχει ο εχθρός νομίζοντας πως έχουν πρόσβαση σε ένα
κανονικό μηχάνημα του οργανισμού.
Οι δευτερεύοντες εξυπηρετητές DNS πρέπει να είναι προστατευμένοι,
ενώ οι πρωτεύοντες πρέπει να προστατεύονται και από
επιθέσεις άρνησης εξυπηρέτησης (denial of service attacks)
με τη χρήση φίλτρων πακέτων.
Η υπηρεσία DNS δεν προσφέρει εξασφάλιση ακεραιότητας και εμπιστευτικότητας,
αν και η κατάσταση αυτή αλλάζει με τη χρήση ηλεκτρονικών υπογραφών
(βλ. RFC 2065 (ftp://ftp.internic.net/rfc/rfc2065.txt)).
Εξυπηρετητές κλειδιών
- Οι εξυπηρετητές που προσφέρουν έλεγχο κλειδιών (π.χ. NIS, NIS+, KDC, NT
primary domain controler) πρέπει να μην είναι προσβάσιμοι από
το Internet.
- Ακόμα και αν το αρχείο με τους κωδικούς είναι κρυπτογραφημένο με μη
αναστρέψιμο τρόπο ο εχθρός μπορεί να χρησιμοποιήσει
επίθεση με τη χρήση λεξικού.
- Πρόσβαση στους εξυπηρετητές αυτούς πρέπει να έχουν μόνο οι
διαχειριστές τους.
Εξυπηρετητές ηλεκτρονικού ταχυδρομείου
- Ο υπηρέτης ηλεκτρονικού ταχυδρομείου πρέπει εξ' ορισμού να είναι
προσβάσιμος απ' όλο το Internet.
Για το λόγο αυτό πρέπει να είναι προσεκτικά διαμορφωμένος και να περιέχει
όλες τις τελευταίες αλλαγές του κατασκευαστή.
- Η διαμόρφωση του υπηρέτη πρέπει να μην επιτρέπει τη χρήση
του για την αποστολή μηνυμάτων από χρήστες που δεν ανήκουν στον
οργανισμό.
- Για την ανάγνωση μηνυμάτων καλό είναι να προτιμούνται πρωτόκολλα
που να χρησιμοποιούν κρυπτογραφημένους κωδικούς πρόσβασης.
Εξυπηρετητές Web
Ο δημόσιος υπηρέτης Web (σε αντίθεση με έναν εσωτερικό υπηρέτη
εσωδικτύου (intranet))
είναι τυπικά προσβάσιμος απ' όλο το Internet.
Οι παρακάτω συστάσεις μπορούν να ελαττώσουν τους αντίστοιχους
κινδύνους:
- Ο υπηρέτης του Web να μην προσφέρει άλλες υπηρεσίες.
- Ο υπηρέτης να μην προσφέρει εμπιστευτικές πληροφορίες.
- Ο υπηρέτης του Web να βρίσκεται έξω από την περίμετρο ασφάλειας
του οργανισμού.
- Εσωτερικά μηχανήματα να μην εμπιστεύονται το δημόσιο υπηρέτη.
- Ο υπηρέτης πρέπει να είναι προσεκτικά διαμορφωμένος και να περιέχει
όλες τις τελευταίες αλλαγές του κατασκευαστή.
Εξυπηρετητές FTP
Ο δημόσιος υπηρέτης για μεταφορά αρχείων μέσω του
File Transfer Protocol (FTP) είναι τυπικά προσβάσιμος απ' όλο το Internet.
Οι παρακάτω συστάσεις μπορούν να ελαττώσουν τους αντίστοιχους
κινδύνους:
- Ο υπηρέτης FTP να μην προσφέρει άλλες υπηρεσίες.
- Ο υπηρέτης να μην προσφέρει ούτε και να περιέχει
εμπιστευτικές πληροφορίες (π.χ. αρχείο κωδικών χρηστών).
- Ο υπηρέτης FTP να μη χρησιμοποιεί το ίδιο μηχάνημα με τον
υπηρέτη του Web. Η πρόσβαση με FTP μπορεί να χρησιμοποιηθεί για
τη μεταβολή στοιχείων του Web, ή η πρόσβαση μέσω του Web για την
άντληση εμπιστευτικών στοιχείων του FTP.
- Ο υπηρέτης FTP να βρίσκεται έξω από την περίμετρο ασφάλειας
του οργανισμού.
- Ο υπηρέτης πρέπει να είναι προσεκτικά διαμορφωμένος και να περιέχει
όλες τις τελευταίες αλλαγές του κατασκευαστή.
- Η διαμόρφωση του υπηρέτη να επιτρέπει πρόσβαση μόνο στην περιοχή
των αρχείων.
Εξυπηρετητές αρχείων
- Οι εξυπηρετητές αρχείων (NFS, SMB, CIFS)
δεν είναι σχεδιασμένοι και υλοποιημένοι για ασφαλή πρόσβαση.
- Οι υπηρεσίες που προσφέρουν δεν πρέπει να εμφανίζονται στο Internet.
- Πακέτα για τις υπηρεσίες αυτές πρέπει να σταματούν στο επίπεδο του firewall.
Βιβλιογραφία
- R. Braden.
RFC 1122: Requirements for
Internet hosts — communication layers, October 1989.
See also STD3 [STD0003].
- R. Braden.
RFC 1123: Requirements for
Internet hosts — application and support, October 1989.
See also STD3 [STD0003].
- Douglas E. Comer and
David L. Stevens.
Internetworking with TCP/IP, volume II: Design, Implementation and
Internals.
Prentice-Hall, 1991.
- Douglas E. Comer and
David L. Stevens.
Internetworking with TCP/IP, volume III: Client-Server Programming and
Applications (BSD Socket Version.
Prentice-Hall, 1993.
- Douglas E. Comer.
Internetworking with TCP/IP, volume I: Principles, Protocols and
Architecture.
Prentice-Hall, second edition, 1991.
- D. Eastlake and
C. Kaufman.
RFC 2065: Domain Name System
security extensions, January 1997.
Updates RFC1035 [RFC1035].
- B. Fraser.
RFC 2196: Site security
handbook, September 1997.
- E. Krol.
RFC 1118: Hitchhikers guide to
the Internet, September 1989.
- J. Postel.
RFC 768: User Datagram
Protocol, August 1980.
See also STD6 [STD0006].
- J. Postel.
RFC 774: Internet protocol
handbook: Table of contents, October 1980.
Obsoletes RFC0766 [RFC0766].
- J. Postel.
RFC 791: Internet
protocol, September 1981.
Obsoletes RFC0760 [RFC0760].
- J. Postel.
RFC 792: Internet control
message protocol, September 1981.
Obsoletes RFC0777 [RFC0777]. See also STD5 [STD0005].
- J. Postel.
RFC 793: Transmission Control
Protocol, September 1981.
See also STD7 [STD0007]. Updates RFC0761 [RFC0761].
- W. Richard Stevens.
UNIX
Network Programming.
Prentice Hall, 1990.