如何在传出流量上设置Evil Bit

时间:2010-11-01 17:32:41

标签: linux security networking ip

因此,对于我正在编写的与安全相关的应用程序,我实际上想要使用RFC3514(“邪恶位”)来确定网络中的每组流量是否是邪恶的。这被用作辅助机器学习引擎的训练数据,因此应用程序必须事先知道哪些数据包是邪恶的,哪些不是。

这应该相当简单,它只是设置一个IP层位。我试过用iptables或libpcap来做这件事,但要么他们没有功能,要么我没有发现它。

能够为机器外的所有流量设置它会很好,但过滤出来的内容会更好。 (比如能够指定更高层协议设置的内容等等)

我也在使用Ubuntu。所以Linux解决方案更受欢但除此之外,使用什么方法来实现这一点并不重要。 Bash脚本,c / c ++ app,设置一些sysctl,无论如何。

2 个答案:

答案 0 :(得分:7)

显然这实际上是为FreeBSD实现的 - 也许你可以查看他们的代码?

http://www.cs.columbia.edu/~smb/3514.html

答案 1 :(得分:5)

您有两种选择:

一种是使用https://code.google.com/p/evilbitchanger/,这是一个基于scapy的脚本,可以帮助您完成Evil Bit设置。

另一种是使用原始scapy脚本来使用Evil位来制作数据包。据记载,Scapy能够设置Evil Bit flag quite easily

>>> t=TCP()
>>> t.flags="SA"
>>> t.flags 
18
>>> t
<TCP flags=SA |>
>>> t.flags=23
>>> t
<TCP flags=FSRA |>
>>> i=IP(flags="DF+MF")
>>> i.flags
3
>>> i
<IP flags=MF+DF |>
>>> i.flags=6
>>> i
<IP flags=DF+evil |>

希望这有帮助。