В компьютерной сети , блок Server Message ( SMB ), одна версия которой была также известна как Common Internet File System ( CIFS / s ɪ е s / ), [1] [2] представляет собой протокол связи [3] для обеспечения общего доступа к файлам , принтерам и последовательным портам между узлами в сети. Он также обеспечивает механизм межпроцессного взаимодействия с аутентификацией (IPC). Чаще всего SMB используется на компьютерах,Microsoft Windows , где она была известна как «Сеть Microsoft Windows» до появления Active Directory . Соответствующие службы Windows - это LAN Manager Server для серверного компонента и LAN Manager Workstation для клиентского компонента. [4]
Функции
Блок сообщений сервера обеспечивает совместное использование файлов, просмотр сети, печать и межпроцессное взаимодействие (IPC) по сети.
Протокол SMB использует протоколы более низкого уровня для транспорта.
Протокол Microsoft SMB часто использовался с NetBIOS через TCP / IP (NBT) через UDP, используя номера портов 137 и 138, а также номера портов TCP 137 и 139. NBT для использования NetBIOS поддерживается в Windows Server 2003, Windows XP, Windows 2000, Windows NT и Windows Me / 98/95. NetBIOS не поддерживается в Windows Vista, Windows Server 2008 и последующих версиях Windows. Комбинация SMB / NBT обычно используется для обратной совместимости .
Протокол NetBIOS через NetBEUI обеспечивает поддержку NetBIOS для протокола NetBEUI. Этот протокол также называется кадрами NetBIOS (NBF). NBF поддерживается в Windows 2000, Windows NT и Windows Me / 98/95. NetBEUI больше не поддерживается в Windows XP и более поздних версиях. Однако протокол SMB также может использоваться без отдельного транспортного протокола непосредственно через TCP, порт 445. NetBIOS также поддерживался через несколько устаревших протоколов, таких как IPX / SPX .
Система межпроцессного взаимодействия SMB (IPC) предоставляет именованные каналы и была одним из первых межпроцессных механизмов, обычно доступных программистам, который предоставляет сервисам средства для наследования аутентификации, выполняемой, когда клиент [ требуется пояснение ] впервые подключается к SMB-сервер. [ необходима цитата ]
Некоторые службы, которые работают через именованные каналы, например те, которые используют собственную реализацию Microsoft DCE / RPC через SMB, известную как MSRPC через SMB, также позволяют клиентским программам MSRPC выполнять аутентификацию, которая отменяет авторизацию, предоставляемую сервером SMB, но только в контексте клиентской программы MSRPC, которая успешно выполняет дополнительную аутентификацию.
Подписание SMB : Windows NT 4.0 с пакетом обновления 3 и выше может использовать криптографию для цифровой подписи подключений SMB. Самый распространенный официальный термин - «подписание SMB». Другие официально использовавшиеся термины: «Подписи безопасности [SMB]», «Порядковые номера SMB» [5] и «Подписание сообщений SMB». [6] Подпись SMB может быть настроена индивидуально для входящих соединений SMB (обрабатываемых службой LanManServer) и исходящих соединений SMB (обрабатываемых службой LanManWorkstation). По умолчанию в Windows 98 и более поздних версиях используется автоматическая подпись исходящих подключений, если сервер также поддерживает это, и возврат к неподписанному протоколу SMB, если это позволяют оба партнера. По умолчанию для контроллеров домена Windows начиная с Windows Server 2003 и выше не разрешается откат для входящих подключений. [7] Эту функцию также можно включить для любого сервера под управлением Windows NT 4.0 с пакетом обновления 3 или более поздней версии. Это защищает от атак типа «злоумышленник в середине» против клиентов, получающих свои политики от контроллеров домена при входе в систему. [8]
SMB поддерживает гибкую блокировку - особый тип механизма блокировки - файлов для повышения производительности.
SMB служит основой для реализации распределенной файловой системы Microsoft .
История
SMB / CIFS / SMB1
Барри Фейгенбаум первоначально разработал SMB в IBM в начале 1983 года с целью превратить доступ к локальным файлам DOS INT 21h в сетевую файловую систему. [9] Microsoft внесла значительные изменения в наиболее часто используемую версию. Microsoft объединила протокол SMB с продуктом LAN Manager, который она начала разрабатывать для OS / 2 с 3Com около 1990 года, и продолжала добавлять функции к протоколу в Windows для рабочих групп ( ок. 1992 ) и в более поздних версиях Windows.
SMB изначально был разработан для работы поверх NetBIOS / NetBEUI API (обычно реализуется с помощью NBF , NetBIOS через IPX / SPX или NBT ). Начиная с Windows 2000 , SMB по умолчанию работает с тонким слоем, подобным пакету сообщений сеанса службы сеансов NBT, поверх TCP , используя TCP-порт 445, а не TCP-порт 139 - функцию, известную как "прямой хост SMB". . [10]
Windows Server 2003 и более старые устройства NAS изначально используют протокол SMB1 / CIFS. SMB1 / CIFS - это чрезвычайно болтливый протокол, который не является такой проблемой в локальной сети с низкой задержкой, но становится очень медленным в глобальных сетях, поскольку двустороннее рукопожатие протокола увеличивает присущую такой сети высокую задержку. Более поздние версии протокола сократили большое количество обменов рукопожатием. По оценкам Microsoft, SMB1 / CIFS составляет менее 10% сетевого трафика в средней корпоративной сети, но это по-прежнему значительный объем трафика. Одним из подходов к снижению неэффективности протокола является использование продуктов WAN Acceleration, таких как продукты Riverbed, Silver Peak или Cisco Systems. Лучше всего просто отказаться от SMB1 / CIFS путем обновления серверной инфраструктуры, которая его использует. Сюда входят как устройства NAS, так и Windows Server 2003. В настоящее время наиболее эффективным методом определения трафика SMB1 / CIFS является использование инструмента сетевого анализатора, такого как Wireshark и т. Д., Для определения «говорящих» SMB1 / CIFS и последующего вывода из эксплуатации. или обновите их со временем. Microsoft также предоставляет инструмент аудита в Windows Server 2016, который можно использовать для отслеживания говорящих SMB1 / CIFS. [11]
В 1996 году , когда Sun Microsystems объявила WebNFS , [12] Microsoft выступила с инициативой переименовать SMB в Common Internet File System (CIFS) [9] и добавлены новые функции, включая поддержку символических ссылок , жесткие ссылки , большие размеры файлов, а также начальная попытка поддержки прямых подключений через TCP-порт 445 без использования NetBIOS в качестве транспорта (в значительной степени экспериментальная работа, потребовавшая дальнейшей доработки). Microsoft представила некоторые частичные спецификации в качестве Интернет-проектов в IETF , [13] , хотя эти представления истек.
Microsoft «добавила SMB1 в список устаревших версий Windows Server 2012 R2 в июне 2013 года». [14] В Windows Server 2016 и некоторых версиях Windows 10 Fall Creators Update по умолчанию не установлен протокол SMB1. [15]
SMB 2.0
Microsoft представила новую версию протокола (SMB 2.0 или SMB2) с Windows Vista в 2006 [16] и Server 2008 . Хотя протокол является проприетарным, его спецификация была опубликована, чтобы позволить другим системам взаимодействовать с операционными системами Microsoft, использующими новый протокол. [17]
SMB2 снижает «болтливость» протокола SMB 1.0 за счет уменьшения количества команд и подкоманд с сотни до девятнадцати. [18] Он имеет механизмы конвейерной обработки , то есть отправки дополнительных запросов до получения ответа на предыдущий запрос, тем самым повышая производительность каналов с высокой задержкой . Это добавляет способность к соединению нескольких действий в одном запросе, что значительно уменьшает количество спуско- потребностей клиентов , чтобы сделать на сервере, повышение производительности в качестве результата. [18] SMB1 также имеет механизм объединения, известный как AndX, для объединения нескольких действий, но клиенты Microsoft редко используют AndX. [ необходимая цитата ] Он также вводит понятие «надежных дескрипторов файлов»: они позволяют подключению к серверу SMB выдерживать кратковременные отключения сети, что типично для беспроводной сети, без необходимости нести накладные расходы на повторное согласование нового сеанс.
SMB2 включает поддержку символических ссылок . Другие улучшения включают кэширование свойств файлов, улучшенное подписание сообщений с помощью алгоритма хеширования HMAC SHA-256 и лучшую масштабируемость за счет увеличения числа пользователей, общих и открытых файлов на сервере, среди прочего. [18] Протокол SMB1 использует 16-битные размеры данных, что, помимо прочего, ограничивает максимальный размер блока до 64 КБ. SMB2 использует 32- или 64-битные поля хранения и 128 бит в случае дескрипторов файлов , тем самым снимая предыдущие ограничения на размеры блоков, что повышает производительность при передаче больших файлов по быстрым сетям. [18]
Операционные системы Windows Vista / Server 2008 и более поздних версий используют SMB2 при обмене данными с другими машинами, которые также могут использовать SMB2. SMB1 продолжает использоваться для соединений со старыми версиями Windows, а также с решениями NAS различных производителей . Samba 3.5 также включает экспериментальную поддержку SMB2. [19] Samba 3.6 полностью поддерживает SMB2, за исключением изменения пользовательских квот с помощью инструментов управления квотами Windows. [20]
Когда был представлен SMB2, он принес ряд преимуществ по сравнению с SMB1 для сторонних разработчиков протоколов SMB. SMB1, первоначально разработанный IBM , был реконструирован и позже стал частью широкого спектра операционных систем, отличных от Windows, таких как Xenix , OS / 2 и VMS ( Pathworks ). X / Open частично стандартизировал его; у него также были проекты стандартов IETF, срок действия которых истек. ( Исторические подробности см. На http://ubiqx.org/cifs/Intro.html .) SMB2 также является относительно полным разрывом с прошлым. Код Microsoft SMB1 должен работать с большим количеством клиентов и серверов SMB. SMB1 содержит множество версий информации для команд (выбор структуры, возвращаемой для конкретного запроса), поскольку такие функции, как поддержка Unicode, были модернизированы позже. SMB2 предполагает значительно сокращенное тестирование совместимости для разработчиков протокола. Код SMB2 имеет значительно меньшую сложность, поскольку существует гораздо меньшая изменчивость (например, пути кода, отличные от Unicode, становятся избыточными, поскольку SMB2 требует поддержки Unicode).
Apple также переходит на SMB2 (со своего собственного протокола Apple Filing Protocol , теперь устаревшего) с OS X 10.9. [21] Однако этот переход был чреват проблемами совместимости. [22] [23] Поддержка SMB2 не по умолчанию появилась в OS X 10.7, когда Apple отказалась от Samba в пользу собственной реализации SMB под названием SMBX. [21] Apple перешла на собственную реализацию SMBX после того, как Samba приняла GPLv3 . [24] [25]
Ядро Linux «s CIFS файловая система клиента поддерживает SMB2 начиная с версии 3.7. [26]
SMB 2.1
SMB 2.1, представленный в Windows 7 и Server 2008 R2, привнес незначительные улучшения производительности с новым механизмом гибкой блокировки. [27]
SMB 3.0
SMB 3.0 (ранее называвшийся SMB 2.2) [28] был представлен в Windows 8 [28] и Windows Server 2012 . [28] Он внес несколько значительных изменений, которые предназначены для добавления функциональности и повышения производительности SMB2, [29] особенно в виртуализированных центрах обработки данных :
- протокол SMB Direct (SMB через удаленный прямой доступ к памяти [RDMA])
- Многоканальный SMB (несколько подключений на сеанс SMB), [30] [31]
- Прозрачное аварийное переключение SMB [32] [33]
Он также вводит несколько улучшений безопасности, таких как сквозное шифрование и новый алгоритм подписи на основе AES . [34] [35]
SMB 3.0.2
SMB 3.0.2 (в то время известный как 3.02) был представлен в Windows 8.1 и Windows Server 2012 R2; [36] [37] в этих и последующих выпусках более ранняя версия SMB 1 может быть дополнительно отключена для повышения безопасности. [38] [39]
SMB 3.1.1
SMB 3.1.1 был представлен в Windows 10 и Windows Server 2016 . [40] Эта версия поддерживает шифрование AES-128 GCM в дополнение к шифрованию AES-128 CCM, добавленному в SMB3, и реализует проверку целостности перед аутентификацией с использованием хэша SHA-512 . SMB 3.1.1 также делает обязательным безопасное согласование при подключении к клиентам, использующим SMB 2.x и выше.
Выполнение
Общие вопросы
SMB работает по принципу клиент-сервер , когда клиент делает определенные запросы, а сервер отвечает соответствующим образом. Один раздел протокола SMB специально касается доступа к файловым системам , так что клиенты могут делать запросы к файловому серверу ; но некоторые другие разделы протокола SMB специализируются на межпроцессном взаимодействии (IPC). Общий ресурс межпроцессного взаимодействия (IPC) или ipc $ - это общий сетевой ресурс на компьютерах под управлением Microsoft Windows. Этот виртуальный общий ресурс используется для облегчения связи между процессами и компьютерами через SMB, часто для обмена данными между компьютерами, которые прошли проверку подлинности.
Разработчики оптимизировали протокол SMB для использования в локальной подсети , но пользователи также заставили SMB работать для доступа к различным подсетям в Интернете - эксплойты, включающие совместное использование файлов или совместное использование печати в средах MS Windows, обычно ориентированы на такое использование.
Серверы SMB делают свои файловые системы и другие ресурсы доступными для клиентов в сети. Клиентским компьютерам может потребоваться доступ к общим файловым системам и принтерам на сервере, и в этой основной функции SMB стал наиболее известным и широко используемым. Однако аспект файлового сервера SMB мало что значил бы без набора протоколов доменов NT , которые, по крайней мере , обеспечивают аутентификацию на основе доменов в стиле NT . Почти все реализации серверов SMB используют аутентификацию домена NT для проверки прав доступа пользователей к ресурсам.
Проблемы с производительностью
Использование протокола SMB часто коррелирует со значительным увеличением широковещательного трафика в сети. Однако сам SMB не использует широковещательные рассылки - проблемы широковещательной рассылки, обычно связанные с SMB, на самом деле возникают из-за протокола определения местоположения службы NetBIOS . [ требуется пояснение ] По умолчанию сервер Microsoft Windows NT 4.0 использовал NetBIOS для рекламы и поиска служб. NetBIOS функционирует путем широковещательной передачи служб, доступных на определенном хосте, через равные промежутки времени. Хотя это обычно является приемлемым значением по умолчанию в сети с меньшим количеством хостов, увеличение широковещательного трафика может вызвать проблемы по мере увеличения количества хостов в сети. Реализация инфраструктуры разрешения имен в виде Windows Internet Naming Service (WINS) или системы доменных имен (DNS) решает эту проблему. WINS была частной реализацией, используемой в сетях Windows NT 4.0, но вызвала свои собственные проблемы и сложности при проектировании и обслуживании сети Microsoft.
С момента выпуска Windows 2000 использование WINS для разрешения имен не рекомендуется Microsoft, а иерархический динамический DNS теперь настроен как протокол разрешения имен по умолчанию для всех операционных систем Windows. Разрешение (коротких) имен NetBIOS с помощью DNS требует, чтобы DNS-клиент разворачивал короткие имена, обычно путем добавления суффикса DNS для конкретного соединения к своим запросам поиска DNS. WINS по-прежнему можно настроить на клиентах в качестве вторичного протокола разрешения имен для взаимодействия с устаревшими средами и приложениями Windows. Кроме того, DNS-серверы Microsoft могут пересылать запросы разрешения имен на устаревшие WINS-серверы, чтобы поддерживать интеграцию разрешения имен с устаревшими (до Windows 2000) средами, которые не поддерживают DNS.
Разработчики сетей обнаружили, что задержка оказывает значительное влияние на производительность протокола SMB 1.0, поскольку он работает хуже, чем другие протоколы, такие как FTP . Мониторинг выявляет высокую степень «болтливости» и игнорирование сетевых задержек между хостами. [18] Например, VPN- соединение через Интернет часто вызывает задержку в сети. Microsoft объяснила, что проблемы с производительностью возникают в первую очередь из-за того, что SMB 1.0 является блочным, а не потоковым протоколом, который изначально был разработан для небольших локальных сетей ; он имеет размер блока, ограниченный 64 КБ, подписывание SMB создает дополнительные накладные расходы, а размер окна TCP не оптимизирован для каналов WAN. [41] Решения этой проблемы включают обновленный протокол SMB 2.0, [42] автономные файлы , масштабирование окна TCP и устройства ускорения WAN от различных сетевых поставщиков, которые кэшируют и оптимизируют SMB 1.0 [43] и 2.0. [44]
Модификации Microsoft
Microsoft добавила несколько расширений в свою собственную реализацию SMB. Например, он добавил NTLM , а затем протоколы проверки подлинности NTLMv2, чтобы устранить слабые места безопасности в исходной проверке подлинности LAN Manager . Проверка подлинности LAN Manager была реализована на основе требований оригинального унаследованной SMB спецификации для использования паролей «LAN Manager» IBM, но реализовать DES в некорректной форме , что позволило пароли быть взломаны. [45] Позже была добавлена аутентификация Kerberos . Протоколы входа в домен NT 4.0 первоначально использовали 40-битное шифрование за пределами США из-за экспортных ограничений на более сильное 128-битное шифрование [46] (впоследствии снятое в 1996 году, когда президент Билл Клинтон подписал Указ 13026 [47] ). Поддержка оппортунистических блокировок менялась с каждым выпуском сервера.
Самба
В 1991 году Эндрю Триджелл начал разработку Samba, повторной реализации бесплатного программного обеспечения (с использованием обратного проектирования ) сетевого протокола SMB / CIFS для Unix-подобных систем, первоначально для реализации сервера SMB, чтобы позволить клиентам ПК запускать клиент DEC Pathworks. для доступа к файлам на машинах SunOS . [9] [48] Из-за важности протокола SMB для взаимодействия с широко распространенной платформой Microsoft Windows Samba стала популярной бесплатной программной реализацией совместимого клиента и сервера SMB, позволяющей использовать операционные системы, отличные от Windows, такие как Unix-подобные. операционных систем для взаимодействия с Windows.
Начиная с версии 3 (2003), Samba предоставляет файловые службы и службы печати для клиентов Microsoft Windows и может интегрироваться с серверным доменом Windows NT 4.0 либо в качестве основного контроллера домена (PDC), либо в качестве члена домена. Установки Samba4 могут действовать как контроллер домена Active Directory или рядовой сервер на функциональных уровнях домена и леса Windows 2008 . [49]
Менеджеры пакетов в дистрибутивах Linux могут искать пакет cifs-utils . Пакет предоставлен разработчиками Samba.
Netsmb
NSMB (Netsmb и SMBFS) семейство в ядре клиента SMB и сервере [ править ] Реализация в операционных системах BSD. Впервые он был добавлен во FreeBSD 4.4 Борисом Поповым, а теперь встречается во многих других системах BSD, включая NetBSD и macOS . [50] С тех пор реализации значительно разошлись. [51]
Версия NSMB для macOS примечательна своей теперь уже распространенной схемой представления символических ссылок. В этом «миншалло-французском» формате символические ссылки отображаются в виде текстовых файлов с .symlink
расширением и Xsym\n
магическим числом, всегда длиной 1067 байт. Этот формат также используется для хранения символических ссылок на наивных серверах SMB или в неподдерживаемых файловых системах. Samba поддерживает этот формат с mfsymlink
опцией. [52] Докер в Windows, похоже, тоже его использует. [ необходима цитата ]
NQ
NQ - это семейство портативных реализаций SMB-клиентов и серверов, разработанных израильской компанией Visuality Systems , основанной в 1998 году Сэмом Видерманом, бывшим генеральным директором Siemens Data Communications. Семейство NQ включает встроенный стек SMB (написанный на C), клиент SMB на чистом Java и реализацию SMB-сервера хранилища. Все решения поддерживают последнюю версию диалекта SMB 3.1.1. NQ для Linux , NQ для WinCE , iOS, Android, VxWorks и другие операционные системы реального времени поддерживаются настраиваемым решением NQ.
MoSMB
MoSMB - это проприетарная реализация SMB для Linux и других Unix-подобных систем, разработанная Ryussi Technologies. Он поддерживает только SMB 2.x и SMB 3.x. [53]
Tuxera SMB
Tuxera SMB - это проприетарная реализация SMB-сервера, разработанная Tuxera, которая может запускаться как в ядре, так и в пользовательском пространстве . [54] Он поддерживает SMB 3.1.1 и предыдущие версии.
так же
Аналогичным образом, в 2009 году была разработана реализация CIFS / SMB (версии 1.0, 2.0, 2.1 и NFS 3.0), которая предоставила многопротокольную платформу с поддержкой идентификации для сетевого доступа к файлам, используемым в OEM- продуктах хранения данных, созданных на устройствах на базе Linux / Unix. Платформа может использоваться для традиционных NAS, облачных шлюзов и устройств облачного кэширования для обеспечения безопасного доступа к файлам в сети. Аналогичным образом был приобретен EMC Isilon в 2012 году.
CIFSD
CIFSD - это реализация встроенного сервера CIFS / SMB с открытым исходным кодом для ядра Linux. Он имеет следующие преимущества по сравнению с реализациями в пользовательском пространстве: он обеспечивает лучшую производительность и упрощает реализацию некоторых функций, таких как SMB Direct. Он поддерживает SMB 3.1.1 и предыдущие версии.
Оппортунистическая блокировка
В протоколе SMB гибкая блокировка - это механизм, предназначенный для повышения производительности за счет управления кэшированием сетевых файлов клиентом. [55] В отличие от традиционных блокировок , OpLocks не являются строго блокировкой файлов и не используются для обеспечения взаимного исключения.
Существует четыре типа оппортунистических блокировок:
- Пакетные блокировки
- Пакетные OpLocks были созданы изначально для поддержки определенного поведения операции выполнения пакетного файла DOS, при которой файл открывается и закрывается много раз за короткий период, что является проблемой производительности. Чтобы решить эту проблему, клиент может запросить OpLock типа «пакетный». В этом случае клиент задерживает отправку запроса на закрытие, и если последующий запрос на открытие выдается, два запроса отменяют друг друга. [56]
- OpLocks 1-го уровня / Эксклюзивные замки
- Когда приложение открывает в «общем режиме» файл, размещенный на сервере SMB, который не открывается никаким другим процессом (или другими клиентами), клиент получает эксклюзивный OpLock от сервера. Это означает, что теперь клиент может предположить, что это единственный процесс, имеющий доступ к этому конкретному файлу, и теперь клиент может кэшировать все изменения в файле перед их фиксацией на сервере. Это улучшение производительности, поскольку для чтения и записи в файл требуется меньше циклов приема-передачи. Если другой клиент / процесс пытается открыть тот же файл, сервер отправляет клиенту сообщение (называемое разрывом или отзывом ), которое аннулирует монопольную блокировку, ранее предоставленную клиенту. Затем клиент сбрасывает все изменения в файл.
- OpLocks 2-го уровня
- Если эксклюзивный OpLock удерживается клиентом, а заблокированный файл открывается третьей стороной, клиент должен отказаться от своего эксклюзивного OpLock, чтобы разрешить другому клиенту доступ для записи / чтения. Затем клиент может получить от сервера «OpLock 2-го уровня». OpLock уровня 2 позволяет кэшировать запросы на чтение, но исключает кэширование записи.
- Фильтр OpLocks
- Добавленные в NT 4.0 Oplocks фильтра аналогичны OpLocks 2-го уровня, но предотвращают нарушения режима совместного использования между открытием файла и приемом блокировки. Microsoft рекомендует использовать фильтры OpLocks только в тех случаях, когда важно разрешить использование нескольких считывателей и OpLocks уровня 2 в других обстоятельствах.
Клиенты, удерживающие OpLock, на самом деле не удерживают блокировку файла, вместо этого они получают уведомление через разрыв, когда другой клиент хочет получить доступ к файлу способом, несовместимым с их блокировкой. Запрос другого клиента задерживается, пока обрабатывается перерыв.
- Перерывы
- В отличие от «стандартного» поведения протокола SMB, запрос на прерывание может быть отправлен от сервера к клиенту. Он сообщает клиенту, что OpLock больше не действует. Это происходит, например, когда другой клиент желает открыть файл способом, который делает недействительным OpLock. Затем первому клиенту отправляется прерывание OpLock и требуется отправить все свои локальные изменения (в случае пакетных или эксклюзивных OpLocks), если таковые имеются, и подтвердить прерывание OpLock. После этого подтверждения сервер может ответить второму клиенту согласованным образом.
Безопасность
За прошедшие годы в реализации протокола или компонентов Microsoft, на которые она напрямую полагается, обнаружилось множество уязвимостей. [57] [58] Уязвимости системы безопасности других производителей заключаются в основном в отсутствии поддержки новых протоколов аутентификации, таких как NTLMv2 и Kerberos, в пользу таких протоколов, как NTLMv1, LanMan или паролей в виде открытого текста . Отслеживание атак в реальном времени [59] показывает, что SMB является одним из основных векторов атак для попыток вторжения [60], например, атака Sony Pictures 2014 г. [61] и атака программы-вымогателя WannaCry в 2017 г. [62] В 2020 г. Были обнаружены две уязвимости SMB высокой степени серьезности, названные SMBGhost ( CVE-2020-0796 ) и SMBleed ( CVE-2020-1206 ), которые при объединении в цепочку могут предоставить злоумышленнику привилегию RCE (удаленное выполнение кода) . [63]
Характеристики
Спецификации для SMB являются частными и изначально были закрыты, что вынудило других поставщиков и проекты перепроектировать протокол для взаимодействия с ним. Протокол SMB 1.0 был в конечном итоге опубликован через некоторое время после его реинжиниринга, тогда как протокол SMB 2.0 с самого начала был предоставлен в Центре разработчиков открытых спецификаций Microsoft MSDN. [64] Существует ряд спецификаций, относящихся к протоколу SMB:
- [MS-CIFS]: протокол общей файловой системы Интернета (CIFS).
- Определяет протокол Common Internet File System (CIFS), кроссплатформенный, независимый от транспорта протокол, который обеспечивает механизм для клиентских систем для использования файловых служб и служб печати, предоставляемых серверными системами по сети.
- [MS-SMB]: протокол блока сообщений сервера (SMB)
- Определяет протокол блока сообщений сервера (SMB), который определяет расширения для существующей спецификации Common Internet File System (CIFS), которые были реализованы Microsoft с момента публикации спецификации CIFS.
- [MS-SMB2]: протокол блока сообщений сервера (SMB) версии 2 и 3
- Определяет версии 2 и 3 протокола блока сообщений сервера (SMB), которые поддерживают совместное использование файловых ресурсов и ресурсов печати между машинами и расширяют концепции протокола блока сообщений сервера.
- [MS-SMBD]: транспортный протокол удаленного прямого доступа к памяти (RDMA) SMB2
- Определяет транспортный протокол удаленного прямого доступа к памяти (RDMA) SMB2, оболочку для существующего протокола SMB2, который позволяет доставлять пакеты SMB2 через транспортные средства с поддержкой RDMA, такие как iWARP или Infiniband, при этом используя возможности прямого размещения данных (DDP) этих транспортных средств. . Преимущества включают снижение нагрузки на ЦП, меньшую задержку и повышенную пропускную способность.
- [MS-FSSO]: Обзор системы служб доступа к файлам ( статус документа в архиве )
- Описывает предполагаемую функциональность системы служб доступа к файлам, ее взаимодействие с системами и приложениями, которым требуются файловые службы, и то, как она взаимодействует с административными клиентами для настройки и управления системой. Службы доступа к файлам используют несколько протоколов для доступа к файлам и администрирования файлового сервера. В этом документе перечислены эти протоколы и описано, как они используются для реализации системы служб доступа к файлам. Обзоры системы заменены более новыми обзорами.
Смотрите также
- Список продуктов, поддерживающих SMB
- Active Directory
- Административная доля
- Общий доступ к файлам
- AppleTalk
- Сетевая файловая система (протокол)
- Удаленная файловая система
- WebDAV
- Единое соглашение об именах
- DCE / RPC
- Сетевое окружение
Рекомендации
- ^ «Общая файловая система Интернета» . Библиотека Microsoft TechNet. Архивировано 7 июля 2017 года . Проверено 20 августа 2013 года .
- ^ «Обзор протоколов Microsoft SMB и CIFS» . Библиотека Microsoft MSDN. 25 июля 2013 года. Архивировано 21 августа 2013 года . Проверено 20 августа 2013 года .
- ^ «Обзор протоколов Microsoft SMB и CIFS» . Microsoft . 22 октября 2009 года. Архивировано 2 августа 2016 года . Проверено 10 апреля 2019 года .
- ^ «Сетевые концепции Lan Manager» . Microsoft. Архивировано 30 декабря 2012 года . Проверено 18 сентября 2014 года .
- ^ «MSKB887429: Обзор подписи блока сообщений сервера» . Корпорация Microsoft . 30 ноября 2007 года. Архивировано 20 ноября 2010 года . Проверено 24 октября 2012 года .
Подписи безопасности (порядковые номера SMB)
- ^ Йеспер М. Йоханссон (8 сентября 2005 г.). «Как прострелить себе ногу с безопасностью, часть 1» . Корпорация Microsoft . Архивировано 19 октября 2018 года . Проверено 24 октября 2012 года .
В этой статье рассматривается [...] подписывание сообщений Server Message Block (SMB).
- ^ «MSKB887429: Обзор подписи блока сообщений сервера» . Корпорация Microsoft . 30 ноября 2007 года. Архивировано 20 ноября 2010 года . Проверено 24 октября 2012 года .
По умолчанию подписывание SMB требуется для входящих сеансов SMB на контроллерах домена под управлением Windows Server 2003.
- ^ Хосе Баррето (1 декабря 2010 г.). «Основы подписи SMB (охватывающие как SMB1, так и SMB2)» . Блоги по серверу и менеджменту Microsoft TechNet . Архивировано 2 декабря 2012 года . Проверено 24 октября 2012 года .
Этот механизм безопасности в протоколе SMB помогает избежать таких проблем, как фальсификация пакетов и атаки типа «человек посередине». [...] Подпись SMB доступна во всех поддерживаемых в настоящее время версиях Windows, но по умолчанию она включена только на контроллерах домена. Это рекомендуется для контроллеров домена, поскольку SMB - это протокол, используемый клиентами для загрузки информации о групповой политике. Подпись SMB позволяет гарантировать, что клиент получает подлинную групповую политику.
- ^ а б в Триджелл, Эндрю . «Мифы о самбе» . Архивировано 20 октября 2017 года . Проверено 3 января 2016 года .
- ^ «Прямой хостинг SMB через TCP / IP» . Microsoft . 11 октября 2007 года. Архивировано 26 марта 2011 года . Проверено 1 ноября 2009 года .
- ^ Киттл, Ральф (13 мая 2017 г.). «SMB1 - Аудит активного использования с помощью анализатора сообщений» . Microsoft TechNet . Microsoft. Архивировано 28 марта 2019 года . Проверено 28 марта 2019 года .
- ^ «WebNFS - Технический обзор» . Архивировано из оригинального 18 мая 2007 года.
- ^ * И. Хайзер; П. Лич; Д. Перри (13 июня 1996 г.). «Общий протокол файловой системы Интернета (CIFS / 1.0)» . Архивировано 8 августа 2019 года . Проверено 10 декабря 2017 года .
- Пол Дж. Лич; Дилип К. Найк (3 января 1997 г.). «Вход в систему CIFS и сквозная проверка подлинности» .
- Пол Дж. Лич; Дилип К. Найк (10 января 1997 г.). «Протокол браузера CIFS / E» .
- Пол Дж. Лич; Дилип К. Найк (31 января 1997 г.). «Спецификация печати CIFS» .
- Пол Дж. Лич; Дилип К. Найк (26 февраля 1997 г.). «Протокол удаленного администрирования CIFS» .
- Пол Дж. Лич; Дилип К. Найк (19 декабря 1997 г.). «Протокол общей файловой системы Интернета (CIFS / 1.0)» .
- ^ «Устаревание SMB1 - Вы должны планировать избавиться от этого старого диалекта SMB - Блог Хосе Баррето» . blogs.technet.microsoft.com . Архивировано 21 мая 2017 года . Проверено 9 октября 2019 года .
- ^ «SMBv1 не устанавливается по умолчанию в Windows 10 Fall Creators Update и Windows Server версии 1709 и более поздних версий» . support.microsoft.com . Архивировано 10 октября 2019 года . Проверено 9 октября 2019 года .
- ^ Навджот Вирк и Прашант Прахалад (10 марта 2006 г.). «Что нового в SMB в Windows Vista» . Chk Your Dsks . MSDN. Архивировано из оригинала на 5 мая 2006 года . Проверено 1 мая 2006 года .
- ^ Протокол блока сообщений сервера (SMB) версии 2 и 3 . Протоколы Windows. Открытые спецификации (Технический отчет). Документы Microsoft . Microsoft . MS-SMB2 . Проверено 29 ноября 2020 года .
- ^ а б в г д Хосе Баррето (9 декабря 2008 г.). «SMB2, полная переработка основного протокола удаленных файлов для Windows» . Блоги по серверу и менеджменту Microsoft TechNet . Архивировано из оригинала 3 июня 2012 года . Проверено 1 ноября 2009 года .
- ^ «Samba 3.5.0 доступна для загрузки» . Архивировано 24 июля 2011 года . Проверено 8 июля 2011 года .
- ^ «Samba 3.6.0 доступна для загрузки» . Архивировано 24 сентября 2011 года . Проверено 10 августа 2011 года .
- ^ а б Эран, Даниэль (11 июня 2013 г.). «Apple переходит с совместного использования файлов AFP на SMB2 в OS X 10.9 Mavericks» . Appleinsider.com. Архивировано 12 февраля 2017 года . Проверено 12 января 2014 года .
- ^ Воан, Стивен Дж. (28 октября 2013 г.). «Проблема SMB2 Mavericks и ее исправления» . ZDNet. Архивировано 5 января 2014 года . Проверено 12 января 2014 года .
- ^ MacParc. «10.9: переключить стек SMB на использование SMB1 по умолчанию» . Mac OS X подсказки . macworld.com. Архивировано 12 января 2014 года . Проверено 12 января 2014 года .
- ^ Тофер Кесслер (23 марта 2011 г.). «Прощай Samba в OS X» . CNET. Архивировано 15 января 2014 года . Проверено 12 января 2014 года .
- ^ Том Холверда (26 марта 2011 г.). «Apple отказывается от SAMBA в пользу замены собственного производства» . Архивировано 2 ноября 2013 года . Проверено 12 января 2014 года .
- ^ «Linux 3.7 - новички в ядре Linux» . Архивировано 11 сентября 2016 года . Проверено 4 сентября 2016 года .
- ^ «Внедрение решения для централизации данных конечных пользователей» . Microsoft . 21 октября 2009 г. С. 10–11. Архивировано 6 сентября 2010 года . Проверено 2 ноября 2009 года .
- ^ а б в Джеффри Сновер (19 апреля 2012 г.). «SMB 2.2 теперь SMB 3.0» . Блог Windows Server . Проверено 6 июля, 2020 .
- ^ Chelsio Communications. «40G SMB Direct» . Архивировано 7 сентября 2013 года . Проверено 18 июня 2013 года .
- ^ Хосе Баррето (19 октября 2012 г.). «Учебное пособие SNIA по протоколу SMB» (PDF) . Промышленная ассоциация сетей хранения данных . Архивировано 3 июня 2013 года (PDF) . Проверено 28 ноября 2012 года .
- ^ Томас Пфеннинг. «Будущее файловых протоколов: SMB 2.2 в центре обработки данных» (PDF) . Архивировано из оригинального (PDF) 20 июля 2012 года.
- ^ Йоргенсен, Клаус (7 июня 2012 г.). «SMB Transparent Failover - постоянная доступность файловых ресурсов» . Microsoft TechNet . Архивировано 11 января 2019 года . Проверено 1 февраля 2017 года .
- ^ Сэвилл, Джон (21 августа 2012 г.). «Новые способы обеспечения высокой доступности для общих файловых ресурсов» . Windows для ИТ-специалистов . Архивировано 27 ноября 2016 года . Проверено 1 февраля 2017 года .
- ^ «Улучшения безопасности SMB» . Microsoft Technet. 15 января 2014 года. Архивировано 9 октября 2014 года . Проверено 18 июня 2014 года .
- ^ Хосе Баррето (5 мая 2013 г.). «Обновленные ссылки на файловом сервере Windows Server 2012 и SMB 3.0» . Блоги по серверу и менеджменту Microsoft TechNet . Архивировано 3 августа 2016 года . Проверено 14 августа 2016 года .
- ^ Хосе Баррето (7 июля 2014 г.). «Обновленные ссылки на файловом сервере Windows Server 2012 R2 и SMB 3.02» . Блоги по серверу и менеджменту Microsoft TechNet . Архивировано 26 августа 2016 года . Проверено 14 августа 2016 года .
- ^ Хосе Баррето (12 декабря 2013 г.). «Конференция разработчиков хранилищ - слайды SDC 2013 теперь общедоступны. Вот ссылки на слайды Microsoft…» . Блоги по серверу и менеджменту Microsoft TechNet . Архивировано 26 августа 2016 года . Проверено 14 августа 2016 года .
- ^ Эрик Гейер (5 декабря 2013 г.). «WindowsNetworking.com: Улучшения в обновлениях протокола SMB 3.0 и 3.02» . WindowsNetworking.com . Архивировано 9 апреля 2015 года . Проверено 6 апреля 2015 года .
- ^ Хосе Баррето (30 апреля 2015 г.). «Сетевые ссылки SMB3 для Windows Server 2012 R2» . Блоги по серверу и менеджменту Microsoft TechNet . Архивировано 26 августа 2016 года . Проверено 14 августа 2016 года .
- ^ Хосе Баррето (5 мая 2015 г.). «Что нового в SMB 3.1.1 в Windows Server 2016 Technical Preview 2» . Блоги по серверу и менеджменту Microsoft TechNet . Архивировано 8 октября 2016 года . Проверено 14 августа 2016 года .
- ^ Нил Карпентер (26 октября 2004 г.). «Производительность SMB / CIFS по каналам WAN» . Microsoft . Архивировано 13 февраля 2020 года . Проверено 13 февраля 2020 года .
- ^ «Что нового в SMB в Windows Server» . Microsoft . Архивировано 11 февраля 2017 года . Проверено 6 февраля 2017 года .
- ^ Марк Рабинович, Игорь Гохман. «Методы ускорения CIFS» (PDF) . Конференции разработчиков хранения, SNIA, Санта - Клара 2009 . Проверено 6 июля, 2020 .
- ^ Марк Рабинович. «Ускорение SMB2» (PDF) . Конференции разработчиков хранения, SNIA, Санта - Клара 2011 . Проверено 6 июля, 2020 .
- ^ Кристофер Хертель (1999). «SMB: протокол блока сообщений сервера» . Архивировано 10 марта 2010 года . Проверено 1 ноября 2009 года .
- ^ «Описание Microsoft Windows Encryption Pack 1» . Microsoft . 1 ноября 2006 года архивации с оригинала на 2 октября 2009 года . Проверено 1 ноября 2009 года .
- ^ «Исполнительный приказ США 13026» (PDF) . Правительство США . 1996. Архивировано 10 октября 2009 года (PDF) . Проверено 1 ноября 2009 года .
- ^ Триджелл, Эндрю (27 июня 1997 г.). «Немного истории и немного веселья» . Архивировано 17 июля 2011 года . Проверено 26 июля 2011 года .
- ^ «Самба 4 функциональных уровня» . 25 февраля 2011 года. Архивировано 29 июля 2014 года . Проверено 12 января 2014 года .
- ^ "нетсмб (4)" . Справочные страницы NetBSD 8.0 . Проверено 5 января 2020 года .
- ^ - Руководство по форматам файлов FreeBSD . - Руководство по форматам файлов Darwin и macOS.
- ^ «Расширения UNIX» . SambaWiki . Архивировано 12 июня 2020 года . Проверено 15 марта 2020 года .
- ^ Доктор Суну Инженер. «Создание масштабируемого и производительного сервера протокола SMB» (PDF) . Архивировано 27 сентября 2016 года (PDF) . Проверено 25 сентября 2016 года .
- ^ «Microsoft и Tuxera укрепляют партнерство через Tuxera SMB Server» . Microsoft . Центр новостей Microsoft. Архивировано 17 ноября 2016 года . Проверено 6 февраля 2017 года .
- ^ «Оппортунистические замки» . Microsoft. Архивировано 23 октября 2012 года . Проверено 6 ноября 2012 года .
- ^ Sphere, IT (2014), All About Opportunistic Locking , заархивировано из оригинала 13 апреля 2014 года , получено 9 апреля 2014 года.
- ^ «MS02-070: Ошибка в подписи SMB может разрешить изменение групповой политики» . Microsoft . 1 декабря 2007 года. Архивировано 8 октября 2009 года . Проверено 1 ноября 2009 года .
- ^ «MS09-001: Уязвимости в SMB делают возможным удаленное выполнение кода» . Microsoft . 13 января 2009 года. Архивировано 5 октября 2009 года . Проверено 1 ноября 2009 года .,
- ^ "Sicherheitstacho.eu" . Deutsche Telekom . 7 марта 2013 года. Архивировано 8 марта 2013 года . Проверено 7 марта 2013 года .
- ^ «Предупреждение (TA14-353A) Целевое разрушительное вредоносное ПО» . US-CERT . Архивировано 20 декабря 2014 года . Проверено 20 декабря 2014 года .
- ^ «Хакеры Sony использовали инструмент-червь Server Message Block (SMB)» . Архивировано 20 декабря 2014 года . Проверено 20 декабря 2014 года .
- ^ «Атака программы-вымогателя WannaCry поражает жертв с помощью уязвимости Microsoft SMB» . eWeek . Проверено 13 мая 2017 года .
- ^ «Запись SMBleedingGhost: объединение SMBleed (CVE-2020-1206) с SMBGhost» . Блог ZecOps . 9 июня 2020 . Проверено 19 ноября 2020 года .
- ^ «Протоколы Windows» . Архивировано 26 сентября 2009 года . Проверено 13 октября 2009 года .
Внешние ссылки
- Раздел DFS в документации "Windows Developer"
- Хертель, Кристофер (2003). Внедрение CIFS - общей файловой системы Интернета . Прентис Холл. ISBN 0-13-047116-X . (Текст под лицензией Open Publication License версии 1.0 или более поздней, доступной по ссылке выше.)
- Общая файловая система Интернета , технические подробности от Microsoft Corporation
- NT LM 0.12 диалект SMB . В формате Microsoft Word
- Стивен М. Френч, Рождение новой сетевой файловой системы: сравнение SMB2, CIFS и NFS , Linux Symposium 2007
- Стив Френч, Будущее файловых протоколов: SMB2 встречает Linux , Linux Collaboration Summit 2012