DNSpooq-haavoittuvuusjoukko laajalti käytössä olevassa dnsmasq-ohjelmistossa | Traficom

DNSpooq-haavoittuvuusjoukko laajalti käytössä olevassa dnsmasq-ohjelmistossa

20. tammikuuta 2021 klo 13.02

DNSpooq-haavoittuvuusjoukko sisältää seitsemän eri haavoittuvuutta. Kolme mahdollistaa väärien tietojen syöttämisen paikallisen nimipalvelimen välimuistiin. Loput neljä voivat altistaa palvelunestohyökkäykselle tai mielivaltaisen koodin suorittamiselle.

dnsmasq on laajalti käytössä oleva, avoimen lähdekoodin paikallinen nimipalvelin. dnsmasq-ohjelmisto toimii paikallisena nimipalvelimena (DNS forwarder) yleensä koti- tai sisäverkon ja palveluntarjoajan nimipalvelimen välissä. Sen tehtävänä on myös pitää nimipalvelukyselyiden vastauksia välimuistissa, jotta usein käytettyjen palveluiden osoitetietoja ei tarvitse kysyä jokaista käyttäjää varten erikseen.

dnsmasq-ohjelmistoa käyttävät laitteissaan esimerkiksi Cisco, Aruba, Red Hat, Siemens, Ubiquiti, Comcast ja OpenWRT. Näiden lisäksi dnsmasq on sisällytetty moneen kotireitittimeen, IoT-laitteiseen sekä teollisen internetin ICS-laitteiseen.

Kaikkien näiden valmistajien kaikki laitteet eivät ole haavoittuvia. DNSpooq-haavoittuvuudet ilmenevät vain tietyillä ohjelmistoasetuksilla ja kun tietyt ominaisuudet on kytketty päälle.

Välimuistin manipulointi

Nimipalveluiden välimuistin manipulointi on hyökkäys, jossa käyttäjä saadaan tietämättään ottamaan yhteyttä hyökkääjän palvelimelle vaikka käyttäjä luulee ottavansa yhteyden pankkiinsa, sosiaalisen median palveluun tai sähköposteihinsa. Tämä hyökkäys tunnetaan myös “myrkytyshyökkäyksenä” (DNS cache poisoning).

Seuraavat DNSpooq-haavoittuvuudet liittyvät myrkytyshyökkäyksiin: CVE-2020-25686, CVE-2020-25684, CVE-2020-25685.

Tutkijoiden mukaan onnistunut myrkytyshyökkäys vaatii kaikkien kolmen haavoittuvuuden hyväksikäyttöä yhdessä. Lisäksi hyväksikäyttö vaatii noin puoli miljoonaa nimikyselyä hyvin pienessä ajassa.

Sellaiset dnsmasq-asennukset, joissa välimuistiominaisuudet eivät ole päällä, eivät ole haavoittuvia tälle hyväksikäytölle. Välimuistin kytkeminen pois päältä estää tämän haavoittuvuuden hyväksikäytön, mutta aiheuttaa lisäkuormaa verkon käytössä ja voi aiheuttaa viiveitä.

Tämä hyökkäys aiheuttaa suuren määrän nimipalvelukyselyitä, jotka on mahdollista havaita verkkotason monitoroinnilla.

Puskurin ylivuoto DNSSEC-käsittelyssä

DNSSEC on DNS-nimipalveluiden turvaominaisuus, jonka on tarkoitus estää aiemmin mainitut välimuistin myrkytyshyökkykset. dnsmasq-ohjelmiston DNSSEC-validoinnin käsittelyssä on kuitenkin löydetty neljä haavoittuvuutta, jotka itsessään aiheuttavat puskurin ylivuototilan. Puskurin ylivuototila voi johtaa palvelunestotilaan tai mielivaltaisen koodin suorittamiseen.

Seuraavat DNSpooq-haavoittuvuudet liityvät puskurin ylivuotoon DNSSEC-vastauksien käsittelyssä: CVE-2020-25687, CVE-2020-25683, CVE-2020-25682, CVE-2020-25681.

Vain ne laitteet, joissa dnsmasq-ohjelmiston DNSSEC-validointi on kytketty päälle, ovat haavoittuvia. Vaikka DNSSEC-ominaisuuksien kytkeminen pois päältä poistaa haavoittuvuuden, tulee se tehdä harkiten. Ominaisuuksien poiskytkennässä menettää DNSSECin tuomat tietoturvahyödyt ja altistaa verkkonsa välimuistin myrkytyshyökkäyksille.

Yhteisvaikutus

Tutkijat ovat arvioineet yksittäisten DNSpooq-haavoittuvuuksien CVSSv3-vakavuuksiksi 4.0 - 8.1. Yhdistelemällä osaa haavoittuvuuksista yhdeksi kokonaisuudeksi, muodostuu ketjun vakavuudeksi 9.8.

Yhdysvaltojen tietoturvaviranomainen CISA on yhteisvakavuudesta eri mieltä ja antaa kokonaisuuden vakavuudeksi 8.1.

Haavoittuvuuden kohde

  • dnsmasq - kaikki versiot ennen versiota 2.83
  • Eri valmistajien laitteet, joissa dnsmasq-ohjelmisto käytössä - katso tarkempi listaus tutkijoiden listauksesta.

Mistä on kysymys?

Ratkaisu:

  • Päivitä dnsmasq versioon 2.83

Rajoitus:

  • Väliaikaisesti kytke DNSSEC-validaatio-ominaisuudet pois käytöstä - tämä estää jälkimmäisen hyökkäyksen.
  • Väliaikaisesti rajoita sallittujen nimikyselyiden määrää (dns-forward-max) - tämä vaikeuttaa hyökkäyksen onnistumista huomattavasti.
  • Estä pääsy dnsmasq-ohjelmistoon julkisen internetin puolelta.

Huomionarvoista on, että dnsmasq on sisällytetty useaan teolliseen ja kuluttajalaitteeseen, joihin ei välttämättä käyttäjillä ole hallintaoikeuksia. Tällöin joudutaan odottamaan laitevalmistajien päivityksiä DNSpooq-haavoittuvuusjoukon korjaamiseksi.

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

Sulautetut järjestelmät

Sulautetun järjestelmän muodostavat laite ja sen sisältämä ohjelmisto yhdessä. Kuluttajien käyttämistä laitteista varsin monia voidaan pitää sulautettuina järjestelminä. Esimerkki tällaisesta on digitaalisten tv-lähetysten katselemiseen tarvittava digiboksi.

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.

Etäkäyttö

Etäkäyttöisesti tehtävän hyökkäyksen voi tehdä tietoverkkoyhteyden tai vastaavan kautta ilman että pääsee itse kohteena olevan järjestelmän luokse.

Ilman kirjautumista

Hyökkäys ei vaadi kohteena olevaan järjestelmään kirjautumista. Vastakohtana ovat sellaiset hyökkäykset, jotka vaativat käyttäjätunnuksen ja salasanan käyttöä ja esimerkiksi komentojen suorittamista järjestelmään kirjautuneena.

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

Komentojen mielivaltainen suorittaminen

Komentojen mielivaltaisen suorittamisen mahdollistavaa haavoittuvuutta on pidettävä vakavana, sillä se tarkoittaa sitä, että hyväksikäyttäjä voi käyttää kohteena olevaa järjestelmää aivan kuin sen tavallinen käyttäjäkin. Se voi johtaa myös siihen, että järjestelmään murtautunut hyökkääjä voi ladata verkon kautta järjestelmään omia ohjelmiaan suoritettavaksi.

Tietojen muokkaaminen

Järjestelmään talletettujen tietojen muokkaaminen ei välttämättä edellytä komentojen suorittamista, käyttövaltuuksien laajentamista tai järjestelmään kirjautumista. Esimerkiksi käyttämällä hyväksi www-palvelinohjelmiston haavoittuvuutta voi hyökkääjä luvatta muuttaa palvelimella näkyvien verkkosivujen sisältöä.

Haavoittuvuuden havainnollistava esimerkkikoodi

Proof of concept.

Korjaava ohjelmistopäivitys

Ohjelmisto- tai laitevalmistaja julkaisee tavallisesti pian uuden version tai osittaisen päivityksen ohjelmistoon tai käyttöjärjestelmään sen jälkeen kun haavoittuvuus on tullut julki. Päivitys voi olla saatavilla samalla kun haavoittuvuuskin julkaistaan, mutta usein sitä joudutaan odottelemaan jonkin aikaa.

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.