Ответ 1
По-видимому, это было фактически реализовано для FreeBSD - возможно, вы могли бы посмотреть на свой код?
Итак, для приложения, связанного с безопасностью, которое я пишу, я действительно хочу использовать RFC3514 ( "The Evil Bit" ), чтобы определить, какой набор трафика по сети является злым или нет на уровне пакета. Это используется в качестве учебных данных для механизма машинного обучения с поддержкой, поэтому приложение должно знать перед собой, какие пакеты являются злыми, а какие нет.
Это должно быть довольно простым, просто устанавливая бит одного уровня IP. Я попытался изучить это с помощью iptables или libpcap, но либо они не имеют функциональности, либо я не смог ее обнаружить.
Возможность установить его для всего трафика из машины будет хорошо, но фильтры на то, что выйдет, будут лучше. (Как возможность указать, какие протоколы более высокого уровня устанавливаются и т.д.)
Я тоже использую Ubuntu. Поэтому Linux-решения предпочтительнее. Но в остальном не имеет значения, какой метод используется для этого. Bash script, приложение c/С++, установив некоторый sysctl, что угодно.
По-видимому, это было фактически реализовано для FreeBSD - возможно, вы могли бы посмотреть на свой код?
У вас есть два варианта:
Один из них заключается в том, чтобы использовать 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 |>
Надеюсь, что это поможет.