Kako popraviti SambaCry ranjivost (CVE-2017-7494) u Linux sistemima


Samba je dugo bila standard za pružanje usluga deljenih datoteka i štampanja Windows klijentima na *nix sistemima. Koriste ga podjednako kućni korisnici, srednje kompanije i velike kompanije, a ističe se kao najbolje rešenje u okruženjima u kojima koegzistiraju različiti operativni sistemi.

Kako se to nažalost događa sa široko korišćenim alatima, većina Samba instalacija je pod rizikom od napada koji bi mogao iskoristiti poznatu ranjivost, za koju se nije smatralo da je ozbiljna sve dok napad ransomware-a WannaCry nije došao previše u vijesti davno.

U ovom članku ćemo objasniti šta je ova Samba ranjivost i kako od nje zaštititi sisteme za koje ste odgovorni. Ovisno o vašem tipu instalacije (iz spremišta ili iz izvora), morat ćete poduzeti drugačiji pristup da to učinite.

Ako trenutno koristite Sambu u bilo kom okruženju ili znate nekoga ko to koristi, čitajte dalje!

Ranjivost

Zastarjeli i nezakrpljeni sistemi su ranjivi na ranjivost udaljenog izvršavanja koda. Jednostavnim riječima, to znači da osoba s pristupom share-u koji se može pisati može učitati dio proizvoljnog koda i izvršiti ga s root dozvolama na serveru.

Problem je opisan na veb lokaciji Samba kao CVE-2017-7494 i poznato je da utiče na verziju Sambe 3.5 (objavljenu početkom marta 2010.) i dalje. Nezvanično, nazvan je SambaCry zbog sličnosti sa WannaCry: oba ciljaju SMB protokol i potencijalno su crvljivi – što može uzrokovati njegovo širenje sa sistema na sistem.

Debian, Ubuntu, CentOS i Red Hat poduzeli su brze mjere kako bi zaštitili svoje korisnike i objavili zakrpe za svoje podržane verzije. Pored toga, obezbeđena su i bezbednosna rešenja za one koji nisu podržani.

Ažuriranje Sambe

Kao što je ranije spomenuto, postoje dva pristupa koja treba slijediti ovisno o prethodnoj metodi instalacije:

Ako ste instalirali Sambu iz spremišta vaše distribucije.

Pogledajmo šta trebate učiniti u ovom slučaju:

Popravi Sambacry u Debianu

Provjerite je li apt postavljen za dobivanje najnovijih sigurnosnih ažuriranja dodavanjem sljedećih redova na vašu listu izvora (/etc/apt/sources.list):

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

Zatim ažurirajte listu dostupnih paketa:

aptitude update

Na kraju, provjerite da li verzija samba paketa odgovara verziji u kojoj je ranjivost ispravljena (pogledajte CVE-2017-7494):

aptitude show samba

Popravi Sambacry u Ubuntu

Za početak, provjerite da li postoje novi dostupni paketi i ažurirajte samba paket na sljedeći način:

sudo apt-get update
sudo apt-get install samba

Verzije Sambe u kojima je popravak za CVE-2017-7494 već primijenjen su sljedeće:

  • 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

Konačno, pokrenite sljedeću naredbu da provjerite da li vaš Ubuntu box sada ima instaliranu odgovarajuću verziju Sambe.

sudo apt-cache show samba

Popravi Sambacry na CentOS/RHEL 7

Zakrpljena verzija Sambe u EL 7 je samba-4.4.4-14.el7_3. Da biste ga instalirali, uradite

yum makecache fast
yum update samba

Kao i prije, provjerite imate li sada zakrpljenu verziju Sambe:

yum info samba

Starije, još uvijek podržane verzije CentOS-a i RHEL-a također imaju dostupne popravke. Provjerite RHSA-2017-1270 da saznate više.

Ako ste instalirali Sambu iz izvora

Napomena: Sljedeća procedura pretpostavlja da ste prethodno izgradili Sambu iz izvora. Preporučujemo vam da ga opsežno isprobate u okruženju za testiranje PRE nego što ga primenite na proizvodni server.

Osim toga, pobrinite se da napravite sigurnosnu kopiju datoteke smb.conf prije nego što počnete.

U ovom slučaju, kompajlirat ćemo i ažurirati Sambu iz izvora. Prije nego što počnemo, međutim, moramo osigurati da su sve ovisnosti prethodno instalirane. Imajte na umu da ovo može potrajati nekoliko minuta.

U Debianu i Ubuntuu:

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

U CentOS 7 ili sličnom:

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

Zaustavite uslugu:

systemctl stop smbd

Preuzmite i raspakirajte izvor (sa 4.6.4 koja je bila najnovija verzija u vrijeme pisanja ovog teksta):

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

Samo u informativne svrhe, provjerite dostupne opcije konfiguracije za trenutno izdanje sa.

./configure --help

Možete uključiti neke od opcija koje je vratila gornja naredba ako su korištene u prethodnoj verziji, ili možete odabrati da idete sa zadanim:

./configure
make
make install

Konačno, ponovo pokrenite uslugu.

systemctl restart smbd

i provjerite da li koristite ažuriranu verziju:

smbstatus --version

koji bi trebao vratiti 4.6.4.

Opća razmatranja

Ako koristite nepodržanu verziju date distribucije i iz nekog razloga ne možete izvršiti nadogradnju na noviju, možda ćete htjeti uzeti u obzir sljedeće prijedloge:

  • Ako je SELinux omogućen, zaštićeni ste!
  • Uvjerite se da su Samba dionice montirane s opcijom noexec. Ovo će spriječiti izvršavanje binarnih datoteka koje se nalaze na montiranom sistemu datoteka.

Dodati,

nt pipe support = no

u [global] odjeljak vaše datoteke smb.conf i ponovo pokrenite uslugu. Možda biste trebali imati na umu da ovo „može onemogućiti neke funkcionalnosti u Windows klijentima“, prema Samba projektu.

Važno: Imajte na umu da bi opcija “nt pipe support=no” onemogućila popis dijeljenja sa Windows klijenata. Npr: Kada upišete \\10.100.10.2\ iz Windows Explorera na samba serveru, dobili biste odbijenu dozvolu. Windows klijenti bi morali ručno odrediti dijeljenje kao \\10.100.10.2\share_name da pristupe dijeljenju.

Sažetak

U ovom članku smo opisali ranjivost poznatu kao SambaCry i kako je ublažiti. Nadamo se da ćete moći koristiti ove informacije za zaštitu sistema za koje ste odgovorni.

Ako imate bilo kakvih pitanja ili komentara u vezi sa ovim člankom, slobodno upotrijebite obrazac ispod da nas obavijestite.