Эффективный способ хранения и пересылки на основе 5 данных кортежей - PullRequest
0 голосов
/ 31 марта 2020

Мне не разрешено удалять это сообщение или я бы это сделал. Понятно, что это совсем не нравится. Я ничего не могу с этим поделать - ТАК по какой-то причудливой причине не позволю мне удалить его. Я пометил его для модератора, но никто ничего не сделал с ним.


Я делаю приложение Ryu, которое должно отслеживать сетевые "разговоры", то есть двунаправленный L4 потоки. Проблема заключается в том, что, хотя есть много способов сделать это, эффективность является большой проблемой.

Проблемы:

  • Двунаправленные данные должны легко просматриваться. Например, наивный подход может состоять в том, чтобы иметь sh кортеж 5, а затем выполнять поиск по ха sh. Однако проблема в том, что в действительности это будет два хэша из-за направленности src / dst IP и порта.
  • Другой способ сделать это - просто сохранить комбинации ip / port в таблице и затем проверить против них. Проблема заключается в том, что требуется извлекать эти значения для каждого пакета, а затем учитывать направленность, что выглядит беспорядочно.

Идеально

Что было бы идеально, так это ха sh, который в каким-то образом объясняется направленность. Таким образом, у вас все еще есть хеш-таблица, но она соответствует тому, является ли трафик c:

SRCIP: A, DSTIP: B, SRCPORT: A, DSTPORT: B

или

SRCIP: B, DSTIP: B, SRCPORT: A, DSTPORT: A

1 Ответ

0 голосов
/ 03 апреля 2020

Я использовал pycommunityid * от Corelight . Это позволит вам предоставить кортеж потока и затем сгенерировать sha1 га sh на основе предоставленных данных. Это будет учитывать вышеупомянутую двунаправленную проблему (см. псевдокод )

import communityid

cid = communityid.CommunityID()

tpl = communityid.FlowTuple.make_tcp('127.0.0.1', '10.0.0.1', 1234, 80)
print(cid.calc(tpl))

tpl = communityid.FlowTuple.make_tcp('10.0.0.1', '127.0.0.1', 80, 1234)
print(cid.calc(tpl))

Вывод:

1:mgRgpIZSu0KHDp/QrtcWZpkJpMU=
1:mgRgpIZSu0KHDp/QrtcWZpkJpMU=

Как видно из приведенного выше, направление потока не проблема и та же комбинация ip / port приведет к тому же ha sh.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...