检测恶意代码样本的网络行为的方法及系统的制作方法

文档序号:6598029阅读:182来源:国知局
专利名称:检测恶意代码样本的网络行为的方法及系统的制作方法
技术领域
本发明涉及网络安全领域,尤其涉及检测恶意代码样本的网络行为的方法及系 统。
背景技术
现阶段恶意代码样本形态不断进化,从而形成各种新型的攻击方式,为攻击者提 供了更加隐蔽、灵活且高效的攻击机制,恶意代码样本正步入快速发展期,对因特网安全已 造成严重威胁,因此得到了社会各界的广泛关注。通过技术手段,实现大量未知恶意代码样 本的合理分析,是安全界非常关注的。现阶段对恶意代码样本获取的常见方法是借助蜜罐系统、交换来源等等收集试验 样本;并且同时借助sandbox、wmware运行样本,然后记录样本行为动作。由于样本数量巨 大,现有技术中采用的方法包括(1)减少样本运行时间;(2)减少样本数目,抽样分析;(3) 增大样本运行成本。采用方法(1)由于运行时间短会导致样本某种行为未触发,而收集到的信息过少 或者未收集到信息;采用方法(2)会导致遗弃大量有价值的样本;采用方法(3)导致资源 开销非常多。

发明内容
为解决上述问题,本发明提供了检测恶意代码样本的网络行为的方法及系统,通 过对恶意代码样本的网络行为追踪获得恶意代码样本的行为数据,从而减少分析资源成 本,降低计算开销。本发明公开了一种检测恶意代码样本的网络行为的方法,包括步骤1,获取恶意代码样本,并存储所述恶意代码样本;步骤2,将所述恶意代码样本输入虚拟机,运行所述恶意代码样本,获得所述恶意 代码样本的网络数据;步骤3,解析所述恶意代码样本的网络数据获得关键信息数据,依据所述关键信息 数据中的命令进行连接,并追踪所述连接之后的行为;步骤4,输出追踪结果。所述步骤1进一步为,步骤21,使用网络爬虫获得urls列表,如果urls列表为exe列表,则所述urls列 表中的文件为待存储的恶意代码样本;步骤22,将所述恶意代码样本存储到数据库。所述步骤21还包括,步骤31,如果urls列表不为exe列表,则将所述urls列表输入蜜罐系统;步骤32,如果蜜罐系统的返回结果为exe文件,则所述exe文件为待存储的恶意代 码样本。
所述步骤22之后还包括步骤41,通过恶意代码样本交互获得恶意代码样本,将所述恶意代码样本存储到 数据库。所述步骤2进一步为,步骤51,访问所述数据库,获取恶意代码样本,将恶意代码样本输入虚拟机中;步骤52, 虚拟机运行所述恶意代码样本,记录网络数据,对所述记录持续预设时长。所述步骤3进一步为,步骤61,按网络数据包的格式解析所述恶意代码样本的网络数据,获得关键信息 数据;步骤62,读取所述关键信息数据中的命令,组成命令表,依据命令表中连接相关命 令和命令参数进行连接,如果连接成功,则执行步骤63,如果连接失败,则将此次未成功连 接记录加入追踪结果,执行步骤4 ;步骤63,对命令表中命令的行为进行追踪,将结果加入追踪结果中。所述步骤62进一步为,步骤71,读取所述关键信息数据中的命令,组成命令表;步骤72,根据命令表中连接相关命令以及命令参数中的IP地址和TCP端口进行连 接;步骤73,如果连接成功,则执行所述步骤63 ;如果所述连接未成功,则判断尝试连 接次数是否超过预设次数,如果超过,则连接失败,将此次未成功连接记录加入追踪结果, 执行所述步骤4 ;如果没有超过,执行所述步骤72。所述步骤3开始执行时还包括,开始对追踪时间计时;所述步骤73中连接失败,将此次未成功连接记录加入追踪结果,执行步骤4进一 步为,步骤81,判断追踪时间是否超过预设时长,如果是,则将此次未成功连接记录加入 追踪结果,执行所述步骤4;否则,等待预设等待时长后,执行步骤72。所述步骤3开始执行时还包括,开始对追踪时间计时;所述步骤63进一步为,步骤91,如果所述命令列表中命令已被顺序获取完成,则执行步骤94 ;否则,按顺 序从命令列表中获取命令,执行步骤92 ;步骤92,对获取的命令进行判断,如果获取的命令为连接命令,则判断连接后是否有接收行为发生,如果有,则执行 步骤93,否则,执行步骤91 ;如果获取的命令为发送命令,则按原始数据时间间隔发送相同数据,如果存在接 收行为,则执行步骤93,如果不存在接收行为,则执行步骤91 ;如果获取的命令为关闭命令,则结束追踪,执行步骤94 ;步骤93,判断接收的结果数据同所述网络数据是否一致,如果不一致,则将结果数 据加入追踪结果中;判断完成后,执行步骤91 ;步骤94,判断进行追踪的时间是否超过预设时长,如果是,则执行步骤4 ;否则,等待预设等待时长后,执行步骤62。本发明还公开了一种检测恶意代码样本的网络行为的系统,包括
恶意代码样本获取模块,用于获取恶意代码样本,并存储所述恶意代码样本;恶意代码样本分析模块,用于将所述恶意代码样本输入虚拟机,运行所述恶意代 码样本,获得所述恶意代码样本的网络数据;恶意代码样本追踪模块,用于解析所述恶意代码样本的网络数据获得关键信息数 据,依据所述关键信息数据中的命令进行连接,并追踪所述连接之后的行为;追踪结果输出模块,用于输出追踪结果。所述恶意代码样本获取模块进一步用于使用网络爬虫获得urls列表,如果urls 列表为exe列表,则所述urls列表中的文件为待存储的恶意代码样本;将所述恶意代码样 本存储到数据库。所述恶意代码样本获取模块还用于如果urls列表不为exe列表,则将所述urls 列表输入蜜罐系统;如果蜜罐系统的返回结果为exe文件,则所述exe文件为待存储的恶意 代码样本,将所述恶意代码样本存储到数据库。所述恶意代码样本获取模块还用于通过恶意代码样本交互获得恶意代码样本,将 所述恶意代码样本存储到数据库。所述恶意代码样本分析模块进一步用于访问所述数据库,获取恶意代码样本,将 恶意代码样本输入虚拟机中;使虚拟机运行所述恶意代码样本,记录网络数据,对所述记录 持续预设时长。 所述恶意代码样本追踪模块进一步包括关键信息数据获得模块,用于按网络数据包的格式解析所述恶意代码样本的网络 数据,获得关键信息数据;连接建立模块,用于读取所述关键信息数据中的命令,组成命令表,依据命令表中 连接相关命令和命令参数进行连接,如果连接成功,则运行行为追踪模块,如果连接失败, 则将此次未成功连接记录加入追踪结果,并运行所述追踪结果输出模块;行为追踪模块,用于对命令表中命令的行为进行追踪,将结果加入追踪结果中。所述连接建立模块进一步用于读取所述关键信息数据中的命令,组成命令表;根 据命令表中连接相关命令以及命令参数中的IP地址和TCP端口进行连接;如果连接成功, 则运行所述行为追踪模块;如果所述连接未成功,则判断尝试连接次数是否超过预设次数, 如果超过,则连接失败,将此次未成功连接记录加入追踪结果,运行所述追踪结果输出模 块;如果没有超过,则重新进行连接。所述恶意代码样本追踪模块还包括计时模块,用于在所述恶意代码样本追踪模块 开始启动时,对追踪时间开始计时;所述连接建立模块在连接失败后,将此次未成功连接记录加入追踪结果,运行所 述追踪结果输出模块时进一步用于通过所述计时模块判断追踪时间是否超过预设时长,如 果是,则将此次未成功连接记录加入追踪结果,运行所述追踪结果输出模块;否则,等待预 设等待时长后,重新进行连接。所述恶意代码样本追踪模块还包括计时模块,用于在所述恶意代码样本追踪模块 开始启动时,对追踪时间开始计时;
所述行为追踪模块进一步包括命令获取模块,用于判断如果所述命令列表中命令已被顺序获取完成,则运行超 时判断模块;否则,按顺序从命令列表中获取命令,运行命令判断模块; 命令判断模块,用于对获取的命令进行判断,如果获取的命令为连接命令,则判断连接后是否有接收行为发生,如果有,则运行 结果分析模块,否则,运行命令获取模块;如果获取的命令为发送命令,则按原始数据时间间隔发送相同数据,如果存在接 收行为,则运行结果分析模块,如果不存在接收行为,则运行命令获取模块;如果获取的命令为关闭命令,则结束追踪,运行超时判断模块; 结果分析模块,用于判断接收的结果数据同所述网络数据是否一致,如果不一致, 则将结果数据加入追踪结果中;判断完成后,运行命令获取模块;超时判断模块,用于通过所述计时模块判断追踪时间是否超过预设时长,如果是, 则运行追踪结果输出模块;否则,等待预设等待时长后,运行所述连接建立模块。本发明的有益效果在于,通过本发明能够自动获取恶意代码样本、分析代码恶意 样本、并模拟追踪恶意代码样本;通过网络模拟继续追踪恶意代码样本,能够降低计算开 销;并能够完整的恶意代码样本获取与模拟追踪过程;本发明中恶意样本获取方法多元 化,能够保证恶意样本的数量充足。


图1是本发明检测恶意代码样本的网络行为的方法的流程图;图2是本发明获取恶意代码样本过程的实施例的流程图;图3是本发明对行为追踪过程的实施例的流程图;图4是本发明检测恶意代码样本的网络行为的系统的结构图;图5是本发明系统中恶意代码样本追踪模块的结构图。
具体实施例方式下面结合附图,对本发明做进一步的详细描述。一种检测恶意代码样本的网络行为的方法如图1所示。步骤S100,获取恶意代码样本,并存储所述恶意代码样本。所述步骤SlOO具体实施方式
一步骤Sl 10,使用网络爬虫(spider)获得urls列表,如果urls列表为exe列表,则 所述urls列表中的文件为待存储的恶意代码样本。步骤S120,将恶意代码样本存储到数据库。所述步骤SlOO具体实施方式
二步骤S110’,使用网络爬虫(spider)获得urls列表,如果urls列表为exe列表, 则所述urls列表中的文件为待存储的恶意代码样本;如果urls列表不为exe列表,则将所 述urls列表输入蜜罐系统;如果蜜罐系统的返回结果中具有exe文件,则所述exe文件为 待存储的恶意代码样本。步骤S120’,将恶意代码样本存储到数据库。
所述步骤SlOO具体实施方式
三在具体实施方式
一或具体实施方式
二的基础上还包括如下步骤。步骤S130,通过恶意代码样本交互获得恶意代码样本,将所述恶意代码样本存储 到数据库。所述步骤SlOO的实施例的流程如图2所示。步骤S101,通过网页爬虫从公开的恶意代码样本信息网站获取恶意样本的urls 列表;如果urls列表是exe列表,则urls列表中的文件为待存储的恶意代码样本,执行步 骤S103 ;否则,执行步骤S102。步骤S102,将urls列表存储到对应的日期目录下的文件urls. txt中,访问对应的 日期目录中文件urls. txt,将文件urls. txt输入蜜罐系统(capture-hpc)中,对每个urls 列表中的url进行分析,如果蜜罐系统返回结果中具有exe文件,则exe文件为待存储的恶 意代码样本,转到步骤S103 ;否则继续分析下一个url直到urls. txt中的url被分析完毕。步骤S103,在数据库中查询待存储的恶意代码样本的MD5值,如果存在,则访问计 数加1,否则,将待存储的恶意代码样本插入数据库,标记该恶意代码样本的MD5值,并标记 该恶意代码样本状态flag为0。步骤S104,在步骤S102中文件urls. txt分析完毕后,主程序等待一段预设时间 后,执行步骤SlOl。步骤S105,通过同领域交换样本、恶意代码样本运行等途径获取待存储的恶意代 码样本,执行步骤S103。 步骤S200,将恶意代码样本输入虚拟机,运行所述恶意代码样本,获得所述恶意代 码样本的网络数据。所述步骤S200具体实施方式
如下。步骤S210,访问所述数据库,获取恶意代码样本,将恶意代码样本输入虚拟机中。步骤S220,虚拟机运行恶意代码样本,记录网络数据,对所述记录持续预设时长。实施例步骤S201,按照时间降序访问数据库,如果被访问的恶意代码样本的状态flag为 0,下载恶意代码样本;并分别输入到虚拟机中。数据库中恶意代码样本按时间降序排序排列,最新存储的恶意代码样本排列在最 前面。步骤S202,当获得恶意代码样本后,自动实现hook, dll与恶意代码样本的挂接, 如果挂接后发生网络行为,则记录网络行为,并持续计时20分钟,执行步骤S201 ;否则,等 待10分钟后,如果恶意代码样本产生了网络行为数据,则开始记录,并记时20分钟;否则直 接执行步骤S201。步骤S203,将获得的恶意代码样本的网络行为数据存入数据库中对应的恶意代码 样本的记录中,通过MD5保证一一对应关系,并修改恶意代码样本的状态flag为1。步骤S300,解析所述恶意代码样本的网络数据获得关键信息数据,依据所述关键 信息数据中的命令进行连接,并追踪所述连接之后的行为。所述步骤S300的具体实施方式
一步骤S310,按网络数据包的格式解析所述恶意代码样本的网络数据,获得关键信息数据。步骤S320,读取所述关键信息数据中的命令,组成命令表,依据命令表中连接相关 命令和命令参数进行连接,如果连接成功,则执行步骤S330 ;如果连接失败,则将此次未成 功连接记录加入追踪结果,执行步骤S400。步骤S330,对命令表中命令的行为进行追踪,将结果加入追踪结果中。以应用TCP/IP协议的计算机网络为例,具体实施方式
一中步骤S320进一步包括 如下步骤。步骤S321,读取所述关键信息数据中的命令,组成命令表。步骤S322,根据命令表中连接相关命令以及命令参数中的IP地址和TCP端口进行 连接。步骤S323,如果连接成功,则执行所述步骤S330 ;如果连接未成功,则判断尝 试连 接次数是否超过预设次数,如果超过,则连接失败,将此次未成功连接记录加入追踪结果, 执行步骤S400,否则,执行步骤S322。所述步骤S300的具体实施方式
二步骤310’,开始对追踪时间计时。步骤S320’,按网络数据包的格式解析所述恶意代码样本的网络数据,获得关键信 息数据。步骤S330’,读取所述关键信息数据中的命令,组成命令表,依据命令表中连接相 关命令和命令参数进行连接,如果连接成功,则执行步骤S340’ ;如果连接失败,则判断追踪 时间是否超过预设时长,如果是,则将此次未成功连接记录加入追踪结果,执行步骤S400 ; 否则,等待预设等待时长后,执行步骤S330’。步骤S340’,对命令表中命令的行为进行追踪,将结果加入追踪结果中。
具体实施方式
一中对命令表中命令的行为进行追踪,将结果加入追踪结果中的步 骤的具体实施方式
如下。步骤S331,如果所述命令列表中命令已被顺序获取完成,则执行步骤S334 ;否则, 按顺序从命令列表中获取命令,执行步骤S332。步骤S332,对获取的命令进行判断;如果获取的命令为连接命令,则判断连接后是否有接收行为发生,如果有,则执行 步骤S333,否则,执行步骤S331 ;如果获取的命令为发送命令,则按原始数据时间间隔发送相同的配置数据,如果 存在接收行为,则执行步骤S333,如果不存在接收行为,则执行步骤S331 ;如果获取的命令为关闭命令,则结束本次追踪,执行步骤S334。步骤S333,判断接收的结果数据同记录的网络数据是否一致,如果不一致,则将结 果数据加入追踪结果中;判断完成后,执行步骤S331。步骤S334,判断追踪时间是否超过预设时长,如果是,则以记录的结果数据作为追 踪结果,执行步骤S400 ;否则,等待预设等待时长后,执行步骤S320。追踪时间从执行步骤S300起开始计时。
具体实施方式
二中,对命令表中命令的行为进行追踪,将结果加入追踪结果中的 步骤如下。
步骤S331’,如果所述命令列表中命令已被顺序获取完成,则执行步骤S334’ ;否 贝Ij,按顺序从命令列表中获取命令,执行步骤S332’。步骤S332’,对获取的命令进行判断; 如果获取的命令为连接命令,则判断连接后是否有接收行为发生,如果有,则执行 步骤S333’,否则,执行步骤S331,;如果获取的命令为发送命令,则按原始数据时间间隔发送相同的配置数据,如果 存在接收行为,则执行步骤S333’,如果不存在接收行为,则执行步骤S331’ ;如果获取的命令为关闭命令,则结束本次追踪,执行步骤S334’。步骤S333’,判断接收的结果数据同记录的网络数据是否一致,如果不一致,则将 结果数据加入追踪结果中;判断完成后,执行步骤S331’。步骤S334’,判断追踪时间是否超过预设时长,如果是,则以记录的结果数据作为 追踪结果,执行步骤S400 ;否则,等待预设等待时长后,执行步骤S330’。步骤S300的实施例。步骤S3001,按照时间降序访问数据库中状态flag为1的恶意代码样本,对追踪时 间开始计时。恶意代码样本在数据库中按时间降序排序。步骤S3002,下载恶意代码样本的网络数据,按照网络数据包的格式,解析网络数 据包,提取关键信息数据。步骤S3003,将关键信息数据,按照原有样本的访问顺序存入数据表中,并通过 md5唯一来区分大量数据。步骤S3004,从数据表中顺序读取关键信息数据中命令,及其命令参数,组成命令 列表。步骤S3005,根据命令表中连接命令(connect命令)以及命令参数中IP地址、 TCP端口尝试连接服务器,如果连接成功,继续步骤S3006 ;否则等待5分钟,然后继续尝试 连接,尝试3次未成功,则结束本次追踪过程,执行步骤S3009。步骤S3006,如果对所述命令列表中命令顺序获取完成,则执行步骤S3009 ;否则, 循环访问命令列表(cmdlist),获取命令,执行步骤S3007。步骤S3007,对获取的命令进行判断,如果获得的命令为connect命令,判断该connect命令之后是否有recv或者 recvfrom行为发生,如果有,则执行步骤S3008,否则,执行步骤S3006。如果获得的命令为send、sendto命令,按照原始数据时间间隔发送原始数据,判 断是否有recv或recvfrom行为发生,如果有,则转到步骤S3008,否则,执行步骤S3006。如果获得的命令为close命令(关闭命令),结束本次恶意代码样本模拟追踪,执 行步骤S3009。步骤S3008,通过调用recv或recvfrom的参数NewBuffer,获得结果数据;通过参 数oldBuffer获得前述网络数据,判断网络数据与结果数据是否一致,如果一致,对应的发 送命令计数标记加1,否则,通过NewBuffer记录结果数据;判断完成后,执行步骤S3006。步骤S3009,判断追踪时间是否大于等于24小时,如果是,则执行步骤S400 ;否则 等待3小时后,执行步骤S3005。
步骤S400,输出追踪结果。追踪结果在网络安全中被应用。例如,假设网管发现最近局域网中出现了大量的 某种恶意代码,则可查看本系统,如果存储恶意代码样本的数据库中存在这种恶意代码样 本,则网管可通过查看这个恶意代码样本追踪结果,获知该恶意代码在较长时间段内会产 生怎样的网络行为,从而判断其可能产生的危害,比如是否会对局域网及其内部的关键主 机产生消耗带宽资源的类DDoS攻击等等。假设研究人员发现了一种新的恶意代码,则可以提交存储恶意代码样本的数据 库,从而发现其在较长时间内可能产生的网络行为,以及这些网络行为可能对网络或感染 主机造成的危害。本发明的检测恶意代码样本的网络行为的系统如图4所示,包括恶意代码样本 获取模块100、恶意代码样本分析模块200、恶意代码样本追踪模块300、以及追踪结果输出 模块400。
恶意代码样本获取模块100,用于获取恶意代码样本,并存储所述恶意代码样本。恶意代码样本分析模块200,用于将所述恶意代码样本输入虚拟机,运行所述恶意 代码样本,获得所述恶意代码样本的网络数据。恶意代码样本追踪模块300,用于解析所述恶意代码样本的网络数据获得关键信 息数据,依据所述关键信息数据中的命令进行连接,并追踪所述连接之后的行为。追踪结果输出模块400,用于输出追踪结果。进一步较佳的技术方案,恶意代码样本获取模块100进一步用于使用网络爬虫获 得urls列表,如果urls列表为exe列表,则所述urls列表中的文件为待存储的恶意代码 样本;将所述恶意代码样本存储到数据库。进一步较佳的技术方案,恶意代码样本获取模块100还用于如果urls列表不为 exe列表,则将所述urls列表输入蜜罐系统;如果蜜罐系统的返回结果为exe文件,则所述 exe文件为待存储的恶意代码样本,将所述恶意代码样本存储到数据库。进一步较佳的技术方案,恶意代码样本获取模块100还用于通过恶意代码样本交 互获得恶意代码样本,将所述恶意代码样本存储到数据库。进一步较佳的技术方案,恶意代码样本分析模块200进一步用于访问所述数据 库,获取恶意代码样本,将恶意代码样本输入虚拟机中;使虚拟机运行所述恶意代码样本, 记录网络数据,对所述记录持续预设时长。进一步较佳的技术方案,恶意代码样本追踪模块300结构如图5所示,进一步包 括关键信息数据获得模块310、连接建立模块320、以及行为追踪模块330。关键信息数据获得模块310,用于按网络数据包的格式解析所述恶意代码样本的 网络数据,获得关键信息数据。连接建立模块320,用于读取所述关键信息数据中的命令,组成命令表,依据命令 表中连接相关命令和命令参数进行连接,如果连接成功,则运行行为追踪模块330,如果连 接失败,则将此次未成功连接记录加入追踪结果,并运行追踪结果输出模块400。行为追踪模块330,用于对命令表中命令的行为进行追踪,将结果加入追踪结果 中。进一步较佳的技术方案,连接建立模块320进一步用于读取所述关键信息数据中的命令,组成命令表;根据命令表中连接相关命令以及命令参数中的IP地址和TCP端口 进行连接;如果连接成功,则运行所述行为追踪模块330 ;如果所述连接未成功,则判断尝 试连接次数是否超过预设次数,如果超过,则连接失败,将此次未成功连接记录加入追踪结 果,运行所述追踪结果输出模块400 ;如果没有超过,则重新进行连接。进一步较佳的技术方案,恶意代码样本追踪模块300还包括计时模块340,用于在 恶意代码样本追踪模块300开始启动时,对追踪时间开始计时;连接建立模块320在连接失败后,将此次未成功连接记录加入追踪结果,运行追 踪结果输出模块400时进一步用于通过计时模块340判断追踪时间是否超过预设时长,如 果是,则将此次未成功连接记录加入追踪结果,运行所述追踪结果输出模块400 ;否则,等 待预设等待时长后,重新进行连接。进一步较佳的技术方案,行为追踪模块330进一步包括命令获取模块,用于判断如果所述命令列表中命令已被顺序获取完成,则运行超 时判断模块;否则,按顺序从命令列表中获取命令,运行命令判断模块。命令判断模块,用于对获取的命令进行判断, 如果获取的命令为连接命令,则判断连接后是否有接收行为发生,如果有,则运行 结果分析模块,否则,运行命令获取模块;如果获取的命令为发送命令,则按原始数据时间间隔发送相同数据,如果存在接 收行为,则运行结果分析模块,如果不存在接收行为,则运行命令获取模块;如果获取的命令为关闭命令,则结束追踪,运行超时判断模块。结果分析模块,用于判断接收的结果数据同所述网络数据是否一致,如果不一致, 则将结果数据加入追踪结果中;判断完成后,运行命令获取模块。超时判断模块,用于通过计时模块340判断进行的追踪时间是否超过预设时长, 如果是,则运行追踪结果输出模块400;否则,等待预设等待时长后,运行连接建立模块 320。本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还 可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由 权利要求书的范围来确定的。
权利要求
一种检测恶意代码样本的网络行为的方法,其特征在于,包括步骤1,获取恶意代码样本,并存储所述恶意代码样本;步骤2,将所述恶意代码样本输入虚拟机,运行所述恶意代码样本,获得所述恶意代码样本的网络数据;步骤3,解析所述恶意代码样本的网络数据获得关键信息数据,依据所述关键信息数据中的命令进行连接,并追踪所述连接之后的行为;步骤4,输出追踪结果。
2.如权利要求1所述的检测恶意代码样本的网络行为的方法,其特征在于, 所述步骤1进一步为,步骤21,使用网络爬虫获得urls列表,如果urls列表为exe列表,则所述urls列表中 的文件为待存储的恶意代码样本;步骤22,将所述恶意代码样本存储到数据库。
3.如权利要求2所述的检测恶意代码样本的网络行为的方法,其特征在于, 所述步骤21还包括,步骤31,如果urls列表不为exe列表,则将所述urls列表输入蜜罐系统;步骤32,如果蜜罐系统的返回结果为exe文件,则所述exe文件为待存储的恶意代码样本。
4.如权利要求2所述的检测恶意代码样本的网络行为的方法,其特征在于, 所述步骤22之后还包括步骤41,通过恶意代码样本交互获得恶意代码样本,将所述恶意代码样本存储到数据库。
5.如权利要求1所述的检测恶意代码样本的网络行为的方法,其特征在于, 所述步骤2进一步为,步骤51,访问所述数据库,获取恶意代码样本,将恶意代码样本输入虚拟机中; 步骤52,虚拟机运行所述恶意代码样本,记录网络数据,对所述记录持续预设时长。
6.如权利要求1所述的检测恶意代码样本的网络行为的方法,其特征在于, 所述步骤3进一步为,步骤61,按网络数据包的格式解析所述恶意代码样本的网络数据,获得关键信息数据;步骤62,读取所述关键信息数据中的命令,组成命令表,依据命令表中连接相关命令和 命令参数进行连接,如果连接成功,则执行步骤63,如果连接失败,则将此次未成功连接记 录加入追踪结果,执行步骤4 ;步骤63,对命令表中命令的行为进行追踪,将结果加入追踪结果中。
7.如权利要求6所述的检测恶意代码样本的网络行为的方法,其特征在于, 所述步骤62进一步为,步骤71,读取所述关键信息数据中的命令,组成命令表;步骤72,根据命令表中连接相关命令以及命令参数中的IP地址和TCP端口进行连接; 步骤73,如果连接成功,则执行所述步骤63 ;如果所述连接未成功,则判断尝试连接次 数是否超过预设次数,如果超过,则连接失败,将此次未成功连接记录加入追踪结果,执行所述步骤4 ;如果没有超过,执行所述步骤72。
8.如权利要求7所述的检测恶意代码样本的网络行为的方法,其特征在于, 所述步骤3开始执行时还包括,开始对追踪时间计时;所述步骤73中连接失败,将此次未成功连接记录加入追踪结果,执行步骤4进一步为, 步骤81,判断追踪时间是否超过预设时长,如果是,则将此次未成功连接记录加入追踪 结果,执行所述步骤4;否则,等待预设等待时长后,执行步骤72。
9.如权利要求6所述的检测恶意代码样本的网络行为的方法,其特征在于, 所述步骤3开始执行时还包括,开始对追踪时间计时;所述步骤63进一步为,步骤91,如果所述命令列表中命令已被顺序获取完成,则执行步骤94 ;否则,按顺序从 命令列表中获取命令,执行步骤92 ; 步骤92,对获取的命令进行判断,如果获取的命令为连接命令,则判断连接后是否有接收行为发生,如果有,则执行步骤 93,否则,执行步骤91 ;如果获取的命令为发送命令,则按原始数据时间间隔发送相同数据,如果存在接收行 为,则执行步骤93,如果不存在接收行为,则执行步骤91 ; 如果获取的命令为关闭命令,则结束追踪,执行步骤94 ;步骤93,判断接收的结果数据同所述网络数据是否一致,如果不一致,则将结果数据加 入追踪结果中;判断完成后,执行步骤91 ;步骤94,判断进行追踪的时间是否超过预设时长,如果是,则执行步骤4 ;否则,等待预 设等待时长后,执行步骤62。
10.一种检测恶意代码样本的网络行为的系统,其特征在于,包括恶意代码样本获取模块,用于获取恶意代码样本,并存储所述恶意代码样本; 恶意代码样本分析模块,用于将所述恶意代码样本输入虚拟机,运行所述恶意代码样 本,获得所述恶意代码样本的网络数据;恶意代码样本追踪模块,用于解析所述恶意代码样本的网络数据获得关键信息数据, 依据所述关键信息数据中的命令进行连接,并追踪所述连接之后的行为; 追踪结果输出模块,用于输出追踪结果。
11.如权利要求10所述的检测恶意代码样本的网络行为的系统,其特征在于,所述恶意代码样本获取模块进一步用于使用网络爬虫获得urls列表,如果urls列表 为exe列表,则所述urls列表中的文件为待存储的恶意代码样本;将所述恶意代码样本存 储到数据库。
12.如权利要求11所述的检测恶意代码样本的网络行为的系统,其特征在于,所述恶意代码样本获取模块还用于如果urls列表不为exe列表,则将所述urls列表 输入蜜罐系统;如果蜜罐系统的返回结果为exe文件,则所述exe文件为待存储的恶意代码 样本,将所述恶意代码样本存储到数据库。
13.如权利要求11所述的检测恶意代码样本的网络行为的系统,其特征在于,所述恶意代码样本获取模块还用于通过恶意代码样本交互获得恶意代码样本,将所述 恶意代码样本存储到数据库。
14.如权利要求10所述的检测恶意代码样本的网络行为的系统,其特征在于,所述恶意代码样本分析模块进一步用于访问所述数据库,获取恶意代码样本,将恶意 代码样本输入虚拟机中;使虚拟机运行所述恶意代码样本,记录网络数据,对所述记录持续 预设时长。
15.如权利要求10所述的检测恶意代码样本的网络行为的系统,其特征在于, 所述恶意代码样本追踪 模块进一步包括关键信息数据获得模块,用于按网络数据包的格式解析所述恶意代码样本的网络数 据,获得关键信息数据;连接建立模块,用于读取所述关键信息数据中的命令,组成命令表,依据命令表中连接 相关命令和命令参数进行连接,如果连接成功,则运行行为追踪模块,如果连接失败,则将 此次未成功连接记录加入追踪结果,并运行所述追踪结果输出模块;行为追踪模块,用于对命令表中命令的行为进行追踪,将结果加入追踪结果中。
16.如权利要求15所述的检测恶意代码样本的网络行为的系统,其特征在于,所述连接建立模块进一步用于读取所述关键信息数据中的命令,组成命令表;根据命 令表中连接相关命令以及命令参数中的IP地址和TCP端口进行连接;如果连接成功,则运 行所述行为追踪模块;如果所述连接未成功,则判断尝试连接次数是否超过预设次数,如果 超过,则连接失败,将此次未成功连接记录加入追踪结果,运行所述追踪结果输出模块;如 果没有超过,则重新进行连接。
17.如权利要求16所述的检测恶意代码样本的网络行为的系统,其特征在于,所述恶意代码样本追踪模块还包括计时模块,用于在所述恶意代码样本追踪模块开始 启动时,对追踪时间开始计时;所述连接建立模块在连接失败后,将此次未成功连接记录加入追踪结果,运行所述追 踪结果输出模块时进一步用于通过所述计时模块判断追踪时间是否超过预设时长,如果 是,则将此次未成功连接记录加入追踪结果,运行所述追踪结果输出模块;否则,等待预设 等待时长后,重新进行连接。
18.如权利要求15所述的检测恶意代码样本的网络行为的系统,其特征在于,所述恶意代码样本追踪模块还包括计时模块,用于在所述恶意代码样本追踪模块开始 启动时,对追踪时间开始计时;所述行为追踪模块进一步包括命令获取模块,用于判断如果所述命令列表中命令已被顺序获取完成,则运行超时判 断模块;否则,按顺序从命令列表中获取命令,运行命令判断模块; 命令判断模块,用于对获取的命令进行判断,如果获取的命令为连接命令,则判断连接后是否有接收行为发生,如果有,则运行结果 分析模块,否则,运行命令获取模块;如果获取的命令为发送命令,则按原始数据时间间隔发送相同数据,如果存在接收行 为,则运行结果分析模块,如果不存在接收行为,则运行命令获取模块; 如果获取的命令为关闭命令,则结束追踪,运行超时判断模块; 结果分析模块,用于判断接收的结果数据同所述网络数据是否一致,如果不一致,则将 结果数据加入追踪结果中;判断完成后,运行命令获取模块;超时判断模块,用于通过所述计时模块判断追踪时间是否超过预设时长,如果是,则运行追踪结果输出模块;否则,等待预设等待时长后,运行所述连接建立模块。
全文摘要
本发明涉及检测恶意代码样本的网络行为的方法及系统,方法包括步骤1,获取恶意代码样本,并存储所述恶意代码样本;步骤2,将所述恶意代码样本输入虚拟机,运行所述恶意代码样本,获得所述恶意代码样本的网络数据;步骤3,解析所述恶意代码样本的网络数据获得关键信息数据,依据所述关键信息数据中的命令进行连接,并追踪所述连接之后的行为;步骤4,输出追踪结果。本发明能够通过对恶意代码样本的网络行为追踪获得恶意代码样本的行为数据,从而减少分析资源成本,降低计算开销。
文档编号G06F21/00GK101841523SQ20101010719
公开日2010年9月22日 申请日期2010年2月5日 优先权日2010年2月5日
发明者吴志刚, 崔翔, 王彦明, 郝志宇 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1