Как установить бит зла ​​на исходящий трафик

Итак, для приложения, связанного с безопасностью, которое я пишу, я действительно хочу использовать RFC3514 ( "The Evil Bit" ), чтобы определить, какой набор трафика по сети является злым или нет на уровне пакета. Это используется в качестве учебных данных для механизма машинного обучения с поддержкой, поэтому приложение должно знать перед собой, какие пакеты являются злыми, а какие нет.

Это должно быть довольно простым, просто устанавливая бит одного уровня IP. Я попытался изучить это с помощью iptables или libpcap, но либо они не имеют функциональности, либо я не смог ее обнаружить.

Возможность установить его для всего трафика из машины будет хорошо, но фильтры на то, что выйдет, будут лучше. (Как возможность указать, какие протоколы более высокого уровня устанавливаются и т.д.)

Я тоже использую Ubuntu. Поэтому Linux-решения предпочтительнее. Но в остальном не имеет значения, какой метод используется для этого. Bash script, приложение c/С++, установив некоторый sysctl, что угодно.

Ответы

Ответ 1

По-видимому, это было фактически реализовано для FreeBSD - возможно, вы могли бы посмотреть на свой код?

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

Ответ 2

У вас есть два варианта:

Один из них заключается в том, чтобы использовать https://code.google.com/p/evilbitchanger/, основанную на scapy script, которая устанавливает для вас настройку Evil Bit.

Другой - использовать raw scapy scripting для обработки пакетов с помощью Evil bit. Как описано в документе, Scapy может легко установить флаг Evil Bit.

>>> 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 |>

Надеюсь, что это поможет.