CN107918733B - 检测网页的恶意元素的系统和方法 - Google Patents

检测网页的恶意元素的系统和方法 Download PDF

Info

Publication number
CN107918733B
CN107918733B CN201710480802.0A CN201710480802A CN107918733B CN 107918733 B CN107918733 B CN 107918733B CN 201710480802 A CN201710480802 A CN 201710480802A CN 107918733 B CN107918733 B CN 107918733B
Authority
CN
China
Prior art keywords
web page
script
elements
server
data
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
CN201710480802.0A
Other languages
English (en)
Other versions
CN107918733A (zh
Inventor
奥列格·V·库普列夫
安东·B·盖尔琛科
米哈伊尔·V·尤斯蒂诺夫
维塔利·V·孔德拉托夫
弗拉基米尔·A·库斯科夫
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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of CN107918733A publication Critical patent/CN107918733A/zh
Application granted granted Critical
Publication of CN107918733B publication Critical patent/CN107918733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • 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
    • 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/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了用于检测网页的异常元素或恶意元素的系统和方法。一种示例性方法包括:获得关于被测网页的元素的数据;生成表征所述被测网页的元素的至少一个N维矢量;检索已知恶意网页元素的统计模型;通过测量所述元素的所述N维矢量与所述统计模型的所有集群的中心的距离,将所述至少一个N维矢量与已知恶意网页元素的所述统计模型的集群相比较;以及基于所述比较的结果识别所述被测网页的至少一个恶意元素。

Description

检测网页的恶意元素的系统和方法
技术领域
本发明总体涉及网络安全的领域,以及更具体地涉及检测网页的恶意元素的系统和方法。
背景技术
近期,银行和其它金融机构已主动地采用网上银行服务(因特网银行)作为银行服务的一部分。网上银行为用于远程银行服务、以及在任何时间可用的且来自有权访问因特网的任何计算机的对账户和操作(利用账户)的访问的技术的通用术语。为了这些操作,通常使用网络客户端(诸如浏览器)。
这类技术的广泛使用自然吸引黑客,黑客对从远程服务系统的用户的账户窃取资金感兴趣。对网上银行的用户的普遍攻击之一是放置恶意软件代替显示给用户的网页的内容的攻击。恶意软件将HTML代码嵌入在网页中。该攻击通常被称为“浏览器中间人”或“网络代码注入”攻击。该攻击可以利用木马应用程序来开始,例如,该木马应用程序将恶意扩展安装在受害者的浏览器中,当重启浏览器时发起该恶意扩展。然后发生的是拦截被路由到特定网站(最经常为银行站点)的用户通信。然后改变显示给用户的网页(在该网络加载或打开期间),使得可以修改网页的特定元素的外观、窃取被输入的受害者的认证数据、或重定向由用户转移到第三方账户的资金。
目前存在的解决方案似乎旨在提高网络中的用户对于将外部代码引入网页中的攻击的安全工作能力。然而,这些解决方案未有效地确定网页是否已被恶意软件更改,以及在用户端识别网页版本中的异常元素而不安装附加软件。同时,附件软件(诸如各种安全客户端、瘦客户端(轻代理)和其它防病毒部件)不总是能够被安装在用户端,这最终导致防病毒应用程序的操作中的错误。因此,例如,第一种错误可以涉及让“浏览器中间人”类型的攻击通过到达计算系统从而夺取数据传递通道且获得对被传递的所有信息的访问权,以及第二种错误可以涉及将用户端的合法网页更改错误地确定为异常的。
发明内容
公开了检测网页的恶意元素的系统和方法。一种示例性方法包括:获得关于被测网页的元素的数据;生成表征所述被测网页的元素的至少一个N维矢量;检索已知恶意网页元素的统计模型;通过测量所述元素的所述N维矢量与所述统计模型的所有集群的中心的距离,将所述至少一个N维矢量与已知恶意网页元素的所述统计模型的集群相比较;以及基于所述比较的结果识别所述被测网页的至少一个恶意元素。
在一个示例性方面中,获得关于被测网页的元素的数据包括:从嵌入在所述网页中的脚本获得所述数据,其中,所述脚本配置成在用户设备处被执行用以至少收集与所述网页的所述至少一个元素相关的所述数据。
在一个示例性方面中,所述方法还包括用于如下操作的指令:计算获得的所述数据的散列值;获得所述网页的已知恶意元素的至少一个散列值;以及将计算的所述散列值与所述至少一个散列值相比较以确定所述至少一个元素是否为恶意的。
在一个示例性方面中,当在所述N维空间中所述网页的所述至少一个元素的所述至少一个N维矢量与所述网页的统计模型的集群的中心之间的距离小于或等于所述集群的半径时,基于所述比较的结果识别所述被测网页的至少一个恶意元素。
在一个示例性方面中,当在所述N维空间中所述网页的所述至少一个元素的所述至少一个N维矢量与所述网页的所述统计模型的集群的所述中心之间的邻近度的测量值小于第一所选阈值时,基于所述比较的结果识别所述被测网页的至少一个恶意元素。
在一个示例性方面中,当在所述N维空间中所述至少一个元素的所述至少一个N维矢量与所述网页的所述统计模型的所述集群的离所述集群的所述中心最远的N维矢量之间的邻近度的测量值小于第二所选阈值时,基于所述比较的结果识别所述被测网页的至少一个恶意元素。
一种用于检测网页的恶意元素的示例性系统包括:至少一个处理器,所述至少一个处理器配置成:获得关于被测网页的元素的数据;生成表征所述被测网页的元素的至少一个N维矢量;检索已知恶意网页元素的统计模型;通过测量所述元素的所述N维矢量与所述统计模型的所有集群的中心的距离,将所述至少一个N维矢量与已知恶意网页元素的所述统计模型的集群相比较;以及基于所述比较的结果识别所述被测网页的至少一个恶意元素。
一种其上存储用于检测网页的恶意元素的计算机可执行指令的示例性非暂时性计算机可读介质包括用于如下操作的指令:获得关于被测网页的元素的数据;生成表征所述被测网页的元素的至少一个N维矢量;检索已知恶意网页元素的统计模型;通过测量所述元素的所述N维矢量与所述统计模型的所有集群的中心的距离,将所述至少一个N维矢量与已知恶意网页元素的所述统计模型的集群相比较;以及基于所述比较的结果识别所述被测网页的至少一个恶意元素。
以上对本发明的示例性方面的简要概述用于提供对本发明的基本理解。该概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键的或主要的要素,也不旨在勾画本发明的任何方面或所有方面的范围。为了实现前述内容,本发明的一个或多个方面包括在权利要求中所描述的且特别指出的特征。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。
图1示出根据本发明的方面的用于检测网页的异常元素和恶意元素的示例性系统;
图2示出根据本发明的方面的具有集群的统计模型和度量标准的N维空间的示例;
图3示出根据本发明的方面的用于检测网页的异常元素和恶意元素的示例性方法;
图4a、图4b和图4c示出根据本发明的方面的统计模型的视觉化的示例;以及
图5示出其上可实施检测网页的异常元素和恶意元素的系统和方法的方面的通用计算机系统的示例。
具体实施方式
本文中在用于检测网页的异常元素和恶意元素的系统、方法和计算机程序产品的背景下描述本发明的示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。
在描述本发明的示例性方面时将使用如下术语:
网页可以包括由网络服务器创建的数据(代码),用以通过网络客户端(浏览器)进行处理且利用超文本标记语言(HTML、XHTML、XML、WML、VML、PGML、SVG、XBRL等)和脚本语言(JScript、JavaScript、ActionScript、Tcl、Lua、Perl、PHP、Python、REBOL、Ruby等)来组织。
在此,内容可以指网页的内容。
脚本可以包括被执行的以脚本语言编写的程序,可以通过在显示严格确定的网页时到达的请求而在服务器端或客户端发起该程序用以执行。
行内脚本可以包括其执行代码(主体)为网页的内容的一部分的脚本。例如,行内脚本可以置于标签<script></script>之间。
标签(标记)可以包括特殊结构的超文本标记语言。它可以构成以尖括号括起来的文本<name_tag>。每个标签可以将关于如何显示标签和后续内容的特定指令带给浏览器。在特定情况下,标签可以具有如下属性:阐明标签、扩大标签的可能性、以及允许例如容器标签的内容的更灵活的控制。例如,<script src="URL">...</script>。属性src可以指示脚本的主体的位置。
容器标签可以包括具有打开标签和关闭标签的成对标签。它可以包含超文本语言的文本和其它元素。
网页的元素(标记语言的元素)可以包括开始标签、结束标签(在某些情况下,开始标签和结束标签相符,例如在标签<br>的情况下)和标签之间的内容的组合。网页的元素的全体形成网页的内容。至少如下种类的元素可以存在,其通过对应标签的名称来区分:超链接、文本块、文本格式化、列表、对象(例如,媒体文件、小程序、脚本、本地代码等)、图像、图像映射、表格、表单、字符等。
元素的N维矢量可以包括一组有序的n个实数,其中,这些实数可以包括矢量的坐标。矢量的坐标的数量被称为矢量的维度。坐标可以确定网页的对应元素(诸如脚本)或一组同类元素(诸如表单的元素)在N维空间中的位置(图2示出二维空间的示例)。矢量可以通过关于元素或元素组的内容的信息的转换来获得。矢量可以反映关于元素或元素组的内容的特定信息。在一个示例中,每个坐标可以反映元素的内容的特性之一,例如,一个坐标可以表征脚本中的运算符的数量,另一个坐标可以表征eval运算符的数量。这些数量还可以反映元素的内容的串参数的编撰次序或不同元素的串参数之间的莱文斯坦(Levenshtein)距离。例如,图2示出矢量、尤其具有坐标(1666,1889)和坐标(1686,1789)的二维矢量的示例。
集群可以包括用于严格定义的元素或元素组的矢量在N维空间中的坐标的一组可允许值。根据一个示例性方面,如果从元素的N维矢量到特定集群的中心的距离小于该集群在N维矢量的方向上的半径,则可以将所选的元素或元素组分配到该集群。图2示出集群210’的示例。在一示例中,如果从元素的N维矢量到特定集群的元素的最近N维矢量的距离(在图2中,“d’”)的值小于可允许的最大值(距离[d’]的阈值)或者如果从元素的N维矢量到该集群的中心的距离(在图2中,“d”)的值小于该集群的半径,则可以将该元素分配到该特定集群。例如,从矢量(1666,1889)到集群的中心的距离小于集群的半径,因此可由该矢量反映其内容的元素或元素组属于该特定集群。在另一方面,从矢量(1686,1789)到集群的中心的距离大于集群的半径且从矢量(1686,1789)到最近N维矢量的距离大于阈值,因此可由该矢量反映其内容的元素或元素组不属于该集群。用于评估邻近度的距离的变型可以包括但不限于如下项:线性距离、欧几里德(Euclidean)距离、欧几里德距离的平方、广义的闵可夫斯基(Minkowski)指数距离、切比雪夫(Chebyshev)距离、曼哈顿(Manhattan)距离等。
邻近度(相似度、相似系数)的测量可以包括用于确定网页的元素的相似性的无量纲参数。用于确定邻近度的测量的措施可以包括但不限于如下项:Ochaiai、Jaccard、Sokal-Sneath、Kulczynski、对称的DICE系数等。
集群的中心(图心)可以为N维空间中的N维矢量的平均几何轨迹。对于由一个矢量组成的集群,给定矢量可以为集群的中心。
集群的半径(在图2中,“R”)为在集群中出现的N维矢量距该集群的中心的最大距离。
各种已知的算法和方法可以用于聚类,包括层次的(凝聚的和分裂的)和非层次的。
网页的元素的统计模型(网页的元素的模型)可以包括用于一种元素或一种元素组的一组集群210。例如,网页的脚本的统计模型、网页的表单的统计模型。在图2中,网页的元素的统计模型可以被指定为220。对于由一个集群组成的模型,该集群可以为元素的模型。
网页的统计模型(网页的模型)可以包括所有种类的网页的元素和/或元素组(包括含有不同种类的元素的元素组)的一组集群。例如,认证页的统计模型。换言之,网页的统计模型230可以包括网页的元素的一组模型220。通过类比,网站的统计模型可以包括所有种类的网页的元素和/或网站的所有网页的元素组的一组集群。即,网站的统计模型(在图中未示出)可以包括网页的一组统计模型230。
网页的恶意元素的统计模型可以包括用于相同种类和/或不同种类的已知恶意元素或相同种类和/或不同种类的元素组的一组集群210。模型的示例可以包括:网页的恶意脚本的统计模型、网页的恶意表单的统计模型、网页的恶意脚本和恶意表单的统计模型。对于包括单一集群的模型,该集群将为恶意元素的模型。为了构造给定种类的模型,可以使用已知恶意元素,该已知恶意元素的内容被转换为N维矢量,随后集群化并合并为模型。在它们的形式下,网页的统计模型和网页的恶意元素的统计模型不是彼此不同的;用于构造模型的元素是不同的,在第一情况下由潜在危险的元素构建模型且在第二情况下由已知恶意元素构建模型。
网页的异常元素可以包括其矢量不属于针对给定类型的元素构造的网页的统计模型的集群中的任一集群的网页的元素、或统计显著性低于阈值的元素。
元素的统计显著性可以为在网页的内容中遇到正被评估的元素的次数与为了构造模型所获得的网页的总数或与为了在特定区段(评估区段)上构造模型所获得的网页的数量的比值,其中,该区段的长度可以通过自特定时间(诸如观察元素的开始时间)起为了构造模型所获得的网页的数量来确定。例如,如果已获得100页且已遇到被评估的元素30次,则统计显著性为30%。
集群的统计显著性可以为其矢量形成在网页的内容中正被评估的集群的元素的数量与为了构造模型所获得的网页的总数或与为了在特定区段上构造模型所获得的网页的数量的比值,其中,该区段的长度可以通过自特定时间(诸如观察集群的开始时间)起为了构造模型所获得的网页的数量来确定。
在如果集群的元素的统计显著性的值低于确立的阈值则将该元素或集群视为异常的情况下,统计显著性的阈值可以为一元素或集群的统计显著性的值,超出该元素或集群的元素或集群(和集群的元素)被视为统计显著的。
为了创建集群,可以使用层次方法,例如,可以利用凝聚方法创建集群,其中,可以将元素的(距离上)最近的N维矢量隔离到集群中或者可以将(距离上)最近的集群组合为一个集群。当使用该方法时,可以使用Minkowski、Chebyshev或Manhattan的线性距离或欧几里德距离或者广义指数距离。另外,具有最小相互距离的矢量可以被视为最近的,以及集群可以被隔离直到集群的半径尽可能地接近半径的阈值的时间,其中,可能的最接近半径可以为在隔离集群的下一个圆中将超过半径的阈值的半径。在另一情况下,集群可以被隔离直到未留下具有可允许的邻近度的测量值的集群或矢量的时间,其中,可允许的邻近度的测量值可以为不超过确立的阈值的测量值。在中心之间具有最小距离的集群为最靠近的。
可替选地,可以通过分裂方法创建集群,其中,集群可以由相互距离小于可允许的最大距离的矢量形成,距离的最大允许由阈值确定,以及例如,集群可以被分离直到集群的半径变为等于或小于半径的阈值的时间。
图1示出根据本发明的方面的用于检测异常元素和恶意元素的示例性系统,这些异常元素和恶意元素用于构造网页100的统计模型和网页的恶意元素的统计模型以及用于检测网页的异常元素和恶意元素。该系统可以包括但不限于:用户设备120,其上安装有网络客户端110;网络服务器130;控制服务器150和数据库160。
在一个示例性方面中,网络客户端110(诸如网络浏览器)可以安装在用户设备120上。网络客户端110可以配置成请求、处理、操控和显示网站的内容,其中,网站可以包括一组逻辑上相互关联的网页100。网络客户端110可以将获得例如由统一资源定位符(UniformResource Locator,URL)地址指定的资源的请求分派到网络服务器130以及从网络服务器130接收答复(通常连同网页100或网页的元素一起)。在所描述的通过网络服务器130将每个网页100发送到客户端的本发明中,应来自网络客户端110的请求,网络服务器130可以发送出准备好的网页100或动态地形成页面,并且,除了常规内容外,还添加有脚本140。脚本140的功能可以包括至少在网络客户端110采集网页100的数据(关于网页的元素或元素组的信息、关于元素的信息,在特定情况下,元素的内容),该网页100包含给定脚本140。在一个示例中,关于网页100的元素的信息可以包括给定元素的内容。在网络客户端110的网页100的元素和网页100的这些元素的内容可以不同于在网络服务器端130的相同版本的网页100的元素和这些元素的内容,这是因为在网络客户端110动态更新网页或因为“浏览器中间人”攻击。
在一个示例性方面中,控制服务器150可以接收通过脚本采集的关于网页的元素或元素组的信息。该脚本可以在“原始”状态下或转换状态下分派采集的数据,被分派的数据的格式可以通过脚本140的功能来确定,该脚本140已被网络服务器130添加到网页100,即:该脚本在执行过程中以严格指定的形式(由脚本的功能来指示)分派严格定义的关于网页100的元素的信息;或该脚本将关于其在客户端110成功发起的数据分派到网络服务器130或控制服务器,以及作为响应接收关于网页100的哪些元素需要被采集且什么形式的命令并将该信息分派到接收者(网络服务器130或直接分派到控制服务器150)。在一个示例性方面中,可以在中间节点(例如通过公司代理服务器)将脚本140嵌入在网页100中。
数据转换的主要方法可以包括但不限于如下项:量化、排序、归并(粘贴)、分组、数据集配置、将值插入表格中、计算的值、数据编码、归一化(缩放)。
在一个示例中,由于数据的转换,因此该数据可以获得信息的属性。
脚本转换的方法之一可以包括构造抽象语法树并发送到仅重要运营商的接收者(网络服务器130或直接发送到控制服务器150)以及通过脚本140的设置或通过来自接收者的命令预定的构造。
在一个示例性方面中,由脚本140收集的所有数据可以最终被传输到控制服务器150。控制服务器150可以直接从网络客户端110或借助网络服务器130获得数据。在另一个方面中,控制服务器150可以存在于与网络服务器130同一个的网络中。由控制服务器150收集的数据可以用于构造网页的统计模型230(或网页的恶意元素的统计模型)并检测网页的异常(或恶意)元素。控制服务器150可以将由脚本140收集的数据转换为N维矢量,且可以将获得的矢量存储在数据库160中。特别地,控制服务器可以通过散列算法(CRC、MD5、MD6、SHA1、SHA2、GOST R 34.11-2012等)之一从元素的内容计算散列值。
控制服务器150的分析模块从接收的矢量形成集群210并检测异常元素或元素组,该异常元素或元素组的内容可以由接收的矢量反映,这个功能通过N维矢量和在N维空间中形成的集群210的相互比较来实现。
在一个示例性方面中,数据库160可以配置成存储构造的模型和矢量以及已知恶意元素的散列值。关于恶意元素的散列值的记录可以从外部源到达数据库(即,已经计算的散列值)或可以通过控制服务器150从已知恶意元素的内容计算散列值,该已知恶意元素由于异常元素的防病毒扫描而被检测或选自恶意软件的存储库(在图中未示出),该存储库存储网络的恶意元素的副本。
在本发明中所公开的系统可以执行多个方法:构造网页的统计模型230的方法、构造网页的恶意元素的统计模型的方法、在所构造的网页模型230的帮助下检测网页100的异常元素的方法、在所构造的网页的恶意元素的模型的帮助下检测网页100的恶意元素的方法、在散列值的帮助下检测网页100的恶意元素的方法。这些方法在图3中示出。
参照图3,构造网页的统计模型230的示例性方法可以如下来实现。在步骤300中,用户可以从其设备获得对网站的访问权,其中,通过发送到网络服务器130的请求,网络客户端110可以配置成从网络服务器130获得网站的网页100,在该过程期间,网络服务器130(或中间节点)可以配置成将脚本140添加到网页100。在步骤310中,可以在网络客户端110处执行脚本,采集包含在网页100中的数据。由脚本140采集的数据可以包含各种信息,特别地,脚本140可以采集网页的至少一个元素(脚本、表单等)的内容。由脚本140采集的数据可以配置成在需要时被转换,该数据被脚本140本身或被控制服务器150上的处理部件转换。在步骤320中,采集的数据可以配置成被转换为至少一个N维矢量,在步骤330中可以保存该至少一个N维矢量。在步骤350中,从至少一个矢量,可以创建至少一个集群210。在步骤360中,基于创建的至少一个集群210,可以创建网页的统计模型230。
在一个示例中,在保存所获得的N维矢量之后,在步骤301中,可以通过另一个网络客户端110获得网页100,以及基于从该网页采集的数据,在步骤320中可以附加地获得N维矢量,且仅在此之后创建集群。
在另一示例中,在创建集群210和构造模型230之后,在步骤302中,可以通过另一个网络客户端110获得网页100,以及基于由脚本140从该网页采集的数据来获得N维矢量,以及基于获得的N维矢量,可以修正(更新)先前创建的集群210(改变其半径、中心/图心)或可以创建新的集群210,从而改善(利用修正的集群210)和补充(利用新创建的集群210)网页的统计模型230。由脚本140采集的数据可以不同于由脚本140在先前迭代中采集的数据,例如,可以采集关于网页100的其它元素的信息。
在一个示例性方面中,用于基于网页的统计模型230检测异常元素的方法可以如下来实现:在步骤300中,用户可以从其设备获得对网站的访问权,其中,通过发送到网络服务器130的请求,网络客户端110可以配置成从网络服务器130获得网站的网页100,在该过程期间,网络服务器130(或中间节点)可以配置成将脚本140添加到网页100。在步骤310中,可以在网络客户端处执行脚本,采集包含在网页100中的数据。由脚本140采集的数据可以包含各种信息,特别地,脚本可以采集网页的至少一个元素(脚本、表单等)的内容。由脚本140采集的数据可以配置成在需要时被转换,该数据被脚本140本身或被控制服务器150的处理部件转换。在步骤320中,采集的数据可以配置成被转换为至少一个N维矢量,在步骤330中可以保存该至少一个N维矢量。可以将在步骤370中获得的矢量与构造的网页的统计模型230的集群和/或给定模型230的N维矢量相比较(通过确定例如所获得矢量与该集群的中心之间的相互距离)。在步骤380中,作为比较的结果,当例如下面的情况时可以将被分析的元素识别为异常的:(i)在N维空间中,该元素的N维矢量与模型的所有集群的中心之间的距离大于这些集群的半径;或(ii)在N维空间中,该元素的N维矢量与模型的所有集群的中心之间的邻近度的测量值大于阈值;或(iii)在N维空间中,该元素的N维矢量与模型的集群的离集群中心最远的N维矢量之间的邻近度的测量值大于阈值。
在一个示例中,如果未将元素识别为异常的,则在步骤351中,可以将给定元素的N维矢量添加到网页的统计模型230。
在另一示例中,在检测到网页100的异常元素之后,网络服务器130可以配置成使与网络客户端110和用户设备120的连接禁用或可以保留该连接,但是网络服务器130可以停止响应客户端110的请求(停止借助该连接的数据传输)。在停止数据传输的时刻,在步骤390中可以通过控制服务器150的防病毒部件(未示出)针对恶意功能(危险)的存在扫描检测到的网页的异常元素,或可以对该元素进行观察。如果集群在其附近形成有高于阈值的统计显著性,则可以将检测到的异常元素识别为安全的,从而重建连接且会话继续。
在特定情况下,当基于网页构造模型而没有提前知道这些网页是否包含异常元素时,冲突是可能的:元素的N维矢量不出现在该模型的任何集群中且困局出现–是否基于给定矢量创建新的集群或是否将由给定矢量反映其内容的元素识别为异常的。该冲突可以基于元素或集群的统计显著性的评估来解决,该集群可以基于类似(接近)于在评估区段上被评估的元素的元素来创建。即,基于包含被评估元素(或附近元素、其在N维空间中的N维矢量之间的距离小于特定阈值的元素)的网页的数量与在被评估区段上的模型构造中所使用的网页的总数的比率,其中,该区段的长度被测量为页面或迭代的数量。如果在评估区段上的网页的被评估的元素的统计显著性的值接近(邻近度通过阈值来确定)给定区段上的其它元素的统计显著性的值(或其它元素的统计显著性的平均值)或超过特定阈值(诸如超出20%),则可以将该元素识别为统计显著的,否则(如果未超过特定阈值)将该元素识别为异常的。例如,在模型构造步骤中,网页100的特定元素可以出现,该特定元素的矢量可以不出现在任何先前创建的集群210中。因此需要例如通过确定给定元素在一区段上的统计显著性来确定给定元素是否为异常的,其中,该区段的长度包括200个网页100。在一个示例中,对于给定类型的元素的统计显著性的阈值可以等于20%。该验证示出了,在元素的给定长度上,已经4次遇到接近于被评估元素的元素,这可以对应于为2%的统计显著性的值,该值低于阈值,从而被评估元素及接近该被评估元素的元素(围绕被评估元素所形成的集群)可以为异常的。在特定情况下,统计显著性的阈值可以被确定为对于同一种类的元素的集群的统计显著性的最小值。例如,模型包含统计显著性值为25%、32%、47%和95%的脚本的集群,因此对于给定种类的元素的阈值可以被设在25%。
在一个示例性方面中,统计显著性还可以被用在网页的异常元素的检测中。例如,在还未构造统计模型或正在解决上述困局时使用统计显著性。在第一步骤中,可以通过网络客户端110从网络服务器130获得网页100并将网页100实施在用户设备120上,该网页100包含脚本140,该脚本在被执行时在网络客户端110采集关于网页100的至少一个元素的内容的信息并分派从用户设备120采集的信息。可以在网络客户端110的帮助下执行上述脚本以在网络客户端110采集关于网页100的至少一个元素的内容的信息并分派从用户设备120采集的信息,该用户设备120的网络客户端110已接收到网页100。在控制服务器端150,关于从设备120接收的内容的信息可以配置成被转换为元素的N维矢量,以及可以通过任何合适方法聚集所获得的N维矢量。针对网页的每个元素、针对一组元素、针对一组相同种类的元素或者可以组成组的不同种类的元素,可以形成N维矢量。在已形成集群210(其中集群210可以包括至少一个矢量)之后,可以确定所获得的集群210的统计显著性,其中,该统计显著性可以被确定为集群210中的N维矢量的数量与网页100的数量的比率,从上述网页100采集关于其元素的内容的信息并将该信息分派到控制服务器150或网络服务器130。因此,其N维矢量形成统计显著性小于阈值的集群的元素可以被确定和被识别为异常元素。阈值显著性可以通过上文所描述的方法来分配,且还可以取决于元素的种类、聚类的方法、评估区段的长度等。
在一个示例性方面中,当用户请求网络银行站点的网页(例如https://my.KasperskyBank.ru/)时,请求的网页可以被添加脚本140,以及页面100可以被分派到实施在用户设备120上的网络客户端110。在用户端的脚本140可以采集网页上存在的<script>元素:
<script>document.documentElement.id="js";var..../Kasperskybank/";</script>
<script src="//static.kaspersky.ru/dist/kfs/kfs.js"
crossorigin="anonymous"></script>
<script src="https://static.kaspersky.ru
/ib/prod/2842c77095d860e412d7a8cf30231fd53c89fb4e/Kasperskybank/
Kasperskybank.js"crossorigin="anonymous"></script>
<script async=""src="/kfs/kfs"></script>
<script>!function(){var
e=document.getElementById("before-init__noscript");e&&(e.className="ui-br
owser__holder-block-hide");var o=function(){try{return"withCredentials"in
new XMLHttpRequest}catch(e){return!1}}();if(o){var
t=function(){if(navigator.cookieEnabled)return!0;document.cookie="cookietest
=1";var e=-1!=document.cookie.indexOf("cookietest=");return
document.cookie="cookietest=1;expires=Thu,01-Jan-1970 00:00:01
GMT",e}();if(t)document.body.removeChild(document.getElementById("before
-init"));else{var
n=document.getElementById("before-init__nocookies");n&&(n.className="ui-
browser__holder-block")}}else{var
r=document.getElementById("before-init__old-browser");r&&(r.className="ui
-browser__holder-block")}}();</script>
对于具有属性src的<script>元素,可以执行脚本的主体的加载和标准化;对于行内脚本,仅执行标准化。例如,对于上述行内脚本,标准化形式可以如下(仅重要的语言结构和标准的对象/方法已经被保持,文字已被“切割”):
document.documentElement.i0=v0;vari1=window.i1||{};i1.i2=v1,i1.i3=v2,i1.i4=
v3,i1.i5=v4,i1.i6={i7:v5,i8:v6},i1.i9=v7;
!function(){vari0=document.getElementById(v0);i0&&(i0.i1=v1);vari2=functio
n(){try{returnv2innewXMLHttpRequest}catch(i0){return!v3}}();if(i2){vari3=fu
nction(){if(navigator.i4)return!v4;document.cookie=v5;vari0=-v3!=document.co
okie.indexOf(v6);returndocument.cookie=v7,i0}();if(i3)document.body.remove
Child(document.getElementById(v8));else{vari5=document.getElementById(v9
);i5&&(i5.i1=v10)}}else{vari6=document.getElementById(v11);i6&&(i6.i1=v1
0)}}();
接着,脚本140可以采集页面上存在的<input>元素:
<input autocomplete="off"autocorrect="off"autocapitalize="off"
class="m-login__form-field-input ng-pristine ng-invalid ng-invalid-required
ng-touched"type="text"…ng-blur="login.focus=false"
placeholder="password">
脚本140可以转换采集的<input>元素的数据,例如如下执行标准化(按字母顺序地排列属性、切断标签名、裁剪属性的值中的间隙,利用“;”列出属性):
<autocapitalize=off;autocomplete=off;autocorrect=off;class=m-login__form-fiel
d-inputng-pristineng-invalidng-invalid-requiredng-touched;name=lg;ng-blur=lo
gin.focus=false;warmUp();;ng-change=input(true);ng-disabled=false;ng-keydow
n=login.focus=true&&$event.keyCode===13&&authUser();ng-keyup=fix(login
.form.lg,$event);ng-model=login.lg;placeholder=login;spellcheck=false;style=pa
dding:0px;;type=text;ui-focus=login.setFocus;validator=validator.lg>
<autocapitalize=off;autocomplete=off;autocorrect=off;class=m-login__form-fiel
d-inputng-pristineng-untouchedng-invalidng-invalid-required;name=pw;ng-blur
=login.focus=false;ng-change=input();ng-disabled=false;ng-keydown=login.foc
us=true&&$event.keyCode===13&&authUser();ng-keyup=fix(login.form.pw,$
event);ng-model=login.pw;placeholder=password;spellcheck=false;type=passw
ord;validator=validator.pw>
脚本140可以将采集的数据分派到控制服务器150。控制服务器150可以在对应模型(用于所有脚本元素的整体-脚本类型元素的统计模型220)的背景下如下处理采集的<script>元素的数据:
·对于每个脚本,可以获得数值矢量(例如,该矢量可以为二维的),其中,
该矢量可以从串字符的代码来计算(任何合适的编码方法可以用于获得字
符代码,诸如ASCII),组成采集的数据(对于行内脚本,该数据可以包括
标准化脚本的内容,对于其它脚本,该数据为src属性的内容)。可以针对
包含在形成的网页100中的<script>元素获得如下矢量:
o 16314,10816
o 2254,2598
o 16084,15036
o 356,822
o 20010,51838
·每个矢量可以被保存在模型230的二维空间中,在不具有异常的给定情
况下,所有矢量结束在先前形成的集群中(即,所有矢量与先前来自脚本
140(来自那些版本的网页)的数据是可兼容的)。作为图示,图4a示出模
型的可视化,其中,圆点指示被分析的<script>元素,且彩色区域为模型220
的先前创建的集群210,作为模型230的一部分。
控制服务器150可以以类比方式处理采集的<input>元素的数据,作为结果,该可视化具有在图4b中所示的形式。由于没有检测到异常元素,因此处理可以结束。
在一个示例中,恶意注入可以在同一页面(https://my.KasperskyBank.ru/)上以附加<script>元素的形式出现在用户之一处:
<script src="https://static.kasperskyBank.ru/ib/prod/bank/malware.js"
crossorigin="anonymous"></script>
通过上述方法计算的矢量可以等于(4560,3192)且模型可以采取图4c中所示的形式(反映注入(其为异常)的内容的当前矢量用红色标记)。在步骤390中检测到的异常元素可以被控制服务器150的防病毒部件处理,以及可以使连接本身禁用,同时可以观察模型的空间中的元素以确定其统计显著性。
应当领会,本发明不仅可以用于检测异常元素、而且如上所述可以用于检测网页的恶意元素。为了检测恶意元素,可以使用相同的统计集群模型。用于检测异常元素的统计集群模型与用于检测恶意元素的统计集群模型之间的差别可以包括用于创建N维矢量的信息,这些N维矢量被聚集以构建模型。当检测异常元素时,可以使用关于潜在危险的元素的信息来创建集群。当检测恶意元素时,可以使用关于已知恶意元素的信息来创建集群。因此,统计模型的区别可以仅在于用于构造模型的信息。因此,图2中的实体230可以用于限定网页的恶意元素的统计模型。而且如图1所述的相同系统可以用于构建模型且检测恶意元素。
参照图3,在一个示例性方面中,构建网页的恶意元素的统计模型230的方法包括:在步骤311中,可以通过控制服务器150从数据库160获得包含关于网页的已知恶意元素的信息的数据。在一个方面中,在步骤390中对检测到的已被识别为恶意的异常元素的防病毒扫描之后,或使用包含已知恶意软件的副本的存储库,可以更早地检测到这些元素。在步骤311中从数据库160获得的数据可以包含关于网页的恶意元素(脚本、表格等)的内容的各种信息。如果需要,则可以通过控制服务器150转换数据,以及在步骤320中可以将收集的数据转换为至少一个N维矢量,在步骤330中可以采集该至少一个N维矢量。从至少一个矢量,在步骤350中,创建至少一个集群210。基于创建的至少一个集群210,在步骤360中可以构造网页的恶意元素的统计模型230。
在一个示例性方面中,基于网页的恶意元素的统计模型230检测恶意元素的方法包括:在步骤300中,用户可以从其设备获得对网站的访问权,其中,通过发送到网络服务器130的请求,网络客户端110可以从网络服务器130获得网站的网页100,在该过程中,可以通过网络服务器130(或通过中间节点)将脚本140添加到网页100。在步骤310中,可以在网络客户端110侧执行脚本,收集包含在网页100中的数据。由脚本140收集的数据可以包含各种信息。例如,脚本可以收集网页的至少一个元素(脚本、表格等)的内容。如果需要,则可以转换由脚本140收集的数据,其中,该数据可以被脚本140本身或被控制服务器150转换。在步骤320中,可以将收集的数据转换为至少一个N维矢量,在步骤330中可以保存该至少一个N维矢量。可以将在步骤370中获得的矢量与构造的网页的恶意元素的统计模型230的集群和/或与给定模型230的N维矢量相比较(通过确定例如所获得矢量与该集群的中心之间的相互距离)。在步骤381中,作为比较的结果,在检测到如下情况时可以将被分析的元素确定为恶意的:(1)在N维空间中,所获得的N维矢量与统计模型的至少一个集群的中心之间的距离小于这些集群的半径;(2)在N维空间中,所获得的N维矢量与统计模型的至少一个集群的中心之间的距离等于这些集群的半径;(3)在N维空间中,所获得的N维矢量与模型的至少一个集群的中心之间的邻近度的测量值小于阈值;和/或(4)在N维空间中,所获得的N维矢量与离统计模型的至少一个集群的中心最远的N维矢量中的至少一者之间的邻近度的测量值小于阈值。
在一个示例性方面中,基于散列值检测网页的恶意元素的方法包括:在步骤300中,用户可以从其设备获得对网站的访问权,其中,通过发送到网络服务器130的请求,网络客户端110可以从网络服务器130获得网站的网页100,其中,可以通过网络服务器130(或通过中间节点)将脚本140添加到网页100。在步骤310中,可以在网络客户端侧执行脚本,收集包含在网页100中的数据。由脚本140收集的数据可以包含各种信息。例如,脚本可以收集网页的至少一个元素(脚本、表格等)的内容。在步骤361中,可以从数据库160获得至少一个散列值,已从关于网页的已知恶意元素的内容的信息计算出该至少一个散列值,通过如上所述的相同方法获得该信息。如果需要,则可以转换由脚本140收集的数据,其中,该数据可以被脚本140本身或被控制服务器150的处理部件转换。在步骤321中,可以使用收集的数据来计算散列值。在步骤371中,控制服务器可以将在步骤321中计算的散列值与在步骤361中从数据库160获得的散列值相比较。在步骤382中,控制服务器150可以由于对采集的信息的分析而检测恶意元素,其中,当从采集的关于元素的内容的信息所计算的散列值与在步骤361中从数据库160获得的散列值匹配(作为与散列值比较的结果)时,可以将该元素确定为恶意的。
在各个示例性方面中,在本发明中所公开的网络服务器、网络客户端、数据库、中间节点、其上实施有分析模块和处理模块的控制服务器包括真实的设备、系统、部件、部件组,其利用硬件(诸如集成微电路(专用集成电路,ASIC)或现场可编程门阵列(FPGA))或例如也在神经突触芯片上以软件和硬件的组合形式(诸如微处理器系统和一组程序指令)来实现。系统的指示元素的功能可以专有地通过硬件且也可以组合形式来实现,其中,系统的元素的功能的一部分通过软件来实现且另一部分通过硬件来实现。在某些变型实施方式中,一些元素或所有元素可以被实施在通用计算机(诸如在图5中所示的通用计算机)的处理器上。
图5为示出根据本发明的示例性方面的其上可实施用于检测网页的异常元素和恶意元素的系统和方法的方面的示例性计算机系统的图。
如所示,该计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。如将由本领域的普通技术人员所领会,系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构相互作用的本地总线。系统存储器可以包括永久性存储器(ROM)24和随机存取存储器(Random-Access Memory,RAM)25。基本输入/输出系统(Basic Input/Output System,BIOS)26可以存储用于在计算机系统20的元件之间的信息传输的基本程序,例如在使用ROM 24加载操作系统时的那些基本程序。
计算机系统20还可以包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28、以及用于读取和写入可移动光盘31(诸如CD-ROM、DVD-ROM和其它光学媒介)的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34而连接到系统总线23。驱动器和对应的计算机信息媒介为用于存储计算机系统20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。
示例性方面包括借助控制器55使用连接到系统总线23的硬盘27、可移动磁盘29和可移动光盘31的系统。将由本领域的普通技术人员所理解,也可以利用能够以计算机可读的形式存储数据的任何类型的媒介56(固态驱动器、闪存卡、数字盘、随机存取存储器(RAM)等等)。
计算机系统20具有可以存储操作系统35的文件系统36、以及附加的程序应用37、其它程序模块38和程序数据39。计算机系统20的用户可以使用键盘40、鼠标42、或本领域的普通技术人员已知的任何其它输入设备(诸如但不限于麦克风、操纵杆、游戏控制器、扫描器等)输入命令和信息。这些输入设备通常通过串行端口46插入到计算机系统20中,串行端口46转而连接到系统总线,但是本领域的普通技术人员将领会,输入设备也可以以其它方式来连接,诸如但不限于借助并行端口、游戏端口、或通用串行总线(Universal SerialBus,USB)来连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以装备有其它的外围输出设备(未示出),例如扬声器、打印机等。
计算机系统20可以使用与一个或多个远程计算机49的网络连接而在网络环境中工作。一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括在描述计算机系统20的性质时使用的上述元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。
网络连接可以形成局域计算机网络(Local-Area computer Network,LAN)50和广域计算机网络(Wide-Area computer Network,WAN)。这些网络用在企业计算机网络和公司内部网络中,并且这些网络通常有权访问因特网。在LAN或WAN网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机20系统可以采用调制解调器54或本领域的普通技术人员所熟知的实现与广域计算机网络(诸如因特网)的通信的其它模块。调制解调器54可以是内部设备或外部设备,可以通过串行端口46连接到系统总线23。本领域的普通技术人员将领会,所述网络连接是使用通信模块建立一个计算机与另一个计算机的连接的许多熟知方式的非限制性示例。
在各个方面中,本文中所描述的系统和方法可以以硬件、软件、固件或它们的任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在非暂时性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括RAM,ROM,EEPROM,CD-ROM,闪存或其它类型的电存储介质、磁存储介质或光存储介质,或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。
在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA))实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以被执行在通用计算机(例如上文在图1至图4中更详细描述的通用计算机)的处理器上。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
为了清楚起见,本文中没有公开各个方面的所有例程特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。

Claims (20)

1.一种用于检测网页的恶意元素的方法,所述方法包括:
通过服务器在用户设备上部署脚本,所述脚本配置成:
(i)从所述用户设备所访问的网页收集数据,所述数据包括其执行代码是所述网页的内容的一部分的行内脚本;
(ii)将从网页收集的数据转换成表征所述网页的元素的至少一个N维矢量,所述元素包括所述行内脚本中的运算符的数量和类型;以及
(iii)将所述至少一个N维矢量以及所述网页的元素的预定运算符和构造传输到所述服务器;
通过所述服务器从数据库检索组织成一个或多个集群的已知恶意行内脚本的统计模型,集群是基于功能组织的;
通过所述服务器将所述至少一个N维矢量与检索到的统计模型的集群相比较,所述比较包括测量所述N维矢量与所述一个或多个集群的中心的距离;以及
通过所述服务器,基于所述比较的结果,在所述至少一个N维矢量与所述一个或多个集群的中心之间的邻近度的测量值小于所选阈值时,识别所述网页的至少一个恶意元素。
2.如权利要求1所述的方法,其中,所述脚本还配置成将收集的所述数据发送到所述服务器。
3.如权利要求2所述的方法,还包括:
通过所述服务器计算接收的所述数据的散列值;
通过所述服务器从所述数据库获得所述网页的已知恶意元素的至少一个散列值;以及
通过所述服务器将计算的所述散列值与所述至少一个散列值相比较以确定至少一个元素是否为恶意的。
4.如权利要求1所述的方法,还包括:
通过所述服务器将如下项中的至少一者存储在所述数据库中:识别的所述网页的恶意元素和相应的计算的散列值、以及所述行内脚本。
5.如权利要求1所述的方法,其中,所述脚本通过中间节点嵌入,所述中间节点位于提供所述网页的网络服务器与所述用户设备之间。
6.如权利要求1所述的方法,其中,通过部署在所述用户设备上的所述脚本将从所述网页收集的数据转换成所述至少一个N维矢量包括:基于所述脚本的设置或通过来自所述服务器的命令构造抽象语法树。
7.如权利要求1所述的方法,其中,将从所述网页收集的数据转换成所述至少一个N维矢量包括执行如下项中的至少一者:量化所述数据、对所述数据进行排序、归并所述数据、对所述数据进行分组、配置数据集、将来自所述数据的值插入表格中、对所述数据进行编码、归一化所述数据、以及缩放所述数据。
8.如权利要求1所述的方法,其中,被表征成所述N维矢量的所述网页的元素还包括如下项中的至少一者:所述行内脚本中的eval运算符的数量和类型、所述网页的内容的串参数的编撰次序的数量、以及所述网页的不同元素的串参数之间的莱文斯坦距离。
9.一种用于检测网页的恶意元素的系统,所述系统包括:
具有至少一个处理器的服务器,所述至少一个处理器配置成:
在用户设备上部署脚本,所述脚本配置成:从所述用户设备所访问的网页收集数据,所述数据包括其执行代码是所述网页的内容的一部分的行内脚本;将从网页收集的数据转换成表征所述网页的元素的至少一个N维矢量,所述元素包括所述行内脚本中的运算符的数量和类型;以及将所述至少一个N维矢量以及所述网页的元素的预定运算符和构造传输到所述服务器;
从数据库检索基于功能组织成一个或多个集群的已知恶意行内脚本的统计模型;
将所述至少一个N维矢量与检索到的统计模型的集群相比较,所述比较包括测量所述N维矢量与所述一个或多个集群的中心的距离;以及
基于所述比较的结果,在所述至少一个N维矢量与所述一个或多个集群的中心之间的邻近度的测量值小于所选阈值时,识别所述网页的至少一个恶意元素。
10.如权利要求9所述的系统,其中,所述脚本还配置成将收集的所述数据发送到所述服务器。
11.如权利要求10所述的系统,其中,所述处理器还配置成:
计算接收的所述数据的散列值;
从所述数据库获得所述网页的已知恶意元素的至少一个散列值;以及
将计算的所述散列值与所述至少一个散列值相比较以确定至少一个元素是否为恶意的。
12.如权利要求9所述的系统,其中,所述处理器还配置成:
将如下项中的至少一者存储在所述数据库中:识别的所述网页的恶意元素和相应的计算的散列值、以及所述行内脚本。
13.如权利要求9所述的系统,其中,所述脚本通过中间节点嵌入,所述中间节点位于提供所述网页的网络服务器与所述用户设备之间。
14.如权利要求9所述的系统,其中,通过部署在所述用户设备上的所述脚本将从所述网页收集的数据转换成所述至少一个N维矢量包括:基于所述脚本的设置或通过来自所述服务器的命令构造抽象语法树。
15.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储用于检测网页的恶意元素的计算机可执行指令,所述非暂时性计算机可读介质包括用于如下操作的指令:
通过服务器在用户设备上部署脚本,所述脚本配置成:
(i)从所述用户设备所访问的网页收集数据,所述数据包括其执行代码是所述网页的内容的一部分的行内脚本;
(ii)将从网页收集的数据转换成表征所述网页的元素的至少一个N维矢量,所述元素包括所述行内脚本中的运算符的数量和类型;以及
(iii)将所述至少一个N维矢量以及所述网页的元素的预定运算符和构造传输到所述服务器;
通过所述服务器从数据库检索基于功能组织成一个或多个集群的已知恶意行内脚本的统计模型;
通过所述服务器将所述至少一个N维矢量与检索到的统计模型的集群相比较,所述比较包括测量所述N维矢量与所述一个或多个集群的中心的距离;以及
通过所述服务器,基于所述比较的结果,在所述至少一个N维矢量与所述一个或多个集群的中心之间的邻近度的测量值小于所选阈值时,识别所述网页的至少一个恶意元素。
16.如权利要求15所述的非暂时性计算机可读介质,其中,所述脚本还配置成将收集的所述数据发送到所述服务器。
17.如权利要求16所述的非暂时性计算机可读介质,所述计算机可执行指令还包括用于如下操作的指令:
通过所述服务器计算接收的所述数据的散列值;
通过所述服务器从所述数据库获得所述网页的已知恶意元素的至少一个散列值;以及
通过所述服务器将计算的所述散列值与所述至少一个散列值相比较以确定至少一个元素是否为恶意的。
18.如权利要求15所述的非暂时性计算机可读介质,其中,所述计算机可执行指令还包括用于如下操作的指令:
通过所述服务器将如下项中的至少一者存储在所述数据库中:识别的所述网页的恶意元素和相应的计算的散列值、以及所述行内脚本。
19.如权利要求15所述的非暂时性计算机可读介质,其中,所述脚本通过中间节点嵌入,所述中间节点位于提供所述网页的网络服务器与所述用户设备之间。
20.如权利要求15所述的非暂时性计算机可读介质,其中,通过部署在所述用户设备上的所述脚本将从所述网页收集的数据转换成所述至少一个N维矢量包括:基于所述脚本的设置或通过来自所述服务器的命令构造抽象语法树。
CN201710480802.0A 2016-10-10 2017-06-22 检测网页的恶意元素的系统和方法 Active CN107918733B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2016139468A RU2638710C1 (ru) 2016-10-10 2016-10-10 Способы обнаружения вредоносных элементов веб-страниц
RU2016139468 2016-10-10
US15/475,885 US10505973B2 (en) 2016-10-10 2017-03-31 System and methods of detecting malicious elements of web pages
US15/475,885 2017-03-31

Publications (2)

Publication Number Publication Date
CN107918733A CN107918733A (zh) 2018-04-17
CN107918733B true CN107918733B (zh) 2021-06-04

Family

ID=60718915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710480802.0A Active CN107918733B (zh) 2016-10-10 2017-06-22 检测网页的恶意元素的系统和方法

Country Status (4)

Country Link
US (2) US10505973B2 (zh)
JP (1) JP6530786B2 (zh)
CN (1) CN107918733B (zh)
RU (1) RU2638710C1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805331B2 (en) 2010-09-24 2020-10-13 BitSight Technologies, Inc. Information technology security assessment system
US9438615B2 (en) 2013-09-09 2016-09-06 BitSight Technologies, Inc. Security risk management
US11182720B2 (en) 2016-02-16 2021-11-23 BitSight Technologies, Inc. Relationships among technology assets and services and the entities responsible for them
US10425380B2 (en) 2017-06-22 2019-09-24 BitSight Technologies, Inc. Methods for mapping IP addresses and domains to organizations using user activity data
WO2019089720A1 (en) * 2017-10-31 2019-05-09 Bluvector, Inc. Malicious script detection
US10257219B1 (en) 2018-03-12 2019-04-09 BitSight Technologies, Inc. Correlated risk in cybersecurity
RU2702081C2 (ru) * 2018-03-30 2019-10-03 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения модификации веб-ресурса
EP3547646B1 (en) * 2018-03-30 2021-11-10 AO Kaspersky Lab System and method of detecting a modification of a web resource
US10812520B2 (en) 2018-04-17 2020-10-20 BitSight Technologies, Inc. Systems and methods for external detection of misconfigured systems
US10831892B2 (en) * 2018-06-07 2020-11-10 Sap Se Web browser script monitoring
RU2702080C1 (ru) * 2018-06-29 2019-10-03 Акционерное общество "Лаборатория Касперского" Способ блокировки сетевых соединений с ресурсами из запрещенных категорий
US11200323B2 (en) 2018-10-17 2021-12-14 BitSight Technologies, Inc. Systems and methods for forecasting cybersecurity ratings based on event-rate scenarios
US10521583B1 (en) 2018-10-25 2019-12-31 BitSight Technologies, Inc. Systems and methods for remote detection of software through browser webinjects
CN109491896B (zh) * 2018-10-26 2022-06-21 深圳点猫科技有限公司 一种教育系统的微信小程序表单校验方法及电子设备
US20200137092A1 (en) * 2018-10-31 2020-04-30 Salesforce.Com, Inc. Detecting anomalous web browser sessions
US10726136B1 (en) 2019-07-17 2020-07-28 BitSight Technologies, Inc. Systems and methods for generating security improvement plans for entities
US11956265B2 (en) 2019-08-23 2024-04-09 BitSight Technologies, Inc. Systems and methods for inferring entity relationships via network communications of users or user devices
CN110659057B (zh) * 2019-09-24 2021-10-22 腾讯科技(深圳)有限公司 应用程序热更新方法、装置、存储介质及计算机设备
US10848382B1 (en) 2019-09-26 2020-11-24 BitSight Technologies, Inc. Systems and methods for network asset discovery and association thereof with entities
US11032244B2 (en) 2019-09-30 2021-06-08 BitSight Technologies, Inc. Systems and methods for determining asset importance in security risk management
US11270000B1 (en) * 2019-11-07 2022-03-08 Trend Micro Incorporated Generation of file digests for detecting malicious executable files
CN111221610B (zh) * 2020-01-03 2023-07-04 建信金融科技有限责任公司 一种页面元素采集方法和装置
US10791140B1 (en) 2020-01-29 2020-09-29 BitSight Technologies, Inc. Systems and methods for assessing cybersecurity state of entities based on computer network characterization
US10893067B1 (en) 2020-01-31 2021-01-12 BitSight Technologies, Inc. Systems and methods for rapidly generating security ratings
US10764298B1 (en) 2020-02-26 2020-09-01 BitSight Technologies, Inc. Systems and methods for improving a security profile of an entity based on peer security profiles
US11023585B1 (en) 2020-05-27 2021-06-01 BitSight Technologies, Inc. Systems and methods for managing cybersecurity alerts
US11716350B2 (en) * 2020-06-23 2023-08-01 IronNet Cybersecurity, Inc. Systems and methods of detecting anomalous websites
US11122073B1 (en) 2020-12-11 2021-09-14 BitSight Technologies, Inc. Systems and methods for cybersecurity risk mitigation and management
US12079347B2 (en) 2021-03-31 2024-09-03 BitSight Technologies, Inc. Systems and methods for assessing cybersecurity risk in a work from home environment
US11882152B2 (en) * 2021-07-30 2024-01-23 Bank Of America Corporation Information security system and method for phishing website identification based on image hashing
CN113688049B (zh) * 2021-08-31 2023-06-23 中国平安财产保险股份有限公司 基于录入信息的可回溯性检测方法、装置、设备及介质
CN114363082B (zh) * 2022-01-12 2024-05-03 南昌首页科技股份有限公司 网络攻击检测方法、装置、设备及计算机可读存储介质
US11934523B1 (en) * 2022-12-01 2024-03-19 Flexxon Pte. Ltd. System and method for securing data files

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826439B1 (en) * 2011-01-26 2014-09-02 Symantec Corporation Encoding machine code instructions for static feature based malware clustering

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3903613B2 (ja) 1998-11-04 2007-04-11 富士ゼロックス株式会社 検索装置及び検索プログラムを記録したコンピュータ読み取り可能な記録媒体
CN1176432C (zh) * 1999-07-28 2004-11-17 国际商业机器公司 提供本国语言查询服务的方法和系统
US6611925B1 (en) * 2000-06-13 2003-08-26 Networks Associates Technology, Inc. Single point of entry/origination item scanning within an enterprise or workgroup
JP4652741B2 (ja) * 2004-08-02 2011-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 異常検出装置、異常検出方法、異常検出プログラム、及び記録媒体
US7574409B2 (en) 2004-11-04 2009-08-11 Vericept Corporation Method, apparatus, and system for clustering and classification
JP5208001B2 (ja) 2008-06-09 2013-06-12 ヤフー株式会社 ベクトルデータ検索装置
US8225401B2 (en) * 2008-12-18 2012-07-17 Symantec Corporation Methods and systems for detecting man-in-the-browser attacks
KR20100078081A (ko) * 2008-12-30 2010-07-08 (주) 세인트 시큐리티 커널 기반 시스템 행위 분석을 통한 알려지지 않은 악성코드 탐지 시스템 및 방법
US20100299430A1 (en) * 2009-05-22 2010-11-25 Architecture Technology Corporation Automated acquisition of volatile forensic evidence from network devices
AU2011209673B2 (en) * 2010-01-26 2015-11-19 Emc Corporation System and method for network security including detection of man-in-the-browser attacks
RU2446459C1 (ru) * 2010-07-23 2012-03-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ проверки веб-ресурсов на наличие вредоносных компонент
JP2012088803A (ja) 2010-10-15 2012-05-10 Univ Of Aizu 悪性ウェブコード判別システム、悪性ウェブコード判別方法および悪性ウェブコード判別用プログラム
AU2011200413B1 (en) * 2011-02-01 2011-09-15 Symbiotic Technologies Pty Ltd Methods and Systems to Detect Attacks on Internet Transactions
CN102811213A (zh) * 2011-11-23 2012-12-05 北京安天电子设备有限公司 基于模糊哈希算法的恶意代码检测系统及方法
EP2725512B1 (en) * 2012-10-23 2019-03-27 Verint Systems Ltd. System and method for malware detection using multi-dimensional feature clustering
US20140201208A1 (en) * 2013-01-15 2014-07-17 Corporation Symantec Classifying Samples Using Clustering
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
US9264444B2 (en) * 2013-05-21 2016-02-16 Rapid7, Llc Systems and methods for determining an objective security assessment for a network of assets
US20150033336A1 (en) * 2013-07-24 2015-01-29 Fortinet, Inc. Logging attack context data
EP3731458A1 (en) * 2014-01-24 2020-10-28 McAfee, LLC Automatic placeholder finder-filler
KR101632929B1 (ko) * 2014-06-16 2016-06-23 주식회사 예티소프트 단말, 및 이를 이용한 웹 페이지 위변조 검증 시스템 및 방법
US9979748B2 (en) * 2015-05-27 2018-05-22 Cisco Technology, Inc. Domain classification and routing using lexical and semantic processing
US9923916B1 (en) * 2015-06-17 2018-03-20 Amazon Technologies, Inc. Adaptive web application vulnerability scanner
US20170337376A1 (en) * 2016-05-19 2017-11-23 Scot Anthony Reader Adaptive Heuristic Behavioral Policing of Executable Objects
RU2652451C2 (ru) * 2016-09-08 2018-04-26 Акционерное общество "Лаборатория Касперского" Способы обнаружения аномальных элементов веб-страниц

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826439B1 (en) * 2011-01-26 2014-09-02 Symantec Corporation Encoding machine code instructions for static feature based malware clustering

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Delta: Automatic Identification of Unknown Web-based Infection Campaigns;Kevin Borgolte;《CCS "13: Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security》;20131130;第109-119页 *
Kevin Borgolte.Delta: Automatic Identification of Unknown Web-based Infection Campaigns.《CCS "13: Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security》.2013,第109-119页. *

Also Published As

Publication number Publication date
US20200092305A1 (en) 2020-03-19
CN107918733A (zh) 2018-04-17
US10505973B2 (en) 2019-12-10
JP6530786B2 (ja) 2019-06-12
JP2018063694A (ja) 2018-04-19
US20180103043A1 (en) 2018-04-12
US11038917B2 (en) 2021-06-15
RU2638710C1 (ru) 2017-12-15

Similar Documents

Publication Publication Date Title
CN107918733B (zh) 检测网页的恶意元素的系统和方法
CN107808095B (zh) 用于检测网页的异常元素的系统和方法
US11716348B2 (en) Malicious script detection
US9621570B2 (en) System and method for selectively evolving phishing detection rules
RU2637477C1 (ru) Система и способ обнаружения фишинговых веб-страниц
US8856937B1 (en) Methods and systems for identifying fraudulent websites
US8943588B1 (en) Detecting unauthorized websites
US11212297B2 (en) Access classification device, access classification method, and recording medium
EP3803664A1 (en) Systems and methods for machine learning based application security testing
JP6708794B2 (ja) 判定装置、判定方法、および、判定プログラム
US11556640B1 (en) Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11550920B2 (en) Determination apparatus, determination method, and determination program
US20240054210A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
US9923916B1 (en) Adaptive web application vulnerability scanner
EP3306511B1 (en) System and methods of detecting malicious elements of web pages
EP3293661A1 (en) System and method for detecting anomalous elements of web pages
US20240054215A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
RU2659741C1 (ru) Способы обнаружения аномальных элементов веб-страниц на основании статистической значимости
US20230065787A1 (en) Detection of phishing websites using machine learning
US20240214406A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
JP7420247B2 (ja) 計量学習装置、計量学習方法、計量学習プログラム、及び検索装置
US20240214396A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
EP3547646B1 (en) System and method of detecting a modification of a web resource
CN114499968A (zh) 一种xss攻击检测方法及装置
CN115514539A (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