CN106845230B - 基于恶意网络流量词库的恶意软件检测可视化方法及系统 - Google Patents
基于恶意网络流量词库的恶意软件检测可视化方法及系统 Download PDFInfo
- Publication number
- CN106845230B CN106845230B CN201611243535.7A CN201611243535A CN106845230B CN 106845230 B CN106845230 B CN 106845230B CN 201611243535 A CN201611243535 A CN 201611243535A CN 106845230 B CN106845230 B CN 106845230B
- Authority
- CN
- China
- Prior art keywords
- word
- malice
- stream
- malicious
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了基于恶意网络流量词库的恶意软件检测可视化方法及系统;包括如下步骤:对HTTP网络流的内容进行单词分割,并建立恶意网络流量词库;训练恶意软件检测模型;对待检测的HTTP网络流的流内容进行单词分割,分割成单词集合;利用得到的词库将单词集合进行向量化处理;将词向量输入到训练得到的恶意软件检测模型中,恶意软件检测模型通过计算给出检测结果;如果待检测HTTP网络流被预测为恶意流量,找到所述恶意流量的HTTP网络流的源头app,将源头app标记为恶意app;计算恶意网络流中单词的权重;恶意网络流的流内容可视化。本发明的有益效果:充分解决了恶意流量检测过程对用户的透明性问题。
Description
技术领域
本发明涉及基于恶意网络流量词库的恶意软件检测可视化方法及系统。
背景技术
如今,安卓恶意软件日趋猖狂,对用户造成各种危害的恶意应用层出不穷。现在对恶意应用的检测主要分为三大主流方向。第一种是基于静态代码扫描的方式。它需要维持一个恶意的代码库,因为它是将待检测应用的所有代码与恶意库里面的恶意代码片段进行比对,一旦比对成功就认为此应用为恶意应用。第二种是基于动态系统调用的方法。它深入到安卓应用的内部,观察应用在运行时的函数调用情况。第三种是基于网络流量的检测方法,它是从安卓应用产生的流量角度考虑,探索恶意流量的特征进行恶意流量的识别,通过将恶意流量与应用联系起来进而检测出恶意应用。
然而,这三种方法都存在着不足之处,静态检测的恶意代码库需要不断更新,很难发现新产生的恶意应用;动态检测方法部署起来十分困难,甚至要更改安卓系统内核,工程繁杂并且消耗大量资源;流量检测的方法是最近比较受关注的一种方法,这种方法一般与机器学习算法结合,只需要向算法提供大量的恶意流量特征和正常流量特征,它就能自动地训练出一个区分正常流量和恶意流量的模型。然而大部分的流量监测方法都需要人为挑选能够区分正常和恶意的特征,特征的选择很困难。同时这些检测方法都仅仅是提供了最终的检测结果,即待测的流量是正常的或者是恶意的,对于这种决策是如何做出的,哪些特征表明它是恶意的都没有明确的指示,所以这个结果对于用户来说很难具有很强的说服力。
发明内容
本发明的目的就是为了解决上述问题,提供一种基于恶意网络流量词库的恶意软件检测可视化方法及系统,充分解决了恶意流量检测过程对用户的透明性问题。
为了实现上述目的,本发明采用如下技术方案:
基于恶意网络流量词库的恶意软件检测可视化方法,包括如下步骤:
步骤(1):对HTTP网络流的内容进行单词分割,并建立恶意网络流量词库;
步骤(2):训练恶意软件检测模型;
步骤(3):对待检测的HTTP网络流的流内容进行单词分割,分割成单词集合;
步骤(4):利用步骤(1)得到的词库将步骤(3)的单词集合进行向量化处理;
步骤(5):将步骤(4)的词向量输入到步骤(2)训练得到的恶意软件检测模型中,恶意软件检测模型通过计算给出检测结果;如果待检测HTTP网络流被预测为恶意流量,找到所述恶意流量的HTTP网络流的源头app,将源头app标记为恶意app;进入步骤(6);
步骤(6):计算恶意网络流中单词的权重;
步骤(7):恶意网络流的流内容可视化。
所述步骤(1)的步骤为:
步骤(1-1):获取正常的HTTP网络流量的内容,对获取到的正常的HTTP网络流量的内容进行分词,得到正常的HTTP网络流量的正常词集;进入步骤(1-3);
步骤(1-2):获取恶意的HTTP网络流量的内容,对获取到的恶意的HTTP网络流量的内容进行分词,得到恶意的HTTP网络流量的恶意词集;进入步骤(1-4);
步骤(1-3):对正常的HTTP网络流量的正常词集进行单词过滤,按照自定义的过滤规则粗粒度地过滤掉与恶意软件的检测无关的单词;进入步骤(1-5);
步骤(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):卡方检验:利用每个单词在不同类别的单词集中出现的归一化之后的数值,根据卡方公式计算每个单词的得分,卡方公式如下:
其中,χ2(t,c)指的是特征t(一个单词)和类别c(恶意)之间的卡方值,χ2(t,c)值越大,说明特征t对类别c的表征程度就越大,特征t在类别c中就越有意义。是指特征t和类别c共同出现的次数,是指假设特征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):对恶意网络流量词库得到的每个单词集合进行向量化;
步骤(2-2):设置训练终止条件,所述终止条件包括:训练次数的阈值或训练结果准确率变化阈值;
步骤(2-3):将所有向量输入到机器学习分类算法中进行训练;
步骤(2-4):训练过程达到终止条件后结束训练,得到训练好的恶意软件检测模型。
所述步骤(3)的步骤为:
步骤(3-1):待检测流内容获取,使用T-shark命令将待检测网络流量文件中的每一条HTTP网络流的流内容写入到对应的txt文件中;
步骤(3-2):利用特殊符号将每个保存待检测流内容的txt文件进行分词处理,得到待检测的HTTP网络流量的词集。
T-shark命令是:tshark–r网络流量文件名–q–z\”follow,tcp,ascii,o\”>文本文档名。
所述待检测网络流量文件是待检测的app因为连接网络而产生的网络流量文件。
所述步骤(4)的步骤为:
步骤(4-1):词向量初始化:初始化与恶意网络流量词库具有相同维度的行向量,每个元素都初始化为0;
步骤(4-2):遍历恶意网络流量词库中的每个单词,判断遍历是否结束,如果未结束,则继续判断当前遍历的单词是否存在于待向量化的HTTP网络流量的词集中;
步骤(4-3):如果当前遍历的单词不存在于待向量化的HTTP网络流量的词集中,则将当前遍历的单词的索引位置处的值置为0;如果当前遍历的单词存在于待向量化的HTTP网络流量的词集中,则将当前遍历的单词的索引位置处的值置为1;返回步骤(4-2)继续遍历;直至恶意网络流量词库中的单词遍历结束,完成待向量化的HTTP网络流的向量化,得到HTTP网络流的词向量。
所述步骤(5)的判断待检测的词向量是否落入恶意软件检测模型中步骤为:
步骤(5-1):将步骤(4)的词向量输入到步骤(2)训练好的恶意软件检测模型中;
步骤(5-2):根据检测模型的输出结果,判断这条待检测的HTTP网络流是正常的还是恶意的;
步骤(5-3):找出被判别为恶意的HTTP网络流的源头app,将找出的app标记为恶意app,并转向步骤(6);否则,结束。
所述步骤(6)的步骤为:
步骤(6-1):遍历预测为恶意的HTTP网络流组成的单词词集,判断是否遍历结束,如果是就结束;如果否就进入步骤(6-2);
步骤(6-2):如果当前遍历的单词也存在恶意网络流量词库中,则计算出单词的词频-逆文档频率tf-idf,否则,将单词对应的tf-idf值设为0;并将得到的值加入到词频-逆文档频率TF-IDF列表中;当完成所有单词的遍历之后,就得到恶意网络流中每个单词的词频-逆文档频率tf-idf;转向步骤(7)。
所述步骤(7)的步骤为:
步骤(7-1):排序,对词频-逆文档频率TF-IDF列表按照tf-idf值从大到小的顺序进行排序;
步骤(7-2):可视化参数配置;所述参数包括:可视化图像的背景颜色、最大字体大小、字体样式、字体颜色、词间隔、词排列顺序和遮罩图形;
步骤(7-3):根据每个词的词频-逆文档频率tf-idf和步骤(7-2)设置的参数使用python语言的wordcloud库绘制恶意网络流流内容的可视化图像。
基于恶意网络流量词库的恶意软件检测可视化系统,包括:
单词分割单元:对HTTP网络流的内容进行单词分割,并建立恶意网络流量词库;
检测模型训练的单元:训练恶意软件检测模型;
单词集合分割单元:对待检测的HTTP网络流的流内容进行单词分割,分割成单词集合;
向量化处理单元:利用单词分割单元得到的词库将单词集合分割单元的单词集合进行向量化处理;
检测单元:将向量化处理单元的词向量输入到检测模型训练的单元训练得到的恶意软件检测模型中,恶意软件检测模型通过计算给出检测结果;如果待检测HTTP网络流被预测为恶意流量,找到所述恶意流量的HTTP网络流的源头app,将源头app标记为恶意app;进入权重计算单元;
权重计算单元:计算恶意网络流中单词的权重;
可视化单元:恶意网络流的流内容可视化。
本发明的有益效果:
(1)本发明提出了一种恶意网络流量词库建立方法。这种词库的建立是将自然语言处理的思想应用到网络流量层面。利用这个词库可以有效地进行恶意软件的检测。
(2)本发明使用了从流内容中提取特征,设定了几种规则过滤器,并使用卡方检验的方法进行特征的选择,避免了人工选择特征的难度。
(3)本发明设计了一种利用恶意网络流量词库结合机器学习分类算法进行恶意软件检测的方法。
(4)本发明设计了一种恶意流量内容可视化的方法。解决了恶意流量检测过程对用户的透明性问题。用户可以通过这种可视化方法看到恶意流量中的具体内容。并且直观地感受到对恶意检测结果做出贡献的单词。
附图说明
图1为本发明整体流程图;
图2为恶意网络流量词库建立模块的流程图;
图3为训练恶意软件检测模型的流程图;
图4为一条流产生的单词集向量化模块的流程图;
图5为计算恶意流中单词的权重的流程图;
图6为根据权重对恶意流量的流内容进行可视化的流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
本发明可以满足以下几点基本的要求:
(1)建立了一个恶意网络流量词库,该词库可以被应用到恶意软件检测的方法中去。
(2)利用自己建立的这个恶意网络流量词库,结合机器学习的方法,建立了一个检测模型。
(3)对预测出的恶意app产生的网络流量中的恶意单词进行可视化展示,以直观的形式展示每个单词在恶意流量中的重要性。
如图1所示,基于恶意网络流量词库的恶意软件检测结果可视化方法,包括如下步骤:
步骤100,恶意网络流量词库建立模块。通过该模块,可以得到一个恶意网络流量词库。图2描述了词库建立的具体过程。
步骤101,恶意流量检测模型训练模块。通过该模块,可以得到一个恶意流量的检测模型。图3描述了这个模型的具体训练过程。
步骤102,未知流量的检测模块,由上步训练出的检测模型可以对未知类别的网络流量进行分类。具体的检测过程在图4中描述。
步骤103,检测模块的输入,将步骤102得到的词向量化输入到检测模型中。
步骤104,判断检测结果是否为恶意。
步骤105,如果检测结果为恶意,则找到产生该恶意网络流的源头app,并标记该app为恶意app。
步骤106,计算该条恶意网络流中每个单词的权重值tf-idf。
步骤107,根据步骤106计算得到的tf-idf值可视化恶意流内容。具体的可视化过程在图6中描述。
图2为恶意网络流量词库建立模块的流程图,它的具体工作过程为:
步骤200,正常流内容获取,正常流内容获取,使用T-shark命令“tshark–r网络流量文件名–q–z\”follow,tcp,ascii,o\”>文本文档名”将一个网络流量文件(一个正常app因为连接网络而产生的网络流量文件)中的每一条HTTP网络流的流内容写入到对应的txt文件中;
步骤201,恶意流内容获取,使用T-shark命令“tshark–r网络流量文件名–q–z\”follow,tcp,ascii,o\”>文本文档名”将一个网络流量文件(一个恶意app因为连接网络而产生的网络流量文件)中的每一条HTTP网络流的流内容写入到对应的txt文件中;
步骤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,归一化,对步骤122得到的统计次数进行归一化处理。防止因为正常流词集和恶意流词集的规模不一致造成的偏差。
步骤213,卡方检验,利用每个单词在不同类别的单词集中出现的归一化之后的数值,根据卡方公式计算每个单词的得分。
步骤214,设定分数的阈值或者是设定得分排序排在前K位的K值(此设置二选一,不可全设置)。
步骤215,遍历总单词集合中的每个单词,判断单词遍历条件是否结束,即是否完成了对所有单词的遍历。
步骤216,判断当前单词的得分是否大于阈值或者排在前K位。
步骤217,如果当前单词的得分小于阈值或者没有排在前K位,则忽略这个单词。
步骤218,如果当前单词的得分大于阈值或者排在了前K位,接着判断该单词是否来自于恶意流生成的单词集合。
步骤219,如果当前单词不是来自于恶意流生成的单词集合,即此单词来自正常流单词集合,则忽略这个单词。
步骤220,如果当前单词存在恶意的单词集合中,则将该单词加入到恶意网络流量词库中。
当遍历完了所有的单词之后,恶意网络流量词库也建立完成了。
图3为训练检测模型的流程图,每一步的具体操作为:
步骤300,同步骤200和202获取正常网络流的流内容和恶意网络流的流内容。
步骤301,同步骤201和步骤203对正常网络流的流内容和恶意网络流的流内容使用特殊符号作为分隔符进行分词处理。每条流的流内容变成一个独立的单词集。
步骤302,对步骤301得到的流的单词集进行向量化。
步骤303,对模型进行参数化设置,如设置训练的次数等。
步骤304,将步骤302得到的所有向量输入到模型中进行训练。
步骤305,将训练好的检测模型保存出来。
图4为对待测流的流内容进行向量化模块流程图,它的具体工作流程为:
步骤400,词向量初始化,即初始化一个维度与恶意网络流量词库大小相同的行向量,每个元素都初始化为0。
步骤401,开始遍历词库中的每个单词,如果当前遍历条件不不符合,则结束。
步骤402,如果当前的遍历还未结束,判断当前遍历的单词是否也存在待测流的单词集中。
步骤403,如果当前遍历的单词不存在待测流的单词集中,则将此单词的索引位置处的值值为0。
步骤404,如果当前遍历的单词存在待测流的单词集中,则将此单词的索引位置处的值值为1。
等到词库中的单词都遍历结束,也完成了一个条流的向量化。
图5为计算恶意网络流中每个单词的词权重流程图,它的具体工作流程为:
步骤500,遍历预测为恶意的HTTP网络流组成的单词词集,判断是否遍历完了所有的单词。
步骤501,如果判断结果为是,即完成了对所有单词的遍历,则结束。
步骤502,如果当前遍历的单词不存在恶意网络流量词库中,则将该单词的词频-逆文档频率tf-idf设为0。
步骤503,如果当前遍历的单词也存在恶意网络流量词库中,则计算将该单词对应的tf-idf值。
步骤504,将计算出的tf-idf值加入到TF-IDF列表中。
当完成对每个单词的遍历之后,就可以得到该流中所有单词的tf-idf值。这些tf-idf值就作为每个单词的权重,决定这每个单词的表现形式,具体的可视化步骤见图6。
图6为本发明实现根据词权重可视化网络流内容的流程图,该方法包括:
步骤600,排序,对TF-IDF列表按照值从大到小的顺序进行排序。
步骤601,可视化参数配置,即设置可视化图像的背景颜色,最大字体大小,字体样式,字体颜色,词间隔,词排列顺序,遮罩图形等。
步骤602,根据每个词的tf-idf值和设置的参数,绘制出包含体现恶意流内容的可视化图像。绘制图像遵循的原则为:权值大的单词使用更大的字号,更鲜艳的字体颜色,权值小的单词使用较小的字号,不显眼的颜色。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (8)
1.基于恶意网络流量词库的恶意软件检测可视化方法,其特征是,包括如下步骤:
步骤(1):对HTTP网络流的内容进行单词分割,并建立恶意网络流量词库;
步骤(2):训练恶意软件检测模型;
步骤(3):对待检测的HTTP网络流的流内容进行单词分割,分割成单词集合;
步骤(4):利用步骤(1)得到的词库将步骤(3)的单词集合进行向量化处理;
步骤(5):利用步骤(4)将单词集合进行向量化处理得到的词向量输入到步骤(2)训练得到的恶意软件检测模型中,恶意软件检测模型通过计算给出检测结果;如果待检测HTTP网络流被预测为恶意流量,找到所述恶意流量的HTTP网络流的源头app,将源头app标记为恶意app;进入步骤(6);
步骤(6):计算预测结果为恶意的网络流产生的所有单词的权重;
步骤(7):恶意网络流的流内容可视化;
所述步骤(6)的步骤为:
步骤(6-1):遍历预测为恶意的HTTP网络流组成的单词词集,判断是否遍历结束,如果是就结束;如果否就进入步骤(6-2);
步骤(6-2):如果当前遍历的单词也存在恶意网络流量词库中,则计算出单词的词频-逆文档频率tf-idf,否则,将单词对应的tf-idf值设为0;并将得到的值加入到词频-逆文档频率TF-IDF列表中;当完成所有单词的遍历之后,就得到恶意网络流中每个单词的词频-逆文档频率tf-idf;转向步骤(7);
所述步骤(7)的步骤为:
步骤(7-1):排序,对词频-逆文档频率TF-IDF列表按照tf-idf值从大到小的顺序进行排序;
步骤(7-2):可视化参数配置;所述参数包括:可视化图像的背景颜色、最大字体大小、字体样式、字体颜色、词间隔、词排列顺序和遮罩图形;
步骤(7-3):根据每个词的词频-逆文档频率tf-idf值和步骤(7-2)设置的参数使用python语言的wordcloud库绘制恶意网络流流内容的可视化图像。
2.如权利要求1所述的基于恶意网络流量词库的恶意软件检测可视化方法,其特征是,所述步骤(1)的步骤为:
步骤(1-1):获取正常的HTTP网络流量的内容,对获取到的正常的HTTP网络流量的内容进行分词,得到正常的HTTP网络流量的正常词集;进入步骤(1-3);
步骤(1-2):获取恶意的HTTP网络流量的内容,对获取到的恶意的HTTP网络流量的内容进行分词,得到恶意的HTTP网络流量的恶意词集;进入步骤(1-4);
步骤(1-3):对正常的HTTP网络流量的正常词集进行单词过滤,按照自定义的过滤规则粗粒度地过滤掉与恶意软件的检测无关的单词;进入步骤(1-5);
步骤(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):卡方检验:利用每个单词在不同类别的单词集中出现的归一化之后的数值,根据卡方公式计算每个单词的得分,卡方公式如下:
其中,χ2(t,c)指的是特征t和类别c之间的卡方值,χ2(t,c)值越大,说明特征t对类别c的表征程度就越大,特征t在类别c中就越有意义,特征t是指一个单词,类别c是指恶意;是指特征t和类别c共同出现的次数,是指假设特征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):判断当前单词是否存在于恶意词集中;如果当前单词不存在于恶意词集中,则忽略这个单词;如果当前单词存在于恶意词集中,则将当前单词加入到恶意流量词库中;当遍历完所有的单词之后,恶意网络流量词库建立完成。
3.如权利要求2所述的基于恶意网络流量词库的恶意软件检测可视化方法,其特征是,所述步骤(1-1)的步骤为:
步骤(1-1-1):正常流内容获取,使用T-shark命令将正常网络流量文件中的每一条HTTP网络流的流内容写入到对应的文本文档中;
步骤(1-1-2):利用特殊符号对文本文档中的内容进行分词处理,得到HTTP网络流量的正常词集;
所述步骤(1-2)的步骤为:
步骤(1-2-1):恶意流内容获取,使用T-shark命令将恶意网络流量文件中的每一条HTTP网络流的流内容写入到对应的文本文档中;
步骤(1-2-2):利用特殊符号将每个保存恶意流内容的文本文件进行分词处理,得到恶意的HTTP网络流量的恶意词集;
所述步骤(1-3)的步骤为:
步骤(1-3-1):遍历正常的HTTP网络流量的正常词集中的每个单词,过滤掉全部是数字的单词;
步骤(1-3-2):遍历正常的HTTP网络流量的正常词集中的每个单词,过滤掉在每条流中出现频率超过设定阈值的单词;
步骤(1-3-3):遍历正常的HTTP网络流量的正常词集中的每个单词,过滤掉停用词;
所述步骤(1-4)的步骤为:
步骤(1-4-1):遍历恶意的HTTP网络流量的恶意词集中的每个单词,过滤掉全部是数字的单词;
步骤(1-4-2):遍历恶意的HTTP网络流量的恶意词集中的每个单词,过滤掉在每条流中出现频率超过设定阈值的单词;
步骤(1-4-3):遍历恶意的HTTP网络流量的恶意词集中的每个单词,过滤掉停用词。
4.如权利要求1所述的基于恶意网络流量词库的恶意软件检测可视化方法,其特征是,
所述步骤(2)的步骤为:
步骤(2-1):对恶意网络流量词库得到的每个单词集合进行向量化;
步骤(2-2):设置训练终止条件,所述终止条件包括:训练次数的阈值或训练结果准确率变化阈值;
步骤(2-3):将所有向量输入到机器学习分类算法中进行训练;
步骤(2-4):经过设置的训练次数之后或者达到终止条件后得到训练好的恶意软件检测模型。
5.如权利要求1所述的基于恶意网络流量词库的恶意软件检测可视化方法,其特征是,所述步骤(3)的步骤为:
步骤(3-1):待检测流内容获取,使用T-shark命令将待检测网络流量文件中的每一条HTTP网络流的流内容写入到对应的txt文件中;
步骤(3-2):利用特殊符号将每个保存待检测流内容的txt文件进行分词处理,得到待检测的HTTP网络流量的词集。
6.如权利要求1所述的基于恶意网络流量词库的恶意软件检测可视化方法,其特征是,
所述步骤(4)的步骤为:
步骤(4-1):将词向量初始化,使得词向量与恶意网络流量词库具有相同维度的词向量;
步骤(4-2):遍历恶意网络流量词库中的每个单词,判断遍历是否结束,如果未结束,则继续判断当前遍历的单词是否存在待向量化的网络流量词集中;
步骤(4-3):如果当前遍历的单词不存在于待向量化的网络流量词集中,则将当前遍历的单词的索引位置处的值置为0;如果当前遍历的单词存在于待向量化的网络流量词集中,则将当前遍历的单词的索引位置处的值置为1;返回步骤(4-2)继续遍历;直至恶意网络流量词库中的单词遍历结束,完成待向量化的HTTP网络流的向量化,得到HTTP网络流的词向量。
7.如权利要求1所述的基于恶意网络流量词库的恶意软件检测可视化方法,其特征是,
所述步骤(5)的步骤为:
步骤(5-1):将步骤(4)的词向量输入到步骤(2)训练好的恶意软件检测模型中;
步骤(5-2):根据检测模型的输出结果,判断这条待检测的HTTP网络流是正常的还是恶意的;
步骤(5-3):找出被判别为恶意的HTTP网络流的源头app,将找出的app标记为恶意app,并转向步骤(6);否则,结束。
8.基于恶意网络流量词库的恶意软件检测可视化系统,其特征是,包括:
单词分割单元:对HTTP网络流的内容进行单词分割,并建立恶意网络流量词库;
检测模型训练的单元:训练恶意软件检测模型;
单词集合分割单元:对待检测的HTTP网络流的流内容进行单词分割,分割成单词集合;
向量化处理单元:利用单词分割单元得到的词库将单词集合分割单元的单词集合进行向量化处理;
检测单元:利用向量化处理单元将单词集合进行向量化处理得到的词向量输入到检测模型训练的单元训练得到的恶意软件检测模型中,恶意软件检测模型通过计算给出检测结果;如果待检测HTTP网络流被预测为恶意流量,找到所述恶意流量的HTTP网络流的源头app,将源头app标记为恶意app;进入权重计算单元;
权重计算单元:计算恶意网络流中单词的权重;
可视化单元:恶意网络流的流内容可视化;
遍历预测为恶意的HTTP网络流组成的单词词集,判断是否遍历完了所有的单词;
如果判断结果为是,即完成了对所有单词的遍历,则结束;
如果当前遍历的单词不存在恶意网络流量词库中,则将该单词的词频-逆文档频率tf-idf设为0;
如果当前遍历的单词也存在恶意网络流量词库中,则计算将该单词对应的tf-idf值;
将计算出的tf-idf值加入到TF-IDF列表中;
当完成对每个单词的遍历之后,就可以得到该流中所有单词的tf-idf值;
排序,对TF-IDF列表按照值从大到小的顺序进行排序;
可视化参数配置,即设置可视化图像的背景颜色,最大字体大小,字体样式,字体颜色,词间隔,词排列顺序,遮罩图形等;
根据每个词的tf-idf值和设置的参数,绘制出包含体现恶意流内容的可视化图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611243535.7A CN106845230B (zh) | 2016-12-29 | 2016-12-29 | 基于恶意网络流量词库的恶意软件检测可视化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611243535.7A CN106845230B (zh) | 2016-12-29 | 2016-12-29 | 基于恶意网络流量词库的恶意软件检测可视化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106845230A CN106845230A (zh) | 2017-06-13 |
CN106845230B true CN106845230B (zh) | 2019-05-14 |
Family
ID=59113203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611243535.7A Active CN106845230B (zh) | 2016-12-29 | 2016-12-29 | 基于恶意网络流量词库的恶意软件检测可视化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106845230B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109190372B (zh) * | 2018-07-09 | 2021-11-12 | 四川大学 | 一种基于字节码的JavaScript恶意代码检测方法 |
CN109063117B (zh) * | 2018-07-31 | 2021-01-01 | 中南大学 | 一种基于特征抽取的网络安全博客分类方法及系统 |
CN109117634B (zh) * | 2018-09-05 | 2020-10-23 | 济南大学 | 基于网络流量多视图融合的恶意软件检测方法及系统 |
CN109376531B (zh) * | 2018-09-28 | 2021-06-01 | 杭州电子科技大学 | 基于语义重编码与特征空间分离的Web入侵检测方法 |
CN111062034A (zh) * | 2018-10-16 | 2020-04-24 | 中移(杭州)信息技术有限公司 | 一种Webshell文件检测方法、装置、电子设备及存储介质 |
CN110493235A (zh) * | 2019-08-23 | 2019-11-22 | 四川长虹电器股份有限公司 | 一种基于网络流量特征的移动终端恶意软件同步检测方法 |
CN112199680A (zh) * | 2020-10-16 | 2021-01-08 | 江苏小梦科技有限公司 | 一种移动互联网恶意软件检测的方法及系统 |
CN112770127A (zh) * | 2020-12-30 | 2021-05-07 | 北京京拍档科技股份有限公司 | 一种互联网直播系统 |
CN112764791B (zh) * | 2021-01-25 | 2023-08-08 | 济南大学 | 一种增量更新的恶意软件检测方法及系统 |
CN114884882B (zh) * | 2022-06-16 | 2023-11-21 | 深圳星云智联科技有限公司 | 一种流量可视化方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022960A (zh) * | 2015-08-10 | 2015-11-04 | 济南大学 | 基于网络流量的多特征移动终端恶意软件检测方法及系统 |
CN105072045A (zh) * | 2015-08-10 | 2015-11-18 | 济南大学 | 一种具有恶意软件网络行为发现能力的无线路由器 |
-
2016
- 2016-12-29 CN CN201611243535.7A patent/CN106845230B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022960A (zh) * | 2015-08-10 | 2015-11-04 | 济南大学 | 基于网络流量的多特征移动终端恶意软件检测方法及系统 |
CN105072045A (zh) * | 2015-08-10 | 2015-11-18 | 济南大学 | 一种具有恶意软件网络行为发现能力的无线路由器 |
Also Published As
Publication number | Publication date |
---|---|
CN106845230A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106845230B (zh) | 基于恶意网络流量词库的恶意软件检测可视化方法及系统 | |
JP6018345B2 (ja) | マルウェア判定器、マルウェア判定システム、マルウェア判定方法、プログラム | |
CN103870751B (zh) | 入侵检测方法及系统 | |
CN106685964B (zh) | 基于恶意网络流量词库的恶意软件检测方法及系统 | |
CN105095829A (zh) | 一种人脸识别方法及系统 | |
CN108376164B (zh) | 一种潜力主播的展示方法及装置 | |
CN107003992B (zh) | 用于神经语言行为识别系统的感知联想记忆 | |
CN104020845B (zh) | 基于shapelet特征的加速度传感器放置无关化运动识别方法 | |
CN104573013A (zh) | 结合类别权重的集成学习分类方法 | |
CN104679818A (zh) | 一种视频关键帧提取方法及系统 | |
CN109325193A (zh) | 基于机器学习的waf正常流量建模方法以及装置 | |
CN109190371A (zh) | 一种基于行为图的Android恶意软件检测方法和技术 | |
CN106874762B (zh) | 基于api依赖关系图的安卓恶意代码检测方法 | |
CN107992840B (zh) | 多分段多阈值约束的时间序列模式查找方法和系统 | |
CN107729947A (zh) | 一种人脸检测模型训练方法、装置和介质 | |
CN104301170B (zh) | 基于特征分类的移动终端应用友好性评判方法 | |
CN107729909B (zh) | 一种属性分类器的应用方法及装置 | |
Wang et al. | An adult image recognizing algorithm based on naked body detection | |
CN105930430B (zh) | 一种基于非累积属性的实时欺诈检测方法及装置 | |
CN116028112A (zh) | 一种基于复杂网络分析的小程序克隆检测方法 | |
CN108960952A (zh) | 一种违禁信息的检测方法及装置 | |
CN104978553A (zh) | 图像分析的方法及装置 | |
CN105976386B (zh) | 一种突变点排序求路面病害二值图斑边界方法 | |
CN104615605B (zh) | 用于预测数据对象的类目的方法和装置 | |
CN112764791A (zh) | 一种增量更新的恶意软件检测方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |