Москва
+7-929-527-81-33
Вологда
+7-921-234-45-78
Вопрос юристу онлайн Юридическая компания ЛЕГАС Вконтакте

Протокол SNMP.

Обновлено 02.11.2025 06:05

 

Протокол SNMP.

 

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

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

Протокол позволяет опрашивать устройства по сети, получая сведения о состоянии их сетевых интерфейсов, нагрузке и других данных.

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

Теперь поговорим о том, какую же все-таки информацию может почерпнуть система управления из недр SNMP. Вся информация об объектах системы-агента содержится в так называемой MIB (management information base) - базе управляющей информации, другими словами, MIB представляет собой совокупность объектов, доступных для операций записи-чтения для каждого конкретного клиента, в зависимости от структуры и предназначения самого клиента. Ведь не имеет смысла спрашивать у терминального сервера количество отброшенных пакетов, так как эти данные не имеют никакого отношения к его работе, так же как и информация об администраторе для маршрутизатора. Потому управляющая система должна точно представлять себе, что и у кого запрашивать. На данный момент существует четыре базы MIB:

1) Internet MIB - база данных объектов для обеспечения диагностики ошибок и конфигураций. Включает в себя более 200 объектов (в том числе и объекты MIB I);

2) LAN manager MIB - база из более 100 объектов – пароли, сессии, пользователи, общие ресурсы;

3) WINS MIB - база объектов, необходимых для функционирования WINS-сервера (WINSMIB.DLL);

4) DHCP MIB - база объектов, необходимых для функционирования DHCP-сервера (DHCPMIB.DLL), служащего для динамического выделения IP-адресов в сети.

Все имена MIB имеют иерархическую структуру, обычно представляемую в виде дерева. Существует десять корневых алиасов:

1) System - данная группа MIB II содержит в себе семь объектов, каждый из которых служит для хранения информации о системе (версия ОС, время работы и т. д.);

2) Interfaces - содержит 23 объекта, необходимых для ведения статистики сетевых интерфейсов агентов (количество интерфейсов, размер MTU, скорость передачи, физические адреса и т. д.);

3) AT (3 объекта) - отвечают за трансляцию адресов. Более не используется. Была включена в MIB I. Примером использования объектов AT может послужить простая ARP-таблица (более подробно об ARP-протоколе можно почитать в статье «Нестандартное использование протокола ARP», которую можно найти на официальном сайте в разделе «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, а sysUp-Time - 3 в иерархии группы system. Ноль в конце пути говорит о скалярном типе хранимых данных.

В процессе работы символьные имена объектов не используются, то есть если менеджер запрашивает у агента содержимое параметра system.sysDescr. 0, то в строке запроса ссылка на объект будет преобразована в «1.1.0», а не

будет передана «как есть». Далее мы рассмотрим BULK-запрос, и тогда станет ясно, почему это столь важно. На этом мы завершим обзор структуры MIB II и перейдем непосредственно к описанию взаимодействия менеджеров (систем управления) и агентов.

В SNMP клиент взаимодействует с сервером по принципу запрос-ответ. Сам по себе агент способен инициировать только одно действие, называемое ловушкой, прерыванием («trap» - ловушка). Помимо этого, все действия агентов сводятся к ответам на запросы, посылаемые менеджерами. Менеджеры в свою очередь могут осуществлять четыре вида запросов:

GetRequest - запрос у агента информации об одной переменной;

GetNextRequest - дает агенту указание выдать данные о следующей (в иерархии) переменной;

GetBulkRequest - запрос на получение массива данных. При получении такового агент проверяет типы данных в запросе на соответствие данным из своей таблицы и заполняет структуру значениями параметров: for(repeatCount = 1; repeatCount < max_repetitions; repeatCount++). Теперь представьте себе запрос менеджера на получение списка из сотни значений переменных, посланный в символьном виде, и сравните размер такового с размером аналогичного запроса в точечной нотации. Думаю, понятно, к чему привела бы ситуация, если бы символьные имена не преобразовывались вышеуказанным образом;

SetRequest - указание установить определенное значение переменой.

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

Допустим, менеджер послал несколько пакетов разным агентам, как же системе управления в дальнейшем определить, какой из приходящих пакетов касается 1-го и 2-го агентов? Для этого каждому пакету приписывается определенный ID - числовое значение. Когда агент получает запрос от менеджера, он генерирует ответ и вставляет в пакет значение ID, полученное им из запроса (не модифицируя его). Одним из ключевых понятий в SNMP является понятие group (группа). Процедура авторизации менеджера представляет собой простую проверку на принадлежность его к определенной группе, из списка, находящегося у агента. Если агент не находит группы менеджера в своем списке, их дальнейшее взаимодействие невозможно.

Совершенно очевидно, что для безопасной аутентификации этого необходимы более надежные средства аутентификации. За протоколом SNMP первой версии даже закрепилась такая шутка: «SNMP означает Security Not My Problem, безопасность не моя проблема».

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

Первым делом заметим, что в SNMP v2 включена поддержка шифрования трафика, для чего в зависимости от реализации используются алгоритмы DES, MD5.

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

Создается впечатление, что протокол рассчитан на работу в среде так называемых «доверенных хостов». Представим себе некий 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 есть возможность удаленного запуска скриптов на серверы путем посылки соответствующего запроса. Успешная реализация этих угроз может привести к крайне печальным последствиям;

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

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

Для обнаружения устройств, поддерживающих SNMP, можно воспользоваться утилитой SNMP, входящей в состав дистрибутива Kali.

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

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

Телеграм-канал: https://t.me/zashchitainformacii

Группа в Телеграм: https://t.me/zashchitainformacii1

Сайт: https://legascom.ru

Электронная почта: online@legascom.ru

#защитаинформации #информационнаябезопасность

 

The SNMP protocol.

 

Initially, the SNMP protocol was developed to test the functioning of network routers. Subsequently, the scope of the protocol covered other network devices such as hubs, gateways, terminal servers, Windows Server machines, etc. In addition, the protocol allows for the possibility of making changes to the operation of these devices.

The main participants in the protocol operation process are agents and management systems. If we consider these two concepts in the language of "client-server", then the role of the server is performed by agents, that is, the very devices for which the protocol we are considering was developed. Accordingly, the role of clients is assigned to management systems - network applications necessary to collect information about the functioning of agents. In addition to these two subjects, two more can be distinguished in the protocol model: the control information and the data exchange protocol itself.

The protocol allows devices to be interrogated over the network, receiving information about the status of their network interfaces, load, and other data.

The SNMP protocol also has another very important feature, namely the ability to modify data on agents.

Now let's talk about what kind of information the management system can get from the depths of SNMP. All information about the objects of the agent system is contained in the so-called MIB (management information base), a database of management information, in other words, the MIB is a collection of objects available for write-read operations for each specific client, depending on the structure and purpose of the client itself. After all, it makes no sense to ask the terminal server for the number of dropped packets, since this data has nothing to do with its operation, as well as information about the administrator for the router. Therefore, the management system must know exactly what to request and from whom. There are currently four MIB databases:

1) Internet MIB is a database of objects for providing error diagnostics and configurations. It includes more than 200 objects (including MIB I objects);

2) LAN manager MIB - database of more than 100 objects – passwords, sessions, users, shared resources;

3) WINS MIB - database of objects necessary for the operation of the WINS server (WINSMIB.DLL );

4) DHCP MIB - database of objects necessary for the functioning of the DHCP server (DHCPMIB.DLL ), which serves to dynamically allocate IP addresses in the network.

All MIB names have a hierarchical structure, usually represented as a tree. There are ten root aliases:

1) System - this MIB II group contains seven objects, each of which is used to store information about the system (OS version, operating time, etc.);

2) Interfaces - contains 23 objects necessary for maintaining statistics of agents' network interfaces (number of interfaces, MTU size, transfer rate, physical addresses, etc.);

3) AT (3 objects) - responsible for address translation. It is no longer used. It was included in MIB I. An example of using AT objects is a simple ARP table (for more information about the ARP protocol, see the article "Non-standard use of the ARP protocol", which can be found on the official website in the Articles section) of matching the physical (MAC) addresses of network cards to the IP addresses of machines. In SNMP v2, this information was transferred to the MIB for the corresponding protocols.;

4) IP (42 objects) - data on passing IP packets (number of requests, responses, dropped packets);

5) ICMP (26 objects) - information about control messages (incoming/outgoing messages, errors, etc.);

6) TCP (19) - everything related to the transport protocol of the same name (algorithms, constants, connections, open ports, etc.);

7) UDP (6) - similarly, only for the UDP protocol (incoming/outgoing datagrams, ports, errors);

8) EGP (20) - External Gateway Protocol traffic data (used by routers, objects store information about received/sent/dropped frames);

9) Transmission - reserved for specific MIBs;

10) SNMP (29) - statistics on SNMP – incoming/outgoing packets, packet size limits, errors, data on processed requests and much more.

Each of them is represented as a tree growing downwards (the system resembles a DNS organization). For example, we can access the administrator's address using the following path: system.sysContact.0, system.sysUpTime.0, and system description (version, kernel, and other OS information): system.sysDescr.0. On the other hand, the same data can be set in dot notation. So, system.sysUpTime.0 corresponds to the value 1.3.0, since system has the index "1" in the MIB II groups, and sysUp-Time - 3 in the hierarchy of the system group. The zero at the end of the path indicates the scalar type of the stored data.

Symbolic names of objects are not used during operation, that is, if the manager requests the contents of the system.sysDescr. 0 parameter from the agent, the object reference in the query string will be converted to "1.1.0", and will not

be passed "as is". Next, we will look at the BULK query, and then it will become clear why this is so important. This completes the overview of the MIB II structure and goes directly to the description of the interaction between managers (management systems) and agents.

In SNMP, the client interacts with the server on a request-response basis. By itself, the agent is able to initiate only one action, called a trap, an interruption ("trap" - trap). In addition, all agent actions are limited to responding to requests sent by managers. Managers, in turn, can make four types of requests:

GetRequest is a request from the agent for information about a single variable.;

GetNextRequest - instructs the agent to provide data on the next (in the hierarchy) variable.;

GetBulkRequest is a request to get an array of data. Upon receipt, the agent checks the data types in the request for compliance with the data from its table and fills the structure with parameter values: for(repeatCount = 1; repeatCount < max_repetitions; repeatCount++). Now imagine a manager's request for a list of hundreds of variable values, sent in symbolic form, and compare the size of that with the size of a similar request in dot notation. I think it's clear what the situation would lead to if symbolic names were not transformed in the above way.;

SetRequest is an instruction to set a specific value with a variable.

SNMP is a monitoring and diagnostic protocol, and therefore it is designed for situations where the integrity of routes is compromised. In addition, in such a situation, a transport protocol that is as low in hardware requirements as possible is needed, so the choice was made towards UDP.

Suppose a manager has sent several packages to different agents, how can the management system further determine which of the incoming packages concerns the 1st and 2nd agents? To do this, each package is assigned a specific ID - a numeric value. When the agent receives a request from the manager, it generates a response and inserts the ID value it received from the request into the package (without modifying it). One of the key concepts in SNMP is the concept of a group. The manager's authorization procedure is a simple check to see if he belongs to a specific group from the agent's list. If the agent does not find the manager's groups in its list, their further interaction is impossible.

It is quite obvious that more reliable authentication tools are needed for secure authentication of this. The first version of the SNMP protocol even had a joke like this: "SNMP means Security is Not My Problem, security is not my problem."

Before that, we had encountered the first and second versions of SNMP several times. Let's pay attention to the difference between them.

First of all, we note that SNMP v2 includes support for traffic encryption, for which, depending on the implementation, DES and MD5 algorithms are used.

This leads to the fact that when transmitting data, the most important data is not available for sniffing, including information about network groups. All this led to an increase in the traffic itself and a complication of the package structure.

It seems that the protocol is designed to work in an environment of so-called "trusted hosts". Let's imagine a certain IP address, the owner of which has the intention to benefit or simply annoy the administrator by disrupting the operation of a certain network. Let's take the place of this attacker. Consideration of this issue can be reduced to two points:

a) we are outside the "hostile network". How can we do our dirty deed? First of all, we assume that we know the address of the network gateway. According to the RFC, the management system is connected to the agent via port 161 (UDP). Let's remember that successful work requires knowledge of the group. Here, the attacker is helped by the fact that administrators often leave the default group values (names), and by default there are two groups for SNMP - "private" and "public". If the administrator did not provide for such a development, the ill-wisher can cause him a lot of trouble. As you know, the SNMP protocol is part of Fingerprinting. If desired, thanks to the system MIB II group, it is possible to learn quite a lot of information about the system. At least the read-only sysDescr parameter is worth it. After all, knowing exactly the software version, there is a chance, using the tools for the appropriate OS, to gain full control over the system. I mentioned the read-only attribute of this parameter for a reason. After all, without rummaging through the snmpd sources (in the case of a UNIX-like OS), this parameter cannot be changed, that is, the agent will faithfully give the attacker all the necessary data. And do not forget that agent implementations for Windows are supplied without source codes, and knowledge of the operating system is 50% of the success of the attack. In addition, let's recall that many parameters have the rw (read-write) attribute, and among such parameters is forwarding! Imagine the consequences of setting it to "notForwarding(2)" mode. For example, in the Linux implementation of the software for SNMP called ucd-snmp, it is possible to remotely run scripts to servers by sending a corresponding request. The successful implementation of these threats can lead to extremely sad consequences.;

b) the attacker is on the local machine. In this case, the probability of the administrator's dismissal increases dramatically. After all, being in the same segment of the network makes it possible to simply sniff out the names of groups, and with them, a lot of system information. Everything mentioned in paragraph "a" also applies to this case.

Thus, when using the SNMP protocol, you need to be extremely careful. To ensure the security of devices monitored via SNMP, firewalls must be used to segment and allow only trusted hosts to interact using this protocol.

To detect devices that support SNMP, you can use the SNMP utility included in the Kali distribution.

It can be used to scan the subnet for devices that support the SNMP protocol. If detected, an attempt will be made to select the community both in search mode and by dictionary.

Oleg Petukhov, lawyer in the field of international law and personal data protection, information security specialist security, protection of information and personal data.

Telegram channel: https://t.me/protectioninformation

Telegram Group: https://t.me/informationprotection1

Website: https://legascom.ru

Email: online@legascom.ru

#informationprotection #informationsecurity

 

SNMP-Protokoll.

 

Das SNMP-Protokoll wurde ursprünglich entwickelt, um die Funktionsweise von Netzwerkrouter zu überprüfen. Anschließend umfasste das Protokoll auch andere Netzwerkgeräte wie Hubs, Gateways, Terminalserver, Windows Server-Computer usw. Das Protokoll erlaubt außerdem die Möglichkeit, Änderungen an der Funktionsweise dieser Geräte vorzunehmen.

Die Hauptteilnehmer des Protokollfunktionsprozesses sind Agenten und Managementsysteme. Wenn wir diese beiden Konzepte in der Sprache «Client-Server» betrachten, werden die Agenten als Server ausgeführt, dh die Geräte, für deren Status das von uns betrachtete Protokoll entwickelt wurde. Dementsprechend wird die Rolle der Kunden den Managementsystemen zugewiesen - den Netzwerkanwendungen, die zum Sammeln von Informationen über die Funktionsweise von Agenten erforderlich sind. Neben diesen beiden Subjekten können im Protokollmodell auch zwei weitere identifiziert werden: die Steuerinformationen und das Datenaustauschprotokoll selbst.

Mit dem Protokoll können Sie Geräte über das Netzwerk abfragen, um Informationen über den Status ihrer Netzwerkschnittstellen, die Auslastung und andere Daten zu erhalten.

Das SNMP-Protokoll hat auch ein weiteres sehr wichtiges Merkmal, nämlich die Möglichkeit, Daten auf Agenten zu ändern.

Lassen Sie uns nun darüber sprechen, welche Informationen das Kontrollsystem aus dem Inneren des SNMP erhalten kann. Alle Informationen über die Objekte des Agent-Systems sind in der sogenannten MIB (Management information base) enthalten, einer Datenbank mit Verwaltungsinformationen, mit anderen Worten, eine MIB ist eine Sammlung von Objekten, die je nach Struktur und Zweck des Kunden für Schreib- und Lesevorgänge für jeden einzelnen Kunden verfügbar sind. Es macht keinen Sinn, den Terminalserver nach der Anzahl der verworfenen Pakete zu fragen, da diese Daten nichts mit seiner Arbeit zu tun haben, ebenso wenig wie die Administratorinformationen für den Router. Deshalb muss sich das Verwaltungssystem genau vorstellen, was und von wem verlangt wird. Im Moment gibt es vier MIB-Basen:

1) Internet MIB ist eine Objektdatenbank, um Fehlerdiagnosen und Konfigurationen bereitzustellen. Enthält mehr als 200 Objekte (einschließlich MIB I-Objekte);

2) LAN Manager MIB - eine Datenbank mit mehr als 100 Objekten - Passwörter, Sitzungen, Benutzer, freigegebene Ressourcen;

3) WINS MIB ist eine Datenbank von Objekten, die für den Betrieb des WINS-Servers erforderlich sind (WINSMIB.DLL);

4) DHCP MIB ist eine Datenbank von Objekten, die für den Betrieb eines DHCP-Servers (DHCPMIB.DLL), die zum dynamischen Zuweisen von IP-Adressen im Netzwerk dient.

Alle MIB-Namen haben eine hierarchische Struktur, die normalerweise als Baum dargestellt wird. Es gibt zehn Root-Aliase:

1) System - Diese Gruppe von MIB II enthält sieben Objekte, die jeweils dazu dienen, Informationen über das System zu speichern (Betriebssystemversion, Laufzeit usw.);

2) Interfaces - Enthält 23 Objekte, die für die Verwaltung von Statistiken über die Netzwerkschnittstellen von Agenten benötigt werden (Anzahl der Schnittstellen, MTU-Größe, Übertragungsrate, physische Adressen usw.);

3) AT (3 Objekte) - sind verantwortlich für die Übertragung von Adressen. Nicht mehr benutzt. Eine einfache ARP-Tabelle (weitere Informationen zum ARP-Protokoll finden Sie auf der offiziellen Website unter «Articles»), um physische (MAC-) Adressen von Netzwerkkarten mit den IP-Adressen von Maschinen zu vergleichen, ist in der MIB I. Ein Beispiel für die Verwendung von AT-Objekten kann eine einfache ARP-Tabelle sein (weitere Informationen zum ARP-Protokoll finden Sie im Artikel «Nicht standardmäßige Verwendung von ARP», der auf der offiziellen Website unter "Articles" zu finden ist). In SNMP v2 wurden diese Informationen für die entsprechenden Protokolle in die MIB übertragen;

4) IP (42 Objekte) - Daten zu durchgeführten IP-Paketen (Anzahl der Anfragen, Antworten, verworfenen Pakete);

5) ICMP (26 Objekte) - Informationen zu Kontrollmeldungen (eingehende/ausgehende Nachrichten, Fehler usw.);

6) TCP (19) - alles, was das gleichnamige Transportprotokoll betrifft (Algorithmen, Konstanten, Verbindungen, offene Ports usw.);

7) UDP (6) - ähnlich, nur für UDP-Protokoll (eingehende/ausgehende Datagramme, Ports, Fehler);

8) EGP (20) - Externe Gateway-Protokolldatenverkehrsdaten (wird von Routern verwendet, Objekte speichern Informationen über empfangene/gesendete/verworfene Frames);

9) Transmission - reserviert für spezifische MIBs;

10) SNMP (29) - SNMP–Statistiken - eingehende/ausgehende Pakete, Paketgrößenbeschränkungen, Fehler, verarbeitete Anforderungsdaten und vieles mehr.

Jeder von ihnen wird als Baum dargestellt, der nach unten wächst (das System ähnelt einer DNS-Organisation). Zum Beispiel können wir die Adresse des Administrators über den folgenden Pfad erreichen: system.sysContact.0, zur Laufzeit des Systems - system.sysUpTime.0, zur Systembeschreibung (Version, Kernel und andere Betriebssysteminformationen) - system.sysDescr.0. Andererseits können dieselben Daten auch in Punktnotation angegeben werden. Okay, system.sysUpTime.0 entspricht dem Wert 1.3.0, da system in den MIB-Gruppen II einen Index von «1» aufweist und sysUp-Time in der Systemgruppenhierarchie 3 aufweist. Die Null am Ende des Pfads gibt den skalaren Typ der gespeicherten Daten an.

Bei der Ausführung werden keine Objektnamen mit Zeichen verwendet, d. H. Wenn der Manager den Inhalt des System-Parameters vom Agenten anfordert.sysDescr. 0, dann wird in der Abfragezeichenfolge der Verweis auf das Objekt in «1.1.0» konvertiert, nicht

wird «wie es ist» übergeben. Als nächstes betrachten wir die BULK-Abfrage, und dann wird klar, warum dies so wichtig ist. Hier werden wir einen Überblick über die Struktur der MIB II abschließen und direkt zur Beschreibung der Interaktion zwischen Managern (Managementsystemen) und Agenten übergehen.

In SNMP kommuniziert der Client nach dem Request-Response-Prinzip mit dem Server. Der Agent selbst kann nur eine Aktion auslösen, die als Trap bezeichnet wird, Interrupt («trap» - Trap). Darüber hinaus werden alle Aktionen von Agenten auf Antworten auf Anfragen von Managern reduziert. Manager können wiederum vier Arten von Anfragen durchführen:

GetRequest - Abfrage des Informations-Agents für eine Variable;

GetNextRequest - Weist den Agenten an, Daten über die folgende Variable (in der Hierarchie) auszugeben;

GetBulkRequest ist eine Anforderung zum Abrufen eines Datenarrays. Wenn Sie einen solchen erhalten, überprüft der Agent die Datentypen in der Abfrage auf Übereinstimmung mit den Daten aus seiner Tabelle und füllt die Struktur mit den Parameterwerten auf: for(repeatCount = 1; repeatCount < max_repetitions; repeatCount++). Stellen Sie sich nun eine Manager-Abfrage vor, um eine Liste mit Hunderten von Variablenwerten in Zeichenform zu erhalten, und vergleichen Sie die Größe der Variablen mit der Größe einer ähnlichen Abfrage in Punktnotation. Ich denke, es ist klar, was die Situation bewirken würde, wenn die Zeichennamen nicht auf die obige Weise konvertiert würden;

SetRequest - Gibt an, dass ein bestimmter Wert durch eine Variable festgelegt wird.

SNMP ist ein Überwachungs- und Diagnoseprotokoll, daher ist es für Situationen ausgelegt, in denen die Integrität der Routen verletzt wird, außerdem ist in einer solchen Situation ein so wenig wie möglich anspruchsvolles Transportprotokoll erforderlich, da die Wahl in Richtung UDP getroffen wurde.

Angenommen, ein Manager hat mehrere Pakete an verschiedene Agenten gesendet, wie kann das Management-System später bestimmen, welches der ankommenden Pakete den 1. und 2. Agenten betrifft? Zu diesem Zweck wird jedem Paket ein bestimmter ID - numerischer Wert zugewiesen. Wenn der Agent eine Anfrage vom Manager erhält, generiert er eine Antwort und fügt den ID-Wert, den er aus der Anfrage erhalten hat, in das Paket ein (ohne ihn zu ändern). Eines der wichtigsten Konzepte in SNMP ist der Begriff group (Gruppe). Bei der Autorisierung eines Managers handelt es sich um eine einfache Überprüfung, ob er einer bestimmten Gruppe angehört, aus einer Liste, die sich beim Agenten befindet. Wenn der Agent die Gruppen des Managers nicht in seiner Liste findet, können sie nicht weiter interagieren.

Es ist offensichtlich, dass für eine sichere Authentifizierung eine zuverlässigere Authentifizierung erforderlich ist. Das SNMP-Protokoll der ersten Version hat sogar einen solchen Witz verankert: »SNMP steht für Security Not My Problem, Sicherheit ist nicht mein Problem."

Zuvor waren wir mehrmals auf die erste und zweite Version von SNMP gestoßen. Lassen Sie uns auf den Unterschied zwischen ihnen achten.

Beachten Sie zunächst, dass in SNMP v2 die Datenverkehrsverschlüsselung aktiviert ist, für die je nach Implementierung DES, MD5-Algorithmen verwendet werden.

Dies führt dazu, dass bei der Datenübertragung die wichtigsten Daten nicht durch Sniffing abgerufen werden können, einschließlich Informationen zu Netzwerkgruppen. All dies führte zu einem Anstieg des Datenverkehrs selbst und zu einer komplizierteren Paketstruktur.

Es scheint, dass das Protokoll für die Arbeit in einer Umgebung mit sogenannten «vertrauenswürdigen Hosts» ausgelegt ist. Stellen wir uns eine IP-Adresse vor, deren Besitzer die Absicht hat, einen Nutzen zu erzielen oder den Administrator einfach zu ärgern, indem er ein bestimmtes Netzwerk verletzt. Wir werden an die Stelle dieses Eindringlings treten. Die Betrachtung dieser Frage wird auf zwei Punkte reduziert:

a) Wir befinden uns außerhalb eines «feindlichen Netzwerks». Wie können wir unser schwarzes Werk vollbringen? Wir gehen zunächst davon aus, dass wir die Gateway-Adresse des Netzwerks kennen. Laut RFC erfolgt die Verbindung zwischen dem Management-System und dem Agenten über den 161. Port (UDP). Denken Sie daran, dass für eine erfolgreiche Arbeit das Wissen der Gruppe notwendig ist. Hier kommt es dem Angreifer zu Hilfe, dass Administratoren häufig die Standardwerte (Namen) der Gruppen belassen, und standardmäßig gibt es für SNMP zwei Gruppen: «private» und «public». Wenn der Administrator eine solche Entwicklung nicht vorgesehen hat, kann der Feind ihm eine Menge Ärger bereiten. Wie Sie wissen, ist das SNMP-Protokoll Teil von FingerPrintering. Falls gewünscht, ist es dank der System MIB II-Gruppe möglich, eine ziemlich große Menge an Informationen über das System zu erfahren. Was sollte zumindest der read-only-Parameter sysDescr wert sein? Denn wenn Sie die genaue Version der Software kennen, besteht die Möglichkeit, mit den Mitteln für das jeweilige Betriebssystem die volle Kontrolle über das System zu erlangen. Ich habe das read-only-Attribut dieses Parameters nicht umsonst erwähnt. Schließlich kann dieser Parameter nicht geändert werden, ohne in die SNMPD-Quellen (im Falle eines UNIX-ähnlichen Betriebssystems) einzudringen, dh der Agent wird dem Angreifer alle für ihn notwendigen Daten in gutem Glauben zur Verfügung stellen. Und vergessen Sie nicht, dass die Implementierungen von Agenten unter Windows ohne Quellcode geliefert werden und das Wissen um das Betriebssystem 50% des Angriffserfolgs beträgt. Denken Sie auch daran, dass viele Parameter ein rw-Attribut haben (read–write), und unter diesen Parametern ist Forwarding! Stellen Sie sich die Konsequenzen vor, die es in den Modus «notForwarding(2)» gesetzt hat. In einer Linux-Implementierung einer SNMP-Software namens ucd-snmp ist es beispielsweise möglich, Skripts per Fernzugriff auf Server auszuführen, indem Sie eine entsprechende Anfrage senden. Die erfolgreiche Umsetzung dieser Bedrohungen kann zu äußerst traurigen Folgen führen;

b) Der Angreifer befindet sich auf dem lokalen Computer. In diesem Fall steigt die Wahrscheinlichkeit, dass der Administrator entlassen wird, dramatisch an. Schließlich ermöglicht es das Finden in einem Segment des Netzwerks, durch einfaches Sniffing die Namen der Gruppen und damit viele Systeminformationen zu erfassen. Dieser Fall betrifft auch alles, was in Punkt «a» gesagt wird.

Daher müssen Sie bei der Verwendung des SNMP-Protokolls äußerst vorsichtig sein. Um die Sicherheit von Geräten zu gewährleisten, die über SNMP überwacht werden, müssen Sie Firewalls verwenden, um nur vertrauenswürdige Hosts zu segmentieren und die Kommunikation über dieses Protokoll zuzulassen.

Sie können das SNMP-Dienstprogramm, das in der Kali-Distribution enthalten ist, verwenden, um SNMP-fähige Geräte zu erkennen.

Mit dieser Funktion können Sie ein Subnetz auf SNMP-fähige Geräte scannen. Wenn Sie erkannt werden, wird versucht, die community sowohl im Durchforstungsmodus als auch im Wörterbuch auszuwählen.

Oleg Petukhov, Rechtsanwalt im Bereich des Völkerrechts und des Schutzes personenbezogener Daten, Spezialist für Informationstechnik sicherheit, Schutz von Informationen und persönlichen Daten.

Telegramm-Kanal: https://t.me/datenschutzmit

Die Gruppe im Telegramm: https://t.me/datenschutzmit1

Website: https://legascom.ru

E-Mail: online@legascom.ru

#informationssicherheit #informationssicherheit

 

Protocole SNMP.

 

Initialement, le protocole SNMP a été développé pour tester le fonctionnement des routeurs réseau. Par la suite, le champ d'application du protocole s'étend à d'autres périphériques réseau tels que les concentrateurs, les passerelles, les serveurs terminaux, les machines exécutant Windows Server, etc.

Les agents et les systèmes de gestion sont les principaux acteurs du fonctionnement du protocole. Si nous considérons ces deux concepts dans le langage «client-serveur», le rôle de serveur est joué par les agents, c'est-à-dire les périphériques mêmes pour lesquels le protocole que nous examinons a été développé pour interroger l'état. En conséquence, le rôle des clients est attribué aux systèmes de gestion - les applications réseau nécessaires pour recueillir des informations sur le fonctionnement des agents. En plus de ces deux entités, le modèle de protocole peut également distinguer deux autres: l'information de contrôle et le protocole d'échange de données lui-même.

Le protocole vous permet d'interroger les périphériques sur le réseau, en obtenant des informations sur l'état de leurs interfaces réseau, la charge et d'autres données.

En outre, le protocole SNMP a une autre caractéristique très importante, à savoir la possibilité de modifier les données sur les agents.

Parlons maintenant de ce que le système de gestion peut encore apprendre des entrailles de SNMP. Toutes les informations sur les objets du système agent sont contenues dans ce que l'on appelle la MIB (management information base)-une base d'informations de gestion, en d'autres termes, la MIB est un ensemble d'objets disponibles pour les opérations d'écriture - lecture pour chaque client spécifique, en fonction de la structure et du but du client lui-même. Après tout, il n'est pas logique de demander au serveur terminal le nombre de paquets rejetés, car ces données n'ont rien à voir avec son fonctionnement, tout comme les informations d'administrateur pour le routeur. Par conséquent, le système de contrôle doit imaginer exactement quoi et qui demander. Il existe actuellement quatre bases MIB:

1) Internet MIB - base de données d'objets pour fournir des Diagnostics d'erreur et de configuration. Comprend plus de 200 objets (y compris les objets MIB I);

2) LAN manager MIB-base de données de plus de 100 objets – mots de passe, sessions, utilisateurs, partages;

3) WINS MIB-la base des objets nécessaires au fonctionnement du serveur WINS (WINSMIB.DLL);

4) DHCP MIB-base des objets nécessaires au fonctionnement du serveur DHCP (DHCPMIB.DLL) servant à allouer dynamiquement des adresses IP sur le réseau.

Tous les noms MIB ont une structure hiérarchique, généralement représentée sous forme d'arborescence. Il y a dix alias de racine:

1) System-ce groupe MIB II contient sept objets, chacun servant à stocker des informations sur le système (version du système d'exploitation, durée de fonctionnement, etc.);

2) Interfaces-contient les 23 objets nécessaires pour maintenir les statistiques des interfaces réseau des agents (nombre d'interfaces, taille de la MTU, vitesse de transmission, adresses physiques, etc.);

3) AT (3 objets) - responsable de la diffusion des adresses. Plus utilisé. A été inclus dans le MIB I. Un exemple d'utilisation des objets AT peut être un simple tableau ARP (pour plus de détails sur le protocole ARP, consultez l'article «utilisation non Standard du protocole ARP», disponible sur le site officiel sous «Articles») de la correspondance des adresses physiques (MAC) des cartes réseau aux adresses IP des machines. Dans SNMP v2, ces informations ont été migrées vers MIB pour les protocoles correspondants;

4) IP (42 objets) - données sur les paquets IP qui passent (nombre de demandes, de réponses, de paquets rejetés);

5) ICMP (26 objets) - informations sur les messages de contrôle (messages entrants / sortants, erreurs, etc.);

6) TCP (19) - tout ce qui concerne le protocole de transport du même nom (algorithmes, constantes, connexions, ports ouverts, etc.);

7) UDP (6) - de même, uniquement pour le protocole UDP (datagrammes entrants / sortants, ports, erreurs);

8) EGP (20) - données de trafic Exterior Gateway Protocol (utilisé par les routeurs, les objets stockent des informations sur les trames reçues/envoyées/rejetées);

9) Transmission-réservé aux MIB spécifiques;

10) SNMP (29) - statistiques SNMP-paquets entrants/sortants, limites de taille de paquet, erreurs, données de requête traitées, etc.

Chacun d'eux est représenté sous la forme d'un arbre qui pousse vers le bas (le système ressemble à une organisation DNS). Par exemple, nous pouvons accéder à l'adresse de l'administrateur par le chemin suivant: system.sysContact.0, au temps de fonctionnement du système-system.sysUpTime.0, à la Description du système (version, noyau et autres informations sur le système d'exploitation) - system.sysDescr.0. D'autre part, les mêmes données peuvent également être définies en notation par points. OK, system.sysUpTime.0 correspond à 1.3.0 car system a l'index «1 " dans les groupes MIB II et sysUp-Time est 3 dans la hiérarchie du groupe system. Le zéro à la fin du chemin indique le type scalaire des données stockées.

Les noms symboliques des objets ne sont pas utilisés dans le processus, c'est-à-dire si le gestionnaire demande à l'agent le contenu du paramètre system.sysDescr. 0, alors dans la chaîne de requête, la référence d'objet sera convertie en «1.1.0" , pas

sera transmis "tel quel". Ensuite, nous examinerons la requête BULK, puis nous verrons pourquoi cela est si important. Sur ce point, nous terminerons l'examen de la structure du MIB II et passerons directement à la Description de l'interaction entre les gestionnaires (systèmes de gestion) et les agents.

Dans SNMP, le client communique avec le serveur selon le principe demande-réponse. En soi, l'agent n'est capable d'initier qu'une seule action, appelée piège, interruption («piège» - piège). En outre, toutes les actions des agents sont réduites à répondre aux demandes envoyées par les gestionnaires. Les gestionnaires peuvent à leur tour effectuer quatre types de demandes:

GetRequest-demande à l'agent d'informations sur une variable;

GetNextRequest - indique à l'agent d'émettre des données sur la variable suivante (dans la hiérarchie) ;

GetBulkRequest-demande d'obtenir un tableau de données. Lorsqu'il en obtient un, l'agent vérifie les types de données de la requête pour s'assurer qu'ils correspondent aux données de sa table et remplit la structure avec les valeurs des paramètres: for(repeatCount = 1; repeatCount < max_repetitions; repeatCount++). Maintenant, imaginez une demande de gestionnaire pour obtenir une liste de centaines de valeurs de variables envoyées sous forme de caractères, et comparez la taille de celle-ci à la taille d'une requête similaire en notation par points. Je pense qu'il est clair à quoi la situation aurait abouti si les noms de caractères n'avaient pas été convertis de la manière ci-dessus;

SetRequest: indique de définir une valeur spécifique en tant que variable.

SNMP est un protocole de surveillance et de diagnostic conçu pour les situations où l'intégrité des routes est perturbée, de plus, dans une telle situation, un protocole de transport aussi exigeant que possible pour l'équipement est nécessaire, car le choix a été fait vers UDP.

Disons que le gestionnaire a envoyé plusieurs paquets à différents agents, comment le système de gestion peut-il déterminer à l'avenir lequel des paquets entrants concerne les agents 1 et 2? Pour ce faire, chaque paquet reçoit une valeur numérique ID spécifique. Lorsqu'un agent reçoit une demande du gestionnaire, il génère une réponse et insère dans le package la valeur ID qu'il a reçue de la demande (sans la modifier). L'un des concepts clés dans SNMP est le concept de group (groupe). La procédure d'autorisation d'un gestionnaire est une simple vérification de son appartenance à un certain groupe, à partir d'une liste qui se trouve dans l'agent. Si l'agent ne trouve pas les groupes du gestionnaire dans sa liste, il est impossible de les interagir davantage.

Il est évident que des moyens d'authentification plus robustes sont nécessaires pour authentifier cela en toute sécurité. Derrière le protocole SNMP de la première version, une telle blague a même été fixée:»SNMP signifie Security Not My Problem, la sécurité n'est pas mon problème".

Avant cela, nous avons rencontré les première et deuxième versions de SNMP à plusieurs reprises. Faisons attention à la différence entre eux.

Tout d'abord, notez que SNMP v2 prend en charge le cryptage du trafic, pour lequel, en fonction de l'implémentation, les algorithmes DES, MD5 sont utilisés.

Cela signifie que les données les plus importantes ne peuvent pas être récupérées par sniffing, y compris les informations sur les groupes du réseau. Tout cela a entraîné une augmentation du trafic lui-même et une Complication de la structure du paquet.

Il semble que le protocole est conçu pour fonctionner dans un environnement appelé «hôtes de confiance». Imaginons une adresse IP dont le propriétaire a l'intention d'obtenir un avantage ou simplement de harceler l'administrateur en perturbant le fonctionnement d'un certain réseau. Allons à la place de cet intrus. L'examen de cette question se résume à deux points:

a) nous sommes en dehors d'un»réseau hostile". Comment pouvons-nous faire notre travail noir? Tout d'abord, supposons que nous connaissons l'adresse de la passerelle du réseau. Selon la RFC, la connexion du système de gestion à l'agent se fait sur le 161ème port (UDP). Rappelons que pour un travail réussi, il est nécessaire de connaître le groupe. Ici, l'attaquant vient en aide au fait que souvent les administrateurs laissent les valeurs (noms) des groupes par défaut, et par défaut pour SNMP il y a deux groupes - «privé» et «public». Dans le cas où l'administrateur n'a pas prévu un tel développement des événements, le méchant peut lui causer beaucoup de problèmes. Comme vous le savez, le protocole SNMP fait partie de FingerPrintering. Si vous le souhaitez, grâce au groupe system MIB II, il est possible d'apprendre une quantité assez importante d'informations sur le système. Ce qui vaut au moins le paramètre read-only sysDescr. Après tout, connaissant exactement la version du logiciel, il y a une chance, en utilisant les moyens pour le système d'exploitation approprié, d'obtenir un contrôle total sur le système. Ce n'est pas pour rien que j'ai mentionné l'attribut read-only de ce paramètre. Après tout, sans se précipiter dans les sources snmpd (dans le cas d'un système d'exploitation UNIX), ce paramètre ne peut pas être modifié, c'est-à-dire que l'agent donnera fidèlement à l'attaquant toutes les données nécessaires pour lui. Et n'oubliez pas que les implémentations d'agents sous Windows sont fournies sans code source, et la connaissance du système d'exploitation - 50% du succès de l'attaque. En outre, rappelez-vous que beaucoup de paramètres ont l'attribut rw (read – write), et parmi ces paramètres-Forwarding! Imaginez les conséquences de le mettre en mode»notForwarding(2)". Par exemple, dans une implémentation Linux du logiciel SNMP appelé ucd-snmp, il est possible d'exécuter des scripts à distance sur des serveurs en envoyant une requête appropriée. La mise en œuvre réussie de ces menaces peut avoir des conséquences extrêmement tristes;

B) l'attaquant est sur la machine locale. Dans ce cas, la probabilité de licenciement de l'administrateur augmente considérablement. Après tout, être dans un segment du réseau permet un simple sniffing pour attraper les noms des groupes, et avec eux beaucoup d'informations système. Ce cas concerne également tout ce qui est dit au paragraphe «a».

Ainsi, lors de l'utilisation du protocole SNMP, vous devez être extrêmement prudent. Pour garantir la sécurité des périphériques surveillés via SNMP, vous devez utiliser des pare-feu pour segmenter et autoriser uniquement les hôtes de confiance à communiquer avec ce protocole.

Pour détecter les périphériques prenant en charge SNMP, vous pouvez utiliser l'utilitaire SNMP inclus dans la distribution Kali.

Il vous permet d'analyser le sous-réseau à la recherche de périphériques prenant en charge le protocole SNMP. En cas de détection, une tentative de sélection de community sera effectuée à la fois en mode itératif et en mode dictionnaire.

Petukhov Oleg, avocat en droit international et protection des données personnelles, spécialiste de l'information sécurité, protection de l'information et des données personnelles.

Telegram Channel: https://t.me/protecciondelainformacion

Groupe au Télégramme: https://t.me/securiteinformatique2

Site: https://legascom.ru

E-mail: online@legascom.ru

#sécuritéinformations #informationsécurité

 

Protocole SNMP.

 

Initialement, le protocole SNMP a été développé pour tester le fonctionnement des routeurs réseau. Par la suite, la portée du protocole s'étend à d'autres périphériques réseau tels que les concentrateurs, les passerelles, les serveurs terminaux, les machines exécutant Windows Server, etc.

Les agents et les systèmes de gestion sont les principaux acteurs du fonctionnement du protocole. Si l'on considère ces deux concepts dans le langage « client-serveur », le rôle de serveur est joué par les agents, c'est-à-dire les périphériques mêmes pour lesquels le protocole que nous examinons a été développé pour interroger l'état. En conséquence, le rôle des clients est attribué aux systèmes de gestion - les applications réseau nécessaires pour recueillir des informations sur le fonctionnement des agents. En plus de ces deux entités, le modèle de protocole peut également distinguer deux autres : l'information de contrôle et le protocole d'échange de données lui-même.

Le protocole vous permet d'interroger les périphériques sur le réseau, en obtenant des informations sur l'état de leurs interfaces réseau, la charge et d'autres données.

De plus, le protocole SNMP a une autre caractéristique très importante, à savoir la possibilité de modifier les données sur les agents.

Parlons maintenant de ce que le système de gestion peut encore apprendre des entrailles de SNMP. Toutes les informations sur les objets du système agent sont contenues dans ce qu'on appelle la MIB (management information base) - une base d'informations de gestion, en d'autres termes, la MIB est un ensemble d'objets disponibles pour les opérations d'écriture - lecture pour chaque client spécifique, en fonction de la structure et du but du client lui-même. Après tout, il n'est pas logique de demander au serveur terminal le nombre de paquets rejetés, car ces données n'ont rien à voir avec son fonctionnement, tout comme les informations d'administrateur pour le routeur. Par conséquent, le système de contrôle doit imaginer exactement quoi et qui demander. Il existe actuellement quatre bases MIB :

1) Internet MIB - base de données d'objets pour fournir des diagnostics d'erreur et de configuration. Comprend plus de 200 objets (y compris les objets MIB I);

2) Gestionnaire de réseau local MIB-base de données de plus de 100 objets – mots de passe, sessions, utilisateurs, partages;

3) WINS MIB - la base des objets nécessaires au fonctionnement du serveur WINS (WINSMIB.DLL);

4) DHCP MIB-base des objets nécessaires au fonctionnement du serveur DHCP (DHCPMIB.DLL) servant à allouer dynamiquement des adresses IP sur le réseau.

Tous les noms MIB ont une structure hiérarchique, généralement représentée sous forme d'arborescence. Il y a dix alias de racine :

1) Le groupe System-ce groupe MIB II contient sept objets, chacun servant à stocker des informations sur le système (version du système d'exploitation, durée de fonctionnement, etc.);

2) Interfaces-contient les 23 objets nécessaires pour maintenir les statistiques des interfaces réseau des agents (nombre d'interfaces, taille de la MTU, vitesse de transmission, adresses physiques, etc.);

3) AT (3 objets) - responsable de la diffusion des adresses. Plus utilisé. A été inclus dans le MIB I. Un exemple d'utilisation des objets AT peut être un simple tableau ARP (pour plus de détails sur le protocole ARP, consultez l'article « Utilisation non standard du protocole ARP », disponible sur le site officiel sous « Articles ») de la correspondance des adresses physiques (MAC) des cartes réseau aux adresses IP des machines. Dans SNMP v2, ces renseignements ont été migrés vers MIB pour les protocoles correspondants;

4) IP (42 objets) - données sur les paquets IP qui passent (nombre de demandes, de réponses, de paquets rejetés);

5) ICMP (26 objets) - renseignements sur les messages de contrôle (messages entrants/sortants, erreurs, etc.);

6) TCP (19) - tout ce qui concerne le protocole de transport du même nom (algorithmes, constantes, connexions, ports ouverts, etc.);

7) UDP (6) - de même, uniquement pour le protocole UDP (datagrammes entrants / sortants, ports, erreurs);

8) EGP (20) - données de trafic Exterior Gateway Protocol (utilisé par les routeurs, les objets stockent des informations sur les trames reçues/envoyées/rejetées);

9) Transmission réservée aux MIB spécifiques;

10) SNMP (29) - statistiques SNMP-paquets entrants/sortants, limites de taille de paquet, erreurs, données de requête traitées, etc.

Chacun d'eux est représenté comme un arbre qui pousse vers le bas (le système ressemble à une organisation DNS). Par exemple, on peut accéder à l'adresse de l'administrateur par le chemin suivant : system.sysContact.0, au temps de fonctionnement du système-system.sysUpTime.0, à la description du système (version, noyau et autres informations sur le système d'exploitation) - system.sysDescr.0. D'autre part, les mêmes données peuvent aussi être définies en notation par points. OK, system.sysUpTime.0 correspond à 1.3.0 car system a l'index « 1 » dans les groupes MIB II et sysUp-Time est 3 dans la hiérarchie du groupe system. Le zéro à la fin du chemin indique le type scalaire des données stockées.

Les noms symboliques des objets ne sont pas utilisés dans le processus, c'est-à-dire si le gestionnaire demande à l'agent le contenu du paramètre system.sysDescr. 0, alors dans la chaîne de requête, la référence d'objet sera convertie en «1.1.0», pas

sera transmis "tel quel". Ensuite, nous examinerons la requête BULK, puis nous verrons pourquoi c'est si important. À cet égard, nous terminerons l'examen de la structure du MIB II et passerons directement à la description de l'interaction entre les gestionnaires (systèmes de gestion) et les agents.

Dans SNMP, le client communique avec le serveur selon le principe demande-réponse. En soi, l'agent n'est capable d'initier qu'une seule action, appelée piège, interruption (« piège » - piège). De plus, toutes les actions des agents sont réduites à répondre aux demandes envoyées par les gestionnaires. Les gestionnaires peuvent à leur tour faire quatre types de demandes :

Demander une demande à l'agent d'information sur une variable ;

GetNextRequest - indique à l'agent d'émettre des données sur la variable suivante (dans la hiérarchie) ;

GetBulkRequest-demande d'obtenir un tableau de données. Lorsqu'il en obtient un, l'agent vérifie les types de données de la requête pour s'assurer qu'ils correspondent aux données de sa table et remplit la structure avec les valeurs des paramètres: for(repeatCount = 1; repeatCount < max_repetitions; repeatCount++). Maintenant, imaginez une demande de gestionnaire pour obtenir une liste de centaines de valeurs de variables envoyées sous forme de caractères, et comparez la taille de celle-ci à la taille d'une requête similaire en notation par points. Je pense qu'il est clair à quoi la situation aurait abouti si les noms de caractères n'avaient pas été convertis de la manière ci-dessus;

SetRequest : indique de définir une valeur spécifique comme variable.

SNMP est un protocole de surveillance et de diagnostic conçu pour les situations où l'intégrité des routes est perturbée, de plus, dans une telle situation, un protocole de transport aussi exigeant que possible pour l'équipement est nécessaire, car le choix a été fait vers UDP.

Disons que le gestionnaire a envoyé plusieurs paquets à différents agents, comment le système de gestion peut-il déterminer à l'avenir lequel des paquets entrants concerne les agents 1 et 2? Pour ce faire, chaque paquet reçoit une valeur numérique ID spécifique. Lorsqu'un agent reçoit une demande du gestionnaire, il génère une réponse et insère dans le paquet la valeur ID qu'il a reçue de la demande (sans la modifier). Un des concepts clés dans SNMP est le concept de groupe (groupe). La procédure d'autorisation d'un gestionnaire est une simple vérification de son appartenance à un certain groupe, à partir d'une liste qui se trouve dans l'agent. Si l'agent ne trouve pas les groupes du gestionnaire dans sa liste, il est impossible de les interagir davantage.

Il est évident que des moyens d'authentification plus robustes sont nécessaires pour authentifier cela en toute sécurité. Derrière le protocole SNMP de la première version, une telle blague a même été fixée:»SNMP signifie Security Not My Problem, la sécurité n'est pas mon problème".

Avant cela, nous avons rencontré les première et deuxième versions de SNMP à plusieurs reprises. Faisons attention à la différence entre eux.

Tout d'abord, notez que SNMP v2 prend en charge le cryptage du trafic, pour lequel, en fonction de l'implémentation, les algorithmes DES, MD5 sont utilisés.

Cela signifie que les données les plus importantes ne peuvent pas être récupérées par sniffing, y compris les informations sur les groupes du réseau. Tout cela a entraîné une augmentation du trafic lui-même et une Complication de la structure du paquet.

Il semble que le protocole soit conçu pour fonctionner dans un environnement appelé «hôtes de confiance». Imaginons une adresse IP dont le propriétaire a l'intention d'obtenir un avantage ou simplement de harceler l'administrateur en perturbant le fonctionnement d'un certain réseau. Allons à la place de cet intrus. L'examen de cette question se résume à deux points :

a) nous sommes en dehors d'un»réseau hostile". Comment pouvons-nous faire notre travail noir? Tout d'abord, supposons que nous connaissons l'adresse de la passerelle du réseau. Selon la RFC, la connexion du système de gestion à l'agent se fait sur le 161e port (UDP). Rappelons que pour un travail réussi, il est nécessaire de connaître le groupe. Ici, l'attaquant vient en aide au fait que souvent les administrateurs laissent les valeurs (noms) des groupes par défaut, et par défaut pour SNMP il Il y a deux groupes - «privé» et «public». Dans le cas où l'administrateur n'a pas prévu un tel développement des événements, le méchant peut lui causer beaucoup de problèmes. Comme vous le savez, le protocole SNMP fait partie de FingerPrintering. il y a une chance, en utilisant les moyens pour le système d'exploitation approprié, d'obtenir un contrôle total sur le système. Ce n'est pas pour rien que j'ai mentionné l'attribut read-only de ce paramètre. Après tout, sans se précipiter dans les sources snmpd (dans le cas d'un système d'exploitation UNIX), ce paramètre ne peut pas être modifié, c'est-à-dire que l'agent donnera fidèlement à l'attaquant toutes les données nécessaires pour lui. Les implémentations d'agents sous Windows sont fournies sans code source, et la connaissance du système d'exploitation - 50 % du succès de l'attaque. Par exemple, dans une implémentation Linux du logiciel SNMP appelé ucd-snmp, il est possible d'exécuter des scripts à distance sur des serveurs en envoyant une requête appropriée. La mise en œuvre réussie de ces menaces peut avoir des conséquences extrêmement tristes;

B) l'attaquant est sur la machine locale. Dans ce cas, la probabilité de congédier l'administrateur augmente considérablement. Après tout, être dans un segment du réseau permet un simple sniffing pour attraper les noms des groupes, et avec eux beaucoup d'informations système. Ce cas concerne également tout ce qui est dit au paragraphe «a».

Ainsi, lors de l'utilisation du protocole SNMP, vous devez être extrêmement prudent. Pour assurer la sécurité des appareils surveillés par SNMP, vous devez utiliser des pare-feu pour segmenter et autoriser uniquement les hôtes de confiance à communiquer avec ce protocole.

Pour détecter les périphériques prenant en charge SNMP, vous pouvez utiliser l'utilitaire SNMP inclus dans la distribution Kali.

Il vous permet d'analyser le sous-réseau à la recherche d'appareils prenant en charge le protocole SNMP. En cas de détection, une tentative de sélection de communauté sera effectuée à la fois en mode itératif et en mode dictionnaire.

Petukhov Oleg, avocat en droit international et protection des renseignements personnels, spécialiste de l'information sécurité, protection de l'information et des données personnelles.

Canal Telegram: https://t.me/protecciondelainformacion

Groupe au Télégramme: https://t.me/securiteinformatique2

Site: https://legascom.ru

Courriel: online@legascom.ru

#sécuritéinformations #informationsécurité

 

Protocolo SNMP.

 

Inicialmente, el protocolo SNMP fue desarrollado para probar el funcionamiento de los enrutadores de red. Posteriormente, el alcance del protocolo se extendió a otros dispositivos de red, como concentradores, puertas de enlace, servidores terminales, máquinas que ejecutan Windows Server, etc. además, el protocolo permite la posibilidad de realizar cambios en el funcionamiento de dichos dispositivos.

Los agentes y los sistemas de gestión son los principales participantes en el proceso de funcionamiento del protocolo. Si consideramos estos dos conceptos en el lenguaje cliente-servidor, los agentes desempeñan el papel del servidor, es decir, los mismos dispositivos para sondear el estado de los cuales se desarrolló el protocolo que estamos considerando. En consecuencia, el papel de los clientes se asigna a los sistemas de gestión, las aplicaciones de red necesarias para recopilar información sobre el funcionamiento de los agentes. Además de estos dos sujetos, en el modelo de protocolo también se pueden distinguir dos más: la información de control y el propio protocolo de intercambio de datos.

El protocolo permite sondear dispositivos a través de la red, obteniendo información sobre el estado de sus interfaces de red, la carga y otros datos.

Además, el protocolo SNMP tiene otra característica muy importante, a saber, la capacidad de modificar los datos en los agentes.

Ahora hablemos sobre qué información puede obtener el sistema de control del subsuelo de SNMP. Toda la información sobre los objetos del sistema-agente está contenida en la llamada MIB (management information base), una base de información de control, en otras palabras, MIB es un conjunto de objetos disponibles para las operaciones de escritura - lectura para cada cliente en particular, dependiendo de la estructura y el propósito del cliente. Después de todo, no tiene sentido preguntar al servidor de terminal el número de paquetes descartados, ya que estos datos no tienen nada que ver con su funcionamiento, así como la información del administrador para el enrutador. Por lo tanto, el sistema de gestión debe comprender exactamente qué y a quién solicitar. Actualmente existen cuatro bases MIB:

1) Internet MIB-una base de datos de objetos para proporcionar diagnósticos de errores y configuraciones. Incluye más de 200 objetos (incluidos los objetos MIB I);

2) LAN manager MIB-base de datos de más de 100 objetos – contraseñas, sesiones, usuarios, recursos compartidos;

3) WINS MIB-base de datos de objetos necesarios para el funcionamiento del servidor WINS (WINSMIB.DLL);

4) DHCP MIB-base de datos de objetos necesarios para el funcionamiento del servidor DHCP (DHCPMIB.DLL), que sirve para asignar dinámicamente direcciones IP en la red.

Todos los nombres MIB tienen una estructura jerárquica, generalmente representada como un árbol. Hay diez alias de raíz:

1) System-este grupo MIB II contiene siete objetos, cada uno de los cuales sirve para almacenar información sobre el sistema (versión del sistema operativo, tiempo de funcionamiento, etc.);

2) Interfaces: contiene 23 objetos necesarios para mantener estadísticas de las interfaces de red de los agentes (número de interfaces, Tamaño de MTU, velocidad de transferencia, direcciones físicas, etc.);

3) AT (3 objetos) - responsable de la traducción de direcciones. Ya no se usa. Se incluyó en el MIB I. un Ejemplo de uso de objetos AT puede ser una tabla ARP simple (para más detalles sobre el protocolo ARP, consulte el artículo "uso no Estándar del protocolo ARP", que se puede encontrar en el sitio web oficial en la sección "Artículos") de la correspondencia de las direcciones físicas (MAC) de las tarjetas de red a las direcciones IP de las máquinas. En SNMP v2, esta información se transfirió a MIB para los protocolos correspondientes;

4) IP (42 objetos) - datos sobre los paquetes IP que pasan (número de solicitudes, respuestas, paquetes descartados);

5) ICMP (26 objetos ) - información sobre los mensajes de control (mensajes entrantes/salientes, errores, etc.);

6) TCP (19) - todo lo relacionado con el protocolo de transporte del mismo nombre (algoritmos, constantes, conexiones, puertos abiertos, etc.);

7) UDP (6) - de manera similar, solo para el protocolo UDP (datagramas entrantes/ salientes, puertos, errores);

8) EGP (20) - datos de tráfico del protocolo de puerta de enlace Exterior (utilizado por los enrutadores, los objetos almacenan información sobre los Marcos recibidos/enviados/descartados);

9) Transmission-reservado para MIB específicos;

10) SNMP (29) - estadísticas de SNMP – paquetes entrantes/salientes, restricciones de Tamaño de paquetes, errores, datos sobre solicitudes procesadas y más.

Cada uno de ellos se representa en forma de un árbol que crece hacia abajo (el sistema se asemeja a la organización DNS). Por ejemplo, podemos acceder a la dirección de administración a través de esta ruta: system.sysContact.0, para el tiempo de funcionamiento del sistema-system.sysUpTime.0, a la descripción del sistema (versión, kernel y otra información del sistema operativo) - system.sysDescr.0. Por otro lado, los mismos datos se pueden especificar en la notación de puntos. Bien, system.sysUpTime.0 corresponde al valor 1.3.0, ya que system tiene un índice " 1 " en los grupos MIB II y sysUp-Time es 3 en la jerarquía del grupo system. El cero al final de la ruta indica el tipo escalar de los datos almacenados.

Los nombres simbólicos de los objetos no se usan durante el proceso, es decir, si el administrador solicita al agente el contenido del parámetro system.sysDescr. 0, entonces en la cadena de consulta, la referencia al objeto se convertirá en "1.1.0" en lugar de

se transmitirá "tal cual". A continuación, examinaremos la consulta a granel, y luego quedará claro por qué es tan importante. Con esto, completaremos una revisión de la estructura de MIB II y procederemos directamente a describir la interacción entre los gerentes (sistemas de gestión) y los agentes.

En SNMP, el cliente se comunica con el servidor de acuerdo con el principio de solicitud-respuesta. Por sí solo, el agente es capaz de iniciar una sola acción, llamada trampa, interrupción ("trampa" - trampa). Además, todas las acciones de los agentes se reducen a responder a las solicitudes enviadas por los gerentes. Los administradores, a su vez, pueden realizar cuatro tipos de consultas:

GetRequest-consulta al agente de información sobre una variable;

GetNextRequest-le indica al agente que emita datos sobre la siguiente variable (en la jerarquía) ;

GetBulkRequest-solicitud para obtener una matriz de datos. Cuando se obtiene uno, el agente comprueba los tipos de datos en la consulta para que coincidan con los datos de su tabla y rellena la estructura con los valores de los parámetros: for(repeatCount = 1; repeatCount < max_repetitions; repeatCount++). Ahora Imagine una solicitud de administrador para obtener una lista de cientos de valores de variables, enviada en forma simbólica, y compare el Tamaño de dicha solicitud con el Tamaño de una consulta similar en notación de puntos. Creo que está claro a qué conduciría la situación si los nombres simbólicos no se transformaran de la manera anterior;

SetRequest-especifica establecer un valor específico por una variable.

SNMP es un protocolo de control y diagnóstico, por lo que está diseñado para situaciones en las que se viola la integridad de las rutas, además, en tal situación, se necesita un protocolo de transporte lo menos exigente posible para el equipo, por lo que la elección se hizo hacia UDP.

Digamos que el gerente envió varios paquetes a diferentes agentes, ¿cómo puede el sistema de administración determinar más adelante Cuál de los paquetes entrantes se refiere a los agentes 1 y 2? Para hacer esto, a cada paquete se le asigna un valor numérico de identificación específico. Cuando el agente recibe una solicitud del administrador, genera una respuesta e inserta en el paquete el valor de ID que obtuvo de la solicitud (sin modificarlo). Uno de los conceptos clave en SNMP es el concepto de grupo (grupo). El procedimiento de autorización de un administrador es una simple verificación de su pertenencia a un grupo específico, de una lista que se encuentra en el agente. Si el agente no encuentra los grupos del administrador en su lista, es imposible que interactúen más.

Es bastante obvio que se necesitan medios de autenticación más sólidos para autenticar esto de manera segura. El protocolo SNMP de la primera versión incluso se atrincheró en una broma: "SNMP significa Security Not My Problem, la seguridad no es mi problema".

Antes de eso, nos encontramos con la primera y la segunda versión de SNMP varias veces. Prestemos atención a la diferencia entre ellos.

En primer lugar, tenga en cuenta que SNMP V2 incluye soporte para el cifrado de tráfico, para lo cual, dependiendo de la implementación, se utilizan los algoritmos DES, MD5.

Esto hace que durante la transmisión de datos, los datos más importantes no estén disponibles para ser recuperados por el sniffing, incluida la información sobre los grupos de la red. Todo esto llevó a un aumento en el tráfico en sí y complicó la estructura del paquete.

Parece que el protocolo está diseñado para funcionar en el entorno de los llamados "hosts de confianza". Imaginemos una cierta dirección IP, cuyo propietario tiene la intención de obtener un beneficio o simplemente molestar al administrador al interrumpir el funcionamiento de cierta red. Pongámonos en el lugar de este intruso. El examen de esta cuestión se limitará a dos puntos:

a) estamos fuera de una"red hostil". ¿Cómo podemos llevar a cabo nuestro trabajo negro? En primer lugar, suponemos que conocemos la dirección de la puerta de enlace de la red. De acuerdo con el RFC, la conexión del sistema de control con el agente se realiza a través del puerto 161 (UDP). Recordemos que para el trabajo exitoso es necesario el conocimiento del grupo. Aquí viene al rescate del atacante el hecho de que a menudo los administradores dejan los valores (nombres) de los grupos establecidos de forma predeterminada, y por defecto para SNMP hay dos grupos: "privado" y "público". En el caso de que el administrador no haya previsto tal desarrollo de eventos, el detractor puede causarle muchos problemas. Como se sabe, el protocolo SNMP es parte de FingerPrintering. Si lo desea, gracias al grupo system MIB II, es posible conocer una gran cantidad de información sobre el sistema. Lo que al menos vale el parámetro read-only sysDescr. Después de todo, sabiendo exactamente la versión del software, existe la posibilidad, utilizando los medios para el sistema operativo correspondiente, de obtener el control total del sistema. No mencioné en vano el atributo read-only de este parámetro. Después de todo, sin romper en las Fuentes snmpd (en el caso de un sistema operativo similar a UNIX), este parámetro no se puede cambiar, es decir, el agente dará fielmente al atacante todos los datos necesarios para él. Y no hay que olvidar que las implementaciones de agentes en Windows se entregan sin código fuente, y el conocimiento del sistema operativo es el 50% del éxito del ataque. Además, recuerde que muchos parámetros tienen el atributo RW (read-write), ¡y entre esos parámetros está la reenvío! Imagine las consecuencias de configurarlo en el modo "notForwarding (2)". Por ejemplo, en la implementación de Linux del software para SNMP llamado ucd-snmp, existe la posibilidad de ejecutar scripts de forma remota en los servidores mediante el envío de una solicitud correspondiente. La implementación exitosa de estas amenazas puede llevar a consecuencias extremadamente tristes;

B) el atacante está en la máquina local. En este caso, la probabilidad de despido del administrador aumenta dramáticamente. Después de todo, estar en un segmento de la red permite un simple rastreo para capturar los nombres de los grupos y, con ellos, una gran cantidad de información del sistema. Este caso también se aplica a todo lo dicho en la letra a).

Por lo tanto, al usar el protocolo SNMP, debe ser extremadamente cuidadoso. Para garantizar la seguridad de los dispositivos supervisados a través de SNMP, debe usar firewalls para segmentar y permitir la comunicación a través de este protocolo solo a los hosts de confianza.

Para detectar dispositivos compatibles con SNMP, puede utilizar la utilidad SNMP incluida en la distribución de Kali.

Puede escanear la subred en busca de dispositivos compatibles con SNMP. En caso de detección, se intentará la selección de community tanto en el modo de fuerza bruta como en el diccionario.

Oleg Petukhov, abogado en el campo del derecho internacional y la protección de datos personales, especialista en información seguridad, protección de la información y datos personales.

Canal de Telegram: https://t.me/protecciondelainformacion1

Grupo de Telegramas: https://t.me/protecciondelainformacion2

Sitio web: https://legascom.ru

Correo electrónico: online@legascom.ru

#proteccióndelainformación #seguridaddelainformación

 

Protocolo SNMP.

 

O SNMP foi originalmente desenvolvido para verificar o funcionamento dos roteadores de rede. Posteriormente, o escopo do protocolo se estende a outros dispositivos de rede, como hubs, gateways, servidores de terminal, máquinas com Windows Server, etc.Além disso, o protocolo permite alterações no funcionamento desses dispositivos.

Os principais intervenientes no processo de funcionamento do protocolo são os agentes e os sistemas de gestão. Se considerarmos esses dois conceitos na linguagem "cliente-servidor", então o papel do servidor é desempenhado pelos agentes, isto é, os próprios dispositivos para pesquisar o estado dos quais o protocolo em questão foi desenvolvido. Consequentemente, o papel dos clientes é atribuído aos sistemas de controle - aplicativos de rede necessários para coletar informações sobre o funcionamento dos agentes. Além desses dois sujeitos, o modelo de protocolo também pode distinguir dois: informações de controle e o próprio protocolo de troca de dados.

O protocolo permite que os dispositivos sejam consultados em uma rede, obtendo informações sobre o status de suas interfaces de rede, carga e outros dados.

Além disso, o SNMP tem outra característica muito importante, ou seja, a capacidade de modificar os dados nos agentes.

Agora vamos falar sobre quais informações o sistema de gerenciamento pode obter das profundezas do SNMP. Todas as informações sobre os objetos do agente do sistema estão contidas no chamado MIB (management information base)-uma base de informações de controle, em outras palavras, o MIB é um conjunto de objetos disponíveis para operações de gravação e leitura para cada cliente específico, dependendo da estrutura e finalidade do próprio cliente. Não faz sentido perguntar ao servidor terminal o número de pacotes descartados, pois esses dados não têm nada a ver com seu trabalho, assim como as informações sobre o administrador do roteador. Portanto, o sistema de gestão deve saber exatamente o que e a quem pedir. Atualmente, existem quatro bases MIB.:

1) Internet MIB-um banco de dados de objetos para fornecer diagnóstico de erros e configurações. Inclui mais de 200 objetos (incluindo objetos MIB I);

2) LAN manager MIB-base de mais de 100 objetos-senhas, sessões, usuários, compartilhamentos;

3) WINS MIB - a base de objetos necessários para o funcionamento do servidor WINS (WINSMIB.DLL);

4) DHCP MIB-a base de objetos necessários para o funcionamento do servidor DHCP (DHCPMIB).DLL), que serve para alocação dinâmica de endereços IP na rede.

Todos os nomes MIB têm uma estrutura hierárquica, geralmente representada como uma árvore. Existem dez aliases de raiz:

1) System - este grupo MIB II contém sete objetos, cada um dos quais serve para armazenar informações sobre o sistema (versão do sistema operacional, tempo de execução, etc.);

2) Interfaces-contém 23 objetos necessários para manter estatísticas de interfaces de rede de agentes (número de interfaces, Tamanho da MTU, velocidade de transmissão, endereços físicos, etc.);

3) AT (3 objetos) - responsável pela tradução de endereços. Já não é usado. Foi incluído no MIB I. Um exemplo do uso de objetos AT é uma tabela ARP simples (para mais informações sobre o protocolo ARP, consulte o artigo "uso não padrão do protocolo ARP", que pode ser encontrado no site oficial, na seção "Articles"), correspondendo os endereços físicos (MAC) das placas de rede aos endereços IP das máquinas. No SNMP v2, essas informações foram migradas para o MIB para os protocolos correspondentes;

4) IP (42 objetos) - dados sobre os pacotes IP que passam (número de solicitações, respostas, pacotes descartados);

5) ICMP (26 objetos) - informações sobre mensagens de verificação (mensagens de entrada / saída, erros, etc.);

6) TCP (19) - Tudo o que diz respeito ao protocolo de transporte de mesmo nome (algoritmos, constantes, conexões, portas abertas, etc.);

7) UDP (6)-da mesma forma, apenas para o protocolo UDP (datagramas de entrada/saída, portas, erros);

8) EGP (20) - Dados de tráfego do Exterior Gateway Protocol (usado por roteadores, objetos armazenam informações sobre quadros recebidos/enviados/rejeitados);

9) Transmission-reservado para MIBs específicos;

10) SNMP (29) – estatísticas de SNMP-pacotes de entrada/saída, limites de tamanho de pacotes, erros, dados de pedidos processados e muito mais.

Imagine cada um deles como uma árvore crescendo para baixo (o sistema se assemelha a uma organização DNS). Por exemplo, podemos acessar o endereço do administrador através do seguinte caminho: system.sysContact.0, para o tempo de funcionamento do sistema-system.sysUpTime.0, para a descrição do sistema (versão, kernel e outras informações sobre o sistema operacional) - system.sysDescr.0. Por outro lado, os mesmos dados podem ser dados em notação pontual. Então, system.sysUpTime.0 corresponde ao valor 1.3.0, uma vez que o system tem um índice "1" nos grupos MIB II e o sysUp-Time tem um índice 3 na hierarquia do grupo system. O zero no final do caminho fala sobre o tipo escalar de dados armazenados.

Durante o trabalho, os nomes simbólicos dos objetos não são usados, isto é, se o Gerenciador solicitar ao agente o conteúdo do parâmetro system.sysDescr. 0, então, na string de consulta, A referência ao objeto será convertida em "1.1.0", em vez de

será entregue "como está". Em seguida, examinaremos a solicitação em massa, e então ficará claro por que isso é tão importante. Com isso, concluiremos a revisão da estrutura do MIB II e passaremos diretamente à descrição da interação entre gerentes (sistemas de gerenciamento) e agentes.

No SNMP, o cliente se comunica com o servidor de acordo com o princípio de solicitação-resposta. Por si só, o agente é capaz de iniciar apenas uma ação, chamada armadilha, interrupção ("armadilha"). Além disso, todas as ações dos agentes são reduzidas às respostas às solicitações enviadas pelos gerentes. Os gerentes, por sua vez, podem realizar quatro tipos de solicitações:

GetRequest-solicitar ao agente informações sobre uma variável;

GetNextRequest-instrui o agente a fornecer dados sobre a próxima variável (na hierarquia) ;

GetBulkRequest-uma solicitação para obter um conjunto de dados. O agente verifica os tipos de dados na solicitação para corresponder aos dados de sua tabela e preenche a estrutura com os valores de parâmetro: for(repeatCount = 1; repeatCount < max_repetitions; repeatCount++). Agora, imagine uma solicitação de um gerente para obter uma lista de centenas de valores de variáveis, enviada em forma simbólica, e compare o tamanho dessa solicitação com o tamanho de uma solicitação semelhante na notação de ponto. Eu acho que é compreensível o que a situação levaria se os nomes simbólicos não fossem transformados da maneira acima mencionada;

SetRequest-indicação para definir um determinado valor pela mudança.

SNMP - protocolo de monitoramento e diagnóstico, portanto, ele é projetado para situações em que a integridade das rotas é comprometida, além disso, em tal situação, é necessário o protocolo de transporte menos exigente quanto possível, portanto, a escolha foi feita para UDP.

Por exemplo, se o gerente enviou vários pacotes para diferentes agentes, como o sistema de gerenciamento pode determinar qual pacote de entrada afeta os agentes 1 e 2? Para fazer isso, cada pacote é atribuído um ID específico - um valor numérico. Quando um agente recebe uma solicitação do gerente, ele gera uma resposta e insere o ID recebido da solicitação no pacote (sem modificá-lo). Um dos conceitos-chave do SNMP é o conceito de grupo. O procedimento de autorização de um gerente é uma simples verificação de que ele pertence a um grupo específico, de uma lista na posse do agente. Se o agente não encontrar os grupos do Gerente em sua lista, eles não poderão mais se comunicar.

É óbvio que são necessários meios de autenticação mais fortes para autenticar com segurança isso. A primeira versão do protocolo SNMP tem uma piada: "SNMP significa Security Not My Problem, a segurança não é meu problema".

Antes disso, encontramos várias vezes a primeira e a segunda versões do SNMP. Preste atenção à diferença entre eles.

Em primeiro lugar, note que o SNMP v2 inclui suporte para criptografia de tráfego, para o qual, dependendo da implementação, os algoritmos DES, MD5 são usados.

Isso faz com que, durante a transferência de dados, os dados mais importantes não sejam recuperáveis pelo sniffing, incluindo informações sobre grupos de rede. Tudo isso levou a um aumento no tráfego em si e à complexidade da estrutura do pacote.

Parece que o protocolo foi projetado para funcionar no ambiente dos chamados "hosts confiáveis". Imagine um endereço IP, cujo proprietário tem a intenção de se beneficiar ou simplesmente prejudicar o administrador, interrompendo o funcionamento de uma determinada rede. Tomemos o lugar desse intruso. O exame desta questão reduz-se a dois pontos:

a) estamos fora de uma"rede hostil". Como podemos fazer o nosso trabalho negro? Em primeiro lugar, assumimos que sabemos o endereço do gateway da rede. De acordo com a RFC, a conexão do sistema de controle com o agente ocorre na porta 161 (UDP). Lembre-se de que, para um bom trabalho, é necessário conhecimento do grupo. Os administradores geralmente deixam os valores (nomes) dos grupos definidos por padrão, enquanto o SNMP tem dois grupos por padrão: "privado" e "público". Se o administrador não previu tal desenvolvimento de eventos, o mal-intencionado pode causar-lhe um monte de problemas. O SNMP faz parte do FingerPrintering. Se desejar, graças ao grupo system MIB II, é possível aprender uma quantidade bastante grande de informações sobre o sistema. O que é o parâmetro read-only sysDescr? Afinal, sabendo exatamente a versão do software, há uma chance, usando as ferramentas para o sistema operacional apropriado, de obter controle total sobre o sistema. Não é à toa que mencionei o atributo read-only deste parâmetro. Afinal, sem Vasculhar os códigos-fonte do snmpd (no caso de um sistema operacional semelhante ao UNIX), esse parâmetro não pode ser alterado, ou seja, o agente fornecerá De boa fé todos os dados necessários para o invasor. E não devemos esquecer que as implementações de agentes no Windows são fornecidas sem código - fonte, e o conhecimento do sistema operacional é 50% de sucesso de ataque. Além disso, lembre-se de que muitos parâmetros têm o atributo RW (read – write), e entre esses parâmetros está o forwarding! Imagine as consequências de colocá-lo no modo"notForwarding(2)". Por exemplo, na implementação Linux de um software SNMP chamado ucd-snmp, é possível executar scripts remotamente nos servidores enviando uma solicitação correspondente. A implementação bem-sucedida dessas ameaças pode levar a consequências extremamente tristes.;

b) o atacante está em uma máquina local. Nesse caso, a probabilidade de demissão do administrador aumenta acentuadamente. Afinal, estar em um segmento da rede torna possível capturar os nomes dos grupos com um sniffing simples e, com eles, muitas informações do sistema. Este caso também se aplica a tudo o que é dito no parágrafo "a".

Portanto, ao usar o protocolo SNMP, você deve ser extremamente cuidadoso. Para garantir a segurança dos dispositivos monitorados por meio do SNMP, os firewalls devem ser usados para segmentar e permitir a comunicação neste protocolo apenas para hosts confiáveis.

Para detectar dispositivos que suportam SNMP, você pode usar o utilitário SNMP incluído na distribuição Kali.

Ele pode ser usado para analisar a sub-rede em busca de dispositivos compatíveis com SNMP. Se for detectado, será feita uma tentativa de encontrar o community tanto no modo de Força bruta quanto no dicionário.

Petukhov Oleg, advogado de Direito Internacional e proteção de dados pessoais, especialista em informação segurança, proteção de informações e dados pessoais.

Canal do Telegram: https://t.me/protecaodaInformacao

Grupo em Telegram: https://t.me/protecaodaInformacao1

Site: https://legascom.ru

Correio eletrónico: online@legascom.ru

#segurançadaInformação #Segurançadainformação

 

O protocolo SNMP.

 

Inicialmente, o protocolo SNMP foi desenvolvido para testar o funcionamento dos roteadores de rede. Posteriormente, o escopo do protocolo abrangeu outros dispositivos de rede, como hubs, gateways, servidores de terminal, máquinas Windows Server, etc. Além disso, o protocolo permite a possibilidade de fazer alterações na operação desses dispositivos.

Os principais participantes do processo de operação do protocolo são agentes e sistemas de gerenciamento. Se considerarmos esses dois conceitos na linguagem de "cliente-servidor", então o papel do servidor é desempenhado pelos agentes, ou seja, os próprios dispositivos para os quais o protocolo que estamos considerando foi desenvolvido. Assim, o papel dos clientes é atribuído aos sistemas de gerenciamento - aplicativos de rede necessários para coletar informações sobre o funcionamento dos agentes. Além desses dois assuntos, mais dois podem ser distinguidos no modelo de Protocolo: as informações de controle e o próprio protocolo de troca de dados.

O protocolo permite que os dispositivos sejam interrogados pela rede, recebendo informações sobre o status de suas interfaces de rede, carga e outros dados.

O protocolo SNMP também possui outra característica muito importante, ou seja, a capacidade de modificar dados em agentes.

Agora vamos falar sobre que tipo de informação o sistema de gerenciamento pode obter das profundezas do SNMP. Todas as informações sobre os objetos do sistema do agente estão contidas no chamado MIB (management information base), um banco de dados de informações de gerenciamento, ou seja, o MIB é uma coleção de objetos disponíveis para operações de escrita-leitura para cada cliente específico, dependendo da estrutura e finalidade do próprio cliente. Afinal, não faz sentido pedir ao servidor de terminal o número de pacotes descartados, pois esses dados nada têm a ver com seu funcionamento, além de informações sobre o administrador do roteador. Portanto, o sistema de gestão deve saber exatamente o que solicitar e de quem. Há atualmente quatro bases de dados MIB:

1) Internet MIB é um banco de dados de objetos para fornecer diagnósticos e configurações de erros. Inclui mais de 200 objetos (incluindo objetos MIB I);

2) LAN manager MIB-banco de dados com mais de 100 objetos-senhas, sessões, usuários, recursos compartilhados;

3) WINS MIB - banco de dados de objetos necessários para a operação do servidor WINS (WINSMIB.DLL );

4) DHCP MIB - banco de dados de objetos necessários ao funcionamento do servidor DHCP (DHCPMIB.DLL), que serve para alocar dinamicamente endereços IP na rede.

Todos os nomes MIB têm uma estrutura hierárquica, representada geralmente como uma árvore. Existem dez aliases raiz:

1) Sistema - este grupo MIB II contém sete objetos, cada um dos quais é usado para armazenar informações sobre o sistema (versão do SO, tempo de operação, etc.);

2) Interfaces-contém 23 objetos necessários para manter estatísticas das interfaces de rede dos agentes (número de interfaces, Tamanho da MTU, taxa de transferência, endereços físicos, etc.);

3) AT (3 objetos) - responsável pela tradução de endereços. Não é mais usado. Foi incluído no MIB I. um exemplo de uso de objetos AT é uma tabela ARP simples (para obter mais informações sobre o protocolo ARP, consulte o artigo "uso não padrão do protocolo ARP", que pode ser encontrado no site oficial na seção Artigos) de correspondência dos endereços físicos (MAC) das placas de rede com os endereços IP das máquinas. No SNMP v2, essas informações foram transferidas para o MIB para os protocolos correspondentes.;

4) IP (42 objetos) - dados sobre a passagem de pacotes IP (número de solicitações, respostas, pacotes descartados);

5) ICMP (26 objetos) - informações sobre mensagens de controle (mensagens de entrada/saída, erros, etc.);

6) TCP (19) - tudo relacionado ao protocolo de transporte de mesmo nome (algoritmos, constantes, conexões, portas abertas, etc.);

7) UDP (6) - da mesma forma, apenas para o protocolo UDP (datagramas de entrada/saída, portas, erros);

8) EGP (20) - Dados de tráfego de Protocolo de Gateway externo (usados por roteadores, objetos armazenam informações sobre quadros recebidos/enviados/descartados);

9) Transmissão-reservada para MIBs específicos;

10) SNMP (29) - estatísticas sobre SNMP – pacotes de entrada/saída, limites de tamanho de pacotes, erros, dados sobre solicitações processadas e muito mais.

Cada um deles é representado como uma árvore crescendo para baixo (o sistema se assemelha a uma organização DNS). Por exemplo, podemos acessar o endereço do administrador usando o seguinte caminho: Sistema.sysContact.0, Sistema.sysUpTime.0 e descrição do sistema (versão, kernel e outras informações do SO): sistema.sysDescr.0. Por outro lado, os mesmos dados podem ser definidos em notação de ponto. Então, sistema.sysUpTime.0 corresponde ao valor 1.3.0, pois system possui o índice " 1 " nos grupos MIB II, e sysUp-Time - 3 na hierarquia do grupo system. O zero no final do caminho indica o tipo escalar dos dados armazenados.

Nomes simbólicos de objetos não são utilizados durante a operação, ou seja, se o gestor solicitar o conteúdo do sistema.sysDescr. 0 parâmetro do Agente, a referência do objeto na string de consulta será convertida para "1.1.0", e não

ser passado "como está". A seguir, veremos a consulta em massa e, em seguida, ficará claro por que isso é tão importante. Isso completa a visão geral da estrutura do MIB II e vai diretamente para a descrição da interação entre gestores (sistemas de gestão) e agentes.

No SNMP, o cliente interage com o server em uma base da pedido-resposta. Por si só, o agente é capaz de iniciar apenas uma ação, chamada de trap, uma interrupção ("trap" - armadilha). Além disso, todas as ações do agente se limitam a responder às solicitações enviadas pelos gerentes. Os gestores, por sua vez, podem fazer quatro tipos de solicitações:

GetRequest é uma solicitação do agente para obter informações sobre uma única variável.;

GetNextRequest-instrui o agente a fornecer dados sobre a próxima variável (na hierarquia).;

GetBulkRequest é uma solicitação para obter uma matriz de dados. Após o recebimento, O agente verifica os tipos de dados na solicitação quanto à conformidade com os dados de sua tabela e preenche a estrutura com os valores dos parâmetros: for(repeatCount = 1; repeatCount < max_repetitions; repeatCount++). Agora imagine a solicitação de um gerente para uma lista de centenas de valores de variáveis, enviados de forma simbólica, e compare o tamanho disso com o tamanho de uma solicitação semelhante em notação de ponto. Acho que está claro a que a situação levaria se os nomes simbólicos não fossem transformados da maneira acima.;

SetRequest é uma instrução para definir um valor específico com uma variável.

O SNMP é um protocolo de monitoramento e diagnóstico e, portanto, é projetado para situações em que a integridade das rotas é comprometida. Além disso, em tal situação, é necessário um protocolo de transporte o mais baixo possível em requisitos de hardware, portanto, a escolha foi feita em relação ao UDP.

Suponha que um gerente tenha enviado vários pacotes para diferentes agentes, como o sistema de gerenciamento pode determinar ainda qual dos pacotes recebidos diz respeito aos agentes 1st e 2nd? Para isso, cada pacote recebe um ID específico-um valor numérico. Quando o Agente recebe uma solicitação do Gerenciador, ele gera uma resposta e insere o valor de ID recebido da solicitação no pacote (sem modificá-lo). Um dos conceitos chaves no SNMP é o conceito de um grupo. O procedimento de autorização do gerente é uma simples verificação para ver se ele pertence a um grupo específico da lista do agente. Se o agente não encontrar os grupos do Gerente em sua lista, sua interação posterior será impossível.

É bastante óbvio que Ferramentas de autenticação mais confiáveis são necessárias para a autenticação segura disso. A primeira versão do protocolo SNMP tinha até uma piada assim: "SNMP significa que segurança não é problema meu, segurança não é problema meu."

Antes disso, havíamos encontrado a primeira e a segunda versão do SNMP várias vezes. Vamos prestar atenção na diferença entre eles.

Em primeiro lugar, notamos que o SNMP v2 inclui suporte para criptografia de tráfego, para o qual, dependendo da implementação, são utilizados algoritmos DES e MD5.

Isso leva ao fato de que, ao transmitir dados, os dados mais importantes não estão disponíveis para farejar, incluindo informações sobre grupos de rede. Tudo isso levou a um aumento no próprio tráfego e a uma complicação da estrutura do pacote.

Parece que o protocolo foi projetado para funcionar em um ambiente dos chamados "hosts confiáveis". Vamos imaginar um determinado endereço IP, cujo proprietário tem a intenção de beneficiar ou simplesmente incomodar o administrador, interrompendo a operação de uma determinada rede. Vamos tomar o lugar desse atacante. A consideração dessa questão pode ser reduzida a dois pontos:

a) estamos fora da "rede hostil". Como podemos fazer nossa ação suja? Em primeiro lugar, assumimos que sabemos o endereço do gateway de rede. De acordo com o RFC, o sistema de gerenciamento é conectado ao agente através da porta 161 (UDP). Lembremos que um trabalho de sucesso exige conhecimento do grupo. Aqui, o invasor é ajudado pelo fato de que os administradores geralmente deixam os valores de grupo padrão (nomes) e, por padrão, existem dois grupos para SNMP - "private" e "public". Se o administrador não previu tal desenvolvimento, o malfeitor pode causar-lhe muitos problemas. Como você sabe, o protocolo SNMP faz parte da impressão digital. Se desejar, graças ao grupo system MIB II, é possível aprender bastante informação sobre o sistema. Pelo menos o parâmetro sysdescr somente leitura vale a pena. Afinal, sabendo exatamente a versão do software, há uma chance, usando as ferramentas para o sistema operacional apropriado, de obter controle total sobre o sistema. Mencionei o atributo somente leitura desse parâmetro por um motivo. Afinal, sem vasculhar as fontes do snmpd (no caso de um sistema operacional do tipo UNIX), esse parâmetro não pode ser alterado, ou seja, o agente fornecerá fielmente ao invasor todos os dados necessários. E não se esqueça que as implementações do agente para Windows são fornecidas sem códigos fonte, e o conhecimento do sistema operacional é 50% do sucesso do ataque. Além disso, lembremos que muitos parâmetros possuem o atributo rw (read-write), e entre esses parâmetros está o encaminhamento! Imagine as consequências de configurá-lo para o modo "notForwarding(2)". Por exemplo, na implementação Linux do software para SNMP chamado ucd-snmp, é possível executar scripts remotamente para servidores enviando uma solicitação correspondente. A implementação bem-sucedida dessas ameaças pode levar a consequências extremamente tristes.;

b) o atacante está na máquina local. Nesse caso, a probabilidade de demissão do administrador aumenta drasticamente. Afinal, estar no mesmo segmento da rede possibilita simplesmente farejar os nomes dos grupos e, com eles, muitas informações do sistema. Tudo mencionado no parágrafo "a" também se aplica a este caso.

Assim, ao usar o protocolo SNMP, você precisa ser extremamente cuidadoso. Para garantir a segurança dos dispositivos monitorados via SNMP, os firewalls devem ser usados para segmentar e permitir que apenas hosts confiáveis interajam usando esse protocolo.

Para detectar dispositivos que suportam SNMP, você pode usar o utilitário SNMP incluído na distribuição Kali.

Pode ser usado para fazer a varredura da sub-rede para os dispositivos que apoiam o protocolo SNMP. Se detectado, será feita uma tentativa de selecionar a comunidade tanto no modo de busca quanto por dicionário.

Petukhov Oleg, advogado de Direito Internacional e proteção de dados pessoais, especialista em informação segurança, proteção de informações e dados pessoais.

Canal do Telegram: https://t.me/protecaodaInformacao

Grupo em Telegram: https://t.me/protecaodaInformacao1

Site: https://legascom.ru

Correio eletrónico: online@legascom.ru

#segurançadaInformação #Segurançadainformação

 

Protocollo SNMP.

 

Il protocollo SNMP è stato originariamente sviluppato per verificare il funzionamento dei router di rete. Successivamente, l'ambito del protocollo ha riguardato altri dispositivi di rete come hub, Gateway, Terminal Server, macchine che eseguono Windows Server, ecc.

I principali attori del processo di funzionamento del protocollo sono agenti e sistemi di gestione. Se consideriamo questi due concetti nel linguaggio «client-server", il ruolo del server viene svolto dagli agenti, ovvero gli stessi dispositivi per il cui stato è stato sviluppato il protocollo che stiamo considerando. Di conseguenza, il ruolo dei clienti è assegnato ai sistemi di gestione, le applicazioni di rete necessarie per raccogliere informazioni sul funzionamento degli agenti. Oltre a questi due soggetti, nel modello di protocollo si possono distinguere anche altri due: le informazioni di controllo e il protocollo di comunicazione stesso.

Il protocollo consente di eseguire il polling dei dispositivi attraverso la rete, ottenendo informazioni sullo stato delle loro interfacce di Rete, Carico e altri dati.

Inoltre, il protocollo SNMP ha un'altra caratteristica molto importante, vale a dire la capacità di modificare i dati sugli agenti.

Ora parliamo di quali informazioni il sistema di gestione può trarre dalle viscere di SNMP. Tutte le informazioni sugli oggetti del sistema Agente sono contenute nel cosiddetto MIB (management information base)-la base di informazioni di gestione, in altre parole, un MIB è un insieme di oggetti disponibili per le operazioni di scrittura e lettura per ogni cliente specifico, a seconda della struttura e dello scopo del cliente stesso. Dopotutto, non ha senso chiedere al terminal server il numero di pacchetti scartati, poiché questi dati non hanno nulla a che fare con il suo funzionamento, così come le informazioni sull'amministratore per il router. Pertanto, il sistema di controllo deve immaginare esattamente cosa e chi chiedere. Al momento ci sono quattro basi MIB:

1) Internet MIB - database di oggetti per fornire diagnosi di errori e configurazioni. Include più di 200 oggetti (compresi gli oggetti MIB I);

2) LAN manager MIB-database di oltre 100 oggetti-password, sessioni, utenti, condivisioni;

3) WINS MIB-il database degli oggetti necessari per il funzionamento del server WINS (WINSMIB.DLL);

4) DHCP MIB-la base degli oggetti necessari per il funzionamento del server DHCP (DHCPMIB.DLL) che serve per allocare dinamicamente gli indirizzi IP nella rete.

Tutti i nomi MIB hanno una struttura gerarchica, solitamente rappresentata come un albero. Ci sono dieci alias radice:

1) System - questo gruppo MIB II contiene sette oggetti, ognuno dei quali serve per memorizzare le informazioni sul sistema (Versione del sistema operativo, tempo di esecuzione, ecc.);

2) Interfaces-contiene 23 oggetti necessari per mantenere statistiche sulle interfacce di rete degli agenti (numero di interfacce, dimensione MTU, velocità di trasmissione, indirizzi fisici, ecc.);

3) AT (3 oggetti) - responsabile della traduzione degli indirizzi. Non più utilizzato. È stato incluso nel MIB I. Un esempio di utilizzo degli oggetti AT può essere una semplice tabella ARP (per ulteriori informazioni sul protocollo ARP, consultare L'articolo «uso non standard del protocollo ARP», che può essere trovato sul sito ufficiale nella sezione «Articoli») della corrispondenza degli indirizzi fisici (MAC) delle schede di rete agli indirizzi IP delle macchine. In SNMP v2, queste informazioni sono state trasferite al MIB per i rispettivi protocolli;

4) IP (42 oggetti) - dati sui pacchetti IP di passaggio (numero di richieste, risposte, pacchetti scartati);

5) ICMP (26 oggetti) - informazioni sui messaggi di controllo (messaggi in entrata/uscita, errori, ecc);

6) TCP (19) - tutto ciò che riguarda il protocollo di trasporto con lo stesso nome (algoritmi, costanti, connessioni, porte aperte, ecc.);

7) UDP ( 6) - allo stesso modo, solo per il protocollo UDP (datagrammi in entrata/uscita, porte, errori);

8) EGP (20) - dati sul traffico Exterior Gateway Protocol (utilizzato dai router, gli oggetti memorizzano le informazioni sui frame ricevuti/inviati/scartati);

9) Transmission-riservato a specifici MIB;

10) SNMP (29) – statistiche SNMP-pacchetti in entrata/uscita, limiti di dimensione dei pacchetti, errori, dati sulle richieste elaborate e altro ancora.

Ognuno di essi è rappresentato sotto forma di un albero che cresce verso il basso (il sistema ricorda L'organizzazione DNS). Ad esempio, possiamo accedere all'indirizzo dell'amministratore tramite il seguente percorso: system.sysContact.0, il tempo di funzionamento del sistema è system.sysUpTime.0, alla descrizione del sistema (versione, kernel e altre informazioni sul sistema operativo) - system.sysDescr.0. D'altra parte, gli stessi dati possono essere specificati nella notazione del punto. OK, system.sysUpTime.0 corrisponde al valore 1.3.0 poiché system ha un indice «1 " nei gruppi MIB II e sysUp-Time è 3 nella gerarchia del gruppo system. Lo zero alla fine del percorso parla del tipo scalare dei dati memorizzati.

Durante il funzionamento, i nomi simbolici degli oggetti non vengono utilizzati, ovvero se il gestore richiede all'agente il contenuto del parametro system.sysDescr. 0, quindi nella stringa di query il riferimento all'oggetto verrà convertito in "1.1.0", non

sarà trasmesso "così com'è". Successivamente, esamineremo la query BULK e quindi diventerà chiaro il motivo per cui è così importante. Questo concluderà la revisione della struttura del MIB II e procederà direttamente alla descrizione dell'interazione tra manager (sistemi di gestione) e agenti.

In SNMP, il client comunica con il server in base al principio richiesta-risposta. L'agente stesso è in grado di avviare una sola azione, chiamata trappola, interruzione («trappola» - trappola). Inoltre, tutte le azioni degli agenti si riducono a rispondere alle richieste inviate dai manager. I manager, a loro volta, possono eseguire quattro tipi di richieste:

GetRequest-richiesta all'agente di informazioni su una singola variabile;

GetNextRequest-indica all'agente di fornire dati sulla variabile successiva (nella gerarchia) ;

GetBulkRequest-richiesta per ottenere un array di dati. Quando ne riceve uno, l'agente controlla i tipi di dati nella query rispetto ai dati della sua tabella e popola la struttura con i valori dei parametri: for(repeatCount = 1; repeatCount < max_repetitions; repeatCount++). Ora immagina una richiesta del gestore per ottenere un elenco di centinaia di valori variabili inviati in forma di carattere e confronta la dimensione di tale con la dimensione di una query simile in notazione punto. Penso che sia chiaro a cosa porterebbe la situazione se i nomi dei caratteri non fossero convertiti nel modo sopra;

SetRequest-indica di impostare un valore specifico da un cambiamento.

SNMP è un protocollo di monitoraggio e diagnostica, e quindi è progettato per situazioni in cui l'integrità dei percorsi viene violata, inoltre, in una situazione del genere, è necessario un protocollo di trasporto il meno esigente possibile per l'apparecchiatura, quindi la scelta è stata fatta verso UDP.

Supponiamo che il gestore abbia inviato più pacchetti a agenti diversi, come può il sistema di gestione determinare ulteriormente quale dei pacchetti in arrivo riguarda il 1 ° e il 2 ° agente? Per fare ciò, a ciascun pacchetto viene assegnato un ID specifico, un valore numerico. Quando un agente riceve una richiesta dal Manager, genera una risposta e inserisce nel pacchetto il valore ID che ha ricevuto dalla richiesta (senza modificarla). Uno dei concetti chiave in SNMP è il concetto di group (gruppo). La procedura di autorizzazione di un manager è un semplice controllo per l'appartenenza a un gruppo specifico dall'elenco dell'agente. Se l'agente non trova i gruppi manager nel proprio elenco, non è possibile interagire ulteriormente.

È abbastanza chiaro che sono necessari mezzi di autenticazione più forti per autenticarlo in modo sicuro. Il protocollo SNMP della prima versione è stato persino bloccato con questo scherzo:»SNMP sta per Security Not My Problem, la sicurezza non è il mio problema".

Prima di questo, ci siamo imbattuti più volte nella prima e nella seconda versione di SNMP. Prestiamo attenzione alla differenza tra loro.

Prima di tutto, notiamo che SNMP v2 include il supporto per la crittografia del traffico, per il quale, a seconda dell'implementazione, vengono utilizzati algoritmi DES, MD5.

Ciò porta al fatto che durante la trasmissione dei dati, i dati più importanti non sono disponibili per l'estrazione da parte dello sniffing, comprese le informazioni sui gruppi di rete. Tutto ciò ha comportato un aumento del traffico stesso e una complessità nella struttura del pacchetto.

Sembra che il protocollo sia progettato per funzionare in un ambiente chiamato «host attendibili». Immaginiamo un certo indirizzo IP, il cui proprietario ha l'intenzione di beneficiare o semplicemente di infastidire l'amministratore interrompendo una determinata rete. Andiamo al posto di questo intruso. La considerazione di questo problema è ridotta a due punti:

a) Siamo al di fuori di una «rete ostile». Come possiamo fare la nostra opera nera? Prima di tutto, supponiamo di conoscere l'indirizzo del gateway di rete. Secondo la RFC, la connessione del sistema di controllo all'agente avviene sulla 161A porta (UDP). Ricordiamo che per un lavoro di successo è necessaria la conoscenza del gruppo. Qui l'attaccante viene in soccorso del fatto che spesso gli amministratori lasciano i valori (nomi) dei gruppi impostati per impostazione predefinita, e per impostazione predefinita per SNMP ci sono due gruppi: «privato» e «pubblico». Se l'amministratore non ha previsto un tale sviluppo di eventi, il malvagio può causargli molti problemi. Come è noto, il protocollo SNMP fa parte di FingerPrintering. Se lo si desidera, grazie al Gruppo system MIB II, è possibile conoscere una quantità abbastanza grande di informazioni sul sistema. Quanto vale almeno il parametro read-only sysDescr. Dopotutto, conoscendo esattamente la versione del software, c'è la possibilità, utilizzando i mezzi per il sistema operativo corrispondente, di ottenere il pieno controllo del sistema. Non ho menzionato l'attributo read-only di questo parametro per niente. Dopotutto, senza scavare nei sorgenti snmpd (nel caso di un sistema operativo simile a UNIX), questo parametro non può essere modificato, ovvero l'agente fornirà fedelmente all'attaccante tutti i dati necessari per lui. E non dimenticare che le implementazioni degli agenti sotto Windows vengono fornite senza codici sorgente e la conoscenza del sistema operativo è il 50% del successo dell'attacco. Inoltre, ricordiamo che molti parametri hanno l'attributo RW (read-write) e tra questi parametri c'è forwarding! Immagina le conseguenze di impostarlo in modalità»notForwarding(2)". Ad esempio, nell'implementazione Linux del software SNMP chiamato ucd-snmp, è possibile eseguire script in remoto sui server inviando una richiesta appropriata. La riuscita attuazione di queste minacce può portare a conseguenze estremamente tristi;

B) l'attaccante è sulla macchina locale. In questo caso, la probabilità di licenziamento dell'amministratore aumenta notevolmente. Dopotutto, essere in un segmento della rete consente un semplice sniffing per catturare i nomi dei gruppi e con loro molte informazioni di sistema. Questo caso riguarda anche tutto ciò che è stato detto al punto "a".

Pertanto, quando si utilizza il protocollo SNMP, è necessario essere estremamente attenti. Per garantire la sicurezza dei dispositivi monitorati tramite SNMP, è necessario utilizzare firewall per segmentare e consentire la comunicazione con questo protocollo solo per gli host attendibili.

Per rilevare i dispositivi che supportano SNMP, è possibile utilizzare L'utilità SNMP inclusa nella distribuzione Kali.

È possibile eseguire la scansione di una sottorete alla ricerca di dispositivi che supportano il protocollo SNMP. In caso di rilevamento, verrà effettuato un tentativo di selezione della community sia in modalità di forza bruta che di dizionario.

Oleg Petukhov, avvocato nel campo del diritto internazionale e della protezione dei dati personali, specialista nel campo dell'informazione sicurezza, protezione delle informazioni e dei dati personali.

Canale Telegram: https://t.me/protezionedelleinformazioni

Gruppo in telegramma: https://t.me/protezionedelleinformazioni1

Sito: https://legascom.ru

E-mail: online@legascom.ru

#protezionedelleInformazioni #sicurezzadelleinformazioni