У даній статті билудет розглянуто аудит мережевих пристроїв Cisco IOS на прикладі стандарту PCI DSS.
Автор: Сергій Павлов
Провідний експерт з інформаційної безпеки компанії Positive Technologies.
В ході робіт з практичного аналізу захищеності фахівці компанії Positive Technologies часто стикаються з неправильно вибрано параметр мережевого обладнання. Розглянемо одну з найпростіших ситуацій, яка може скластися в ході проведення тесту на проникнення (Penetration Test).
Наприклад, для організації гостьового доступу в мережу Інтернет використовується бездротова мережа, яка не потребує аутентифікації.
Використовуючи аналізатор трафіку, фахівці виявили, що в сегменті користувачів «гуляють» дані протоколу CDP (Cisco Discovery protocol). Аналіз даних протоколу дозволив ідентифікувати кілька мережевих пристроїв, в тому числі Cisco WLAN Controller, який використовується для управління «полегшеними» точками доступу.
Отриманий список IP-адрес мережевих пристроїв був просканований в режимі Penetration Test на предмет доступних служб і пов'язаних вразливостей з використанням системи аналізу захищеності і відповідності стандартам MaxPatrol . В результаті була підібрана стандартний рядок з'єднання (community string) для підключення через сервіс SNMP.
Мал. 1 MaxPatrol працює, ми відпочиваємо
Як з'ясувалося, пароль SNMP має привілеї на читання і запис, що дозволило скопіювати конфігурації мережевих пристроїв через службу tft .
version 12.2
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname <removed>
!
boot-start-marker
boot-end-marker
!
logging buffered 10000 debugging
enable secret 5 $ 1 $ bbp3 $ B <removed> /
...
line vty 5 15
password <removed>
login
!
ntp clock-period 36030907
ntp server <removed>
end
У конфігурації частина паролів зберігалися у відкритому вигляді. Хоча пароль на перехід в режим «enable» був зашифрований за допомогою стійкого алгоритму шифрування MD5, він збігався з паролем, заданим для ліній vty:
line vty 5 15
password <removed>
Таким чином, за кілька хвилин був отриманий доступ до мережних пристроїв з привілеями level 15. Примітно, що використовуваний пароль «Cisc0», формально задовольняє критеріям складності, досить широко поширений і міг би бути підібраний і за словником.
На граничному маршрутизаторі служба SNMP не використовувалася, а для доступу до інтерфейсу управління застосовувався тільки SSH. Таким чином, для підключення до пристрою обов'язково потрібно знати логін користувача. Але в списку відкритих портів був присутній SSL (tcp / 443). Даний сервіс викликав інтерес, оскільки, на відміну від SSH, тут знати ім'я користувача не обов'язково, можна скористатися паролем «enable», головне, щоб рівень привілеїв дорівнював 15. Припущення про те, що на всіх пристроях пароль «enable» ідентичний, виявилося вірним, і спроба аутентифікації через веб-інтерфейс була успішна, що дозволило отримати необмежений доступ до пристрою.
Для отримання конфігурації пристрою був використаний URL:
https: //10.xx9/level/15/exec/-
Далі, треба було тільки ввести команду "show running-config", і доступ до поточної конфігурації був отриманий.
Мал. 2 Висновок конфігурації через веб-сервер Cisco IOS
Найцікавіше, що доступ до цього маршрутизатора можна було також отримати через мережу Інтернет.
Мал. 3 Доступ до граничного маршрутизатора через HTTPS
Як було сказано вище, через протокол CDP отримана деяка інформація про пристрої, в тому числі і про WLAN Controller 4402. Інформації включала в себе версію ОС:
evice ID: WLC-4402-B
Entry address (es):
IP address: 10.xxx
Platform: AIR-WLC4402-12-K9, Capabilities: Host
Interface: GigabitEthernet2 / 0/5, Port ID (outgoing port): GigabitEthernet0 / 0/1
Holdtime: 165 sec
Version:
Manufacturer's Name: Cisco Systems Inc. Product Name: Cisco Controller Product Version: 5.1.151.0 RTOS Version: 5.1.151.0 Bootloader Version: 4.0.217.204 Build Type: DATA + WPS
Використовувана версія ОС WLC 5.1.151.0 схильна до різним типам вразливостей, які дозволяють викликати відмову в обслуговуванні ( CVE-2009-0058 , CVE-2009-1164 , CVE-2009-1165 , CVE-2009-1166 ) І змінити конфігурацію пристрою ( CVE-2009-1167 ). Таким чином навіть при використанні стійких паролів, мережа може бути скомпрометована через інші вектори атак, такі як помилки в управлінні оновленнями безпеки.
З одного боку, отримані результати - це чисто технічні проблеми. Однак їх вміле використання зловмисником може привести до серйозних проблем для бізнесу. Давайте розглянемо декілька можливих сценаріїв:
- Маючи необмежений доступ, зловмисник може стерти конфігурацію або образ IOS і перезавантажити пристрою. Це може привести до масштабного відмови в обслуговуванні, і серйозних витрат на відновлення працездатності мережі, не кажучи вже про репутаційному збиток.
Після подібних дій з'являються такі новини:
Мал. 4 Не найкраща реклама для компанії
- Налаштувати реєстрацію певного типу трафіку і здійснити перенаправлення трафіку на контрольований зловмисником сервер.
- В результаті зловмисник зможе перехоплювати будь-який трафік, що проходить через маршрутизатор і зберігати цікаві для себе дані, такі як паролі користувачів, номери кредитних картці і т.д.
Мал. 5 Реєстрація подій і подальша їх відправка на зовнішній syslog-сервер
- Налаштувати GRE-тунель або VPN у внутрішню мережу, і оголосити свою мережу через динамічний протокол маршрутизації. Навіть якщо в компанії використовується фільтрація трафіку і включені механізми, предотравщающіе спроби несанкціонованого доступу, підключившись через тунель комп'ютер зловмисника буде належати до внутрішньої мережі Компанії, отримуючи доступ до всіх вузлів. В іншому випадку, маючи необмежені права на мережевих пристрої, ніщо не завадить зловмисникові змінити конфігурацію так, як йому буде потрібно.
Мал. 6 Підключення до внутрішньої мережі компанії
Наведений приклад - тільки один з випадків. Фахівці компанії Positive Technologies виділяють наступні найбільш характерні недоліки побудови та експлуатації захищеної мережевої інфраструктури:
- Недостатнє сегментування і фільтрація трафіку;
- Слабкі паролі, стандартні настройки, незахищені протоколи передачі даних;
- Слабке шифрування, недостатній контроль клієнтів і точок доступу в бездротових мережах;
- Уразливості, пов'язані зі встановленою ОС, які публікуються в загальновідомих джерелах, таких як:
Якщо розглядати заходи, спрямовані на зниження ймовірності експлуатації даних помилок, то вони широко відомі. Відмінною компіляцією таких заходів є стандарт PCI DSS .
Однак крім урахування вимог стандартів і передового досвіду при проектуванні і експлуатації мережевої інфраструктури потрібно контролювати поточний стан захищеності. З урахуванням того, що у великих компаніях кількість мережевих пристроїв може досягати декількох тисяч, проводити аудит вручну практично неможливо.
Тому необхідна автоматизація процесу. Для вирішення таких завдань існують системи контролю відповідності стандартам (Compliance Management), однією з яких є MaxPatrol, розробленої компанією Positive Technologies.
Далі, взявши за основу стандарт безпеки даних індустрії платіжних карт PCI DSS, зупинимося докладніше на деяких вимогах і «підводні камені», що зустрічаються при аудиті мережевих пристроїв компанії Cisco Systems.
Вимога 2.2 Необхідно впровадити стандарти конфігурації всіх системних компонентів. Ці стандарти повинні визначати конфігураційні параметри, що усувають відомі недоліки механізмів безпеки.
При виконанні цієї вимоги можна використовувати стандарти, що входять в поставку MaxPatrol: Center for Internet Security , Або стандарти, сформовані на основі багаторічного досвіду експертів компанії Positive Technologies.
Вимога 6.1. Для всіх системних компонентів і програмного забезпечення повинні бути встановлені останні оновлення безпеки, надані виробниками. Критичні оновлення безпеки повинні бути встановлені протягом 1 місяця з моменту їх випуску.
Для виконання даної вимоги скористаємося загальновідомими джерелами, де постійно публікуються нові уразливості для різних систем. Розглянемо, наприклад, вразливість з ідентифікатором CVE 2007-4285 . Керуючись даними виробника , Легко виявити, що при визначенні версій IOS, які схильні до даної уразливості, необхідно розглядати не тільки основний реліз, але і враховувати різні гілки. Таким чином виходить, що враховуються понад 200 різних версій ОС IOS!
Мал. 7 Відомості з бази знань Cisco Systems по уразливості CVE 2007-4285
Детальний аналіз застосовних оновлень і відсутність помилкових спрацьовувань мінімізує трудовитрати на обробку отриманих результатів. На відміну від більшості систем контролю відповідності стандартам, MaxPatrol виводить список вразливостей, яким дійсно схильна поточна версія IOS.
Мал. 8 Відображення докладних даних про уразливість CVE 2007-4285 в версії IOS 12.3 (4) T2
Вимога 1.2.2 Забезпечення захисту і синхронізації конфігураційних файлів маршрутизаторів
Переконатися, що конфігураційні файли маршрутизаторів захищені і синхронізовані (наприклад, файли активної конфігурації (running) і стартової конфігурації (start-up), які завантажуються в оперативну пам'ять в якості активної конфігурації при перезавантаженні пристрою, мають ідентичні захищені конфігурації).
При невиконанні цієї вимоги адміністратор ризикує втратити все незбережені зміни. Це може вплинути на функціонування мережі, а для відновлення може знадобитися чимало часу, навіть якщо адміністратор управляє декількома мережевими пристроями! А якщо їх кілька тисяч? Тому ігнорувати дану вимогу не варто.
Приклад виконання даної вимоги в системі MaxPatrol представлений нижче. У цьому прикладі також підраховуються контрольні суми конфігурацій.
Мал. 9 Підрахунок контрольних сум конфігурацій в системі MaxPatrol
Вимога 2.2.2. Всі непотрібні і небезпечні сервіси та протоколи (сервіси та протоколи, які не є необхідними для функціонування пристроїв) повинні бути відключені.
Небезпека невиконання даної вимоги розглянемо на прикладі служби Finger. Якщо вона включена, то зловмисник може отримати інформацію, яку потім іспользуетпрі реалізації атак. У прикладі, представленому нижче, видно, що в поточний момент в системі працює користувач «admin» через лінію «con 0».
Мал. 10 «Хто в будиночку живе?»
Отримавши ім'я користувача, зловмисникові набагато простіше успішно підібрати пароль.
Розглянемо, наприклад, службу BOOTP.
Згідно з документацією виробника дана служба включена за замовчуванням, починаючи з версії IOS 11.2 включно.
Мал. 11 Перевірка значення за замовчуванням для служби IP BOOTP
Отже, робимо висновок, навіть якщо служба в конфігурації явно не задана, це зовсім не означає, що вона відключена.
Система MaxPatrol враховує статус служби в залежності від версії ОС.
Більшість систем контролю відповідності стандартам здійснюють тільки пошук по файлу конфігурації, тим самим викликаючи помилкові результати.
Мал. 12 Докладні дані про службу IP BOOTP в системі MaxPatrol
Тепер розглянемо більш складний приклад. Статус служби IP Finger. може відрізнятися в залежності від версії IOS, так само змінюється і синтаксис команди:
IOS> = 11.3 <12.1 (5), ip finger, Enabled (ip finger)
IOS> = 12.1 (5), 12.1 (5) T, ip finger, DISABLED (no ip finger)
IOS> = 11.3 <12.1 (5), service finger, Enabled (service finger)
Таким чином, при аудиті пристроїв на базі Cisco IOS слід враховувати не тільки версію ОС, але і синтаксис команди, що власне і робить MaxPatrol.
І ще один цікавий приклад.
Команда «ip arp proxy disable» підтримується, починаючи тільки з певною версією Cisco IOS:
IOS> = 1 2.2 S, Proxy ARP enabled (no ip arp proxy disable)
IOS> = 12.3 (11) T, Proxy ARP enabled (no ip arp proxy disable)
IOS> = 12.2 (18) SXE, Proxy ARP enabled (no ip arp proxy disable)
Тобто в даному випадку при перевірці необхідно враховувати підтримку команди для різних версій ОС.
Мал. 13 Висновок докладних даних про службу IP Proxy ARP в системі MaxPatrol
При виконанні цієї вимоги спочатку аналізується підтримка команди «ip arp proxy disable». У разі якщо команда недоступна, перевіряється статус служби на інтерфейсах. Це зроблено для того, щоб настройка глобальних сервісів була найкращою, тому що в разі підключення додаткових модулів статус служби для інтерфейсів розподіляється автоматично.
В системі MaxPatrol використовуються 2 методи визначення підтримки команд:
- грунтуючись на базі знань виробника устаткування Cisco Systems і компанії Positive Technologies, перевіряється підтримка команди для поточної версії ОС;
- власний евристичний алгоритм визначення підтримки команд, розроблений компанією Positive Technologies, який суттєво підвищує достовірність результатів.
Вимога 8.4. Всі паролі потребує шифрування даних за передачу і зберіганні на всіх системних компонентах за допомогою надійних алгоритмів криптографії.
В ОС Cisco IOS існує кілька варіантів шифрування паролів:
- Type 7. Паролі, зашифровані цим методом, можуть бути легко розшифровані. В мережі Інтернет є безліч програм, здатних відновлювати дані паролі за частки секунд.
- Type 5. В даному методі використовується 128-бітний алгоритм хешування MD5. Знаючи MD5, проблематично відновити вихідні дані, так як одному MD5 можуть відповідати різні дані.
- Type 0. Шифрування пароля не використовується. Пароль користувача можна дізнатися, переглянувши конфігураційний файл пристрою.
Тому для локальних користувачів в якості алгоритму шифрування паролів повинен використовуватися тільки MD5.
Наведу приклад: при аналізі конфігурацій мережевих пристроїв в одній з компаній була виявлена помилка в налаштуваннях, що відноситься до даного вимогу. Однак адміністратор всіляко відкидав навіть саму можливість подібної ситуації. Поточна конфігурація містила пароль користувача з типом шифрування 7, на відміну від збереженої, де використовувався тип шифрування 5. Тобто користувач був заведений «на швидку руку». Таким чином, при отриманні конфігурації, зловмисник міг легко відновити пароль, а при подальшому розслідуванні інциденту виявити причини було б майже неможливо.
Мал. 14 Докладні дані про слабкий алгоритмі шифрування пароля (або про відсутність пароля) в системі MaxPatrol
Вимога 1.3.4. Заборона трафіку з адресами відправника внутрішньої мережі, що надходить в DMZ з мережі Інтернет.
Переконатися, що заборонений трафік з адресами відправника внутрішньої мережі, що надходить в DMZ з мережі Інтернет.
Для виконання цієї вимоги спочатку необхідно визначити список внутрішніх мереж і зовнішніх інтерфейсів і тільки після цього аналізувати списки доступу, закріплені за кожним з інтерфейсів. Можна, звичайно, використовувати вбудовані можливості пристроїв Cisco.
Наприклад, на межсетевом екрані Cisco спробуємо визначити чи дозволено проходження трафіку telnet з вузла 192.168.1.1 до вузла 192.168.1.100. Використовуючи команду «packet-tracer», визначаємо, що список доступу дозволяє проходження даного трафіку.
Мал. 15 Перевірка на проходження трафіку
Але заходити на кожен пристрій і перевіряти настройки списків доступу таким способом досить нудне і невдячна справа. Тим більше, що за допомогою команди «packet-tracer» перевіряється тільки одне джерело і призначення. Тобто якщо необхідно перевірити тільки джерело з мережею класу С, потрібно виконати команду 255 раз! Перевірка за допомогою «packet-tracer» доступна тільки на міжмережевих екранах Cisco.
У будь-якому випадку, очевидно, потрібно автоматизація процесу.
В системі MaxPatrol для проведення аналогічних дій необхідно поставити список внутрішніх мереж компанії. Зовнішні інтерфейси і списки доступу, закріплені за ними, будуть визначатися автоматично. Далі виконується перевірка на відповідність вимогам з урахуванням правил, застосовних до списків доступу. У результатах будуть дані докладні рекомендації по налаштуванню списків доступу.
Розглянемо приклад перевірки такого вимоги в системі MaxPatrol. На початковому етапі користувач задає список внутрішніх мереж компанії (параметр «ACL - internal networks», Рис. 16). Потім MaxPatrol визначає зовнішні інтерфейси пристрої, тобто ті, які не входять в діапазон внутрішніх мереж. У прикладі, представленому нижче, інтерфейс FastEthernet1 / 1 є зовнішнім (див. Рис. 17). На наступному етапі визначається входить список доступу, закріплений за інтерфейсом і на підставі цього списку, перевіряється правильність настройки правил фільтрації. Механізм MaxPatrol враховує синтаксис і правила списків доступу мережевих пристроїв різних виробників. Наприклад, для Cisco IOS правила фільтрації перевіряються зверху вниз до першого відповідності заданим умовам. Якщо жодного відповідності не знайдено, в кінці кожного списку доступу існує неявне правило "deny ip any any". Але такі правила рекомендується ставити вручну, тому що існує ймовірність того, що воно відпрацює некоректно. Наприклад, в міжмережевих екранах Cisco PIX / ASA була знайдена уразливість CVE-2009-1160 , Що дозволяє обходити списки контролю доступу.
Повернемося до нашого прикладу. В даному випадку результат перевірки негативний, тому що в правилах фільтрації присутній рядок «10 permit ip 10.1.0.0 0.0.255.255 any», що дозволяє проходження трафіку протоколу IP від джерел мережі 10.1.0.0/16 з боку зовнішніх мереж. Правила фільтрації «20 permit ip 70.25.61.0 0.0.0.255 any» і «30 deny ip any any» не суперечать даній вимозі, тому що дозволяють тільки проходження трафіку протоколу IP від джерел мережі 70.25.61.0/24. І як вже було сказано вище, в результатах перевірки MaxPatrol виводить список «невідповідність правил» і рекомендації по налаштуванню списків доступу ( «Правила виправлення»).
Мал. 16 Результат перевірки на заборону передачі трафіку з адресами відправника внутрішньої мережі, що надходить з мережі Інтернет, в системі MaxPatrol для Cisco IOS
Мал. 17 Параметри інтерфейсу Fastethernet1 / 1
Ми розглянули лише кілька вимог зі стандарту PCI DSS. Цей стандарт містить безліч правил, і після виконання робіт система MaxPatrol формує загальний звіт:
Мал. 18 Звіт по PCI DSS
Резюмуючи вимоги PCI DSS, можна скласти загальні рекомендації щодо поліпшення заходів захисту мережевих пристроїв:
- управління конфігураціями
- Не можна використовувати сервіси, що представляють небезпеку з точки зору ІБ;
- При налаштуванні необхідно керуватися міжнародними стандартами по ІБ;
- Прийняті в компанії стандарти повинні застосовуватися до всіх пристроїв без винятку.
- Управління міжмережевими екранами
- У правилах фільтрації повинні бути дозволені тільки ті сервіси, які необхідні для роботи мережі компанії;
- Всі спроби отримання несанкціонованого доступу повинні запобігати і реєструватися.
- Служба захисту
- Повинна використовуватися єдина парольний політика;
- Стандартні облікові записи повинні бути видалені або перейменовані;
- Кожному користувачеві повинні бути призначені мінімальні привілеї, достатні для його повсякденної роботи.
- управління аутентификацией
- Для аутентифікації рекомендується розглянути використання зовнішніх серверів аутентифікації з резервним механізмом у разі втрати зв'язку з сервером;
- Паролі, які використовуються для тимчасового підвищення привілеїв, повинні відрізнятися один від одного.
- управління оновленнями
- Чи не повинні використовуватися версії ОС, в яких при експлуатації вразливостей можна отримати повний контроль над ресурсом;
- Версія ОС мережевих пристроїв, доступних з мережі Інтернет, не повинна бути схильна до атак «відмова в обслуговуванні»;
- Рекомендується проводити оновлення ОС мережевого обладнання не пізніше, ніж через місяць після виходу оновлення, якщо вразлива служба включена і є критичною.
- управління інцидентами
- Всі спроби несанкціонованого доступу повинні реєструватися і відправлятися на зовнішній сервер;
- Необхідно створити процедуру управління інцидентами.
- криптографічний захист
- Для керування пристроями не повинні використовуватися сервіси, які передають дані у відкритому вигляді (Наприклад: служба Telnet);
- Служби криптографічного захисту повинні використовувати надійні алгоритми шифрування даних;
- У конфігурації паролі повинні бути зашифровані з використанням стійкого алгоритму шифрування.
В даній статті було розглянуто аудит мережевих пристроїв Cisco IOS на прикладі стандарту PCI DSS. Але не варто забувати і про інші системи, тому що метою зловмисника зазвичай стає «найслабша ланка в ланцюзі».
А якщо їх кілька тисяч?«Хто в будиночку живе?