一种使用恶意代码属性判断恶意域名的方法、系统和装置与流程

文档序号:24886919发布日期:2021-04-30 13:10阅读:98来源:国知局
一种使用恶意代码属性判断恶意域名的方法、系统和装置与流程

本发明涉及网络安全技术领域,具体涉及一种使用恶意代码属性判断恶意域名的方法、系统和装置。



背景技术:

域名系统(domainnamesystem,dns)是用于连接因特网或专用网的计算机、服务或其他资源的一种结构上分层的分布式系统。域名系统作为一种基础设施服务系统,由于其设计上的先天缺陷和开放性,导致及其容易受到攻击。通过对dns日志的有效分析,可以提前发现异常的网络行为,实现网络安全事件的快速响应。

目前,大量的研究集中在dns域名的异常检测上,如采用人工智能的方法检测dga域名,钓鱼域名和dns隧道。但这些检测往往存在较大的误报,显著降低了域名检测对网络安全的防护效果。因此,需要用更加丰富的信息对检测结果进行研判,可以能够准确地获得相关域名的威胁程度和用途,更可靠的指导网络安全人员及时、准确地进行安全事件响应。

此外,一个文件会使用多个反病毒检测引擎进行检测,以便于提升恶意代码检测的准确率。但不同反病毒检测引擎检测恶意代码后输出的恶意代码名称不一致,多个反病毒检测引擎意味着对同一恶意代码也会输出多个名称。目前安全行业也没有使用较为规范的恶意代码命名规则,因此,对多反病毒检测引擎检测同一文件输出的恶意代码属性进行规范化是很困难的。这也在客观上增加了从恶意代码名称获取恶意代码属性等信息,再根据这些信息判断恶意域名的类型和危害程度的难度。

因此,提供一种能够获取恶意代码,及域名与恶意代码之间关系,提取并准确确定恶意代码属性,进而根据上述信息对恶意域名进行分类的方法、系统和装置,就成为本领域技术人员亟待解决的问题。



技术实现要素:

为此,本发明提供一种使用恶意代码属性判断恶意域名的方法、系统和装置,以便能够对恶意域名进行准确分类,有利于确定域名的危害性,帮助相关安全人员及时地进行安全事件响应。

为了实现上述目的,本发明提供一种使用恶意代码属性判断恶意域名的方法,所述方法包括:

获取域名关联的恶意代码以及域名与恶意代码之间的关系;

提取每一个恶意代码的恶意代码属性,根据域名关联的多个恶意代码的属性,基于投票方法确定域名关联的恶意代码属性;

基于域名关联的恶意代码属性和域名与恶意代码之间的关系,得到恶意域名分类。

进一步地,所述提取恶意代码属性的方法包括基于字符串匹配算法的恶意代码属性提取方法。

更进一步地,所述字符串匹配算法包括ac算法。

所述采用ac算法提取恶意代码属性的方法如下:

构建恶意代码属性的关键词列表keywordlist,分析多个反病毒检测引擎输出恶意代码名称的命名方式,构建恶意代码名称的恶意代码属性关键词列表;

拼接多个反病毒检测引擎输出的恶意代码名称,构成恶意代码名称文本malwarenametext;

使用关键词列表keywordlist作为ac算法的输入,构建有限状态模式匹配机a;

将恶意代码名称文本malwarenametext作为输入送入有限状态模式匹配机a进行匹配,将匹配到的每一个关键词放入关键词结果列表keywordretlist中,如果没有匹配到任何关键词,那么输出“other”;

对关键词结果列表keywordretlist中的关键词进行统计计数,将计数次数最多的关键词作为“恶意代码属性”输出。

所述恶意代码属性包括行为、家族、平台中的至少一个。

进一步地,所述构建有限状态模式匹配机a的数量为一个。

所述恶意域名分类是将恶意域名分为c2域名、恶意代码站点域名、仿冒域名、spam域名。

本发明还提供一种使用恶意代码属性判断恶意域名的系统,所述系统包括:

恶意代码以及域名与恶意代码之间关系获取模块,用于获取域名关联的恶意代码以及域名与恶意代码之间的关系;

恶意代码属性提取模块,用于提取每一个恶意代码的恶意代码属性,根据域名关联的多个恶意代码的属性,基于投票方法确定域名关联的恶意代码属性;

恶意域名分类模块,用于基于域名关联的恶意代码属性和域名与恶意代码之间的关系,对恶意域名进行分类,得到恶意域名分类。

进一步地,所述恶意代码属性提取模块具体用于:

构建恶意代码属性的关键词列表keywordlist,分析多个反病毒检测引擎输出恶意代码名称的命名方式,构建恶意代码名称的恶意代码属性关键词列表;

拼接多个反病毒检测引擎输出的恶意代码名称,构成恶意代码名称文本malwarenametext;

使用关键词列表keywordlist作为ac算法的输入,构建有限状态模式匹配机a;

将恶意代码名称文本malwarenametext作为输入送入有限状态模式匹配机a进行匹配,将匹配到的每一个关键词放入关键词结果列表keywordretlist中,如果没有匹配到任何关键词,那么输出“other”;

对关键词结果列表keywordretlist中的关键词进行统计计数,将计数次数最多的关键词作为“恶意代码属性”输出。

本发明还提供一种使用恶意代码属性判断恶意域名的装置,所述装置包括:数据采集单元、处理器和存储器;

所述数据采集单元用于恶意代码相关数据的采集;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行如上所述的方法。

本发明还提供一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如上所述的方法。

在一种或几种具体实施方式中,本发明所提供的使用恶意代码属性判断恶意域名的方法、系统和装置具有以下技术效果:

本发明所提供的使用恶意代码属性判断恶意域名的方法、系统和装置针对现有技术难以对恶意域名进行有效分类和准确判断,恶意代码名称不规范导致信息获取遗漏或重复,不利于采取相应处理措施的问题,首先获取域名关联的恶意代码以及域名与恶意代码之间的关系,然后采用字符串匹配算法提取恶意代码所有安全属性,基于投票方法确定恶意代码真实的安全属性,并根据该属性对该恶意代码关联的恶意域名进行分类,从而实现对恶意域名的准确判断,有利于确定域名的危害性,促使相关安全人员及时进行安全事件响应。

附图说明

为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。

本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。

图1为本发明所提供的使用恶意代码属性判断恶意域名方法的一种具体实施方式流程图;

图2为本发明所提供的采用ac算法提取恶意代码属性方法的一个具体实施方式流程图;

图3为本发明所提供的方法一个示例的实现流程图。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明所提供的使用恶意代码属性判断恶意域名的方法、系统,作为相关安全人员的工具,通过获取域名关联的恶意代码以及域名与恶意代码之间的关系,再采用字符串匹配算法提取恶意代码属性,并根据该属性对该恶意代码关联的恶意域名进行分类,从而实现对恶意域名的准确判断,有利于确定域名的危害性,促使及时进行安全事件响应。

在一种具体实施方式中,本发明所提供的使用恶意代码属性判断恶意域名的方法,如图1所示,所述方法包括步骤:

s1:获取域名关联的恶意代码以及域名与恶意代码之间的关系;

s2:提取每一个恶意代码的恶意代码属性,根据域名关联的多个恶意代码的属性,基于投票方法确定域名关联的恶意代码属性。

s3:基于域名关联的恶意代码属性和域名与恶意代码之间的关系,得到恶意域名分类。

所述恶意域名分类是将恶意域名分为c2域名、恶意代码站点域名、仿冒域名、spam域名。

如果域名关联的恶意代码属性行为为trojan、virus、worm、backdoor、exploit,或者其家族类型对应于trojan、virus、worm、backdoor、exploit,并且域名与恶意代码具有通信和包含的关系,那么该域名定义为c2域名。

如果域名关联的恶意代码属性行为为trojan、virus、worm、backdoor、exploit,或者其家族类型对应于trojan、virus、worm、backdoor、exploit,并且域名与恶意代码具有下载的关系,那么该域名定义为恶意代码站点域名。

如果域名关联的恶意代码属性行为为adware、scam、pup、joke、rogue、porn,或者其家族类型为scam、scamer,那么该域名定义为仿冒域名。

如果域名关联的恶意代码属性行为为spammer,或者其家族类型为spam、spammer,那么该域名定义为spam域名。

在实施过程中,本发明所提供的方法的s2具体流程,如图2所示,其具体包括:

s201:构建恶意代码属性的关键词列表keywordlist,分析多个反病毒检测引擎输出恶意代码名称的命名方式,构建恶意代码名称的恶意代码属性关键词列表;

s202:拼接多个反病毒检测引擎输出的恶意代码名称,构成恶意代码名称文本malwarenametext;

s203:使用关键词列表keywordlist作为ac算法的输入,构建有限状态模式匹配机a;

s204:将恶意代码名称文本malwarenametext作为输入送入有限状态模式匹配机a进行匹配,将匹配到的每一个关键词放入关键词结果列表keywordretlist中,如果没有匹配到任何关键词,那么输出“other”;

s205:对关键词结果列表keywordretlist中的关键词进行统计计数,将计数次数最多的关键词作为“恶意代码属性”输出。

进一步优选地本发明将ac算法作为默认算法。

所述ac算法是由alfredv.aho和margaretj.corasick发明的字符串搜索算法,用于在输入的一串字符串中匹配有限组“字典”中的子串;其通过将模式串预处理为确定有限状态自动机,扫描文本一遍就能完成多个字符串的匹配和搜索。

采用所述拼接多个反病毒检测引擎输出的恶意代码名称,构成恶意代码名称文本malwarenametext,能够避免因恶意代码名称命名不规范导致的恶意代码属性获取遗漏或重复的问题。

所述基于ac算法的恶意代码行为提取方法的具体执行步骤如下:

(1)构建行为的关键词列表keywordlist,分析多个反病毒检测引擎输出恶意代码名称的命名方式,构建恶意代码名称的行为关键词列表,如:trojan、worm、virus、trojan-banker;

(2)拼接多个反病毒检测引擎输出的恶意代码名称,构成恶意代码名称文本malwarenametext;

(3)使用关键词列表keywordlist作为ac算法的输入,构建一个有限状态模式匹配机a;

(4)将恶意代码名称文本malwarenametext作为输入送入有限状态模式匹配机a进行匹配,将匹配到的每一个关键词放入关键词结果列表keywordretlist中,如果没有匹配到任何关键词,那么输出“other”;

(5)对关键词结果列表keywordretlist中的关键词进行统计计数,计数次数最多的关键词将作为“行为”输出。

所述基于ac算法的恶意代码家族提取方法的具体执行步骤如下:

(1)构建家族的关键词列表keywordlist,分析多个反病毒检测引擎输出恶意代码名称的命名方式,构建恶意代码名称的家族关键词列表,如:zbot、emotet、spamnost、ramnit、masuta;

(2)拼接多个反病毒检测引擎输出的恶意代码名称,构成恶意代码名称文本malwarenametext;

(3)使用关键词列表keywordlist作为ac算法的输入,构建一个有限状态模式匹配机a;

(4)将恶意代码名称文本malwarenametext作为输入送入有限状态模式匹配机a进行匹配,将匹配到的每一个关键词放入关键词结果列表keywordretlist中,如果没有匹配到任何关键词,那么输出“other”;

(5)对关键词结果列表keywordretlist中的关键词进行统计计数,计数次数最多的关键词将作为“家族”输出。

所述基于ac算法的恶意代码平台提取方法的具体执行步骤如下:

(1)构建平台的关键词列表keywordlist,分析多个反病毒检测引擎输出恶意代码名称的命名方式,构建恶意代码名称的平台关键词列表,如:windows、android、linux、unix;

(2)拼接多个反病毒检测引擎输出的恶意代码名称,构成恶意代码名称文本malwarenametext;

(3)使用关键词列表keywordlist作为ac算法的输入,构建一个有限状态模式匹配机a;

(4)将恶意代码名称文本malwarenametext作为输入送入有限状态模式匹配机a进行匹配,将匹配到的每一个关键词放入关键词结果列表keywordretlist中,如果没有匹配到任何关键词,那么输出“other”;

(5)对关键词结果列表keywordretlist中的关键词进行统计计数,计数次数最多的关键词将作为“平台”输出。

所述恶意代码安全属性包括恶意代码的名称以及与恶意代码与域名的关联关系,恶意代码的名称包含恶意代码的行为、家族、变种和平台等属性,恶意代码与域名的关联关系可以分为通信、下载和包含关系。通信表示恶意代码使用该域名进行通信,下载表示恶意代码从该域名的站点上下载,包含关系表示域名包含在恶意代码中。

所述基于投票方法确定域名关联的恶意代码属性,是指一个域名可能关联多个恶意代码,可以根据基于字符串匹配算法的恶意代码属性提取方法获取关于这个恶意代码的行为,家族和平台属性。一个域名关联的恶意代码属性,可以由其关联的多个恶意代码属性统计计算得出数量最多的行为,家族和平台属性确定。

具体地,本发明所提供的方法一个示例的实现流程图如图3所示。首先,获取与域名关联的n个(表示若干个)恶意代码以及域名与恶意代码关系;接着,判断是否读取完恶意代码,若结果为“否”,则使用多病毒检测引擎输出恶意代码名称,采用基于字符串匹配算法提取恶意代码属性,将恶意代码属性加入恶意代码属性列表attlist,返回判断是否读取完恶意代码;若判断是否读取恶意代码的结果为“是”,则获取到了完整的恶意代码属性列表attlist;然后,采用基于投票方法获取域名关联的恶意代码属性;最后,使用获取的域名关联的恶意代码属性和域名与恶意代码关系用于获取恶意域名分类。

除了上述方法,本发明还提供一种使用恶意代码属性判断恶意域名的系统,所述系统包括:

恶意代码以及域名与恶意代码之间关系获取模块,用于获取域名关联的恶意代码以及域名与恶意代码之间的关系;

恶意代码属性提取模块,用于提取每一个恶意代码的恶意代码属性,根据域名关联的多个恶意代码的属性,基于投票方法确定域名关联的恶意代码属性;所述恶意代码属性提取模块具体用于:构建恶意代码属性的关键词列表keywordlist,分析多个反病毒检测引擎输出恶意代码名称的命名方式,构建恶意代码名称的恶意代码属性关键词列表;拼接多个反病毒检测引擎输出的恶意代码名称,构成恶意代码名称文本malwarenametext;使用关键词列表keywordlist作为ac算法的输入,构建有限状态模式匹配机a;将恶意代码名称文本malwarenametext作为输入送入有限状态模式匹配机a进行匹配,将匹配到的每一个关键词放入关键词结果列表keywordretlist中,如果没有匹配到任何关键词,那么输出“other”;对关键词结果列表keywordretlist中的关键词进行统计计数,将计数次数最多的关键词作为“恶意代码属性”输出;

恶意域名分类模块,用于基于域名关联的恶意代码属性和域名与恶意代码之间的关系,对恶意域名进行分类,得到恶意域名分类。

基于相同的技术构思,本申请实施例还提供了一种使用恶意代码属性判断恶意域名的装置,所述装置包括:数据采集单元、处理器和存储器;所述数据采集单元用于恶意代码相关数据的采集;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行如上所述的方法。

基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如上所述的方法。

本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。

需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。

上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1