具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,是所述检测设备100的方框示意图。所述检测设备100 可以是个人电脑(personal computer,PC)、平板电脑等。
所述检测设备100可以包括:基于DNS流量分析的网络窃密行为检测装置、存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150、音频单元160、显示单元170。
所述存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150、音频单元160以及显示单元170各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述检测装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中或固化在客户端设备的操作***(operating system,OS)中的软件功能模块。所述处理器130用于执行存储器110中存储的可执行模块,例如所述检测装置包括的软件功能模块或计算机程序。
其中,存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的检测设备100所执行的方法可以应用于处理器130中,或者由处理器130实现。
处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit, CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器 (DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述外设接口140将各种输入/输出装置耦合至处理器130以及存储器110。在一些实施例中,外设接口140,处理器130以及存储控制器120可以在单个芯片中实现。在其他一些实例中,它们可以分别由独立的芯片实现。
输入输出单元150用于提供给用户输入数据实现用户与检测设备100 的交互。所述输入输出单元150可以是,但不限于,鼠标和键盘等。
音频单元160向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
显示单元170在检测设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元170可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器130进行计算和处理。
第一实施例
请参照图2,图2是本发明第一实施例提供的一种基于DNS流量分析的网络窃密行为检测方法的流程图,所述方法应用于检测设备。下面将对图2 所示的流程进行详细阐述,所述方法包括:
步骤S110:检测设备实时获取网络流量数据。
检测设备能直接从网卡上采集数据,也能直接接收其他***发送过来的网络流量数据。
步骤S120:所述检测设备对所述网络流量数据进行解析,判断是否解析成功。
所述检测设备可以基于RFC协议规范解析网络流量数据,还原操作者的原始网络行为信息。进一步地,所述协议解析模块能依据协议规范,从网络流量数据里解析出通信双方的信息,主要包括源IP、目的IP、源端口、目的端口、请求时间、请求内容和响应信息。
DNS协议解析的内容:源IP、目的IP、源端口、目的端口、请求时间、请求查询的查询类型、请求查询的域名、域名长度、响应码、查询结果。
步骤S121:在判断解析成功时,得到待分析数据,并保存在数据库中。
当然,所述方法还可以包括:所述检测设备在判断解析失败时,保存所述待分析数据,生成警告信息,以便所述检测设备对所述待分析数据以及所述警告信息进行风险分析。
如果因为请求数据包或者响应数据包不符合DNS协议的规范,导致解析失败。则把整个数据包内容作为请求内容或者查询结果保存到数据库里,用于后续的网络攻击取证。
正常情况下,请求查询域名的数据包发往DNS服务器的53端口,都是符合协议规范的,这样DNS服务器才能正确识别出请求信息,如果是数据窃密,传输给远程服务器的数据很可能是不符合RFC规范的数据包,导致检测设备解析失败。例如:DNS查询类型不在取值范围内、请求数据包里包含了回答信息、域名格式不符合规范,远程的DNS服务器是攻击者提前部署伪装的DNS服务器,实际是用于接收木马病毒发送过来的信息,以及用于向木马病毒发送执行下一步操作的程序代码,例如,升级木马自身的功能、进一步感染受攻击网络里的其他计算机设备、收集另一种类型的敏感数据。如果解析失败,则可以将数据包内容存储下来,用于后续的网络攻击取证。
步骤S130:所述检测设备基于预先保存的数据指标,判断所述待分析数据是否满足预设条件。
当然,在步骤S110之前,所述检测设备可以预先获取数据指标。
作为一种实施方式,所述检测设备可以预先获取目标恶意软件所访问的C&C(Command and Control,命令与控制)服务器的IP地址以及域名,将所述C&C服务器的IP地址以及域名作为域名黑名单保存到黑名单库。
所述预设条件可以是:所述待分析数据所访问的IP地址以及域名是所述黑名单库中的所述C&C服务器的IP地址以及域名。
作为另一种实施方式,在步骤S110之前,所述检测设备还可以在预设时间内,获取目标网络设备的日常工作访问的多个正常域名数据,所述域名数据包括域名以及子域名。
所述预设时间可以是一周或者半个月。值得指出的是,在该段时间内,目标网络设备(单位内部网络里的计算机设备)必须处于日常工作状态,以使得检测设备获得到的数据可以模拟目标网络设备的日常网络数据流量。
所述检测设备可以基于所述域名数据,计算得到以下指标:
(1)所述域名以及所述子域名的信息熵阈值。对域名字符串计算信息熵,信息熵越大,变量包含的信息量越大,变量的不确定性也越大。
(2)所述域名以及所述子域名的最大字节数阈值。
(3)请求查询所述域名时发送的最大数据包的字节数阈值和接收(即 DNS服务器返回的)的最大数据包的字节数阈值。
(4)对所述域名以及所述子域名请求查询的频率阈值。
(5)所述网络设备平均每小时请求查询所述域名的流量大小阈值。
(6)查询次数小于预设次数的目标DNS查询类型。例如:没有查询过的类型或者平均每台设备每天查询这些类型不超过五次。不太常用的 DNS查询类型有TXT、PX、SRV、KEY,在具体实施时,可以根据本单位正常的DNS流量情况进行变更。
(7)所述检测设备获取目标友好软件自动更新时所访问的域名以及子域名,将该域名以及子域名作为域名白名单保存到白名单库。将单位内部日常使用的软件(通常为办公软件)自动更新时查询的域名和子域名保存下来,作为域名白名单库。这些软件的自动更新行为与某些恶意软件发送消息给C&C服务器的行为是相似的,请求时间和发送的数据量具有规律性。
所述正常的域名,是指非恶意的域名,包括这些域名的子域名,具体实施时可以参考Alexa网站访问量排名数据。例如,可以以Alexa网站访问量排名前10万个国外网站域名和前1万个中文网站域名作为依据,对于安全的但是访问量少的网站域名可以人工添加到正常域名列表里。
相应地,所述预设条件可以为所述待分析数据满足以下条件情况中的至少一项:(1)所述待分析数据所访问的IP地址以及域名是所述黑名单库中的所述C&C服务器的IP地址以及域名,(2)所述待分析数据发送的请求信息中,对子域名进行了编码,(3)所述待分析数据查询同一个域名的不同子域名的频率大于所述频率阈值,(4)所述待分析数据的查询类型中对目标DNS查询类型的查询次数大于预设查询次数,(5)所述待分析数据所要查询的域名包含的子域名长度大于所述最大字节数阈值,(6)所述待分析数据大于最大字节数阈值,(7)所述待分析数据的信息熵大于所述信息熵阈值,(8)所述待分析数据中响应数据包字节数大于请求数据包字节数预设值,(9)所述待分析数据所访问的域名或者子域名的时间呈现周期性且该域名和该子域名不在所述白名单库内。
其中,(2)所述待分析数据发送的请求信息中,对子域名进行了编码是指:因为RFC规定域名里可以使用的字符是有限的(可选范围为:‘a’~‘z’、‘0’~‘9’、‘-’、‘.’),为了给传输数据加密,或者更加方便传输任何字符,攻击者对子域名进行编码,通过对DNS传输隐蔽数据工具的分析,攻击者通常使用Base64、Base32、16进制对子域名进行编码。例如,恶意软件Multigrain使用的方法是把要传输的数据作为子域名,使用Base32进行编码后,再进行传输。
(3)所述待分析数据查询同一个域名的不同子域名的频率大于所述频率阈值是指:若单位防火墙限制了企业内部的计算机只能访问受信任的 DNS服务器,那么网络攻击人员可以预先注册一个域名,并为该域名指定一个权威DNS服务器(该权威DNS服务器实际上是C&C服务器),这种情况下,受感染的计算机不再和C&C服务器直接通信,而是将请求信息(里面包含的需要查询的域名,即为预先注册的域名)发送到受信任的DNS服务器,受信任的DNS服务器查询到该域名具有权威服务器,然后将请求信息转发给该权威服务器,这同样达到了与C&C服务器通信的目的。木马病毒可能将需要发送的敏感数据分割为多块,每一块作为网络攻击者预先注册的域名的子域名,请求发送出去。这样短时间内可能有多次请求查询同一个域名不同子域名的现象,例如,1分钟内请求发送数几十次或者更多。
(4)所述待分析数据的查询类型中对目标DNS查询类型的查询次数大于预设查询次数是指:DNS查询类型有多种,但是部分查询类型在实际应用中使用的很少,例如:恶意软件Feederbot发送TXT类型的请求(指某个主机名或域名的附加说明信息),用来与C&C服务器进行通信。不太常用的DNS查询类型有TXT、PX、SRV、KEY,在具体实施时,可以根据本单位正常的DNS流量情况进行变更。
(5)所述待分析数据所要查询的域名包含的子域名长度大于所述最大字节数阈值是指:RFC中规定,域名应该满足由多个标签(例如域名 www.***.com,是由三个标签组成)以点号(字符‘.’)分隔,各标签长度应该在63个字节之内,而且总长度(标签长度加上字符‘.’个数)应该不超过255个字节。木马病毒可能会将请求发送的数据放在子域名里,为了传输更多的数据,请求查询的域名的子域名(即需要发送的敏感数据)长度会达到63字节或者接近63字节,整个域名的长度达到255字节或者接近255字节。
(6)所述待分析数据大于最大字节数阈值是指:发送到DNS服务器的域名解析请求数据包,请求域名信息部分字节数通常情况为40~150字节,木马病毒为了尽快将敏感数据传输出去,在请求数据包里发送尽可能多的数据,因此需要检测是否有持续发送大于150字节的请求数据包的情况。
(7)所述待分析数据的信息熵大于所述信息熵阈值是指:正常的域名一般是有意义的拼音或者英语单词,如果包含数字字符(‘0’~‘9’),则数字字符与字母字符(‘a’~‘z’)的切换次数一般为1到3次(例如,域名 hao123.com,字母字符‘o’到数字字符‘1’切换一次),非正常域名(经过编码处理的需要发送的敏感数据)各个字符出现的概率基本相同,且具有较多的数字字符,数字字符和字母字符可能频繁切换,这会导致整个域名具有较高的熵值。
(8)所述待分析数据中响应数据包字节数大于请求数据包字节数预设值,例如,响应包数据量达到了2K字节,这种情况很可能是C&C服务器向木马病毒发送控制命令。
(9)所述待分析数据所访问的域名或者子域名的时间呈现周期性且该域名和该子域名不在所述白名单库内是指:所述受控主机发送请求数据包时间呈现一定的周期性是指:受控主机请求发送敏感数据的时间是有规律的,有以下情况:1、C&C服务器一直处于在线状态,受控主机每一隔段时间发送一次数据,每次发送数据使用相同的时间间隔,木马病毒也可能为了躲避检测,传输数据的时间间隔为等差数列和等比数列混合使用的情况; 2、C&C服务器为了躲避检测,每天只有固定的几个时段在线。例如,恶意软件Multigrain每隔5分钟请求一次查询,将敏感数据发送给网络攻击者。
步骤S140:在为是时,保存所述待分析数据,生成警告信息,以便所述检测设备对所述待分析数据以及所述警告信息进行风险分析。
当所述检测设备判断所述待分析数据满足预设条件时,说明可能存在传输敏感数据行为,即保存数据包(即内部网络里的计算机设备请求发送的数据和接收到的响应数据)到数据库,供后续风险分析、网络攻击追踪溯源使用。
若出现误报,可能有以下两种情况:
1、单位内部网络里的某台计算机设备执行了某种非日常任务导致的。例如,某台计算机安装了一个过时版本的软件,软件里的自动升级功能所访问的域名已经被注销,然后导致该软件频繁尝试请求查询该域名,总的请求流量的大小超过了第(6)点计算的阈值,这种情况,可以对所产生的告警事件单独做人工处理,标记为误报。
2、因为业务变化,某些计算机设备需要处理新的任务,预先统计的阈值不再适用,导致频繁出现误报,这种情况需要重新生成有误报的相关检测项的阈值。
若经过分析,确实属于存在传输敏感数据行为,处理警告信息里的源 IP地址对应的计算机设备,并将警告信息里的目的IP和域名(即与木马病毒进行通信的C&C服务器)信息添加到在黑名单库里,对单位内部网络里的计算机设备进行全面杀毒,清除木马病毒,进行补救措施,例如对数据资产变更加密密钥、加强访问控制管理、更换存储设备。
当然,所述方法还可以包括:
所述检测设备基于预先保存数据指标,判断所述待分析数据是否满足预设条件,在为是时,所述检测设备继续判断新的待分析数据是否满足预设条件。
值得指出的是,本发明中使用的C&C服务器IP地址和域名黑名单库、域名白名单库,可以使用文本文件保存,也可以使用采用MySQL、Oracle 等关系型数据库管理***(RDBMS)保存。DNS协议解析的结果(即原始网络行为信息:源IP、目的IP、源端口、目的端口、请求时间、请求查询的类型、请求查询的域名、域名长度、响应码、查询结果),可以采用MySQL、 Oracle等关系型数据库管理***保存,也可以使用基于NoSQL的分布式计算框架的非关系型数据库来保存。
本发明第一实施例提供的基于DNS流量分析的网络窃密行为检测方法,通过收集一段时间内单位内部网络里的(即为本检测方法所保护的网络) 计算机设备日常请求查询的正常域名的流量,对流量进行多个维度的统计(例如,每台计算机设备平均每小时请求查询正常域名的流量大小、请求查询正常域名时发送的最大数据包的字节数和接收的最大数据包的字节数、每台计算机设备平均每小时请求查询正常域名的流量大小),作为后续检测DNS流量里的异常的参考阈值,识别可能存在传输敏感数据的行为。这将有利于后续的木马病毒清除、网络攻击追踪溯源,以及对保存数据资产有非常重要的作用。与现有技术相比,本发明的有益效果是:网络攻击者在有机会时,可能利用任何可能的互联网服务或者协议,这也包括了DNS,且一些企业忽略了对DNS流量进行监测。另外,相对其他应用协议,DNS协议流量小,规范简单,检测相对成本更低,效率更高。
第二实施例
请参照图3,图3是本发明第二实施例提供的一种基于DNS流量分析的网络窃密行为检测装置400的结构框图。下面将对图3所示的结构框图进行阐述,所示装置包括:
第一获取模块410,用于实时获取网络流量数据;
第一判断模块420,用于对所述网络流量数据进行解析,在判断解析成功时,得到待分析数据;
第二判断模块430,用于基于预先保存数据指标,判断所述待分析数据是否满足预设条件,在为是时,保存所述待分析数据,生成警告信息,以便所述检测设备对所述待分析数据以及所述警告信息进行风险分析。
作为一种实施方式,请参看图4,所述装置还可以包括:
第二获取模块440,用于获取目标恶意软件所访问的C&C服务器的IP 地址以及域名,将所述C&C服务器的IP地址以及域名作为域名黑名单保存到黑名单库,
相应地,所述预设条件为:所述待分析数据所访问的IP地址以及域名是所述黑名单库中的所述C&C服务器的IP地址以及域名。
作为另一种实施方式,请参看图5,所述装置还可以包括:
第三获取模块450,用于在预设时间内,获取目标网络设备的日常工作访问的多个域名数据,所述域名数据包括域名以及子域名;
计算模块460,用于基于所述域名数据,计算得到:所述域名以及所述子域名的信息熵阈值、所述域名以及所述子域名的最大字节数阈值、请求查询所述域名时发送的最大数据包的字节数阈值和接收的最大数据包的字节数阈值、对所述域名以及所述子域名请求查询的频率阈值、所述网络设备平均每小时请求查询所述域名的流量大小阈值、查询次数小于预设次数的目标DNS查询类型;
第四获取模块470,用于获取目标友好软件自动更新时所访问的域名以及子域名,将该域名以及子域名作为域名白名单保存到白名单库。
相应地,所述预设条件为所述待分析数据满足以下条件情况中的至少一项:所述待分析数据所访问的IP地址以及域名是所述黑名单库中的所述 C&C服务器的IP地址以及域名,或者所述待分析数据发送的请求信息中,对子域名进行了编码,或者所述待分析数据查询同一个域名的不同子域名的频率大于所述频率阈值,或者所述待分析数据的查询类型中对目标DNS 查询类型的查询次数大于预设查询次数,或者所述待分析数据所要查询的域名包含的子域名长度大于所述最大字节数阈值,或者所述待分析数据大于最大字节数阈值,或者所述待分析数据的信息熵大于所述信息熵阈值,或者所述待分析数据中响应数据包字节数大于请求数据包字节数预设值,或者所述待分析数据所访问的域名或者子域名的时间呈现周期性且该域名和该子域名不在所述白名单库内。
所述第一判断模块420,还用于在判断解析失败时,保存所述待分析数据,生成警告信息,以便所述检测设备对所述待分析数据以及所述警告信息进行风险分析。
所述第二判断模块430,还用于在判断为是时,所述检测设备继续判断新的待分析数据是否满足预设条件。
本实施例对基于DNS流量分析的网络窃密行为检测装置400的各功能模块实现各自功能的过程,请参见上述图1至图2所示实施例中描述的内容,此处不再赘述。
综上所述,本发明实施例提出的一种基于DNS流量分析的网络窃密行为检测方法以及装置,通过收集一段时间内单位内部网络里的(即为本检测方法所保护的网络)计算机设备日常请求查询的正常域名的流量,对流量进行多个维度的统计(例如,每台计算机设备平均每小时请求查询正常域名的流量大小、请求查询正常域名时发送的最大数据包的字节数和接收的最大数据包的字节数、每台计算机设备平均每小时请求查询正常域名的流量大小),作为后续检测DNS流量里的异常的参考阈值,识别可能存在传输敏感数据的行为。这将有利于后续的木马病毒清除、网络攻击追踪溯源,以及对保存数据资产有非常重要的作用。与现有技术相比,本发明的有益效果是:网络攻击者在有机会时,可能利用任何可能的互联网服务或者协议,这也包括了DNS,且一些企业忽略了对DNS流量进行监测。另外,相对其他应用协议,DNS协议流量小,规范简单,检测相对成本更低,效率更高。另外,实现基于DNS流量分析的网络窃密行为检测方法的功能可以部署成某种网络安全检测***的一个功能模块或者子***,例如APT入侵检测***,通常部署在单位网络的进出口,监控与分析整个单位的网络流量。
需要说明的是,本发明所涉及的基于DNS流量分析的网络窃密行为检测方法,是计算机技术在信息安全技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明,不存在无法理解或无法再现的可能性。前述软件功能模块包括但不限于:网络流量采集模块、协议解析模块、统计模块和流量分析模块,其具体实现方式可以有很多种,凡本发明申请文件提及的均属此范畴,不再一一列举。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。