Open
Close

Snort встановлення та налаштування на linux. Практика використання IDS SNORT Структура та функціонування Snort

Сьогодні про безпеку бездротових мереж говорять часто й багато, але зламування мережі сприймається як щось дуже далеке. Ми вже публікували матеріалпро те, як зламати захист WEP. Крім того, через деякий час вийшло продовженняяк захистити мережу. Сьогодні ж наша увага буде присвячена інструментам перевірки захисту бездротової мережі. А також системам виявлення атак – своєрідної "пожежної сигналізації" вашої WLAN.

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

Проте, не так сумно, як здається. У природі існують способи для оцінки захищеності бездротової мережі, незважаючи на абсурдність поєднання слів, що здається, "безпека" і "бездротова мережа". Системи розпізнавання атак (Intrusion Detection Systems – IDS) дозволяють виявити можливі способи вторгнення ще до того, як вони відбудуться, поки ворог шукає лазівку. Звичайно, такі системи не можуть гарантувати повну захищеність (а що, до речі, може?), але в поєднанні з брандмауерами та іншими засобами захисту вони можуть бути дуже корисними. Прийнято вважати, що IDS це свого роду охоронна сигналізація: тобто вона лише повідомляє про атаку, залишаючи роботу з атакуючим на інші системи та засоби (аж до фізичних).

Мал. 1. Snort IDS.


Мал. 3. Linksys WRT54G.

Нижче ми наводитимемо приклади на основі WRT54G з прошивкою OpenWRT RC 2(З кодовою назвою "White Russian"). Насправді існує безліч дистрибутивів Linux для бездротових маршрутизаторів, але ми зупинилися саме на прошивці OpenWRT, оскільки вона проста, "легка" і постачається в пакетному вигляді на зразок Debian Linux.


Мал. 4. OpenWRT у роботі.

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

Ми не будемо детально розглядати установку OpenWRT, тому що на сайті OpenWRT можна знайти чудовий посібник з інсталяції. Після завершення встановлення можна підключитися до маршрутизатора за допомогою Telnet () та насолодитися результатом.

Після встановлення OpenWRT на маршрутизатор, можна завантажувати та встановлювати програму Snort Wireless. Все це можна зробити через згадану пакетну систему OpenWRT – виконати команду ipkgіз наступними параметрами.

ipkg install http://nthill.free.fr/openwrt/ipkg/testing/20041204/snort-wireless_2.1.1-1_mipsel.ipk

Декому може не сподобатися, що цьому пакету вже більше року. Але нічого страшного в цьому немає, оскільки всі необхідні функції IDS тут присутні, а пізніші правила Snort можна теж завантажити через ipkg (докладніше: OpenWRT tracker page). Якщо ви вирішили організувати точку доступу на ПК, ви можете завантажити вихідний код Snort Wireless і скомпілювати його прямо на комп'ютері. Зазначимо, що при цьому слід додати прапор --enable-wireless, інакше передпроцесори Wi-Fi не працюватимуть.

Snort Wireless працює подібно до звичайного Snort, проте спеціально призначений для бездротових точок доступу, дозволяючи ефективно захистити їх від атак. Зокрема він містить новий протокол правил, названий wifiі дозволяє IDS правильно виділяти бездротовий трафік, типовий для поширених атак на WLAN. Наприклад, тих же атак за допомогою Netstumbler або спроб злому WEP. Використання протоколу wifi у Snort Wireless дуже схоже на налаштування звичайних правил для Snort, але з одним винятком: замість введення IP-адрес і портів першого та другого вузлів, слід використовувати їх МАС-адреси.

На цьому етапі ми маємо працюючий Snort Wireless. Переходимо до його налаштування для використання у вибраній мережі. При запуску ipkg Snort встановлюється у каталог /etc/snortна маршрутизаторі. Як і інші програми для Unix, Snort використовує редагований конфігураційний файл, де можна вказати інформацію про мережеве оточення та шаблони різних атак, які потрібно відстежувати. Файл має назву snort.conf (Мал. 5) і розташовується в каталозі /etc/snort. Його потрібно відкрити в будь-якому текстовому редакторі (якщо такого на маршрутизаторі немає, завантажте ipkg).


Мал. 5. Конфігураційний файл snort.conf.

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

Зокрема, зверніть увагу на передпроцесори, специфічні для Wi-Fi у Snort Wireless. Вони включають передпроцесори визначення пасивного сканування мережі з допомогою програм на кшталт NetStumbler і спроби заміни MAC-адрес. Ми вирішили розглянути важливі передпроцесори окремо.


Мал. 6. Передпроцесор AntiStumbler дозволяє сповіщати про атаку recon.

  • AntiStumbler. Такі програми, як NetStumbler та MacStumbler ( Мал. 6), використовують для виявлення точок доступу нульові SSID. Ці SSID працюють як широкомовні і змушують інші точки доступу надіслати свої SSID на вузол, що запитав. Ця функція корисна при пошуку доступних бездротових мереж. Передпроцесор AntiStumbler розпізнає надсилання занадто великої кількості нульових SSID з однієї MAC-адреси і може підняти тривогу.
    Примітка. Цей передпроцесор не дозволяє визначати такі програми, як Kismet, оскільки ті лише пасивно прослуховують кадри 802.11, а не посилають запити.
  • DeauthFlood. Ця атака була докладно описана в нашому матеріал про злом WEP. Використовується для відключення хостів від точок доступу та примусової активації спроби повторного підключення, що дає додаткові пакети для аналізу під час злому WEP. Крім того, атаку можна використовувати для "відмови в обслуговуванні" (Denial of Service, DoS) точки доступу. Передпроцесор DeauthFlood розпізнає цей тип атаки, підраховуючи кількість кадрів деаутентифікації за одиницю часу і, у разі потреби, піднімає тривогу.
  • AuthFlood. Атака схожа на попередню, але передпроцесор AuthFlood визначає занадто часту кількість спроб аутентифікації, тобто спроб підключення клієнтів до бездротової мережі, що може використовуватися як DoS-атака на точку доступу.
  • MacSpoof. Один з найбільш ефективних способів обмеження доступу до точки доступу – це створення списку MAC-адрес дозволених клієнтів. На жаль, атакуючий може підробити MAC-адресу своєї машини та підключитися до точки доступу. Препроцесор MacSpoof перевіряє номери пакетів і під час виявлення будь-яких невідповідностей, що вказують на можливу заміну MAC-адреси, піднімає тривогу.
  • RogueAP. Чужі ("ворожі") точки доступу маскуються під звичайні для того, щоб користувач помилково підключався до них і передавав будь-які особисті дані. Цей передпроцесор поки не реалізованоОднак у майбутніх випусках він зможе повідомляти про близькість чужих точок доступу.

Крім того, Snort Wireless включає безліч визначених правил для величезної кількості ситуацій. Залежно від конфігурації мережі, деякі правила можуть виявитися дуже зручними. Наприклад, усі правила web, якщо у вашій мережі працює web-сервер. Для активації правила досить просто прибрати коментар із відповідного рядка у конфігураційному файлі Snort. Окремі набори правил за замовчуванням зберігаються у каталозі /etc/snort/rules, причому будь-які їх можна переглянути за допомогою текстового редактора. Правила в наборах задані так само, як і в самому Snort. До речі, наслідуючи приклади, можна легко написати правило самостійно.


Мал. 7. Правило Snort виявило машину, що сканує порти.

В роботі

Коли файл snort.confготовий, можна запускати Snort. Під час запуску можна вказати безліч параметрів, які визначають все, починаючи від виведення та закінчуючи режимом роботи. Для початку давайте запустимо Snort з наступними параметрами (у будівництві Telnet).

snort -D -A full

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

Тепер, коли Snort працює, можна подумати про додаткові способи захисту бездротової мережі. Скажімо, можна звернутися до Kismet- утиліта, подібна до Snort, яку можна розгорнути як додаткову систему виявлення атак. Snort працює лише на третьому рівні моделі OSI - мережному, що відповідає за IP та інший трафік. А Kismet працює на другому рівні – канальному, відповідальному за кадри Ethernet. Таким чином, розгортання обох систем у парі дозволить суттєво підвищити загальну захищеність.


Мал. 8. Kismet у роботі.

Можна налаштувати Snort для запису журналів у базу даних, що спрощує подальший аналіз. Деніел Волтер (Daniel Walther) написав керівництвопро те, як налаштувати запис до баз MySQL і PostgreSQL. Якщо ви використовуєте Gentoo Linux на машині, що працює як точка доступу, то можна піти далі: встановити Apache і налаштувати відображення журналів через web. На сайті Gentoo Wikiможна знайти докладний опис подібного налаштування.


Мал. 9. Перегляд журналів Snort через MySQL, ACID та Apache.

Висновок

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

Зрештою, не забувайте, що для ефективного захисту бездротової мережі необхідно постійно оновлювати як Snort, так і правила. Не забувайте регулярно відвідувати Snort Wireless, а також ipkg package tracker(для інсталяцій OpenWRT) або Snort rules page(для інших).

Як і інші засоби безпеки, Snort не є панацеєю для захисту мережі. Це лише один з бастіонів вашої фортеці. Але в комплексі захисту він працює дуже непогано.


Дата публікації: 21 вересня 2009р.
Переклад: С.Володимирський
Дата переведення: 2 жовтня 2009р.

Даний посібник описує, як встановити та налаштувати систему виявлення вторгнення (IDS) з пакетами Snort, ACIDBASE (основний модуль аналізу та забезпечення безпеки), MySQL та Apache2 в Ubuntu 9.04 за допомогою менеджера пакетів Synaptic Ubuntu. Snort допоможе вам у моніторингу вашої мережі та попередить про можливі загрози. При цьому Snort сформує файли протоколів для бази даних MySQL, а ACIDBASE дозволить відобразити їх у графічному інтерфейсі у веб-браузері.

1. Підготовка системи та встановлення програмного забезпечення.

1.1 Встановлення.

Завантажте 32-бітну або 64-бітну версію Desktop Ubuntu 9.04 звідси: http://www.ubuntu.com/getubuntu/download

1.2 Системні та мережеві налаштування

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

  • Розміщення у демілітаризованій зоні (DMZ).
  • Статична IP-адреса, прихована за допомогою NAT за фаєрволом.
  • Підключення до порту моніторингу на мережному комутаторі (SWITCH).

Створіть нового адміністратора з ім'ям <ваше_имя> та паролем <ваш_пароль> .

1.3 Встановлення програмного забезпечення.

Перше, що необхідно зробити після завершення встановлення, - встановити всі рекомендовані оновлення Ubuntu. Щоб отримати доступ до оновлень, перейдіть до меню: System > Administration > Update Manager (Система > Адміністрація > Менеджер оновлень). Введіть пароль та виберіть Check (Перевірити) . Виберіть Install Updates (Встановити оновлення).

З робочого столу перейдіть до System > Administration > Synaptic Package Manager (Система > Адміністрація > Менеджер пакетів Synaptic) . Введіть свій пароль та виберіть Search (Пошук).

Знайдіть та встановіть такі пакети:

  • Acidbase з усіма залежними пакетами
  • Snort-MySQL з усіма залежними пакетами
  • MySql-server-5.0 з усіма залежними пакетами
  • Libpcap0.8-dev
  • libmysqlclient15-dev
  • MySql-client-5.0
  • Bison
  • Apache2
  • Libapache2-mod-php5
  • Php5-gd
  • Php5-mysql
  • Libphp-adodb
  • Php-pear

2. Отримайте права суперкористувача

З робочого столу перейдіть до меню: Applications > Accessories > Terminal (Додатки > Додатки > Термінал) та введіть команду:

$ sudo -i
$ введіть пароль

3. Налаштування Snort

Щоб встановити індивідуальні налаштування, необхідно змінити файл налаштувань snort.conf .

За допомогою текстового редактора (nano, vi, vim або іншого) відкрийте файл /etc/snort/snort.conf .

# vim /etc/snort/snort.conf

Змініть змінну var HOME_NET на var HOME_NET 192.168.1.0/24 (адреса вашої домашньої мережі може відрізнятися від адреси 192.168.1.0). Якщо ви ведете моніторинг кількох мереж, необхідно вказати всі ці мережі так: var HOME_NET . Змініть var EXTERNAL_NET на var EXTERNAL_NET !$HOME_NET (встановлюються всі змінні, крім зовнішньої змінної HOME_NET).

Змініть var RULE_PATH ../rules на var RULE_PATH /etc/snort/rules . Прокрутіть список до місця, де вказано рядок # output database: log, mysql, user= , видаліть знак # з початку рядка.

Приклад: output database: log, mysql, user= password= dbname=snort host=localhost

(Дивіться вище, коли створювався новий користувач).

Запишіть ім'я користувача, пароль та назву бази даних (dbname). При встановленні бази даних MySQL вам знадобляться ці дані. Збережіть зміни та вийдіть.

4. Встановлення баз даних Snort та Archive у MySQL

4.1 Встановлення MySQL

Увійдіть на сервер MySQL.

# mysql -u root -p

Іноді буває так, що пароль не встановлений, тому просто натисніть "Enter".

Якщо вхід не виконується, спробуйте ще раз набрати вказану вище команду та введіть ВАШ_ПАРОЛЬ.

Якщо пароль відсутній, вам необхідно встановити пароль для облікового запису користувача.

Примітка: Коли ви на сервері MySQL, у запрошенні замість символу "#" відображається група символів "mysql>"

mysql> create user @localhost;
mysql> SET PASSWORD FOR r@localhost=PASSWORD( );
mysql> SET PASSWORD FOR root@localhost=PASSWORD( );

4.2 Створення бази даних Snort

mysql> create database snort; mysql> grant INSERT,SELECT on root.* to snort@localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to @localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort;

4.3 Створення бази даних Archive

mysql> create database archive; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on archive.* to @localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on archive.* to archive; mysql> exit

4.4 Створення таблиць у базах даних Snort та Archive

Ми будемо використовувати схему Snort для компонування баз даних Snort та Archive.

# cd /usr/share/doc/snort-mysql # zcat create_mysql.gz | mysql -u -h localhost -p snort#zcat create_mysql.gz | mysql -u -h localhost -p archive

4.5 Підтвердження створення баз даних та новостворених таблиць.

Увійдіть на сервер MySQL і перевірте бази даних, які ми щойно створили, та таблиці, розміщені в цих базах даних. Якщо все було успішно створено, ви побачите чотири (4) бази даних (mysql, test, snort та archive) у базах даних mysql та приблизно по 16 таблиць у кожній базі даних.

# mysql -u root -p mysql> show databases; mysql> use snort; mysql> show tables; mysql> use archive; mysql> show tables; mysql> exit

4.6 Тестування Snort

У режимі терміналу наберіть команду: # snort -c /etc/snort/snort.conf

Якщо все пройшло успішно, ви маєте побачити відповідь у кодах ascii.

Для завершення тесту натисніть ctrl+c

5. Налаштування Apache2

На комп'ютері потрібно встановити пакет Apache2.

За допомогою вашого улюбленого текстового редактора створіть файл із ім'ям test.php у папці /var/www/ .

# vim /var/www/test.php

Запишіть у ньому:

Збережіть зміни та закрийте цей файл.

Відредагуйте файл /etc/php5/apache2/php.ini

# vim /etc/php5/apache2/php.ini

Під рядком "Dynamic Extensions" додайте наступне:

Extension=mysql.so extension=gd.so

Перезавантажте Apache2.

# /etc/init.d/apache2 restart

Отримайте IP-адресу вашого робочого комп'ютера.

# ifconfig -a

Відкрийте веб-браузер та перейдіть за адресою http://ВАШ_IP_АДРЕСА/test.php .

Якщо все пройшло успішно, відобразиться інформація щодо РНР.

6. Конфігурування папок

Перемістіть ADOdb у папку /var/www .

# mv /usr/share/php/adodb /var/www/

Створіть папку з ім'ям web у www і перемістіть ACIDBASE до неї.

# mkdir /var/www/web # mv /usr/share/acidbase /var/www/web/

Тимчасово дозвольте запис до папки бази acidbase для її встановлення.

# chmod 777 /var/www/web/acidbase

# cd /var/www/web/acidbase # mv base_conf.php base_conf.old

Для роботи в ACIDBASE виконайте команду:

# pear install Image_Color

7. Встановлення ACIDBASE для баз даних Snort та Archive

7.1 Встановлення бази даних Snort через веб-браузер

Крок 1 із 5:

Введіть шлях до ADODB. Це /var/www/adodb.

Крок 2 із 5:

Main Database type = MySQL (Тип основної бази даних),
Database name = snort (База даних Snort),
Database Host = localhost (Локальне розташування бази даних Snort),
Database username =<ваше_имя_пользователя>(Ім'я користувача базою даних Snort),
Database Password =<ваш_пароль>(Пароль для бази даних Snort)

Archive Database type = MySQL (Тип бази даних Archive),


Database username =<ваше_имя_пользователя>
Database Password =<ваш_пароль>

Крок 3 із 5:

Якщо ви хочете використовувати аутентифікацію, введіть ім'я користувача та пароль (user:<ваше_имя>, password:<ваш_пароль>).

Крок 4 з 5:

Натисніть Create BASE AG (Створити BASE AG).

Крок 5 із 5:

Коли крок 4 виконано, у нижній частині клацніть: Now continue to step 5 (Тепер переходьте до кроку 5) .

Додайте цю сторінку до закладок.

7.2 Створіть папку для бази даних Archive ACIDBASE

Щоб архівна база даних коректно працювала, у папці ACIDBASE має бути створена папка archive.

# mkdir /var/www/web/acidbase/archive # cd /var/www/web/acidbase # cp -R * /var/www/web/acidbase/archive # chmod 777 /var/www/web/acidbase/archive

Перейменуйте існуючий файл base_conf.php на base_conf.old .

# cd /var/www/web/acidbase/archive # mv base_conf.php base_conf.old

7.3 Встановлення бази даних Archive через веб-браузер.

Відкрийте веб-браузер та перейдіть за адресою http://ВАШ_IP_АДРЕСА/web/acidbase/archive/setup .

На першій сторінці клацніть "Продовжити".

Крок 1 із 5:

Введіть шлях до ADODB. Це /var/www/adodb. >

Крок 2 із 5:

Archive Database type = MySQL (Тип бази даних),
Database name = archive (База даних Archive),
Database Host = localhost (Локальне розташування бази даних Archive),
Database username =<ваше_имя_пользователя>(Ім'я користувача базою даних Archive),
Database Password =<ваш_пароль>(Пароль для бази даних Archive)

Крок 3 із 5:

Якщо ви хочете використовувати аутентифікацію, введіть ім'я користувача та пароль(user:<ваше_имя_пользователя>, password:<ваш_пароль>).

Крок 4 з 5:

Клацніть Create BASE AG (Створити BASE AG) .

Крок 5 із 5:

Коли крок 4 пройдено, внизу клацніть: Now continue to step 5 (Тепер переходьте до кроку 5).

8. Запуск Snort та перевірка статусу сервісів.

Щоб запустити Snort, наберіть у режимі терміналу:

# snort -c /etc/snort/snort.conf -i eth0 -D

Ця команда запускає snort з використанням інтерфейсу eth0 у демо-режимі.

Ви можете переконатися, що сервіс запущений за допомогою наступної команди:

# ps aux | grep snort

Якщо сервіс працює, ви побачите щось схоже на наступне snort -c /etc/snort/snort.conf -i eth0 -D .

Переконайтеся, що всі необхідні послуги працюють шляхом виконання наступних команд:

# /etc/init.d/mysql status # /etc/init.d/apache2 status # /etc/init.d/snort status

Якщо сервіси працюють, ви побачите повідомлення у відповідь .

Якщо потрібно, запустіть команду
# /etc/init.d/ restart
для кожного із сервісів, який має бути перезапущений.

Вступ

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

Основним його плюсом є доступність і можливість редагувати його роботу під свою конкретну робочу мережу. Програма варта роботи як у малих, і великих організаціях. Так само важливою є можливість редагування власних унікальних правил виходячи з вимог безпеки конкретної організації (наприклад, заборона на доступ персоналу до соціальних мереж).

З мінусів можна виділити незручність налаштування та установки на деяких ОС (наприклад, Windows), відсутність єдиного досить повного та докладного опису налаштування та розробки власного набору правил.

Також дуже важко відсікти помилкові тривоги, оскільки не рідко на різних підприємствах різні обмеження, і потрібно досить тонке налаштування правил. Багато режимів запуску програми за допомогою ключів чутливих до регістру дуже складно запам'ятовуються і можуть призвести до помилкового висновку.

Основне завдання цієї роботи полягає в тому, щоб розібратися з функціональними особливостями роботи IDS Snort, перевірити роботу програми, виробляючи на нього різного роду мережеві атаки. Чи з'ясувати чи є аналогічні IDS у зручнішому форматі. Як Snort взаємодіє із базами даних. Розробити кілька унікальних правил та перевірити їх на працездатність.

Встановлення та налаштування IDS Snort

Snort: Встановлення на Windows XP

У разі встановлення Snort на операційну систему Windows можуть виникнути деякі труднощі. Тому в цій роботі приділяється докладна частина установки та можливостей налаштування. Спочатку потрібно завантажити необхідні програми на робочий комп'ютер.

Правила Snort.

Все вищезгадане скачується з офіційних сайтів цих додатків.

Winpcap - додаток, який перехоплює та фільтрує пакети на рівні ядра. Це аналог вбудованого драйвера Unix систем libpcap. Установка не доставить особливих зручностей, запускається через звичайний інсталятор. Після цього потрібно завантажити з офіційного сайту саму IDS, після цього ми завантажуємо звідти свіжий архів з правилами. Наступним кроком стане повне копіювання всіх папок, які перебували в архіві з правилами до кореневого каталогу програми з повною заміною вмісту, де це потрібно. Потім для правильної роботи програми потрібно провести важливі зміни у конфігураційному файлі.

var RULE_PATH c:snort ules

var SO_RULE_PATH c:snortso_rules

var PREPROC_RULE_PATH c:snortpreproc_rules

dynamicpreprocessor directory c:snortlibsnort_dynamicpreprocessor

dynamicengine c:snortlibsnort_dynamicenginesf_engine.dll

#dynamicdetection directory /usr/local/lib/snort_dynamicrules

Знаходимо подібні рядки в конфігураційному файлі та замінюємо тими, що надані вище. Після цього пробуємо протестувати програму. Запускаємо командний рядок і переходимо до каталогу програми у розділі "bin". Введемо команду "snort-W"

Мал. 1.1.

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

З:Snortinsnort -i 3 -c C:snortetcsnort.conf -l C:snortlog -A console

Розберемо тепер команду, яку ми ввели. "- i 3" означає, що ми будемо переглядати інтерфейс який має ID=3 у списку наших інтерфейсів. Потім ми вказали шлях до конфігураційного файлу і шлях до каталогу куди слід записувати "log" перехоплених пакетів. "-A console" означає, що тривожні пакети будуть виявлятися у нас в консолі. Якщо під час обробки виникають якісь неполадки, усуваємо їх по ходу виявлення. Snort вказує рядок та вид помилки при складанні. Якщо все спрацювало, то ми нічого не побачимо доти, доки не спрацює одне із запущених правил. Щоб задіяти одне з них спробуємо імітувати мережеву атаку і запустимо підозрілий пакет по нашій локальній мережі. Для цього, наприклад, відкриємо командний рядок і введемо наступне: "Ping 192.168.1.16". Snort перехопить спробу прослухати хост за адресою 192.168.1.1624 та виведе повідомлення та інформацію про підозрілу дію в мережі. На жаль у подібних IDS систем є сильний недолік - це помилкові спрацьовування. У зв'язку з цим для того, щоб Snort був корисним і не вводив в оману, потрібно досить ємно і чітко прописувати правила і розмежовувати мережі, що переглядаються, щоб уникнути цих помилкових спрацьовувань.


Мал. 1.2.

Зараз у консолі, де працює наш IDS, з'являться повідомлення про підозрілий пакет, який нагадує прослуховування. Це задіяне правило показало, що Snort є повністю працездатним. Розглянемо режими його роботи та синтаксис правил для подальшої роботи.

Щодня корпоративними мережами передаються мільярди пакетів даних. Деякі їх небезпечні; автори таких пакетів вжили спеціальних заходів, щоб обійти брандмауери і пробитися через лінії оборони по периметру мереж, порушуючи роботу всіх зустрінутих на шляху систем. Руйнівна дія таких проведених з використанням пакетів атак, як Code Red, Nimda, SQL Slammer та MSBlaster, добре відома. Всі ці шкідливі програми використовують з метою довірені протоколи (наприклад, HTTP) або мережевий трафік систем Microsoft. Такі протоколи не можна просто взяти та блокувати, тому адміністратори зазвичай намагаються якнайшвидше зафіксувати небезпечний трафік за допомогою систем виявлення несанкціонованого доступу, Network Intrusion Detection System (NIDS), щоб вчасно зреагувати на загрозу.

У продажу є кілька NIDS, різноманітних за можливостями та вартістю. Загалом усі вони працюють успішно. Усі комерційні пакети, з якими мені довелося зіштовхнутися, справили чудове враження. Але що робити організаціям зі скромним бюджетом, якщо виявлення несанкціонованого доступу не належить до пріоритетних завдань? На такий випадок існує Snort – потужний безкоштовний пакет NIDS. На відміну від багатьох пакетів з відкритим кодом він сумісний з Windows.

Знайомство з Snort

Перший розробник Snort Мартін Реш надав програму відкритій спільноті на умовах ліцензії GNU General Public License (GPL). Історія цього пакету почалася 1998 р., і з того часу він неодноразово довів свою надійність. Завдяки вкладу членів відкритої спільноти та мережевих адміністраторів у всьому світі Snort перетворився на дуже потужний продукт. Поточна версія забезпечує аналіз мережевого трафіку в реальному часі та реєстрацію IP-трафіку зі швидкостями Fast Ethernet та Gigabit Ethernet.

Майкл Девіс переніс Snort 1.7 на платформу Win32, зробивши його доступним для спільноти Windows. Потім Кріс Рейд взяв на себе завдання компіляції нових версій Snort в готові файли, які можна легко розгорнути в середовищі Windows.

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

Вимоги Snort

Для роботи Snort необхідний комп'ютер Windows, оснащений принаймні одним адаптером мережі. Краще мати два мережеві адаптери, один з яких підключений до контрольованої мережі, а інший - до виробничої мережі; останній пересилає звіти. Snort сумісний не тільки з Windows 2000 Server та пізнішими версіями, але і з Windows XP Professional Edition, XP Home Edition та Windows 2000 Professional. Ліцензії для сервера не потрібні. Щодня я підключаю ноутбук XP Pro до багатьох мереж клієнтів і зазвичай запускаю Snort як службу. Таким чином, програма працює у фоновому режимі, виявляючи будь-які атаки на мою систему, що виходять із цієї клієнтської мережі. Я використовую Snort як переносний сенсор – програма відіграє роль NIDS для будь-якого порту, до якого підключається ноутбук.

У маленьких мережах розгорнути Snort можна на сервері початкового рівня. Для виявлення спроб несанкціонованого доступу виділена машина великої потужності не потрібна. Наприклад, мені доводилося чути про вузли Snort на платформі FreeBSD із процесорами на 1 ГГц та оперативною пам'яттю об'ємом 1 Гбайт, які успішно обслуговували мережі з 15 000 користувачів та кількома з'єднаннями T-3 каналів WAN. Завдяки ефективності вихідного тексту Snort для роботи програми дуже потужна машина не потрібна.

Де мережі краще розмістити NIDS? Перша думка – помістити пристрій перед брандмауером. У цьому місці NIDS виявить найбільше нападів, але й кількість помилкових спрацьовувань буде найбільша, і адміністратор отримає масу марних попереджень про небезпеку. Не слід турбуватися про загрози, зупинені брандмауером, набагато важливіше виявити небезпечні програми, що проникли за нього. Тому в будь-якому випадку краще розмістити Snort за брандмауером.

Однак, якщо користувачі підключаються до мережі через з'єднання VPN (по Internet або бездротовій лінії зв'язку), має сенс розмістити NIDS ще далі за брандмауером, наприклад, за VPN-сервером або концентратором, де пакети розшифровуються на виході з тунелю VPN. В іншому випадку NIDS не зможе протистояти шкідливим програмам, вбудованим у трафік VPN, оскільки аналізовані пакети будуть зашифровані. Те саме стосується і зашифрованого SMTP-трафіку, зашифрованих.zip-файлів, вкладених у повідомлення електронної пошти, і зашифрованих даних інших типів.

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

Тепер, познайомившись із Snort і знаючи вимоги до його розміщення, можна встановити та протестувати NIDS. Детальнішу інформацію про Snort можна отримати з документів, посилання на які наведені у врізці «Ресурси в Web». Цей процес складається з семи етапів:

  1. Встановлення WinPcap
  2. Установка Snort
  3. Тестування Snort
  4. Налаштування Snort
  5. Завдання правил
  6. Налаштування попереджень та журналів
  7. Запуск як служба

Етап 1. Встановлення WinPcap

По суті, Snort є мережевим аналізатором, що працює в режимі прийому всіх пакетів (promiscuous-mode), тому йому необхідна підтримка на рівні драйверів. Цю підтримку забезпечує WinPcap. Лоріс Діджіоанні створив WinPcap, перенісши в середу Windows широко поширений серед користувачів Unix драйвер перехоплення пакетів libpcap. До складу WinPcap входять фільтр пакетів лише на рівні ядра, низькорівнева DLL (packet.dll) і високорівнева системно-незалежна бібліотека (wpcap.dll, з урахуванням libpcap 0.6.2).

WinPcap можна завантажити на адресу http://winpcap.polito.it. Драйвер сумісний із Windows Server 2003, XP, Windows 2000, Windows NT, Windows Me та Windows 9x. WinPcap також підтримує відкритий аналізатор пакетів Ethereal, який можна отримати на адресу . За допомогою Ethereal можна переконатися в правильності установки Snort.

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

Етап 2. Установка Snort

Наступний крок – встановлення Snort. Найновішу версію можна знайти на Web-вузлах CodeCraft Consultants ( http://www.codecraftconsultants.com/snort.aspx) або Snort.org ( http://www.snort.org). Я рекомендую завантажити Snort з CodeCraft Consultants, так як з цього сайту можна отримати файл, що виконується саморозгортається. Програма навіть проводить користувача за елементарними операціями встановлення Snort на комп'ютері. Під час підготовки даної статті використовувалася остання версія Snort 2.1.1, збірка 18. З того часу було випущено оновлені версії.

Під час запуску програми встановлення у першому діалоговому вікні необхідно вибрати режим налаштування бази даних для збереження результатів. Якщо використовується MySQL або ODBC-сумісна база даних, можна погодитися на режим, що вибирається за промовчанням (екран 1). Але якщо потрібно зберігати протоколи в базі даних Microsoft SQL Server або Oracle, необхідно вибрати відповідний режим і переконатися, що на машині є потрібна клієнтська програма. Під час підготовки даної статті використовувався режим за промовчанням.

На наступному кроці слід визначити компоненти Snort, які потрібно встановити. Стандартний набір (екран 2) цілком прийнятний, тому рекомендую прийняти його і клацнути на кнопці Next. У діалоговому вікні Choose Install Location необхідно вказати каталог, в якому розгорнеться Snort. Ввівши ім'я каталогу, натисніть кнопку Next, щоб завершити процес установки.

Екран 2. Вибір компонентів установки

Етап 3. Тестування установки Snort

Завершивши процес установки, Snort потрібно протестувати. За промовчанням виконуваному файлу Snort необхідно повідомити дві адреси: куди записувати журнали і де знайти файл конфігурації (snort.conf). Цю інформацію надає користувач під час запуску Snort з командного рядка за допомогою ключів -l та -c відповідно. Наприклад, команда

Snort -l F:snortlog -c F:snortetcsnort.conf -A console

вказує програмі, що журнали слід записувати до каталогу F: snortlog, а snort.conf знаходиться у каталозі F: snortetc. Ключ -A задає спосіб передачі генерованих програмою попереджень. У цьому прикладі попередження виводяться на екран консолі, адміністратор може переконатися, що Snort працює коректно. Зверніть увагу, що у статті команда надрукована на кількох рядках, але у командному вікні її необхідно вводити в одному рядку. Те саме стосується й інших багаторядкових команд у цій статті. Багато ключів командного рядка Snort є чутливими до регістру символів, тому вводити команди слід саме так, як вони надруковані.

Якщо система має кілька мережних інтерфейсів, то за умовчанням Snort прослуховує перший виявлений інтерфейс. Якщо порядок інтерфейсів на машині невідомий, можна виконати команду Snort з одним ключем -W. Snort видає список імен та номерів мережевих інтерфейсів у порядку, в якому їх виявляє програма. Щоб змусити Snort використовувати певний інтерфейс мережі, необхідно ввести ключ -i з номером інтерфейсу при запуску Snort. Після виконання Snort на екрані з'явиться інформація, подібна до наведеної на екрані 3 .

Запустивши Snort, можна перевірити його чутливість, спрямувавши до NIDS спеціально підготовлений трафік. Один із найпростіших способів викликати попередження про небезпеку - звернутися до командного інтерпретатора (cmd.exe) на віддаленій машині в рамках запиту HTTP URL (типовий прийом черв'яків Code Red і Nimda). Щоб імітувати цю фазу нападу, слід звернутися до будь-якого URL і додати символи /cmd.exe в кінці запиту. Наприклад, у відповідь на звернення до http://www.a-website-that-I-can-trust.com/cmd.exe Snort повинен вивести попередження в командному вікні, яке на вигляд нагадує перші три попередження на екрані 4. Ці повідомлення записуються в журнал F:snortlog.

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

Якщо тестування зробити неможливо, існує інший спосіб перевірити Snort - надіслати через мережу надзвичайно довгий луна-запит на сервер або комп'ютер з активною програмою Snort. Наприклад, можна скористатися командою Ping

Ping -l 32767 ip_address

де ip_address - IP-адреса цільового сервера або Snort-комп'ютера. Ця команда повинна надіслати дуже довгий пакет (точна довжина - 32 Кбайт), що явно незвичайно для команди Ping. Snort повинен виявити цей пакет, як видно на прикладі нижніх восьми попереджень на екрані 4 .

Якщо попередження отримано, можна розпочати налаштування Snort для конкретних умов. В іншому випадку необхідно повернутися до процедури встановлення та перевірити, чи не був пропущений якийсь етап.

Етап 4. Налаштування Snort

Основні дані про конфігурацію Snort зберігаються у файлі snort.conf, який за умовчанням розміщується в каталозі %systemdrive%snortetc. Файл можна залишити в цій папці або перемістити в іншу, якщо вказати програмі шлях у командному рядку.

Детальний опис всіх параметрів, представлених у snort.conf, може заповнити весь номер журналу, оскільки Snort - напрочуд потужна програма. Ми поки що розглянемо лише основні її параметри.

Щоб відрізнити вхідний трафік від вихідного, необхідно повідомити Snort вузли та IP-адреси мережі підприємства. Для введення цієї інформації у файлі snort.conf має бути задана змінна HOME_NET. Слід знайти рядок

Var HOME_NET any

та замінити її діапазоном IP-адрес. Можна встановити один діапазон, наприклад

Var HOME_NET 192.168.0.1/24

чи кілька діапазонів. Вказуючи кілька діапазонів, необхідно укласти набір діапазонів квадратних дужок і відокремити кожен діапазон коми. Не можна вводити пробіли між діапазонами IP-адрес. Наприклад, рядок

Var HOME_NET

вказує Snort, що підмережі 10.0.1.0/24, 10.0.2.0/24 та 10.0.3.0/24 відносяться до мережі підприємства. За умовчанням Snort сприймає решту адрес як зовнішні. Можна явно вказати мережі, які слід вважати зовнішніми, поставивши змінну EXTERNAL_NET. У файлі snort.config потрібно знайти рядок

Var EXTERNAL_NET any

та замінити її IP-адресою мережі, яку слід вважати зовнішньою. Однак, як правило, краще залишити змінну EXTERNAL_NET зі значенням any.

Витративши деякий час, можна вказати типи серверів, що є на підприємстві, та їх місцезнаходження. Ця інформація міститься в змінних DNS_SERVERS, SMTP_SERVERS, HTTP_SERVERS, SQL_SERVERS та TELNET_SERVERS у наступних рядках файлу snort.conf:

Var DNS_SERVERS $HOME_NET var SMTP_SERVERS $HOME_NET var HTTP_SERVERS $HOME_NET var SQL_SERVERS $HOME_NET var TELNET_SERVERS $HOME_NET var SNMP_SERVERS $HOME_NET

За промовчанням всім шести серверним змінним присвоєно значення $HOME_NET; це означає, що Snort контролюватиме всі типи нападів на всі системи в діапазоні HOME_NET. Така конфігурація цілком прийнятна для невеликої мережі, адміністратори якої допускають кілька помилкових попереджень. Але для моніторингу інтенсивного трафіку бажано виконати більш тонке налаштування Snort для перевірки частини сигнатур для певних вузлів. Не має сенсу захищати Web-сервер, що працює тільки з Microsoft IIS, від атак із переповненням буфера SQL. Щоб визначити особливий клас вузлів, необхідно замінити $HOME_NET діапазоном IP-адрес цільових серверів відповідно до формату, використаного для змінної HOME_NET. Наприклад, для змінної DNS_SERVERS замість $HOME_NET слід встановити діапазон IP-адрес DNS-серверів.

Точність налаштування можна підвищити, якщо визначити порти, які використовуються серверами для конкретних програм. Наприклад, якщо Web-сервери використовують спеціальний порт 8080 для трафіку HTTP замість порту 80 (цей порт зазвичай застосовується для Web-серверів і браузерів), то можна налаштувати Snort на відстеження порту 8080, змінивши змінну HTTP_PORTS. У snort.conf слід знайти рядок

Var HTTP_PORTS 80

та замінити її рядком

Var HTTP_PORTS 8080

Так само можна змінити порти для Oracle (визначені змінною ORACLE_PORTS) та інших програм. Як і змінна HTTP_PORTS, за замовчуванням ORACLE_PORTS має значення 80. Якщо сервер використовує замість нього порт 1521, то рядок матиме вигляд

Var ORACLE_PORTS 1521

Таким чином, у файлі snort.conf можна налаштувати багато параметрів. Слід переглянути snort.conf, відшукати параметри, найбільш важливі для конкретного середовища, і налаштувати їх.

Етап 5. Завдання правил

В одному з рядків snort.conf зустрічається змінна RULE_PATH. Зразковий вигляд цього рядка:

Var RULE_PATH ../rules

Параметр../rules вказує, що правила (тобто сигнатури) можна знайти в каталозі rules, що знаходиться в структурі каталогів на одному рівні з двійковими файлами Snort. Тому, наприклад, якщо встановити Snort у типовій папці F:snort, двійкові файли Snort знаходяться у F:snortin, а правила - у F:snort ules. За бажанням можна змінити змінну RULE_PATH, але цілком прийнятний і варіант, що вибирається за умовчанням.

Правила – основа Snort. Вони є послідовністю байтів, сигнатури нападів та дані інших типів, при виявленні яких генерується попередження. Snort має більш ніж 1500 готових сигнатур.

Як виглядає правило? Правило для cmd.exe, яке було порушено при проведенні тесту Snort, має такий вигляд: alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS cmd.exe access"; flow:to_server, established; content: "cmd.exe"; nocase; Розглянемо основні компоненти правила. Посилання $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS вказує, що слід аналізувати лише трафік, що надходить до мережі ззовні (як визначено змінною EXTERNAL_NET). Параметр content: задає пошук послідовності символів cmd.exe у потоці даних. Виявивши таку послідовність, Snort генерує попередження, яке задається параметром msg:.

Як видно з прикладу cmd.exe, правила переважно прості. Можна скласти власні правила трафіку будь-яких типів. Наприклад, якщо потрібно виявити несанкціоновані спроби віддаленого доступу до каталогу на машині через командний інтерпретатор, можна провести пошук рядка volume in drive або volume serial number в портах, де вони бувають рідко, таких як порти передачі вихідного трафіку. Завдяки гнучкому підходу до призначення правил адміністраторам надаються широкі можливості конфігурування Snort.

1500 правил Snort зберігаються у різних файлах відповідно до типів аналізованих даних. Наприклад, правило для cmd.exe міститься у файлі web-iis.rules. Якщо на підприємстві IIS не застосовується, то програма не повинна виявляти атаки IIS. Файл web-iis.rules легко видалити з конфігурації повністю, знайшовши і позначивши як коментар рядок

Include $RULE_PATH/web-iis.rules

у файлі snort.conf. Щоб зробити рядок коментарем, потрібно поставити перед ним символ (#):

# include $RULE_PATH/web-iis.rules

За промовчанням файли правил деяких типів (наприклад, icmp-info.rules, chat.rules) представлені коментарями у snort.conf. Конфігурація правил, що використовується за умовчанням, в snort.conf цілком вдала. Після активізації блокованих правил програма зазвичай генерує багато зайвих попереджень.

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

У разі появи нових джерел загрози файл правил необхідно оновити. Найкращий ресурс для нових правил – Web-вузол Snort.org. На цьому веб-сайті немає служби автоматичного оновлення, тому адміністратору доведеться регулярно звертатися до нього за оновленнями при виникненні чергової небезпеки.

Етап 6. Налаштування попереджень та журналів

Як вже зазначалося, Snort забезпечує запис інформації в MySQL, SQL Server, Oracle та ODBC-сумісних базах даних. Достатньо вибрати відповідний тип бази даних у процесі встановлення Snort. Щоб надмірно не збільшувати обсяг статті, розглянемо стандартні режими протоколювання за допомогою текстового файлу та функції запису повідомлень у журнал подій Windows.

При запуску NIDS за допомогою команди Snort ключ консолі A забезпечує виведення попереджень на екран. Щоб пересилати повідомлення до текстового файлу, слід замінити цей ключ на -A fast або -A full, залежно від кращого протокольного режиму. Параметр full виводить докладний опис загрози у кількох рядках текстового файлу з ім'ям alerts.ids каталогу, шлях до якого вказує ключ -l. Такий тип протоколювання повідомляє вичерпні деталі, але вони важко розібратися, якщо у мережі відзначається багато подій. У таких шумних мережах рекомендується використовувати режим fast для внесення в alerts.ids однорядкових записів, що містять основні характеристики підозрілого трафіку. На мою думку, працювати з текстовим файлом у режимі fast простіше, ніж у режимі full.

Поточна версія Snort забезпечує протоколювання у журналі подій Windows. Багато організацій вже придбали інструменти централізованого моніторингу подій, протоколювання та збору даних, і ця функція буде чудовим доповненням для Windows.

Для запису попереджень у журнал подій Application системи, де працює Snort, замість ключа -A використовується ключ -E (параметри не обов'язкові). На екрані 5 показано, як виглядає подія Snort (у разі спроба звернення до cmd.exe), опубліковане у журналі Application. Подія Windows забезпечує таку ж детальну інформацію, як екран консолі.

NIDS марний, якщо адміністратор заглядає до журналів подій (або текстових журналів) раз на тиждень. Якщо щось трапляється в мережі, адміністратор повинен дізнатися про це негайно. Централізована система моніторингу та обробки подій може надсилати повідомлення електронною поштою, на пейджер та інші пристрої зв'язку. Але якщо такої системи немає, це не привід для занепокоєння. Компанія NETIKUS.NET пропонує безкоштовний пакет EventSentry Light, за допомогою якого можна надсилати попередження.

EventSentry Light – ознайомлювальна версія EventSentry, її можна завантажити за адресою http://www.netikus.net/products_downloads.html. За допомогою EventSentry Light можна налаштувати систему на моніторинг журналів подій та автоматичне розсилання електронною поштою докладних повідомлень про будь-які події Snort, записані в журнал. на екрані 6показано повідомлення про спроби нападу на cmd.exe. Я отримав це повідомлення від EventSentry Light через кілька секунд після атаки.

Як згадувалося, зазвичай Snort генерує масу непотрібних повідомлень, які швидко переповнюють журнали подій. Про це слід пам'ятати при виборі розмірів файлів для журналів подій та методу їхньої ротації. Щоб EventSentry Light не переповнювала поштову скриньку повідомленнями про незначні події, можна створити фільтр для пошуку ключових рядків. Наприклад, я організував фільтр пошуку рядка у тексті повідомлень.

Етап 7. Запуск як служба

Завершивши всі приготування, можна задіяти Snort як службу, замість реєструватися на настільному комп'ютері щоразу, коли потрібно запустити програму. Якщо запустити Snort з параметрами /SERVICE та /INSTALL (поряд з іншими параметрами командного рядка), Snort налаштовується на роботу як служба Windows і автоматично запускається разом з Windows без втручання користувача.

Наступний рівень: модулі розширення

Snort є повнофункціональним додатком. Однак у деяких випадках програма потребує розширення. Наприклад, якщо в різних ділянках мережі розгорнуто кілька NIDS, то Snort керувати зручно з графічного інтерфейсу. Такі можливості реалізовані у модулях розширення IDScenter фірми Engage Security та IDS Policy Manager компанії Activeworx. Іноді буває необхідно проаналізувати інформацію, що міститься у повідомленнях. Переглянути та проаналізувати збережені дані можна за допомогою модуля Analysis Console for Intrusion Databases (ACID), розробленого в Університеті Карнегі - Меллона.

Надійний захист

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ РОСІЙСЬКОЇ ФЕДЕРАЦІЇ

Державний освітній заклад вищої професійної освіти

«САНКТ-ПЕТЕРБУРГСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ
АЕРОКОСМІЧНОГО ПРИЛАДОБУДУВАННЯ»

КУРСОВА РОБОТА (ПРОЕКТ)
ЗАХИЩЕНА З ОЦІНКОЮ відмінно

КЕРІВНИК

доц., к. т.зв., доц.

посаду, навч. ступінь, звання

підпис, дата

ініціали, прізвище

ПОЯСНЮВАЛЬНА ЗАПИСКА ДО КУРСОВОЇ РОБОТИ (ПРОЕКТУ)

Практика використання IDS SNORT

з дисципліни: інженерно-технічний захист інформації

РОБОТУ ВИКОНАЛА)

СТУДЕНТ(КА) ГР.

підпис, дата

ініціали, прізвище

Санкт-Петербург 2011

1.. Що таке Snort? 2

2. Режим сніффера: 2

3. Режим журналування пакетів. 6

4. Режим виявлення мережевих вторгнень. 6

1. Що таке Snort?

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

Snort використовує "правила" (вказані у файлах "правила"), щоб знати, який трафік пропустити, а який затримати. Інструмент гнучкий, дозволяючи записувати нові правила і дотримуватися їх.

Snort може працювати у 3 основних режимах:

· Режим сніфера: дозволяє просто ловити пакети з мережі та відображати їх на екрані (як правило консолі)

· Режим журналування пакетів: дозволяє зберігати пакети на жорсткий диск


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

2. Режим сніффера:

У режимі аналізу пакетів Snort просто читає пакети, що надходять з мережі, і виводить їх на екран. Для виведення заголовків пакетів TCP/IP необхідно виконати:

snort -v

Ця команда виводить заголовки IP- та TCP/UDP/ICMP-пакетів. Можна побачити звідки відсилалися пакети, куди, скільки /адрес?/. На малюнку /малюнки треба нумерувати, щоб посилатися. Посилання немає – значить малюнок не потрібен/ видно, що вихідні адреси дві./звідки видно? Розшифруйте формати записів на малюнку або хоч за номером рядка зішліться/

Щоб зрозуміти, що це за адреси – достатньо виконати команду

systeminfo


Зі знімка /вже - знімки. а чи не малюнки? У межах документа має дотримуватися однаковості! Або це щось інше?/ стає зрозуміло, що це за вихідні адреси. /ну і перерахуйте - або принаймні вкажіть. що їх номери наведені у квадратних дужках/

Щоб побачити дані, що містяться в пакетах, необхідно ввести:

snort - vd

https://pandia.ru/text/78/320/images/image004_112.jpg" alt="подробный_вывод.jpg" width="589" height="338">!}

Ключі можуть бути задані в будь-якій формі, наприклад: "snort - vde", "snort - d - ev" та "snort - e - v -d".

Snort буде збирати інформацію доти, доки його не перервати. Щоб завершити захоплення пакетів, необхідно натиснути Ctrl-C. Після натискання Ctrl-C буде виведено звіт про захоплені пакети. Нижче показано звіт, отриманий після роботи Snort протягом приблизно хвилини.

Зі знімка видно, що більшість проаналізованих пакетів є пакетами TCP/IP. Також були захоплені UDP пакети.

3. Режим журналування пакетів

Режим журналу пакетів дозволяє записувати потік інформації на диск. Це корисно при проведенні аналізу за певний інтервал часу або перевірки змін у налаштуваннях та безпеці.
Необхідно створити та вказати каталог для логів, а Snort автоматично перейде у режим журналювання пакетів.

Приклад: створюємо каталог logs і запускаємо:

snort - dev - l../log

В результаті операції /куди, де його шукати, як вказати бажане місце?/ запишеться файл snort. log.. Цифри в кінці нових імен файлів є тимчасовими мітками, що дозволяє уникати конфліктів під час створення файлів. /бажаний приклад лог-файлу/

4. Режим виявлення мережевих вторгнень

Третій режим Snort, це режим виявлення мережевих вторгнень (Network Intrusion Detection, NIDS).

У базовій формі правило Snort /де вони зберігаються?/ має дві частини: заголовок і параметри. Нижче наведено приклад правила.

alert tcp any any -> any any (content: "www. "; msg: "Someone is visiting youtube now"; sid:1000002; rev:1)

Модель структури правил можна уявити/вона жорстко задана чи може змінюватися? те, що елементи у квадратних дужках – необов'язкові, сподіваємось. відомо. Але чи є між ними спецрозділювачі?/ за такою схемою:

<действие_правила> <протокол> <порт> <оператор_направления>


<порт>([мета_дані] [дані_про_вміст_пакету]

[дані_в_заголовку] [дія_після_виявлення])

Дії правил поділяються на такі категорії:

1. alert - Створити попередження, використовуючи вибраний метод, та передати інформацію системі журналювання.

2. log - Використовувати систему журналу для запису інформації про пакет.

3. pass - Ігнорувати пакет.

4. activate - Використовувати інше динамічне правило.

5. dynamic - Після того, як виконається активне правило, буде задіяно правило з процедурою журналування.

6. drop - Відкинути пакет, використовуючи програмний брандмеуер, та передати інформацію системі журналювання

7. sdrop - Відкинути пакет за допомогою програмного брандмеуера та не використовувати систему журналювання.

8. reject - Використовуючи брандмеуер, відкинути пакет у разі, якщо протокол TCP, або ж записати у файл журналу повідомлення: ICMP порт недоступний, якщо пакет надходить за протоколом UDP

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

sid - Унікальна мітка, що ідентифікує правило. Ця опція повинна використовуватись з опцією rev .

<100 зарезервировано для дальнейшего использования

100-999,999 вже зарезервовані правила

>=1,000,000 правила, що задаються користувачем

rev- Значення версії правила. За допомогою rev інтерпретатор правил

Snort визначає версію написаного правила.

Запуск Snort у режимі IDS можна здійснити командою:

snort - c "D:\Program Files\Snort\etc\snort. conf" - l "D:\Program Files\Snort\log" - A console - i 1

ключ означає, що увімкнено режим IDS

ключ l включає режим запису на жорсткий диск із зазначенням шляху до файлу

ключ A показує, що всі попередження (alerts) будуть дублуватися виводом на консоль

ключ i вказує на порядковий номер (index) цікавого для нас інтерфейсу

щоб дізнатися підтримувані інтерфейси необхідно виконати команду:

snort W

Вміст файлу snort. conf

Вміст файлу *****les:

У файлі snort. conf можна приєднувати правила використовую ключове слово include .

Результат виконання команди:

Видно, що Snort зафіксував спробу потрапити на "небезпечний" сайт.

Немає інформації про джерело, звідки було взято дистрибутив, про ОС, де велося дослідження

Загалом робота дуже цікава. /