Slik løser du SambaCry-sårbarheten (CVE-2017-7494) i Linux-systemer


Samba har lenge vært standarden for å tilby delte fil- og utskriftstjenester til Windows-klienter på *nix-systemer. Brukt av både hjemmebrukere, mellomstore bedrifter og store selskaper, skiller den seg ut som den beste løsningen i miljøer der forskjellige operativsystemer eksisterer side om side.

Som det dessverre skjer med mye brukte verktøy, er de fleste Samba-installasjoner utsatt for et angrep som kan utnytte en kjent sårbarhet, som ikke ble ansett for å være alvorlig før WannaCry-ransomware-angrepet traff nyhetene. lenge siden.

I denne artikkelen vil vi forklare hva denne Samba-sårbarheten er og hvordan du kan beskytte systemene du er ansvarlig for mot den. Avhengig av installasjonstypen din (fra depoter eller fra kilden), må du ta en annen tilnærming for å gjøre det.

Hvis du for øyeblikket bruker Samba i et hvilket som helst miljø eller kjenner noen som gjør det, les videre!

Sårbarheten

Utdaterte og uopprettede systemer er sårbare for et sikkerhetsproblem med ekstern kjøring av kode. Enkelt sagt betyr dette at en person med tilgang til en skrivbar del kan laste opp et stykke vilkårlig kode og kjøre det med root-tillatelser på serveren.

Problemet er beskrevet på Samba-nettstedet som CVE-2017-7494 og er kjent for å påvirke Samba versjon 3.5 (utgitt tidlig i mars 2010) og utover. Uoffisielt har den fått navnet SambaCry på grunn av dens likheter med WannaCry: både retter seg mot SMB-protokollen og er potensielt ormbare – noe som kan føre til at den sprer seg fra system til system.

Debian, Ubuntu, CentOS og Red Hat har tatt raske grep for å beskytte brukerne og har gitt ut oppdateringer for deres støttede versjoner. I tillegg er det også gitt sikkerhetsløsninger for de som ikke støttes.

Oppdaterer Samba

Som nevnt tidligere, er det to tilnærminger å følge avhengig av forrige installasjonsmetode:

Hvis du installerte Samba fra distribusjonens depoter.

La oss ta en titt på hva du trenger å gjøre i dette tilfellet:

Fiks Sambacry i Debian

Sørg for at apt er satt til å få de siste sikkerhetsoppdateringene ved å legge til følgende linjer i kildelisten din (/etc/apt/sources.list):

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

Deretter oppdaterer du listen over tilgjengelige pakker:

aptitude update

Til slutt, sørg for at versjonen av samba-pakken samsvarer med versjonen der sikkerhetsproblemet er rettet (se CVE-2017-7494):

aptitude show samba

Fiks Sambacry i Ubuntu

For å begynne, se etter nye tilgjengelige pakker og oppdater samba-pakken som følger:

sudo apt-get update
sudo apt-get install samba

Samba-versjonene der rettelsen for CVE-2017-7494 allerede er brukt, er følgende:

  • 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

Til slutt, kjør følgende kommando for å bekrefte at Ubuntu-boksen din nå har den riktige Samba-versjonen installert.

sudo apt-cache show samba

Fiks Sambacry på CentOS/RHEL 7

Den lappede Samba-versjonen i EL 7 er samba-4.4.4-14.el7_3. For å installere det, gjør det

yum makecache fast
yum update samba

Som før, sørg for at du nå har den lappede Samba-versjonen:

yum info samba

Eldre, fortsatt støttede versjoner av CentOS og RHEL har også tilgjengelige reparasjoner. Sjekk RHSA-2017-1270 for å finne ut mer.

Hvis du installerte Samba fra kilden

Merk: Følgende prosedyre forutsetter at du tidligere har bygget Samba fra kilden. Du oppfordres sterkt til å prøve den ut mye i et testmiljø FØR du distribuerer den til en produksjonsserver.

Sørg i tillegg for at du sikkerhetskopierer smb.conf-filen før du starter.

I dette tilfellet vil vi kompilere og oppdatere Samba fra kilden også. Før vi begynner, må vi imidlertid sikre at alle avhengighetene er installert på forhånd. Merk at dette kan ta flere minutter.

I Debian og 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

I CentOS 7 eller lignende:

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

Stopp tjenesten:

systemctl stop smbd

Last ned og fjern kilden (med 4.6.4 som den nyeste versjonen når dette skrives):

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

Bare for informative formål, sjekk de tilgjengelige konfigureringsalternativene for gjeldende utgivelse med.

./configure --help

Du kan inkludere noen av alternativene som returneres av kommandoen ovenfor hvis de ble brukt i forrige bygg, eller du kan velge å gå med standarden:

./configure
make
make install

Til slutt, start tjenesten på nytt.

systemctl restart smbd

og bekreft at du kjører den oppdaterte versjonen:

smbstatus --version

som skal returnere 4.6.4.

Generelle betraktninger

Hvis du kjører en versjon som ikke støttes av en gitt distribusjon og av en eller annen grunn ikke kan oppgradere til en nyere, kan det være lurt å ta følgende forslag i betraktning:

  • Hvis SELinux er aktivert, er du beskyttet!
  • Sørg for at Samba-aksjer er montert med noexec-alternativet. Dette vil forhindre kjøring av binærfiler som ligger på det monterte filsystemet.

Legg til,

nt pipe support = no

til [global]-delen av smb.conf-filen og start tjenesten på nytt. Det kan være lurt å huske på at dette "kan deaktivere noe funksjonalitet i Windows-klienter", i henhold til Samba-prosjektet.

Viktig: Vær oppmerksom på at alternativet «nt pipe support=no» vil deaktivere delingsoppføringer fra Windows-klienter. For eksempel: Når du skriver \\10.100.10.2\ fra Windows Utforsker på en samba-server, vil du få en tillatelse nektet. Windows-klienter må spesifisere delingen manuelt som \\10.100.10.2\share_name for å få tilgang til delingen.

Sammendrag

I denne artikkelen har vi beskrevet sårbarheten kjent som SambaCry og hvordan man kan redusere den. Vi håper at du vil kunne bruke denne informasjonen til å beskytte systemene du er ansvarlig for.

Hvis du har spørsmål eller kommentarer om denne artikkelen, bruk gjerne skjemaet nedenfor for å gi oss beskjed.