Один из наиболее заметных недостатков SNMP v1 - отсутствие развитой системы защиты данных на уровне,
необходимом для сетей масштаба предприятия.
Как сказал Mike Warfield: "SNMP stands for Security Not My Problem".
В SNMPv1 защита административной информации трактовалась слишком упрощенно: она
базировалась на использовании коллективного имени (Community Name), которое, находясь в заголовке
SNMP, несло в себе все возможности защиты сообщений. Данное средство (известное под названием
тривиальный протокол) требовало, чтобы программа-агент и менеджер опознали одно и то же
коллективное имя, прежде чем продолжить выполнение операций сетевого администрирования. В
результате многие администраторы сетей ограничивались в своей работе только функциями
мониторинга, запрещая выдачу команды SET, способной изменять параметры конфигурации
удаленного устройства. Это привело к тому, что пользователи избегали команд SET: такое примитивное
средство защиты, как коллективное имя, могло дать возможность лицам, не наделенным
соответствующими полномочиями, изменять параметры, о чем пользователи могли даже и не узнать.
К тому же вся критически важная информация передавалась в открытом
виде.
В связи с этим были разработаны предложения по совершенствованию защиты в рамках SNMPv1, представленные в июле 1992 г.; они составили основу структуры защиты для SNMPv2. В течение 1993 года было опубликовано 11 RFC, которые определяли новые стандарты SNMP. Первый из них, RFC 1441 , является введением в SNMP версии 2 (SNMPv2).
Стандартами защиты SNMPv2 определяются методы аутентификации (DAP - Digest Authentication Protocol) и обеспечения конфиденциальности (SPP -Symmetric Privacy Protocol) информации административного характера. В основе лежит концепция участника (party) - уникального набора параметров защиты, который может включать местоположение сети, протоколы аутентификации и обеспечения конфиденциальности, используемые между агентом и менеджером.
Новый тип пакетов get-bulk-request позволяет менеджеру эффективно обрабатывать большие блоки данных. Еще один новый тип пакетов inform-request позволяет одному менеджеру посылать информацию другому менеджеру. Определены два новых MIB: MIB SNMPv2 и MIB SNMPv2-M2M (менеджер-менеджер). SNMPv2 предоставляет улучшенную секретность по сравнению с SNMPv1. В SNMPv1 имя сообщества передается от менеджера к агенту в виде открытого пароля. SNMPv2 предоставляет аутентификацию и расширенную секретность.
Однако вторая версия SNMP не была поддержана производителями сетевого оборудования и распространения не получила. Но в последнее время разработчики стандартов из IETF стараются переломить ситуацию, предложив спецификацию третьей версии SNMP. Существенные улучшения протокола, обеспечивающие гибкое администрирование агентов систем управления и защиту управляющей информации, обратная совместимость с системами на основе базовой версии SNMPv1, а также открытая архитектура позволяют авторам SNMPv3 надеяться на успешное практическое воплощение своего детища. Успех будет зависеть от многих факторов и, в частности, от того, насколько широко информация о его достоинствах проникнет в массы.
Можно отметить следующие принципиально новые свойства протокола SNMPv3:
Атака на Windows SNMP.
Cервисы работают на следующих UDP портах: 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, так как в реализациях этого протокола
в некоторых операционные системы допущены серьезные ошибки.
Уязвимость в стандартной конфиругации 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 Как рекомендовалось в ISS scanner'е, можно выключить эту порцию SNMP mibs таким способом: Открыть HKLM\System\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents найти значение, которое содержить SOFTWARE\Microsoft\LANManagerMIB2Agent\CurrentVersion и удалить его. - 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.
Лучший способ защиты по рекомендации M$: заблокировать SNMP access на firewall'е.
Проблема в OS Solaris версии до 2.6.
Исходя из ISS Security Advisory (November 2nd, 1998), в агенте SNMP, который по умолчанию запущен в этой системе, существуют реальные угрозы получить доступ на уровне рута, манипулировать процессами и параметрами машины.
Для доступа к MIB-информации существует скрытая "undocumented community string", которая позволит атакующему изменить большинство системных параметров.
К сожалению, само это community не называется, однако ISS Internet Scanner и ISS RealSecure real-time intrusion detection могут детектировать эту проблемы, т.е. посмотреть можно и в их исходниках.