我想问一个关于Linux内核中的IPv4片段管理器的问题(net / ipv4 / inet_fragment.c)。我不明白为什么结构inet_frags(include / net / inet_frag.h)有一个“rnd”字段,显然是用随机数填充的。我的意思是,我不希望我的IPv4堆栈以随机顺序重新组装我的数据包^^。
你可以帮帮我吗? Thx提前。 (内核3.4.4)答案 0 :(得分:6)
该实现使用哈希来存储IP数据报片段。具有固定哈希函数的哈希表容易拒绝服务hash collision attack。因此,他们为每个哈希函数添加一个随机种子,以防止攻击。
请参阅http://www.iss.net/security_center/reference/vuln/linux-kernel-packets-dos.htm:
Linux内核容易受到拒绝服务的影响,这是由于TCP / IP片段重组的处理不当造成的。远程攻击者可能会发送会导致大量哈希表冲突的特制数据包,这会占用所有可用的CPU资源。