Etusivu: Kyberturvallisuuskeskus
Siirry hakuun

TCP/IP-toteutuksista löydetty haavoittuvuus mahdollistaa saamaan tietoa VPN-yhteyksien tilasta ja liittämään dataa VPN-tunneloituun liikenteeseen

Haavoittuvuus23/2019

Linux-, Android-, macOS- ja muiden Unix-pohjaisten käyttöjärjestelmien verkkopinoista on löytynyt haavoittuvuus (CVE-2019-14899), jonka avulla on mahdollista saada tietoa laitteista ja VPN-yhteyksien tilasta ja mahdollisesti liittää VPN-tunneloituun liikenteeseen hyökkääjän kontrolloimaa dataa.

Haavoittuvuuden tarkempi kuvaus

Haavoittuvuus perustuu TCP/IP-pinon toteutuksessa olevaan ominaisuuteen, jossa päätelaitteella on useita IP-osoitteita. Tällöin RFC 1122 (Ulkoinen linkki)-dokumentin mukaan toteutetut TCP/IP-toteutukset voivat valita, miten ne käsittelevät IP-paketteja, jotka saapuvat tietystä fyysisestä verkkosovittimesta, mutta joiden kohdeosoite ei vastaa kyseiseen sovittimeen määriteltyä verkkoa. Kyseiset paketit joko voidaan hylätä (Strong Host Model) tai käsitellä (Weak Host Model). Nyt löydetty haavoittuvuus koskee jälkimmäisellä tavalla konfiguroituja TCP/IP-toteutuksia, jotka vastaanottavat VPN-tunnelin ulkopuolelta tulleita manipuloituja paketteja kuin ne olisivat tulleet tunnelista.

Tämän hetken tietojen perusteella manipulointi tapahtuu väärentämällä lähteen ja kohteen IP-osoitteet ja lähettämällä paketin tiettyyn haluttuun MAC-osoitteeseen, jotta paketti menee halutulle väärälle verkkoliittimelle (kuten eth0 tai wlan0).

Manipuloituja paketteja lähettämällä on mahdollista selvittää ensin uhrilaitteen IP-osoite VPN-tunnelissa seuraamalla pakettien kokoa VPN-liikenteessä. Kun osoite on selvitetty, hyökkääjä voi vastaavalla tavalla selvittää tietyn yhteyden ACK-järjestysnumeron. Tämän jälkeen hän voi syöttää haluamaansa dataa TCP-yhteyteen uhrin suuntaan. Hyökkäyksen avulla voi myös selvittää, ottaako uhri yhteyttä tiettyyn palvelimeen tai verkkosivuun.

Hyökkäyksen edellytyksenä on mahdollisuus kuunnella VPN-liikennettä sekä mahdollisuus lähettää muokattuja paketteja kohteelle. Käytännössä tämä tarkoittaa, että hyökkääjän on oltava samassa Ethernet-verkossa (esim. langattomat tai langalliset julkiset- ja vierasverkot) uhrin kanssa.

Hyökkäys toimii ainakin IPsec-, OpenVPN- ja Wireguard-protokollia käyttäviä VPN-tunneleita vastaan.

Haavoittuvuuksia hyväksikäyttävää hyökkäystä vastaan ei ole korjauksia, mutta erilaisia keinoja hyökkäyksen rajoittamiseksi on olemassa. Rajoituskeinoista on lisätietoja alempana.

Kun haavoittuvuuden löytäneet tutkijat julkaisevat aiheesta paperin, päivitämme tätä tiedotetta.

Yksinkertaistettu esimerkki haavoittuvuutta hyväksikäyttävästä hyökkäyksestä
Yksi esimerkki haavoittuvuuden hyväksikäytöstä

Kohde

  • Työasemat ja loppukäyttäjäsovellukset
  • Verkon aktiivilaitteet
  • Palvelimet ja palvelinsovellukset

Vaikutukset

  • Palvelunestohyökkäys
  • Suojauksen ohittaminen
  • Luottamuksellisen tiedon hankkiminen

Hyväksikäyttömenetelmä tiedossa

  • Haavoittuvuuden havainnollistava esimerkkikoodi

Ratkaisu

  • Ongelman rajoittaminen
  • Ei päivitystä

Haavoittuvat ohjelmistot

Tutkijat ovat testanneet onnistuneesti haavoittuvuuden hyväksikäyttöä seuraavissa käyttöjärjestelmissä. Muut Unix-pohjaiset käyttöjärjestelmät, kuten Android ja macOS ovat myös haavoittuvia.

  • Ubuntu 19.10 (systemd)
  • Fedora (systemd)
  • Debian 10.2 (systemd)
  • Arch 2019.05 (systemd)
  • Manjaro 18.1.1 (systemd)
  • Devuan (sysV init)
  • MX Linux 19 (Mepis+antiX)
  • Void Linux (runit)
  • Slackware 14.2 (rc.d)
  • Deepin (rc.d)
  • FreeBSD (rc.d)
  • OpenBSD (rc.d)

Ratkaisu- ja rajoitusmahdollisuudet

Linux

cat /proc/sys/net/ipv4/conf/default/rp_filter
  • ​​Näet itse verkkokortin interfacen arvon komennolla ($interface on haluttu verkkokortti, kuten eth0):
cat /proc/sys/net/ipv4/conf/$interface/rp_filter
  • Katso lisäksi kaikkien verkkokorttien arvot komennolla:
cat /proc/sys/net/ipv4/conf/all/rp_filter

OpenBSD

Wireguard

Lisätietoja