SMB (Server Message Block) — это сетевой многоуровневый протокол, который в основном используется в Windows для совместного использования файлов, принтеров и связи между компьютерами, подключенными к сети. Этот протокол был в основном создан IBM/Microsoft, и его первая реализация была сделана в DOS/ Windows NT 3.1. После этого, SMB является частью почти каждой версии Windows i.e., XP, Vista, 7, 8, 10, 11. Протокол SMB присутствует даже в серверных редакциях Windows. Хотя протокол SMB является родным для Windows, он также поддерживается Linux (через SAMBA) и macOS.
Рабочий механизм SMB
В простейшей форме клиентские машины SMB подключаются к серверу SMB с помощью порта SMP (порт 445) для доступа к общим ресурсам на базе SMB после успешной аутентификации SMB. После установления SMB-соединения можно выполнять совместную работу с файлами, общий доступ к принтерам или любые другие операции на основе сети.
История протокола SMB
Протокол SMB был разработан в 1980-х годах группой в IBM. Для удовлетворения меняющихся сетевых требований в течение многих лет протокол SMB развивался через множество вариантов, называемых версиями или диалектами. Протокол до сих пор является одним из наиболее используемых протоколов для совместного использования ресурсов в локальной сети или на рабочем месте.
Диалекты или версии протокола SMB
Чтобы быть совместимым с постоянно меняющимся горизонтом ИТ, протокол SMB прошел через множество усовершенствований по сравнению с его первоначальной реализацией протокола SMB. Наиболее заметными являются следующие:
- SMB 1 был создан в 1984 году для обмена файлами на DOS.
- CIFS (или Common Internet File System) была представлена в 1996 году компанией Microsoft как версия SMB в Windows 95.
- SMB 2 был выпущен в 2006 году в составе Windows Vista и Windows Server 2008.
- SMB 2.1 был представлен в 2010 году в Windows Server 2008 R2 и Windows 7.
- SMB 3 была выпущена в 2012 году вместе с Windows 8 и Windows Server 2012.
- SMB 3.02 дебютировал в 2014 году в Windows 8.1 и Windows Server 2012 R2.
- SMB 3.1.1 была представлена в 2015 году в Windows 10 и Windows Server 2016.
SMBv1
SMBv1 был разработан еще в 1980-х годах компанией IBM и переименован в CIFS компанией Microsoft с дополнительными функциями в 1990-х годах. Хотя в свое время SMB 1 пользовался большим успехом, он не был разработан для современного подключенного мира (как и все программные приложения, разработанные в ту эпоху), ведь с тех пор прошло более 30 лет информационной революции. Microsoft обесценила SMBv1 в 2013 году, и по умолчанию он больше не устанавливается в Windows и серверных редакциях Windows.
Из-за устаревшей технологии SMBv1 является крайне небезопасным. Он имеет множество уязвимостей, и многие из них позволяют удаленно управлять целевой машиной. Хотя эксперты по кибербезопасности предупреждали об уязвимостях SMB 1, печально известная атака WannaCry ransomware сделала это очень очевидным, поскольку атака была направлена на уязвимости, найденные в SMBv1.
В результате этих уязвимостей рекомендуется отключить SMB1. Более подробная информация о Уязвимости SMB1 можно найти на странице блога Malwarebytes. Пользователь может сам проверить уязвимости SMB1 (особенно EternalBlue) с помощью Metasploit.
SMBv2 и SMBv3
SMBv2 и SMBv3 предлагают следующие усовершенствования протокола SMB (в то время как SMB 1 лишен этих возможностей):
- Предварительная аутентификация Integrity
- Безопасный диалект Переговоры
- Шифрование
- Небезопасный блокировка гостевого аутентификатора
- Лучше подписание сообщений
Естественный вопрос может возникнуть у некоторых пользователей’, если их системы имеют SMBv2 или 3, не закроет ли это уязвимости SMB 1 на машине пользователя? Но ответ — нет, поскольку эти усовершенствования SMB работают по-другому и используют другой механизм. Если SMBv1 включен на машине, которая имеет SMBv2 и 3, то это может сделать SMBv2 и 3 уязвимыми, так как SMB 1 не может контролировать атаку «человек посередине» (MiTM). Атакующему достаточно заблокировать SMBv2 и 3 на своей стороне и использовать только SMB 1 для выполнения своего вредоносного кода на целевой машине.
Последствия отключения SMB 1
Если это не требуется (для машин под управлением Windows XP или устаревших приложений, использующих SMB 1), все эксперты по кибербезопасности рекомендуют отключить SMBv1 как на уровне системы, так и на уровне организации. Если в сети нет приложений или устройств с SMBv1, то ничего не будет затронуто, но это не может быть во всех сценариях. Каждый сценарий отключения SMBv1 может отличаться, но я.T. администратор, может учесть следующее при отключении SMB 1:
- Незашифрованная или подписанная связь между хостами и приложениями
- Коммуникации LM и NTLM
- Обмен файлами между клиентами низкого (или высокого) уровня
- Обмен файлами между различными операционными системами (например, обмен данными между Linux или Windows)
- Устаревшие программные приложения и стационарные коммуникационные приложения на основе SMB (например, Sophos, NetApp, EMC VNX, SonicWalls, vCenter/vSphere, Juniper Pulse Secure SSO, Aruba и др.).
- Принтеры и серверы печати
- Связь Android с приложениями на базе Windows
- Файлы баз данных на основе MDB (которые могут быть повреждены при использовании SMBv2 SMBv3, а SMBv1 необходим для этих файлов).
- Резервное копирование или облачные приложения, использующие SMB 1
Методы отключения SMB 1
Для отключения SMB1 можно использовать множество методов, и пользователь может использовать тот метод, который лучше всего подходит для его сценария.
Отключен по умолчанию
SMBv1 отключен по умолчанию в Windows 10 Fall Creators Update и более поздних версиях. SMB 1 отключен по умолчанию в Windows 11. Для серверных редакций Windows Server версии 1709 (RS3) и более поздних по умолчанию отключен SMB1. Проверить текущее состояние SMB1:
- Нажмите Windows, поиск PowerShell, щелчок правой кнопкой мыши на ней, и в подменю выберите Запуск от имени администратора.
- Теперь выполнить следующие:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
Помните, что Microsoft включила автоматическое удаление SMB 1 через обновления Windows, но если пользователь снова включит протокол, то он может не отключиться в будущем и сделать машину уязвимой.
Используйте Панель управления в Windows 10, 8 или 7
- Нажмите Windows, поиск и открытие Панель управления.
- Теперь выберите Программы и откройте Включить или выключить функции Windows.
- Затем снимите флажок SMB 1.Поддержка файлового обмена 0/CIFS и нажмите на Примените.
- Теперь перезапустить в вашей системе, и SMB 1 будет отключен в вашей системе.
Используйте меню дополнительных функций Windows 11
- Щелкните правой кнопкой мыши Windows и откройте Настройки.
- Теперь в левой панели перейдите к пункту Приложения, а затем в правой панели откройте Дополнительные функции.
- Затем прокрутите вниз и в разделе Связанные параметры нажмите на Дополнительные возможности Windows.
- Теперь, в показанном меню, снимите флажок SMB 1.0/CIFS Поддержка общего доступа к файлам и нажмите на Применить.
- Затем перезапустить вашего ПК, и после перезагрузки SMBv1 будет отключен на ПК.
Использовать PowerShell
Приведенные выше два метода могут удовлетворить требования максимального количества пользователей, но на серверной системе администратору, возможно, придется использовать PowerShell (хотя эти шаги могут отлично работать и на клиентской машине).
- Щелкните Windows, поиск PowerShell, щелкните правой кнопкой мыши на нем, и выберите Запуск от имени администратора.
- Сейчас выполнить следующее:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force или Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol или Set-SmbServerConfiguration -EnableSMB1Protocol $false или на сервере Remove-WindowsFeature -Name FS-SMB1 или Set-SmbServerConfiguration -EnableSMB1Protocol $false
- Затем перезапустите ваша система, и после перезагрузки SMB 1 будет отключен.
Используйте редактор системного реестра
Администратор на серверной машине без PowerShell (например, Windows Server 2003) может отключить SMB 1 с помощью редактора реестра, хотя эти шаги также хорошо работают на клиентской машине.
Предупреждение:
Действуйте с особой осторожностью и на свой страх и риск, поскольку редактирование системного реестра является сложной задачей, и при неправильном выполнении вы можете нанести вред своей системе, данным или сети.
- Нажмите Windows, поиск Regedit, щелкните правой кнопкой мыши на нем, и в подменю выберите Запуск от имени администратора.
- Теперь перейдите по адресу по следующему пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Затем в правой панели дважды щелкните мышью SMB1 и установите его значение на 0. Некоторым пользователям, например Windows 7, может потребоваться создать значение SMB1 DWORD (32-бит) и установить его значение в 0.
Используйте редактор групповой политики
Хотя описанные выше шаги работают для отдельных машин, но для отключения SMB 1 на уровне организации администратор может использовать редактор групповой политики.
Отключить сервер SMB 1
- Запустите Консоль управления групповой политикой и щелкните правой кнопкой мыши на GPO где должны быть добавлены новые предпочтения.
- Затем выберите Изменить и перейдите к пункту по ссылке:
Конфигурация компьютера>> Предпочтения>> Параметры Windows
- Теперь в левой панели, щелкните правой кнопкой мыши на Реестр и выберите Элемент реестра.
- Затем введите следующее:
Действие: Create Улей: HKEY_LOCAL_MACHINE Путь к ключу: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters Имя значения: SMB1 Тип значения: REG_DWORD Данные значения: 0
- Теперь применить изменения и перезапустить система.
Отключить клиент SMB1
- Запуск Консоль управления групповой политикой и щелкните правой кнопкой мыши на GPO где должны быть добавлены новые предпочтения.
- Затем выберите Редактировать и перейдите в следующий:
Конфигурация компьютера>> Предпочтения>> Параметры Windows
- Теперь в левой панели щелкните правой кнопкой мыши на Реестр и выберите Новый элемент реестра.
- Затем, введите следующее:
Действие: Обновить Улей: HKEY_LOCAL_MACHINE Путь к ключу: SYSTEM\CurrentControlSet\services\mrxsmb10 Имя значения: Start Тип значения: REG_DWORD Данные значения: 4
- Теперь применить изменения и открыть DependOnService Свойства.
- Затем установить следующее и применить изменения:
Действие: Заменить Улей: HKEY_LOCAL_MACHINE Путь к ключу: SYSTEM\CurrentControlSet\Services\LanmanWorkstation Имя значения: DependOnService Тип значения: REG_MULTI_SZ Ценные данные: Bowser MRxSmb20 NSI
- Окончательный вид должен быть таким, как показано ниже, а затем, перезагрузите система.
Отключение SMBv2 или 3
Некоторые пользователи, из-за уровня угрозы SMB 1, могут решить отключить SMBv2 или 3, что в настоящее время не нужно. Если пользователь отключит SMBv2 или 3, он может потерять:
- Локальное кэширование
- Большая файлообменная сеть
- Failover
- Символические ссылки
- 10GB ethernet
- Ограничения пропускной способности
- Многоканальная отказоустойчивость
- Усовершенствования в области безопасности и шифрования, найденные за последние 3 десятилетия
Привязка пользователей к использованию SMB1
Следующие сценарии могут заставить пользователя использовать SMB 1:
- Пользователи с Windows XP или Windows Server Machines
- Пользователи вынуждены использовать ветхое программное обеспечение для управления, которое требует от системных администраторов просматривать сетевой район.
- Пользователям со старыми принтерами с древней прошивкой “сканировать для совместного использования.”
Используйте SMB1 только в том случае, если нет другой возможности. Если приложение или устройство требует SMBv1, то лучше найти альтернативу этому приложению или устройству (сейчас это может показаться дорогостоящим, но в долгосрочной перспективе это будет выгодно, просто спросите пользователя или организацию, пострадавшую от WannaCry).
Вот и все. Если у вас есть какие-либо вопросы или предложения, не забудьте пинговать нас в комментариях.