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

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

16. joulukuuta 2019 klo 15.54

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-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.
 

Haavoittuvuuden kohde

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)
     

Mistä on kysymys?

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
  • Ota käyttöön "bogon filtering", eli filtteröi pois väärät IP-osoitteet. Lisää tietoa esimerkiksi Ubuntun ohjeessa.
  • Lisää palomuuriin suodatussääntö, joka pudottaa prerouting-vaiheessa VPN:n virtuaali-IP-osoitteeseen saapuvat paketit. Esimerkkejä löytyy Wireguardin postituslistalta.

OpenBSD

Wireguard

Mitä voin tehdä?

Työasemat ja loppukäyttäjäsovellukset

Työasemien ja tavallisten käyttäjien sovellusten haavoittuvuudet koskevat usein monia käyttäjiä. Kohteena voi olla esimerkiksi Windows-käyttöjärjestelmä tai tekstinkäsittelyohjelma. Ero palvelinsovellusten ja loppukäyttäjäsovellusten välillä on joskus häilyvä, esimerkiksi samaa käyttöjärjestelmää voidaan käyttää sekä palvelimessa että työasemassa.

Verkon aktiivilaitteet

Verkon aktiivilaitteilla tarkoitetaan sellaisia laitteita, jotka ovat yleensä tavallisen käyttäjän näkymättömissä, kuten esimerkiksi reitittimet, kytkimet ja palomuurit. Nämä laitteet ja niiden ohjelmistot välittävät tai suodattavat verkkoliikennettä.

Palvelimet ja palvelinsovellukset

Palvelinten ja palvelinohjelmistojen haavoittuvuudet koskevat esimerkiksi sähköisten asiointipalvelujen tarjoajia. Tyypillisiä kohteita ovat palvelinten käyttöjärjestelmät ja www- tai sähköpostipalvelinohjelmistot kuten esimerkiksi SunOS, Linux, Apache, IIS tai Sendmail.

Palvelunestohyökkäys

Palvelunestohyökkäyksen tarkoituksena on estää kohdejärjestelmää toimimasta siinä tehtävässä mihin se on tarkoitettu. Hyökkäyksen tarkoituksena voi olla esimerkiksi www- tai sähköpostipalvelimen kuormittaminen runsaalla verkkoliikenteellä.

Suojauksen ohittaminen

Suojauksen ohittamisella tarkoitetaan sitä, että haavoittuvuutta hyväksikäyttämällä ohitetaan järjestelmän käytön rajoittamiseksi tehty suojaus esimerkiksi liikennöimällä palomuurin ohi suojattuun verkkoon.

Luottamuksellisen tiedon hankkiminen

Luottamuksellisten tietojen hankkiminen kohdejärjestelmästä edellyttää sitä, että sen tietosisältöä, esimerkiksi kiintolevylle talletettuja tiedostoja, pääsee lukemaan luvatta ja välittämään edelleen.

Haavoittuvuuden havainnollistava esimerkkikoodi

Proof of concept.

Ongelman rajoittaminen

Vaikka varsinaista korjausta haavoittuvuuteen ei aina ole saatavilla, sen vaikutuksia voidaan useimmiten rajoittaa esimerkiksi pidättäytymällä tilapäisesti jonkin ominaisuuden käytöstä tai rajoittamalla verkkoliikennettä kohdejärjestelmään sopivasti.

Ei päivitystä

Haavoittuvuuden tultua julki ei korjausta siihen ole välttämättä heti saatavilla. Kohdejärjestelmät ovat alttiita haavoittuvuuden hyväksikäytölle jos niiden suojaamiseksi ei ryhdytä toimenpiteisiin.