Kuinka korjata SambaCry-heikkous (CVE-2017-7494) Linux-järjestelmissä


Samba on pitkään ollut standardi jaettujen tiedosto- ja tulostuspalvelujen tarjoamisessa Windows-asiakkaille * nix -järjestelmissä. Kotikäyttäjien, keskisuurten yritysten ja suurten yritysten käyttämä se erottuu ratkaisuna ympäristöissä, joissa eri käyttöjärjestelmät ovat rinnakkain.

Kuten valitettavasti tapahtuu laajasti käytettyjen työkalujen kanssa, useimpiin Samba-asennuksiin liittyy uhka, joka saattaa hyödyntää tunnettua haavoittuvuutta, jota ei pidetty vakavana vasta, kun WannaCry-lunnasohjelmahyökkäys osui uutisiin liian kauan sitten.

Tässä artikkelissa selitämme, mikä tämä Samba-heikkous on ja miten suojaat vastuullasi olevat järjestelmät sitä vastaan. Asennustyypistäsi riippuen (arkistoista tai lähteestä), sinun on tehtävä eri lähestymistapa siihen.

Jos käytät tällä hetkellä Sambaa missä tahansa ympäristössä tai tunnet jonkun, joka käyttää, lue eteenpäin!

Haavoittuvuus

Vanhentuneet ja korjaamattomat järjestelmät ovat alttiita koodin etäsuorittamisen haavoittuvuudelle. Yksinkertaisesti sanottuna tämä tarkoittaa, että henkilö, jolla on pääsy kirjoitettavaan jakoon, voi ladata osan mielivaltaisesta koodista ja suorittaa sen palvelimen pääkäyttäjän oikeuksilla.

Asia on kuvattu Samban verkkosivustolla nimellä CVE-2017-7494, ja sen tiedetään vaikuttavan Samban versioihin 3.5 (julkaistu maaliskuun 2010 alussa) ja siitä eteenpäin. Epävirallisesti se on nimetty SambaCryksi, koska se on samankaltainen WannaCryn kanssa: molemmat kohdistavat SMB-protokollaan ja ovat potentiaalisesti madottavia - mikä voi aiheuttaa sen leviämisen järjestelmästä toiseen.

Debian, Ubuntu, CentOS ja Red Hat ovat ryhtyneet nopeasti toimiin käyttäjiensä suojaamiseksi ja julkaisseet korjaustiedostoja tuetuille versioilleen. Lisäksi tietoturvan kiertotavat on annettu myös tuetuille.

Päivitetään Samba

Kuten aiemmin mainittiin, edellisestä asennustavasta riippuen on noudatettava kahta lähestymistapaa:

Jos olet asentanut Samban jakelusi arkistoista.

Katsotaanpa, mitä sinun on tehtävä tässä tapauksessa:

Varmista, että apt on asetettu saamaan uusimmat tietoturvapäivitykset lisäämällä seuraavat rivit lähdeluetteloon (/etc/apt/sources.list):

deb http://security.debian.org stable/updates main
deb-src http://security.debian.org/ stable/updates main

Päivitä seuraavaksi käytettävissä olevien pakettien luettelo:

# aptitude update

Varmista lopuksi, että samba-paketin versio vastaa versiota, jossa haavoittuvuus on korjattu (katso CVE-2017-7494):

# aptitude show samba

Aluksi tarkista, onko käytettävissä uusia paketteja, ja päivitä samba-paketti seuraavasti:

$ sudo apt-get update
$ sudo apt-get install samba

Samba-versiot, joissa CVE-2017-7494: n korjausta on jo käytetty, ovat seuraavat:

  • 17.04: samba 2: 4.5.8 + dfsg-0ubuntu0.17.04.2
  • 16.10: samba 2: 4.4.5 + dfsg-2ubuntu5.6
  • 16.04 LTS: samba 2: 4.3.11 + dfsg-0ubuntu0.16.04.7
  • 14.04 LTS: samba 2: 4.3.11 + dfsg-0ubuntu0.14.04.8

Suorita lopuksi seuraava komento varmistaaksesi, että Ubuntu-ruutuun on asennettu oikea Samba-versio.

$ sudo apt-cache show samba

Korjattu Samba-versio EL 7: ssä on samba-4.4.4-14.el7_3. Asenna se tekemällä

# yum makecache fast
# yum update samba

Kuten aiemmin, varmista, että sinulla on nyt korjattu Samba-versio:

# yum info samba

CentOS: n ja RHEL: n vanhemmilla, edelleen tuetuilla versioilla on myös korjauksia. Katso lisätietoja RHSA-2017-1270: stä.

Huomaa: Seuraava toimenpide olettaa, että olet aiemmin rakentanut Samban lähteestä. Suosittelemme, että kokeilet sitä laajasti testausympäristössä ENNEN sen käyttöönottoa tuotantopalvelimelle.

Varmista lisäksi, että varmuuskopioit smb.conf-tiedoston ennen aloittamista.

Tässä tapauksessa kootaan ja päivitetään Samba myös lähteestä. Ennen kuin aloitamme, meidän on kuitenkin varmistettava, että kaikki riippuvuudet on asennettu aiemmin. Huomaa, että tämä voi kestää useita minuutteja.

# aptitude install acl attr autoconf bison build-essential \
    debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user \
    libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \
    libcap-dev libcups2-dev libgnutls28-dev libjson-perl \
    libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \
    libpopt-dev libreadline-dev perl perl-modules pkg-config \
    python-all-dev python-dev python-dnspython python-crypto xsltproc \
    zlib1g-dev libsystemd-dev libgpgme11-dev python-gpgme python-m2crypto
# yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
    libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
    perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
    python-crypto gnutls-devel libattr-devel keyutils-libs-devel \
    libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
    pam-devel popt-devel python-devel readline-devel zlib-devel

Pysäytä palvelu:

# systemctl stop smbd

Lataa ja poista lähde (4.6.4 on uusin versio tämän kirjoituksen aikaan):

# wget https://www.samba.org/samba/ftp/samba-latest.tar.gz 
# tar xzf samba-latest.tar.gz
# cd samba-4.6.4

Tarkista vain tiedotustarkoituksessa nykyisen julkaisun käytettävissä olevat määritysvaihtoehdot.

# ./configure --help

Voit sisällyttää joitain yllä olevan komennon palauttamia vaihtoehtoja, jos niitä käytettiin edellisessä koontiversiossa, tai voit valita oletusarvon:

# ./configure
# make
# make install

Käynnistä palvelu lopuksi uudelleen.

# systemctl restart smbd

ja varmista, että käytät päivitettyä versiota:

# smbstatus --version

jonka pitäisi palata 4.6.4.

Yleiset näkökohdat

Jos käytät tietyn jakelun versiota, jota ei tueta etkä pysty päivittämään uudempaan jostain syystä, kannattaa ehkä ottaa huomioon seuraavat ehdotukset:

  • Jos SELinux on käytössä, olet suojattu!
  • Varmista, että Samba-osakkeet on liitetty noexec-vaihtoehtoon. Tämä estää liitettyyn tiedostojärjestelmään kuuluvien binääritiedostojen suorittamisen.

Lisätä,

nt pipe support = no

smb.conf-tiedoston [globaali] -osioon ja käynnistä palvelu uudelleen. Haluat ehkä pitää mielessä, että tämä "saattaa poistaa joitakin toimintoja Windows-asiakkaista" Samba-projektin mukaisesti.

Tärkeää: Huomaa, että vaihtoehto “nt pipe support = no” poistaa Windows-asiakkaiden osakelistauksen käytöstä. Esimerkki: Kun kirjoitat \\ 10.100.10.2\Windowsin Resurssienhallinnasta samba-palvelimelle, sait luvan evätä. Windows-asiakkaiden on määritettävä jako manuaalisesti \\ 10.100.10.2\share_name käyttääksesi jakoa.

Tässä artikkelissa olemme kuvanneet SambaCry-nimisen haavoittuvuuden ja sen lieventämisen. Toivomme, että pystyt käyttämään näitä tietoja suojaamaan järjestelmiä, joista olet vastuussa.

Jos sinulla on kysyttävää tai kommentteja tästä artikkelista, ilmoita meille alla olevalla lomakkeella.