Протокол NetBIOS
NetBIOS (Network Basic Input/Output System) — это программный интерфейс, предназначенный для организации взаимодействия между компьютерами в локальной сети. Он предоставляет приложениям набор функций для работы с именами устройств, установления сеансов связи и передачи данных, работая поверх протоколов транспортного и сетевого уровней (обычно TCP/IP). NetBIOS не является сетевым протоколом в строгом смысле, а скорее API (интерфейсом программирования приложений), который может быть реализован с использованием различных протоколов, таких как NetBEUI, IPX/SPX или NBT (NetBIOS over TCP/IP).
История
Протокол NetBIOS был разработан компанией IBM в 1983 году как часть технологии Sytek для построения локальных сетей на базе ПК. Первоначально он предназначался для операционной системы PC Network и обеспечивал базовые функции сетевого взаимодействия, включая идентификацию компьютеров по именам и обмен данными. В 1985 году Microsoft адаптировала NetBIOS для своей операционной системы MS-DOS, включив его в состав сетевой оболочки MS-Net. С ростом популярности Windows NetBIOS стал стандартным компонентом всех версий этой ОС, начиная с Windows 95 и заканчивая Windows 10, хотя в современных версиях он отключён по умолчанию.
С развитием глобальной сети Интернет и повсеместным переходом на стек TCP/IP возникла необходимость адаптировать NetBIOS для работы поверх IP. В 1987 году был опубликован стандарт RFC 1001 и RFC 1002, описывающий протокол NBT (NetBIOS over TCP/IP). Это позволило использовать NetBIOS в сетях на базе TCP/IP, что обеспечило его совместимость с современными сетевыми инфраструктурами. В 1990-х годах NetBIOS стал основой для сетевых служб Microsoft Windows, включая файловые и принтерные ресурсы (SMB/CIFS), а также для службы имён WINS (Windows Internet Name Service).
Архитектура и принципы работы
NetBIOS предоставляет три основных типа сервисов:
Сервис имён (Name Service)
Каждому компьютеру или ресурсу в сети NetBIOS присваивается уникальное 16-символьное имя. Первые 15 символов используются для идентификации устройства (например, «WORKSTATION»), а 16-й — для указания типа службы (например, 0x00 для рабочей станции, 0x20 для сервера). Имена могут быть уникальными (только одно устройство с таким именем в сети) или групповыми (несколько устройств с одним именем, например, для работы группы). Регистрация и разрешение имён выполняется через широковещательные запросы (broadcast) или через сервер WINS.
Сервис сеансов (Session Service)
Этот сервис обеспечивает установление, поддержание и завершение надёжных двусторонних соединений между двумя узлами. Он работает поверх протокола TCP (порт 139) и гарантирует доставку данных в порядке их отправки. Сеанс устанавливается по запросу клиента, после чего стороны могут обмениваться данными в режиме «точка-точка». Сервис сеансов используется для передачи файлов, печати и других операций, требующих надёжности.
Сервис дейтаграмм (Datagram Service)
Предоставляет ненадёжную передачу коротких сообщений (дейтаграмм) без установления соединения. Работает поверх протокола UDP (порт 138) и поддерживает как одноадресную, так и многоадресную (broadcast) рассылку. Используется для отправки небольших сообщений, таких как уведомления или запросы, где потеря отдельных пакетов не критична.
Протоколы реализации
NetBIOS может работать поверх нескольких транспортных протоколов:
NetBIOS over TCP/IP (NBT)
Наиболее распространённая реализация, описанная в RFC 1001 и RFC 1002. Использует порты:
- 137/UDP — для сервиса имён (NetBIOS Name Service)
- 138/UDP — для сервиса дейтаграмм (NetBIOS Datagram Service)
- 139/TCP — для сервиса сеансов (NetBIOS Session Service)
NBT позволяет интегрировать NetBIOS в сети TCP/IP, обеспечивая совместимость с современными маршрутизаторами и межсетевыми экранами.
NetBEUI (NetBIOS Extended User Interface)
Протокол, разработанный IBM и Microsoft для локальных сетей. Не маршрутизируемый, работает только в пределах одного сегмента сети. Используется в старых версиях Windows (до Windows 2000) и в средах, не требующих выхода в Интернет. NetBEUI прост в настройке, но неэффективен в больших сетях из-за отсутствия механизмов маршрутизации.
NetBIOS over IPX/SPX
Реализация для сетей Novell NetWare. Использовалась в 1990-х годах, но с упадком IPX/SPX практически вышла из употребления.
Применение
NetBIOS широко использовался в операционных системах Microsoft Windows для организации сетевого взаимодействия:
- Файловые и принтерные ресурсы: NetBIOS служит основой для протокола SMB (Server Message Block), который обеспечивает доступ к файлам и принтерам в локальной сети. В современных версиях Windows SMB работает напрямую через TCP/IP (порт 445), но старые системы всё ещё полагаются на NetBIOS.
- Служба имён WINS: Сервер WINS (Windows Internet Name Service) регистрирует и разрешает NetBIOS-имена в IP-адреса, что необходимо для работы в сетях с сегментацией, где широковещательные запросы неэффективны.
- Сетевые игры и приложения: Многие старые игры и программы использовали NetBIOS для многопользовательского режима или обмена данными в локальной сети.
- Управление сетью: NetBIOS применялся для обнаружения устройств и служб в сети, хотя эта функция в значительной степени вытеснена протоколом DNS и службами Active Directory.
Безопасность и уязвимости
NetBIOS имеет ряд уязвимостей, связанных с его архитектурой и использованием в сетях TCP/IP:
- Отсутствие аутентификации: Сервис имён NetBIOS не проверяет подлинность запросов, что позволяет злоумышленникам подменять имена (spoofing) или проводить атаки типа «человек посередине».
- Широковещательные запросы: В сетях без сервера WINS все запросы на разрешение имён рассылаются широковещательно, что создаёт избыточный трафик и позволяет злоумышленникам перехватывать информацию.
- Уязвимости SMB: Поскольку NetBIOS тесно связан с протоколом SMB, атаки на SMB (например, EternalBlue, использованная в атаке WannaCry) могут затрагивать и NetBIOS.
- Открытые порты: Порты 137–139 часто становятся целью сканирования и атак извне, если они не заблокированы межсетевым экраном.
В современных сетях NetBIOS рекомендуется отключать для повышения безопасности. В Windows 10 и Windows Server 2016 и выше он отключён по умолчанию, а для работы файловых ресурсов используется SMB через TCP/IP (порт 445). Однако в некоторых устаревших средах (например, на старых версиях Windows или в сетях с оборудованием, не поддерживающим SMB 2.0) NetBIOS всё ещё может быть необходим.
Современное состояние
С распространением IPv6, DNS и служб Active Directory (AD) NetBIOS постепенно вытесняется из использования. В Windows Server 2008 и выше рекомендуется отключать NetBIOS через TCP/IP для всех сетевых интерфейсов, если это не требуется для совместимости с устаревшими приложениями. В Windows 10 и 11 NetBIOS отключён по умолчанию, но может быть включён вручную для поддержки старых программ.
Тем не менее, NetBIOS остаётся важным элементом истории сетевых технологий и продолжает использоваться в некоторых корпоративных средах, где требуется обратная совместимость с устаревшими системами. Его изучение полезно для понимания эволюции сетевых протоколов и механизмов идентификации в локальных сетях.
Источники
- RFC 1001 — «Protocol Standard for a NetBIOS Service on a TCP/UDP Transport: Concepts and Methods»
- RFC 1002 — «Protocol Standard for a NetBIOS Service on a TCP/UDP Transport: Detailed Specifications»
- Microsoft Docs — «NetBIOS over TCP/IP (NetBT)»
- IBM PC Network Technical Reference Manual (1984)
- «Network Basic Input/Output System (NetBIOS)» — Microsoft Knowledge Base
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →