The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Открыт код Syncookied, системы защиты от DDoS-атак

28.08.2016 23:39

Компания Бегет открыла исходные тексты проекта Syncookied, в рамках которого развиваются система для защиты от различных типов сетевых атак, включая флуд пакетами с флагами SYN и ACK. Syncookied эмулирует функциональность syncookie ядра Linux, использует тот же алгоритм генерации cookie, но обладает более высокой производительностью при противостоянии атакам, благодаря прямой обработке пакетов через netmap. Код Syncookied написан на языке Rust (расчёт контрольных сумм на Си с ассемблерными оптимизациями и использованием SIMD для SHA-1) и распространяется под лицензией GPLv2.

Syncookied может использоваться в качестве свободного аналога коммерческим решениям, использующим технологию SynProxy. Предложенное в Syncookied решение может применяться для создания фильтрующего сервера, блокирующего атаки на другие хосты в локальной сети. Производительности 10 ядер процессора Intel Xeon E5-2680v3 достаточно для обработки 10 гигабит трафика, физический сервер способен обрабатывать более 40 гигабит трафика. Развёртывание Syncookied максимально упрощено и не требует дополнительной конфигурации.

Для получения секретного ключа, используемого каждым хостом для верификации cookie, на защищаемых конечных хостах требуется загрузка специального модуля ядра и запуск фонового процесса "syncookied server", передающего ключ и синхронизирующего метки времени с централизованным сервером фильтрации трафика. На сервере фильтрации syncookied запускается в режиме фильтра (syncookied -i eth2) и настраивается прямая передача трафика от сетевой карты через netmap. Во время атаки на маршрутизаторе входящий трафик перенаправляется на сервер фильтрации, на котором отсеивается флуд и на защищаемый сервер транслируются только корректные пакеты.

Кроме борьбы с DDoS-атаками syncookied также поддерживает определение произвольных правил фильтрации трафика, которые задаются в формате pcap-filter. В правилах блокировки можно комбинировать IP, порт, протокол и т.п. Cистема также может сохранять статистику в БД InfluxDB, на основе которой можно генерировать графики для анализа динамики DDoS-атаки.



  1. Главная ссылка к новости (https://beget.com/ru/articles/...)
  2. OpenNews: Серия уязвимостей в реализациях HTTP/2
  3. OpenNews: CloudFlare применил NetMap для повышения скорости обработки пакетов в Linux
  4. OpenNews: Релиз FastNetMon 1.1.2, открытого решения по обнаружению DDoS-атак
  5. OpenNews: Вышел DNS-сервер BIND 9.9.4 с поддержкой RRL для блокирования DDoS-атак
  6. OpenNews: Новый пакетный фильтр для борьбы с флудом на уровне Linux ядра
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/45041-ddos
Ключевые слова: ddos, syncookie, rust
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Alexey (??), 01:33, 29/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    код ресурсоемких операций написан на assambler
     
     
  • 2.4, Аноним (-), 01:44, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Можно было на lua в асам стиле
     
     
  • 3.41, Аноним (-), 22:04, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >  Можно было на lua в асам стиле

    Можно даже на брейнфаке, только скорость гольного ассемблера не получится.

     
  • 2.10, Аноним (-), 09:06, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    assembler, а не assambler :)
     
     
  • 3.29, Аноним84701 (?), 15:15, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > assembler, а не assambler :)

    Если уж исправлять, то на assembly, а не assembler ;)
    Assembler — непосредственно программа-сборщик (т.е. "компилятор", если сравнивать с более высокоуровневыми языками).


     
     
  • 4.38, Alexey (??), 17:54, 31/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Простите, господа - был пьян. В следующий раз учту.
     

  • 1.5, Аноним (-), 01:57, 29/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Функциональность syncookie ядра Linux, использует тот же алгоритм генерации cookie, но обладает более высокой производительностью

    Так netmap пришел из BSD ясен пень.

     
     
  • 2.6, Аноним (-), 02:15, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • –12 +/
    >> Функциональность syncookie ядра Linux, использует тот же алгоритм генерации cookie, но обладает более высокой производительностью
    > Так netmap пришел из BSD ясен пень.

    https://github.com/luigirizzo/netmap/tree/master/LINUX
    > The FreeBSD and Linux versions share the same codebase, which
    > is located in ../sys . For Linux we use some additional glue code, (bsd_glue.h).

    Нет, как видно из ридми, бцдуны опять утянули себе новшества с пингвина. Хотя им не привыкать.

     
     
  • 3.7, Аноним (-), 02:20, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > netmap/tree/master/LINUX

    Это портировали уже для линукса.

     
     
  • 4.12, Andrey Mitrofanov (?), 10:22, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> netmap/tree/master/LINUX
    > Это портировали уже для линукса.

    Вот github-овский "initial commit"- https://github.com/luigirizzo/netmap/commit/f27d642666bb598bba31b2e6c7cc7d43d2 , там и Free, и Linux. Это "12 Mar 2013". Но да, это то, что они [возможно, "потом"] публиковали.

    В бумаге http://info.iet.unipi.it/~luigi/research.html 2011-го года http://info.iet.unipi.it/~luigi/netmap/20110729-rizzo-infocom.pdf они уже поминали и linux, и free. Но ресёрчили, похоже -- я не вчитывался (в частности, судя по "мы основывались на bpf, но потом бросили" -- в lin* bpf позже "появился"), _на_ freebsd. Академичненько!

     
  • 3.22, Аноним (-), 13:03, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Дорогой борцун, исторически, всё с точностью до наоборот. Но зачем тебе изучать вопрос, тебе главное пёрнуть. Да, мой маленький?
     
  • 3.30, Jan Dakinevich (ok), 15:57, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> For Linux we use some additional glue code, (bsd_glue.h).
    > Нет, как видно из ридми, бцдуны опять утянули себе новшества с пингвина. Хотя им не привыкать.

    Читать научись.

     
  • 2.13, Andrey Mitrofanov (?), 10:28, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >> Функциональность syncookie ядра Linux
    >>но обладает более высокой производительностью
    > Так netmap пришел из BSD ясен пень.

    Да, не. Пришёл он из [грантовых] денег интеля и ею, выбитых себе университетом Пизы:

    +Credits
    +-------
    +NETMAP and VALE are projects of the Universita' di Pisa,
    +partially supported by Intel Research Berkeley, EU FP7 projects CHANGE
    +and OPENLAB.

    --https://github.com/luigirizzo/netmap/commit/f27d642666bb598bba31b2e6c7cc7d43d2

     

  • 1.8, Аноним (-), 02:30, 29/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    добавьте Rust в ключевые слова, это очень важно. Спасибо, годнота 100%
     
  • 1.9, Аноним (-), 08:19, 29/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А что, ещё кто-то DDoS-ит SYN-флудом? Мне казалось это уже давно пройденный этап и сейчас или UDP-флудом через усилители  трафика забивают весь канал или ботнетом генерируют вполне валидные HTTP-запросы к ресурсоёмким страницам, которые только через капчу отбиваются с установкой сессионной Сookie.
     
     
  • 2.11, Аноним (-), 09:33, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Досят ещё как. Один линуксовый сервер в любой конфигурации с помощью iptables -J SYNPROXY отбивает пару миллионов пакетов синфлуда и сдувается. Так что он всё ещё эффективен.
     
  • 2.14, Demo (??), 10:40, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > генерируют вполне валидные HTTP-запросы к ресурсоёмким страницам

    В инете не только HTTP, дружище. Есть куча других протоколов.

     
     
  • 3.31, rob pike (?), 16:15, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    binkp используете?
     
  • 2.17, rob pike (?), 11:22, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы не понимаете.
    Это написано на Rust.
    НА RUST.
     
     
  • 3.23, Аноним (-), 13:14, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    это ты не понимаешь, pony лучше rust, но сдохла.
     
  • 3.27, Andrey Mitrofanov (?), 15:02, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы не понимаете.
    > Это написано на Rust.
    > НА RUST.

    Да, коллега!! Итальянская академическая наука двигается от freebsd к freebsd+linux+windows, от пайтона -- к rust, от текний -- к грантам. Это очень интеречная тенденция.  //Не разглядел только, в вопросе BSDL vs GPL какие подвижки? Rust "у нас" под чем?----

     
     
  • 4.32, _ (??), 17:01, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    https://github.com/rust-lang/rust/blob/master/COPYRIGHT
    "The Rust Project is dual-licensed under Apache 2.0 and MIT terms."

    Яка зрада, Андрейко! :-( А влада скрывет!!! Подымай майдан!!!!

    PS: А лучше - прими уже таблеточку, ну грустное же блин зрелище! :(

     
     
  • 5.34, Andrey Mitrofanov (?), 17:25, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >under Apache 2.0 and MIT terms."
    > Яка зрада, Андрейко! :-( А влада скрывет!!! Подымай майдан!!!!
    > PS: А лучше - прими уже таблеточку, ну грустное же блин зрелище!
    > :(

    Да. Грустно. Люди не понимают риторики и иронии над ними. Но старательно защищаются. Я рыдаю... прямо.

     

  • 1.15, Аноним (-), 10:47, 29/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это лучше, чем Sustricata?
     
     
  • 2.16, SysA (?), 11:20, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Это лучше, чем Sustricata?

    Это другое! :) см. #14

     
  • 2.20, Аноним (-), 12:28, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    это "как syncookie но с меньшим процессорным овэрхэдом", то есть столь-же дырявое, но ощутимо менее ресурсоемкое, но всяко лучше чем Ничего в плане защиты. с другой стороны в силу специфики TCP и нетфильтра - оно и side-channel и mitm упрощает в обоих случаях, пусть и непринципиально.
     

  • 1.19, Аноним (-), 12:26, 29/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    TCP cookie transactions недопилили из 6013-го RFC, повыкидывав и deprecate-нув его, а зря :(
     
     
  • 2.24, Аноним (-), 13:36, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    DNSSEC тоже бы deprecate-нуть, ну ужасный ведь костыль надстройкой.
     
     
  • 3.26, Аноним (-), 14:35, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > DNSSEC тоже бы deprecate-нуть, ну ужасный ведь костыль надстройкой.

    HTTPS так же. И что?

     
     
  • 4.40, Аноним (-), 05:31, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    так давно-ж. startTLS рекомендовано заменять киданием websocket поверх ipsec ;)
     
  • 3.28, Sw00p aka Jerom (?), 15:03, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    а вот тут по подробней плиз )))))
     
  • 3.37, cvb (??), 08:37, 30/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы ведь уже придумали решение получше? Можно почитать Ваше решение на сайте https://www.ietf.org/ ?
     
  • 3.39, Аноним (-), 05:28, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    ага и IPSEC с IPv6 сразу заодно, ибо "defective by design", неконсистентно, пересуложнено, противоречиво и чрезмерно/неоправданно непрозрачно, утяжелено, непропорационально фичастости и применению.
    но если не стебаться то есть вам DNSCurve сырой код если DNSSec не устаривает или еще более нетривиальные (на базе лаи-массея с максимизацией каскадного эффекта в тюнинге об)реализации.
     

  • 1.33, Аноним (-), 17:03, 29/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Производительности 10 ядер процессора Intel Xeon E5-2680v3 достаточно для обработки 10 гигабит трафика, физический сервер способен обрабатывать более 40 гигабит трафика.

    А потом что?  Новые ядра покупать?

     
     
  • 2.35, Andrey Mitrofanov (?), 17:28, 29/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Производительности 10 ядер процессора
    > гигабит трафика, физический сервер способен
    > А потом что?  Новые ядра покупать?

    Продавать (но прежде -- гранты и побольше)!

    Кластер. Облако. Кубит! Нейтринные вычислители... Сингулярность...

     
     
  • 3.42, Аноним (-), 22:07, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вот оно что, митрофанушка то оказывается AI. Будущий.
     
     
  • 4.43, Andrey Mitrofanov (?), 10:14, 02/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот оно что, митрофанушка то оказывается AI. Будущий.

    Тебя естественным обделили??

     

  • 1.44, Alexey (??), 13:27, 19/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    https://habrahabr.ru/post/301892/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру