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下载:

^{pr2}$

这将下载、构建和安装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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带有服务类安卓的java altbeacon   java在OpenXava免费版本中可以创建多个用户吗?   java如何决定定义变量“private”?   java为什么GetMethodID()对不存在的方法不返回NULL?   java Get JComboBox项字符串表示法   java如何在ifs之间设置限制?   java Android错误:IllegalStateException   JavaSpring4MVC语言环境已更改,但JSP对此没有响应   java Netbeans:如何构建。jar文件随附外部文件。jar库?   Spring Petclinic项目Maven编译时出现java错误   声明Java数组增量元素的快速方法   java无法使用相对xpath找到元素   javascript无法更改标题,也无法在操作栏上显示图标   java标签不是一个接一个地动态创建的   java如何使用ThymeLeaf将对象的属性绑定到隐藏字段?   java从EJB无状态会话bean调用CDI会话范围的生产者方法   java为什么num+=array[i]与for循环中的num=num+array[i]的工作方式不同   使用jsonsimple实现jQuery UI自动完成的java JSON格式   JavaFaceletsUI:重复标记中断JSF表单验证