Категория: Windows: Мониторинг
Озадачился вопросом выбора SNMP менеджера,
сейчас смотрю Castle Rock
пока больше ничего не нашел, может кто может посоветовать что-нибудь еще?
Под платформы Windows или Linux
Leonidv 09 Март 2008 - 18:41 vitamin 10 Март 2008 - 00:40 AntonM 10 Март 2008 - 11:48 Leonidv 12 Март 2008 - 21:13 login 17 Март 2008 - 16:04 vitamin 05 Декабрь 2008 - 00:02ПО для контроля ЛВС представляет собой еще одно популярное поле деятельности отечественных производителей. Конечно, здесь, как и на других «полях», численно преобладают тривиальные поделки; однако некоторые сделаны достаточно аккуратно и могут оказаться полезными для системных администраторов.
ОАО НПП «Полигон» поставляет программу Polygon SNMPManager 0.6.3 для контроля и управления сетевыми устройствами с помощью протокола SNMP. Круг потенциальных пользователей этого ПО избавляет производителя от подробного описания объектов, с которым оно работает, тем не менее русский язык (наряду с английским) здесь распространяется не только на интерфейс, но и на справочный аппарат (краткий, но грамотный).
Polygon SNMPManager с помощью других программ периодически опрашивает по протоколу ICMP или SNMP все устройства ЛВС, имеющие IP-адрес. Пользователь может выбирать опрашивающие программы и настраивать параметры их запуска, но из числа тех, которые дают число потерянных запросов в процентах; классический пример – ping. В настоящее время реализованы только типы опроса «ICMP ping» и «SNMPv1»; в случае необходимости периодический опрос можно отключить.
Ко всем указанным устройствам можно подключиться по протоколу Telnet или SSH с помощью внешних приложений, например, тех, которые входят в пакет поставки: для Windows – свободно распространяемая утилита putty.exe, для Linux соответственно протоколам предлагаются утилиты telnet и ssh.
Polygon SNMPManager принимает SNMP-ловушки от объектов и может формировать соответствующие события.
Предусмотрено создание объекта подсети (контейнера) и формирование структуры MIB-дерева из MIB-файлов; в конфигурацию можно добавить устройство производства НПП «Полигон» с настройками по умолчанию. При необходимости можно загрузить изображение-карту, которое будет являться фоном для схемы создаваемого контейнера.
Связи между объектами схемы можно визуализировать, а текущую конфигурацию напечатать или сохранить в текстовом виде.
При первом запуске Polygon SNMPManager предложит создать учетные записи. В программе всегда присутствуют две учетных записи: «Гость» (guest) и root. Следует сменить пароль пользователя root (по умолчанию «root») и создать требуемое число дополнительных учетных записей. Пользователи могут играть пять ролей.
«Гость» имеет минимальные права – навигация по схеме, просмотр информации о программе и авторизация; его учетную запись нельзя редактировать либо удалять. «Оператор» может эксплуатировать сетевую конфигурацию (чтение/запись данных по SNMP, подключение к устройствам по Telnet/SSH), а также просматривать, но не редактировать параметры устройств и связей. «Старший оператор» дополнительно к правам «Оператора» может загружать, настраивать и сохранять сетевую конфигурацию, выводить информацию на печать. «Администратору» разрешено выполнять все действия, кроме отладочных и редактирования пользователя root. Root может выполнять все действия, включая отладочные; его учетная запись доступна для просмотра и редактирования только ему самому.
Производитель рекомендует использовать учетные записи с ролью root или «Администратор» только для конфигурации программы и категорически не рекомендует постоянную работу с высокими полномочиями.
Предприятие-изготовитель поставляет Polygon SNMPManager в вариантах для ОС Windows и Linux. Программа совместима с Windows 2000 / XP / 2003; работоспособность в Windows Vista не гарантирована. Дистрибутив для Linux представлен форматами rpm и deb. Установка других форматов пакетов возможна, но может привести к нестабильной работе системы.
Искать на ИТ-ресурсах: Polygon SNMP Manager
Версия: 0.6.3.1
Категория: Мониторинг сети
Язык: Русский
ОС: Windows Vista, XP, 2000
Разработчик: ОАО НПП \"Полигон\"
Дата: 2013-05-31 15:51:37
Просмотров: 209
Скачиваний: 16
Внимание. Для пользователей устаревшего веб-браузера Opera версий 12 – 12.16 ссылка на скачивание не работоспособна. Поэтому Мы рекомендуем Вам скачать свежую версию браузера Opera на новом движке.
Polygon SNMP Manager - с помощью этого программного продукта системный администратор сможет следить и управлять сетевыми устройствами с использованием протокола SNMP.
Через 20 лет в детском саду (или в детском чате) мальчик спрашивает девочку: - A твои родители в каком чате познакомились?
Все серьезные системы управления сетями используют для своей работы простой сетевой протокол управления (Simple Network Management Protocol, SNMP). На самом деле SNMP - это не просто протокол, а целая технология, призванная обеспечить управление и контроль за устройствами и приложениями в сети. С ее помощью можно контролировать абсолютно любые устройства, подключенные к компьютерной сети, например датчики пожаротушения или даже светофоры. Разумеется, SNMP можно использовать (и это активно делают) для управления сетевыми компонентами: концентраторами, серверами, маршрутизаторами и т. п. Пользуясь информацией SNMP (такой, как показатель числа пакетов в секунду и коэффициент сетевых ошибок), сетевые администраторы могут более просто управлять производительностью сети и обнаруживать и решать сетевые проблемы.
Три составляющие части технологии SNMP: структура управляющей информации (Structure of Management Information, SMI) базы управляющей информации (Management Information Base, MIB) сам протокол SNMP
Модель управления SNMP
Агентами в SNMP являются программные модули, которые работают в управляемых устройствах. Агенты собирают информацию об управляемых устройствах, в которых они работают, и делают эту информацию доступной для систем управления сетями (network management systems - NMS) с помощью протокола SNMP.
Протокол SNMP v1
SNMP реализован в 1988 практически во всех широко распространенных сетевых средах: TCP/IP, IPX/SPX, AppleTalk и др. Основной концепцией протокола является то, что вся необходимая для управления устройством информация хранится на самом устройстве - будь то сервер, модем или маршрутизатор - в так называемой Административной Базе Данных ( MIB - Management Information Base ). SNMP как непосредственно сетевой протокол предоставляет только набор команд для работы с переменными MIB. Этот набор включает следующие операции:
Для того, чтобы проконтролировать работу некоторого устройства сети, необходимо просто получить доступ к его MIB, которая постоянно обновляется самим устройством, и проанализировать значения некоторых переменных.
Формат сообщений
Сообщения SNMP состоят из 2 частей: имени сообщества (community name) и данных (data). Имя сообщества назначает среду доступа для набора NMS, которые используют это имя. Информационная часть сообщения содержит специфичную операцию SNMP (get, set, и т.д.) и связанные с ней операнды. Операнды обозначают реализации об'екта, которые включены в данную транзакцию SNMP.
Structure of Managment Information. RFC 1208
Определяет логику адресации информации при взаимодействии агентов и менеджеров SNMP. Синтиксис описывается абстрактными правилами Abstract Syntax Notation One, ASN.1.
Managment Information Base (MIB, MIB-II). RFC 1213
MIB представляет из себя набор переменных, характеризующих состояние объекта управления. Эти переменные могут отражать такие параметры, как количество пакетов, обработанных устройством, состояние его интерфейсов, время функционирования устройства и т.п. Каждый производитель сетевого оборудования, помимо стандартных переменных, включает в MIB какие-либо параметры, специфичные для данного устройства (в поддерево private enterprise).
Как происходит адресация в MIB к некоторой ее переменной?
По своей структуре MIB представляет из себя дерево.Каждому элементу соответствует численный и символьный идентификатор. В имя переменной включается полный путь до нее от корневого элемента root.
Например, время работы устройства с момента перезагрузки хранится в переменной, находящейся в разделе system под номером 3 и называется sysUpTime. Соответственно, имя переменной будет включать весь путь: iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysUpTime(3); или на языке чисел: 1.3.6.1.2.1.1.3. Следует заметить, что при этом узлы дерева разделяются точками.
Существует стандартная ветвь MIB, относящаяся к разделу управления mgmt, которую обычно поддерживают все сетевые устройства.
Тестирование сети с помощью SNMP
При помощи SNMP можно выполнять различные тесты функциональных возможностей сетевых устройств, определенные опять же на самих устройствах. Это бывает полезно, поскольку просто наблюдение статистики зачастую не дает полной картины происходящего.
Так, например, для раздела, относящегося к интерфейсам Ethernet, определен тест TDR (Time-domain reflectometry), позволяющий определять приблизительное расстояние до повреждения в коаксиальном кабеле. Для того, чтобы запустить TDR тест необходимо установить значение переменной ifExtnsTestTypе (1.3.6.1.2.1.12.2.1.4), содержащей тип выполняемого теста, так, чтобы она содержала идентификатор теста TDR в MIB: 1.3.6.1.2.1.10.7.6.1.
Результатом теста будет, во-первых, значение переменной ifExtnsTestResult (1.3.6.1.2.1.12.2.1.5), характеризующей исход теста:
И во-вторых, значение переменной ifExtnsTestCode (1.3.6.1.2.1.12.2.1.6) будет содержать идентификатор переменной MIB, содержащей результат теста. Результат теста определен как временной интервал в 100-наносекундных единицах между началом передачи тестового пакета и обнаружением коллизий в несущей. В принципе, на основании данного значения можно определить требуемое расстояние.
Фундаментальным новшеством в SNMPv2 является то, что элемент администрирования сети может работать в качестве менеджера, агента или менеджера и агента одновременно. Данная концепция дает возможность пользователям применять SNMP в иерархической структуре, в которой локальные менеджеры отчитываются перед менеджерами среднего звена, которые, в свою очередь, контролируются менеджером высшего уровня. Немало места отводится проблемам защищенности SNMP, пожалуй, самой уязвимой точки протокола.
Безопасность SNMP. RFC 1352.
Один из наиболее заметных недостатков SNMP v1 - отсутствие развитой системы защиты данных на уровне, необходимом для сетей масштаба предприятия.
Как сказал Mike Warfield: "SNMP stands for Security Not My Problem".
В SNMPv1 защита административной информации трактовалась слишком упрощенно: она базировалась на использовании коллективного имени (Community Name), которое, находясь в заголовке SNMP, несло в себе все возможности защиты сообщений. Данное средство (известное под названием тривиальный протокол) требовало, чтобы программа-агент и менеджер опознали одно и то же коллективное имя, прежде чем продолжить выполнение операций сетевого администрирования. В результате многие администраторы сетей ограничивались в своей работе только функциями мониторинга, запрещая выдачу команды SET, способной изменять параметры конфигурации удаленного устройства. Это привело к тому, что пользователи избегали команд SET: такое примитивное средство защиты, как коллективное имя, могло дать возможность лицам, не наделенным соответствующими полномочиями, изменять параметры, о чем пользователи могли даже и не узнать. К тому же вся критически важная информация передавалась в открытом виде,поэтому в интернете доступен даже snmp sniffer
В связи с этим были разработаны предложения по совершенствованию защиты в рамках SNMPv1, представленные в июле 1992 г.; они составили основу структуры защиты для SNMPv2.
Стандартами защиты SNMPv2 определяются методы аутентификации (DAP - Digest Authentication Protocol) и обеспечения конфиденциальности (SPP -Symmetric Privacy Protocol) информации административного характера. В основе лежит концепция участника (party) - уникального набора параметров защиты, который может включать местоположение сети, протоколы аутентификации и обеспечения конфиденциальности, используемые между агентом и менеджером.
Проблемы внедрения SNMPv2
SNMPv2 сулит выгоды в плане защиты и производительности, что немаловажно для пользователей. Но некоторые компании наверняка предложат свои собственные идеи, особенно в части защиты и связей между менеджерами. Кроме того, фирмы, расширившие функциональные возможности своих баз данных MIB в средах с SNMPv1, вряд ли будут спешить с выпуском продуктов под SNMPv2.
Несомненно,пользователи захотят иметь продукты на базе SNMPv2. Но дело в том, что многие уже вложили слишком большие средства в версию SNMPv1, чтобы просто выбросить ее и начать все с нуля. Авторы SNMPv2 предвидели это и исходили из постепенности перехода на новую технологию. Предусмотрены два способа сохранения SNMPv1: использование уполномоченных агентов и двуязычных менеджеров. Уполномоченный агент выполняет преобразование форматов SNMPv1 в сообщения SNMPv2 и обратно.
Другой вариант - двуязычный менеджер, который одновременно поддерживает оба протокола (SNMPv1 и SNMPv2) и не требует преобразований. Двуязычный менеджер SNMP определяет, с каким форматом работает агент - версии 1 или версии 2, и общается на соответствующем диалекте. Таким образом, выбор версии протокола должен быть прозрачен для принимающих устройств.
К сожалению,вторая версия SNMP так до сих пор и не утверждена, поэтому в стане сетевого управления наблюдается разброд и шатания.
Доступные реализации агентов и менеджеров
MS SMS Netmon
куча разнообразных агентов и менеджеров для Win95.
Epilogue предлагает ПО, реализующее поддержку SNMP, включающую:
Атака на Windows SNMP.
Cервисы работают на следующих UDP портах (/etc/services)
Интересные SMI Network Management Private Enterprise Codes:
Prefix: 1.3.6.1.4.1.
Небольшое распространение сканнеров UDP портов под Windows, SNMP менеджеров, а также отсутствие знаний о самом протоколе является, по всей видимости, единственной причиной малочисленности атак на устройства под управление SNMP v1, так как в реализациях этого протокола в некоторых операционные системы допущены серьезные ошибки. Подтверждения этому то и дело появляются в списках рассылки bugtraq
Уязвимость в стандартной конфиругации Windows NT SNMP Сервиса.
Позволяет удаленно конфигурировать сетевые парамерты, которые влияют на безопасность и правильное функционирования системы (если администратор сам запустил SNMP Service)
При конфигурации по умолчанию, SNMP service отвечает на стандартное community ( имя ) "public", которое обладает права на чтение и запись. Community - это имя, которое обладает такими же функциями, как логин и пароль в системах.
Протокол SNMP предоставляет два уровня полномочий. read-only and read-write, однако до выхода SP4 Windows NT SNMP Service не позволял конфигурировать communities по доступу, отличному от read-write!
Если попытать обезопасить SNMP Service путем переименования community для доступа, то система останется незащищенной от крякера, имеющего аккаунт на машине, так как параметры SNMP Service находятся в регистри и доступны всем пользователям на чтение. Также Windows NT SNMP Service обладает возможностью ограничить доступ для списков IP-адресов. На первый взгляд это позволяет защититься от атак неизвестных систем, однако это не является проблемой для крякеров (что необходимо понимать любому администратору), так как протокол SNMP использует UDP протокол для обмена информацией, а он является протоколом без установления соединения, поэтому возможна подмена исходящего адреса (но для этого придется переработать исходники SNMP менеджеров под Unix и изучить UDP spoofing)
SNMP "set" операции ( позволяющие менять значение переменных ) могут быть произведены с подменой обратного адреса на любой, так как ответ не нужен. Однако если включено ограничение доверенных IP адресов, но придется найти аккаунт на атакуемой системе и извлечь доверенную информацию из регистри.
Благодаря сконфигурированному по умолчанию Windows NT SNMP Сервису мы можем извлечь с помощью SNMP менеджера следующую информацию.
Как рекомендовалось в ISS scanner'е, можно выключить эту порцию SNMP mibs таким способом:
Устанавливая переменные, крякер может модифицировать таблицу роуминга, ARP таблицу, выключить сетевые интерфейсы, сбить существенные сетевые параметры типа default IP, время жизни пакетов (TTL), IP forwarding (позволит крякеру перенаправлять сетевой трафик). Это особенно опасно, если атакуемая машина является фаерволом.
За примерами далеко ходить не надо, например, если машина является domain controller или server, но получить список всех пользователей в домене можно командой C:\NTRESKIT>snmputil walk public .1.3.6.1.4.1.77.1.2.25
Если вам хочется удалить все записи в базе данных WINS ( что приведет к полному отказу WinNT ), то для этого необходимо выполнить
$snmpset -v 1192.178.16.2 public .1.3.6.1.4.1.311.1.2.5.3.0 a 192.178.16.2 из набора CMU SNMP development kit under Unix.
Также есть очень любопытная деталь при установки SNMP community names в Windows NT 4.0 (SP3). Если сервис включен, а имена не сконфигурированы, то любое имя будет давать read/write привилегии. Как оказалось, это указано еще в спецификации SNMP ( RFC 1157 )!
Четвертый СервисПак(SP4) предоставляет следующее решение проблемы: добавление контроля доступа community как READ ONLY,READ WRITE или READE CREATE. Однако по умолчанию SP4 устанавливает READ CREATE доступ, который все еще позволяет атаковать машины. Микрософт явно заботиться об удобстве WinNT для хакеров :)
Лучший способ защиты по рекомендации M$: заблокировать SNMP access на firewall'е.
Проблема в OS Solaris версии до 2.6.
Исходя из ISS Security Advisory (November 2nd, 1998), в агенте SNMP, который по умолчанию запущен в этой системе, существуют реальные угрозы получить доступ на уровне рута, манипулировать процессами и параметрами машины.
Для доступа к MIB-информации существует скрытая "undocumented community string", которая позволит атакующему изменить большинство системных параметров.
К сожалению, само это community не называется, однако ISS Internet Scanner и ISS RealSecure real-time intrusion detection могут детектировать эту проблемы, т.е. посмотреть можно и в их исходниках
Naumen Network Manager предоставляет широкие возможности для мониторинга и управления SNMP- устройствами.
Возможности программного продукта:
Как программа для SNMP мониторинга Naumen Network Manager облегчает контроль и управление гетерогенными сетями, объединяющими устройства разных производителей. Система выполняет поиск SNMP- устройств, на стороне сервера кэширует полученные данные и в автоматическом режиме сопоставляет их с информацией из MIB- файлов.
Такой подход обеспечивает ряд преимуществ:
Мониторинг и управление по SNMP предусматривает три режима работы с устройствами:
В системе Naumen Network Manager реализована возможность хранения в единой базе всей информации по истории SNMP- переменных (как табличных, так и скалярных). Для работы с данными SNMP пользователю предоставляется расширенный набор инструментов, в том числе датчики и тревоги, диаграммы, визуальные редакторы, отчеты.
Обработка оповещений от SNMP- устройствСистема получает SNMP- оповещения в виде информационных сообщений (informs) и ловушек (traps). Оповещения конвертируются в стандартные события Naumen Network Manager и сохраняются в единой базе данных. В дальнейшем к таким оповещениям можно применять все типовые операции: фильтрацию, поиск, подтверждение, сортировку, а также назначать тревоги.
Осуществляя SNMP мониторинг, Naumen Network Manager может самостоятельно генерировать информационные сообщения и SNMP- ловушки, выполняя их рассылку в ответ на тревоги, по запросу пользователя или расписанию.
Данная статья посвящена протоколу SNMP (Simple Network Management Protocol) - одному из протоколов модели OSI, который практически не был затронут в документации просторов RU-нета. Автор попытался заполнить этот вакуум, предоставив читателю почву для размышлений и самосовершенствования, касательно этого, возможно нового для Вас, вопроса. Этот документ не претендует на звание "документации для разработчика", а просто отражает желание автора, насколько это возможно, осветить аспекты работы с данным протоколом, показать его слабые места, уязвимости в системе "security", цели преследованные создателями и объяснить его предназначение.
ПредназначениеПротокол SNMP был разработан с целью проверки функционирования сетевых маршрутизаторов и мостов. Впоследствии сфера действия протокола охватила и другие сетевые устройства, такие как хабы, шлюзы, терминальные сервера, LAN Manager сервера. машины под управлением Windows NT и т.д. Кроме того, протокол допускает возможность внесения изменений в функционирование указанных устройств.
Основными взаимодействующими лицами протокола являются агенты и системы управления. Если рассматривать эти два понятия на языке "клиент-сервер", то роль сервера выполняют агенты, то есть те самые устройства, для опроса состояния которых и был разработан рассматриваемый нами протокол. Соответственно, роль клиентов отводится системам управления - сетевым приложениям, необходимым для сбора информации о функционировании агентов. Помимо этих двух субъектов в модели протокола можно выделить также еще два: управляющую информацию и сам протокол обмена данными.
"Для чего вообще нужно производить опрос оборудования?" - спросите Вы. Постараюсь пролить свет на этот вопрос. Иногда в процессе функционирования сети возникает необходимость определить определенные параметры некоторого устройства, такие как. например, размер MTU, количество принятых пакетов, открытые порты, установленную на машине операционную систему и ее версию, узнать включена ли опция форвардинга на машине и многое другое. Для осуществления этого как нельзя лучше подходят SNMP клиенты.
Помимо сказанного выше рассматриваемый протокол обладает еще одной весьма важной особенностью, а именно возможностью модифицировать данные на агентах. Безусловно, было бы глупостью разрешить модификацию абсолютно любого параметра, но ,не смотря на это, и количество тех параметров, для которых допускается операция записи просто пугает. С первого взгляда это полностью опровергает всю теорию сетевой безопасности, но, если углубиться в вопрос, то становится ясно, что не все так запущено, как кажется с первого взгляда. "Волков бояться - в лес не ходить". Ведь при небольших усилиях администратора сети можно свести риск успешного завершения атаки к минимуму. Но этот аспект мы обсудим позже.
Остановимся на том, какую же все-таки информацию может почерпнуть система управления из недр SNMP. Вся информация об объектах системы-агента подержится в так называемой MIB (management information base ) - базе управляющей информации, другими словами MIB представляет собой совокупность объектов, доступных для операций записи-чтения для каждого конкретного клиента, в зависимости от структуры и предназначения самого клиента. Ведь не имеет смысла спрашивать у терминального сервера количество отброшенных пакетов, так как эти данные не имеют никакого отношения к его работе, так как и информация об администраторе для маршрутизатора. Потому управляющая система должна точно представлять себе, что и у кого запрашивать. На данный момент существует четыре базы MIB.
Все имена MIB имеют иерархическую структуру. Существует десять корневых алиасов: 1) System - данная группа MIB II содержит в себе семь объектов, каждый из которых служит для хранения информации о системе (версия ОС, время работы и т.д.). 2) Interfaces - содержит 23 объекта, необходимых для ведения статистики сетевых интерфейсов агентов (количество интерфейсов, размер MTU, скорость передачи. физические адреса и т.д.). 3) AT (3 объекта) - отвечают за трансляцию адресов. Более не используется. Была включена в MIB I. Примером использования объектов AT может послужить простая ARP таблица (более подробно об ARP протоколе можно почитать в статье "Нестандартное использование протокола ARP", которую можно найти на сайте www.uinc.ru в разделе "Articles" ) соответствия физических (MAC) адресов сетевых карт IP адресам машин. В SNMP v2 эта информация была перенесена в MIB для соответствующих протоколов. 4) IP (42 объекта) - данные о проходящих IP пакетах (количество запросов, ответов, отброшенных пакетов). 5) ICMP (26 объектов) - информация о контрольных сообщениях (входящие/исходящие сообщения, ошибки и т.д.). 6) TCP (19) - все, что касается одноименного транспортного протокола (алгоритмы, константы, соединения, открытые порты и т.п.). 7) UDP (6) - аналогично, только для UDP протокола (входящие/исходящие датаграммы, порты, ошибки). 8) EGP (20) - данные о трафике Exterior Gateway Protocol (используется маршрутизаторами, объекты хранят информацию о принятых/отосланных/отброшенных кардах). 9) Transmission - зарезервирована для специфических MIB. 10) SNMP (29) - статистика по SNMP - входящие/исходящие пакеты, ограничения пакетов по размеру, ошибки, данные об обработанных запросах и многое другое.
Каждый из них представим в виде дерева, растущего вниз, (система до боли напоминает организацию DNS). Например, к адресу администратора мы можем обратиться посредством такого пути: system.sysContact.0. ко времени работы системы system.sysUpTime.0. к описанию системы (версия, ядро и другая информация об ОС). system.sysDescr.0. С другой стороны те же данные могут задаваться и в точечной нотации. Так system.sysUpTime.0 соответствует значение 1.3.0, так как system имеет индекс "1" в группах MIB II, а sysUpTime - 3 в иерархии группы system. Ноль в конце пути говорит о скалярном типе хранимых данных. Ссылку на полный список (256 объектов MIB II) Вы можете найти в конце статьи в разделе "Приложение". В процессе работы символьные имена объектов не используются, то есть если менеджер запрашивает у агента содержимое параметра system.sysDescr.0, то в строке запроса ссылка на объект будет преобразована в "1.1.0", а не будет передана "как есть". Далее мы рассмотрим BULK-запрос и тогда станет ясно, почему это столь важно. На этом мы завершим обзор структуры MIB II и перейдем непосредственно к описанию взаимодействия менеджеров (систем управления) и агентов.
В SNMP клиент взаимодействует с сервером по принципу запрос-ответ. Сам по себе агент способен инициировать только оно действие, называемое ловушкой прерыванием (в некоторой литературе "trap" - ловушка). Помимо этого, все действия агентов сводятся к ответам на запросы, посылаемые менеджерами. Менеджеры же имеют гораздо больший "простор для творчества", они в состоянии осуществлять четыре вида запросов:
Теперь представьте себе запрос менеджера на получение списка из сотни значений переменных. посланный в символьном виде, и сравните размер такового с размером аналогичного запроса в точечной нотации. Думаю, Вы понимаете, к чему привела бы ситуация, если бы символьные имена не преобразовывались вышеуказанным образом.
Кроме этого менеждеры могут обмениваться друг с другом информацией о своей локальной MIB. Такой тип запросов носит название InformRequest.
Приведу значения числовых констант для всех видов запросов:
Вот тут то мы сталкиваемся с еще одной интересной деталью, как видите для ловушке есть 2 числовые константы. На самом деле существует 2 основные версии протокола SNMP (v1 & v2) и самое важное то, что они не являются совместимыми (на самом деле версий значительно больше -SNMP v2 etc, только все эти модификации довольно незначительны, так как. например, введение поддержки md5 и т.п.).SNMP - протокол контроля и диагностики, в связи с чем. он рассчитан на ситуации, когда нарушается целостность маршрутов, кроме того в такой ситуации требуется как можно менее требовательный с аппаратуре транспортный протокол. потому выбор был сделан в сторону UDP.
Но это не значит, что никакой другой протокол не может переносить пакеты SNMP. Таковым может быть IPX протокол (например, в сетях NetWare). также в виде транспорта могут выступать карды Ethernet, ячейки ATM. Отличительной особенностью рассматриваемого протокола есть то, что передача данных осуществляется без установки соединения.
Допустим менеджер послал несколько пакетов разным агентам, как же системе управления в дальнейшем определить какой из приходящих пакетов касается 1ого и 2ого агента? Для этого каждому пакету приписывается определенный ID - числовое значение. Когда агент получает запрос от менеджера, он генерирует ответ и вставляет в пакет значение ID. полученное им из запроса (не модифицирую его). Одним из ключевых понятий в SNMP является понятие group (группа). Процедура авторизации менеджера представляет собой простую проверку на принадлежность его к определенной группе, из списка, находящегося у агента. Если агент не находит группы менеджера в своем списке, их дальнейшее взаимодействие невозможно. До этого мы несколько раз сталкивались с первой и второй версией SNMP. Обратим внимание на отличие между ними.
Первым делом заметим, что в SNMP v2 включена поддержка шифрования трафика, для чего, в зависимости от реализации, используются алгоритмы DES, MD5.
Это ведет к тому что при передаче данных наиболее важные данные недоступны для извлечения сниффингом, в том числе и информация о группах сети. Все это привело в увеличению самого трафика и усложнению структуры пакета. Сам по себе, на данный момент, v2 практически нигде не используется. Машины под управлением Windows NT используют SNMP v1. Таким образом мы медленно переходим к, пожалуй, самой интересной части статьи, а именно к проблемам Security. Об этом давайте и поговорим.
Практика и безопасностьВ наше время вопросы сетевой безопасности приобретают особое значение, особенно когда речь идет о протоколах передачи данных, тем более в корпоративных сетях. Даже после поверхностного знакомства с SNMP v1/v2 становится понятно, что разработчики протокола думали об этом в последнюю очередь или же их жестко поджимали сроки сдачи проекта %-).
Создается впечатление что протокол рассчитан на работу в среде так называемых "доверенных хостов". Представим себе некую виртуальную личность. Человека, точнее некий IP адрес, обладатель которого имеет намерение получить выгоду. либо же просто насолить администратору путем нарушения работы некой сети. Станем на место этой особы. Рассмотрение этого вопроса сведем к двум пунктам:
a) мы находимся вне "враждебной сети". Каким же образом мы можем совершить свое черное дело? В первую очередь предполагаем что мы знаем адрес шлюза сети. Согласно RFC, соединение системы управления с агентом происходит по 161-ому порту (UDP). Вспомним о том что для удачной работы необходимо знание группы. Тут злоумышленнику на помощь приходит то, что зачастую администраторы оставляют значения (имена) групп, выставленные по умолчанию, а по умолчанию для SNMP существует две группы - "private" и "public". В случае если администратор не предусмотрел подобного развития событий, недоброжелатель может доставить ему массу неприятностей. Как известно, SNMP протокол является частью FingerPrintering. При желании. благодаря группе system MIB II, есть возможность узнать довольно большой объем информации о системе. Чего хотя бы стоит read-only параметр sysDescr. Ведь зная точно версию программного обеспечения, есть шанс. используя средства для соответствующей ОС получить полный контроль над системой. Я не зря упомянул атрибут read-only этого параметра. Ведь не порывшись в исходниках snmpd (в случае UNIX подобной ОС ), этот параметр изменить нельзя, то есть агент добросовестно выдаст злоумышленнику все необходимые для него данные. А ведь не надо забывать о том, что реализации агентов под Windows поставляются без исходных кодов, а знание операционной системы - 50% успеха атаки. Кроме того, вспомним про то, что множество параметров имеют атрибут rw (read-write), и среди таких параметров - форвардинг. Представьте себе последствия установки его в режим "notForwarding(2)". К примеру в Linux реализации ПО для SNMP под название ucd-snmp есть возможность удаленного запуска скриптов на сервера, путем посылки соответствующего запроса. Думаю, всем понятно к чему могут привести "недоработки администратора".
б) злоумышленник находится на локальной машине. В таком случае вероятность увольнения админа резко возрастает. Ведь нахождение в одном сегменте сети дает возможность простым сниффингом отловить названия групп, а с ними и множество системной информации. Этого случая также касается все сказанное в пункте (а).
Перейдем к "практическим занятиям". Что же может на понадобиться. В первую очередь программное обеспечение. Его можно достать на http://net-snmp.sourceforge.net. Примеры я буду приводить для ОС Линукс, но синтаксис команд аналогичен Windows ПО.
Установка пакета стандартна:
Запуск демона (агента)
После инсталяции Вам доступны программы:
Посмотрим, как выглядят описанные выше операции на практике. Запрос GetRequest реализует одноименная программа snmpget Для получения необходимой информации выполним следующую команду:
На что сервер добросовестно сообщит нам:
(не правда ли - довольно содержательно), либо же
Прямо-таки - руководство по проникновению. Допустим, мы хотим что-либо изменить в настройках агента. Проделаем следующую операцию:
и получим ответ:
Список объектов MIB II с атрибутами можно найти пойдя по ссылке, указанной в "Приложении". Думаю, настало время рассмотреть SNMP на пакетном уровне.
Этот пакет был отловлен сниффером NetXRay на сетевом интерфейсе агента. Как видим - практика не далека от теории. Наблюдаем Request ID и параметры запроса.
На полном скриншоте можно увидеть стек протоколов - от кадров Ethernet, через UDP доходим до самого Simple Network Management Protocol. А этот пакет был получен с интерфейса менеджера. Как видите, название группы абсолютно никак не шифруется (о чем в свою очередь говорит Protocol version number. 1 ). Хочется отметить, что согласно спецификации протокола, пакеты SNMP не имеют четко определенной длины. Существует ограничение сверху равное длине UDP сообщения, равное 65507 байт, в свою очередь сам пртокол накладывает другое максимальное значение - лишь 484 байта. В свою очередь не имеет установленного значения и длина заголовка пакета (headerLength).
Ну вот мы в общих чертах и ознакомились с протоколом SNMP. Что еще можно добавить к сказанному выше. Можно лишь дать пару советов сетевым администраторам, дабы уменьшить риск возникновения пролем с безопасностью сети. В первую очередь должное внимание следует уделить настройке файрволинга. Во-вторых - изменить установленные по умоланию имена групп. Разумным было бы жестко зафиксировать адреса машин (менеджеров), с которых разрешается опрос агентов.
На этом, считаю, статью можно и закончить. Хочется верить, что она показалась Вам интересной.