Как установить Evil Bit на исходящий трафик - PullRequest
16 голосов
/ 01 ноября 2010

Так что для приложения, связанного с безопасностью, которое я пишу, я на самом деле хочу использовать RFC3514 («Злой бит»), чтобы определить, какой набор трафика в сети является вредоносным или нет на уровне пакета.Это используется в качестве обучающих данных для вспомогательного механизма машинного обучения, поэтому приложение должно заранее знать, какие пакеты являются злыми, а какие - нет.

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

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

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

Ответы [ 2 ]

7 голосов
/ 01 ноября 2010

Видимо, это было на самом деле реализовано для FreeBSD - может быть, вы могли бы взглянуть на их код?

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

5 голосов
/ 12 февраля 2013

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

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

Другой способ - использовать необработанные скриптовые сценарии для создания пакетов с битом Evil.Как задокументировано, 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 |>

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

...