СБ, 05 лекция (от 28 марта)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

В прошлый раз мы разговаривали о мэ. Кто может сказать, зачем они нужны.

-фильтрацию.

-фильтрацию ради чего?

МЭ решают задачу контроля доступа на уровне сети, то есть позоляют разграничивать куда могут обращаться какие компьютеры.

Сегоня мы говроим о системах которые стоят немного особняком -- системы обнаружения атак. Если мэ нужны для разграничения и контроля доступа, то системы обнаружения атак как спе средства возникли еще раньше чем выделенные мэ, в конце 70 годовю Все это время они развивались паарелленьно. основаня здача, которую они решали -- мониторинг того, тчо происходит в сети в плане попыток обойти системные защиты. И это единственная задача, которую они решают хорошо. Первые системы были разарботаны еще для систем типа симонс, мейнфреймы и соотв контроль доступа пользователей к основным ресурсам мейнфрейма плю контроль доступа по диалапу Задач соа -- мониторинг этим обусловлены все механизмы которые там используются. Они направлены на то чтобы обнарудживать факты использования известных на сегодняшний день атак.

статистика с сайта компании армор по разным видам атак в с распр по географ карте. Что предоставляет эту статистику? Есть устройства, которые производит компания арамор, которые по сути представл собой систему обанружения атак. Они раставлены у большого колва у клиентов по всему миру. Два дня назад россия там была на пятом месте по колву обнаруженных атак, сегодня на 15.

Что такое ботнет?

Это сети из зараженных узлов которые находятся под единым управлнеием злоумышленника. То что делает ддос атаки, то что спам рассылает. Сегодня можно услышать много терминов означающих одно и то же ids, ips, utm. Основное отличие системы обнаружения от системы предупреждения? С технической тз они часто реалзоаны одинаковокогда мы говорим об обнаржуении и когда мы говорим о предупреждении -- разные требования. В случае обнардуения решается задаа сбора доказательной базы. Вы мониторите на предмет вам когда нибудь понадобится посомтреть журнал и узна какой злоумышленник там месяц сидел. Требования -- макисмальная полнота охвата известных эксплойтов и уязвимостей, полнота базы сигнатур и жиучесть, то есть чтобы не очень легок было вывести ее из строя.

Системы предупредения -- мы находимся в канале и принмаем решение пускать или не пускать. Изза того что мы находимся в середине совершенно другие требования -- чтобы система была надежна по причинам внутреннис недолжно прерываться функционирование иначе канад будет разорван и отказ в обслуживании. И резко повышаются требования к методам обнаружения -- должен быть нихкий процент ложных срабатываний.

На сегодняшний день система обнаружения атак и предотварщения много окммерческих и некоммерческих. Всего за 30 лет было зарегистрировано более 200 исследовательских проектов в это области. Современные с открытым кодом

* snort
* bro IDS
* suricata
* Osseq

Три сетевые, одна узловая.

Поговорим немножко про методы обнаружения. Если почитать книги и статьи, то очень часто они начинаются с классификации

* методы обнаружения злоупотреблений. базируются на описаниях известных атак. Мы ищем в реальном трафике такие паттерны. Подавля.щее большинство совр систем построены по этому приницпу.
* обнаружение аномалий. Мы знаем что такое нормальное поведение и пытаемся распозхновать отклонения от него. Системы обнаржения аномалий исторически были первыми. 

В чем плюсы и минусы?

Злоупотребления. Сигнатурные. Бонус -- нм всегда понятно, почему она сработала. Если сработала сигнатра на трафик, мы можем взглянуть на ее текст и понять, что выполнились такие то условия, поэтому и произошло. Тот кто читет логи такой системы может понять, действительно ли в тех данных было то-то плохое, или нет. Если же у нас ситема обнаружения аномалий то она должна обучиться на нормальных данных. Это значит она работает какое то время на том узле, где она будет обнаржуивать атаки. И когда происходит реагирование аналитику очень сложно понять, почму именно этот пакет или сессия стала считатья ненормальной. Если у насвсего три параметра -- объяем данных, колво соединений в секунду и еще то-то, то ещё можно понять. Ели параметров 50 и исп алгоритм машинного обучения, то глазами ничего понять невозможно. Поэтому чаще всего анаомалии -- исследов прототипы окторые работают хорошо там где тестировались создателями. Едичнтсвеенное где они используются в бою -- системы обнаружения ддос атак.

Сигнатурный анализ можно рассказывать на примере системы снорт. В соновном системы строились from scratch. Принцип простой -- поиск шаблонов. Выбирается вд шаблона -- посик подстроки, поиск последовательности строк, поиск по регвырам или каакя то комбинация. Дальше реализуется сооотв алгоритм.

Что такое регвыры?

Нчнем с самого простого, поиск подстрок. Если мы хотим найти подтроку, мы можем пойти тупо в лоб. У нас есть строка аааа. И у на ссть сетевой пакет. Сложность тупого алгоритма линейно от размера базы и размера анализ строк. Бойер -Мур позволяет сделать поиск подстроки быстрее, зсчет поиска с конца. Но тем не менее остемся зависимыми от размера базы сигнатурю Это все чень древние алгоритмы -- 50ые 60ые годы. В 70ые был придуман алгоритм словарного поиска Корасика, быстрый. Сутб Ахо-Корасика. Наши сигнатуры словарь. По ним строится дерево из символов. Проход по этому дереву один раз -- все вхождения слов слоаря которые есть в пейлоаде.

Регулярные выражения.

Есть понятия контекстно-свободных грамматик, которые в 4ом семестре. Лучше почитать просто статьи по регулярным грамматикам. Регулярные ввыражения они пошли от регулярных языков. Рег языки позволяют опиывать правила которые мы хотим в совсем общем виде. В реальных реализациях типа pcre естьхаки которые выводят нас за границу регулярных языков, сделаны либо для удобства ли бо для ускрения кода. Чистые регвыры всегда можно представить в виде детерминированного конечного втомата.

Чтоже из себя представляют сигнатуры?

Рассмотрим на примере snort.

Простые мэ работают с данными заголовка. Прелесть заголовков что они находятся по фикисрованному смещению.

Правида обнаружения атак похожи на правила мэ.

alert -- это action, аля дроп, режект в мэ. Снорт позволяет несколько видов реагирования. Алерт базовый. Если посмтореть поглубже, то снорт умеет работать в качеств ипса. Тогд можно строитиь првила, которые говорят режект или ресет.

Дальше идет тип пртокола tcp, udp,icmp, arp в зависм от этого выбирается разборщик пакетов

Дальше параметры откуда куда. В точности соотв полям в правиле файерволла там может быть конкретный ип, ип с маской, список ипов.

нпример 192.168..0.0/24

Потом идет номер порта,

потом куда.

Дальше начинается собтсвенн правило(за скобочками)

alert tcp $HOME_NET 16959->$EXTERNAL_NET any (msg "")

в скобочкам можно использовать

flow:to_server смотрим что только по направлению к серверу.(серерам считается то, кому приходит первый син). established -- смотрим только те пакеты, что идут после хендшейка. В пакетах от клиента к серверу содержится content:"tralala"

контент раскрывается в мура лии в стрмп в зависмости от количества сигнатур.

У коротких сигнатур в таком враинате может быть много ложных срабатываний.

Вторая сигнатура ещё хуже. Мы будем искать строчку pwd во всех патх, которые идут с сервера. Таки сигнатуры получают двумя способами -- сият аналитики и пишут, второй -- автоматиеская генерация. Иногда по виду можно понять поисхождение сигнатуры.

В снорте все правила сгруппировагы в файл, файлы хранятся в увидите. Каждый файл с рулсетом имеет имя в соотв с каим нибудь соображением, например все ицмп сигнатуры собраны в один icmp.rules. Есть толи http.rules с кучей автом сгенерированных сигнатур. Сейчас порядка 13000 сигнатур в базе.(Предсавтье что буедт если будет стрцмп 10000 на каждый тип сигнатур). А ип пкетов максимально может гнаться до 1.5 млн в секунду.

Прежде чем начать анализ снорт подгружает всю базу и её анализирует. Сначала то что идет до скобочек. По ним он группирует правила в цепочки. Цепочки - сигнатуры обхединенные поп ростому признаку. Например все что касается ицпмп в одну цепочку. Здесь может быть какое-то условие, которое является общим для набора сигнатур внутри ицмп. Например может быть пачка сигнатур у которых совпадает откуда смотрим трафик, ответвляем. Получается дерево, у которого листья пачки сигнатур. Обход по этому дереву быстрее чем просто поиск правил по базе.

На слайде "анализ -задача реального времени" показано, что на гигабитном канале у нас всё плохо. Закон гилдера -- аналог закона мура для сетевых каналов.

Если посомтрим на сетевой интерфейс в одно м компьютере. Вначале 80ых и в начале 90 ых там 10 мегабитный езернет. В то время для обработки всего трафика можно было найти машину, которая это успевала бы делать. Сегодня затруднительно найти машину, которая могла бы просто так обработать 10 гигабитный канал(просто купить в магазине компьютер) Две причины -- увеличивается общая пропусканя способность, но плюс к этому частота событий в худешм случае растет так, что мы ожем получить на каждый пакет 700 в секунду. При этом время переключения котнекстов ос на порядок превосходит это время. То есть если на каждый пакет переключать контексты мы гаранировано не успеем это сделать.

Системы обнаржуения атак сталиваются с кучй проблем -- обеспечение наджности, обеспечение базы сигнатур(как успеват за плохими ребятамми) кроме того -- как успевать переработать всю базу сигнатур за отведённое технологией время.

Сигнатурники остановили свое развитие в плане методов лет 10 как. Алгоритмы остаются одними и ттеми же - регвыры, ахокарасик. Битва идет за упевать их обрабтывать с исп специализированного железа, параллельных вычислений итп.


Системы обнаружения аномалий использутся для защиты от ддос атак. Как правило ситуация такая - у вас есть сеть и один сервер с которого вы идёте в интернет. И вы должны не пропустить трафик атакующего как можно раньше, например на стороне проайдера.

Выбирается несколько характеристик, которые могли бы описыватьнормальное йункционирование сети:

Регулярная структура по времени. её можно увидеть и глазами. Суть в том, чтобы увидеть кто из многчисленных клиетво сделал нехорошее. Исходя из этой задачи мы можем понять какие параметры нам надо собирать. Прежде всего количество переданных данных на сессию. Это параметр может сильно зависеть от того, что м защищаем -- веб сервис, сервис разадчи видео, аудио. Для тех ресурсов которые разадют регионально значимый трафик мы можем получить пользу если собиирать гео ип. Гео ип формируется на основе информаций от регистраторов. В случае когда у нас начинается ддос атака у нас есть гео распределение ботнета -- больше всего сша, потом китай, потом бразилия. Есть ботнеты которые только из бразилии... Учет статистики ведётся в течение длительного рвмени, причем с разбивкой по часам, по дням недели, по месяцам. отдельно для каждого интервала выстраиваются свои пороги.

[править] Задание

Обнаружить заход рута на телнет сервер и успешую аутентификацию. В случае снорта получится не одна сигнатруа, сигнатуры можно между собой логически связывать, функция call bit.

Натравить Metasploit на машину с включенным IDS, изучить логи

Личные инструменты
Разделы