Vyhledávání na webu

Jak opravit chybu zabezpečení SambaCry (CVE-2017-7494) v systémech Linux


Samba je již dlouho standardem pro poskytování sdílených souborových a tiskových služeb klientům Windows na systémech *nix. Používají jej domácí uživatelé, středně velké podniky i velké společnosti a vyniká jako řešení v prostředí, kde vedle sebe existují různé operační systémy.

Jak se bohužel stává u široce používaných nástrojů, většina instalací Samby je vystavena riziku útoku, který může zneužít známou zranitelnost, která nebyla považována za závažnou, dokud se ve zprávách neobjevil ransomwarový útok WannaCry. dávno.

V tomto článku si vysvětlíme, co je tato zranitelnost Samby a jak proti ní chránit systémy, za které zodpovídáte. V závislosti na typu vaší instalace (z repozitářů nebo ze zdroje) budete muset k tomu zvolit jiný přístup.

Pokud v současné době používáte Sambu v jakémkoli prostředí nebo znáte někoho, kdo to dělá, čtěte dále!

Zranitelnost

Zastaralé a neopravené systémy jsou zranitelné vůči vzdálenému spuštění kódu. Jednoduše řečeno to znamená, že osoba s přístupem k zapisovatelné sdílené složce může nahrát kus libovolného kódu a spustit jej s oprávněními root na serveru.

Problém je popsán na webu Samba jako CVE-2017-7494 a je známo, že se týká verze Samby 3.5 (vydané začátkem března 2010) a novější. Neoficiálně byl pojmenován SambaCry kvůli jeho podobnosti s WannaCry: oba se zaměřují na protokol SMB a jsou potenciálně červivé – což může způsobit jeho šíření ze systému do systému.

Debian, Ubuntu, CentOS a Red Hat podnikly rychlé kroky na ochranu svých uživatelů a vydaly záplaty pro jejich podporované verze. Navíc byla poskytnuta řešení zabezpečení pro nepodporované.

Aktualizace Samby

Jak již bylo zmíněno dříve, v závislosti na předchozím způsobu instalace lze použít dva přístupy:

Pokud jste nainstalovali Sambu z repozitářů vaší distribuce.

Pojďme se podívat na to, co musíte v tomto případě udělat:

Opravte Sambacry v Debianu

Ujistěte se, že je apt nastaven na získávání nejnovějších aktualizací zabezpečení přidáním následujících řádků do seznamu zdrojů (/etc/apt/sources.list):

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

Dále aktualizujte seznam dostupných balíčků:

aptitude update

Nakonec se ujistěte, že verze balíčku samba odpovídá verzi, kde byla chyba zabezpečení opravena (viz CVE-2017-7494):

aptitude show samba

Opravte Sambacry v Ubuntu

Chcete-li začít, zkontrolujte nové dostupné balíčky a aktualizujte balíček samba následovně:

sudo apt-get update
sudo apt-get install samba

Verze Samby, kde již byla použita oprava pro CVE-2017-7494, jsou následující:

  • 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

Nakonec spusťte následující příkaz a ověřte, že váš box Ubuntu má nyní nainstalovanou správnou verzi Samba.

sudo apt-cache show samba

Opravte Sambacry na CentOS/RHEL 7

Opravená verze Samby v EL 7 je samba-4.4.4-14.el7_3. Chcete-li jej nainstalovat, udělejte to

yum makecache fast
yum update samba

Stejně jako dříve se ujistěte, že nyní máte opravenou verzi Samby:

yum info samba

Starší, stále podporované verze CentOS a RHEL mají také dostupné opravy. Více se dozvíte v RHSA-2017-1270.

Pokud jste nainstalovali Sambu ze zdroje

Poznámka: Následující postup předpokládá, že jste již dříve sestavili Sambu ze zdroje. Důrazně doporučujeme, abyste si jej důkladně vyzkoušeli v testovacím prostředí PŘED nasazením na produkční server.

Než začnete, nezapomeňte si zazálohovat soubor smb.conf.

V tomto případě zkompilujeme a aktualizujeme Sambu také ze zdroje. Než však začneme, musíme se ujistit, že všechny závislosti jsou předem nainstalovány. Upozorňujeme, že to může trvat několik minut.

V Debianu a 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

V CentOS 7 nebo podobném:

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

Zastavte službu:

systemctl stop smbd

Stáhněte a rozbalte zdrojový kód (s 4.6.4 nejnovější verzí v době psaní tohoto článku):

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

Pouze pro informativní účely zkontrolujte dostupné možnosti konfigurace pro aktuální vydání pomocí.

./configure --help

Můžete zahrnout některé z voleb vrácených výše uvedeným příkazem, pokud byly použity v předchozím sestavení, nebo se můžete rozhodnout použít výchozí:

./configure
make
make install

Nakonec restartujte službu.

systemctl restart smbd

a ověřte, že používáte aktualizovanou verzi:

smbstatus --version

která by měla vrátit 4.6.4.

Obecné úvahy

Pokud používáte nepodporovanou verzi dané distribuce a z nějakého důvodu nemůžete upgradovat na novější, možná budete chtít vzít v úvahu následující návrhy:

  • Pokud je povolen SELinux, jste chráněni!
  • Ujistěte se, že sdílené položky Samba jsou připojeny pomocí možnosti noexec. To zabrání spouštění binárních souborů umístěných na připojeném souborovém systému.

Přidat,

nt pipe support = no

do sekce [global] vašeho souboru smb.conf a restartujte službu. Možná budete chtít mít na paměti, že to „může deaktivovat některé funkce v klientech Windows“ podle projektu Samba.

Důležité: Uvědomte si, že možnost „nt pipe support=no “ by zakázala výpis sdílených položek z klientů Windows. Např.: Když zadáte \\10.100.10.2\ z Průzkumníka Windows na serveru samba, bude vám odepřeno oprávnění. Klienti Windows by museli ručně zadat sdílenou složku jako \\10.100.10.2\share_name, aby ke sdílené složce měli přístup.

souhrn

V tomto článku jsme popsali zranitelnost známou jako SambaCry a jak ji zmírnit. Doufáme, že tyto informace budete moci použít k ochraně systémů, za které zodpovídáte.

Máte-li jakékoli dotazy nebo připomínky k tomuto článku, můžete nám je sdělit pomocí formuláře níže.