College Compass

College Compass

Computer and Network Security · CN6003

Εβδομάδα 2: Μορφές επιθέσεων, ευπάθειες δικτύων και δέντρα επιθέσεων

  • vulnerabilities
  • protocols
  • ports
  • dmz
  • attack-trees
  • threat-modeling

Σημειώσεις μελέτης βασισμένες στη διάλεξη της Ενότητας 2 («Μορφές επιθέσεων και ευπάθειες δικτύων») και στις σημειώσεις του καθηγητή για τα δέντρα επιθέσεων. Ο καθηγητής ανεβάζει το υλικό στο Moodle για περιορισμένο χρονικό διάστημα, οπότε οι σημειώσεις αυτές είναι γραμμένες ώστε να στέκονται και μόνες τους.

Μια ευπάθεια (vulnerability) είναι μια αδυναμία ή ένα ελάττωμα που μπορεί να εκμεταλλευτεί κάποιος κακόβουλος. Στην Ενότητα 1 είδαμε τις επιθέσεις· εδώ βλέπουμε πού βρίσκουν πάτημα μέσα σε ένα δίκτυο, και πώς οργανώνουμε τη σκέψη μας για αυτές με ένα δέντρο επιθέσεων. Η διάλεξη προτείνει και ένα εισαγωγικό βίντεο.

1. Ευπάθειες δικτύων

1.1 Εκμετάλλευση πρωτοκόλλων (protocol exploits)

Τα βασικά πρωτόκολλα του διαδικτύου σχεδιάστηκαν όταν όλοι εμπιστεύονταν όλους, οπότε πολλά δεν ελέγχουν ποιος μιλά.

  • TCP/IP: ο τρόπος που χειρίζεται τις συνδέσεις μπορεί να επιτρέψει πειρατεία συνόδου (session hijacking), όπου ο επιτιθέμενος «παίρνει» μια ήδη ανοιχτή σύνδεση, ή έγχυση πακέτων (packet injection).
  • DNS: ευάλωτο σε δηλητηρίαση της προσωρινής μνήμης (DNS cache poisoning). Ένας διακομιστής DNS αποθηκεύει μια ψεύτικη εγγραφή και στέλνει όλους όσοι ρωτούν σε κακόβουλο διακομιστή.
  • BGP (Border Gateway Protocol): το πρωτόκολλο που αποφασίζει τις διαδρομές ανάμεσα στα μεγάλα δίκτυα του διαδικτύου. Λάθος ρυθμίσεις ή κακόβουλες ανακοινώσεις διαδρομών μπορούν να στείλουν την κίνηση ολόκληρων δικτύων από λάθος δρόμο, για υποκλοπή ή ανακατεύθυνση.
  • SMTP: δεν ελέγχει τον αποστολέα, οπότε επιτρέπει παραποίηση email (email spoofing): μηνύματα που φαίνονται να έρχονται από νόμιμη πηγή.

1.2 Εκμετάλλευση θυρών (port exploits)

  • Ανοιχτές θύρες: κάθε περιττή ανοιχτή θύρα είναι ένα πιθανό σημείο εισόδου. Κάνε σάρωση θυρών και κλείσε ό,τι δεν χρειάζεται.
  • Μη ασφαλείς υπηρεσίες: μια υπηρεσία σε ανοιχτή θύρα μπορεί να έχει ευπάθειες αν δεν είναι σωστά ρυθμισμένη ή ενημερωμένη.
  • Προεπιλεγμένες θύρες: οι γνωστές υπηρεσίες ακούν σε γνωστές θύρες. Ένας επιτιθέμενος ξέρει ακριβώς πού να ψάξει (π.χ. 3389 για RDP).
  • Εξάντληση θυρών (port exhaustion): αν μια υπηρεσία δέχεται απεριόριστες ταυτόχρονες συνδέσεις, μπορεί να γεμίσει και να μην εξυπηρετεί τους νόμιμους χρήστες (άρνηση υπηρεσίας).

1.3 Man-in-the-Middle

  • ARP spoofing: ο επιτιθέμενος συνδέει τη δική του διεύθυνση MAC με την IP μιας νόμιμης συσκευής (συνήθως του router), οπότε η κίνηση περνά από αυτόν.
  • SSL stripping: ο επιτιθέμενος αναγκάζει τη σύνδεση να «πέσει» από HTTPS σε HTTP, ώστε να βλέπει την κίνηση χωρίς κρυπτογράφηση.

1.4 Αδύναμη κρυπτογράφηση ή αυθεντικοποίηση

  • Ευπάθειες SSL/TLS: αδύναμες σουίτες κρυπτογράφησης (cipher suites), παλιές εκδόσεις του πρωτοκόλλου ή λάθος έλεγχος πιστοποιητικών ανοίγουν τον δρόμο σε MitM ή μη εξουσιοδοτημένη πρόσβαση.
  • Αδύναμα πρωτόκολλα αυθεντικοποίησης: παλιά πρωτόκολλα όπως το NTLM (η παλιά σουίτα αυθεντικοποίησης της Microsoft) ή αδύναμες υλοποιήσεις νεότερων, όπως του Kerberos, μπορεί να είναι ευάλωτα.

1.5 Επιθέσεις DoS/DDoS

  • SYN flood: εκμεταλλεύεται τη χειραψία τριών βημάτων του TCP. Ο επιτιθέμενος στέλνει πάρα πολλά πακέτα SYN και δεν ολοκληρώνει ποτέ τη χειραψία. Ο διακομιστής κρατά μισάνοιχτες συνδέσεις μέχρι να εξαντληθούν οι πόροι του.
  • UDP flood: κατακλυσμός πακέτων UDP που υπερφορτώνει το δίκτυο ή την υπηρεσία.

Επεξήγηση: Θυμήσου τη χειραψία από την Εβδομάδα 0: SYN → SYN-ACK → ACK. Στο SYN flood ο διακομιστής στέλνει το SYN-ACK και περιμένει ένα ACK που δεν έρχεται ποτέ, συχνά επειδή η διεύθυνση αποστολέα είναι πλαστή.

1.6 Λανθασμένες ρυθμίσεις firewall

  • Επιτρέπεται μη ασφαλής κίνηση: ένας λάθος κανόνας αφήνει να περάσει κίνηση που έπρεπε να μπλοκαριστεί (ή το αντίστροφο).
  • Λάθος σειρά κανόνων: τα firewalls εφαρμόζουν τον πρώτο κανόνα που ταιριάζει. Αν ένας γενικός κανόνας «επίτρεψε όλα» μπει πριν από έναν ειδικό «μπλόκαρε αυτό», ο δεύτερος δεν εφαρμόζεται ποτέ.

2. Πρωτόκολλα και θύρες

Οι θύρες είναι αριθμημένα σημεία επικοινωνίας που κατευθύνουν την κίνηση στη σωστή υπηρεσία μέσα σε μια συσκευή. Υπάρχουν οι γνωστές θύρες, τυποποιημένες για συγκεκριμένες υπηρεσίες, και οι καταχωρημένες θύρες, που τις εκχωρεί η IANA (Internet Assigned Numbers Authority) σε συγκεκριμένες εφαρμογές.

Τα πιο γνωστά πρωτόκολλα: IP, TCP, UDP, HTTP, HTTPS, FTP, SMTP, POP3, IMAP, DNS, DHCP και BGP. Οι θύρες που πρέπει να ξέρεις:

Θύρα Υπηρεσία Σημείωση
20, 21 FTP μεταφορά αρχείων, χωρίς κρυπτογράφηση
22 SSH / SFTP ασφαλής απομακρυσμένη σύνδεση και μεταφορά αρχείων
23 Telnet απομακρυσμένη σύνδεση χωρίς κρυπτογράφηση
25 SMTP αποστολή email (και 587 για υποβολή από πελάτες)
53 DNS ονόματα → διευθύνσεις
80 HTTP ιστοσελίδες
110 POP3 λήψη email
123 NTP συγχρονισμός ώρας
143 IMAP λήψη email (με τα μηνύματα στον διακομιστή)
161 SNMP διαχείριση συσκευών δικτύου
389 LDAP υπηρεσίες καταλόγου (π.χ. Active Directory)
443 HTTPS ιστοσελίδες με κρυπτογράφηση (επίσης 4433, 8443)
1521 Oracle Database
3306 MySQL
3389 RDP απομακρυσμένη επιφάνεια εργασίας των Windows
8080 HTTP (εναλλακτική) συχνά για διακομιστές ανάπτυξης ή proxies

Ένας server email όπως το Microsoft Exchange χρησιμοποιεί πολλές από αυτές: 25 και 587 (SMTP), 110 (POP3), 143 (IMAP).

3. Έκθεση θυρών και DMZ

3.1 Πώς προστατεύεσαι από την έκθεση θυρών

  • Κράτα ανοιχτές μόνο τις απολύτως απαραίτητες θύρες.
  • Χρησιμοποίησε firewall για να ελέγχεις τι μπαίνει και τι βγαίνει.
  • Απενεργοποίησε το UPnP (Universal Plug and Play), που επιτρέπει σε προγράμματα και συσκευές να ανοίγουν θύρες στο router χωρίς να το ξέρεις.
  • Για απομακρυσμένη πρόσβαση χρησιμοποίησε VPN αντί να ανοίγεις θύρες στο διαδίκτυο.
  • Ενημέρωνε τακτικά το λογισμικό, για να κλείνουν οι γνωστές ευπάθειες.
  • Σάρωνε περιοδικά τις ανοιχτές θύρες σου με εργαλεία όπως το nmap.
  • Χρησιμοποίησε DMZ μόνο όταν χρειάζεται, για υπηρεσίες που πρέπει να είναι προσβάσιμες από το διαδίκτυο.

3.2 Τι είναι η DMZ

Η DMZ (Demilitarized Zone, αποστρατιωτικοποιημένη ζώνη) είναι ένα ξεχωριστό κομμάτι του δικτύου ανάμεσα στο εσωτερικό δίκτυο (LAN) και στο διαδίκτυο (WAN). Εκεί μπαίνουν οι υπηρεσίες που πρέπει να βλέπει το κοινό: web server, mail server, κάμερες ασφαλείας.

Όταν κάποιος από το διαδίκτυο ζητά μια δημόσια υπηρεσία, η κίνηση πηγαίνει στη DMZ, όχι στο εσωτερικό δίκτυο. Αν ένας εισβολέας παραβιάσει έναν server της DMZ, δεν αποκτά αυτόματα πρόσβαση στους υπολογιστές και στα δεδομένα του LAN.

Παράδειγμα: ένα πανεπιστήμιο.

  • LAN: οι υπολογιστές του προσωπικού και των φοιτητών.
  • DMZ: ο web server και ο mail server, προσβάσιμοι από το διαδίκτυο.
  • Firewall: χωρίζει και ελέγχει την κίνηση ανάμεσα σε διαδίκτυο, DMZ και LAN.

Αν δεχθεί επίθεση ο web server, οι υπολογιστές του LAN μένουν προστατευμένοι. Με απλά λόγια, η DMZ είναι ένας χώρος «buffer»: επιτρέπει την πρόσβαση στις δημόσιες υπηρεσίες, τις απομονώνει από το εσωτερικό δίκτυο και περιορίζει τη ζημιά μιας παραβίασης.

4. Έκθεση πρωτοκόλλων: γνωστά παραδείγματα

Ευπάθεια Τι ήταν Γιατί μετράει
Heartbleed (CVE-2014-0160) σφάλμα στη βιβλιοθήκη OpenSSL, που υλοποιεί το SSL/TLS σε πάρα πολλούς web servers επέτρεπε σε οποιονδήποτε να διαβάζει κομμάτια της μνήμης του διακομιστή: κωδικούς, κλειδιά, προσωπικά δεδομένα
NTP amplification ο επιτιθέμενος στέλνει μικρά αιτήματα σε διακομιστές NTP με πλαστή διεύθυνση (του θύματος) οι διακομιστές στέλνουν πολύ μεγαλύτερες απαντήσεις στο θύμα, άρα DDoS με ελάχιστο κόστος
Shellshock (CVE-2014-6271) ευπάθεια στο Bash, το κέλυφος γραμμής εντολών των Unix/Linux επέτρεπε την εκτέλεση αυθαίρετων εντολών στο σύστημα
HTTP header injection ο επιτιθέμενος βάζει κακόβουλο περιεχόμενο στις κεφαλίδες HTTP μπορεί να οδηγήσει σε XSS ή άλλες επιθέσεις σε εφαρμογές ιστού

Επεξήγηση: Το CVE (Common Vulnerabilities and Exposures) είναι ο δημόσιος κατάλογος γνωστών ευπαθειών. Κάθε ευπάθεια παίρνει έναν μοναδικό κωδικό (π.χ. CVE-2014-0160), ώστε όλοι να μιλούν για το ίδιο πράγμα. Το NTP amplification δουλεύει όπως το DNS amplification της Ενότητας 1.

5. Δέντρα επιθέσεων (attack trees)

5.1 Τι είναι και γιατί τα χρησιμοποιούμε

Ένα δέντρο επιθέσεων είναι μια ιεραρχική, γραφική μέθοδος μοντελοποίησης απειλών (threat modeling). Δείχνει όλους τους διαφορετικούς δρόμους με τους οποίους ένας επιτιθέμενος μπορεί να πετύχει έναν συγκεκριμένο στόχο, π.χ. «κλέψε τα credentials» ή «ρίξε τον server». Την ιδέα την έκανε γνωστή ο Bruce Schneier στα τέλη της δεκαετίας του 1990 (Attack Trees, 1999).

5.2 Δομή και ορολογία

  • Ρίζα (root): ο τελικός στόχος της επίθεσης, στην κορυφή του δέντρου.
  • Κόμβοι (nodes): υπο-στόχοι ή ενέργειες που οδηγούν στον στόχο του «γονέα» τους.
  • Φύλλα (leaves): οι βασικές ενέργειες, που δεν σπάνε σε μικρότερες.
  • Λογικοί τελεστές:
    • OR: ο στόχος του γονέα πετυχαίνει αν πετύχει οποιοδήποτε παιδί.
    • AND: χρειάζεται να πετύχουν όλα τα παιδιά.
  • Σε πιο σύνθετα μοντέλα υπάρχουν και τελεστές σειράς (οι ενέργειες με συγκεκριμένη σειρά) ή κατωφλίου («k από τα n»).

5.3 Το κλασικό παράδειγμα: άνοιξε το χρηματοκιβώτιο

Το παράδειγμα του Schneier. Στόχος (ρίζα): άνοιξε το χρηματοκιβώτιο. Όλοι οι κόμβοι είναι OR, εκτός από το «κρυφάκουσε», που είναι AND. Δίπλα σε κάθε κόμβο, το εκτιμώμενο κόστος της επίθεσης. Με ΕΕ σημειώνονται τα φύλλα που χρειάζονται ειδικό εξοπλισμό· όλα τα άλλα γίνονται χωρίς εξοπλισμό:

  • Άνοιξε το χρηματοκιβώτιο (OR)
    • Παραβίασε την κλειδαριά: 30.000 $, ΕΕ
    • Μάθε τον συνδυασμό (OR): 20.000 $
      • Βρες τον συνδυασμό γραμμένο κάπου: 75.000 $
      • Πάρε τον συνδυασμό από τον κάτοχο (OR): 20.000 $
        • Απείλησε: 60.000 $
        • Εκβίασε: 100.000 $
        • Κρυφάκουσε (AND): 60.000 $
          • Άκου τη συνομιλία: 20.000 $, ΕΕ
          • Κάνε τον κάτοχο να πει τον συνδυασμό: 40.000 $
        • Δωροδόκησε: 20.000 $
    • Κόψε το χρηματοκιβώτιο: 10.000 $, ΕΕ
    • Εκμεταλλεύσου κακή εγκατάσταση: 100.000 $

Πώς «ανεβαίνουν» οι τιμές από τα φύλλα στη ρίζα:

  • Σε κόμβο OR, ο επιτιθέμενος διαλέγει τον φθηνότερο δρόμο, άρα κόστος = το ελάχιστο των παιδιών.
  • Σε κόμβο AND χρειάζονται όλα, άρα κόστος = το άθροισμα των παιδιών (20.000 + 40.000 = 60.000 $ για το «κρυφάκουσε»).

Η φθηνότερη επίθεση συνολικά είναι να κόψεις το χρηματοκιβώτιο (10.000 $), αλλά θέλει ειδικό εξοπλισμό. Αν ο επιτιθέμενος δεν έχει εξοπλισμό, η φθηνότερη επίθεση είναι η δωροδοκία του κατόχου (20.000 $). Αυτό είναι το πρακτικό όφελος: ξέρεις πού να ρίξεις τα χρήματα της άμυνας. Ένα πιο γερό χρηματοκιβώτιο δεν βοηθά αν ο υπάλληλος δωροδοκείται.

5.4 Πώς φτιάχνεις ένα δέντρο επιθέσεων

  1. Όρισε τον στόχο (ρίζα) με ακρίβεια: τι σημαίνει «πετυχημένη επίθεση»;
  2. Όρισε το περιβάλλον: ποια assets, ποιες τεχνολογίες και ποιες ικανότητες του επιτιθέμενου λαμβάνεις υπόψη.
  3. Σπάσε τον στόχο σε υπο-στόχους που εξηγούν «πώς» επιτυγχάνεται.
  4. Πρόσθεσε φύλλα: πραγματικά βήματα που μπορεί να κάνει ο επιτιθέμενος.
  5. Σημείωσε AND/OR: ποιες ενέργειες είναι εναλλακτικές και ποιες χρειάζονται μαζί.
  6. Ποσοτικοποίησε (προαιρετικά): δώσε σε κάθε φύλλο κόστος, πιθανότητα, χρόνο ή επίπεδο δεξιοτήτων.
  7. Επικύρωσε και επανέλαβε: έλεγξε το δέντρο με τους ενδιαφερόμενους και ενημέρωνέ το όταν αλλάζει το σύστημα.

Το δέντρο μπορεί να μείνει ποιοτικό (High / Medium / Low) ή να γίνει ποσοτικό, με αριθμούς σε κάθε φύλλο. Οι αριθμοί δίνουν ακρίβεια, αλλά μόνο αν τα δεδομένα είναι αξιόπιστα· αλλιώς δημιουργούν ψεύτικη βεβαιότητα.

5.5 Παράδειγμα με πιθανότητες: τα δεδομένα της εταιρείας Χ

Στόχος: απόκτησε πρόσβαση στα ευαίσθητα δεδομένα της εταιρείας Χ. Τρεις εναλλακτικοί δρόμοι (OR στη ρίζα), ο καθένας με τρία φύλλα (OR) και μια εκτιμώμενη πιθανότητα επιτυχίας:

Κλάδος Φύλλο Πιθανότητα
Κλοπή credentials spear phishing 0,30
keylogger / malware στο laptop 0,20
κοινωνική μηχανική για τον κωδικό 0,10
Εκμετάλλευση ευπάθειας unpatched υπηρεσία SMB 0,25
zero-day στον web server 0,15
custom malware σε συνημμένο 0,20
Φυσική πρόσβαση μη εξουσιοδοτημένη είσοδος στο κτίριο 0,05
κλοπή κάρτας (badge) 0,10
tailgating 0,10

Υποθέτουμε ότι τα γεγονότα είναι ανεξάρτητα. Τότε:

  • AND: όλα πρέπει να πετύχουν, άρα P = p₁ × p₂ × … × pₙ.
  • OR: αρκεί ένα, άρα P = 1 − (1 − p₁) × (1 − p₂) × … × (1 − pₙ). Δηλαδή «1 μείον την πιθανότητα να αποτύχουν όλα».

Κλάδος «κλοπή credentials» (OR): 1 − (0,70 × 0,80 × 0,90) = 1 − 0,504 = 0,496

Κλάδος «εκμετάλλευση ευπάθειας» (OR): 1 − (0,75 × 0,85 × 0,80) = 1 − 0,510 = 0,490

Τους δύο τελευταίους αριθμούς βγάλ’ τους μόνος σου πριν ανοίξεις τη λύση. Αυτό ζήτησε και ο καθηγητής.

Κλάδος «φυσική πρόσβαση» και ρίζα: λύση

Κλάδος «φυσική πρόσβαση» (OR): 1 − (0,95 × 0,90 × 0,90) = 1 − 0,7695 = 0,2305 ≈ 0,231

Ρίζα (OR ανάμεσα στους τρεις κλάδους): 1 − (1 − 0,496) × (1 − 0,490) × (1 − 0,2305) = 1 − 0,504 × 0,510 × 0,7695 = 1 − 0,1978 = 0,802

Τι σημαίνουν οι αριθμοί. Ο κλάδος της φυσικής πρόσβασης έχει περίπου 23% πιθανότητα επιτυχίας: σχεδόν 1 στις 4 προσπάθειες. Η ρίζα έχει περίπου 80%: με αυτές τις τιμές, σχεδόν 4 στις 5 επιθέσεις θα φτάσουν στα δεδομένα αν δεν αλλάξει κάτι. Ο οργανισμός έχει πολύ υψηλό συνολικό ρίσκο, και οι κλάδοι credentials και ευπαθειών είναι οι πιο ρεαλιστικοί. Η φυσική πρόσβαση είναι πιο δύσκολη, αλλά δεν πρέπει να αγνοείται σε κρίσιμες υποδομές.

5.6 Τι αλλάζει αν βάλουμε AND αντί για OR

Α. AND μέσα σε κάθε κλάδο (κάθε κλάδος χρειάζεται όλα τα φύλλα του), OR στη ρίζα:

Κλάδος Υπολογισμός Πιθανότητα
Credentials 0,30 × 0,20 × 0,10 0,006
Ευπάθειες 0,25 × 0,15 × 0,20 0,0075
Φυσική πρόσβαση 0,05 × 0,10 × 0,10 0,0005

Ρίζα: 1 − (0,994 × 0,9925 × 0,9995) = 1 − 0,98605 ≈ 0,0139 (≈1,4%)

Προσοχή: Στις σημειώσεις του καθηγητή ο ενδιάμεσος υπολογισμός γράφει 0,994 × 0,9925 = 0,98605, που δεν είναι σωστό: το σωστό είναι 0,986545. Το τελικό αποτέλεσμα (≈ 0,01395) είναι σωστό.

Β. OR μέσα στους κλάδους, AND στη ρίζα (ο επιτιθέμενος πρέπει να πετύχει και τους τρεις κλάδους):

0,496 × 0,490 × 0,2305 = 0,056 (≈5,6%)

Συμπέρασμα. Το OR σημαίνει «τουλάχιστον ένας δρόμος»: ο επιτιθέμενος διαλέγει τον ευκολότερο, άρα η πιθανότητα ανεβαίνει (80%). Το AND σημαίνει «χρειάζονται όλα»: κάθε επιπλέον βήμα πολλαπλασιάζει τη δυσκολία, άρα η πιθανότητα πέφτει δραματικά (1,4% ή 5,6%).

Δύο κρίσιμες παρατηρήσεις:

  • Ανεξαρτησία. Οι τύποι υποθέτουν ότι τα γεγονότα είναι ανεξάρτητα. Στην πράξη συνδέονται: ένα πετυχημένο spear phishing κάνει πιο εύκολο ένα exploit. Οι συσχετίσεις συνήθως αυξάνουν το πραγματικό ρίσκο.
  • Μοντελοποίηση. Ο τελεστής σε κάθε κόμβο πρέπει να δείχνει την πραγματική σχέση. Αν ένα exploit χρειάζεται πρώτα πρόσβαση στο LAN, βάζεις AND («unpatched SMB» AND «πρόσβαση στο LAN»). Αν ο επιτιθέμενος μπορεί να διαλέξει ανάμεσα σε πολλούς τρόπους, βάζεις OR.

5.7 Παραλλαγές, χρήσεις, πλεονεκτήματα και όρια

Παραλλαγές. Τα attack-defense trees προσθέτουν κόμβους άμυνας απέναντι σε συγκεκριμένες επιθέσεις, οπότε βλέπεις και τις δύο πλευρές. Τα attack graphs χρησιμοποιούνται όταν οι εξαρτήσεις είναι πιο σύνθετες (π.χ. πολλές καταστάσεις του συστήματος) και ταιριάζουν σε αυτόματη ανάλυση μεγάλων δικτύων.

Πού χρησιμοποιούνται.

  • Threat modeling: ρεαλιστικά σενάρια επίθεσης για να εστιάσει ο σχεδιασμός της ασφάλειας.
  • Αξιολόγηση κινδύνου: με αριθμούς, για να αποφασίσεις πού θα επενδύσεις πρώτα.
  • Σχεδιασμός αντιμέτρων: δείχνουν τις κρίσιμες διαδρομές που πρέπει να «κόψεις».
  • Pentesting και red teaming: ως οδικός χάρτης για τα σενάρια ελέγχου.

Πλεονεκτήματα. Συστηματική, ιεραρχική εικόνα όλων των τρόπων επίθεσης· καλύτερη επικοινωνία ανάμεσα σε τεχνικούς και διοίκηση, γιατί είναι οπτικά και δομημένα· εύκολος εντοπισμός μοναδικών σημείων αποτυχίας (single points of failure).

Όρια.

  • Πληρότητα: το δέντρο δείχνει μόνο όσα ξέρει ο αναλυτής· κάποια σενάρια μπορεί να λείπουν.
  • Κλίμακα: σε μεγάλα συστήματα οι κόμβοι πολλαπλασιάζονται και η συντήρηση δυσκολεύει.
  • Αξιοπιστία των αριθμών: χωρίς καλά δεδομένα, οι πιθανότητες και τα κόστη είναι εικασίες.
  • Κόστος: ένα μεγάλο δέντρο θέλει χρόνο και ανθρώπους· πρέπει να αξίζει το όφελος.

Καλές πρακτικές. Ξεκίνα με μικρούς, σαφείς στόχους και μεγάλωνε σταδιακά. Φέρε στο τραπέζι διαφορετικούς ανθρώπους (ops, developers, security, business). Συνδύασε ποιοτική και ποσοτική ανάλυση. Χρησιμοποίησε τυποποιημένη σημειογραφία ή εργαλεία, και ενημέρωνε το δέντρο μετά από αλλαγές ή περιστατικά.

Εργαλεία. Ανοιχτού κώδικα: ADTool (Πανεπιστήμιο του Λουξεμβούργου), Ent, SeaMonster. Εμπορικά: AttackTree (Isograph), SecurITree (Amenaza).

Για περαιτέρω μελέτη. B. Schneier, Attack Trees, Dr. Dobb’s Journal (1999)· S. Mauw και M. Oostdijk, Foundations of Attack Trees (2005)· οι αναφορές του NIST και της MITRE για το threat modeling και την αξιολόγηση κινδύνου.

6. Σύνοψη

  • Οι ευπάθειες δικτύων βρίσκονται σε πρωτόκολλα (TCP/IP, DNS, BGP, SMTP), σε θύρες (ανοιχτές, προεπιλεγμένες, μη ασφαλείς υπηρεσίες), σε αδύναμη κρυπτογράφηση ή αυθεντικοποίηση και σε λάθος ρυθμίσεις firewall.
  • Ξέρε τις βασικές θύρες: 21 FTP, 22 SSH, 23 Telnet, 25 SMTP, 53 DNS, 80 HTTP, 443 HTTPS, 3389 RDP.
  • Λιγότερες ανοιχτές θύρες, firewall, χωρίς UPnP, VPN για απομακρυσμένη πρόσβαση, ενημερώσεις και σάρωση με nmap.
  • Η DMZ απομονώνει τις δημόσιες υπηρεσίες από το εσωτερικό δίκτυο, ώστε μια παραβίαση εκεί να μη φτάνει στο LAN.
  • Heartbleed, Shellshock, NTP amplification: πραγματικά παραδείγματα όπου ένα πρωτόκολλο ή μια βιβλιοθήκη εξέθεσε χιλιάδες συστήματα.
  • Ένα δέντρο επιθέσεων έχει ρίζα (στόχο), κόμβους (υπο-στόχους) και φύλλα (ενέργειες), συνδεδεμένα με OR ή AND. Στα κόστη: OR = ελάχιστο, AND = άθροισμα. Στις πιθανότητες: OR = 1 − Π(1 − pᵢ), AND = Π pᵢ.