Как исправить уязвимость 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, и способы ее устранения. Мы надеемся, что вы сможете использовать эту информацию для защиты систем, за которые вы несете ответственность.
Если у вас есть какие-либо вопросы или комментарии по поводу этой статьи, сообщите нам об этом, используя форму ниже.