Ενότητα 3 · 3.2
Ανάγνωση domains και συνδέσμων
Ενότητα 3: Αναγνώριση phishing · Χρόνος ανάγνωσης: 13 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα θα μπορείτε να προσδιορίζετε τον πραγματικό προορισμό κάθε συνδέσμου: θα βρίσκετε το registrable domain με τη δημόσια λίστα καταλήξεων και θα αναγνωρίζετε τα κόλπα με subdomain, path και @, τα lookalikes, το punycode, τους συντομευτές και τα open redirects.
Βασικές έννοιες: URL, scheme, host, registrable domain, public suffix, subdomain, path, lookalike, typosquatting, homograph, punycode (xn--), URL shortener, open redirect
Τα μέρη ενός συνδέσμου
Μια διεύθυνση ιστού ονομάζεται URL. Αποτελείται από σταθερά μέρη:
https://inlog.mijnbank.example:443/klant/overzicht?taal=nl#saldo| Μέρος | Σε αυτό το παράδειγμα | Τι κάνει |
|---|---|---|
| Scheme | https | Πώς συνδέεται το πρόγραμμα περιήγησης |
| Host | inlog.mijnbank.example | Με ποιον server επικοινωνείτε |
| Port (σπάνια εμφανίζεται) | 443 | Ο «αριθμός θύρας» σε αυτόν τον server |
| Path | /klant/overzicht | Ποια σελίδα σε αυτόν τον server |
| Query | ?taal=nl | Επιπλέον δεδομένα για τη σελίδα |
| Fragment | #saldo | Ένα σημείο μέσα στη σελίδα |
Η host είναι το μοναδικό μέρος που καθορίζει σε ποιον ανήκει η ιστοσελίδα. Το path, το query και το fragment τα ορίζει ο ίδιος ο ιδιοκτήτης αυτής της host. Εκεί μπορεί λοιπόν να υπάρχει οτιδήποτε, ακόμη και το όνομα ενός άλλου οργανισμού.
Η host διαβάζεται από τα δεξιά προς τα αριστερά, ετικέτα προς ετικέτα. Το τέλος είναι το σημαντικότερο μέρος.
Το registrable domain και η δημόσια λίστα καταλήξεων
Δεν αποκαλύπτει ολόκληρη η host τον ιδιοκτήτη, αλλά ένα συγκεκριμένο κομμάτι της: το registrable domain. Αυτό είναι το όνομα που έχει καταχωρίσει κάποιος σε έναν registrar. Όλα όσα βρίσκονται αριστερά από αυτό είναι subdomains, και αυτά τα δημιουργεί ο ίδιος ο ιδιοκτήτης, όσα θέλει.
Για να βρείτε το registrable domain, πρέπει να γνωρίζετε πού μπορείτε πράγματι να καταχωρίσετε εσείς οι ίδιοι ένα όνομα. Ένα τέτοιο κομμάτι ονομάζεται public suffix. Παραδείγματα είναι το com, το nl και το example, αλλά και το co.uk: στο Ηνωμένο Βασίλειο, ως επιχείρηση καταχωρίζετε ένα όνομα κάτω από το co.uk. Το registrable domain είναι τότε το public suffix συν μία ετικέτα πριν από αυτό.
| Host | Public suffix | Registrable domain |
|---|---|---|
www.example.com | com | example.com |
inlog.mijnbank.example | example | mijnbank.example |
www.shop.[naam].co.uk | co.uk | [naam].co.uk |
mijnbank.co.uk.example | example | uk.example |
Ο πρακτικός κανόνας «πάρτε τα δύο τελευταία κομμάτια» οδηγεί λοιπόν σε λάθος. Στο www.shop.[naam].co.uk θα καταλήγατε στο co.uk, το οποίο δεν ανήκει σε κανέναν συγκεκριμένα. Και το τελευταίο παράδειγμα δείχνει ότι το co.uk στη μέση ενός ονόματος δεν σημαίνει τίποτα: εκεί ιδιοκτήτης είναι το uk.example.
Ποιες καταλήξεις είναι δημόσιες αναγράφεται στην Public Suffix List (publicsuffix.org), μια λίστα που ξεκίνησε η Mozilla και τη συντηρεί πλέον η κοινότητα. Τα προγράμματα περιήγησης τη χρησιμοποιούν, μεταξύ άλλων, για να καθορίσουν ποιες ιστοσελίδες μπορούν να μοιράζονται cookies και για να αναδεικνύουν το σημαντικό μέρος μιας διεύθυνσης. Η λίστα περιέχει επίσης ένα τμήμα με «ιδιωτικές» καταλήξεις: υπηρεσίες όπου οι πελάτες λαμβάνουν δικό τους subdomain, όπως ορισμένες φιλοξενίες (hosting) για blogs και σελίδες έργων. Κάθε πελάτης εκεί μετράει ως ξεχωριστός ιδιοκτήτης.
Αν μια κατάληξη δεν υπάρχει στη λίστα, ισχύει ο προεπιλεγμένος κανόνας: η τελευταία ετικέτα είναι η κατάληξη. Γι' αυτό στο .example το registrable domain είναι πάντα οι δύο τελευταίες ετικέτες.
Κόλπα με subdomain, path και @
Τώρα που γνωρίζετε πού βρίσκεται ο ιδιοκτήτης, βλέπετε πώς οι επιτιθέμενοι παραπλανούν το μάτι σας. Τοποθετούν το όνομα που περιμένετε κάπου αλλού μέσα στον σύνδεσμο.
Κόλπο με subdomain.
https://mijnbank.example.inlog-check.example/loginΒλέπετε το mijnbank.example μπροστά. Όμως διαβάστε από τα δεξιά: η κατάληξη είναι example, το registrable domain είναι inlog-check.example και αυτό ανήκει στον επιτιθέμενο. Ο επιτιθέμενος αγόρασε αυτό το domain και έβαλε ο ίδιος μπροστά του το subdomain mijnbank.example.
Κόλπο με path.
https://inlog.example/mijnbank.example/klant/loginΗ host είναι inlog.example και τίποτα παραπάνω. Όλα όσα ακολουθούν την πρώτη μονή / είναι το path, και αυτό το επιλέγει ο ίδιος ο ιδιοκτήτης του inlog.example.
Κόλπο με @.
https://mijnbank.example@aanvaller.example/inloggenΜια URL μπορεί να περιέχει πριν από την host ένα τμήμα χρήστη, που κλείνει με @ (το πρότυπο για URL, RFC 3986, το ονομάζει userinfo). Όλα όσα βρίσκονται πριν από το @ δεν αποτελούν λοιπόν host. Το πρόγραμμα περιήγησης πηγαίνει στο aanvaller.example και πουθενά αλλού. Ορισμένα προγράμματα περιήγησης προειδοποιούν ή αφαιρούν το τμήμα χρήστη, αλλά μην το θεωρείτε δεδομένο.
Μια χρήσιμη σταθερή μέθοδος εργασίας: αναζητήστε την πρώτη / μετά το https://. Ό,τι βρίσκεται πριν από αυτήν είναι η host (ενδεχομένως με ένα τμήμα χρήστη και @). Αν υπάρχει @, τότε η host ξεκινά μόνο μετά από αυτό. Διαβάστε την host από τα δεξιά προς τα αριστερά μέχρι να βρείτε το registrable domain.
Lookalikes, typosquatting και punycode
Ένα lookalike είναι ένα δικό του domain που μοιάζει με αυτό κάποιου άλλου:
| Lookalike | Κόλπο |
|---|---|
rnijnbank.example | το rn μοιάζει σε πολλές γραμματοσειρές με το m |
mijnbnak.example | δύο γράμματα αντεστραμμένα (typosquatting: ποντάρισμα σε τυπογραφικό λάθος) |
mijnbank-veilig.example | μια λέξη επιπλέον με ενωτικό: ένα εντελώς διαφορετικό domain |
mijnbank-example.example | η τελεία αντικαθίσταται από ενωτικό |
mijnbank.example.inlog-check.example | το πραγματικό domain ως subdomain (δείτε παραπάνω) |
Ένα βήμα παραπέρα είναι το homograph: ένα domain με γράμματα από διαφορετικό αλφάβητο που φαίνονται ίδια. Το κυριλλικό а μοιάζει με το λατινικό a, αλλά για τον υπολογιστή είναι διαφορετικός χαρακτήρας. Τα domain names με τέτοιους χαρακτήρες ονομάζονται διεθνή domain names. Το DNS αναγνωρίζει μόνο γράμματα a έως z, αριθμούς και το ενωτικό, οπότε ένα τέτοιο όνομα μετατρέπεται σε punycode (RFC 3492): μια μορφή που ξεκινά με xn--.
mijnbаnk.example (με κυριλλικό а)
xn--mijnbnk-6fg.example (το ίδιο όνομα σε punycode)Αν δείτε xn-- σε μια διεύθυνση, αυτό το όνομα περιέχει χαρακτήρες εκτός a έως z. Αυτό μπορεί να είναι απολύτως φυσιολογικό (πολλές γλώσσες έχουν τόνους ή δικό τους αλφάβητο), αλλά σε ένα όνομα που κατά τα άλλα μοιάζει ολλανδικό ή αγγλικό, αποτελεί ισχυρό σήμα κινδύνου. Τα προγράμματα περιήγησης διαθέτουν κανόνες για να εμφανίζουν ύποπτους συνδυασμούς ως punycode: το Chrome, για παράδειγμα, εμφανίζει ένα όνομα με μικτή λατινική και κυριλλική γραφή ως xn--. Αλλά αυτοί οι κανόνες δεν καλύπτουν τα πάντα, και σε ένα email ή chat βλέπετε συχνά απλώς τα ευανάγνωστα γράμματα.
Συντομευτές και open redirects
Οι URL shorteners μετατρέπουν έναν μακρύ σύνδεσμο σε έναν σύντομο, όπως https://kort.example/a8Xk2. Χρήσιμο, αλλά δεν βλέπετε τον προορισμό. Το registrable domain του συνδέσμου ανήκει στον συντομευτή, όχι στον οργανισμό που περιμένετε. Μια τράπεζα ή προμηθευτής που σας ζητά να συνδεθείτε μέσω συντομευμένου συνδέσμου: μην το κάνετε.
Ένα open redirect είναι μια σελίδα σε μια πραγματική ιστοσελίδα που ανακατευθύνει τους επισκέπτες σε οποιαδήποτε διεύθυνση αναγράφεται μέσα στον σύνδεσμο:
https://mijnbank.example/doorsturen?naar=https://aanvaller.example/inloggenΗ host είναι όντως mijnbank.example, αλλά μετά από ένα κλικ βρίσκεστε στο aanvaller.example χωρίς να το αντιληφθείτε. Και με έναν συντομευτή ή έναν σύνδεσμο παρακολούθησης από υπηρεσία newsletter μπορεί να καταλήξετε κάπου αλλού από το αρχικό domain. Το μάθημα: κοιτάξτε ξανά τη γραμμή διευθύνσεων μετά το κλικ, πριν συμπληρώσετε οτιδήποτε. Και το λουκέτο; Αυτό δηλώνει μόνο ότι η σύνδεση είναι κρυπτογραφημένη. Ακόμη και οι ψεύτικες ιστοσελίδες διαθέτουν έγκυρο πιστοποιητικό.
Στην πράξη: έτσι μοιάζει
Σε έναν υπολογιστή, περνάτε το ποντίκι πάνω από έναν σύνδεσμο χωρίς να κάνετε κλικ: ο πραγματικός προορισμός εμφανίζεται κάτω αριστερά στο παράθυρο ή σε ένα πλαίσιο. Στα περισσότερα προγράμματα email και webmail αυτό λειτουργεί επίσης. Σε ένα τηλέφωνο, κρατήστε πατημένο τον σύνδεσμο: εμφανίζεται ένα μενού με τη διεύθυνση από πάνω. Μην επιλέξετε τότε «άνοιγμα».
Προσέξτε δύο παγίδες:
- Το ορατό κείμενο δεν είναι ο προορισμός. Σε ένα email, στο κουμπί ή στο κείμενο μπορεί να αναγράφεται
https://mijnbank.example, ενώ ο σύνδεσμος από κάτω οδηγεί σε εντελώς διαφορετική διεύθυνση. Μετράει μόνο αυτό που βλέπετε με το ποντίκι ή το παρατεταμένο πάτημα. - Οι μακριές διευθύνσεις κόβονται. Τα τηλέφωνα εμφανίζουν συχνά μόνο την αρχή. Έτσι χάνεται ακριβώς το σημαντικό τέλος. Κυλίστε ή πατήστε μέσα στη διεύθυνση για να τη δείτε ολόκληρη.
Αν έχετε αμφιβολίες, πληκτρολογήστε εσείς οι ίδιοι τη διεύθυνση που γνωρίζετε ή χρησιμοποιήστε τον σελιδοδείκτη σας. Η Εθνική Αρχή Κυβερνοασφάλειας παραπέμπει επίσης στις οδηγίες της, https://cyber.gov.gr/, για να ελέγξετε πρώτα έναν σύνδεσμο.
Σύνοψη
- Μόνο η host καθορίζει σε ποιον ανήκει μια ιστοσελίδα. Το path, το query και όλα όσα βρίσκονται πριν από ένα
@τα επιλέγει ο ίδιος ο επιτιθέμενος. - Το registrable domain είναι το public suffix συν μία ετικέτα. Χρησιμοποιήστε την Public Suffix List, όχι «τα δύο τελευταία κομμάτια» (σκεφτείτε το
co.uk). - Διαβάστε την host από τα δεξιά προς τα αριστερά. Το πραγματικό domain μπροστά ως subdomain είναι ένα κλασικό κόλπο.
- Lookalikes: αντιμετάθεση γραμμάτων, επιπλέον λέξεις, homographs. Το
xn--σημαίνει χαρακτήρες εκτός a έως z. - Οι συντομευτές κρύβουν τον προορισμό, τα open redirects σας ανακατευθύνουν. Κοιτάξτε ξανά τη γραμμή διευθύνσεων μετά από ένα κλικ.
Κουίζ
Άσκηση
Άσκηση A3.2: Εύρεση του registrable domain. Λαμβάνετε οκτώ συνδέσμους. Συμπληρώστε για κάθε σύνδεσμο το registrable domain και υποδείξτε αν ο σύνδεσμος ταιριάζει με τον πραγματικό οργανισμό. Το πρόγραμμα ελέγχει την απάντησή σας με την Public Suffix List.
Άσκηση A3.2b: Δύσκολοι σύνδεσμοι. Οκτώ σύνδεσμοι με κόλπα @, punycode, συντομευτές και σελίδες ανακατεύθυνσης. Συμπληρώστε για κάθε σύνδεσμο σε ποιο domain καταλήγετε, ή επιλέξτε «δεν φαίνεται».
Για περαιτέρω μελέτη
Τα βήματα στα άρθρα του WebOké ισχύουν για το περιβάλλον του WebOké· σε άλλους παρόχους η διαδικασία είναι παρόμοια.
- Είναι αυτό το email πραγματικά από την WebOké; Αναγνώριση phishing και χρήση του κωδικού προσφοράς
- Μάθημα DNS, σχετικά με τα domain names και πώς τα διαβάζετε: https://www.weboke.gr/dns-cursus
- Εθνική Αρχή Κυβερνοασφάλειας (Ολλανδία), Spoofing: https://cyber.gov.gr/
- Public Suffix List: https://publicsuffix.org/
- RFC 3986, η δομή μιας URL (μεταξύ άλλων το userinfo): https://www.rfc-editor.org/rfc/rfc3986
- RFC 3492, Punycode: https://www.rfc-editor.org/rfc/rfc3492
- Chromium, πότε το πρόγραμμα περιήγησης εμφανίζει ένα διεθνές όνομα ως punycode: https://chromium.googlesource.com/chromium/src/+/main/docs/idn.md
