CVE-2017-0148
Microsoft SMBv1 server
2022-04-06
The SMBv1 server in Microsoft allows remote attackers to execute arbitrary code via crafted packets.
Технический анализ и план устранения
Суть уязвимости
Уязвимость в протоколе SMBv1 (Server Message Block version 1) позволяет удаленному злоумышленнику выполнить произвольный код на целевой системе. Это достигается путем отправки специально сформированных (crafted) сетевых пакетов на сервер, использующий уязвимую версию протокола. Данная уязвимость была использована в глобальных атаках вымогателей WannaCry и Petya.
Как исправить
Основное решение — отключить SMBv1 и установить обновления безопасности.
Для Windows:
1. Установите обновления безопасности. Конкретные номера KB зависят от версии ОС:
* Windows Vista, Windows Server 2008: KB4012598
* Windows 7, Windows Server 2008 R2: KB4012212 (или более поздние ежемесячные накопительные обновления)
* Windows 8.1, Windows Server 2012 R2: KB4012213 (или более поздние ежемесячные накопительные обновления)
* Windows 10, Windows Server 2016: KB4012606 (или более поздние накопительные обновления)
2. Отключите протокол SMBv1 через PowerShell (от имени администратора):
powershell
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Или через реестр, создав DWORD-параметр SMB1 со значением 0 в ключе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters.
Для Linux (Samba):
1. Обновите пакет Samba до исправленной версии (например, для Ubuntu 16.04 LTS):
bash
sudo apt update
sudo apt install samba
Актуальные исправленные версии: samba 4.4.5, 4.5.1, 4.6.1 и выше.
2. В конфигурационном файле Samba (/etc/samba/smb.conf) в секции [global] явно укажите минимальную поддерживаемую версию протокола SMB2:
ini
[global]
server min protocol = SMB2_02
Временное решение
Если немедленная установка обновлений невозможна, выполните следующие действия для снижения риска:
- Заблокируйте на сетевом периметре входящие соединения на порты, используемые SMB:
- TCP/445, TCP/139, UDP/137, UDP/138.
- Пример правила для
iptables(Linux):bash sudo iptables -A INPUT -p tcp --dport 445 -j DROP sudo iptables -A INPUT -p tcp --dport 139 -j DROP
- Отключите службу SMBv1 без удаления обновлений (Windows). Используйте команду PowerShell:
powershell Set-SmbServerConfiguration -EnableSMB1Protocol $false - Используйте сегментацию сети. Ограничьте доступ к серверам с общими ресурсами (файловым серверам, контроллерам домена) только с доверенных подсетей.
- Настройте правила на межсетевом экране (NGFW) или WAF для обнаружения и блокировки аномальных или подозрительных пакетов SMB.