Модул 3 · 3.2
Четене на домейни и връзки @@OMSCHRИПЦИЯ@@ Научете как да откривате истинската цел на всяка връзка: регистрируем домейн, трикове с поддомейни, пътища, @, lookalikes, punycode и отворени пренасочвания.
Модул 3: Разпознаване на фишинг · Време за четене: 13 минути
Цел на урока: След този урок ще можете да определите истинската цел на всяка връзка: ще намирате регистрируемия домейн с помощта на публичния списък със суфикси и ще разпознавате трикове с поддомейни, пътища и @, lookalikes, punycode, съкратени връзки и отворени пренасочвания.
Основни понятия: URL, схема, host, регистрируем домейн, публичен суфикс, поддомейн, път, lookalike, typosquatting, хомограф, punycode (xn--), съкращаване на URL, отворено пренасочване (open redirect)
Съставните части на една връзка
Един уеб адрес се нарича URL. Той се състои от фиксирани части:
https://inlog.mijnbank.example:443/klant/overzicht?taal=nl#saldo| Част | В този пример | Какво прави |
|---|---|---|
| Схема | https | Как браузърът осъществява връзка |
| Host | inlog.mijnbank.example | С кой сървър общувате |
| Порт (рядко се вижда) | 443 | „Номерът на вратата“ на този сървър |
| Path | /klant/overzicht | Коя страница на този сървър |
| Query | ?taal=nl | Допълнителни данни за страницата |
| Fragment | #saldo | Конкретно място на страницата |
Host частта е единствената, която определя на кого принадлежи сайтът. Пътя, заявката и фрагмента ги определя собственикът на този host по свое усмотрение. Там може да стои какво ли не, включително името на друга организация.
Host частта се чете от дясно наляво, етикет по етикет. Краят е най-важен.
Регистрируемият домейн и публичният списък със суфикси
Не целият host показва кой е собственикът, а само една негова част: регистрируемият домейн. Това е името, което някой е регистрирал при регистратор. Всичко отляво на него са поддомейни, които собственикът създава сам, колкото пожелае.
За да намерите регистрируемия домейн, трябва да знаете къде всъщност можете сами да регистрирате име. Такава част се нарича публичен суфикс. Примери са com, nl и example, но също и co.uk: в Обединеното кралство дадена фирма регистрира име под co.uk. Регистрируемият домейн тогава е публичният суфикс плюс един етикет пред него.
| Host | Публичен суфикс | Регистрируем домейн |
|---|---|---|
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, който сега се поддържа от общността. Браузърите го използват, наред с другото, за да определят кои сайтове могат да споделят бисквитки и за да откроят важната част от адреса. Списъкът съдържа и секция с „частни“ (private) суфикси: услуги, при които клиентите получават собствен поддомейн, например определени платформи за блогове и проектни страници. Всеки клиент под такъв суфикс се брои за отделен собственик.
Ако даден суфикс не е в списъка, важи стандартното правило: последният етикет е суфиксът. Затова при .example регистрируемият домейн винаги са последните два етикета.
Трикове с поддомейн, път и @
Сега, след като знаете къде стои информацията за собственика, можете да видите как нападателите заблуждават очите Ви. Те поставят очакваното от Вас име на друго място във връзката.
Трик с поддомейн.
https://mijnbank.example.inlog-check.example/loginВиждате mijnbank.example в началото. Но четейки отдясно: суфиксът е example, регистрируемият домейн е inlog-check.example, а той принадлежи на нападателя. Нападателят е закупил този домейн и е поставил пред него поддомейн mijnbank.example.
Трик с път.
https://inlog.example/mijnbank.example/klant/loginHost частта е inlog.example и нищо повече. Всичко след първата единична / е пътят, а него избира собственикът на inlog.example по собствено усмотрение.
Трик с @.
https://mijnbank.example@aanvaller.example/inloggenЕдин URL може да съдържа потребителска част преди host частта, завършваща с @ (стандартът за URL адреси, RFC 3986, нарича това userinfo). Всичко преди @ следователно не е host. Браузърът отива към aanvaller.example и никъде другаде. Някои браузъри предупреждават или премахват потребителската част, но не разчитайте на това.
Полезен постоянен метод: намерете първата / след https://. Това, което стои пред нея, е host частта (евентуално с потребителска част и @). Ако има @, host частта започва едва след него. Четете host частта от дясно наляво, докато стигнете до регистрируемия домейн.
Lookalikes, typosquatting и punycode
Един lookalike е собствен домейн, който прилича на този на друга организация:
| Lookalike | Трик |
|---|---|
rnijnbank.example | rn прилича в много шрифтове на m |
mijnbnak.example | две разменени букви (typosquatting: залагане на правописна грешка) |
mijnbank-veilig.example | добавена дума с тире: напълно различен домейн |
mijnbank-example.example | точката заменена с тире |
mijnbank.example.inlog-check.example | истинският домейн като поддомейн (вижте по-горе) |
Една стъпка по-нататък е хомографът: домейн с букви от друга писмена система, които изглеждат еднакво. Кирилската „а“ изглежда като латинската „a“, но за компютъра е различен знак. Домейн имена с такива знаци се наричат международни домейн имена. DNS системата разпознава само букви от a до z, цифри и тирето, затова такова име се преобразува в punycode (RFC 3492): форма, която започва с xn--.
mijnbаnk.example (с кирилска а)
xn--mijnbnk-6fg.example (същото име в punycode)Ако видите xn-- в адрес, значи името съдържа знаци извън диапазона a до z. Това може да е напълно нормално (много езици имат ударения или собствена писменост), но при име, което иначе изглежда нидерландско или английско, това е силен сигнал за внимание. Браузърите имат правила за показване на подозрителни комбинации като punycode; например Chrome показва етикет със смесена латинска и кирилска писменост като xn--. Но тези правила не улавят всичко, а в имейл или чат често виждате просто спретнатите букви.
Съкратители на връзки и отворени пренасочвания
Съкратителите на URL адреси превръщат дълга връзка в кратка, например https://kort.example/a8Xk2. Удобно, но не виждате целта. Регистрируемият домейн на връзката принадлежи на съкратителя, не на организацията, която очаквате. Банка или доставчик, който Ви иска да влезете през съкратена връзка: не го правете.
Едно отворено пренасочване (open redirect) е страница на истински сайт, която пренасочва посетителите към всеки адрес, посочен във връзката:
https://mijnbank.example/doorsturen?naar=https://aanvaller.example/inloggenHost частта наистина е mijnbank.example, но след едно кликване се оказвате на aanvaller.example, без да го забележите. Както при съкратител, така и при проследяваща връзка от услуга за бюлетини може да се озовете другаде, различно от първоначалния домейн. Поуката: след кликване отново погледнете адресната лента, преди да попълните каквото и да било. А катинарчето? То само показва, че връзката е криптирана. И фалшивите сайтове имат валиден сертификат.
На практика: ето как изглежда
На компютър посочвате с мишката връзка, без да кликате; истинската цел се появява долу вляво в прозореца или в балонче. В повечето пощенски програми и уеб пощи това работи по същия начин. На телефон задръжте пръста върху връзката: ще се появи меню с адреса отгоре. Тогава не избирайте „отвори“.
Внимавайте за два капана:
- Видимият текст не е целта. В имейл бутонът или текстът може да показва
https://mijnbank.example, докато връзката отдолу води към съвсем друг адрес. Значение има само това, което виждате при посочване с мишка или при дълго задържане. - Дългите адреси се отрязват. Телефоните често показват само началото. Точно важният край тогава изчезва. Превъртете или докоснете в адреса, за да го видите изцяло.
Ако се съмнявате, въведете сами адреса, който познавате, или използвайте своя отметка. Нидерландският NCSC препраща и към checkjelinkje.nl, за да се провери връзка предварително.
Обобщение
- Само host частта определя на кого принадлежи даден сайт. Пътя, заявката и всичко преди
@ги избира нападателят по свое усмотрение. - Регистрируемият домейн е публичният суфикс плюс един етикет. Използвайте Public Suffix List, не „последните две части“ (помислете за
co.uk). - Четете host частта от дясно наляво. Истинският домейн в началото като поддомейн е класически трик.
- Lookalikes: размяна на букви, добавени думи, хомографи.
xn--означава знаци извън диапазона a до z. - Съкратителите скриват целта, отворените пренасочвания Ви пренасочват. Погледнете отново адресната лента след кликване.
Тест (quiz)
Задача
Задача A3.2: Намиране на регистрируемия домейн. Получавате осем връзки. За всяка връзка попълнете регистрируемия домейн и посочете дали връзката отговаря на истинската организация. Програмата проверява отговора Ви с помощта на Public Suffix List.
Задача A3.2b: Коварни връзки. Осем връзки с трикове чрез @, punycode, съкратители и страници за пренасочване. За всяка връзка попълнете до кой домейн се стига, или изберете „не може да се определи“.
Прочетете още
Стъпките в статиите на WebOké важат за средата на WebOké; при други доставчици процесът е сходен.
- Това имейл съобщение истинско ли е от WebOké? Разпознаване на фишинг и използване на кода за промоцията
- Курс по DNS, за домейн имена и как да ги четете: https://www.weboke.nl/bg/dns-cursus
- Нидерландският NCSC, Spoofing: https://www.ncsc.nl/phishing/spoofing
- 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
