ne-vlezay80 Опубликовано 14 июня, 2016 В suricata есть поддержка lua-скриптов, а также luajit. Так вот, реально ли с помощью lua-скрипта склеить tcp пакеты для их последующего анализа через этот lua-скрипт. На сколько мне известно, в suricata есть полноценная поддержка lua, а также luajit. Через эти скрипты можно даже запускать программы при совподении трафика с шаблоном. Где можно найти документацию по luajit? Особенно интерисует тема склеивания tcp пакетов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 14 июня, 2016 Уже вижу как у вас код падает :) Там бывают пересекающиеся фрагменты, ещё на IP уровне, и разные ОС по разному их склеивают. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 14 июня, 2016 (изменено) Уже вижу как у вас код падает :) Там бывают пересекающиеся фрагменты, ещё на IP уровне, и разные ОС по разному их склеивают. А тогда как это реализованно в коммерчиских DPI решениях, таких как corbon reductor или СКАТ Изменено 14 июня, 2016 пользователем ne-vlezay80 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 14 июня, 2016 А вы вообще уверены что они собирают пакеты? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 14 июня, 2016 А вы вообще уверены что они собирают пакеты? Не знаю. Но у моего провайдера dpi может каким то образом собирать пакеты Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 14 июня, 2016 И как проверяли? Я уже описывал проблемы при такой сборке, ещё когда только закон готовился и народ тут бурлил, а СКАТ только нанимал прогеров чтобы накорябать свою систему: 0. отслеживание стейтов - иначе его легко положат выжрав всю память на несуществующие соединений просто посылая пакеты в никуда 1. сборка пересекающихся фрагментов - можно подобрать оверлапед фрагменты таким образом чтобы всегда проходить сквозь незамеченным 2. критерии: когда начинаем сборку, сколько держим в памяти, когда выбрасываем и забываем - защита от переполнения памяти, тот же ютуп махом на гигабите выжрет всю оперативу 3. сколько сможем удержать соединений при этом - тут и производительнось лукапов по таблицам и собственно упираемся в память, дальше или дропать новые или забивать на старые соединения 4. вероятно что то ещё - куча нюансов, я сейчас не уже не в состоянии так сложно думать Как простейший оффлоад можно инспектировать тцп только к сайтам чёрного списка. Но это не отменят того что нужно сильно попотеть с тем что описано выше. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 14 июня, 2016 И как проверяли? Я уже описывал проблемы при такой сборке, ещё когда только закон готовился и народ тут бурлил, а СКАТ только нанимал прогеров чтобы накорябать свою систему: 0. отслеживание стейтов - иначе его легко положат выжрав всю память на несуществующие соединений просто посылая пакеты в никуда 1. сборка пересекающихся фрагментов - можно подобрать оверлапед фрагменты таким образом чтобы всегда проходить сквозь незамеченным 2. критерии: когда начинаем сборку, сколько держим в памяти, когда выбрасываем и забываем - защита от переполнения памяти, тот же ютуп махом на гигабите выжрет всю оперативу 3. сколько сможем удержать соединений при этом - тут и производительнось лукапов по таблицам и собственно упираемся в память, дальше или дропать новые или забивать на старые соединения 4. вероятно что то ещё - куча нюансов, я сейчас не уже не в состоянии так сложно думать Как простейший оффлоад можно инспектировать тцп только к сайтам чёрного списка. Но это не отменят того что нужно сильно попотеть с тем что описано выше. 1. Реально ли это сделать на lua 2. Как я понял, на DPI провайдера можно послать атаку которая выжрет у DPI всу память 3. Как там у СКАТ обстаят дела со склеиванием пакетов Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 14 июня, 2016 1. хз. луа вроде как умеет сам немного + все функции которые в него впихнули из основного проекта в который его включили. 2. может быть и можно, зависит от того как DPI организован, они вроде чаще не собирают фрагменты пакетов. 3. хз, не видел, не использовал. Тут есть их представители, их и мучайте такими вопросами. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 15 июня, 2016 suricata же сама собирает поток? Нужно задать в фильтре type=stream или что-то похожее Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 15 июня, 2016 suricata же сама собирает поток? Нужно задать в фильтре type=stream или что-то похожее Покажи пример Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 15 июня, 2016 suricata же сама собирает поток? Нужно задать в фильтре type=stream или что-то похожее Не помогло Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 18 июня, 2016 (изменено) Кстати, там можно указать needs = "packet", и этим lua-скрипту мы полнустью отдаем пакет lua по функционалу сравним с C Изменено 18 июня, 2016 пользователем ne-vlezay80 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 19 июня, 2016 lua язык полноценный, алсо, на нем сделать можно все. Готовые примеры хотим - поднимаем зад и идем в ядро линукс, фри либо DPDK, там даже есть либа сборщика пакетов. Вот ссылочка: http://dpdk.org/doc/guides-16.04/prog_guide/ip_fragment_reassembly_lib.html А вообще не вижу в чем трабла сделать реассм***нг. Вопрос только - зачем. Вся суть сурикаты построена на том, что реассм***нг сделал и данные идут "потоком" прикладного уровня, грепай да выдирай что нужно. Почитать доки по сурикате да повнимательнее - лучший совет будет. Можно и код почитать, что у Бро, что у Сурикаты он не так плох. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 20 июня, 2016 Вот нашел: https://blog.inliniac.net/2012/09/21/suricata-luajit-update/ Кстати, исли прописать: http.request_headers в скрипте, то видит даже дефрагментированные пакеты!!!! кстати, на lua для сурикаты пожно блокировщик запрещенных сайтов написать если делать реассемблинг tcp через lua, то лучше использовать nfq. Так как в af_packet может быть ошибка message too long и запрещенные сайты могут не блокироваться Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...