nPrint全自动流量分析
nprintml的Python项目详细描述
nprintML公司
nprintML弥补了nPrint(为数据包生成标准指纹)和AutoML(允许优化模型训练和流量分析)之间的差距。nprintML允许具有网络流量和标签的用户执行优化的包级流量分析,而无需编写任何代码。在
明白了吗
依赖性
支持python3.6到3.8版本。在
您可以检查系统上安装了哪些版本的Python,例如:
ls -1 /usr/bin/python*
根据需要,请咨询包管理器或python.org。在
根据您的情况,考虑使用pyenv来轻松安装和管理任意版本的Python。在
nprintML还需要nPrint(见下文)。在
安装
nprintML本身可以从Python Package Index (PyPI)和pip
下载:
这将下载、构建和安装nprintml
控制台命令。如果您愿意管理Python(虚拟)环境,那么您就已经具备了上述条件。在
也就是说,强烈建议通过pipx这样的工具安装这个命令。pipx将确保nprintML安装到它自己的虚拟环境中,这样它的第三方库不会与系统上安装的任何其他库冲突。在
(请注意,nPrint和nprintML与名为“nPrint”的PyPI发行版无关)
安装后
nprintML依赖于nPrint命令,该命令可以单独安装(参考nPrint documentation)。在
为了快速方便地满足这一要求,nprintML提供了引导命令nprint-install
,在安装了nprintML的环境中可以使用该命令。此命令将检查其执行环境,并尝试使用最合适的默认值检索、编译和安装nPrint:
nprint-install
因此,nPrint可以全局安装到用户环境、nprintML安装到的(虚拟)环境或指定的路径前缀。有关详细信息,请参阅命令的--help
。在
nprint-install
通过其Python模块同样可用(与上面的pip
没有区别):
python -m nprintml.net.install
使用它
nprintML提供顶级shell命令nprintml
–
nprintml ...
–以及它的简短别名nml
nml ...
如果命令路径不明确并支持调试,nprintml
命令也可通过其Python模块使用:
python -m nprintml ...
nPrintML流量分析管道是可定制的。流量摄取利用nPrint,因此支持其输入。此外,除了一个PCAP文件外,nprintML还可以摄取多个PCAP文件和文件的递归目录,如in the wiki所述。在
一个简单的例子包括给定单个PCAP和IP地址标签的每包机器学习:
nprintml --ipv4 --pcap-file test.pcap --label-file labels.txt --aggregator index
上面指示nprintML执行一个流量分析管道,将文件test.pcap
中的每个包作为一个示例,并按照labels.txt
中的指定,将标签附加到每个源IP地址(nPrint的默认索引)。在
标签文件的格式如下:
Item,Label # (optional header line)
IP1,label1
IP2,label2
IP3,label3
...
通过这个标记方案,我们可以用nPrintML为端口、ip地址和整个流附加标签。有关详细信息和高级用法,请参见the wiki。在
使用nPrintML的另一个例子是运行机器学习管道,其中每个PCAP都被认为包含一个样本。下面的命令(这一次使用简洁的别名)将使用目录pcaps/
中的每个PCAP文件和带有IPv4 nprint的labels.txt
中的标签创建一个机器学习管道:
nml -4 --pcap-dir pcaps/ -L labels.txt -a pcap
上述标签文件的格式与单PCAP用法相同,只是Item
列更改为指定文件名,而不是IP地址:
item,label # (optional header line)
path/name1.pcap,label1
path/name2.pcap,label2
path/name3.pcap,label3
...
注意,上面例子中的path/
是the相对于--pcap-dir
指定的目录的路径,即相对于目录pcaps/
的路径。在
发展
开发需求可以通过dev
额外安装(下面假设源代码签出):
pip install --editable .[dev]
(注意:上面还使用安装标志--editable
来指示pip
将源签出目录本身放到Python路径上,以确保对源的任何更改都反映在Python导入中。)
然后通过manage …
的argcmdr子命令管理开发任务(如存储库模块manage.py
)的例如:
manage version patch -m "initial release of nprintml" \
--build \
--release
- 项目
标签: