CN106685964B - 基于恶意网络流量词库的恶意软件检测方法及系统 - Google Patents

基于恶意网络流量词库的恶意软件检测方法及系统 Download PDF

Info

Publication number
CN106685964B
CN106685964B CN201611243439.2A CN201611243439A CN106685964B CN 106685964 B CN106685964 B CN 106685964B CN 201611243439 A CN201611243439 A CN 201611243439A CN 106685964 B CN106685964 B CN 106685964B
Authority
CN
China
Prior art keywords
word
malicious
word set
normal
network traffic
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.)
Active
Application number
CN201611243439.2A
Other languages
English (en)
Other versions
CN106685964A (zh
Inventor
陈贞翔
王闪闪
孙润元
杨波
彭立志
刘鹍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Jinan
Original Assignee
University of Jinan
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Jinan filed Critical University of Jinan
Priority to CN201611243439.2A priority Critical patent/CN106685964B/zh
Publication of CN106685964A publication Critical patent/CN106685964A/zh
Application granted granted Critical
Publication of CN106685964B publication Critical patent/CN106685964B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Virology (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了基于恶意网络流量词库的恶意软件检测方法及系统;包括如下步骤:建立恶意网络流量词库;训练恶意软件检测模型;对待检测HTTP网络流量的流内容进行分割,分割成单词集合;对单词集合进行向量化:将得到的单词集合利用得到的词库转变成词向量;将词向量输入到训练出的恶意软件检测模型中,若模型对词向量的检测结果为恶意,则找到词向量对应的网络流的源头app,并标记为恶意app。使用这个恶意网络流量词库,我们不需要手动选择特征,只需要获取与词库中的单词的对比结果,然后建立出一个检测模型,就可以用于对恶意流量的检测,从而能够判别产生该恶意流量的app是恶意软件。

Description

基于恶意网络流量词库的恶意软件检测方法及系统
技术领域
本发明涉及一种基于恶意网络流量词库的恶意软件检测方法及系统。
背景技术
随着移动终端的广泛使用,尤其是智能手机的迅速普及,移动智能终端带给现代社会巨大的变革,进入21世纪以来,我们已经迅速步入了移动时代。而手机已不再局限于传统意义上的通信业务,已经成为集电子商务、个人支付、社交娱乐等功能于一体的强大终端。
通过网络流量来发现移动终端的恶意软件网络行为是近年新兴的一种恶意软件检测技术,并取得了一些初步的研究成果。通过网络流量来检测恶意软件不需要用户在终端设备上安装检测程序,极大地降低了用户终端设备的计算资源,但是,现有的基于移动终端网络流量的检测技术存在以下几个缺点:
(1)现有的基于移动终端的网络流量检测恶意软件的方法也仅仅局限于某一类统计特征,如包长,包大小分布等等,或者是局限于某些特殊字段,如HTTP的host字段,request-uri字段等。这些方法都缺乏对移动终端网络流量特征进行系统性的总结和针对不同类型的网络流量特征的检测方法。
(2)现在的网络流量特征的选择十分困难,它需要专家对移动应用的运行机制十分了解,还要清楚正常应用和恶意应用的网络流量的差别才能选择出有识别恶意流量价值的特征。
发明内容
本发明的目的就是为了解决上述问题,提供一种基于恶意网络流量词库的恶意软件检测方法及系统,使用这个恶意网络流量词库,我们不需要手动选择特征,只需要获取与词库中的单词的对比结果,然后建立出一个检测模型,就可以用于对恶意流量的检测,从而能够判别产生该恶意流量的app是恶意软件。
为了实现上述目的,本发明采用如下技术方案:
一种基于恶意网络流量词库的恶意软件检测方法,包括如下步骤:
步骤(1):建立恶意网络流量词库;
步骤(2):训练恶意软件检测模型;
步骤(3):对待检测HTTP网络流量的流内容进行分割,分割成单词集合;
步骤(4):对单词集合进行向量化:将步骤(3)得到的单词集合利用步骤(1)得到的词库转变成词向量;
步骤(5):将步骤(4)的词向量输入到步骤(2)训练出的恶意软件检测模型中,若模型对词向量的检测结果为恶意,则找到词向量对应的网络流的源头app,并标记为恶意app。
所述步骤(1)的步骤为:
步骤(1-1):获取正常的HTTP网络流量的内容,对获取到的正常的HTTP网络流量的内容进行分词,得到正常的HTTP网络流量的正常词集;进入步骤(1-3);
步骤(1-2):获取恶意的HTTP网络流量的内容,对获取到的恶意的HTTP网络流量的内容进行分词,得到恶意的HTTP网络流量的恶意词集;进入步骤(1-4);
步骤(1-3):对正常的HTTP网络流量的正常词集进行单词过滤,按照自定义的过滤规则粗粒度地过滤掉与恶意软件的检测无关的单词;进入步骤(1-2);
步骤(1-4):对恶意的HTTP网络流量的恶意词集进行单词过滤,按照自定义的过滤规则粗粒度地过滤掉与恶意软件的检测无关的单词;进入步骤(1-5);
步骤(1-5):将步骤(1-3)过滤后得到的正常词集和步骤(1-4)过滤后得到的恶意词集进行汇总得到第一汇总词集,利用每个单词在步骤(1-3)过滤后得到的正常词集和步骤(1-4)过滤后得到的恶意词集中出现频率,计算卡方值;
步骤(1-6):利用卡方检验对第一汇总词集进行细粒度地单词过滤,利用卡方值从第一汇总词集中挑选出恶意单词,组成恶意网络流量词库。
所述步骤(1-1)的步骤为:
步骤(1-1-1):正常流内容获取,使用T-shark命令将正常网络流量文件中的每一条HTTP网络流的流内容写入到对应的文本文档中;
步骤(1-1-2):利用特殊符号对文本文档中的内容进行分词处理,得到HTTP网络流量的正常词集。
所述特殊符号,包括:逗号、冒号、分号、&、百分号、等号和空格。
所述T-shark命令是:“tshark–r网络流量文件名–q–z\”follow,tcp,ascii,o\”>文本文档名”。
所述正常网络流量文件是:正常app因为连接网络而产生的网络流量文件。
所述步骤(1-2)的步骤为:
步骤(1-2-1):恶意流内容获取,使用T-shark命令将恶意网络流量文件中的每一条HTTP网络流的流内容写入到对应的文本文档中;
步骤(1-2-2):利用特殊符号将每个保存恶意流内容的文本文件进行分词处理,得到恶意的HTTP网络流量的恶意词集。
所述特殊符号,包括:逗号、冒号、分号、&、百分号、等号和空格。
所述T-shark命令是:tshark–r网络流量文件名–q–z\”follow,tcp,ascii,o\”>文本文档名。
所述恶意网络流量文件是:一个恶意app因为连接网络而产生的网络流量文件。
所述步骤(1-3)的步骤为:
步骤(1-3-1):遍历正常的HTTP网络流量的正常词集中的每个单词,过滤掉全部是数字的单词;
步骤(1-3-2):遍历正常的HTTP网络流量的正常词集中的每个单词,过滤掉在每条流中出现频率超过设定阈值的单词;
步骤(1-3-3):遍历正常的HTTP网络流量的正常词集中的每个单词,过滤掉停用词。
所述步骤(1-3-2)中出现频率超过设定阈值的单词包括:host、request-method和request-encoding;
所述步骤(1-3-3)中停用词包括:the,a,is和this。
所述步骤(1-4)的步骤为:
步骤(1-4-1):遍历恶意的HTTP网络流量的恶意词集中的每个单词,过滤掉全部是数字的单词;
步骤(1-4-2):遍历恶意的HTTP网络流量的恶意词集中的每个单词,过滤掉在每条流中出现频率超过设定阈值的单词;
步骤(1-4-3):遍历恶意的HTTP网络流量的恶意词集中的每个单词,过滤掉停用词。
所述步骤(1-4-2)中出现频率超过设定阈值的单词包括:host、request-method和request-encoding;
所述步骤(1-4-3)中停用词包括:the、a、is和this。
所述步骤(1-5)的步骤为:
步骤(1-5-1):将正常的HTTP网络流量的正常词集和恶意的HTTP网络流量的恶意词集进行整合,组合成第一汇总词集;
步骤(1-5-2):计算第一汇总词集中每个单词的词频:统计第一汇总词集中每个单词分别在恶意词集中出现的次数和在正常词集中出现的次数;
步骤(1-5-3):归一化:对步骤(1-5-2)得到的统计次数进行归一化处理;
步骤(1-5-4):卡方检验:利用每个单词在不同类别的单词集中出现的归一化之后的数值,根据卡方检验公式计算每个单词的得分,卡方检验公式如下:
Figure GDA0002664988760000041
其中,χ2(t,c)指的是特征t(一个单词)和类别c(恶意)之间的卡方值,χ2(t,c)值越大,说明特征t对类别c的表征程度就越大,特征t在类别c中就越有意义。
Figure GDA0002664988760000042
是指特征t和类别c共同出现的次数,
Figure GDA0002664988760000043
是指假设特征t和类别c相互独立时,两者共同出现的期望次数,et和ec的值都属于(0,1)的集合中,即如果类别c或者特征t出现记作1,如果类别c或特征t没有出现记作0。
所述步骤(1-6)的步骤为:
步骤(1-6-1):设定分数的阈值或者是设定得分排序排在前K位的K值;
步骤(1-6-2):遍历总单词集合中的每个单词,判断单词遍历是否结束;若是,就结束;若否,就进入步骤(1-6-3);
步骤(1-6-3):判断当前单词的得分是否大于阈值或者排在前K位;如果当前单词的得分小于阈值或者没有排在前K位,则忽略这个单词;如果当前单词的得分大于阈值或者排在前K位,进入步骤(1-6-4);
步骤(1-6-4):判断当前单词是否存在于恶意词集中;如果当前单词不存在于恶意词集中,则忽略这个单词;如果当前单词存在于恶意词集中,则将当前单词加入到恶意流量词库中;当遍历完所有的单词之后,恶意网络流量词库建立完成。
所述步骤(2)的步骤为:
步骤(2-1):对步骤(1-1)和步骤(1-2)得到的每条网络流的单词集合进行向量化;
步骤(2-2):设置训练终止条件,所述终止条件包括:训练次数的阈值或训练结果准确率变化阈值;
步骤(2-3):将所有向量输入到机器学习分类算法中进行训练;
步骤(2-4):训练过程达到终止条件后训练结束,得到训练好的恶意软件检测模型。
所述步骤(3)的步骤为:
步骤(3-1):待检测流内容获取,使用T-shark命令将待检测网络流量文件中的每一条HTTP网络流的流内容写入到对应的txt文件中;
步骤(3-2):利用特殊符号将每个保存待检测流内容的txt文件进行分词处理,得到待检测的网络流量的词集。
T-shark命令是:tshark–r网络流量文件名–q–z\”follow,tcp,ascii,o\”>文本文档名。
所述待检测网络流量文件是待检测的app因为连接网络而产生的网络流量文件。
所述步骤(4)的步骤为:
步骤(4-1):词向量初始化:初始化与恶意网络流量词库具有相同维度的行向量,每个元素都初始化为0;
步骤(4-2):遍历恶意网络流量词库中的每个单词,判断遍历是否结束,如果未结束,则继续判断当前遍历的单词是否存在于待向量化的网络流量的词集中;
步骤(4-3):如果当前遍历的单词不存在于待向量化的网络流量的词集中,则将当前遍历的单词的索引位置处的值置为0;如果当前遍历的单词存在于待向量化的HTTP网络流量的词集中,则将当前遍历的单词的索引位置处的值置为1;返回步骤(4-2)继续遍历;直至恶意网络流量词库中的单词遍历结束,完成待向量化的HTTP网络流的向量化,得到HTTP网络流的词向量。
所述步骤(5)的判断待检测的词向量是否落入恶意软件检测模型中步骤为:
步骤(5-1):将步骤(4)的词向量输入到步骤(2)训练好的恶意软件检测模型中;
步骤(5-2):根据检测模型的输出结果,判断这条待向量化的HTTP网络流是正常的还是恶意的;
步骤(5-3):找出被判别为恶意的HTTP网络流的源头app,将找出的app标记为恶意app,从而实现了恶意软件的检测。
一种基于恶意网络流量词库的恶意软件检测系统,包括:
词库建立单元:建立恶意网络流量词库;
检测模型训练单元:训练恶意软件检测模型;
单词集合分割单元:对待检测HTTP网络流量的流内容进行分割,分割成单词集合;
单词集合向量化单元:对单词集合进行向量化:将单词集合分割单元得到的单词集合利用词库建立单元得到的词库转变成词向量;
判断单元:将单词集合向量化单元的词向量输入到检测模型训练单元训练出的恶意软件检测模型中,若模型对词向量的检测结果为恶意,则找到词向量对应的网络流的源头app,并标记为恶意app。
本发明的有益效果:
(1)本发明提出了一种恶意网络流量词库的建立方法。这种词库的建立是将自然语言处理的分词方法应用到网络流量层面。利用这个词库可以有效地进行恶意软件的检测。
(2)本发明使用了从网络流内容中提取特征,设定了几种规则过滤器,并使用卡方检验的方法进行特征的选择,避免了人工选择特征的难度。
(3)本发明设计了一种利用恶意网络流量词库结合机器学习分类算法进行恶意软件检测的方法。
附图说明
图1为本发明的整体流程图;
图2为恶意网络流量词库建立模块的流程图;
图3为训练恶意流量检测模型的流程图;
图4为流内容进行向量化的模块流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图1所示,一种基于恶意网络流量词库的恶意软件检测方法的具体工作过程为:
步骤100,恶意网络流量词库建立模型,通过该模块,我们可以获得一个恶意网络流量词库。词库的具体建立过程图2给出了详细的流程。
步骤101,模型训练模块,通过该模块,可以获得一个用于恶意软件检测的模型。模型获得的具体过程图3给出了详细的流程。
步骤102,流分词模块,使用特殊的符号作为分隔符将一条待检测流的流内容分割成一个单词的集合。
步骤103,词向量化,将步骤102得到的单词集合转变成一个词向量。具体的向量化过程如图4所示。
步骤104,检测模块的输入,将步骤103得到的词向量化输入到检测模型中。
步骤105,检测模型通过计算得出检测结果(正常还是恶意)。
步骤106,如果待检测HTTP网络流被预测为恶意流量,找到此HTTP网络流的源头app,将此app标记为恶意app。
步骤107,如果待检测HTTP网络流被预测为正常流量,则结束。
图2为恶意网络流量词库建立模块的流程图,它的具体工作过程为:
步骤200,正常流内容获取,使用T-shark命令“tshark–r网络流量文件名–q–z\”follow,tcp,ascii,o\”>文本文档名”将一个网络流量文件(一个正常app因为连接网络而产生的网络流量文件)中的每一条HTTP网络流的流内容写入到对应的文本文档中;。
步骤201,恶意流内容获取,使用T-shark命令“tshark–r网络流量文件名–q–z\”follow,tcp,ascii,o\”>文本文档名”将一个网络流量文件(一个恶意app因为连接网络而产生的网络流量文件)中的每一条HTTP网络流的流内容写入到对应的文本文档中;
步骤202,利用特殊符号(,:;&%=空格)将每个保存正常流内容的txt文件进行分词处理,处理之后的txt文件将变成一个单词集合。
步骤203,利用特殊符号(,:;&%=空格)将每个保存恶意流内容的txt文件进行分词处理,处理之后的txt文件将变成一个单词集合。
步骤204,全数字过滤器,遍历正常app单词集合中的每个单词,过滤掉全数字的单词。
步骤205,高频常见词过滤器,遍历正常app单词集合中的每个单词,过滤掉那些高频的但是几乎出现在每条流中的单词,如host,request-method,request-encoding等等。
步骤206,停用词过滤器,遍历正常app单词集合中的每个单词,过滤掉停用词,即常见的无意义的词汇,如:the,a,is,this等。
步骤207,全数字过滤器,与步骤115类似,不过处理的是恶意流量产生的单词集合。
步骤208,高频常见词过滤器,与步骤116类似,不过处理的是恶意流量产生的单词集合。
步骤209,停用词过滤器,与步骤117类似,不过处理的是恶意流量产生的单词集合。
步骤210,整合所有正常流量的单词集合和恶意流量的单词集合,组合成一个大的单词集合。
步骤211,统计这个总的单词集合中每个单词分别在恶意单词集中出现的次数和正常单词集中出现的次数。
步骤212,归一化,对步骤212得到的统计次数进行归一化处理。防止因为正常流词集和恶意流词集的规模不一致造成的偏差。
步骤213,卡方检验,利用每个单词在不同类别的单词集中出现的归一化之后的数值,根据卡方公式计算每个单词的得分。
步骤214,设定分数的阈值或者是设定得分排序排在前K位的K值(此设置二选一,不可全设置)。
步骤215,遍历总单词集合中的每个单词,判断单词遍历条件是否结束,即是否完成了对所有单词的遍历。
步骤216,判断当前单词的得分是否大于阈值或者排在前K位。
步骤217,如果当前单词的得分小于阈值或者没有排在前K位,则忽略这个单词。
步骤218,如果当前单词的得分大于阈值或者排在了前K位,接着判断该单词是否存在于恶意的单词集合中。
步骤219,如果当前单词不存在恶意的单词集合中,即此单词来自正常流单词集合,则忽略这个单词。
步骤220,如果当前单词存在恶意的单词集合中,则将该单词加入到恶意网络流量的单词库中。
当遍历完了所有的单词之后,恶意网络流量词库也建立完成了。
图3为训练检测模型的流程图,每一步的具体操作为:
步骤300,同步骤200-201,获取大量的正常网络流的流内容和大量恶意的网络流的流内容。
步骤301,同步骤202-203,对正常网络流的流内容和恶意网络流的流内容使用特殊符号作为分隔符进行分词处理。每条流组成一个单词集合,所以此步骤会得到大量的正常词集合恶意词集。
步骤302,对步骤301得到的每个单词词集利用图4描述的方法进行向量化,得到大量的带有标签的向量(正常词集经向量化之后被标记为正常,恶意词集经向量化之后被标记为恶意)。
步骤303,对分类算法进行参数化设置,如设置训练的次数或者其他算法结束条件。
将所有向量输入到机器学习分类算法中进行训练。此处的机器学习算法可以为决策树、支持向量机、K-近邻等分类算法。
步骤304,将训练好的检测模型保存下来。目的是当未知的样本到来时不必重新训练检测模型。
图4为流内容进行向量化的模块流程图,它的具体工作流程为:
步骤400,词向量初始化,即初始化一个维度与恶意网络流量词库大小相同的行向量,每个元素都初始化为0。
步骤401,开始遍历词库中的每个单词,如果当前遍历条件不符合,则结束。
步骤402,如果当前的遍历还未结束,判断当前遍历的单词是否存在于待向量化的HTTP网络流量词集中。
步骤403,如果当前遍历的单词不存在待向量化的HTTP网络流量词集,则将此单词的索引位置处的值值为0。
步骤404,如果当前遍历的单词存在待向量化的HTTP流产生的单词集中,则将此单词的索引位置处的值值为1。
等到词库中的单词都遍历结束,也完成了一个条HTTP网络流的向量化。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (5)

1.一种基于恶意网络流量词库的恶意软件检测方法,其特征是,包括如下步骤:
步骤(1):建立恶意网络流量词库;
所述步骤(1)的步骤为:
步骤(1-1):获取正常的HTTP网络流量的内容,对获取到的正常的HTTP网络流量的内容进行分词,得到正常的HTTP网络流量的正常词集;进入步骤(1-3);
所述步骤(1-1)的步骤为:
步骤(1-1-1):正常流内容获取,使用T-shark命令将正常网络流量文件中的每一条HTTP网络流的流内容写入到对应的文本文档中;
步骤(1-1-2):利用特殊符号对文本文档中的内容进行分词处理,得到HTTP网络流量的正常词集;
步骤(1-2):获取恶意的HTTP网络流量的内容,对获取到的恶意的HTTP网络流量的内容进行分词,得到恶意的HTTP网络流量的恶意词集;进入步骤(1-4);
所述步骤(1-2)的步骤为:
步骤(1-2-1):恶意流内容获取,使用T-shark命令将恶意网络流量文件中的每一条HTTP网络流的流内容写入到对应的文本文档中;
步骤(1-2-2):利用特殊符号将每个保存恶意流内容的文本文件进行分词处理,得到恶意的HTTP网络流量的恶意词集;
步骤(1-3):对正常的HTTP网络流量的正常词集进行单词过滤,按照自定义的过滤规则粗粒度地过滤掉与恶意软件的检测无关的单词;进入步骤(1-2);
所述步骤(1-3)的步骤为:
步骤(1-3-1):遍历正常的HTTP网络流量的正常词集中的每个单词,过滤掉全部是数字的单词;
步骤(1-3-2):遍历正常的HTTP网络流量的正常词集中的每个单词,过滤掉在每条流中出现频率超过设定阈值的单词;
步骤(1-3-3):遍历正常的HTTP网络流量的正常词集中的每个单词,过滤掉停用词;
步骤(1-4):对恶意的HTTP网络流量的恶意词集进行单词过滤,按照自定义的过滤规则粗粒度地过滤掉与恶意软件的检测无关的单词;进入步骤(1-5);
所述步骤(1-4)的步骤为:
步骤(1-4-1):遍历恶意的HTTP网络流量的恶意词集中的每个单词,过滤掉全部是数字的单词;
步骤(1-4-2):遍历恶意的HTTP网络流量的恶意词集中的每个单词,过滤掉在每条流中出现频率超过设定阈值的单词;
步骤(1-4-3):遍历恶意的HTTP网络流量的恶意词集中的每个单词,过滤掉停用词;
步骤(1-5):将步骤(1-3)过滤后得到的正常词集和步骤(1-4)过滤后得到的恶意词集进行汇总得到第一汇总词集,利用每个单词在步骤(1-3)过滤后得到的正常词集和步骤(1-4)过滤后得到的恶意词集中出现频率,计算卡方值;
所述步骤(1-5)的步骤为:
步骤(1-5-1):将正常的HTTP网络流量的正常词集和恶意的HTTP网络流量的恶意词集进行整合,组合成第一汇总词集;
步骤(1-5-2):计算第一汇总词集中每个单词的词频:统计第一汇总词集中每个单词分别在恶意词集中出现的次数和在正常词集中出现的次数;
步骤(1-5-3):归一化:对步骤(1-5-2)得到的统计次数进行归一化处理;
步骤(1-5-4):卡方检验:利用每个单词在不同类别的单词集中出现的归一化之后的数值,根据卡方公式计算每个单词的得分,卡方公式如下:
Figure FDA0002664988750000021
其中,χ2(t,c)指的是特征t和类别c之间的卡方值,χ2(t,c)值越大,说明特征t对类别c的表征程度就越大,特征t在类别c中就越有意义;
Figure FDA0002664988750000022
是指特征t和类别c共同出现的次数,
Figure FDA0002664988750000023
是指假设特征t和类别c相互独立时,两者共同出现的期望次数et和ec的值都属于(0,1)的集合中,即如果类别c或者特征t出现记作1,如果类别c或特征t没有出现记作0;
步骤(1-6):利用卡方检验对第一汇总词集进行细粒度地单词过滤,利用卡方值从第一汇总词集中挑选出恶意单词,组成恶意网络流量词库;
所述步骤(1-6)的步骤为:
步骤(1-6-1):设定分数的阈值或者是设定得分排序排在前K位的K值;
步骤(1-6-2):遍历第一汇总词集的每个单词,判断单词遍历是否结束;若是,就结束;若否,就进入步骤(1-6-3);
步骤(1-6-3):判断当前单词的得分是否大于阈值或者排在前K位;如果当前单词的得分小于阈值或者没有排在前K位,则忽略这个单词;如果当前单词的得分大于阈值或者排在前K位,进入步骤(1-6-4);
步骤(1-6-4):判断当前单词是否存在于恶意词集中;如果当前单词不存在于恶意词集中,则忽略这个单词;如果当前单词存在于恶意词集中,则将当前单词加入到恶意网络流量词库中;当遍历完所有的单词之后,恶意网络流量词库建立完成;
步骤(2):训练恶意软件检测模型;
步骤(3):对待检测HTTP网络流量的流内容进行分割,分割成单词集合;
步骤(4):对单词集合进行向量化:将步骤(3)得到的单词集合利用步骤(1)得到的词库转变成词向量;
所述步骤(4)的步骤为:
步骤(4-1):词向量初始化:初始化与恶意网络流量词库具有相同维度的行向量,每个元素都初始化为0;
步骤(4-2):遍历恶意网络流量词库中的每个单词,判断遍历是否结束,如果未结束,则继续判断当前遍历的单词是否存在于待向量化的HTTP网络流量的词集中;
步骤(4-3):如果当前遍历的单词不存在于待向量化的HTTP网络流量的词集中,则将当前遍历的单词的索引位置处的值置为0;如果当前遍历的单词存在于待向量化的HTTP网络流量的词集中,则将当前遍历的单词的索引位置处的值置为1;返回步骤(4-2)继续遍历;直至恶意网络流量词库中的单词遍历结束,完成对待向量化的HTTP网络流的向量化,得到HTTP网络流的词向量;
步骤(5):将步骤(4)的词向量输入到步骤(2)训练出的恶意软件检测模型中,若模型对词向量的检测结果为恶意,则找到词向量对应的网络流的源头app,并标记为恶意app。
2.如权利要求1所述的一种基于恶意网络流量词库的恶意软件检测方法,其特征是,所述步骤(2)的步骤为:
步骤(2-1):对步骤(1-1)和步骤(1-2)得到的每条网络流的单词集合进行向量化;
步骤(2-2):设置训练终止条件,所述终止条件包括:训练次数的阈值或训练结果准确率变化阈值;
步骤(2-3):将所有向量输入到机器学习分类算法中进行训练;
步骤(2-4):训练过程达到终止条件后结束训练,并得到训练好的恶意软件检测模型。
3.如权利要求1所述的一种基于恶意网络流量词库的恶意软件检测方法,其特征是,所述步骤(3)的步骤为:
步骤(3-1):待检测流内容获取,使用T-shark命令将待检测网络流量文件中的每一条HTTP网络流的流内容写入到对应的txt文件中;
步骤(3-2):利用特殊符号将每个保存待检测流内容的txt文件进行分词处理,得到待检测的HTTP网络流量的词集。
4.如权利要求1所述的一种基于恶意网络流量词库的恶意软件检测方法,其特征是,
所述步骤(5)的判断待检测的词向量是否落入恶意软件检测模型中步骤为:
步骤(5-1):将步骤(4)的词向量输入到步骤(2)训练好的恶意软件检测模型中;
步骤(5-2):根据检测模型的输出结果,判断这条待向量化的HTTP网络流是正常的还是恶意的;
步骤(5-3):找出被判别为恶意的HTTP网络流的源头app,将找出的app标记为恶意app,从而实现了恶意软件的检测。
5.如权利要求1所述的一种基于恶意网络流量词库的恶意软件检测方法所应用的一种基于恶意网络流量词库的恶意软件检测系统,其特征是,包括:
词库建立单元:建立恶意网络流量词库;
检测模型训练单元:训练恶意软件检测模型;
单词集合分割单元:对待检测HTTP网络流量的流内容进行分割,分割成单词集合;
单词集合向量化单元:对单词集合进行向量化:将单词集合分割单元得到的单词集合利用词库建立单元得到的词库转变成词向量;
判断单元:将单词集合向量化单元的词向量输入到检测模型训练单元训练出的恶意软件检测模型中,若模型对词向量的检测结果为恶意,则找到词向量对应的网络流的源头app,并标记为恶意app;
所述词库建立单元实现以下步骤:
步骤(1-1):获取正常的HTTP网络流量的内容,对获取到的正常的HTTP网络流量的内容进行分词,得到正常的HTTP网络流量的正常词集;进入步骤(1-3);
步骤(1-2):获取恶意的HTTP网络流量的内容,对获取到的恶意的HTTP网络流量的内容进行分词,得到恶意的HTTP网络流量的恶意词集;进入步骤(1-4);
步骤(1-3):对正常的HTTP网络流量的正常词集进行单词过滤,按照自定义的过滤规则粗粒度地过滤掉与恶意软件的检测无关的单词;进入步骤(1-2);
步骤(1-4):对恶意的HTTP网络流量的恶意词集进行单词过滤,按照自定义的过滤规则粗粒度地过滤掉与恶意软件的检测无关的单词;进入步骤(1-5);
步骤(1-5):将步骤(1-3)过滤后得到的正常词集和步骤(1-4)过滤后得到的恶意词集进行汇总得到第一汇总词集,利用每个单词在步骤(1-3)过滤后得到的正常词集和步骤(1-4)过滤后得到的恶意词集中出现频率,计算卡方值;
步骤(1-6):利用卡方检验对第一汇总词集进行细粒度地单词过滤,利用卡方值从第一汇总词集中挑选出恶意单词,组成恶意网络流量词库;
所述步骤(1-5)的步骤为:
步骤(1-5-1):将正常的HTTP网络流量的正常词集和恶意的HTTP网络流量的恶意词集进行整合,组合成第一汇总词集;
步骤(1-5-2):计算第一汇总词集中每个单词的词频:统计第一汇总词集中每个单词分别在恶意词集中出现的次数和在正常词集中出现的次数;
步骤(1-5-3):归一化:对步骤(1-5-2)得到的统计次数进行归一化处理;
步骤(1-5-4):卡方检验:利用每个单词在不同类别的单词集中出现的归一化之后的数值,根据卡方公式计算每个单词的得分,卡方公式如下:
Figure FDA0002664988750000051
其中,χ2(t,c)指的是特征t和类别c之间的卡方值,χ2(t,c)值越大,说明特征t对类别c的表征程度就越大,特征t在类别c中就越有意义;
Figure FDA0002664988750000052
是指特征t和类别c共同出现的次数,
Figure FDA0002664988750000053
是指假设特征t和类别c相互独立时,两者共同出现的期望次数et和ec的值都属于(0,1)的集合中,即如果类别c或者特征t出现记作1,如果类别c或特征t没有出现记作0;
所述步骤(1-6)的步骤为:
步骤(1-6-1):设定分数的阈值或者是设定得分排序排在前K位的K值;
步骤(1-6-2):遍历第一汇总词集的每个单词,判断单词遍历是否结束;若是,就结束;若否,就进入步骤(1-6-3);
步骤(1-6-3):判断当前单词的得分是否大于阈值或者排在前K位;如果当前单词的得分小于阈值或者没有排在前K位,则忽略这个单词;如果当前单词的得分大于阈值或者排在前K位,进入步骤(1-6-4);
步骤(1-6-4):判断当前单词是否存在于恶意词集中;如果当前单词不存在于恶意词集中,则忽略这个单词;如果当前单词存在于恶意词集中,则将当前单词加入到恶意网络流量词库中;当遍历完所有的单词之后,恶意网络流量词库建立完成。
CN201611243439.2A 2016-12-29 2016-12-29 基于恶意网络流量词库的恶意软件检测方法及系统 Active CN106685964B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611243439.2A CN106685964B (zh) 2016-12-29 2016-12-29 基于恶意网络流量词库的恶意软件检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611243439.2A CN106685964B (zh) 2016-12-29 2016-12-29 基于恶意网络流量词库的恶意软件检测方法及系统

Publications (2)

Publication Number Publication Date
CN106685964A CN106685964A (zh) 2017-05-17
CN106685964B true CN106685964B (zh) 2020-10-30

Family

ID=58873260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611243439.2A Active CN106685964B (zh) 2016-12-29 2016-12-29 基于恶意网络流量词库的恶意软件检测方法及系统

Country Status (1)

Country Link
CN (1) CN106685964B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108470027A (zh) * 2018-03-30 2018-08-31 广州优视网络科技有限公司 色情应用识别方法和装置、计算设备和存储介质
CN108540471B (zh) * 2018-04-08 2020-10-02 南京邮电大学 移动应用网络流量聚类方法、计算机可读存储介质和终端
CN109117634B (zh) * 2018-09-05 2020-10-23 济南大学 基于网络流量多视图融合的恶意软件检测方法及系统
CN111062034A (zh) * 2018-10-16 2020-04-24 中移(杭州)信息技术有限公司 一种Webshell文件检测方法、装置、电子设备及存储介质
CN111368289B (zh) * 2018-12-26 2023-08-29 中兴通讯股份有限公司 一种恶意软件检测方法和装置
CN111651761B (zh) * 2019-03-04 2023-04-14 腾讯科技(深圳)有限公司 一种黑产电子设备检测方法、装置、服务器及存储介质
CN113705619B (zh) * 2021-08-03 2023-09-12 广州大学 一种恶意流量检测方法、系统、计算机及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779249A (zh) * 2012-06-28 2012-11-14 奇智软件(北京)有限公司 恶意程序检测方法及扫描引擎
CN102821002A (zh) * 2011-06-09 2012-12-12 中国移动通信集团河南有限公司信阳分公司 网络流量异常检测方法和系统
CN103473506A (zh) * 2013-08-30 2013-12-25 北京奇虎科技有限公司 用于识别恶意apk文件的方法和装置
CN104598813A (zh) * 2014-12-09 2015-05-06 西安电子科技大学 一种基于集成学习和半监督svm的计算机入侵检测方法
CN105007282A (zh) * 2015-08-10 2015-10-28 济南大学 面向网络服务提供商的恶意软件网络行为检测方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9038178B1 (en) * 2012-06-25 2015-05-19 Emc Corporation Detection of malware beaconing activities

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821002A (zh) * 2011-06-09 2012-12-12 中国移动通信集团河南有限公司信阳分公司 网络流量异常检测方法和系统
CN102779249A (zh) * 2012-06-28 2012-11-14 奇智软件(北京)有限公司 恶意程序检测方法及扫描引擎
CN103473506A (zh) * 2013-08-30 2013-12-25 北京奇虎科技有限公司 用于识别恶意apk文件的方法和装置
CN104598813A (zh) * 2014-12-09 2015-05-06 西安电子科技大学 一种基于集成学习和半监督svm的计算机入侵检测方法
CN105007282A (zh) * 2015-08-10 2015-10-28 济南大学 面向网络服务提供商的恶意软件网络行为检测方法及系统

Also Published As

Publication number Publication date
CN106685964A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN106685964B (zh) 基于恶意网络流量词库的恶意软件检测方法及系统
CN106709345B (zh) 基于深度学习方法推断恶意代码规则的方法、系统及设备
CN109753800B (zh) 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统
WO2020108063A1 (zh) 特征词的确定方法、装置和服务器
CN103336766A (zh) 短文本垃圾识别以及建模方法和装置
CN109871686A (zh) 基于图标表示和软件行为一致性分析的恶意程序识别方法及装置
CN103324745A (zh) 基于贝叶斯模型的文本垃圾识别方法和系统
CN111259397B (zh) 一种基于马尔科夫图和深度学习的恶意软件分类方法
CN112507704A (zh) 多意图识别方法、装置、设备及存储介质
CN110019653B (zh) 一种融合文本和标签网络的社交内容表征方法和系统
CN111260220A (zh) 群控设备识别方法、装置、电子设备和存储介质
CN110287311A (zh) 文本分类方法及装置、存储介质、计算机设备
CN112667750A (zh) 一种报文类别的确定、识别方法及装置
CN112800919A (zh) 一种检测目标类型视频方法、装置、设备以及存储介质
CN109391620A (zh) 异常行为判定模型的建立方法、系统、服务器及存储介质
CN115632874A (zh) 一种实体对象的威胁检测方法、装置、设备及存储介质
CN114490998A (zh) 文本信息的抽取方法、装置、电子设备和存储介质
CN114553591A (zh) 随机森林模型的训练方法、异常流量检测方法及装置
Yujie et al. End-to-end android malware classification based on pure traffic images
CN114373212A (zh) 人脸识别模型构建方法、人脸识别方法及相关设备
CN114444514B (zh) 语义匹配模型训练、语义匹配方法及相关装置
CN106685963B (zh) 一种恶意网络流量词库的建立方法及建立系统
CN115906797A (zh) 文本实体对齐方法、装置、设备及介质
CN114818736A (zh) 文本处理方法、用于短文本的链指方法、装置及存储介质
CN114756578A (zh) Sql执行计划的确定方法和装置

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
CB03 Change of inventor or designer information

Inventor after: Chen Zhenxiang

Inventor after: Wang Shanshan

Inventor after: Sun Runyuan

Inventor after: Yang Bo

Inventor after: Peng Lizhi

Inventor after: Liu Kun

Inventor before: Wang Shanshan

Inventor before: Chen Zhenxiang

Inventor before: Sun Runyuan

Inventor before: Yang Bo

Inventor before: Peng Lizhi

Inventor before: Liu Kun

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant