Zoeken op website

Hoe u een SambaCry-kwetsbaarheid (CVE-2017-7494) in Linux-systemen kunt oplossen


Samba is lange tijd de standaard geweest voor het leveren van gedeelde bestands- en afdrukservices aan Windows-clients op *nix-systemen. Het wordt gebruikt door thuisgebruikers, middelgrote bedrijven en grote bedrijven en onderscheidt zich als dé oplossing in omgevingen waar verschillende besturingssystemen naast elkaar bestaan.

Zoals helaas gebeurt met veelgebruikte tools, lopen de meeste Samba-installaties het risico van een aanval die misbruik kan maken van een bekende kwetsbaarheid, die niet als ernstig werd beschouwd totdat de WannaCry ransomware-aanval niet al te veel in het nieuws kwam. lang geleden.

In dit artikel leggen wij uit wat deze Samba-kwetsbaarheid is en hoe u de systemen waarvoor u verantwoordelijk bent hiertegen kunt beschermen. Afhankelijk van uw installatietype (vanaf repository's of van broncode), moet u hiervoor een andere aanpak kiezen.

Als je momenteel Samba in welke omgeving dan ook gebruikt, of iemand kent die dat doet, lees dan verder!

De kwetsbaarheid

Verouderde en niet-gepatchte systemen zijn kwetsbaar voor een kwetsbaarheid voor het uitvoeren van externe code. Simpel gezegd betekent dit dat een persoon met toegang tot een beschrijfbare share een stukje willekeurige code kan uploaden en dit met root-rechten op de server kan uitvoeren.

Het probleem wordt op de Samba-website beschreven als CVE-2017-7494 en het is bekend dat het van invloed is op Samba-versies 3.5 (uitgebracht begin maart 2010) en hoger. Onofficieel heet het SambaCry vanwege de overeenkomsten met WannaCry: beide richten zich op het SMB-protocol en zijn potentieel wormbaar – waardoor het zich van systeem naar systeem kan verspreiden.

Debian, Ubuntu, CentOS en Red Hat hebben snel actie ondernomen om hun gebruikers te beschermen en hebben patches uitgebracht voor hun ondersteunde versies. Daarnaast zijn er ook beveiligingsoplossingen geboden voor niet-ondersteunde oplossingen.

Samba bijwerken

Zoals eerder vermeld, zijn er twee benaderingen die moeten worden gevolgd, afhankelijk van de vorige installatiemethode:

Als u Samba hebt geïnstalleerd vanuit de repository's van uw distributie.

Laten we eens kijken wat u in dit geval moet doen:

Sambacry in Debian repareren

Zorg ervoor dat apt is ingesteld om de nieuwste beveiligingsupdates te ontvangen door de volgende regels toe te voegen aan uw bronnenlijst (/etc/apt/sources.list):

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

Werk vervolgens de lijst met beschikbare pakketten bij:

aptitude update

Zorg er ten slotte voor dat de versie van het sambapakket overeenkomt met de versie waarin de kwetsbaarheid is verholpen (zie CVE-2017-7494):

aptitude show samba

Sambacry in Ubuntu repareren

Controleer om te beginnen of er nieuwe beschikbare pakketten zijn en werk het sambapakket als volgt bij:

sudo apt-get update
sudo apt-get install samba

De Samba-versies waarin de oplossing voor CVE-2017-7494 al is toegepast, zijn de volgende:

  • 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

Voer ten slotte de volgende opdracht uit om te verifiëren dat op uw Ubuntu-box nu de juiste Samba-versie is geïnstalleerd.

sudo apt-cache show samba

Sambacry repareren op CentOS/RHEL 7

De gepatchte Samba-versie in EL 7 is samba-4.4.4-14.el7_3. Om het te installeren, doe het

yum makecache fast
yum update samba

Zorg er net als voorheen voor dat je nu de gepatchte Samba-versie hebt:

yum info samba

Oudere, nog steeds ondersteunde versies van CentOS en RHEL hebben ook oplossingen beschikbaar. Raadpleeg RHSA-2017-1270 voor meer informatie.

Als u Samba vanaf de broncode hebt geïnstalleerd

Opmerking: Bij de volgende procedure wordt ervan uitgegaan dat je Samba eerder vanaf de broncode hebt gebouwd. U wordt sterk aangeraden om het uitgebreid uit te proberen in een testomgeving VOORDAT u het op een productieserver implementeert.

Zorg er bovendien voor dat u een back-up maakt van het bestand smb.conf voordat u begint.

In dit geval zullen we Samba ook vanaf de broncode compileren en bijwerken. Voordat we beginnen, moeten we er echter voor zorgen dat alle afhankelijkheden eerder zijn geïnstalleerd. Houd er rekening mee dat dit enkele minuten kan duren.

In Debian en Ubuntu:

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

In CentOS 7 of vergelijkbaar:

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

Stop de dienst:

systemctl stop smbd

Download de broncode en verwijder deze (waarbij 4.6.4 de nieuwste versie is op het moment dat dit wordt geschreven):

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

Uitsluitend voor informatieve doeleinden: controleer de beschikbare configuratieopties voor de huidige release met.

./configure --help

U kunt enkele van de opties opnemen die door de bovenstaande opdracht zijn geretourneerd als deze in de vorige build zijn gebruikt, of u kunt ervoor kiezen om voor de standaardinstelling te gaan:

./configure
make
make install

Start ten slotte de service opnieuw.

systemctl restart smbd

en controleer of u de bijgewerkte versie gebruikt:

smbstatus --version

wat 4.6.4 zou moeten retourneren.

Algemene Overwegingen

Als u een niet-ondersteunde versie van een bepaalde distributie gebruikt en om de een of andere reden niet kunt upgraden naar een recentere versie, kunt u wellicht rekening houden met de volgende suggesties:

  • Als SELinux is ingeschakeld, ben je beschermd!
  • Zorg ervoor dat Samba-shares zijn gekoppeld met de noexec-optie. Dit voorkomt de uitvoering van binaire bestanden die zich op het aangekoppelde bestandssysteem bevinden.

Toevoegen,

nt pipe support = no

naar het [global] gedeelte van uw smb.conf bestand en start de service opnieuw. Houd er misschien rekening mee dat dit “sommige functionaliteit in Windows-clients kan uitschakelen”, volgens het Samba-project.

Belangrijk: houd er rekening mee dat de optie “nt pipe support=no ” de aandelenlijst van Windows-clients zou uitschakelen. Bijv.: Wanneer u \\10.100.10.2\ typt vanuit Windows Verkenner op een samba-server, wordt de toestemming geweigerd. Windows-clients moeten de share handmatig opgeven als \\10.100.10.2\share_name om toegang te krijgen tot de share.

Samenvatting

In dit artikel hebben we de kwetsbaarheid beschreven die bekend staat als SambaCry en hoe deze kan worden verholpen. We hopen dat u deze informatie kunt gebruiken om de systemen waarvoor u verantwoordelijk bent te beschermen.

Als u vragen of opmerkingen heeft over dit artikel, kunt u het onderstaande formulier gebruiken om ons dit te laten weten.