CN111698256B - 检测非法链接的方法及装置 - Google Patents

检测非法链接的方法及装置 Download PDF

Info

Publication number
CN111698256B
CN111698256B CN202010551313.1A CN202010551313A CN111698256B CN 111698256 B CN111698256 B CN 111698256B CN 202010551313 A CN202010551313 A CN 202010551313A CN 111698256 B CN111698256 B CN 111698256B
Authority
CN
China
Prior art keywords
node
similarity
website
character
target website
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
Application number
CN202010551313.1A
Other languages
English (en)
Other versions
CN111698256A (zh
Inventor
田永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nsfocus Technologies Inc, Nsfocus Technologies Group Co Ltd filed Critical Nsfocus Technologies Inc
Priority to CN202010551313.1A priority Critical patent/CN111698256B/zh
Publication of CN111698256A publication Critical patent/CN111698256A/zh
Application granted granted Critical
Publication of CN111698256B publication Critical patent/CN111698256B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing

Abstract

本发明涉及网络安全技术领域,尤其涉及检测非法链接的方法及装置。所述方法包括:获取待检测的目标网址,以及获取包含一个以上白名单网址的白名单网址集合;基于白名单网址集合,构建呈树状结构的网址有限状态自动机;在对网址有限状态自动机中的字符节点进行遍历的过程中,确定遍历到的当前字符节点相对于目标网址的节点相似度;判断节点相似度是否等于1;若等于1,则将目标网址确定为合法链接;若不等于1,则判断节点相似度是否大于预设相似度阈值;若小于或等于预设相似度阈值,则结束对当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历;若大于预设相似度阈值,则将目标网址确定为非法链接。本发明提高了检测效率。

Description

检测非法链接的方法及装置
技术领域
本发明涉及网络安全技术领域,尤其涉及检测非法链接的方法及装置。
背景技术
邮件网关的作用是将电子邮件从一个网络传送到另一个网络。为了确保传送的电子邮件的安全性,邮件网关通常具有非法链接检测功能。即,邮件网关会检测电子邮件中包含的网址是否属于非法链接,如钓鱼链接。
在检测目标网址是否属于非法链接时,先计算目标网址与白名单网址集合中的白名单网址之间的相似度。若相似度高,则表明目标网址属于非法链接。例如,目标网址为nsf0cus.com,某一白名单网址为nsfocus.com,由于nsf0cus.com与nsfocus.com的相似度高,因此,将nsf0cus.com确定为非法链接。
对于如何计算目标网址与白名单网址之间的相似度,现有技术采用莱温斯坦相似度计算方法,即,将白名单网址中的所有字符逐一与目标网址进行比较。从而,如果目标网址的字符串长度为n、白名单网址的字符串长度为m、白名单网址集合中包含s个白名单网址,那么,检测目标网址是否属于非法链接的数据处理量为s*m*n。可见,存在检测效率低的技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的检测非法链接的方法及装置。
依据本发明的第一个方面,本发明提供了一种检测非法链接的方法,所述方法包括:
获取待检测的目标网址,以及获取包含一个以上白名单网址的白名单网址集合;
基于所述白名单网址集合,构建呈树状结构的网址有限状态自动机;
在对所述网址有限状态自动机中的字符节点进行遍历的过程中,确定遍历到的当前字符节点相对于所述目标网址的节点相似度;
判断所述节点相似度是否等于1;
若所述节点相似度等于1,则将所述目标网址确定为合法链接;若所述节点相似度不等于1,则判断所述节点相似度是否大于预设相似度阈值;
若所述节点相似度小于或等于所述预设相似度阈值,则结束对所述当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历;
若所述节点相似度大于所述预设相似度阈值,则将所述目标网址确定为非法链接。
优选的,所述基于所述白名单网址集合,构建呈树状结构的网址有限状态自动机,包括:
按照所述白名单网址中字符的排列顺序,依次将每个字符作为一个字符节点,构建有向的树状结构,形成所述网址有限状态自动机;
其中,若多个所述白名单网址的前N个字符均对应相同,则对所述前N个字符共享字符节点,并从不相同的第N+1个字符起分叉,N为大于或等于1的整数。
优选的,所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度,包括:
基于所述当前字符节点相对于所述目标网址的编辑距离,以及所述当前字符节点的检测长度,确定所述节点相似度;其中,所述检测长度为所述目标网址的长度、所述当前字符节点的第一深度和所述当前字符节点的第二深度的求和,所述第一深度为所述当前字符节点相对于根节点的深度,所述第二深度为所述当前字符节点所属节点子树的深度。
优选的,在所述构建呈树状结构的网址有限状态自动机之后,且在所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度之前,所述方法还包括:
判断所述当前字符节点的第一深度是否大于所述目标网址的长度,所述第一深度为所述当前字符节点相对于根节点的深度;
若所述第一深度大于所述目标网址的长度,则基于所述当前字符节点相对于所述目标网址的最优编辑距离,确定所述当前字符节点相对于所述目标网址的临界节点相似度,并判断所述临界节点相似度是否大于所述预设相似度阈值;其中,所述最优编辑距离为所述当前字符节点对应的当前遍历字符串的长度与所述目标网址的长度的差值;
若所述临界节点相似度小于或等于所述预设相似度阈值,则结束对所述当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历;
若所述临界节点相似度大于所述预设相似度阈值,则跳转至所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度步骤;
若所述第一深度小于或等于所述目标网址的长度,则跳转至所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度步骤。
优选的,所述对所述网址有限状态自动机中的字符节点进行遍历,包括:
基于深度优先遍历方式对所述网址有限状态自动机中的字符节点进行遍历。
优选的,所述基于深度优先遍历方式对所述网址有限状态自动机中的节点进行遍历,包括:
当所述网址有限状态自动机存在多个分支结构时,按照从左至右或从右至左的顺序对所述多个分支结构进行遍历。
优选的,所述获取待检测的目标网址,包括:
从邮件网关的非本地域用户传送的电子邮件中获取所述目标网址。
依据本发明的第二个方面,本发明提供了一种检测非法链接的装置,所述装置包括:
获取模块,用于获取待检测的目标网址,以及获取包含一个以上白名单网址的白名单网址集合;
构建模块,用于基于所述白名单网址集合,构建呈树状结构的网址有限状态自动机;
相似度确定模块,用于在对所述网址有限状态自动机中的字符节点进行遍历的过程中,确定遍历到的当前字符节点相对于所述目标网址的节点相似度;
判断模块,用于判断所述节点相似度是否等于1;
第一处理模块,用于若所述节点相似度等于1,则将所述目标网址确定为合法链接;若所述节点相似度不等于1,则判断所述节点相似度是否大于预设相似度阈值;
第二处理模块,用于若所述节点相似度小于或等于所述预设相似度阈值,则结束对所述当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历;若所述节点相似度大于所述预设相似度阈值,则将所述目标网址确定为非法链接。
依据本发明的第三个方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述第一个方面所述的方法步骤。
依据本发明的第四个方面,本发明提供了一种计算机设备,包括存储,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如前述第一个方面所述的方法步骤。
在本发明的检测非法链接的方法中,首先,获取待检测的目标网址以及获取包含一个以上白名单网址的白名单网址集合。然后,基于白名单网址集合,构建呈树状结构的网址有限状态自动机。接着,在对网址有限状态自动机中的字符节点进行遍历的过程中,确定遍历到的当前字符节点相对于目标网址的节点相似度。并判断节点相似度是否等于1。若节点相似度等于1,则将目标网址确定为合法链接,若节点相似度不等于1,则判断节点相似度是否大于预设相似度阈值。若节点相似度小于或等于预设相似度阈值,则结束对当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历,若节点相似度大于预设相似度阈值,则将目标网址确定为非法链接。本发明通过构建网址有限状态自动机,先判断节点相似度是否等于1,在节点相似度不等于1的情况下,再判断节点相似度是否大于预设相似度阈值,在节点相似度小于或等于预设相似度阈值时,通过结束对当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历,实现了对网址有限状态自动机的剪枝。进一步来讲,本发明通过对网址有限状态自动机的剪枝,因此并不会对所有字符节点均进行遍历,提高了检测效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考图形表示相同的部件。在附图中:
图1示出了本发明实施例中检测非法链接的方法的流程图;
图2示出了本发明实施例中网址有限状态自动机的示意图;
图3示出了本发明实施例中检测非法链接的装置的结构图;
图4示出了本发明实施例中计算机设备的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种检测非法链接的方法,应用于邮件网关。邮件网关通过所述方法能够对目标网址进行检测,以判断目标网址是否属于非法链接。
如图1所示,本发明实施例的检测非法链接的方法包括以下步骤:
步骤101:获取待检测的目标网址,以及获取包含一个以上白名单网址的白名单网址集合。
步骤102:基于白名单网址集合,构建呈树状结构的网址有限状态自动机。
步骤103:在对网址有限状态自动机中的字符节点进行遍历的过程中,确定遍历到的当前字符节点相对于目标网址的节点相似度。
步骤104:判断节点相似度是否等于1。
步骤105:若节点相似度等于1,则将目标网址确定为合法链接。若节点相似度不等于1,则判断节点相似度是否大于预设相似度阈值。
步骤106:若节点相似度小于或等于预设相似度阈值,则结束对当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历。若节点相似度大于预设相似度阈值,则将目标网址确定为非法链接。
对于步骤101而言,在本发明实施例中,维护有白名单网址集合。白名单网址集合中包含一个以上白名单网址,白名单网址为安全的网址。其中,白名单网址可以为预设的网址,也可以为通过自学习得到的白名单网址。白名单网址是判断目标网址是否属于非法链接的依据。
另外,在步骤101中,对于如何获取待检测的目标网址,本发明实施例提供两种具体的实施方案。
在第一种实施方案中,从邮件网关的非本地域用户传送的电子邮件中获取待检测的目标网址。具体来讲,邮件网关在传送电子邮件时,先判断传送电子邮件的用户是否属于本地域用户,本地域用户为与邮件网关属于同一局域网下的用户。由于本地域用户通常属于认可的安全用户,因此,若传送电子邮件的用户属于本地域用户,那么,对电子邮件直接放行,不进行非法链接的检测。若传送电子邮件的用户不属于本地域用户,表明该用户属于非本地域用户,则提取非本地域用户传送的电子邮件中的网址,将提取出的网址作为待检测的目标网址。通过上述第一种实施方案可知,本发明仅对非本地域用户传送的电子邮件进行非法链接检测,对本地域用户传送的电子邮件直接放行,不进行非法链接的检测,因此,能够提高检测效率。
在第二种实施方案中,邮件网关在传送电子邮件时,不再对用户进行区分,均进行非法链接检测。即,无论是本地域用户,还是非本地域用户,对所有用户传送的电子邮件均进行非法链接检测。
需要说明的是,在本发明中,电子邮件的传送既包含电子邮件的发送,又包含电子邮件的接收。
进一步,在获取到白名单网址集合后,执行步骤102。步骤102具体包括:
按照白名单网址中字符的排列顺序,依次将每个字符作为一个字符节点,构建有向的树状结构,形成网址有限状态自动机。其中,若多个白名单网址的前N个字符均对应相同,则对前N个字符共享字符节点,并从不相同的第N+1个字符起分叉,N为大于或等于1的整数。
具体来讲,有限状态自动机是一种抽象出的计算模型,其可以表示为一个有向图。本发明将有限状态自动机应用到字符串集合中,即,基于白名单网址集合,构建出呈树状结构的网址有限状态自动机。具体地,针对白名单网址集合中的多个白名单网址,从第一个字符起,将按照字符排列顺序将顺次对应相同的所有字符共享字符节点,并从第一个不相同的字符开始分叉。下面结合一例子对构建网址有限状态自动机的过程进行详细说明。
若白名单网址集合为{qqsr,qqcamel,qbabc,qbade},该白名单网址集合中存在四个白名单网址,分别为:第一白名单网址qqsr,第二白名单网址qqcamel,第三白名单网址qbabc,第四白名单网址qbade。由于这四个白名单网址的第一个字符对应相同,因此对第一个字符共享字符节点,即,仅形成一个字符节点q。由于第一白名单网址和第二白名单网址的第二个字符也对应相同,因此对第二个字符共享字符节点,即,仅形成一个字符节点q。由于第一白名单网址和第二白名单网址从第三个字符开始,字符不再相同,因此从第三个字符开始分叉,形成分支sr和分支camel。由于第三白名单网址和第四白名单网址的第二个字符和第三个字符对应相同,因此对第二个字符和第三个字符共享字符节点,即,仅形成一个字符节点b和一个字符节点a。由于第三白名单网址和第四白名单网址从第四个字符开始,字符不再相同,因此从第四个字符开始分叉,形成分支bc和分支de,最终如图2所示的网址有限状态自动机。
需要说明的是,在本发明中,只有在前N个字符对应相同的情况下,才会共享字符节点。如果字符对应相同的情况并不是顺次发生在字符串前N个字符中,而是发生在字符串的中部或尾部,那么,将不会共享字符节点。例如,对于第一字符串qwer和第二字符串qsed而言,只有字符q会共享字符节点q,对于字符e并不会共享字符节点e。另外,若多个白名单网址的第一个字符并不相同,那么,这些白名单网址之间将不再共享字符节点。
接着,在获取到目标网址并构建出网址有限状态自动机之后,对网址有限状态自动机中的字符节点进行遍历,以判断目标网址是否属于非法链接。对于采用何种遍历顺序,在第一种实施方案中,可以采用广度优先遍历方式(Breadth First Search,BFS),广度优先遍历方式是按层来处理顶点,距离开始点最近的顶点首先被遍历,而最远的顶点则最后被遍历。以图2为例,若采用广度优先遍历方式,则遍历顺序依次为第一层的q、第二层的q、第二层的b、第三层的s、第三层的c、第三层的a,以此类推。
然而,由于在本发明的网址有限状态自动机中,位于同一深度下的各个字符节点对应不同的字符串,如图2中位于同一深度下的r、a、b和d对应四个不同的白名单网址,若采用广度优先遍历方式,在遍历时会在不同的字符串之间反复跳转,导致处理效率低。因此,为了提高处理效率,以进一步提高检测效率。本发明提供优选的第二种实施方案。在第二种实施方案中,基于深度优先遍历方式(Depth First Search,DFS)对网址有限状态自动机中的字符节点进行遍历。深度优先遍历方式是顺次对不同分支结构进行遍历,对于每一个分支结构而言,顺次从根节点遍历到叶子节点。以图2为例,若采用深度优先遍历方式,则遍历顺序依次为第一层的q、第二层的q、第三层的s、第四层的r,以此类推。本发明通过深度优先遍历方式实现了将目标网址逐一与不同的白名单网址进行相似度比较,不会出现在不同的白名单网址之间反复跳转的情况,提高了处理效率。
进一步,在基于深度优先遍历方式对网址有限状态自动机中的字符节点进行遍历的过程中,当存在多个分支结构时,若乱序选取分支结构进行遍历,容易出现漏掉分支结构的情况。因此,在本发明中,优选地,按照从左至右或从右至左的顺序对多个分支结构进行遍历,这样能够保证每一个分支结构均会被遍历到,避免漏掉分支结构的情况。
进一步,在基于深度优先遍历方式对网址有限状态自动机中的字符节点进行遍历的过程中,对于步骤103而言,首先确定遍历到的当前字符节点相对于目标网址的节点相似度。
对于如何确定字符节点相对于目标网址的节点相似度,下面给出详细说明:
在本发明中,基于当前字符节点相对于目标网址的编辑距离,以及当前字符节点的检测长度,确定节点相似度。具体地,节点相似度的公式如下:
r=(sum-ldist)/sum公式一
r为节点相似度,sum为检测长度,ldist为编辑距离。
其中,ldist编辑距离是指将一个字符串转换成另一个字符串所需的最少编辑操作次数,编辑操作可以为替换、删除或增加。对于如何确定当前字符节点相对于目标网址的编辑距离,在本发明中,从当前字符节点到与当前字符节点对应的根节点之间的遍历路径为当前遍历路径,由当前遍历路径途径的各个字符节点顺次组成的字符串为当前遍历字符串,当前字符节点相对于目标网址的编辑距离也即当前遍历字符串相对于目标网址的编辑距离。
例如,以图2为例,若当前字符节点为s,那么,当前遍历字符串为qqs。当前字符节点相对于目标网址的编辑距离,也即当前遍历字符串qqs相对于目标网址的编辑距离。
进一步,对于如何确定当前遍历字符串相对于目标网址的编辑距离,本发明采用动态规划方法进行确定。动态规划方法采用的编辑距离计算公式如下:
Figure BDA0002542607180000101
其中,edit[i][j]表示当前遍历字符串与目标网址之间的编辑距离,[i]表示当前遍历字符串从第0个字符开始取到第i个字符,[j]表示目标网址从第0个字符开始取到第j个字符。
下面结合一例子对编辑距离的计算过程进行说明。
若计算由qbcat转换成qqcamel的编辑距离,那么,由于qbcat的长度为5,qqcamel的长度为7。然后对5和7各加2,得到7和9。因此创建一个7*9的表,如下表1。
q q c a m e l
0 1 2 3 4 5 6 7
q 1
b 2
c 3
a 4
t 5
表1
进一步,从(3,3)格开始计算,根据上述公式二,由于最上方的字符等于最左方的字符,则左上方的数字0,左方数字+1为2,上方数字+1为2,因此,edit[3][3]=min(0,2,2)=0。依次类推,通过循环操作,推出下表2:
q q c a m e l
0 1 2 3 4 5 6 7
q 1 0 1 2 3 4 5 6
b 2 2 1 2 3 4 5 6
c 3 3 2 1 2 3 4 5
a 4 4 3 2 1 2 3 4
t 5 5 4 3 2 2 3 4
表2
最终,qbcat与qqcamel之间的编辑距离取右下角的值,即4。
其中,在本发明中,sum检测长度为目标网址的长度、当前字符节点的第一深度和当前字符节点的第二深度的求和。第一深度为当前字符节点相对于根节点的深度,此处的根节点为当前字符节点对应的根节点,第二深度为当前字符节点所属节点子树的深度。需要说明的是,在确定第一深度时包含当前字符节点在内,在确定第二深度时不包含当前字符节点在内,当前字符节点所属节点子树的深度也即节点子树中的最大深度。例如,以图2为例,若当前字符节点为第二个字符节点q时,根据qq可得第一深度为2,根据camel可得第二深度为5,从而,第二个字符节点q的检测长度为7。
需要说明的是,若预设相似度阈值为r’,由于非法链接是节点相似度大于预设相似度阈值的网址,那么为了确定出非法链接,根据公式一可知,若想要找到非法链接,需要满足:
r’<=(sum-ldist)/sum
通过对上式变形可得公式三:
ldist<=(1-r’)*sum 公式三
在本发明中,ldist是一个定值,由于根据当前字符节点所属节点子树的深度确定检测长度,能够使检测长度尽可能大,从而使公式三尽量成立。如果根据当前字符节点所属节点子树的深度确定出的检测长度都无法使公式三成立,那么该分支结构的后续字符节点也必然无法使公式三成立,因此,表明可以结束对该分支结构的遍历。从而,通过上述方法能够提高检测效率。
进一步,在通过上述方法分别计算出检测长度和编辑距离之后,根据上述公式一计算出当前字符节点的节点相似度。接着,执行步骤104,先进行第一次判断过程,以判断目标网址与白名单网址是否完全相同。若节点相似度等于1,表明目标网址与白名单网址相同,则将目标网址确定为合法链接。若节点相似度不等于1,则将节点相似度与预设相似度阈值进行比较,进行第二次判断过程,判断节点相似度是否大于预设相似度阈值。其中,预设相似度阈值的选取范围为(0,1),其具体根据对网址的宽容度确定,若对网址的宽容度高,那么可以将预设相似度阈值调高,若对网址的宽容度低,那么可以将预设相似度阈值调低。例如,若预设相似度阈值为60%,那么,当目标网址与白名单网址的相似度超过60%时,就会将目标网址确定为非法链接。而,若预设相似度阈值为80%,只有与白名单网址的相似度超过80%的目标网址才会被确定为非法链接。
进一步,如果当前字符节点的节点相似度小于或等于预设相似度阈值,根据上述分析可知,该分支结构的后续字符节点也必然无法使公式三成立。因此,结束对当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历。例如,以图2为例,若当前字符节点为s,且计算出字符节点s的节点相似度小于或等于预设相似度阈值,那么,结束对sr分支结构的遍历,跳转至camel分支结构进行遍历。需要说明的是,对于如何选取下一分支结构,其通过遍历顺序决定。由于前文已对遍历顺序进行详细说明,此处不再赘述。
本发明通过在节点相似度小于或等于预设相似度阈值时,结束对当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历,实现了对网址有限状态自动机的剪枝。由于本发明并不会对所有字符节点均进行遍历,因此提高了检测效率。
而,如果当前字符节点的节点相似度大于预设相似度阈值,则将目标网址确定为非法链接。
具体来讲,在对某一分支结构中的各个字符节点逐一遍历的过程中,某一字符节点的节点相似度大于预设相似度阈值,那么,将目标网址确定为非法链接。例如,以图2为例,若当前字符节点为m,且计算出字符节点m的节点相似度大于预设相似度阈值,那么,将目标网址确定为非法链接。
进一步来讲,本发明还提供另一实施例,在该实施例中,在构建呈树状结构的网址有限状态自动机之后,且在确定遍历到的当前字符节点相对于目标网址的节点相似度之前,所述方法还包括以下步骤:
判断当前字符节点的第一深度是否大于目标网址的长度。其中,目标网址的长度即目标网址的字符串的长度。第一深度与前文中的第一深度指代同一对象,均指当前字符节点相对于根节点的深度。
从而,若第一深度大于目标网址的长度,则基于当前字符节点相对于目标网址的最优编辑距离,确定当前字符节点相对于目标网址的临界节点相似度,并判断临界节点相似度是否大于预设相似度阈值。
具体来讲,最优编辑距离为当前字符节点对应的当前遍历字符串的长度与目标网址的长度的差值,最优编辑距离表示为blist。由于前文已对当前遍历字符串进行详细说明,此处不再赘述。例如,以图2为例,若目标网址为qbc,当前字符节点为l,那么,当前遍历字符串为qqcamel,由于当前遍历字符串的长度为7,目标网址的长度为3,因此,最优编辑距离为4。
进一步,临界节点相似度根据最优编辑距离以及当前字符节点的检测长度,其计算公式如下:
rb=(sum-blist)/sum 公式四
其中,rb为临界节点相似度,sum为检测长度,blist为最优编辑距离。由于前文已对当前字符节点的检测长度进行详细说明,此处不再赘述。
进一步,若临界节点相似度小于或等于预设相似度阈值,则结束对当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历。
在本发明中,最优编辑距离为在默认当前遍历字符串与目标网址在重合的字符串位置上字符均对应相同的条件下确定出的编辑距离,最优编辑距离也即最小的编辑距离。因此,根据公式三可知,如果ldist取最小值(即blist),仍然无法使公式三成立,那么该分支结构的后续字符节点也必然无法使公式三成立。进而,可以结束对该分支结构的遍历。本发明通过上述方法能够提高检测效率。
进一步,若临界节点相似度大于预设相似度阈值,则跳转至确定遍历到的当前字符节点相对于目标网址的节点相似度步骤,即,跳转至步骤103,开始执行确定遍历到的当前字符节点相对于目标网址的节点相似度及后续步骤。
进一步,若第一深度小于或等于目标网址的长度,由于此时不存在最优编辑距离,无法确定出临界节点相似度。因此,跳转至步骤103,开始执行确定遍历到的当前字符节点相对于目标网址的节点相似度及后续步骤。
基于同一发明构思,本发明实施例提供一种检测非法链接的装置,如图3所示,所述装置包括:
获取模块31,用于获取待检测的目标网址,以及获取包含一个以上白名单网址的白名单网址集合;
构建模块32,用于基于所述白名单网址集合,构建呈树状结构的网址有限状态自动机;
相似度确定模块33,用于在对所述网址有限状态自动机中的字符节点进行遍历的过程中,确定遍历到的当前字符节点相对于所述目标网址的节点相似度;
判断模块34,用于判断所述节点相似度是否等于1;
第一处理模块35,用于若所述节点相似度等于1,则将所述目标网址确定为合法链接;若所述节点相似度不等于1,则判断所述节点相似度是否大于预设相似度阈值;
第二处理模块36,用于若所述节点相似度小于或等于所述预设相似度阈值,则结束对所述当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历;若所述节点相似度大于所述预设相似度阈值,则将所述目标网址确定为非法链接。
优选的,所述构建模块,具体用于:
按照所述白名单网址中字符的排列顺序,依次将每个字符作为一个字符节点,构建有向的树状结构,形成所述网址有限状态自动机;
其中,若多个所述白名单网址的前N个字符均对应相同,则对所述前N个字符共享字符节点,并从不相同的第N+1个字符起分叉,N为大于或等于1的整数。
优选的,所述相似度确定模块,包括:
确定单元,用于基于所述当前字符节点相对于所述目标网址的编辑距离,以及所述当前字符节点的检测长度,确定所述节点相似度;其中,所述检测长度为所述目标网址的长度、所述当前字符节点的第一深度和所述当前字符节点的第二深度的求和,所述第一深度为所述当前字符节点相对于根节点的深度,所述第二深度为所述当前字符节点所属节点子树的深度。
优选的,所述装置还包括:
深度判断模块,用于判断所述当前字符节点的第一深度是否大于所述目标网址的长度,所述第一深度为所述当前字符节点相对于根节点的深度;
临界相似度确定模块,用于若所述第一深度大于所述目标网址的长度,则基于所述当前字符节点相对于所述目标网址的最优编辑距离,确定所述当前字符节点相对于所述目标网址的临界节点相似度,并判断所述临界节点相似度是否大于所述预设相似度阈值;其中,所述最优编辑距离为所述当前字符节点对应的当前遍历字符串的长度与所述目标网址的长度的差值;
第一跳转模块,用于若所述临界节点相似度小于或等于所述预设相似度阈值,则结束对所述当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历;
第二跳转模块,用于若所述临界节点相似度大于所述预设相似度阈值,则跳转至所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度步骤;
第三跳转模块,用于若所述第一深度小于或等于所述目标网址的长度,则跳转至所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度步骤。
优选的,所述装置还包括:
深度优先遍历模块,用于基于深度优先遍历方式对所述网址有限状态自动机中的字符节点进行遍历。
优选的,所述深度优先遍历模块,具体用于:
当所述网址有限状态自动机存在多个分支结构时,按照从左至右或从右至左的顺序对所述多个分支结构进行遍历。
优选的,所述获取模块,包括:
非本地域网址获取单元,用于从邮件网关的非本地域用户传送的电子邮件中获取所述目标网址。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述实施例所述的方法步骤。
基于同一发明构思,本发明实施例还提供了一种计算机设备,如图4所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机设备可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以计算机设备为手机为例:
图4示出的是与本发明实施例提供的计算机设备相关的部分结构的框图。参考图4,该计算机设备包括:存储器401和处理器402。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图4对计算机设备的各个构成部件进行具体的介绍:
存储器401可用于存储软件程序以及模块,处理器402通过运行存储在存储器401的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器401可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储数据(比如音频数据、电话本等)等。此外,存储器401可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器402是计算机设备的控制中心,通过运行或执行存储在存储器401内的软件程序和/或模块,以及调用存储在存储器401内的数据,执行各种功能和处理数据。可选的,处理器402可包括一个或多个处理单元;优选的,处理器402可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
在本发明实施例中,该计算机设备所包括的处理器402可以具有前述实施例中任一方法步骤所对应的功能。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网址上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种检测非法链接的方法,其特征在于,所述方法包括:
获取待检测的目标网址,以及获取包含一个以上白名单网址的白名单网址集合;
基于所述白名单网址集合,构建呈树状结构的网址有限状态自动机;
在对所述网址有限状态自动机中的字符节点进行遍历的过程中,确定遍历到的当前字符节点相对于所述目标网址的节点相似度;
判断所述节点相似度是否等于1;
若所述节点相似度等于1,则将所述目标网址确定为合法链接;若所述节点相似度不等于1,则判断所述节点相似度是否大于预设相似度阈值;
若所述节点相似度小于或等于所述预设相似度阈值,则结束对所述当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历;若所述节点相似度大于所述预设相似度阈值,则将所述目标网址确定为非法链接。
2.如权利要求1所述的方法,其特征在于,所述基于所述白名单网址集合,构建呈树状结构的网址有限状态自动机,包括:
按照所述白名单网址中字符的排列顺序,依次将每个字符作为一个字符节点,构建有向的树状结构,形成所述网址有限状态自动机;
其中,若多个所述白名单网址的前N个字符均对应相同,则对所述前N个字符共享字符节点,并从不相同的第N+1个字符起分叉,N为大于或等于1的整数。
3.如权利要求1所述的方法,其特征在于,所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度,包括:
基于所述当前字符节点相对于所述目标网址的编辑距离,以及所述当前字符节点的检测长度,确定所述节点相似度;其中,所述检测长度为所述目标网址的长度、所述当前字符节点的第一深度和所述当前字符节点的第二深度的求和,所述第一深度为所述当前字符节点相对于根节点的深度,所述第二深度为所述当前字符节点所属节点子树的深度。
4.如权利要求1所述的方法,其特征在于,在所述构建呈树状结构的网址有限状态自动机之后,且在所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度之前,所述方法还包括:
判断所述当前字符节点的第一深度是否大于所述目标网址的长度,所述第一深度为所述当前字符节点相对于根节点的深度;
若所述第一深度大于所述目标网址的长度,则基于所述当前字符节点相对于所述目标网址的最优编辑距离,确定所述当前字符节点相对于所述目标网址的临界节点相似度,并判断所述临界节点相似度是否大于所述预设相似度阈值;其中,所述最优编辑距离为所述当前字符节点对应的当前遍历字符串的长度与所述目标网址的长度的差值;
若所述临界节点相似度小于或等于所述预设相似度阈值,则结束对所述当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历;
若所述临界节点相似度大于所述预设相似度阈值,则跳转至所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度步骤;
若所述第一深度小于或等于所述目标网址的长度,则跳转至所述确定遍历到的当前字符节点相对于所述目标网址的节点相似度步骤。
5.如权利要求1所述的方法,其特征在于,所述对所述网址有限状态自动机中的字符节点进行遍历,包括:
基于深度优先遍历方式对所述网址有限状态自动机中的字符节点进行遍历。
6.如权利要求5所述的方法,其特征在于,所述基于深度优先遍历方式对所述网址有限状态自动机中的节点进行遍历,包括:
当所述网址有限状态自动机存在多个分支结构时,按照从左至右或从右至左的顺序对所述多个分支结构进行遍历。
7.如权利要求1所述的方法,其特征在于,所述获取待检测的目标网址,包括:
从邮件网关的非本地域用户传送的电子邮件中获取所述目标网址。
8.一种检测非法链接的装置,其特征在于,所述装置包括:
获取模块,用于获取待检测的目标网址,以及获取包含一个以上白名单网址的白名单网址集合;
构建模块,用于基于所述白名单网址集合,构建呈树状结构的网址有限状态自动机;
相似度确定模块,用于在对所述网址有限状态自动机中的字符节点进行遍历的过程中,确定遍历到的当前字符节点相对于所述目标网址的节点相似度;
判断模块,用于判断所述节点相似度是否等于1;
第一处理模块,用于若所述节点相似度等于1,则将所述目标网址确定为合法链接;若所述节点相似度不等于1,则判断所述节点相似度是否大于预设相似度阈值;
第二处理模块,用于若所述节点相似度小于或等于所述预设相似度阈值,则结束对所述当前字符节点对应的分支结构的遍历,跳转至下一分支结构进行遍历;若所述节点相似度大于所述预设相似度阈值,则将所述目标网址确定为非法链接。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一权利要求所述的方法步骤。
10.一种计算机设备,包括存储,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一权利要求所述的方法步骤。
CN202010551313.1A 2020-06-17 2020-06-17 检测非法链接的方法及装置 Active CN111698256B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010551313.1A CN111698256B (zh) 2020-06-17 2020-06-17 检测非法链接的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010551313.1A CN111698256B (zh) 2020-06-17 2020-06-17 检测非法链接的方法及装置

Publications (2)

Publication Number Publication Date
CN111698256A CN111698256A (zh) 2020-09-22
CN111698256B true CN111698256B (zh) 2022-05-10

Family

ID=72481389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010551313.1A Active CN111698256B (zh) 2020-06-17 2020-06-17 检测非法链接的方法及装置

Country Status (1)

Country Link
CN (1) CN111698256B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115001811A (zh) * 2022-05-31 2022-09-02 中国电信股份有限公司 一种网址检测方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491543A (zh) * 2013-09-30 2014-01-01 北京奇虎科技有限公司 通过无线终端检测恶意网址的方法、无线终端
WO2015101337A1 (en) * 2014-01-03 2015-07-09 Tencent Technology (Shenzhen) Company Limited Malicious website address prompt method and router
CN105119909A (zh) * 2015-07-22 2015-12-02 国家计算机网络与信息安全管理中心 一种基于页面视觉相似性的仿冒网站检测方法和系统
US9565209B1 (en) * 2015-03-31 2017-02-07 Symantec Corporation Detecting electronic messaging threats by using metric trees and similarity hashes
CN110532784A (zh) * 2019-09-04 2019-12-03 杭州安恒信息技术股份有限公司 一种暗链检测方法、装置、设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491543A (zh) * 2013-09-30 2014-01-01 北京奇虎科技有限公司 通过无线终端检测恶意网址的方法、无线终端
WO2015101337A1 (en) * 2014-01-03 2015-07-09 Tencent Technology (Shenzhen) Company Limited Malicious website address prompt method and router
US9565209B1 (en) * 2015-03-31 2017-02-07 Symantec Corporation Detecting electronic messaging threats by using metric trees and similarity hashes
CN105119909A (zh) * 2015-07-22 2015-12-02 国家计算机网络与信息安全管理中心 一种基于页面视觉相似性的仿冒网站检测方法和系统
CN110532784A (zh) * 2019-09-04 2019-12-03 杭州安恒信息技术股份有限公司 一种暗链检测方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN111698256A (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
RU2680738C1 (ru) Каскадный классификатор для приложений компьютерной безопасности
US9426177B2 (en) Method and apparatus for detecting security vulnerability for animation source file
CN107169323B (zh) 一种基于布局簇图的安卓应用重打包检测方法
CN107563201B (zh) 基于机器学习的关联样本查找方法、装置及服务器
EP2237196A1 (en) Tree-based node insertion method and memory device
CN110572409B (zh) 工业互联网的安全风险预测方法、装置、设备及存储介质
CN108008936B (zh) 一种数据处理方法、装置及电子设备
WO2015007166A1 (en) Method and apparatus for detecting security vulnerability for animation source file
CN111368289B (zh) 一种恶意软件检测方法和装置
CN104135507A (zh) 一种防盗链的方法和装置
CN107247722B (zh) 一种文件扫描方法、装置及智能终端
JP6557334B2 (ja) アクセス分類装置、アクセス分類方法、及びアクセス分類プログラム
CN112052413B (zh) Url模糊匹配方法、装置和系统
CN109120431B (zh) 复杂网络中传播源选择的方法、装置及终端设备
CN113542442B (zh) 一种恶意域名检测方法、装置、设备及存储介质
CN111698256B (zh) 检测非法链接的方法及装置
CN104320312A (zh) 网络应用安全测试工具及模糊测试用例生成方法和系统
CN112784194A (zh) 一种Android应用页面自动化遍历方法及系统
KR102189811B1 (ko) 멀티 홉 이웃을 이용한 컨볼루션 학습 기반의 지식 그래프 완성 방법 및 장치
US7158024B2 (en) Packet intrusion detection rule simplification apparatus and method, and packet intrusion detection apparatus and method using simplified intrusion detection rule
CN109992960B (zh) 一种伪造参数检测方法、装置、电子设备及存储介质
US9201982B2 (en) Priority search trees
CN116366603A (zh) 一种活跃IPv6地址的确定方法及装置
CN106357468B (zh) 一种判断网络服务器的服务规范的方法和装置
CN105094810A (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