Перейти к содержимому
Калькуляторы

suricata lua tcp reassembly (сборка tcp пакетов при помощи lua скриптов suricata)

В suricata есть поддержка lua-скриптов, а также luajit. Так вот, реально ли с помощью lua-скрипта склеить tcp пакеты для их последующего анализа через этот lua-скрипт. На сколько мне известно, в suricata есть полноценная поддержка lua, а также luajit. Через эти скрипты можно даже запускать программы при совподении трафика с шаблоном. Где можно найти документацию по luajit? Особенно интерисует тема склеивания tcp пакетов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уже вижу как у вас код падает :)

Там бывают пересекающиеся фрагменты, ещё на IP уровне, и разные ОС по разному их склеивают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уже вижу как у вас код падает :)

Там бывают пересекающиеся фрагменты, ещё на IP уровне, и разные ОС по разному их склеивают.

 

А тогда как это реализованно в коммерчиских DPI решениях, таких как corbon reductor или СКАТ

Изменено пользователем ne-vlezay80

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вы вообще уверены что они собирают пакеты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вы вообще уверены что они собирают пакеты?

Не знаю. Но у моего провайдера dpi может каким то образом собирать пакеты

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И как проверяли?

 

Я уже описывал проблемы при такой сборке, ещё когда только закон готовился и народ тут бурлил, а СКАТ только нанимал прогеров чтобы накорябать свою систему:

0. отслеживание стейтов - иначе его легко положат выжрав всю память на несуществующие соединений просто посылая пакеты в никуда

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

2. критерии: когда начинаем сборку, сколько держим в памяти, когда выбрасываем и забываем - защита от переполнения памяти, тот же ютуп махом на гигабите выжрет всю оперативу

3. сколько сможем удержать соединений при этом - тут и производительнось лукапов по таблицам и собственно упираемся в память, дальше или дропать новые или забивать на старые соединения

4. вероятно что то ещё - куча нюансов, я сейчас не уже не в состоянии так сложно думать

 

 

Как простейший оффлоад можно инспектировать тцп только к сайтам чёрного списка.

Но это не отменят того что нужно сильно попотеть с тем что описано выше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И как проверяли?

 

Я уже описывал проблемы при такой сборке, ещё когда только закон готовился и народ тут бурлил, а СКАТ только нанимал прогеров чтобы накорябать свою систему:

0. отслеживание стейтов - иначе его легко положат выжрав всю память на несуществующие соединений просто посылая пакеты в никуда

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

2. критерии: когда начинаем сборку, сколько держим в памяти, когда выбрасываем и забываем - защита от переполнения памяти, тот же ютуп махом на гигабите выжрет всю оперативу

3. сколько сможем удержать соединений при этом - тут и производительнось лукапов по таблицам и собственно упираемся в память, дальше или дропать новые или забивать на старые соединения

4. вероятно что то ещё - куча нюансов, я сейчас не уже не в состоянии так сложно думать

 

 

Как простейший оффлоад можно инспектировать тцп только к сайтам чёрного списка.

Но это не отменят того что нужно сильно попотеть с тем что описано выше.

 

1. Реально ли это сделать на lua

2. Как я понял, на DPI провайдера можно послать атаку которая выжрет у DPI всу память

3. Как там у СКАТ обстаят дела со склеиванием пакетов

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. хз. луа вроде как умеет сам немного + все функции которые в него впихнули из основного проекта в который его включили.

2. может быть и можно, зависит от того как DPI организован, они вроде чаще не собирают фрагменты пакетов.

3. хз, не видел, не использовал. Тут есть их представители, их и мучайте такими вопросами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

suricata же сама собирает поток? Нужно задать в фильтре type=stream или что-то похожее

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

suricata же сама собирает поток? Нужно задать в фильтре type=stream или что-то похожее

Покажи пример

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

suricata же сама собирает поток? Нужно задать в фильтре type=stream или что-то похожее

 

Не помогло

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, там можно указать needs = "packet", и этим lua-скрипту мы полнустью отдаем пакет

lua по функционалу сравним с C

Изменено пользователем ne-vlezay80

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lua язык полноценный, алсо, на нем сделать можно все.

 

Готовые примеры хотим - поднимаем зад и идем в ядро линукс, фри либо DPDK, там даже есть либа сборщика пакетов. Вот ссылочка: http://dpdk.org/doc/guides-16.04/prog_guide/ip_fragment_reassembly_lib.html А вообще не вижу в чем трабла сделать реассм***нг.

 

Вопрос только - зачем. Вся суть сурикаты построена на том, что реассм***нг сделал и данные идут "потоком" прикладного уровня, грепай да выдирай что нужно.

 

Почитать доки по сурикате да повнимательнее - лучший совет будет. Можно и код почитать, что у Бро, что у Сурикаты он не так плох.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот нашел:

https://blog.inliniac.net/2012/09/21/suricata-luajit-update/

Кстати, исли прописать: http.request_headers в скрипте, то видит даже дефрагментированные пакеты!!!!

 

кстати, на lua для сурикаты пожно блокировщик запрещенных сайтов написать

 

если делать реассемблинг tcp через lua, то лучше использовать nfq. Так как в af_packet может быть ошибка message too long и запрещенные сайты могут не блокироваться

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.