Sådan løses SambaCry-sårbarhed (CVE-2017-7494) i Linux-systemer


Samba har længe været standarden for levering af delte fil- og udskrivningstjenester til Windows-klienter på * nix-systemer. Brugt af hjemmebrugere, mellemstore virksomheder og store virksomheder, det skiller sig ud som den bedste løsning i miljøer, hvor forskellige operativsystemer eksisterer sammen.

Som det desværre sker med bredt anvendte værktøjer, er de fleste Samba-installationer i fare for et angreb, der kan udnytte en kendt sårbarhed, som ikke blev anset for at være alvorlig, før WannaCry-ransomware-angrebet ramte nyheden for ikke så længe siden.

I denne artikel vil vi forklare, hvad denne Samba-sårbarhed er, og hvordan du beskytter de systemer, du er ansvarlig for, mod den. Afhængigt af din installationstype (fra arkiver eller fra kilde) bliver du nødt til at tage en anden tilgang for at gøre det.

Hvis du i øjeblikket bruger Samba i ethvert miljø eller kender nogen der gør det, så læs videre!

Sårbarheden

Forældede og ikke-patchede systemer er sårbare over for en ekstern kodeudførelsessårbarhed. Enkelt sagt betyder det, at en person med adgang til en skrivbar del kan uploade et stykke vilkårlig kode og udføre det med rodtilladelser på serveren.

Problemet er beskrevet på Samba-webstedet som CVE-2017-7494 og er kendt for at påvirke Samba-version 3.5 (udgivet i begyndelsen af marts 2010) og fremefter. Uofficielt er det blevet navngivet SambaCry på grund af dets ligheder med WannaCry: begge målretter mod SMB-protokollen og er potentielt wormable - hvilket kan få den til at sprede sig fra system til system.

Debian, Ubuntu, CentOS og Red Hat har taget hurtige skridt til at beskytte sine brugere og har frigivet patches til deres understøttede versioner. Derudover er der også leveret sikkerhedsmæssige løsninger til ikke-understøttede.

Opdaterer Samba

Som nævnt tidligere er der to tilgange, der skal følges afhængigt af den tidligere installationsmetode:

Hvis du installerede Samba fra din distributions opbevaringssteder.

Lad os se på, hvad du skal gøre i dette tilfælde:

Sørg for, at apt er indstillet til at få de seneste sikkerhedsopdateringer ved at tilføje følgende linjer til din kildeliste (/etc/apt/sources.list):

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

Opdater derefter listen over tilgængelige pakker:

# aptitude update

Endelig skal du sørge for, at versionen af samba-pakken matcher den version, hvor sårbarheden er rettet (se CVE-2017-7494):

# aptitude show samba

For at begynde skal du kontrollere for nye tilgængelige pakker og opdatere samba-pakken som følger:

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

Samba-versionerne, hvor rettelsen til CVE-2017-7494 allerede er anvendt, 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

Endelig kør følgende kommando for at kontrollere, at din Ubuntu-boks nu har den rigtige Samba-version installeret.

$ sudo apt-cache show samba

Den patchede Samba-version i EL 7 er samba-4.4.4-14.el7_3. For at installere det skal du gøre

# yum makecache fast
# yum update samba

Som før skal du sørge for, at du nu har den patchede Samba-version:

# yum info samba

Ældre, stadig understøttede versioner af CentOS og RHEL har også tilgængelige rettelser. Tjek RHSA-2017-1270 for at finde ud af mere.

Bemærk: Følgende procedure forudsætter, at du tidligere har bygget Samba fra kilden. Du opfordres stærkt til at prøve det udførligt i et testmiljø FØR du distribuerer det til en produktionsserver.

Derudover skal du sørge for at tage en sikkerhedskopi af filen smb.conf, før du starter.

I dette tilfælde vil vi også kompilere og opdatere Samba fra kilden. Inden vi begynder, skal vi dog sikre, at alle afhængigheder tidligere er installeret. Bemærk, at dette kan tage flere minutter.

# 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

Stop tjenesten:

# systemctl stop smbd

Download og fjern kilden (med 4.6.4 som den seneste version på tidspunktet for skrivningen):

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

For kun informative formål skal du kontrollere de tilgængelige konfigurationsindstillinger for den aktuelle udgivelse med.

# ./configure --help

Du kan inkludere nogle af de muligheder, der returneres med ovenstående kommando, hvis de blev brugt i den forrige build, eller du kan vælge at gå med standard:

# ./configure
# make
# make install

Til sidst skal du genstarte tjenesten.

# systemctl restart smbd

og bekræft, at du kører den opdaterede version:

# smbstatus --version

som skal returnere 4.6.4.

Generelle overvejelser

Hvis du kører en version, der ikke understøttes af en given distribution, og af en eller anden grund ikke er i stand til at opgradere til en nyere, kan du tage følgende forslag i betragtning:

  • Hvis SELinux er aktiveret, er du beskyttet!
  • Sørg for, at Samba-aktier er monteret med indstillingen noexec. Dette forhindrer udførelse af binære filer, der findes på det monterede filsystem.

Tilføje,

nt pipe support = no

til sektionen [global] i din smb.conf-fil, og genstart tjenesten. Det kan være en god idé at huske på, at dette “muligvis deaktiverer en vis funktionalitet i Windows-klienter” i henhold til Samba-projektet.

Vigtigt: Vær opmærksom på, at indstillingen "nt pipe support = no" deaktiverer aktier fra Windows-klienter. F.eks .: Når du skriver\10.100.10.2\fra Windows Stifinder på en samba-server, får du en tilladelse nægtet. Windows-klienter skal manuelt angive delingen som\10.100.10.2\share_name for at få adgang til delingen.

I denne artikel har vi beskrevet sårbarheden kendt som SambaCry, og hvordan man kan afbøde den. Vi håber, at du vil være i stand til at bruge disse oplysninger til at beskytte de systemer, du er ansvarlig for.

Hvis du har spørgsmål eller kommentarer til denne artikel, er du velkommen til at bruge nedenstående formular til at give os besked.