Moduuli 3 · 3.2
Verkkotunnusten ja linkkien lukeminen
Moduuli 3: Tietojenkalastelun tunnistaminen · Lukuaika: 13 minuuttia
Tavoite: Tämän oppitunnin jälkeen osaat määrittää minkä tahansa linkin todellisen kohteen: löydät rekisteröitävissä olevan verkkotunnuksen julkisen suffiksilistan avulla ja tunnistat ala-aluetason-, polku- ja @-temput, näköisdomainit, punycoden, lyhentäjät ja avoimet uudelleenohjaukset.
Keskeiset käsitteet: URL, skeema, host, rekisteröitävissä oleva verkkotunnus, julkinen suffiksi, ala-aluetaso (subdomain), polku, näköisdomain, typosquatting, homografi, punycode (xn--), URL-lyhentäjä, avoin uudelleenohjaus (open redirect)
Linkin osat
Verkko-osoitetta kutsutaan URL:ksi. Se koostuu kiinteistä osista:
https://inlog.mijnbank.example:443/klant/overzicht?taal=nl#saldo| Osa | Tässä esimerkissä | Mitä se tekee |
|---|---|---|
| Skeema | https | Miten selain muodostaa yhteyden |
| Host | inlog.mijnbank.example | Minkä palvelimen kanssa olet yhteydessä |
| Portti (näkyy harvoin) | 443 | Palvelimen "ovinumero" |
| Polku | /klant/overzicht | Mikä sivu palvelimella |
| Kysely | ?taal=nl | Lisätietoa sivulle |
| Fragmentti | #saldo | Tietty kohta sivulla |
Host on ainoa osa, joka määrittää kenen sivustosta on kyse. Polun, kyselyn ja fragmentin sisällön päättää hostin omistaja itse. Siellä voi siis lukea mitä tahansa, myös toisen organisaation nimi.
Host luetaan oikealta vasemmalle, osa kerrallaan. Loppu on tärkein.
Rekisteröitävissä oleva verkkotunnus ja julkinen suffiksilista
Koko host ei kerro omistajaa, vaan vain yksi sen osa: rekisteröitävissä oleva verkkotunnus. Se on nimi, jonka joku on rekisteröinyt rekisterinpitäjän kautta. Kaikki sen vasemmalla puolella olevat osat ovat ala-aluetasoja (subdomaineja), ja omistaja voi luoda niitä niin paljon kuin haluaa.
Rekisteröitävissä olevan verkkotunnuksen löytämiseksi on tiedettävä, mihin kohtaan voi itse rekisteröidä nimen. Tätä osaa kutsutaan julkiseksi suffiksiksi. Esimerkkejä ovat com, nl ja example, mutta myös co.uk: Isossa-Britanniassa yritys rekisteröi nimen kohtaan co.uk alle. Rekisteröitävissä oleva verkkotunnus on tällöin julkinen suffiksi plus yksi osa sen edessä.
| Host | Julkinen suffiksi | Rekisteröitävissä oleva verkkotunnus |
|---|---|---|
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 |
Nyrkkisääntö "ota viimeiset kaksi osaa" menee siis pieleen. Osoitteesta www.shop.[naam].co.uk saisit co.uk, joka ei kuulu kenellekään erityisesti. Ja viimeinen esimerkki osoittaa, että co.uk nimen keskellä ei tarkoita mitään: siinä omistaja on uk.example.
Mitkä suffiksit ovat julkisia, löytyy Public Suffix Lististä (publicsuffix.org), listasta jonka Mozilla aloitti ja jota nyt ylläpitää yhteisö. Selaimet käyttävät sitä muun muassa päättämään, mitkä sivustot saavat jakaa evästeitä ja korostamaan osoitteen tärkeän osan. Listassa on myös "yksityinen" osa: palveluja, joissa asiakkaat saavat oman ala-aluetason, kuten jotkin blogi- ja projektisivustojen webhotellit. Jokainen asiakas sen alla lasketaan erilliseksi omistajaksi.
Jos suffiksi ei ole listassa, pätee oletussääntö: viimeinen osa on suffiksi. Siksi .example-tunnuksissa rekisteröitävissä oleva verkkotunnus on aina viimeiset kaksi osaa.
Temput ala-aluetasolla, polulla ja @-merkillä
Nyt kun tiedät, missä omistajan tieto sijaitsee, näet miten hyökkääjät harhauttavat silmäsi. He laittavat odottamasi nimen linkin muuhun kohtaan.
Ala-aluetason temppu.
https://mijnbank.example.inlog-check.example/loginNäet mijnbank.example edessä. Mutta lue oikealta: suffiksi on example, rekisteröitävissä oleva verkkotunnus on inlog-check.example ja se kuuluu hyökkääjälle. Hyökkääjä on ostanut tämän verkkotunnuksen ja luonut siihen itse ala-aluetason mijnbank.example.
Polkutemppu.
https://inlog.example/mijnbank.example/klant/loginHost on inlog.example eikä mitään muuta. Kaikki ensimmäisen yksittäisen /-merkin jälkeen on polku, ja sen sisällön päättää inlog.example-tunnuksen omistaja itse.
@-temppu.
https://mijnbank.example@aanvaller.example/inloggenURL voi sisältää ennen hostia käyttäjäosan, joka päättyy merkkiin @ (URL-standardi, RFC 3986, kutsuu tätä nimellä userinfo). Kaikki ennen @-merkkiä ei siis ole hostia. Selain siirtyy osoitteeseen aanvaller.example eikä mihinkään muualle. Jotkin selaimet varoittavat tai poistavat käyttäjäosan, mutta älä luota siihen.
Kätevä vakiomenetelmä: etsi ensimmäinen /-merkki osan https:// jälkeen. Mitä sitä ennen on, on host (mahdollisesti käyttäjäosan ja @-merkin kanssa). Jos siellä on @-merkki, host alkaa vasta sen jälkeen. Lue host oikealta vasemmalle, kunnes löydät rekisteröitävissä olevan verkkotunnuksen.
Näköisdomainit, typosquatting ja punycode
Näköisdomain on oma verkkotunnus, joka muistuttaa toisen omistamaa tunnusta:
| Näköisdomain | Temppu |
|---|---|
rnijnbank.example | rn näyttää monissa fonteissa samalta kuin m |
mijnbnak.example | kaksi kirjainta vaihdettu keskenään (typosquatting: veikataan kirjoitusvirhettä) |
mijnbank-veilig.example | sana lisätty yhdysviivalla: täysin eri verkkotunnus |
mijnbank-example.example | piste vaihdettu yhdysviivaksi |
mijnbank.example.inlog-check.example | aito verkkotunnus ala-aluetasona (ks. yllä) |
Seuraava askel on homografi: verkkotunnus, jossa käytetään toisen kirjoitusjärjestelmän kirjaimia, jotka näyttävät samalta. Kyrillinen а näyttää samalta kuin latinalainen a, mutta tietokoneelle se on eri merkki. Tällaisia merkkejä sisältäviä verkkotunnuksia kutsutaan kansainvälisiksi verkkotunnuksiksi. DNS tuntee vain kirjaimet a-z, numerot ja yhdysviivan, joten tällainen nimi muunnetaan punycodeksi (RFC 3492): muotoon, joka alkaa merkeillä xn--.
mijnbаnk.example (kyrillisellä а-kirjaimella)
xn--mijnbnk-6fg.example (sama nimi punycodena)Jos näet osoitteessa merkinnän xn--, nimi sisältää merkkejä a-z-alueen ulkopuolelta. Tämä voi olla täysin normaalia (monissa kielissä on aksentteja tai omia kirjoitusjärjestelmiä), mutta muuten suomalaiselta tai englantilaiselta näyttävässä nimessä se on vahva varoitusmerkki. Selaimilla on säännöt, joiden mukaan epäilyttävät yhdistelmät näytetään punycodena; Chrome näyttää esimerkiksi latinalaisen ja kyrillisen kirjoitusjärjestelmän sekoituksen muodossa xn--. Nämä säännöt eivät kuitenkaan kata kaikkea, ja sähköpostissa tai chatissa näet usein vain siistit kirjaimet.
Lyhentäjät ja avoimet uudelleenohjaukset
URL-lyhentäjät muuttavat pitkän linkin lyhyeksi, kuten https://kort.example/a8Xk2. Kätevää, mutta et näe kohdetta. Linkin rekisteröitävissä oleva verkkotunnus kuuluu lyhentäjälle, ei organisaatiolle jota odotat. Jos pankki tai toimittaja pyytää sinua kirjautumaan lyhennetyn linkin kautta: älä tee niin.
Avoin uudelleenohjaus (open redirect) on sivu aidolla sivustolla, joka ohjaa kävijät mihin tahansa linkissä mainittuun osoitteeseen:
https://mijnbank.example/doorsturen?naar=https://aanvaller.example/inloggenHost on aidosti mijnbank.example, mutta yhden klikkauksen jälkeen olet osoitteessa aanvaller.example huomaamattasi. Myös lyhentäjän tai uutiskirjepalvelun seurantalinkin kautta saatat päätyä muualle kuin ensimmäiseen verkkotunnukseen. Opetus: tarkista osoiterivi uudelleen klikkauksen jälkeen, ennen kuin täytät mitään. Entä lukkokuvake? Se kertoo vain, että yhteys on salattu. Myös huijaussivustoilla voi olla pätevä varmenne.
Käytännössä: näin se näyttää
Tietokoneella viet hiiren linkin päälle klikkaamatta; todellinen kohde näkyy ikkunan vasemmassa alakulmassa tai kuplassa. Useimmissa sähköpostiohjelmissa ja webmailissa tämä toimii myös. Puhelimella pidä linkkiä painettuna: saat valikon, jonka yläpuolella osoite näkyy. Älä silloin valitse "avaa".
Varo kahta sudenkuoppaa:
- Näkyvä teksti ei ole kohde. Sähköpostissa painikkeessa tai tekstissä saattaa lukea
https://mijnbank.example, vaikka sen alla oleva linkki vie aivan toiseen osoitteeseen. Vain se, mitä näet hiiren viennillä tai pitkällä painalluksella, on luotettavaa. - Pitkät osoitteet katkeavat. Puhelimet näyttävät usein vain alun. Juuri tärkeä loppuosa jää silloin näkymättä. Vieritä tai napauta osoitetta nähdäksesi sen kokonaan.
Jos epäilet, kirjoita itse tuntemasi osoite tai käytä kirjanmerkkiä. Traficomin Kyberturvallisuuskeskus suosittelee myös tarkistamaan linkin ensin.
Yhteenveto
- Vain host määrittää kenen sivustosta on kyse. Polun, kyselyn ja kaiken ennen
@-merkkiä päättää hyökkääjä itse. - Rekisteröitävissä oleva verkkotunnus on julkinen suffiksi plus yksi osa. Käytä Public Suffix Listiä, älä "viimeistä kahta osaa" (muista
co.uk). - Lue host oikealta vasemmalle. Aito verkkotunnus edessä ala-aluetasona on klassinen temppu.
- Näköisdomainit: kirjainten vaihtaminen, ylimääräiset sanat, homografit.
xn--tarkoittaa merkkejä a-z-alueen ulkopuolelta. - Lyhentäjät piilottavat kohteen, avoimet uudelleenohjaukset ohjaavat sinut eteenpäin. Tarkista osoiterivi uudelleen klikkauksen jälkeen.
Tietovisa
Tehtävä
Tehtävä A3.2: Rekisteröitävissä olevan verkkotunnuksen löytäminen. Saat kahdeksan linkkiä. Täytä jokaisen linkin kohdalle rekisteröitävissä oleva verkkotunnus ja ilmoita, vastaako linkki aitoa organisaatiota. Ohjelma tarkistaa vastauksesi Public Suffix Listin avulla.
Tehtävä A3.2b: Hankalat linkit. Kahdeksan linkkiä @-tempuilla, punycodella, lyhentäjillä ja uudelleenohjaussivuilla. Täytä kunkin linkin kohdalle, mihin verkkotunnukseen päädyt, tai valitse "ei nähtävissä".
Lue lisää
WebOké-artikkeleiden vaiheet pätevät WebOkén ympäristössä; muilla palveluntarjoajilla toiminta on vastaavaa.
- Onko tämä sähköposti oikeasti WebOkélta? Tunnista tietojenkalastelu ja käytä etukoodia
- DNS-kurssi, verkkotunnuksista ja niiden lukemisesta: https://www.weboke.fi/dns-cursus
- Traficomin Kyberturvallisuuskeskus, huijaussivustoista: https://www.kyberturvallisuuskeskus.fi/
- Public Suffix List: https://publicsuffix.org/
- RFC 3986, URL:n rakenne (muun muassa userinfo): https://www.rfc-editor.org/rfc/rfc3986
- RFC 3492, Punycode: https://www.rfc-editor.org/rfc/rfc3492
- Chromium, milloin selain näyttää kansainvälisen nimen punycodena: https://chromium.googlesource.com/chromium/src/+/main/docs/idn.md
