CN103036743A - 一种窃密木马的tcp心跳行为的检测方法 - Google Patents
一种窃密木马的tcp心跳行为的检测方法 Download PDFInfo
- Publication number
- CN103036743A CN103036743A CN2012105553717A CN201210555371A CN103036743A CN 103036743 A CN103036743 A CN 103036743A CN 2012105553717 A CN2012105553717 A CN 2012105553717A CN 201210555371 A CN201210555371 A CN 201210555371A CN 103036743 A CN103036743 A CN 103036743A
- Authority
- CN
- China
- Prior art keywords
- packet
- tcp
- heartbeat
- threshold value
- byte
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种窃密木马的TCP心跳行为的检测方法,包括:步骤1,抓取网络数据包,还原成TCP数据流;步骤2,检测是否有TCP保活心跳行为;步骤3,检测是否有TCP连接内心跳行为;步骤4,检测是否有TCP连接级心跳行为:步骤5,对检测出的窃密木马心跳行为进行误判检测。本发明基于网络数据包大小、方向和时间等特征,能计算出心跳的周期及其波动的范围,方法简单,检测结果准确全面,能运用在实时检测窃密木马的***中,具有较好的检测效果。
Description
技术领域
本发明涉及窃密木马检测领域,是一种窃密木马的TCP(TransmissionControl Protocol,传输控制协议)心跳行为的检测方法。
背景技术
近年来,网络失泄密事件频频发生,给国家和社会造成了严重损失和重大影响。其中很大一部分泄密事件来自于窃密木马攻击,检测窃密木马对检测失泄密事件具有重要的积极意义。由于窃密木马具有隐蔽性、潜伏性等特征,一旦窃取敏感数据成功,轻则造成隐私泄露,重则使企业或国家遭受重大损失。简单地通过关键字匹配、特征码扫描等方式对加密传输木马和最新的木马已无能为力,一种能检测未知木马、基于网络行为的检测方法正逐渐流行。
大多数窃密木马控制端为了监控受控端的状态,两者直接会适时地通信,这种保活措施称为心跳行为,产生的数据包称为心跳数据包。这些数据包或者具有周期行为,或者为了躲避统计分析进行了随机化处理。目前窃密木马主要的心跳行为类型如表1所示。
表1窃密木马心跳行为说明
TCP保活心跳行为利用TCP协议自身提供的心跳机制,通信一端在空闲时向对端发送一个字节的数据,另一端返回ACK报文。TCP连接内心跳行为指在一个TCP连接内部,通信一端周期性的发送固定长度的报文。TCP连接级心跳行为指木马程序每隔一段时间想另一端发起TCP连接,连接成功后即断开连接,表现为TCP短连接。
目前对木马心跳行为已有的检测方法主要有三种。第一种是基于规则的检测,例如将“存在连续多个大小相同的报文,且到达间隔时间差小于某个阈值”作为一条检测规则。该方法能检测某些木马心跳行为,却无法检测到心跳数据包随机到达的窃密木马,容易产生漏报。第二种方法是基于傅里叶变换的周期检测方法。该方法对包的到达时间间隔进行离散傅里叶变换,由于窃密木马心跳具有周期性特征,其高频系数接近于0,低频系数很大,而正常通信的低频系数与高频系数差异不如窃密木马的心跳行为大,因此可以利用高低频系数的差异值可以作为木马心跳行为的检测依据。该方法的主要缺点是只考虑了报文的到达时间,没有考虑报文大小,容易产生误报,而且该方法计算复杂,开销较大。第三种方法是基于小波分解的方法。该方法简化了傅里叶变换的计算,只计算高频系数,如果高频系数低于阈值,则认为是心跳行为。这种方法计算简单,但继承了傅里叶变换检测方法中容易产生误报的缺点。
发明内容
本发明所要解决的技术问题是提供一种有效的窃密木马TCP心跳行为的检测方法,用于实现准确地检测多种窃密木马心跳行为。
本发明解决上述技术问题的技术方案如下:一种窃密木马的TCP心跳行为的检测方法,包括:
步骤1,抓取网络数据包,还原成TCP数据流,并记录TCP数据流信息;
步骤2,检测是否有TCP保活心跳行为:判断来自服务端和客户端的心跳数据包数量是否超过最少心跳数据包数量,若是则存在TCP保活心跳行为,并执行步骤5,否则根据窃密木马的连接持续时间是否超过阈值,执行步骤3或步骤4。
步骤3,若连接持续时间超过阈值,检测是否有TCP连接内心跳行为:根据一个连接内每个方向的数据包的字节数和时间,判断字节数大小相似的数据包的发送序列是否具有周期性,若周期性明显则判断为可疑TCP连接内心跳行为,并执行步骤5,否则结束检测流程;
步骤4,若连接持续时间未超过阈值,检测是否有TCP连接级心跳行为:分析具有相同三元组的若干连续TCP短连接的时间和通信字节数,判断通信字节数相似的连接序列是否具有周期性,若周期性明显则可判断为可疑TCP连接级心跳行为,并执行步骤5,否则结束检测流程;
步骤5,检测步骤2、步骤3或步骤4得到的相应心跳行为是否存在误判,若是则返回步骤1,否则结束检测流程。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤1中的TCP数据流信息包括:通信开始时间、结束时间、源IP地址、目的IP地址、源端口、目的端口、数据包字节数、数据包到达时间、序列号和确认序列号。
进一步,所述步骤2中判断一个数据包是否为心跳数据包的条件为:
式中,下标s和c分别表示数据包来自服务端和客户端SeqAckc和SeqAcks分别表示来自客户端和服务端的数据包确认序列号,Seqc和Seqs分别表示来自客户端和服务端的数据包序列号,PacketLengthc和PacketLengths分别表示来自客户端和服务端的数据包字节数。
进一步,所述步骤2中根据窃密木马连接持续时间是否超过阈值,执行步骤3或步骤4具体包括:若连接持续时间超过阈值,则为窃密木马建立的长连接,并执行步骤3,否则为窃密木马建立的短连接,并执行步骤4。
进一步,所述步骤3中,判断字节数大小相似的数据包的发送序列是否具有周期性具体包括:过滤掉字节数超过数据包最大字节数的数据包,然后将字节数大小相似的数据包聚为一类,每一类中的数据包按到达时间排序,计算相邻数据包到达时间差值的均值和方差。判断该连接是否有TCP连接内心跳行为的条件为:
式中,Tk,i表示第k个类中的第i个数据包的到达时间,第k个类中共有nk个数据包,Δ是方差阈值,N是数据包数量阈值。
进一步,将字节数大小相似的数据包聚为一类具体包括:通过相似度倒数ρ来确定字节数大小相似的数据包,ρ越小,数据包的相似度越大,将ρ小于相似度阈值Ω的数据包聚为一类,且所述相似度倒数ρ的计算公式为:
进一步,所述步骤4中三元组是指源IP地址、目的IP地址和目的端口号。
进一步,所述步骤4中判断通信字节数相似的连接序列是否具有周期性具体包括:采用步骤3的方法,使用不同的到达时间方差阈值和数据包数量阈值,确定TCP连接是否具有周期性。
进一步,所述步骤5检测步骤2、步骤3或步骤4得到的相应心跳行为是否存在误判时,不存在误判的条件为:
其中Sumout和Sumin表示排除心跳报文或连接后内网主机发送和接收的字节数,Φ是比值阈值,MinConnectionTime是窃密木马通信最小持续时间阈值。
本发明的有益效果是:本发明基于网络数据包大小、方向和时间等特征,能计算出心跳的周期及其波动的范围,其主要优点是计算方法简单,检测结果准确全面,能运用在实时检测窃密木马的***中,具有较好的检测效果。
附图说明
图1为本发明实施例中窃密木马心跳行为检测部署环境的示意图;
图2为本发明进行窃密木马心跳行为检测的流程示意图;
图3为本发明实施例的聚类流程图;
图4为本发明实施例中灰鸽子木马心跳行为的检测结果图;
图5为本发明实施例中上兴远控木马心跳行为的检测结果图;
图6为本发明实施例中PCShare木马心跳行为的检测结果图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
为了不干扰正常的网络通信,本实施例的窃密木马心跳行为检测服务器捕获并分析从交换机上旁路过来的流量,通过监控TCP流发现窃密木马的心跳行为,并对可疑心跳行为进行报警。其实施的网络环境如图1所示。
如图2所示,本实施例分为四个步骤,具体如下。
1)抓取网络数据包,还原TCP数据流,并记录TCP流信息:
通信开始时间BeginTime、结束时间EndTime、源IP地址SIP、目的IP地址DIP、源端口SrcPort、目的端口DstPort、数据包的字节数PacketLength、数据包到达时间PacketTime、序列号Seq和确认序列号SeqAck。
2)检测TCP保活心跳行为。主要通过TCP流中客户端和服务端发送数据包长度和序列号进行判断。如果检测到该类心跳行为则执行步骤5)。相反,如果连接持续时间超过阈值ConnectionTime,可能是窃密木马建立的长连接,执行步骤3),否则认为是短连接,执行步骤4)。
3)检测TCP连接内心跳行为。根据一个连接内每个方向的数据包大小和时间,判断大小相似的数据包的发送序列是否具有周期性。如果周期性明显是可疑连接内心跳行为,执行步骤5)。否则不认为是窃密木马的心跳,开始新的检测。
4)检测TCP连接级心跳行为。分析具有相同三元组(SIP,DIP,DstPort)的若干连续TCP短连接的时间和通信字节数,判断通信字节数相似的连接序列是否具有周期性。如果周期性明显则是可疑TCP连接级心跳行为,执行步骤5)。否则不认为是窃密木马连接,开始新的检测。
5)心跳行为误判检测。由于窃密木马的上传字节数大于下载的字节数且木马连接时间往往较长,计算可疑的木马连接的两个方向上通信量比值和通信时间,判断是否为窃密木马产生的心跳行为。将检测结果记录后,开始新的检测。
其中,步骤2)、3)和4)是本检测方法的核心,分别检测三种类型的心跳行为。
在步骤2)中检测TCP保活心跳行为的条件为心跳数据包数量超过阈值MinKeepaliveCount(最小心跳包数量)。其中判断一个数据包是否为心跳数据包的条件为:
其中下标s和c分别表示数据包来自服务端和客户端。
在步骤3)中检测TCP连接内的心跳行为,由于心跳报文大小比较小,需要先过滤掉大于MaxPacketLength(最大数据包字节数)的数据包,然后将大小相似的数据包聚为一类。相似度倒数ρ的计算公式为:
其中PacketLength和PacketLength'分别表示两个不同数据包的大小,表示连接内平均包大小。ρ越小,相似度越大。ρ小于阈值Ω的数据包被聚为一类。每一类中的数据包按到达时间排序,计算相邻数据包到达时间差值的均值和方差。判断该连接是否有心跳行为的条件为:
其中Tk,i表示第k个类中的第i个数据包的到达时间,第k个类中共有nk个数据包,Δ是方差阈值,N是数据包数量阈值。数据包的聚类算法如图3所示,该算法首先对原始集合中的数按大小排序,计算每个元素的相似元素的个数。然后按相似元素个数从多到小选取类中心点,该中心点与其相似元素构成一类。反复进行,直到原始集合全部元素最终被选完。
在步骤4)检测连接级的心跳行为,采用和步骤3)类似的算法,只是计算的是多个连续连接的通信数据,而不是一个连接内的通信数据,因此使用不同的到达时间方差阈值和数据包数量阈值,分别为Δ'和N'。
在步骤5)排除正常程序的心跳行为,且判断是窃密木马心跳行为的条件为:
其中Sumout和Sumin表示排除心跳报文或连接后内网主机发送和接收的字节数,Φ是比值阈值,MinConnectionTime是窃密木马通信最小持续时间阈值。
本实施例应用在实验室环境中时,各参数设置如表2所示。运用该算法分析局域网多个TCP流,能够准确检测到PCShare、上兴木马远控和灰鸽子三种类型的心跳行为。图4、图5和图6分别给出了三种木马的检测结果。图4表示灰鸽子木马受控端在空闲的时候向控制端发送一个字节的心跳报文,为典型的TCP保活心跳。图5中,上兴远控木马受控端在一个TCP连接内每隔30s发送3个字节的心跳报文,为TCP连接内心跳行为。图6中,PCShare控制端每隔13s向受控端发起连接,并发送745字节的心跳报文,是典型的TCP连接级心跳。由实验结果可知,本发明提出的方法检测结果准确,适合实时在线检测具有各种心跳行为的窃密木马。
表2参数设置
参数名 | 参考值 | 参数名 | 参考值 |
MinKeepaliveCount | 3 | MinConnectionTime | 60秒 |
MaxPacketLength | 1460字节 | Δ | 100 |
N | 10 | Δ' | 1000 |
N' | 10 | Ω | 0 |
Φ | 1.0 | ConnectionTime | 30秒 |
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种窃密木马的TCP传输控制协议心跳行为的检测方法,其特征在于,包括:
步骤1,抓取网络数据包,还原成TCP数据流,并记录TCP数据流信息;
步骤2,检测是否有TCP保活心跳行为:判断来自服务端和客户端的心跳数据包数量是否超过最少心跳数据包数量,若是则存在TCP保活心跳行为,并执行步骤5,否则根据窃密木马的连接持续时间是否超过阈值,执行步骤3或步骤4;
步骤3,若连接持续时间超过阈值,检测是否有TCP连接内心跳行为:根据一个连接内每个方向的数据包的字节数和时间,判断字节数大小相似的数据包的发送序列是否具有周期性,若是则判断为可疑TCP连接内心跳行为,并执行步骤5,否则结束检测流程;
步骤4,若连接持续时间未超过阈值,检测是否有TCP连接级心跳行为:分析具有相同三元组的若干连续TCP短连接的时间和通信字节数,判断通信字节数相似的连接序列是否具有周期性,若是则判断为可疑TCP连接级心跳行为,并执行步骤5,否则结束检测流程;
步骤5,检测步骤2、步骤3或步骤4得到的相应心跳行为是否存在误判,若是则返回步骤1,否则结束检测流程。
2.根据权利要求1所述的检测方法,其特征在于,所述步骤1中的TCP数据流信息包括:通信开始时间、结束时间、源IP地址、目的IP地址、源端口、目的端口、数据包字节数、数据包到达时间、序列号和确认序列号。
3.根据权利要求1所述的检测方法,其特征在于,所述步骤2中判断一个数据包是否为心跳数据包的条件为:
式中,下标s和c分别表示数据包来自服务端和客户端,SeqAckc和SeqAcks分别表示来自客户端和服务端的数据包确认序列号,Seqc和Seqs分别表示来自客户端和服务端的数据包序列号,PacketLengthc和PacketLengths分别表示来自客户端和服务端的数据包字节数。
4.根据权利要求1所述的检测方法,其特征在于,所述步骤2中根据窃密木马连接持续时间是否超过阈值,执行步骤3或步骤4具体包括:若连接持续时间超过阈值,则为窃密木马建立的长连接,并执行步骤3,否则为窃密木马建立的短连接,并执行步骤4。
7.根据权利要求1所述的检测方法,其特征在于,所述步骤4中三元组是指源IP地址、目的IP地址和目的端口号。
8.根据权利要求1所述的检测方法,其特征在于,所述步骤4中判断通信字节数相似的连接序列是否具有周期性具体包括:采用步骤3的方法,使用不同的到达时间方差阈值和数据包数量阈值,确定TCP连接是否具有周期性。
9.根据权利要求1所述的检测方法,其特征在于,所述步骤5中检测步骤2、步骤3或步骤4得到的相应心跳行为是否存在误判时,不存在误判的条件为:
其中Sumout和Sumin表示排除心跳报文或连接后内网主机发送和接收的字节数,Φ是比值阈值,MinConnectionTime是窃密木马通信最小持续时间阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210555371.7A CN103036743B (zh) | 2012-12-19 | 2012-12-19 | 一种窃密木马的tcp心跳行为的检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210555371.7A CN103036743B (zh) | 2012-12-19 | 2012-12-19 | 一种窃密木马的tcp心跳行为的检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103036743A true CN103036743A (zh) | 2013-04-10 |
CN103036743B CN103036743B (zh) | 2015-10-07 |
Family
ID=48023253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210555371.7A Expired - Fee Related CN103036743B (zh) | 2012-12-19 | 2012-12-19 | 一种窃密木马的tcp心跳行为的检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103036743B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401863A (zh) * | 2013-07-30 | 2013-11-20 | 北京奇虎科技有限公司 | 一种基于云安全的网络数据流分析方法和装置 |
CN105262729A (zh) * | 2015-09-11 | 2016-01-20 | 携程计算机技术(上海)有限公司 | 木马检测方法及*** |
WO2018157626A1 (zh) * | 2017-03-03 | 2018-09-07 | 华为技术有限公司 | 一种威胁检测方法及装置 |
CN110971530A (zh) * | 2018-09-28 | 2020-04-07 | 深信服科技股份有限公司 | 一种视频流量数据的识别方法、装置及设备 |
CN114024770A (zh) * | 2021-12-10 | 2022-02-08 | 北京天融信网络安全技术有限公司 | 木马入侵的检测方法及装置、电子设备、存储介质 |
CN115190051A (zh) * | 2021-04-01 | 2022-10-14 | ***通信集团河南有限公司 | 心跳数据识别方法及电子装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060130145A1 (en) * | 2004-11-20 | 2006-06-15 | Choi Byeong C | System and method for analyzing malicious code protocol and generating harmful traffic |
CN102202064A (zh) * | 2011-06-13 | 2011-09-28 | 刘胜利 | 基于网络数据流分析的木马通信行为特征提取方法 |
-
2012
- 2012-12-19 CN CN201210555371.7A patent/CN103036743B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060130145A1 (en) * | 2004-11-20 | 2006-06-15 | Choi Byeong C | System and method for analyzing malicious code protocol and generating harmful traffic |
CN102202064A (zh) * | 2011-06-13 | 2011-09-28 | 刘胜利 | 基于网络数据流分析的木马通信行为特征提取方法 |
Non-Patent Citations (2)
Title |
---|
孟磊: "《基于心跳行为分析的木马快速检测方法》", 《计算机工程》 * |
陈桂清: "《通过进程监视检测木马攻击》", 《计算机应用》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401863A (zh) * | 2013-07-30 | 2013-11-20 | 北京奇虎科技有限公司 | 一种基于云安全的网络数据流分析方法和装置 |
CN103401863B (zh) * | 2013-07-30 | 2016-12-28 | 北京奇虎科技有限公司 | 一种基于云安全的网络数据流分析方法和装置 |
CN105262729A (zh) * | 2015-09-11 | 2016-01-20 | 携程计算机技术(上海)有限公司 | 木马检测方法及*** |
CN105262729B (zh) * | 2015-09-11 | 2018-07-31 | 携程计算机技术(上海)有限公司 | 木马检测方法及*** |
CN108540430B (zh) * | 2017-03-03 | 2019-06-11 | 华为技术有限公司 | 一种威胁检测方法及装置 |
CN108540430A (zh) * | 2017-03-03 | 2018-09-14 | 华为技术有限公司 | 一种威胁检测方法及装置 |
WO2018157626A1 (zh) * | 2017-03-03 | 2018-09-07 | 华为技术有限公司 | 一种威胁检测方法及装置 |
US11665179B2 (en) | 2017-03-03 | 2023-05-30 | Huawei Technologies Co., Ltd. | Threat detection method and apparatus |
CN110971530A (zh) * | 2018-09-28 | 2020-04-07 | 深信服科技股份有限公司 | 一种视频流量数据的识别方法、装置及设备 |
CN110971530B (zh) * | 2018-09-28 | 2023-07-14 | 深信服科技股份有限公司 | 一种视频流量数据的识别方法、装置及设备 |
CN115190051A (zh) * | 2021-04-01 | 2022-10-14 | ***通信集团河南有限公司 | 心跳数据识别方法及电子装置 |
CN115190051B (zh) * | 2021-04-01 | 2023-09-05 | ***通信集团河南有限公司 | 心跳数据识别方法及电子装置 |
CN114024770A (zh) * | 2021-12-10 | 2022-02-08 | 北京天融信网络安全技术有限公司 | 木马入侵的检测方法及装置、电子设备、存储介质 |
CN114024770B (zh) * | 2021-12-10 | 2024-02-13 | 天融信雄安网络安全技术有限公司 | 木马入侵的检测方法及装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103036743B (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103036743B (zh) | 一种窃密木马的tcp心跳行为的检测方法 | |
Dagon et al. | A taxonomy of botnet structures | |
CN107454109A (zh) | 一种基于http流量分析的网络窃密行为检测方法 | |
CN101980506B (zh) | 一种基于流量特征分析的分布式入侵检测方法 | |
Al-Jarrah et al. | Network Intrusion Detection System using attack behavior classification | |
US20190034631A1 (en) | System and method for malware detection | |
CN102201937B (zh) | 基于心跳行为分析的快速木马检测方法 | |
US20170026395A1 (en) | Extracting forensic indicators from activity logs | |
Seufert et al. | Machine learning for automatic defence against distributed denial of service attacks | |
Wuu et al. | Building intrusion pattern miner for Snort network intrusion detection system | |
CN106507363B (zh) | 一种发现钓鱼接入点的方法 | |
CN103281293A (zh) | 一种基于多维分层相对熵的网络流量异常检测方法 | |
JP2015514356A (ja) | 異常部分グラフの検出のための道探査及び異常/変更検出及び網状況認知のためのdns要求及びホストエージェントの使用 | |
CN101699787B (zh) | 一种用于对等网络的蠕虫检测方法 | |
CN101478546A (zh) | 一种保护网络安全的方法和网络安全保护设备 | |
WO2020093907A1 (zh) | 基于信任及噪声点检测技术的多协议层的入侵检测方法 | |
Ding et al. | Research and implementation on snort-based hybrid intrusion detection system | |
CN103501302B (zh) | 一种蠕虫特征自动提取的方法及*** | |
CN103139219B (zh) | 基于可信交换机的生成树协议的攻击检测方法 | |
Prashanth et al. | Using random forests for network-based anomaly detection at active routers | |
CN107360190A (zh) | 基于序列模式识别的木马通信行为检测方法 | |
CN109257384B (zh) | 基于访问节奏矩阵的应用层DDoS攻击识别方法 | |
CN112235242A (zh) | 一种c&c信道检测方法及*** | |
CN109246157B (zh) | 一种http慢速请求dos攻击的关联检测方法 | |
CN116418591A (zh) | 一种计算机网络安全入侵智能检测*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151007 Termination date: 20211219 |