Size: a a a

2020 April 02

С

Сергей in rust_offtopic
red75prime
Raw sockets для быстродействия совсем не полезны. Фильтрация пакетов ядром для них ограничена. Так что получаются лишние переходы из ядра в юзерспейс. Самые быстродействующие системы обработки трафика полностью в юзерспейсе, если не ошибаюсь
если мы говорим про IDS, то для них сейчас специальные интерфейсы, типа AF_PACKET
источник

СД

Стас Донцов... in rust_offtopic
polunin.ai
учитывая что логи скорее всего просто куда-то записывались, и обработки с ними не было никакой
нет конечно логи не записывались, а сцеплялись в высоеоуровневые события и затем уже записывались сцепленными и так, сырыми
источник

СД

Стас Донцов... in rust_offtopic
Сергей
если мы говорим про IDS, то для них сейчас специальные интерфейсы, типа AF_PACKET
ids это intrusion detection system или про что-то другое речь?
источник

С

Сергей in rust_offtopic
Стас Донцов
ids это intrusion detection system или про что-то другое речь?
Да
источник

СД

Стас Донцов... in rust_offtopic
а ну вот, хоть +/- человек который в теме, я то про siem затираю
источник

СД

Стас Донцов... in rust_offtopic
polunin.ai
20 символов * 20к = 400к символов
это 400к байт == 400 килобайт
это даже не мегабайт)
может и не много на самом деле, но для меня лично много, да и опять же, логов столько генерировать можно, что я думаю проблем с увеличением потока не будет вообще
источник

С

Сергей in rust_offtopic
Стас Донцов
я в свое время работал с системой централизованного сбора логов, там были реальные цифры порядка 20к event per second, каждое событие - строка машинного лога в юникоде длиной ну совсем разной, от 20 символов до 300 символов (логи windows), ну и я думаю парни которые писали этот сборщик логов так или иначе знают что там происходит от провода, до их массива в коде
вот далеко не факт, что они сильно хорошо разбирались, 20к EPS на среднем оборудовании несложно выжать стандартными средствами без проваливания в низкоуровневые вещи
источник

СД

Стас Донцов... in rust_offtopic
Сергей
вот далеко не факт, что они сильно хорошо разбирались, 20к EPS на среднем оборудовании несложно выжать стандартными средствами без проваливания в низкоуровневые вещи
ну, я попробую уточнить на счет 20к eps, но вроде так было, а что за af пакеты?
источник

С

Сергей in rust_offtopic
Стас Донцов
ну, я попробую уточнить на счет 20к eps, но вроде так было, а что за af пакеты?
Давайте только не смешивать SIEM и IDS для начала. AF_PACKET - для IDS.

http://man7.org/linux/man-pages/man7/packet.7.html
источник

СД

Стас Донцов... in rust_offtopic
Сергей
Давайте только не смешивать SIEM и IDS для начала. AF_PACKET - для IDS.

http://man7.org/linux/man-pages/man7/packet.7.html
т.е. eps там и eps там, это разные вещи? я думал что eps это просто мера для понимания с какой скоростью данные приходят из сети, и в общем-то не привязано не к siem не к ids (просто как Кб/с или иной общий аналог)
источник

С

Сергей in rust_offtopic
Стас Донцов
т.е. eps там и eps там, это разные вещи? я думал что eps это просто мера для понимания с какой скоростью данные приходят из сети, и в общем-то не привязано не к siem не к ids (просто как Кб/с или иной общий аналог)
EPS - это events per second. Для SIEM - это обычно строк лога или другого события в секунду. А для IDS - это скорее только срабатывания, но уж никак не пакеты на входе
источник

С

Сергей in rust_offtopic
Если вы хотите писать подобные системы, рекомендую вам получше разобраться с теорией для начала. Ну и про готовые решения не забывайте: vector.dev, tremor.rs
источник

СД

Стас Донцов... in rust_offtopic
Сергей
EPS - это events per second. Для SIEM - это обычно строк лога или другого события в секунду. А для IDS - это скорее только срабатывания, но уж никак не пакеты на входе
а, понял, буду знать
источник

СД

Стас Донцов... in rust_offtopic
Сергей
Если вы хотите писать подобные системы, рекомендую вам получше разобраться с теорией для начала. Ну и про готовые решения не забывайте: vector.dev, tremor.rs
ну я потихоньку изучаю, то тут то там, вон у парней и спрашивал за устройство сокетов, но видимо надо почитать самому) а про эти штуки нет, не слышал даже, я думаю у нас в стране они и не используются в сфере где используют ids, и прочее
источник

СД

Стас Донцов... in rust_offtopic
Сергей
Если вы хотите писать подобные системы, рекомендую вам получше разобраться с теорией для начала. Ну и про готовые решения не забывайте: vector.dev, tremor.rs
кстати по теории, что бы посоветовали? я сейчас читаю общие книги по многопоточности/параллельности, но вот например спуск в man страницы linux, еще не практиковал: я покс понял так, что надо найти какую-то книгу по сетевому устройству linux и программированию для него на любом из языков и там вот я бы смог прочесть про raw сокеты и про AF_PACKET хотя бы услышал..
источник

С

Сергей in rust_offtopic
Стас Донцов
кстати по теории, что бы посоветовали? я сейчас читаю общие книги по многопоточности/параллельности, но вот например спуск в man страницы linux, еще не практиковал: я покс понял так, что надо найти какую-то книгу по сетевому устройству linux и программированию для него на любом из языков и там вот я бы смог прочесть про raw сокеты и про AF_PACKET хотя бы услышал..
по этим материалам вы может быть научитель писать сетевое ПО под линукс, но не поймёте, что делают и как работают SIEM, найдите материалы по SIEM. Конкретных не могу посоветовать, но на хабре что-то есть на эту тему.
источник

P

Pavel in rust_offtopic
Стас Донцов
я в свое время работал с системой централизованного сбора логов, там были реальные цифры порядка 20к event per second, каждое событие - строка машинного лога в юникоде длиной ну совсем разной, от 20 символов до 300 символов (логи windows), ну и я думаю парни которые писали этот сборщик логов так или иначе знают что там происходит от провода, до их массива в коде
Я в своё студенческое время работал с навороченным АЦП, что передаёт данные по езернету, которые надо схендлить и потом ещё обработать(SDR-приёмник), данные порядка от 0.5 до 2мегасемплов в секунду, один сэмпл — 2 24-битных числа, это по юдп, которое потом идёт по вайфаю. И это надо было процессить на двухядерном андроиде 11го года. Так вот, чтоб это схэндлить надо было только немного головой подумать и понять, что дальше не подростёт скорость потому что упираемся в вайфай, накладуха на следующий шаг по сэмпл-рейту будет выше, чем пропускная способность модема телефона. Но этот поток, дряный телефон обрабатывл, вот эти все плюс-минус косинус-синус, корни-квадраты КИХ фильтры и фурье.

На сраной джаве. Конечно на телефоне уже надо было включать тогда ещё ART бета-версии, вместо далвика, но справлялся, на одном порту.

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

A

Aleksandr Khristenko in rust_offtopic
Nick Linker
anyhow и thiserror уже доводилось видеть или использовать?
Смотрел и использовал. Все равно не понял, как делать удобно.
Вот пример задачи: пусть у нас есть 2 функции, одна может вернуть ошибк IoError, NotFound, ParseError, втора NotFound, LogicError.
Нам нужно эти две функции вызвать из третьей, прокинуть ошибку вверх а наверху уже обработать только NotFound прокинув остальные дальше.
В anyhow удобно прокидывать ошибки, но по сигнатуре вообще не видно какие там ошибки идут и неудобно конкретную обрабаывать.
источник

AZ

Alex Zhukovsky in rust_offtopic
Aleksandr Khristenko
Смотрел и использовал. Все равно не понял, как делать удобно.
Вот пример задачи: пусть у нас есть 2 функции, одна может вернуть ошибк IoError, NotFound, ParseError, втора NotFound, LogicError.
Нам нужно эти две функции вызвать из третьей, прокинуть ошибку вверх а наверху уже обработать только NotFound прокинув остальные дальше.
В anyhow удобно прокидывать ошибки, но по сигнатуре вообще не видно какие там ошибки идут и неудобно конкретную обрабаывать.
эх, а в были бы завтипы...)))
источник

AZ

Alex Zhukovsky in rust_offtopic
источник