Введение
Данная статья является логическим продолжением материала "Идентификация и
взаимодействие с удаленной системой через
SNMP", в котором были даны базисные принципы функционирования данного протокола. Целью этой работы
является освещение необходимых мер для обеспечения должного уровня защиты
SNMP. Хотелось бы попросить прощения у читателя за то, что некоторые
моменты из предыдущего материала будут повторяться - это необходимо для
более полного обзора данного вопроса. Информация общего характера здесь
будет представлена в минимальном объеме; для лучшего восприятия материала
советую прочитать первую статью.
Угрозы
Проблемы с протоколом SNMP начались с первой версии, когда механизма
защиты не было как такового. Любой желающий мог узнать пароли просто
прослушивая сеть. Но через некоторое время вышла вторая версия, в которой,
в соответствии с требованиями времени, были реализованы более серьезные
функции защиты. В частности, хэширование при помощи MD5, шифрование по
DES и др. (см. первую статью). На сегодняшний момент последней является третья версия SNMP, разработчики
которой основной задачей видят обеспечение безопасности. Однако, не все
так гладко с безопасностью даже и у третьей версии.
Существует 6 видов угроз для SNMP:
- Раскрытие информации: отслеживание обмена данными между агентами и
управляющей станцией с целью сбора значений - Маскарадинг
- Модификации: посылка сообщений для фиктивных операций
- Модификации в потоке сообщений
- Анализ сетевого трафика
- Атаки отказа в обслуживании.
Рассмотрим, как кажется, наиболее защищенную третью версию 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. Если что-то пропустил, то буду благодарен за
подсказку. Спасибо за комментарии, которые натолкнули написать
продолжение.