1.一种用于识别网络攻击行为的方法,包括:
获取第一数据流,所述第一数据流为在预设时长范围内基于网络控制报文协议icmp传输的数据流,其中,所述第一数据流包括在相同源端和目的端之间传输的m个数据包,其中m为大于等于1的整数;
提取所述第一数据流对应的第一特征向量,其中,所述第一特征向量至少包括所述m个数据包中每个数据包的数据字段中的字符的分布特征;
将所述第一特征向量输入到分类器以获取所述分类器的输出,所述分类器为用于预测基于icmp传输的数据流是否存在网络攻击行为的机器学习模型;以及
在所述分类器的输出表征所述第一数据流存在网络攻击行为时,确定所述第一数据流存在网络攻击行为。
2.根据权利要求1所述的方法,其中,所述提取所述第一数据流对应的第一特征向量包括:
提取所述m个数据包中每个数据包对应的子特征向量,以得到m个第一子特征向量;以及
基于所述m个第一子特征向量,得到所述第一特征向量。
3.根据权利要求2所述的方法,其中,所述提取所述m个数据包中每个数据包对应的子特征向量包括以下任意其一或两者的组合:
基于对所述数据包的数据字段中的数据以字符为分词的最小单位进行n-gram分词,得到所述数据包的分词特征,其中,至少以所述数据包的分词特征来表征所述数据包的数据字段的字符的分布特征,n为大于等于2的整数;或者
提取所述数据包的数据字段中的每个字符的出现比率,得到所述数据包的字符占比,其中,至少以所述数据包的字符占比来表征所述数据包的字符的分布特征。
4.根据权利要求3所述的方法,其中,所述提取所述m个数据包中每个数据包对应的子特征向量还包括以下任意一项或多项的组合:
将所述数据包的数据字段中的数据依次与预先构造的词典空间中的词匹配,得到所述数据包的词分布特征,其中,所述词典空间为将基于icmp传输的不存在网络攻击行为的正常数据包的数据字段中的数据每四个字符划分为一个词构成的数据空间;
获取所述数据包的数据字段的数据长度,以得到所述数据包的载荷大小特征;
获取所述数据包的类型字段的取值,以得到所述数据包的协议类型特征;或者
获取所述第一数据流中的数据包的个数m,以得到请求序列数。
5.根据权利要求1~4任意一项所述的方法,其中,还包括训练所述分类器,包括:
获取至少一个第二数据流,所述第二数据流为在所述预设时长范围内基于icmp传输的不存在网络攻击行为的正常数据流,其中所述第二数据流包括在相同源端和目的端之间传输的s个数据包,其中s为大于等于1的整数;
获取至少一个第三数据流,所述第三数据流为在所述预设时长范围内基于icmp传输的存在网络攻击行为的异常数据流,其中所述第三数据流包括在相同源端和目的端之间传输的r个数据包,其中r为大于等于1的整数;
提取所述至少一个第二数据流中每个所述第二数据流对应的第二特征向量,得到正训练样本数据,其中,所述第二特征向量至少包括所述s个数据包中每个数据包的数据字段中的字符的分布特征;
提取所述至少一个第三数据流中每个所述第三数据流对应的第三特征向量,得到负训练样本数据,其中,所述第三特征向量至少包括所述r个数据包中每个数据包的数据字段中的字符的分布特征;以及
利用所述正样本训练数据和所述负样本训练数据,训练所述分类器;
其中,
所述第二特征向量、所述第三特征向量与所述第一特征向量的提取方式一致。
6.一种用于识别网络攻击行为的分类器的训练方法,包括:
获取至少一个第二数据流,所述第二数据流为在预设时长范围内基于网络控制报文协议icmp传输的不存在网络攻击行为的正常数据流,其中所述第二数据流包括在相同源端和目的端之间传输的s个数据包,其中s为大于等于1的整数;
获取至少一个第三数据流,所述第三数据流为在所述预设时长范围内基于icmp传输的存在网络攻击行为的异常数据流,其中所述第三数据流包括在相同源端和目的端之间传输的r个数据包,其中r为大于等于1的整数;
提取所述至少一个第二数据流中每个所述第二数据流对应的第二特征向量,得到正训练样本数据,其中,所述第二特征向量至少包括所述s个数据包中每个数据包的数据字段中的字符的分布特征;
提取所述至少一个第三数据流中每个所述第三数据流对应的第三特征向量,得到负训练样本数据,其中,所述第三特征向量至少包括所述r个数据包中每个数据包的数据字段中的字符的分布特征;以及
利用所述正样本训练数据和所述负样本训练数据,训练所述分类器;
其中,
所述第二特征向量和所述第三特征向量的提取方式一致。
7.根据权利要求6所述的训练方法,其中,所述提取所述至少一个第二数据流中每个所述第二数据流对应的第二特征向量包括:
提取所述s个数据包中每个数据包对应的子特征向量,以得到s个第二子特征向量;以及
基于所述s个第二子特征向量,得到所述第二特征向量。
8.根据权利要求7所述的训练方法,其中,所述基于所述s个第二子特征向量,得到所述第二特征向量包括以下任意其一或两者的组合:
基于对所述数据包的数据字段中的数据以字符为分词的最小单位进行n-gram分词,得到所述数据包的分词特征,其中,n为大于等于2的整数,其中,至少以所述数据包的分词特征来表征所述数据包的数据字段的字符的分布特征,n为大于等于2的整数;或者
提取所述数据包的数据字段中的每个字符的出现比率,得到数据包的字符占比,其中,至少以所述数据包的字符占比来表征所述数据包的字符的分布特征。
9.一种用于识别网络攻击行为的装置,包括:
第一获取模块,用于获取第一数据流,所述第一数据流为在预设时长范围内基于网络控制报文协议icmp传输的数据流,其中,所述第一数据流包括在相同源端和目的端之间传输的m个数据包,其中m为大于等于1的整数;
第一提取模块,用于提取所述第一数据流对应的第一特征向量,其中,所述第一特征向量至少包括所述m个数据包中每个数据包的数据字段中的字符的分布特征;
预测模块,用于将所述第一特征向量输入到分类器以获取所述分类器的输出,所述分类器为用于预测基于icmp传输的数据流是否存在网络攻击行为的机器学习模型;以及
确定模块,用于在所述分类器的输出表征所述第一数据流存在网络攻击行为时,确定所述第一数据流存在网络攻击行为。
10.一种用于识别网络攻击行为的分类器的训练装置,包括:
第二获取模块,用于获取至少一个第二数据流,所述第二数据流为在预设时长范围内基于网络控制报文协议icmp传输的不存在网络攻击行为的正常数据流,其中所述第二数据流包括在相同源端和目的端之间传输的s个数据包,其中s为大于等于1的整数;
第三获取模块,用于获取至少一个第三数据流,所述第三数据流为在所述预设时长范围内基于icmp传输的存在网络攻击行为的异常数据流,其中所述第三数据流包括在相同源端和目的端之间传输的r个数据包,其中r为大于等于1的整数;
第二提取模块,用于提取所述至少一个第二数据流中每个所述第二数据流对应的第二特征向量,得到正训练样本数据,其中,所述第二特征向量至少包括所述s个数据包中每个数据包的数据字段中的字符的分布特征;
第三提取模块,用于提取所述至少一个第三数据流中每个所述第三数据流对应的第三特征向量,得到负训练样本数据,其中,所述第三特征向量至少包括所述r个数据包中每个数据包的数据字段中的字符的分布特征;以及
训练模块,用于利用所述正样本训练数据和所述负样本训练数据,训练所述分类器;
其中,
所述第二特征向量和所述第三特征向量的提取方式一致。
11.一种电子设备,包括:
一个或多个存储器,其上存储有计算机可执行指令;
一个或多个处理器,所述处理器执行所述指令,以实现:
根据权利要求1~5中任一项所述的方法;或者
根据权利要求6~8中任一项所述的训练方法。
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行:
根据权利要求1~5中任一项所述的方法;或者
根据权利要求6~8中任一项所述的训练方法。