跟踪网络流量数据的最Pythonic /最佳方法?

问题描述 投票:-2回答:1

我正在制作一个必须跟踪网络“对话”,即双向L4流的应用程序。

您可以对5元组数据进行哈希处理,但问题是只能在一个方向上使用。哈希在返回时更改。我可以想到几种方法来执行此操作,但是似乎没有一种方法特别干净。

我正在寻找以编程上最有效的方式来跟踪网络对话的想法。

python networking flow
1个回答
0
投票

我使用了Corelight的pycommunityid。它将允许您提供一个流元组,然后根据所提供的数据生成一个sha1哈希。这将解决上述双向问题(请参见pseudocode

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的相同组合将产生相同的哈希。

© www.soinside.com 2019 - 2024. All rights reserved.