Перейти к содержимому

Ловушка snmp что это за служба

  • автор:

Протокол управления SNMP

Для регулирования устройств в IP-сетях нередко применяется SNMP. Эта аббревиатура расшифровывается как Simple Network Management Protocol. По сути, это стандартизированный интернет-протокол, который помогает отследить используемые сетевые устройства: маршрутизаторы, адаптеры, коммутаторы и т. д. Основное условие, чтобы оборудование было включено через IP и использовали определенное программное обеспечение.

Разберемся, как работает протокол SNMP, из каких компонентов он состоит и какие версии используются.

Подробнее о протоколе

snmp-1.jpg

SNMP является протоколом прикладного уровня, который необходим для обмена информацией между несколькими сетевыми машинами. Это не просто приложение, а свод используемых правил, который является частью модели TCP/IP. Протокол контролируется и управляется IETF.

При помощи протокола сисадмин может выполнять мониторинг сети, чтобы оценить ее производительность и изменить конфигурацию устройств. Поэтому SNMP стал довольно распространен и его применяют в сетях любого типа и объема. Причем чем больше сеть, тем лучше удается использовать функционал приложения. Он позволяет не только просматривать, но и управлять сетью через единый интерфейс.

Основное преимущество протокола – наличие интерфейса с автоматическими оповещениями и другими командами. Это избавляет от необходимости ручного ввода всех команд.

Архитектура

Разобравшись в вопросе, что такое SNMP, можно перейти к рассмотрению его архитектуры. Она состоит из следующих компонентов:

  • сетевая станция управления (управляемая сетевым менеджером);
  • управляемые компоненты;
  • агенты.

1. Сетевая станция управления.

Подробнее поговорим о каждом элементе. Начать стоит с сетевой станции управления, или Network Management Station. Именно NMS позволяет отслеживать используемые устройства, анализировать сведения, собранные мастер-агентами, определять производительность системы и создавать графические отчеты на основе полученных данных. Встроенный менеджер используется для прямой связи с агентами протокола.

2. Агенты.

Эта группа компонентов включает в себя ряд подгрупп. Начнем с мастер-агентов, которые служат для связи сетевых менеджеров и субагентов. Они анализируют поступающие запросы и отсылают их субагентам, затем получают информацию, создают ответ и отсылают его менеджеру.

Если запрос некорректен, неверно сформулирован или информация закрыта для доступа, то мастер-агент отправляет уведомление об этом.

Другой вид агента – это субагент. Он представляет собой специальное программное обеспечение, которое поставляется вендором вместе с сетевой машиной. Субагент получает запросы от мастер-агента и потом обратно пересылает ему собранную информацию. Соответствующий субагент используется вместе с отдельным управляемым компонентом.

3. Управляемые компоненты.

Представляют собой подключенные к сети компьютеры и устройства или специальное ПО, имеющее встроенный субагент. К числу устройств могут относиться коммутаторы, маршрутизаторы и серверы, а также современные гаджеты. Что касается ПО с субагентами, то к нему относят антивирусные программы, серверы резервного копирования и т. д.

Также в качестве компонентов протокола SNMP стоит выделить MIB и OID. Первый термин обозначает базу управляющей информации, в ней содержатся сведения об оборудовании. Каждая сетевая машина имеет свою таблицу с MIB-данными, в ней – данные о состоянии картриджа (у принтеров), о поступающем трафике (у коммутатора) и т. д.

OID представляет собой идентификатор объекта. MIB снабжается своим уникальным ID, который и позволяет идентифицировать устройство. OID существует в числовом виде, по сути – это числовой аналог существующего пути к файлу.

Принципы работы

Теперь подробнее поговорим о назначении и принципе действия протокола SNMP. Изначально протокол разрабатывался как инструмент для управления глобальной сетью. Однако благодаря гибкой структуре удалось приспособить SNMP для всех устройств сети и осуществлять контроль, наблюдение и настройки при помощи единой консоли. Все это послужило распространению протокола и его активному применению.

Работа SNMP строится на обмене информацией между менеджерами и агентами. Этот процесс осуществляется посредством протокола UDP. Реже используется TCP или протокол MAC-уровня.

В SNMP используется семь различных вариантов PDU, которые отвечают за получение данных с устройства, изменение или присваивание новых сведений, уведомления об ошибках, извлечение данных и т. д.

PDU состоит из конечного набора полей, в которых прописывается нужная информация. В частности, это поля:

  • Версия – указывает на используемую версию протокола.
  • Community (то есть пароль) – это определенная последовательность, которая описывает принадлежность SNMP к группе. Каждый тип PDU имеет свой идентификатор запроса (например, Set или Responde). Этот идентификатор помогает связать запрос и ответ.
  • Статус ошибки – число, которое описывает характер возникшей проблемы. Например, 0 обозначает отсутствие ошибок, а цифры 1–5 указывают на конкретный тип.
  • Индекс ошибки – индекс переменной, к которой относится полученная ошибка.

Функционирование SNMP подразумевает использование специальных сетевых портов. По умолчанию – это UDP-порты 161 и 162. Запросы поступают на порт SNMP 161. Далее с него отправляется ответ менеджеру. При отправке запроса он идентифицируется при помощи ID, что в дальнейшем позволяет связать запрос менеджера с поступившим ответом.

Порт 162 отвечает за прием ловушек агента. При использовании DLTS и TLS агент использует для пересылки сообщений порт 10162, а менеджер – 10161.

Мы подошли еще к одному важному элементу, который необходим для функционирования SNMP. Речь о ловушках, которые представляют собой способ коммуникации. Агент использует ловушки (Trap) в тех случаях, когда нужно сообщить менеджеру о каком-либо событии. Делается это по той причине, что менеджеры нередко отвечают за определенное количество устройств и несколько управляемых компонентов, поэтому не всегда могут вовремя отследить возникновение ошибки.

При получении ловушки, то есть уведомления, менеджер может выбрать нужное действие. Уведомления, которые присылает ловушка, обозначаются цифрами от 0 до 6. Код ошибки указывает на группу, к которой относится неполадка.

В SNMP используется два вида ловушек – помимо Trap, это еще и Inform. Разница в том, что второй тип ловушек предполагает подтверждение менеджера о ее получении.

Особенности применения

snmp-2.jpg

SNMP позволяет сисадмину работать с различными приложениями и облачными сервисами. Протокол имеет функционал для выполнения следующих операций:

  • перенастройка IP-адресов;
  • отправка запросов для контроля устройств;
  • сброс используемых паролей;
  • отслеживание нагрузки на сервера;
  • сбор информации о текущих ошибках;
  • мониторинг сообщений о неисправностях;
  • добавление сведений через сторонние OID и многое другое.

Существующие версии

Разработано три версии протокола, которые получили соответствующие названия – SNMPv1, SNMPv2c и SNMPv3. Все они активно используются даже сегодня, однако самой распространенной остается вторая версия. Расскажем о каждой разновидности подробнее:

  • Версия 1. Появилась еще в 80-е годы прошлого столетия. Ее главная особенность – это простота настройки, для использования протокола потребуется заполнить только строку пароля.
  • Версия 2. Стала использоваться спустя десятилетие после первой версии SNMP. Помимо стандартного функционала первой версии, новая – включила в себя ловушку Inform и дополнительный запрос GetBulk. Также была существенно доработана безопасность инструмента. Ключевая особенность – наличие двух способов взаимодействия с устройствами, использующими SNMPv1, – через прокси-агенты или двуязычную систему управления. Поддержка этой версии SNMP выполняется до сих пор, так как она наиболее практична в применении.
  • Версия 3. Появилась в конце 90-х годов. В отличие от предыдущей модификации, в ней имелась криптографическая защита, позволившая упростить удаленную настройку и управление объектами.

Вопросы безопасности

Протокол SNMP создавался в те времена, когда угроза взлома и несанкционированного доступа к данным была практически нулевой. Поэтому разработчики не уделяли этой проблеме особого внимания. Версия SNMPv1 практические не имеет защиты от взлома, чем могут воспользоваться злоумышленники.

Вторая версия разрабатывалась с учетом анализа предыдущих недочетов и ошибок протокола. Эта версия SNMP стала более безопасной, однако на деле ее сложно назвать самой стабильной и надежной.

Практически все ошибки безопасности удалось решить только в третьей версии. Для обеспечения безопасности в протоколе применяется несколько моделей: Community-based, Party-based и User-based Security.

Выводы

Сегодня протокол SNMP является наиболее простым и эффективным методом сбора и передачи данными между сетевыми устройствами, мониторинга и управления их работой. Особенно актуальным применение такого протокола является при совмещении устройств, функционирующих на разном ПО и выпущенных разными вендорами. SNMP прост в работе, достаточно надежный, а самое главное – полностью бесплатный для использования. Этим не может похвастать практически ни один существующий набор правил.

Остались вопросы по работе SNMP? Специалисты Xelent обязательно ответят на них – оставьте заявку на сайте или свяжитесь с нами по указанным телефонам.

Протокол SNMP – что это такое и как использовать для мониторинга

Расшифровать аббревиатуру SNMP можно как Simple Network Management Protocol, то есть «простой протокол сетевого управления». Этот стандарт является одним из самых часто встречающихся при управлении устройствами в сети. В большинстве случаев этот протокол может быть использован в случаях, когда требуется контролировать исполнение на устройствах подключенных к сети заданных администратором требований. Данные, которые входят в обмен в рамках SNMP представляются в виде переменных. Благодаря им появляется возможность описания настройки управляемого объекта. Благодаря управляющим приложениям могут подаваться запросы, а в некоторых случаях и указываться переменные.

Возможности протокола

Основной особенностью данного протокола является удаленная настройка устройств в сети с помощью главного компьютера без использования стороннего ПО. В ходе управления сетевыми процессами можно проводить работу не только с определенными процедурами, но и наблюдать за производительностью в целом, проводить мониторинг ресурсов, а также определять возникающие неполадки в инфраструктуре. Поэтому протокол SNMP пользуется большой популярностью среди системных администраторов.

Основные составляющие SNMP

Самые распространенные составляющие:

  • подчиненный объект – объект, на который отправляются разнообразные команды;
  • MIB database;
  • управляющая программа;
  • подчиненная программа (агент);
  • система, которая обеспечивает взаимодействия в сети.

Информация из объекта будет отправляться на управляющую программу, которая будет интерпретировать ее по заданным алгоритмам. На подчиненном устройстве существует программа агент, предназначенная для организации сбора информации по определенному устройству. Если нужно – программа (ПО) может транслировать эту информацию в формате, адаптированном к особенностям SNMP.

Сама система обеспечения взаимодействия между объектами в сети позволяет администратору работать сразу со многими управляющими программами. Это дает возможность полностью контролировать функционирование инфраструктуры. В сетях могут быть установлены сразу несколько типов такого ПО.

Самым важным элементом считается база управляющих сведений “MIB”. Этот элемент нужен для того, чтобы описать структуру базы данных (БД), что необходимо при обмене информацией в ходе администрирования девайсов. Такая БД дает возможность сохранить данные о компонентах, которые активируются на устройстве для управления им.

Главной составляющей базы являются идентификаторы типа OID, которые позволяют задавать переменные, определяемые и считываемые благодаря SMNP.

Возможности управляющих программ

Такой тип программ дает право на управление группами различных девайсов, расположенных в одном сетевом пространстве. Управляющая программа может работать только в том случае, если ее приложение-агент установлен на всех подчиненных устройствах. Приложение отправляет на сервер администратора нужные данные с помощью SNMP. На главном ПК в это же время функционирует программа-менеджер, которая отвечает за обработку поступающих с приложений-агентов сведений.

Примеры программного обеспечения

Существуют подобные программы, которые адаптированы к использованию на ОС Windows и Solaris. Рассмотрим некоторые из них.

Пакет SNMP от Castle Rock Computing

Это безопасная система сетевого управления, обеспечивающая постоянное наблюдение для всей сети.

Основные характеристики продукта:

  • мониторинг устройств, WAN-соединений, серверов и приложений;
  • поддержка интернет-протокола версии 6 (IPv6);
  • поддержка SNMP v1, v2c и защищенной версии v3;
  • масштабируемая и распределяемая архитектура;
  • поддержка интеграции с сетевыми отчетами SNMPc OnLine;
  • основные/резервные серверы с автоматической отказоустойчивостью;
  • регистрация событий в Syslog;
  • удаленная консоль Windows;
  • автоматическое обнаружение сети;
  • среда для программирования и написания скриптов.

Castle Rock Computing

Интерфейс программы:

Polygon SNMP Manager

Программа предназначена для контроля и управления сетевыми устройствами с использованием протокола SNMP.

Polygon SNMP Manager

  • формирование структуры MIB-дерева из MIB-файлов;
  • чтение, изменение и запись параметров устройств по протоколу SNMP;
  • прием ловушки сетевых устройств с формированием событий;
  • периодический опрос элементов сети по протоколу ICMP или SNMP;
  • подключение к объектам в сети по протоколам telnet и SSH.

SNMP Explorer

Утилита для исследования и мониторинга предназначенная для агентских систем. Она предоставлена в стиле проводника в MIB, который открыт на агенте. Имеет самый простой интерфейс из всех представленных, но также и самая сложная в использовании.

SNMP Explorer

  • легко перемещать агент MIB, чтобы найти интересующие объекты и посмотреть их текущие значения;
  • извлечь значения объектов одним щелчком мыши;
  • просмотреть описания объектов MIB;
  • отправлять и получать ловушки;
  • автоматически обнаружить агенты в сети.

Особенности работы базы данных MIB

Главный процесс во время работы MIB – адресация переменных. Происходит она с учетом строения определенного элемента протокола. MIB имеет структуру в виде дерева, состоящую из совокупности элементов за каждым из которых закреплен уникальный ID.

В рамках базы MIB имя переменной отражает адрес до нее, начиная от корневого каталога. В структуре переменной могут храниться разнообразные данные, такие как продолжительность функционирования девайса. В MIB могут содержаться ветви с которыми может работать множество устройств, а также ветви, которые добавляет компания-разработчик, либо компания в которой проходит внедрение.

Перед введением структуры базы данных в работу нужно присвоить уникальный номер созданному набору переменных. Благодаря этому инженеры или администраторы, работающие с мониторингом, могут создать новую ветвь в структуре, которая позволит разместить переменные только от своего подразделения.

Что такое OID

OID – ID объекта, необязательный атрибут сертификата, предоставляющий дополнительную информацию о владельце, ключах, или несущий дополнительные данные для сервисов, которые используют этот сертификат.

Чаще всего OID используют для управления доступами на основе ролей. К примеру, в сертификате можно указать владельца ключа и информацию о нем. Благодаря этому его можно будет идентифицировать во всех информационных системах, а также он сможет получить доступ к нужным данным, исключая запросы на предоставление разрешений. Это возможно в тех случаях, когда во всех информационных системах используется сертификат пользователя для авторизации и одинаково анализируется один и тот-же атрибут.

Что такое ловушка SNMP

SNMP-ловушка — знак, который подает девайс, поддерживающий протокол SNMP. Ее основное назначение – сообщать администратору о чрезвычайных происшествиях в сети.

Пример: отдельные типы источников бесперебойного питания посылают такие сигналы во время смены устройством типа питания на питание от аккумуляторов, а не от сети. В большинстве случаев это требует скорейших действий и потому сообщение отправляется устройством по протоколу SNMP самостоятельно. Также к таким ловушкам стоит отнести отдельные марки датчиков вскрытия помещений. Эти датчики возможно подключить к сети, если нужно получать сигнал об открытии дверей.

Ловушка SNMP

В службах Windows также существует служба с названием “Служба ловушек SNMP”, выполняющая те же функции. На компьютерах, которые не подключены к локальной сети она не используется, но обычно включена. Для ее отключения необходимо зайти в “Пуск – Панель Управления – Администрирование – Службы” и в открывшемся списке найти указанную службу. Кликнуть по ней правой кнопкой мыши (ПКМ), далее “Свойства”, затем сменить “Тип запуска” на “Отключена”.

Для чего предназначен SNMP: руководство по NMS, MIB, OID, ловушкам и агентам

SNMP (Simple Network Management Protocol) представляет собой коммуникационный протокол, который позволяет отслеживать управляемые сетевые устройства, включая маршрутизаторы, коммутаторы, серверы, принтеры и другие устройства, которые включены через IP через единую систему управления / программное обеспечение.

Если сетевое устройство поддерживает протокол SNMP, вы можете включить и настроить его для начала сбора информации и мониторинга количества сетевых устройств, как вы хотите, из одной точки.

Что делает SNMP?

  • Мониторинг входящего и исходящего трафика, проходящего через устройство
  • Раннее обнаружение сбоев в сетевых устройствах вместе с предупреждениями / уведомлениями
  • Анализ данных, собранных с устройств в течение длительных периодов времени для выявления узких мест и проблем с производительностью
  • Возможность удаленного конфигурирования совместимых устройств
  • Доступ и управление устройствами удаленно, которые подключаются через SNMP

Менеджер (NMS)

Компонент Manager — это просто часть программного обеспечения, которое установлено на компьютере (которое при объединении называется Network Management System), которое проверяет устройства в вашей сети, как часто вы указываете информацию.

Менеджер имеет правильные учетные данные для доступа к информации, хранящейся агентами (что объясняется в следующем разделе), а затем компилирует их в читаемом формате для сетевого инженера или администратора для мониторинга или диагностики проблем или узких мест. Некоторые программные пакеты NMS более сложны, чем другие, что позволяет настраивать сообщения электронной почты или SMS, чтобы предупредить вас о неисправных устройствах в вашей сети, в то время как другие просто опросили устройства для получения более общей информации.

Агенты

SNMP Agent — это часть программного обеспечения, которое поставляется вместе с сетевым устройством (маршрутизатором, коммутатором, сервером, Wi-Fi и т. Д.), Которое при включении и настройке выполняет всю тяжелую работу для Менеджера путем компиляции и хранения всех данных из своего данное устройство в базу данных (MIB).

Эта база данных правильно структурирована, чтобы программное обеспечение менеджера могло легко опросить информацию и даже отправить информацию Менеджеру, если произошла ошибка.

Какие номера портов используют SNMP?

Менеджер программного обеспечения в предыдущем разделе регулярно проверяет агентов через порт UDP 161 .

Ловушки SNMP, о которых вы будете читать дальше, позволяют агенту отправлять информацию о системе и устройстве менеджеру через порт UDP 162 . Хотя UDP является общим протоколом, используемым SNMP, TCP также может использоваться.

Управляемые сетевые устройства

Управляемые сетевые устройства, в том числе маршрутизаторы, коммутаторы, Wi-Fi, серверы (Windows и другие), настольные ПК, ноутбуки, принтеры, UPS и т. Д., Имеют встроенное в них программное обеспечение агента, которое должно быть либо включено, либо настроено, либо просто настроено правильно для того, чтобы быть опрошены NMS.

MIB-файлы представляют собой набор вопросов, которые SNMP-менеджер может задать агенту. Агент собирает эти данные локально и сохраняет их, как определено в MIB. Таким образом, диспетчер SNMP должен знать эти стандартные и частные вопросы для каждого типа агента.

Агенты, как объяснялось выше, поддерживают организованную базу данных параметров устройства, настроек и т.д. Система NMS (Network Management system) опроса / запроса агента данного устройства, которая затем делится своей организованной информацией из базы данных, сделанной с помощью NMS, которая затем переводит ее в предупреждения, отчеты, графики и т. Д. База данных, которую Агент разделяет между Агентом, называется Информационной базой управления или MIB .

MIB содержат набор значений, как статистических, так и контрольных, которые определяются сетевым устройством. Во многих случаях расширения стандартных значений определяются с помощью Private MIB разными поставщиками сетевых устройств.

Чтобы упростить MIB, подумайте об этом так: MIB-файлы — это набор Вопросов, которые Менеджер может спросить у агента. Агент просто собирает эти вопросы и сохраняет их локально и обслуживает их по NMS по запросу.

Упрощенный пример работы MIB: NMS спросит у сетевого устройства вопрос, в данном случае, что такое ответ на вопрос 2?

Агент управляемых сетевых устройств затем отвечает с ответом на вопрос 2. Чтобы еще больше разбить это, давайте построим еще один пример.

Скажем, мы хотим знать системное время работы устройства.

NMS отправит запрос агенту, запрашивающему Системное время, — запрос отправляется как номер с MIB и объектом интереса, а также что-то, называемое экземпляром .

Распределение номера OID

MIB Объект интереса Пример
1.3.6.1.2.1.1 3 0
MIB Объект SysUptime Образец

Первые 2 части числа, отправленные агенту (MIB и объект интереса, который в этом случае является системным временем), называются идентификатором объекта или OID . Как упоминалось выше, MIB являются стандартными значениями, которые система сетевого управления уже знает и может опросить / запросить сетевые устройства для получения информации.

OID, Object Identifier — это просто номер, составленный MIB, объектом интереса и экземпляром. Каждый идентификатор является уникальным для устройства, и при запросе будет предоставлена ​​информация о том, что было запрошено OID.

Существует два типа OID:

  • скаляр
  • табличный

Скаляр — это экземпляр одного объекта — например, имя поставщика устройства. Может быть только одно имя поставщика, так что это будет скалярный OID.

С другой стороны, Tabular может иметь несколько результатов для своего OID — например, процессор Quad Core приведет к 4 различным значениям ЦП.

Ловушки

Ловушки используются, когда устройству необходимо предупредить программное обеспечение сетевого управления о событии без опроса. Ловушки гарантируют, что NMS получает информацию, если определенное событие происходит на устройстве, которое должно быть записано без предварительного опроса NMS.

Управляемые сетевые устройства будут иметь MIB Trap с заранее определенными условиями, встроенными в них. Крайне важно, чтобы система управления сетью объединяла эти MIB, чтобы получать любые ловушки, отправленные данным устройством.

MIB — это номер, который идентифицирует определенные характеристики или значения устройства, но если в системе управления сетью нет определенной MIB, которую отправляет ловушка сетевого устройства, нет способа интерпретировать, что такое MIB, и не будет записывать событие.

Версии (v1, v2c, v3)

Этот протокол прошел несколько пересмотров на протяжении многих лет, начиная с 1988 года, начиная с версии 1. Теперь мы до версии 3, но большинство систем управления сетью поддерживают все версии протокола.

Версия 1

Версия 1 была первой версией протокола, определенного в RFC 1155 и 1157. Эта версия является самой простой из 3-х версий протокола и является самой небезопасной из-за ее простой текстовой аутентификации.

Версия 2 (или 2c)

Версия 2 протокола была введена в 1993 году с большими улучшениями по сравнению с первой версией, включая транспортные сопоставления, элементы структуры MIB и, что самое важное, улучшенные обновления для проверки подлинности и безопасности.

Тем не менее, версии 1 и 2 / 2c имели встроенные риски безопасности, как упоминалось выше, — строки сообщества, которые эквивалентны паролям, где передается по проводу в виде прозрачного / обычного текста, позволяя любому, кто нюхает сеть, получить доступ к строке и могут компрометировать сетевые устройства и, возможно, перенастроить их с помощью SNMP.

Версия 3

Версия 3 протокола, дебютировавшая в 1998 году, сделала большие шаги для обеспечения безопасности набора протоколов, реализовав так называемую «пользовательскую безопасность». Эта функция безопасности позволяет вам устанавливать аутентификацию на основе требований пользователя. 3 уровня аутентификации:

  • NoAuthNoPriv: пользователи, которые используют этот режим / уровень, не имеют аутентификации и не имеют конфиденциальности при отправке / получении сообщений.
  • AuthNoPriv: этот уровень требует от пользователя аутентификации, но не будет шифрования отправленных / полученных сообщений.
  • AuthPriv: Наконец, самый безопасный уровень, в котором требуется аутентификация, и отправленные / полученные сообщения зашифрованы.

Версия 3 протокола является наиболее безопасной из группы, но с добавленной безопасностью и шифрованием добавлена ​​конфигурация и сложность настройки и конфигурации. Но при работе с сетевыми устройствами более высокого уровня, которые содержат конфиденциальную информацию, вознаграждение перевешивает головную боль при правильной настройке.

Проблемы безопасности SNMP на практике: имитация атак и меры профилактики

Уже больше 30 лет для мониторинга оборудования и сервисов используют протокол SNMP. За это время он прошел закономерную эволюцию, получив несколько версий протокола с особенностями безопасной передачи данных.

В рамках статьи попробуем погрузиться в практические аспекты безопасности передаваемых по SNMP данных. И понять, какие угрозы может нести небезопасная настройка и как это исправить.

Используйте навигацию, если не хотите читать текст полностью:

Знакомство с SNMP

SNMP — это стандартизированный протокол управления устройствами, которые находятся в IP-сетях — маршрутизаторами, коммутаторами, серверами, источниками бесперебойного питания и другими. С помощью SNMP можно отслеживать текущее состояние оборудования, управлять сетевыми устройствами, описывая различные сценарии. Про работу протокола читайте по ссылке.

Что нужно учитывать во время обзора проблем безопасности

Менеджер-агентная архитектура протокола. В SNMP есть два участника взаимодействия:

  1. Менеджер, Network Management Station (NMS) — занимается отправкой запросов агентам, получением «ловушек» (trap) от агентов, анализирует полученную информацию и может реагировать на полученные значения, например, отправляя команды по изменению параметров сетевых устройств.
  2. Агент — отвечает на запросы менеджера, отправляя необходимые сведения об устройстве, направляет менеджеру «ловушки» в соответствии с заданным расписанием.

SNMP-протокол использует UDP в качестве транспортного протокола. Это позволяет не нагружать сеть TCP-соединениями. Стоит упомянуть, что при обращении мастера к клиенту происходит ожидание ответа и повторный запрос, если его время превышено. В случае же отправки «ловушки» клиентом и потери пакетов по пути, сам клиент не узнает, что она не дошла, а мастер — что что-то должно было прийти.

В различных версиях SNMP используются различные подходы к безопасности. Так в SNMPv1 и SNMPv2 используется аутентификация по community string — в SNMPv3 есть три уровня безопасности:

  • noAuthNoPriv — без аутентификации и шифрования, при использовании этого режима все равно требуется securityName,
  • authNoPriv — с аутентификацией, но без шифрования,
  • authPriv — с аутентификацией и шифрованием.

SNMP подвержен брутфорсу учетных данных. По умолчанию в SNMP не предусмотрено ограничение по запросам от мастера к клиенту. Это значит, что community string (SNMPv1, SNMPv2), логин, пароль и ключ шифрования (SNMPv3) можно подобрать

Какие данные можно получить по SNMP

В рамках SNMP можно получить самую разнообразную информацию — о состоянии подсистем устройств, системных пользователях, об установленном ПО и открытых портах и другом.

Например, на сайтах производителей или систем мониторинга можно найти списки с описанием устройств, доступных к запросу и передаче данных по SNMP.

Какие изменения можно произвести на оборудовании с помощью SNMP

В зависимости от конкретного решения можно изменять параметры устройств (например, IP-адреса на сетевых интерфейсах), сбрасывать пароли пользователей до дефолтных значений, перезагружать и выключать устройства.

Эксплуатация уязвимостей

Сам по себе агент SNMP — это такая же служба (приложение), которая может содержать уязвимости. На сайте Mitre можно увидеть количество зарегистрированных и подтвержденных уязвимостей для протоколов SNMP разных версий. Тот же CVE-2022-20924 позволяет перезагружать устройства, а уязвимость CVE-2022-45315 — исполнять произвольный код на устройствах MikroTik c прошивками определенных версий.

Примеры реализации проблем безопасности

Соберем следующий стенд для демонстрации проблема безопасности:

SNMP-агенты устройств — Router, Server, UPS — будем эмулировать с помощью решения Verax SNMP Simulator. Как видим, на схеме есть несколько различных устройств в одной локальной сети:

  • SNMP-agent — эмулированные устройства,
  • NMS — легитимный SNMP-сервер, выполняющий роль менеджера (в реальной схеме может быть тот же Zabbix-сервер),
  • attacker — хост, с которого будут проводиться тестовые попытки доступа к данным протокола SNMP.

Подбор community string

Как было сказано ранее, по умолчанию SNMP-агент не ограничивает количество обращений и позволяет перебирать community string в версиях SNMPv1-v2 и логин-пароль в SNMPv3. Проверим это на практике.

Будем использовать patator с модулем snmp_login для подбора community string для SNMPv2, заранее подготовив файл community со словарем для перебора:

host – IP-адрес цели, version — версия протокола SNMP; community — ссылка на файл со словарем, 0 — сам файл со словарем.

В результате получим вывод:

Обратите внимание: за 45 секунд patator перебрал 118 слов, с каждым из них в качестве community string обратился к цели и для двух получил значения с public и private. Зная их, мы можем взаимодействовать с SNMP-агентом, получая и отправляя данные. Для SNMPv1 и SNMPv2 знания community string достаточно для аутентификации на агенте.

Обход white-list с помощью IP-spoofing

Некоторые SNMP-агенты позволяют задавать access-list и указывать IP, с которых есть доступ к агенту — на запросы с таких адресов он будет отвечать. Это опасно, потому что SNMP работает по UDP и можно использовать spoofing — подмену адреса отправителя. Рассмотрим две ситуации.

Первая ситуация. На агенте SNMP задана дефолтная community string и разрешено менять некоторые параметры через команду SET. С хоста 192.168.100.10 с помощью утилиты snmpwalk поменяем значение одного из интерфейсов UPS на агенте.

Исходное значение.

Меняем значение параметра:

Запросим текущее значение:

Как видно, значение успешно изменено. Переходим ко второму сценарию.

Вторая ситуация. На агенте SNMP задана дефолтная community string, разрешено менять некоторые параметры через команду SET, но теперь на стороне агента включен ACL, а в white list добавлен адрес NMS 192.168.100.10.

Для выполнения действий из прошлого сценарию необходимо узнать адрес NMS и подставить его в пакетах при обращении с 192.168.100.5. Способов (в случае локальной сети) может быть несколько — от скана портов, перехвата и анализа трафика до социальной инженерии. В случае с публичными IP-адресами дело обстоит иначе: сканирование не даст результата, если заранее неизвестен диапазон белых адресов и NMS не опубликован на белом IP.

Рассмотрим ситуацию, когда нам известен адрес NMS.

С хоста NMS: 192.168.100.10

С хоста NMS: 192.168.100.5

Зная NMS-адрес в локальной сети, можно указать его на интерфейсе или сформировать UDP-datagram и отправить с помощью инструментов для IP-spoofing, указав в src-ip адрес NMS.

Запросим текущее значение с NMS:

Как видно, значение успешно изменено. Таким образом, достаточно знать SNMP-community, чтобы аутентифицироваться на агенте и изменить значение.

Незащищенные каналы (MITM)

В случае, если SNMP-агент и NMS находятся не в одной сети, трафик проходит маршрутизаторы, FW, прокси (при наличии) и другие узлы. На каждом из устройств может быть включено логирование трафика. По аналогии с передачей паролей по HTTP в SNMPv1 и SNMPv2, значение community string может быть перехвачено. Рассмотрим схему, где есть NMS, router и SNMP-агент:

NMS опрашивает агента по SNMPv2c и отправляет значение community string «SecretCommunityString»:

На роутере включено логирование всех пакетов. В итоге видим следующий результат перехвата трафика:

Как видим, community string передалось открытом виде. Зная его значение, IP-адреса NMS и SNMP-агента, с последним можно взаимодействовать.

В случае с SNMPv3 ситуация другая. Отправим запрос агенту по протоколу SNMPv3:

Видно, что в перехваченных дампах нет аутетификатора и пароля шифрования в открытом виде, потому что передается хэш. А приватные ключи прописываются непосредственно на NMS и SNMP-агенте до начала передачи информации. Единственное, что передается в открытом виде — это логин пользователя:

В заголовках SNMPv3 видим, что пользователь SNMP в открытом виде. Он будет использован на стороне агента фактически для авторизации. Зная только имя пользователя, мы не сможем аутентифицироваться на SNMP-агенте, соответственно, не сможем получить доступ к SNMP-агенту и придется брутить пароль.

Возможно, эти тексты тоже вас заинтересуют:

Как повысить безопасность

Давайте разберемся, как не допустить рассмотренных ситуаций и обезопасить свои устройства. Я постарался выделить основные рекомендации.

Сегментируйте сети

Необходимо планировать сети так, чтобы сервисные и технологические хосты — в том числе SNMP-агенты — были вынесены в отдельные сети. Так, чтобы к ним не было доступа из гостевых и пользовательских WiFi, сетей с данными и другого.

Используйте последнюю версию протокола — SNMPv3

Если оборудование и NMS поддерживают SNMPv3, то стоит отдать предпочтение последней версии.

Меняйте дефолтные значения community

Относитесь к community string как к паролю — беспокойтесь о её сложности, если используете SNMPv1, SNMPv2 и длинные наборы символов в качестве паролей и ключей шифрования для SNMPv3.

Следите за доступом к портам SNMP

В рамках межсетевого взаимодействия со спуфингом подойдут роутер или firewall. Используйте межсетевые экраны, разрешайте SNMP только в локальных сетях или в VPN-туннелях. При публикации SNMP-агента в интернет, настраивайте фильтрацию по source IP-адресу, меняйте стандартные порты, включайте SNMPv3. А также устанавливайте сложные community string, если используете SNMPv2.

Ограничьте список включенных OIDs

При включении SNMP-агентов определите список параметров (OID), которые отдает агент. По возможности отключите все остальные OIDs.

Отключите режим записи для SNMP-агентов

Если нет необходимости изменять настройки устройств при помощи SNMP, отключите режим записи и оставьте SNMP-агента в режиме read only.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Школа онлайн с государственным аттестатом