因此,对于我正在编写的一个与安全相关的应用程序,我实际上希望使用RFC3514 (“Evil Bit")来确定在每个数据包级别上网络上的哪组流量是恶意的或不是恶意的。这被用作辅助机器学习引擎的训练数据,因此应用程序必须事先知道哪些数据包是邪恶的,哪些不是。
这应该是相当简单的,它只是设置了一个IP层位。我尝试过使用iptables或libpcap来实现这一点,但要么它们没有这个功能,要么我没能发现它。
能够为机器输出的所有流量设置它是很好的,但对输出的内容进行过滤会更好。(比如能够指定要设置的更高层协议,等等)
我也在使用Ubuntu。所以首选Linux解决方案。但除此之外,使用什么方法来实现这一点并不重要。Bash脚本、c/c++应用程序、设置一些sysctl等等。
发布于 2010-11-02 01:40:26
显然,这实际上是为FreeBSD实现的--也许你可以看看他们的代码?
http://www.cs.columbia.edu/~smb/3514.html
发布于 2013-02-12 08:49:57
您有两个选择:
一种是使用https://code.google.com/p/evilbitchanger/,这是一个基于替罪羊的脚本,可以为你做恶魔位的设置。
另一种是使用原始的替身脚本来手工制作带有Evil bit的数据包。正如文档所述,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 |>希望这能有所帮助。
https://stackoverflow.com/questions/4071426
复制相似问题