Поиск по сайту:

Как исправить уязвимость SambaCry (CVE-2017-7494) в системах Linux


Samba уже давно является стандартом для предоставления общих файловых служб и служб печати клиентам Windows в системах *nix. Используемый как домашними пользователями, так и средними предприятиями и крупными компаниями, он является идеальным решением в средах, где сосуществуют различные операционные системы.

Как это, к сожалению, случается с широко используемыми инструментами, большинство установок Samba подвергаются риску атаки, которая может использовать известную уязвимость, которая не считалась серьезной до тех пор, пока атака программы-вымогателя WannaCry не слишком попала в новости. давно.

В этой статье мы объясним, что представляет собой эта уязвимость Samba и как защитить от нее системы, за которые вы несете ответственность. В зависимости от типа установки (из репозитория или из исходного кода) вам потребуется использовать другой подход.

Если вы в настоящее время используете Samba в какой-либо среде или знаете кого-то, кто это делает, читайте дальше!

Уязвимость

Устаревшие и не исправленные системы уязвимы к удаленному выполнению кода. Проще говоря, это означает, что человек, имеющий доступ к общему ресурсу, доступному для записи, может загрузить фрагмент произвольного кода и выполнить его с правами root на сервере.

Проблема описана на веб-сайте Samba как CVE-2017-7494 и, как известно, затрагивает версии Samba 3.5 (выпущенную в начале марта 2010 г.) и более поздние версии. Неофициально он получил название SambaCry из-за его сходства с WannaCry: оба нацелены на протокол SMB и потенциально могут быть заражены вирусом, что может привести к его распространению из системы в систему.

Debian, Ubuntu, CentOS и Red Hat приняли срочные меры для защиты своих пользователей и выпустили исправления для поддерживаемых версий. Кроме того, для неподдерживаемых проблем также предусмотрены обходные пути обеспечения безопасности.

Обновление Самбы

Как упоминалось ранее, существует два подхода в зависимости от предыдущего метода установки:

Если вы установили Samba из репозитория вашего дистрибутива.

Давайте разберемся, что нужно сделать в этом случае:

Исправить Sambacry в Debian

Убедитесь, что apt настроен на получение последних обновлений безопасности, добавив следующие строки в список источников (/etc/apt/sources.list):

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

Далее обновите список доступных пакетов:

aptitude update

Наконец, убедитесь, что версия пакета samba соответствует версии, в которой исправлена уязвимость (см. CVE-2017-7494):

aptitude show samba

Исправить Sambacry в Ubuntu

Для начала проверьте наличие новых доступных пакетов и обновите пакет samba следующим образом:

sudo apt-get update
sudo apt-get install samba

Версии Samba, к которым уже применено исправление CVE-2017-7494:

  • 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

Наконец, выполните следующую команду, чтобы убедиться, что на вашем компьютере Ubuntu теперь установлена правильная версия Samba.

sudo apt-cache show samba

Исправьте Sambacry в CentOS/RHEL 7.

Исправленная версия Samba в EL 7 — samba-4.4.4-14.el7_3. Чтобы установить его, сделайте

yum makecache fast
yum update samba

Как и прежде, убедитесь, что у вас установлена исправленная версия Samba:

yum info samba

В более старых, все еще поддерживаемых версиях CentOS и RHEL также есть доступные исправления. Чтобы узнать больше, проверьте RHSA-2017-1270.

Если вы установили Samba из исходного кода

Примечание. В следующей процедуре предполагается, что вы ранее собрали Samba из исходного кода. Настоятельно рекомендуется тщательно опробовать его в тестовой среде ПЕРЕД развертыванием на рабочем сервере.

Кроме того, перед началом работы обязательно создайте резервную копию файла smb.conf.

В этом случае мы также скомпилируем и обновим Samba из исходного кода. Однако прежде чем мы начнем, мы должны убедиться, что все зависимости предварительно установлены. Обратите внимание, что это может занять несколько минут.

В Debian и 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

В CentOS 7 или аналогичном:

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

Остановите службу:

systemctl stop smbd

Загрузите и разархивируйте исходный код (последней версией на момент написания статьи является 4.6.4):

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

Исключительно в информационных целях проверьте доступные параметры конфигурации для текущей версии с помощью .

./configure --help

Вы можете включить некоторые параметры, возвращаемые приведенной выше командой, если они использовались в предыдущей сборке, или вы можете выбрать значение по умолчанию:

./configure
make
make install

Наконец, перезапустите службу.

systemctl restart smbd

и убедитесь, что вы используете обновленную версию:

smbstatus --version

который должен вернуть 4.6.4.

Общие Соображения

Если вы используете неподдерживаемую версию данного дистрибутива и по какой-то причине не можете выполнить обновление до более поздней версии, вы можете принять во внимание следующие предложения:

  • Если SELinux включен, вы защищены!
  • Убедитесь, что общие ресурсы Samba смонтированы с параметром noexec. Это предотвратит выполнение двоичных файлов, находящихся в смонтированной файловой системе.

Добавлять,

nt pipe support = no

в раздел [global] вашего файла smb.conf и перезапустите службу. Возможно, вы захотите иметь в виду, что это «может отключить некоторые функции клиентов Windows», как указано в проекте Samba.

Важно. Имейте в виду, что опция «nt Pipe support=no» отключит листинг общих ресурсов для клиентов Windows. Например: когда вы вводите \\10.100.10.2\ из проводника Windows на сервере Samba, вам будет отказано в разрешении. Клиентам Windows придется вручную указать общий ресурс как \\10.100.10.2\имя_общего_ресурса для доступа к общему ресурсу.

Краткое содержание

В этой статье мы описали уязвимость, известную как SambaCry, и способы ее устранения. Мы надеемся, что вы сможете использовать эту информацию для защиты систем, за которые вы несете ответственность.

Если у вас есть какие-либо вопросы или комментарии по поводу этой статьи, сообщите нам об этом, используя форму ниже.