Etusivu: Kyberturvallisuuskeskus
Etusivu: Kyberturvallisuuskeskus
Valikko

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

Haavoittuvuus2/2021CVSS 8.1

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.

Kohde

  • Verkon aktiivilaitteet
  • Sulautetut järjestelmät
  • Palvelimet ja palvelinsovellukset

Hyökkäystapa

  • Etäkäyttö
  • Ilman kirjautumista

Vaikutukset

  • Palvelunestohyökkäys
  • Komentojen mielivaltainen suorittaminen
  • Tietojen muokkaaminen

Hyväksikäyttömenetelmä tiedossa

  • Haavoittuvuuden havainnollistava esimerkkikoodi

Ratkaisu

  • Korjaava ohjelmistopäivitys
  • Ongelman rajoittaminen

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.