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.