Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Створення нового правила






 

Після того, як були розглянуті численні правила Snort, може виникнути питання, а як написати правило для блокування нової програми атаки? Мабуть, що численні користувачі/розробники Snort швидко випустять нове правило. Але, припустимо, що була знайдена програма атаки, для якої ще не існує правила Snort.

Насамперед слід запустити програму атаки в ізольованій мережі тестування, наприклад у себе удома або в ізольованій лабораторії. Якщо програма атаки працює згідно її опису, слід зберегти звіти про передачу пакетів між атакуючим і атакованим хостами. Потім потрібно знайти унікальні і повторювані значення полів пакетів, які можна буде використовувати для створення правила. Можливо, доведеться прочитати декілька документів RFC, щоб ближче познайомитися з протоколом, що використовується для цієї атаки, і запам'ятати, які значення полів можуть повторюватися, а які повинні змінюватися.

Припустимо, є програма атаки, що використовує помилку переповнювання буфера записів TSIG (transaction signature) бази даних DNS-сервера. Це реальна атака, яка була ефективна проти пакетів BIND починаючи з версії 4. x (за винятком версії 8. 2. 3), для яких не була встановлена спеціальна заплата. Запис TSIG є одним із записів про ресурси на зразок адресного запису (А) або запису покажчика доменного імені (PRT). Вона використовується розпізнавачами і при динамічному оновленні інформації бази даних DNS-сервера з метою підтримки цілісності передаваного DNS-запису за допомогою одностороннього хешировання і секретного ключа, що спільно використовується.

Програма атаки призначена для отримання доступу до командного інтерпретатора на привілейованому рівні, на якому запущена BIND (демон named). Виходячи з цього і слід створювати сигнатуру для виявлення шкідливих пакетів. Нижче представлений пакет, в якому організовано переповнювання буфера BIND і потім слідує спроба отримати доступ до командного інтерпретатора.


02/22-15: 33: 19. 472301 ATTACKER: 1024 -> VICTIM: S3

UDP TTL: 64 TOS: 0x0 ID: 6755 IpLen: 20 DgmLen: 538 Len: 518

 

Першою очевидною сигнатурою атаки є рядок /bin/sh, за допомогою якої робиться спроба отримати доступ до командного інтерпретатора після успішного переповнювання буфера. Іншою сигнатурою для цього звіту є певна перевірка використання запису TSIG для DNS-серверу.

Тип DNS-запису зберігається в 2-байтовому полі, і TSIG-запису відповідає значення 250 (0x00FA). Крім того, кожному типу запису про ресурси відповідає свій клас запису, який також зберігається в 2-байтовому полі. Для TSIG-запису в полі класу використовується значення 255 (0x00FF), яке відповідає будь-якому класу. Таким чином, в корисних даних DNS для позначення TSIG-запису повинен бути присутній рядок (0x00FA00FF). Звичайний TSIG-запит не містить рядка /bin/sh, тому одночасний пошук двох вказаних значень дозволить виявити шкідливі дії без виклику помилкових тривог. Хоча в цьому конкретному пакеті для створення правила можуть бути використані і інші значення, але зловмисник може змінити початковий код програми атаки таким чином, що, не дивлячись на зміну DNS-заголовка і TSIG-запису, програма атаки буде все одно працювати. Наступне правило дозволяє виявити описану атаку.

alert udp $EXTERNAL_NET any -> $HOME_NET 53 \

(msg: " tsig-атака на BIND за допомогою переповнювання буфера"; \

content: " |00 PA 00 FF|"; offset: 12; \

content: " /bin/*sh"; regex; offset: 12;)

В розглянутому прикладі виявляються пакети, передавані за допомогою протоколу UDP, які поступають від віддаленого користувача на порт одержувача 53. Два окремі параметри content дозволяють виявляти в пакетах шукані рядки. Параметр regex застосовується на випадок, якщо буде зроблена спроба доступу до командного інтерпретатора, відмінного від Bourne. Параметр regex став повно функціональним в поточній версії Snort і має обмежений набір можливостей у версії Snort 1. 8. 3 (неприступно використання універсального символу “*”).

Крім того, при пошуку рядків використовується параметр offset із значенням 12 для вказівки того, що пошук повинен починатися з 12-го байта від початку DNS-повідомлення. Це дозволяє підвищити ефективність пошуку і його точність. Перші 12 байт DNS-повідомлення займає DNS-заголовок, а пошук повинен виконуватися в корисних даних. Програма атаки, що використовує TSIG-записи.

Більш докладну інформацію про tsig можна отримати в RFC 2845, озаглавленому “Secret Key Transaction Authentication for DNS (TSIG)” (“Аутентифікація для DNS-служби за допомогою передачі секретного ключа (TSIG)”). Про описану атаку можна прочитати на сайті www.cert.org, посилання СА-2001-02. Ще одне повне дослідження цієї атаки провів Пол Асадоріан (Paul Asadoorian). Його статтю можна знайти за адресою www.sans.ofg/newiook/resourses/iKFAQ/tsig. htm.

Резюме

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

Для створення правила Snort, виявляючої дії певної програми атаки, слід запустити цю програму в ізольованому середовищі і за допомогою Snort або TCPdump цілком зберегти пакети, передавані від організатора атаки до її цілі. Слід використовувати будь-які доступні поля заголовків правил Snort або параметри цих правил для чіткої ідентифікації унікальних значень в пакетах атаки. Початковий код програми атаки може бути змінений, тому при створенні правила потрібно постаратися знайти такі значення або поля, змінити які буде складно. Вибір потрібного поля або значення є складною задачею, і може вважатися своєрідним мистецтвом, що вимагає знань про мову написання сигнатур, атаку і протокол, що використовується при атаці.


 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал