- •1 Налаштування dynamic multipoint virtual private network (dmvpn)
- •2 Вивчення протоколу httPs на прикладі mitm атаки
- •2.2 Методичні вказівки з організації самостійної роботи студентів.
- •2.3 Опис лабораторної установки (програмного забезпечення).
- •2.4 Порядок виконання роботи і методичні вказівки з її виконання.
- •3 Вивчення ids suricata
- •1.2 Методичні вказівки з організації самостійної роботи студентів.
- •1.3 Опис лабораторної установки (програмного забезпечення).
3 Вивчення ids suricata
1.1 Мета роботи: дослідження системи виявлення та протидії атакам IDS Suricata.
1.2 Методичні вказівки з організації самостійної роботи студентів.
У 2009 році кілька приватних компаній і US Department of Homeland Security створили організацію Open Information Security Foundation (OISF), основний із завдань якої було фінансування і розробка багатопотокової альтернативи Snort, що отримала назву Suricata. Робота над новою IDS / IPS йшла набагато швидше, ніж зі Snort 3.0, і бета-версія з'явилася вже в грудні 2009-го, а перший офіційний реліз - влітку 2010-го. Suricata спочатку працює в багатопотоковому режимі, що дозволяє оптимально використовувати кілька CPU. До релізу 1.3 були деякі проблеми з масштабністю, наприклад кількість ядер більше чотирьох не давало в тестах приросту швидкості. Тепер всі проблеми вирішені і Suricata цілком ефективно працює з 24 і більше процесорами. Крім того, Suricata може використовувати обчислення на стороні GPU (CUDA і OpenCL, параметр при складанні -enable-cuda). У підсумку ця IDS спокійно справляється на звичайному обладнанні з потоками до 10 Гбіт / с.
Як і Snort, Suricata складається з декількох модулів (захоплення, збору, декодування, виявлення і виведення), за замовчуванням до декодування захоплений трафік йде одним потоком, це оптимально з точки зору детектування, але більше навантажує систему. Але на відміну від Snort настройками можна перевизначати така поведінка і буквально однією установкою в конфіги розділити потоки відразу після захоплення, а інший вказати, як будуть розподілятися потоки по процесорам. Це дає широкі можливості для оптимізації обробки трафіку на конкретному обладнанні в конкретній мережі.
У Snort режим IPS з'явився не відразу, а ось в Suricata режим блокування шкідливого трафіку реалізований з коробки і проводиться засобами штатного пакетного фільтра ОС. У Linux, наприклад, використовується два режими IPS: через чергу NFQUEUE, яка може оброблятися на рівні користувача, і через zero copy режим AF_PACKET (з'явився з версії 1.4). Режим AF_PACKET має більшу швидкодію, але вимагає наявності двох мережевих інтерфейсів, система повинна працювати в якості шлюзу. Якщо пакет блокується, він просто не пересилається на другий інтерфейс. У випадку з NFQUEUE алгоритм простий. Після потрапляння пакета в iptables він направляється в чергу NFQUEUE, де проганяється по правилам. Результатом може бути три дії: NF_ACCEPT, NF_DROP і NF_REPEAT. Останній дозволяє маркувати пакети і надалі прогнати їх за такими таблицями / правилам iptables.
Головна особливість Suricata - то, що, крім своїх унікальних напрацювань, він використовує практично всі, що вже напрацьовано для Snort. Так, підходять всі Snort-івські рулсети - Sourcefire VRT, OpenSource Emerging Threats (ETOpen) і комерційні Emerging Threats Pro. Уніфікований висновок (Unified2), тому результат можна аналізувати за допомогою звичних бекенд - Barnyard2, Snortsnarf, Snorby, Aanval, BASE, FPCGUI, NSM-система Sguil і Squert. Можливе виведення в PCAP, Syslog, файли і подібне. Наприклад, Suricata веде журнал ключів і сертифікатів, які фігурують в TLS / SSL-судинних. В останніх релізах з'явився Eve log, яка формує висновок подій в форматі JSON для попереджень. Наявність JSON істотно спрощує інтеграцію Suricata зі сторонніми додатками, включаючи і системи моніторингу та візуалізації логів (на кшталт Kibana).
Вcе настройки Suricata і правил виробляються в файлах формату YAML, він більш наочний і спрощує автоматичну обробку.
Одна з переваг Suricata полягає в обробці 7-го рівня OSI, що підвищує його здатність виявляти шкідливі програми для додатків. Движок автоматично визначає і парсит протоколи (IP, TCP, UDP, ICMP, HTTP, TLS, FTP, SMB, SMTP та інші), тому в правилах можна строго не прив'язуватися до номера порту, як це зроблено в Snort, досить вказати протокол і дію . Далі модулі Suricata самі вже розберуться з трафіком і виявлять протокол, навіть якщо використовується нестандартний порт.
Власний формат rules зовні нагадує снортовскій. Правило містить компоненти: дія (pass, drop, reject або alert), заголовок (IP / порт джерела і призначення) і опис (що шукати). У поточній постачання рідних правил мало, і деякі до того ж відключені (закоментовані) в самих файлах, тому поки слід більше орієнтуватися на снортовскіе рулсети.
Іноді між вузлами відкривається не одне, а кілька TCP-з'єднань. Деякі IDS не бачать картину в цілому і обробляють кожен потік окремо. Правила Suricata широко використовують концепцію flowbits. Для відстеження кількості спрацьовувань правил використовуються різні змінні сесії (наприклад, за допомогою flowint), що дозволяють створювати лічильники і прапори, а потім перевіряти їх. Такий підхід легко справляється зі спробою підбору пароля. У версії 2.1 з'явиться можливість простого відстеження в правилах зв'язки IP джерела - IP призначення (xbits), що дозволить ще простіше виявляти шкідливий трафік, розподілений по декількох з'єднань.
В останніх релізах з'явилася підсистема IP Reputation, запускається також у правилах дані з різних БД, що містять списки репутації хостів. Спеціальний механізм забезпечує швидкий пошук і зіставлення з IP-адресами.
Підтримується установка Suricata на Linux, BSD, OS X і Win. Проект пропонує вихідні тексти і кілька репозиторіїв Ubuntu (suricata-stable, suricata-beta і денний зріз suricata-daily), також пакети Suricata додані в Debian Backports. Хоча краще рішення для простого розгортання і підтримки Suricata, ймовірно, саме Ubuntu. В пакетах для Ubuntu IPS-режим реалізований через NFQUEUE, якщо потрібен саме AF_PACKET, а також підтримка CUDA і іншого, доведеться пакет збирати самостійно.
