CN114091602A - 一种基于机器学习的ssr流量识别系统及方法 - Google Patents
一种基于机器学习的ssr流量识别系统及方法 Download PDFInfo
- Publication number
- CN114091602A CN114091602A CN202111370935.5A CN202111370935A CN114091602A CN 114091602 A CN114091602 A CN 114091602A CN 202111370935 A CN202111370935 A CN 202111370935A CN 114091602 A CN114091602 A CN 114091602A
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- identification
- packet
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000010801 machine learning Methods 0.000 title claims abstract description 23
- 238000004458 analytical method Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 21
- 239000000284 extract Substances 0.000 claims abstract description 10
- 238000001914 filtration Methods 0.000 claims description 16
- 238000007405 data analysis Methods 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 7
- 238000007637 random forest analysis Methods 0.000 claims description 6
- 239000013598 vector Substances 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 5
- 230000000007 visual effect Effects 0.000 claims description 5
- 238000013481 data capture Methods 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000005206 flow analysis Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000006399 behavior Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明一种基于机器学习的SSR流量识别系统及方法,主要解决现有技术面对复杂多变的实际网络环境无法有效识别SSR流量的问题。系统包括:数据包捕获模块、处理模块、分析模块、识别模块,识别信息存储模块,识别结果分析模块和web界面。方法的步骤为:数据包捕获模块获取网络数据流量,数据包处理模块从该流量中提取数据包的基础信息,数据包分析模块根据信息对数据包进行预处理,再由数据包识别模块进行识别,将结果存入识别信息存储模块,识别结果分析模块对结果进行实时分析,并将分析结果通过web界面展示。本发明不仅保证了较高的SSR识别准确率,且通过优化系统中的运算过程,使其可以在较大规模网关下做到实时采集与识别。
Description
技术领域
本发明属于信息安全技术领域,进一步涉及流量识别,具体为一种基于机器学习的SSR流量识别系统及方法。可用于公安或企业网络安全部门对于SSR流量的检测和审查。
背景技术
基于虚拟专用服务器的匿名代理系统在保护用户隐私和数据安全的同时也为违法犯罪活动提供了便利。作为一种典型且被广泛使用的匿名代理系统SSR(ShadowsocksR),该代理系统所产生的流量称为SSR流量、所涉及的网络协议称为SSR协议。SSR系统具有方便部署、通信质量良好、匿名性强、安全性高、不易被监测等特点,常被用来穿透防火墙,绕过监管和审查,这给犯罪分子从事非法网络活动提供了便利。为了有效地对网络犯罪活动进行监管、溯源以及取证等,需要有效的针对SSR的流量识别方法。
由于SSR协议所具有的特殊机制,包括双重加密机制、透明数据传输机制和隐形密钥协商机制,现有的普通加密流量识别方法和基于IPSec协议的虚拟专用网络VPN(VirtualPrivate Network)流量识别方法不能有效地识别SSR及其代理的App流量。此外,现有的SSR流量识别方法也存在算法复杂度高导致的效率地下问题以及跨设备识别准确率下降的问题,难以直接应用于现实中的SSR流量监测系统。
传统的基于IPSec协议的VPN由于其具有密钥协商等过程,VPN的流量也就不可避免地具有一定的特点,随着基于机器学习的加密流量识别技术的不断发展,这类具有明显流量指纹的VPN越来越难以使用。随着匿名代理技术的不断发展,由于隐匿性更强的特点,SSR这类匿名代理越来越被广泛使用。目前针对SSR流量的识别研究并不多见。2017年,Deng等人也采用随机森林算法来实现SSR流量的识别,他们提取了3000个特征,构成一个3000维向量,对1GB的SSR流量和10GB的普通流量进行了训练和二分类识别,结果随训练集和测试集的规模的增加而提高,准确率最高为92%;不过他们在特征提取方面描述比较模糊,只给出了部分特征列表(9个)。结果评价标准只有准确率,不能准确反映各项指标,且跨设备识别效果未知。2019年,Zeng等人提出了一种SS(ShadowSocks)流量的识别方法,SS是SSR匿名系统的前身,SSR在其基础上增加了流量混淆特性,识别难度大大增加;该方法分析了SS代理系统的运行机制,从而发现SS流量与普通流量在流上下文、流的主机行为和DNS上的主机行为存在差异,从而在这些方面提取特征,然后采用随机森林算法进行了模型训练,最终结果显示其识别准确率达到了93.43%。然而该方法通过采用滑动窗口提取一段时间内所有流量的特征,这种方法复杂度较高;另一方面,所提取的域名解析DNS特征是基于SS在某个版本存在DNS泄漏,但是当前常用的SSR软件版本并不存在这一漏洞,因此该特征普遍面临失效,无法有效识别SSR流量。
发明内容
本发明目的在于针对上述现有技术的不足,提出一种基于机器学习的SSR流量识别系统及方法,用于解决现有协议识别无法适应实际网络环境中不断变化且不可预测的网络流量问题。首先,通过捕获流经网关网卡的流量获得流量全部数据包信息,将数据包整合过滤得到纯净数据流信息,然后提取数据流统计特征,利用机器学习对于数据流特征向量进行判断,导出识别结果;本发明能够在较大规模网关下对SSR流量做到实时采集与识别,提高了网安部门对于网络流量的监管能力。
本发明实现上述目的具体方案如下:
本发明系统包括:数据采集识别单元、识别信息存储模块和数据分析展示单元;其中,数据采集识别单元由依次单向连接的数据包捕获模块、数据包处理模块、数据包分析模块以及数据包识别模块组成,数据分析展示单元由识别结果分析模块和web界面构成;识别信息存储模块分别连接数据采集识别单元与数据分析展示单元;
所述数据包捕获模块,用于获取网络数据流量;
所述数据包处理模块,用于从数据包捕获模块获取的网络数据流量中提取数据包的基础信息;
所述数据包分析模块,用于根据数据包处理模块得到的基础信息对数据包进行预处理,得到预处理后流量信息;
所述数据包识别模块,用于对数据包分析模块得到的预处理后流量信息进行识别,得到识别结果;
所述识别信息存储模块,用于对数据采集识别单元中数据包识别模块得到的识别结果进行存储,并供数据分析展示单元中的识别结果分析模块调用;
所述识别结果分析模块,用于对识别信息存储模块中存储的信息进行实时分析,并将分析结果展示在web界面上供分析人员查询。
进一步,上述数据包的基础信息至少包括载荷特征、长度和时间。
进一步,上述数据包分析模块根据数据包处理模块得到的基础信息对数据包进行预处理,具体是进行流量分组、过滤操作;过滤包括:滤掉除TCP协议外的其它所有协议的数据包,滤掉网络连接异常导致重传的数据包。
进一步,上述数据包识别模块,对数据包分析模块得到的预处理后流量信息进行识别,具体是对预处理后流量信息中的分组数据流提取特征,然后利用机器学习完成识别。
本发明方法的步骤包括:
(1)根据设备网卡流量到达情况对数据流量进行捕获:
(1.1)对网关流量规模进行预估,根据评估结果设置单次捕获数量级与初始排队时间,保证单轮捕获数据时间在30-45秒范围内;
(1.2)设计实时系统冗余机制,即设定动态停等时间,该时间根据系统内部内存占用比例、处理器计算任务量、处理捕获文件队列数量经过实时计算得到;
(1.3)按照流水线方式,循环调用数据包捕获模块,获取网络数据流量;
(2)通过数据包处理模块从网络数据流量中提取数据包的基础信息,得到包括荷载特征、长度、时间的数据流量荷载信息;
(3)利用数据流量荷载信息对数据包进行预处理:
(3.1)数据包分析模块根据数据流量的荷载特征对数据包进行过滤,滤掉除TCP协议外的其它所有协议的数据包,仅保留TCP数据包,且滤掉其中因网络连接异常导致重传的数据包,得到数据包集合R:
R={pkg1,pkg2,...,pkgi,...,pkgr},
其中,pkgi表示集合R中的第i个数据包,i=1,2,...,r,r表示过滤后数据包的总数;
(3.2)数据包分析模块按照如下规则对数据包进行分组:
(3.2.1)提取数据包pkgi的源IP地址IPsrc-i、源端口Portsrc-i、目的IP地址IPdst-i、目的端口Portdst-i和传输层协议protoi五类信息,并将其组成数据包pkgi的头部hi:
hi=(IPsrc-i,Portsrc-i,IPdst-i,Portdst-i,protoi),
pkgi={hi,Len(pkgi),stimei};
其中,Len(pkgi)表示数据包pkgi的长度,stimei表示数据包pkgi的到达时间;
(3.2.2)在数据包集合R中,对于与数据包pkgi相同或相反的数据包,将其头部与pkgi构成一个分组数据流;
(3.2.3)取i=1,2,...,r按照步骤(3.2.1)-(3.2.2)得到数据包集合R中每个数据包对应的分组数据流,所有分组数据流共同组成分组后的数据流集合D,即预处理后流量信息:
D={flow1,flow2,...,flowk,...,flowd},
其中,flowk表示第k个分组数据流,k=1,2,...,d,d表示分组数据流的总数目;
(4)数据包识别模块对数据流集合D中的分组数据流提取特征并进行筛选,利用机器学习进行识别:
(4.1)统计分组数据流flowk内所有数据包的数量,记为total(flowk),将所有数据包中与第一个数据包发送方向相同的数据包记为输出包、其余数据包记为输入包;
(4.2)分别计算flowk内所有输入包、所有输出包以及所有数据包长度的统计值:平均值、最小值、最大值、绝对差、绝对中位差、标准差、方差、偏斜、峰度、10%-90%百分位数;
(4.3)将步骤(4.2)得到的统计值组成flowk的统计特征向量PLSk,所有分组数据流对应的统计特征向量共同组成包长度统计特征矩阵PLS;
(4.4)对包长度统计特征矩阵PLS中的特征进行前向搜索组合特征筛选,将特征分为积极特征和消极特征两类,再次进行前向搜索,直到结果最优,获取到优化后包长度统计特征矩阵PLS';
(4.5)将矩阵PLS'输入基于随机森林算法训练的模型进行识别,得到识别结果,并将结果存于识别信息存储模块中;
(5)识别信息存储模块按照识别结果将其分为SSR类结果和所有结果两类,以数据流开始时间为索引,存储到特定数据库mysql中;
(6)识别结果分析模块对数据库mysql中记录信息进行实时分析,并输出分析结果:
(6.1)针对数据库mysql中一段时间内的识别结果,对其进行统计并计算得分score:
其中,Numssr表示识别SSR流量的数量,Numall表示数据流总数,Numdst表示通信目的地址数量;
(6.2)根据得分score对不同设备使用的SSR流量进行排名,同时对不同的置信度进行动态设定,得到单个用户多维度的流量分析结果;
(6.3)将分析结果在web界面上进行展示。
本发明与现有技术相比具有以下优点:
第一、本发明相对于现有技术而言,首次提出了针对于SSR流量的实时识别系统,将识别技术在大规模网关付诸实践;
第二、本发明优化了现有SSR识别方法,通过对特征进行前向搜索和组合搜索进行筛选,提取稳定的机器学习特征,使得识别模型在不同网络环境中有较强的鲁棒性;
第三、由于本发明整体采用流处理的数据处理模式,不断合并新数据以计算结果,使得系统处理数据速度显著提升,减轻了复杂机器学习耗时计算步骤对整体系统运行的影响,从而达到了实时计算的设计目标。
附图说明
图1为本发明系统的整体架构示意图;
图2为本发明方法的实现流程图;
图3为本发明的流量数据采集场景示意图;
图4为本发明方法中流量处理计算模式示意图。
具体实施方式
下面结合附图对本发明做进一步的描述。
实施例一:参照附图1,本发明提出一种基于机器学习的SSR流量识别系统,包括:数据采集识别单元、识别信息存储模块和数据分析展示单元;其中,数据采集识别单元由依次单向连接的数据包捕获模块、数据包处理模块、数据包分析模块以及数据包识别模块组成,数据分析展示单元由识别结果分析模块和web界面构成;识别信息存储模块分别连接数据采集识别单元与数据分析展示单元;
所述数据包捕获模块,用于获取网络数据流量;
所述数据包处理模块,用于从数据包捕获模块获取的网络数据流量中提取数据包的基础信息,该信息至少包括载荷特征、长度和时间。
所述数据包分析模块,用于根据数据包处理模块得到的基础信息对数据包进行预处理,得到预处理后流量信息;具体是进行流量分组、过滤操作;过滤包括:滤掉除TCP协议外的其它所有协议的数据包,滤掉网络连接异常导致重传的数据包。该模块的设施是考虑到ShadowsocksR基本上采用的都是TCP协议,因此过滤掉其它所有协议的数据包,仅保留RawData中的TCP数据包更为合适。此外,TCP重传包等异常包可能会对应用识别的结果产生干扰,因此不能被采用;在网络连接出现异常的时候,TCP协议中的各种控制措施便会启动,并进行一系列数据包重传等行为。这种行为产生的数据包,往往带有较多冗余信息和异常信息,不能用于训练和识别,因此也需要过滤掉这些网络连接异常导致重传的数据包。
所述数据包识别模块,用于对数据包分析模块得到的预处理后流量信息进行识别,得到识别结果;具体是对预处理后流量信息中的分组数据流提取特征,然后利用机器学习完成识别。
所述识别信息存储模块,用于对数据采集识别单元中数据包识别模块得到的识别结果进行存储,并供数据分析展示单元中的识别结果分析模块调用;该模块是根据识别结果的归属类型,以数据流开始时间为索引,将其存储到数据库中。
所述识别结果分析模块,用于对识别信息存储模块中存储的信息进行实时分析,并将分析结果展示在web界面上供分析人员查询。
实施例二:参照附图2,本发明提出一种使用基于机器学习的SSR流量识别系统进行流量识别的方法,具体实现步骤如下:
步骤1.根据设备网卡流量到达情况对数据流量进行捕获:
(1.1)对网关流量规模进行预估,根据评估结果设置单次捕获数量级与初始排队时间,保证单轮捕获数据时间在30-45秒范围内;
(1.2)设计实时系统冗余机制,即设定动态停等时间,该时间根据系统内部内存占用比例、处理器计算任务量、处理捕获文件队列数量经过实时计算得到;
(1.3)按照流水线方式,循环调用数据包捕获模块,获取网络数据流量;
步骤2.通过数据包处理模块从网络数据流量中提取数据包的基础信息,得到包括荷载特征、长度、时间的数据流量荷载信息;
步骤3.利用数据流量荷载信息对数据包进行预处理:
(3.1)数据包分析模块根据数据流量的荷载特征对数据包进行过滤,滤掉除TCP协议外的其它所有协议的数据包,仅保留TCP数据包,且滤掉其中因网络连接异常导致重传的数据包,得到数据包集合R:
R={pkg1,pkg2,...,pkgi,...,pkgr},
其中,pkgi表示集合R中的第i个数据包,i=1,2,...,r,r表示过滤后数据包的总数;
(3.2)数据包分析模块按照如下规则对数据包进行分组:
(3.2.1)提取数据包pkgi的源IP地址IPsrc-i、源端口Portsrc-i、目的IP地址IPdst-i、目的端口Portdst-i和传输层协议protoi五类信息,并将其组成数据包pkgi的头部hi,即数据包五元组:
hi=(IPsrc-i,Portsrc-i,IPdst-i,Portdst-i,protoi),
pkgi={hi,Len(pkgi),stimei};
其中,Len(pkgi)表示数据包pkgi的长度,stimei表示数据包pkgi的到达时间;
(3.2.2)在数据包集合R中,对于与数据包pkgi相同或相反的数据包,将其头部与pkgi构成一个分组数据流;
(3.2.3)取i=1,2,...,r按照步骤(3.2.1)-(3.2.2)得到数据包集合R中每个数据包对应的分组数据流,所有分组数据流共同组成分组后的数据流集合D,即预处理后流量信息:
D={flow1,flow2,...,flowk,...,flowd},
其中,flowk表示第k个分组数据流,k=1,2,...,d,d表示分组数据流的总数目;
步骤4.数据包识别模块对数据流集合D中的分组数据流提取特征并进行筛选,利用机器学习进行识别:
(4.1)统计分组数据流flowk内所有数据包的数量,记为total(flowk),将所有数据包中与第一个数据包发送方向相同的数据包记为输出包、其余数据包记为输入包;
(4.2)分别计算flowk内所有输入包、所有输出包以及所有数据包长度的统计值:平均值、最小值、最大值、绝对差、绝对中位差、标准差、方差、偏斜、峰度、10%-90%百分位数。本实施例中对上述三种类型的数据包分别统计上述19种统计值,得到共计57维数的包长度统计特征。这里需要统计的10%-90%百分位数,可按照如下方式计算得到:
(4.2.1)令per%表示10%-90%的任意百分位数;
(4.2.2)将分组数据流flowk内total(flowk)个数据包长度按照从小到大的顺序进行排列,得到排序后数据包长度;
(4.2.3)从排序后数据包长度选取第λ个数据包长度,依照下式计算per%:
(4.3)将步骤(4.2)得到的统计值组成flowk的统计特征向量PLSk,所有分组数据流对应的统计特征向量共同组成包长度统计特征矩阵PLS。所得的数据包的长度统计特征能够从流量的平均大小、数据包长短的差异大小等角度体现出SSR流量与非SSR流量的区别性特点,从而能够使得后面利用机器学习算法建立的分类模型更准确地识别流量类型。
(4.4)对包长度统计特征矩阵PLS中的特征进行前向搜索组合特征筛选,将特征分为积极特征positive和消极特征negative两类,再次进行前向搜索,直到结果最优,获取到优化后包长度统计特征矩阵PLS';
(4.5)将矩阵PLS'输入基于随机森林算法训练的模型进行识别,得到识别结果,并将结果存于识别信息存储模块中;
步骤5.识别信息存储模块按照识别结果将其分为SSR类结果和所有结果两类,以数据流开始时间为索引,存储到特定数据库mysql中;
步骤6.识别结果分析模块对数据库mysql中记录信息进行实时分析,并输出分析结果:
(6.1)针对数据库mysql中一段时间内的识别结果,对其进行统计并计算得分score:
其中,Numssr表示识别SSR流量的数量,Numall表示数据流总数,Numdst表示通信目的地址数量;
根据上面公式可以看出,得分score与识别结果存在如下关系:
a.识别结果中设备使用SSR数据流的数量占设备总体数据流数的比例与得分成正比;
b.识别结果中设备使用SSR数据流的数量与得分成正比;
c.识别结果中设备通信目的地址为国外IP的数量与得分成反比。
(6.2)根据得分score对不同设备使用的SSR流量进行排名,同时对不同的置信度进行动态设定,得到单个用户多维度的流量分析结果;这里对不同设备使用的SSR流量进行排名具体是按照得分从高到低进行排名,其中得分高越高表示设备使用SSR流量的几率越大。对不同的置信度,采用动态设定可得到单个用户多维度的流量识别结果,在一定程度上可以辅助确定用户行为。
(6.3)将分析结果在web界面上进行展示,本实施例这一步对于识别为SSR流量的结果,通过基于JavaScript的可视化图表库Echarts动态加载,实时更新数据到前端网页,使监控达到可视化级别。
实施例三:参照附图3和图4,为进一步描述本发明方法,本实施例基于实施例二的方法步骤,首先通过对系统所在服务器中网卡的数据捕获,得到数据流量pcap文件,解析其中信息(IP、端口、数据包时间戳、数据包大小),然后按照数据包五元组对其进行分流,利用机器学习对数据流所属信息进行统计、识别,最后将识别结果存入数据库。具体实现方式如下:
步骤A.参照附图3,用户通过移动设备连接无线接入点AP(Access Point),使用SSR代理进行数据传输。数据经由网关传入,经过AP发送至智能设备端,所产生的数据也将由AP发送至网关,再发送至目标服务器。其中,在网关处部署了一个服务器,可以对校园网关的全部流量进行镜像复制,所以在镜像网关中便可以对全部流量进行捕获,即本系统所部署位置。
步骤B.通过shell程序指定服务器中流量来源网卡,程序启动之后会实时捕获网卡数据,根据网卡流量规模与系统内存大小来估算单次捕获流量的时长(通常默认设定为30秒),当单次数据捕获完成,数据被保存为pcap文件驻留在内存中(此时还没有同步刷新到硬盘上),程序启动异步识别模块组对数据文件进行识别,当异步任务提交完成,即可继续数据捕获,如图3所示,通过异步调用方式达到实时系统的设计目标。
步骤C.shell程序对提交的异步任务与尚未处理完毕的pcap数据文件进行监视与管理,当预估时间与占用内存超过预期设定范围(即有可能影响实时捕获数据的完整度),程序便通过一定策略来调整(延时开启下一阶段数据捕获、强制停止预估剩余时间最长的异步任务),来保证程序在合理状态中运行。
步骤D.数据包分析模块对内存中的数据包进行提取,拆解其中的IP、端口、数据包时间戳、数据包大小和部分载荷信息,拆解完后即可将数据包占用的内存释放掉以供数据捕获模块使用。
步骤E.数据包分析模块对数据进行分流,将数据包的IP信息按照字典序排列,计算五元组的md5对数据流信息进行标识,然后汇总数据流信息(正向、反向、双向)。
步骤F.计算数据流特征序列,按照识别模型特征组的算法与顺序,对每条数据进行计算,其中包括时间统计特征、时间分布特征、长度统计特征、长度分布特征、流量行为特征等,再输入到随机森林模型中进行识别。
步骤G.将识别结果存入数据库,按照识别日期进行分库分表存储,通过时间滑动窗口维护数据时间范围。
步骤H.从数据库中读取数据,统计SSR流量实时数量、设备分数计算、设备详情查询、置信度计算等,在网页中输出可视化图表。
本发明给出了一种基于机器学习的SSR流量识别方法及一个在真实网络环境中能够运用上述方法进行识别的系统,通过对网卡的数据捕获得到所对应网络中的全部网络数据,解析其中的数据信息,然后按照数据包五元组对其进行分流,对每条数据进行计算,其中包括时间统计特征、时间分布特征、长度统计特征、长度分布特征、流量行为特征等,再利用机器学习对数据流所属信息进行统计,识别出其中的SSR流量,并与用户信息进行关联。不仅保证了较高的SSR识别准确率,并且通过优化系统中的运算过程,使其可以在较大规模网关下做到实时采集与识别,有效提升了网络安全部门对于网络流量的监管能力。
本发明未详细说明部分属于本领域技术人员公知常识。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
Claims (9)
1.一种基于机器学习的SSR流量识别系统,其特征在于,包括:数据采集识别单元、识别信息存储模块和数据分析展示单元;其中,数据采集识别单元由依次单向连接的数据包捕获模块、数据包处理模块、数据包分析模块以及数据包识别模块组成,数据分析展示单元由识别结果分析模块和web界面构成;识别信息存储模块分别连接数据采集识别单元与数据分析展示单元;
所述数据包捕获模块,用于获取网络数据流量;
所述数据包处理模块,用于从数据包捕获模块获取的网络数据流量中提取数据包的基础信息;
所述数据包分析模块,用于根据数据包处理模块得到的基础信息对数据包进行预处理,得到预处理后流量信息;
所述数据包识别模块,用于对数据包分析模块得到的预处理后流量信息进行识别,得到识别结果;
所述识别信息存储模块,用于对数据采集识别单元中数据包识别模块得到的识别结果进行存储,并供数据分析展示单元中的识别结果分析模块调用;
所述识别结果分析模块,用于对识别信息存储模块中存储的信息进行实时分析,并将分析结果展示在web界面上供分析人员查询。
2.根据权利要求1所述的系统,其特征在于:所述数据包的基础信息至少包括载荷特征、长度和时间。
3.根据权利要求1所述的系统,其特征在于:所述数据包分析模块根据数据包处理模块得到的基础信息对数据包进行预处理,具体是进行流量分组、过滤操作;过滤包括:滤掉除TCP协议外的其它所有协议的数据包,滤掉网络连接异常导致重传的数据包。
4.根据权利要求1所述的系统,其特征在于:所述数据包识别模块,对数据包分析模块得到的预处理后流量信息进行识别,具体是对预处理后流量信息中的分组数据流提取特征,然后利用机器学习完成识别。
5.根据权利要求1所述的系统,其特征在于:所述识别信息存储模块,对数据采集识别单元中数据包识别模块得到的识别结果进行存储,是根据识别结果的归属类型,以数据流开始时间为索引,将其存储到数据库中。
6.一种使用基于机器学习的SSR流量识别系统进行流量识别的方法,其特征在于,包括如下步骤:
(1)根据设备网卡流量到达情况对数据流量进行捕获:
(1.1)对网关流量规模进行预估,根据评估结果设置单次捕获数量级与初始排队时间,保证单轮捕获数据时间在30-45秒范围内;
(1.2)设计实时系统冗余机制,即设定动态停等时间,该时间根据系统内部内存占用比例、处理器计算任务量、处理捕获文件队列数量经过实时计算得到;
(1.3)按照流水线方式,循环调用数据包捕获模块,获取网络数据流量;
(2)通过数据包处理模块从网络数据流量中提取数据包的基础信息,得到包括荷载特征、长度、时间的数据流量荷载信息;
(3)利用数据流量荷载信息对数据包进行预处理:
(3.1)数据包分析模块根据数据流量的荷载特征对数据包进行过滤,滤掉除TCP协议外的其它所有协议的数据包,仅保留TCP数据包,且滤掉其中因网络连接异常导致重传的数据包,得到数据包集合R:
R={pkg1,pkg2,...,pkgi,...,pkgr},
其中,pkgi表示集合R中的第i个数据包,i=1,2,...,r,r表示过滤后数据包的总数;
(3.2)数据包分析模块按照如下规则对数据包进行分组:
(3.2.1)提取数据包pkgi的源IP地址IPsrc-i、源端口Portsrc-i、目的IP地址IPdst-i、目的端口Portdst-i和传输层协议protoi五类信息,并将其组成数据包pkgi的头部hi:
hi=(IPsrc-i,Portsrc-i,IPdst-i,Portdst-i,protoi),
pkgi={hi,Len(pkgi),stimei};
其中,Len(pkgi)表示数据包pkgi的长度,stimei表示数据包pkgi的到达时间;
(3.2.2)在数据包集合R中,对于与数据包pkgi相同或相反的数据包,将其头部与pkgi构成一个分组数据流;
(3.2.3)取i=1,2,...,r按照步骤(3.2.1)-(3.2.2)得到数据包集合R中每个数据包对应的分组数据流,所有分组数据流共同组成分组后的数据流集合D,即预处理后流量信息:
D={flow1,flow2,...,flowk,...,flowd},
其中,flowk表示第k个分组数据流,k=1,2,...,d,d表示分组数据流的总数目;
(4)数据包识别模块对数据流集合D中的分组数据流提取特征并进行筛选,利用机器学习进行识别:
(4.1)统计分组数据流flowk内所有数据包的数量,记为total(flowk),将所有数据包中与第一个数据包发送方向相同的数据包记为输出包、其余数据包记为输入包;
(4.2)分别计算flowk内所有输入包、所有输出包以及所有数据包长度的统计值:平均值、最小值、最大值、绝对差、绝对中位差、标准差、方差、偏斜、峰度、10%-90%百分位数;
(4.3)将步骤(4.2)得到的统计值组成flowk的统计特征向量PLSk,所有分组数据流对应的统计特征向量共同组成包长度统计特征矩阵PLS;
(4.4)对包长度统计特征矩阵PLS中的特征进行前向搜索组合特征筛选,将特征分为积极特征和消极特征两类,再次进行前向搜索,直到结果最优,获取到优化后包长度统计特征矩阵PLS';
(4.5)将矩阵PLS'输入基于随机森林算法训练的模型进行识别,得到识别结果,并将结果存于识别信息存储模块中;
(5)识别信息存储模块按照识别结果将其分为SSR类结果和所有结果两类,以数据流开始时间为索引,存储到特定数据库mysql中;
(6)识别结果分析模块对数据库mysql中记录信息进行实时分析,并输出分析结果:
(6.1)针对数据库mysql中一段时间内的识别结果,对其进行统计并计算得分score:
其中,Numssr表示识别SSR流量的数量,Numall表示数据流总数,Numdst表示通信目的地址数量;
(6.2)根据得分score对不同设备使用的SSR流量进行排名,同时对不同的置信度进行动态设定,得到单个用户多维度的流量分析结果;
(6.3)将分析结果在web界面上进行展示。
8.根据权利要求6所述的方法,其特征在于:步骤(6.2)中根据得分score对不同设备使用的SSR流量进行排名,具体是按照得分从高到低进行排名,其中得分高越高表示设备使用SSR流量的几率越大。
9.根据权利要求6所述的方法,其特征在于:步骤(6.3)中将分析结果在web界面上进行展示,对于识别为SSR流量的结果,通过基于JavaScript的可视化图表库Echarts动态加载,实时更新数据到前端网页,使监控达到可视化级别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111370935.5A CN114091602A (zh) | 2021-11-18 | 2021-11-18 | 一种基于机器学习的ssr流量识别系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111370935.5A CN114091602A (zh) | 2021-11-18 | 2021-11-18 | 一种基于机器学习的ssr流量识别系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114091602A true CN114091602A (zh) | 2022-02-25 |
Family
ID=80301869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111370935.5A Pending CN114091602A (zh) | 2021-11-18 | 2021-11-18 | 一种基于机器学习的ssr流量识别系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114091602A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114884715A (zh) * | 2022-04-27 | 2022-08-09 | 深信服科技股份有限公司 | 一种流量检测方法、检测模型训练方法、装置及相关设备 |
CN115297033A (zh) * | 2022-07-20 | 2022-11-04 | 上海量讯物联技术有限公司 | 一种物联网终端流量审计方法及系统 |
CN115412465A (zh) * | 2022-07-11 | 2022-11-29 | 中国人民解放军国防科技大学 | 基于客户端生成分布式真实网络流量数据集的方法及系统 |
-
2021
- 2021-11-18 CN CN202111370935.5A patent/CN114091602A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114884715A (zh) * | 2022-04-27 | 2022-08-09 | 深信服科技股份有限公司 | 一种流量检测方法、检测模型训练方法、装置及相关设备 |
CN115412465A (zh) * | 2022-07-11 | 2022-11-29 | 中国人民解放军国防科技大学 | 基于客户端生成分布式真实网络流量数据集的方法及系统 |
CN115412465B (zh) * | 2022-07-11 | 2023-06-20 | 中国人民解放军国防科技大学 | 基于客户端生成分布式真实网络流量数据集的方法及系统 |
CN115297033A (zh) * | 2022-07-20 | 2022-11-04 | 上海量讯物联技术有限公司 | 一种物联网终端流量审计方法及系统 |
CN115297033B (zh) * | 2022-07-20 | 2023-08-11 | 上海量讯物联技术有限公司 | 一种物联网终端流量审计方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021082339A1 (zh) | 将机器学习和规则匹配相融合的安全检测方法和设备 | |
CN114091602A (zh) | 一种基于机器学习的ssr流量识别系统及方法 | |
CN112085039B (zh) | 一种基于随机森林的icmp隐蔽通道检测方法 | |
US11057403B2 (en) | Suspicious packet detection device and suspicious packet detection method thereof | |
US11223648B2 (en) | Systems and methods for automatically selecting an access control entity to mitigate attack traffic | |
CN106372606A (zh) | 目标对象信息生成方法和单元、识别方法和单元及系统 | |
CN106464577A (zh) | 网络系统、控制装置、通信装置、通信控制方法以及通信控制程序 | |
CN107360118B (zh) | 一种高级持续威胁攻击防护方法及装置 | |
CN107220633A (zh) | 一种智能移动执法系统及方法 | |
JP2006279930A (ja) | 不正アクセス検出方法及び装置、並びに不正アクセス遮断方法及び装置 | |
CN110034966B (zh) | 一种基于机器学习的数据流分类方法及系统 | |
CN113743542B (zh) | 一种基于加密流量的网络资产识别方法与系统 | |
CN115865534B (zh) | 一种基于恶意加密流量检测方法、系统、装置及介质 | |
CN114239737A (zh) | 一种基于时空特征与双层注意力的加密恶意流量检测方法 | |
CN116232696A (zh) | 基于深度神经网络的加密流量分类方法 | |
CN118316731B (zh) | 一种基于加密流量识别的智能网络安全隔离系统 | |
Hu et al. | Network data analysis and anomaly detection using CNN technique for industrial control systems security | |
CN110336806B (zh) | 一种结合会话行为和通信关系的隐蔽通信检测方法 | |
CN118233199A (zh) | 一种数据包识别方法、装置、设备及存储介质 | |
CN110858837B (zh) | 一种网络管控方法、装置以及电子设备 | |
US9398040B2 (en) | Intrusion detection system false positive detection apparatus and method | |
CN112104628A (zh) | 一种自适应特征规则匹配的实时恶意流量检测方法 | |
Liu et al. | Automated behavior identification of home security camera traffic | |
CN116401479A (zh) | 一种基于加密流量双向突发序列的网站内容行为识别方法和系统 | |
Olimpio et al. | Intrusion detection over network packets using data stream classification algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |