CN115917541A - web服务器风险认识的用户界面 - Google Patents
web服务器风险认识的用户界面 Download PDFInfo
- Publication number
- CN115917541A CN115917541A CN202180037926.6A CN202180037926A CN115917541A CN 115917541 A CN115917541 A CN 115917541A CN 202180037926 A CN202180037926 A CN 202180037926A CN 115917541 A CN115917541 A CN 115917541A
- Authority
- CN
- China
- Prior art keywords
- web server
- determining
- web
- type
- risk
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1483—Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
web服务器安全性被评估。一些实施例分析了与web服务器交换的数据,以确定与访问web服务器相关的风险。例如,检查经由web服务器访问的web应用的类型中的一个或多个:用于实现web服务器的解释语言的类型,和/或可在web服务器上操作的http服务器的类型和/或版本。基于该分析,确定与访问web服务器相关的风险。然后,一些实施例基于分析结果阻止对web服务器的访问。备选地,在一些实施例中,可以提醒用户注意风险,然后在接受风险后允许继续。一些实施例经由web服务器风险数据存储与其他客户端设备共享确定的风险评估。
Description
背景技术
恶意网站对消费者和企业的攻击正变得越来越普遍。根据2017年的一份报告,一些组织经历的网络犯罪成本与恶意软件、基于网络的攻击、网络钓鱼和社会工程攻击以及被盗设备有关。此外,一些组织经历了与拒绝服务、恶意的内部人员和恶意代码有关的成本。在某些情况下,这些成本是由于信誉良好的web服务器被恶意软件或其他邪恶代码感染的结果。web服务器的感染可能是由于web服务器维护不善造成的,例如,运行有已知漏洞的相对旧版本软件的web服务器。感染也可能是由于使用了特定的软件语言、框架或库,由于其基本设计,其本质上不太安全。因此,有必要改进方法,以减少与访问web服务器有关的风险。
附图说明
图1是实现一个或多个公开的实施例的系统的概述图。
图2是图1的系统的扩展视图。
图3A是示出扩展的示例结构的框图。
图3B示出至少在一些实施例中包括在漏洞数据存储中的示例数据结构。
图3C示出至少在一些实施例中包括在漏洞数据存储中的示例数据结构。
图4A示出了在一个或多个公开的实施例中实现的示例用户界面。
图4B示出了在一个或多个公开的实施例中实现的示例用户界面。
图5是示出网络消息的示例部分的示图,诸如关于图1讨论的任何一个或多个网络消息。
图6示出在一个或多个公开的实施例中实现的示例数据结构。
图7是用于确定访问网站的风险的方法的流程图。
图8是用于确定风险得分的示例方法的流程图。
图9是示例机器的框图,在该机器上可以执行本文讨论的任何一个或多个技术(例如,方法)。
具体实施方式
所公开的是用于确定与通过网络访问资源相关的风险的实施例。经由网络访问资源通常是经由使用超文本传输协议(HTTP)完成的。超文本传输协议提供了一个基于表示状态传输(REST)的接口。该接口定义了一种方法,用于客户端设备经由网络与第二设备建立连接。在一些实施例中,第二设备是一个服务器或通常称为web服务器。该连接是根据统一资源定位器(URL)指定的通信参数建立的。一旦建立了连接,客户端设备就会以名称向第二设备请求资源。然后,第二设备经由一个或多个网络消息作出响应,该一个或多个网络资源包括信息,该信息包括所请求的资源。
通过接收和操作由第二设备提供的数据,一些风险被施加到客户端设备上。例如,从第二设备接收的数据可以包括恶意代码,该恶意代码一旦被客户端设备执行,就可以控制客户端设备并执行对客户端设备不利的动作。例如,如果客户端设备可以根据它从第二设备收到的数据而受到损害,客户端设备可访问的资源(如机密文件或其他信息)可以受到损害和/或破坏。此外,被破坏的网站可以被用来主持网络钓鱼攻击,冒充合法服务,或被用来用恶意软件感染合法服务。这些感染可以窃取敏感的客户信息,诸如但不限于用户名、密码、银行和信用卡信息或关键身份信息。
因此,为了确保安全环境,不仅客户端设备应实用良好的安全做法,而且客户端设备接收数据的第二设备也应遵循行业标准的安全准则。
不幸的是,许多web服务器或其他通过互联网提供资源的设备没有得到很好的维护,或者至少包括一个或多个漏洞,使得它们更有可能被邪恶的行为者破坏。这给访问这些资源的客户端设备带来了不应有的风险。此外,访问web服务器的用户不一定清楚,这种风险是通过使用他们的客户端设备访问这些资源而强加给他们的。由于用户不一定知道这些风险,如果他们无法区分每一种选择所带来的风险,他们可能更有可能访问这些资源,并且在选择不同的web服务器进行访问时不那么谨慎。此外,如果web服务器维护不善给用户带来的风险不明显,web服务器供应商就没有动力去提供适当的维护和消除这些风险。因此,目前的技术状况提出了一个技术问题,即维护web服务器的勤奋程度给用户带来了一定程度的风险,而用户或在某些示例中维护web服务器的组织本身并不了解这种风险程度。
所公开的实施例提供了用于检测这些风险,然后提醒用户注意这些风险,和/或采取动作防止这种风险被施加的方法和系统。通过检测风险并提醒用户,所公开的实施例为上述技术问题提供了技术解决方案。特别地,所公开的实施例至少部分地通过分析第二设备提供给客户端设备的信息来操作。通过向客户端设备提供信息,第二设备表明第二设备本身的一个或多个特征,包括其软件配置、安全实践以及与确定与访问第二设备相关的风险有关的其他信息。一些实施例提供了一个在web服务器上发现的漏洞数据库。负责维护这些web服务器的各方可以订阅该数据(例如,经由门户应用),或在其网站上发现问题时订阅推送通知(例如,电子邮件、文本)。
在一些实施例中,第二设备的特征包括诸如web服务器正在使用的web服务器软件的类型、经由web服务器提供数据的web应用的类型、web服务器采用的解释语言的类型(例如PHP、Perl、Python、Ruby、Go、Node、ASP等)、web服务器使用的框架和或库,或其他特征。一些实施例采用基于签名的方法来标识特定的web服务器软件、web应用类型和/或版本、框架或库。例如,可以根据web应用检索的URL的模式来标识一些web应用。一些公开的实施例采用了网络浏览器的客户端扩展,监测这些URL检索,并将监测的URL检索与存储在数据存储器中的已知URL检索模式相比较。如果监测到的检索与已知的web应用的检索模式相匹配,那么一些公开的实施例就会得出结论,web服务器正在运行该已知的web应用。在某些情况下,URL检索模式不仅可以用来标识特定类型的web应用,还可以用来标识web应用的特定版本,因为同一web应用的不同版本往往在其URL检索模式上有所不同。在检测web服务器所采用的框架或库时,有时也可以进行类似的区分。
一旦知道特定的web应用、web服务器、库、框架、脚本语言和web服务器的其他特征,这些特征中的每一个都可以被映射到与之相关的风险等级。例如,一些实施例维护漏洞数据存储,其提供从特定类型或版本的web服务器软件、web应用、框架、库和其他特征到风险等级的映射。
然后将这些风险得分汇总到与第二计算机的交互所带来的风险的总体评估中。
然后,所公开的实施例基于安全策略,确定基于风险评估而执行的动作。至少在一些实施例中,如果风险相对较低,则不采取任何特定动作。在某些安全策略下,中度风险的结果是在促进与第二设备的进一步互动之前向用户显示一个警告。如果用户承认他们了解风险并仍然希望继续,则提供一个允许提供这种输入的对话。在特定严重的风险情况下,至少一些安全策略可以完全阻止访问,而不管任何用户是否愿意继续。
因此,通过提醒用户访问web服务器所带来的风险,所公开的实施例为上文讨论的技术问题提供了一个技术解决方案。因为用户更了解web服务器所带来的风险,所以用户更有能力对他们访问哪些web服务器做出不同的选择,以及避免访问哪些web服务器。相对于今天的解决方案来说,这可能导致用户在操作时风险等级有所降低。此外,通过使这些风险对用户更加明显,也为web服务器运营商提供了一些额外的激励,使其在维护web服务器时更加勤奋。例如,如果没有收到用户社区的反馈,web服务器运营商可能会允许他们的web服务器软件在没有最近更新的情况下老化,但如果用户社区经常被警告他们相对较老的web服务器软件所带来的风险,他们可能会决定比原来更快升级软件。这种改进的维护等级减少了强加给社区的一般风险。
此外,一些实施例经由web服务器风险数据存储共享网络服务的风险信息。分析与web服务器的通信并确定web服务器的风险得分的客户端设备,将与分析有关的信息存储在数据存储中,该存储也可被其他客户端设备访问。在这些实施例中,在这些其他客户端设备连接到web服务器之前,它们首先检查,来确定是否已经对web服务器进行了风险分析,如果是,则确定所述分析的结果。然后,这些其他客户端设备被告知连接到特定web服务器的风险,而不一定需要连接或与所述web服务器交换任何数据。这提高了这些设备的安全性,也减少了与开发web服务器的风险得分有关的处理开销。
图1是实现一个或多个公开的实施例的系统100的概览图。该系统100包括客户端设备102a、客户端设备102b和web服务器计算机104。客户端设备102a和web服务器计算机104经由网络108的网络消息106a-d进行通信。例如,客户端设备102a在一些实施例中,经由超文本传输协议(HTTP)从web服务器计算机104请求数据。然后,web服务器计算机104向客户端设备102a提供响应(例如,经由网络消息106c-d)。请注意,虽然术语“客户端设备”在本公开中被用来指访问web服务器的设备,但该术语无意将考虑的设备视为客户端设备限制在特定类型的设备,诸如移动电话、笔记本电脑或其他传统客户端设备。相反,在本申请的上下文中,术语“客户端设备”被用来描述“客户端”设备和web服务器计算机(诸如web服务器计算机104)web服务器之间的关系。例如,通过成为相对于web服务器的客户端设备,客户端设备从web服务器请求数据。例如,在经由超文本传输协议(HTTP)促进客户端设备和web服务器之间的通信的实施例中,客户端设备经由HTTP“获取”请求来请求数据,然后web服务器以HTTP响应消息响应HTTP“获取”请求。所公开的实施例还考虑了经由HTTP传输数据的其他方法(例如“Post”)。
所公开的实施例基于在客户端设备102a和web服务器计算机104之间交换的网络消息106a-d确定web服务器计算机104的风险评估。在一些实施例中,客户端设备102a还依赖于包括在漏洞数据存储120中的漏洞信息。例如,在一些实施例中,漏洞数据存储120定义了web服务器、web应用、http头部字段值和由web服务器计算机104提供的其他指示的特定属性或类型与访问包括这些属性或类型的计算机相关的相对风险之间的映射。漏洞数据存储120在一些示例性实施例中指出,2.2版以前的Apacheweb服务器的版本包括特定漏洞,这些漏洞对访问这些Apache版本的客户端设备造成特别的风险。根据该信息,客户端设备102a在一些实施例中对web服务器计算机104进行评分,以表明与访问它相关的风险等级。
虽然图1显示漏洞数据存储120是来自客户端设备102a和客户端设备102b的远程,但在一些实施例中,漏洞数据存储120的至少一部分被下载(例如定期地),以便驻留在客户端设备102a和/或客户端设备102b的本地。
在一些实施例中,基于客户端设备102a和web服务器计算机104之间的交互确定的风险评估被前瞻性地应用于客户端设备102b和web服务器计算机104之间的消息106-f的交换。例如,如果客户端设备102a确定web服务器计算机104代表第一级风险,则客户端设备102a将与其确定有关的信息写入漏洞数据存储120。在这些实施例中,在与web服务器计算机104连接之前,客户端设备102b基于由客户端设备102a写入漏洞数据存储120的信息,在一些实施例中,基于评估的第一风险等级以及在客户端设备102b处生效的安全策略,确定是否与web服务器计算机104交换数据。
一些实施例进一步实现了web服务器风险数据存储。在这些实施例中,web服务器风险数据存储122存储由客户端设备102a和/或客户端设备102b对web服务器计算机104提供的数据进行分析的结果。例如,在确定web服务器计算机104代表特定的风险等级时,客户端设备102a将该信息以及标识web服务器计算机104的信息存储到web服务器风险数据存储区122。在一些实施例中,web服务器风险数据存储122是基于云的数据存储,可以经由互联网访问客户端设备102a。在一些其他实施例中,web服务器风险数据存储122被实现为后台数据库,该数据库可被特定的客户端设备组访问。
在这些实施例中,在连接到诸如web服务器计算机104的特定web服务器计算机之前,客户端设备(例如,客户端设备102a和/或客户端设备102b)查询web服务器风险数据存储122以确定访问web服务器的风险是否已经知道。然后,在一些实施例中,如果用户的安全策略要求,该信息被用于警告/提示用户潜在的风险和/或阻止对web服务器的访问。
图2是图1的系统100的扩展视图。如图1所示,系统100包括客户端设备102a和web服务器计算机104。图2所述,客户端设备包括浏览器应用202。浏览器应用202与运行在web服务器计算机104上的web应用204进行通信。在至少一些实施例中,浏览器应用202经由HTTP协议与web应用204进行通信。浏览器应用202可以是任何应用,但在各种实施例中,是微软浏览器、浏览器、电脑公司生产的浏览器,或任何其他商业浏览器。客户端设备102a还包括扩展206。扩展206与浏览器应用202集成。在一些实施例中,浏览器应用202提供应用程序接口(API)207,该接口提供浏览器应用202和扩展206之间的整合。经由API207,在一些实施例中,扩展拦截浏览器应用202和web应用204之间的通信。该扩展拦截通信,以便对web应用和web服务器计算机104的其他组件进行解码和分析。在一些实施例中,本披露中归属于扩展206的一个或多个功能由浏览器应用202代替执行。
在一些实施例中,扩展206得出在web服务器计算机104上运行的web服务器应用208的一个或多个特征。例如,在一些实施例中,http响应消息(例如106c)包括web服务器应用208的类型和/或版本的指示符。web服务器计算机104的几个组件一起工作以产生网络消息,这些消息被提供回给客户端设备102a。例如,在一些实施例中,一些消息最初是由web应用204生成的。例如,在一些实施例中,web应用204对web应用204从浏览器应用202收到的请求消息生成响应消息。web应用204将该消息传递给web服务器应用208。然后,web服务器应用208经由网络协议将该消息通过网络108发送到客户端设备102a。
在一些实施例中,扩展206还确定在web服务器计算机104上运行的操作系统210的一个或多个特征。例如,在各种实施例中,扩展206确定操作系统的类型(例如,操作系统的发布方,如或操作系统的名称,如“Windows”或“Linux”),或操作系统的版本。在一些实施例中,扩展206通过分析一个或多个网络消息106a-d,来确定web应用204所采用的解释语言的类型。例如,在一些实施例中,该扩展确定web应用204是否使用PHP、C#或ASP/.NET、Java、Phyton、Ruby或其他解释语言实现。
在一些实施例中,扩展206得出与web应用204使用的一个或多个插件、一个或多个主题或一个或多个扩展有关的信息。例如,如下面进一步讨论的,至少一些公开的实施例采用基于URL序列的签名、文档对象模型(DOM)对象标识符签名或内容签名中的一个或多个来标识web应用204所使用的插件、主题或扩展。
在一些实施例中,扩展206分析一个或多个网络消息106a-d以确定任何客户端可执行框架,该框架是由网络消息引用以在客户端设备102a上执行的框架。例如,一些网络消息引用了客户端java脚本框架或库,当网络消息所定义的网页被显示或以其他方式呈现时,在客户端设备102a上引起所述框架/库的执行。一些实施例分析该一个或多个网络消息以标识代码注入或插入。
然后,扩展206确定与web服务器计算机104相关的相对风险等级。扩展206可以基于包括在漏洞数据存储120中的信息将从网络消息106a-d获得的信息映射到一个或多个风险等级。
如上所述,在一些实施例中,扩展206通过分析从web服务器计算机104接收的数据来评估访问web服务器计算机104的风险。在其中一些实施例中,客户端设备102a和/或扩展206在与web服务器计算机104通信之前查询web服务器风险数据存储122。例如,另一个客户端设备(例如,客户端设备102b或其他客户端设备)可能先前已经与web服务器计算机104进行了交互,并进行了风险评估。该其他客户端设备在一些实施例中也将其分析结果写入或传送到web服务器风险数据存储122,这有利于与其他客户端设备(例如客户端设备102a和/或102b)共享该信息。这允许这些客户端设备在甚至尝试访问web服务器计算机104之前获得风险评估,通过潜在地防止对有风险的web服务器计算机的任何访问来提高客户端设备的安全性。通过在多个客户端设备之间共享风险信息,还减少了施加在客户端计算机上的开销,因为如果先前(并且在一些实施例中,最近)已经执行了web服务器计算机的安全分析,则不一定要求每个客户端计算机重复该分析。
如果客户端设备102a和/或扩展206无法定位特定的web服务器计算机104的风险信息(例如经由下面关于图6讨论的URL和/或地址信息),那么客户端设备102a如上所述分析网络消息以确定与web服务器计算机104本身相关的风险。在确定风险之后,然后,至少在一些实施例中,该信息被写入web服务器风险数据存储器122,以便使该信息可用于如上所述的其他客户端计算机。
在由客户端设备102a确定与web服务器计算机104相关的风险之后,(例如,通过分析与web服务器计算机104交换的数据,或者通过从web服务器风险数据存储122获得风险信息),如下文进一步讨论的,客户端设备102a根据应用于客户端设备102a和/或在客户端设备102a上具有操作会话的计算机账户的安全策略采取动作。
图3A是显示扩展的示例架构的框图。在一些实施例中,架构300是由上文关于图2讨论的扩展206实现的。图3A显示了background.js文件302,该文件包括一个注册为浏览器应用202内页面加载的中央通知点的方法。例如,在一些实施例中,该方法是经由API 207注册的。background.js文件302内的代码包括通知方法,当浏览器应用202加载一个或多个网络消息106a-d定义的新页面时被调用。由background.js文件定义的一个或多个方法调用一个或多个其他代码模块308a-g来解析包括在网络消息106c中的HTTP响应消息的一个或多个不同部分。
在一些实施例中,由background.js模块定义的方法确定web服务器的风险得分,以及其与安全策略的兼容性。在一些实施例中,风险得分是基于由一个或多个模块308a-g提供的信息。例如,在一些实施例中,一个或多个模块308a-g被包括在background.js中的方法调用。在一些实施例中,如果包括在background.js中的方法检测到特定类型的http头部,则包括在模块308a-g中的对应模块被调用以解析该并向background.js中的方法返回一个得分。一旦http响应解析完成,包括在background.js中的代码至少部分地基于从模块308a-g返回的一个或多个得分而为网站生成安全得分。
响应于安全得分满足一个或多个准则,由background.js模块定义的方法显示由popup.js模块304中包括的方法定义的窗口。该方法生成一个html文件306,该文件可在浏览器应用(诸如上文关于图2讨论的浏览器应用202)内显示。下面就图4A讨论一个示例窗口。
图3B显示了至少在一些实施例中包括在漏洞数据存储120中的示例数据结构。虽然下面将示例数据结构作为关系数据库结构来讨论,但技术人员会理解,所公开的实施例不限于使用关系数据库结构,并且可以利用各种其他数据结构架构。例如,在一些公开的实施例中使用非结构化数据存储,或传统的存储器数据结构,如数组、链接列表、树,或其他数据结构。
图3B显示了URL签名表351、文档对象模型(DOM)签名表361、URL序列表371、DOM序列表381和内容签名表391。
URL签名表351包括URL签名ID字段354、URL序列标识符字段356、web服务器计算机组件类型字段358和web服务器计算机组件ID字段359。URL签名ID字段354唯一地标识了一个web服务器组件的签名。URL序列标识符字段356确定了签名所使用的URL序列。web服务器计算机组件类型字段358确定了由签名标识的web服务器计算机组件的类型。例如,web服务器计算机组件类型字段358表明签名(由URL签名ID字段354标识)是否标识了web应用、特定版本的web应用、web服务器计算机使用的框架、web服务器计算机使用的库、web服务器计算机使用的解释语言、web服务器计算机使用的http web服务器类型,或其他web服务器计算机组件类型。web服务器计算机组件ID字段359确定了web服务器计算机组件的特定类型。例如,如果字段358表明签名标识了web服务器计算机使用的脚本语言类型,则web服务器计算机组件id字段359表明该脚本语言是PHP、Node、Go、Ruby、Perl、python或其他web服务器脚本或解释语言类型。
DOM签名表361包括DOM签名ID字段362、DOM序列标识符字段364、web服务器计算机组件类型字段366和web服务器计算机组件标识符字段368。DOM签名ID字段362唯一地标识了一个DOM签名。DOM序列标识符字段364唯一地标识了由DOM序列表381描述的DOM序列,下面将讨论。web服务器计算机组件类型字段366以类似于web服务器计算机组件类型字段358的方式操作,但是标识由DOM签名(其本身由字段362标识)确定的组件类型。web服务器计算机组件标识符字段368以与上文讨论的字段359类似的方式操作,但是标识由DOM签名(由字段362标识)标识的组件。
URL序列表371包括URL序列标识符字段372、URL字段374、顺序字段376、等级字段378和延迟字段379。URL序列标识符字段372唯一地标识了URL序列(例如,经由唯一的数字)。URL字段定义了包括在URL序列中的URL。顺序字段376表示URL(由字段374定义)相对于序列中的其他URL出现在序列中的顺序。等级字段378确定了URL(由字段374定义)的嵌套等级。因此,例如,如果该URL被第二URL所确定的内容所引用,而第二URL被引用在顶层或第一层,那么等级字段378将表示二(2)的等级。延迟字段379表示在获取或检索由URL字段374指定的URL和由字段376指定的顺序中的前一个URL之间的典型时间段。一些实施例不仅匹配检索的URL的顺序,而且匹配这些检索之间的时间延迟,以获得特定web服务器计算机组件的“指纹”。
DOM序列表381包括DOM序列标识符字段382、xpath模式字段384和顺序字段386。DOM序列标识符字段382唯一地标识了DOM xpath模式序列。xpath模式字段384定义了一个模式(例如,定义一个或多个元素类型和所述元素的属性,和/或一个或多个元素的父或祖先的类型和/或属性),该模式与包括在DOM序列(由字段382标识)中的xpath信息相匹配。相对于包括在该序列中的其他DOM xpath模式,顺序字段386确定DOM xpath模式在该序列中出现的顺序。
内容签名表391包括内容签名标识符字段392、正则表达式(REG EX)字段393、web服务器计算机组件类型字段394和web服务器计算机组件id字段395。内容签名标识符字段392唯一地标识了一个基于内容的签名。正则表达式字段393定义了正则表达式,该表达式针对内容进行评估,以确定该内容是否与签名相匹配。web服务器计算机组件类型字段394以与上面讨论的字段358和/或366类似的方式操作,但指的是由内容签名标识的组件类型。web服务器计算机组件id字段395以与上文讨论的字段359和368类似的方式操作,除了标识由内容签名标识的web服务器组件。
风险评分表396包括web服务器计算机组件类型字段397、web服务器组件标识符字段398和风险字段399。风险评分表396将特定的风险值与特定的web服务器计算机组件和这些组件的版本相关联。例如,风险评分表396在一些实施例中定义了与特定web应用的第一版本相关的第一级风险,以及与该特定web应用的第二版本相关的第二级风险。web服务器计算机组件类型字段397和web服务器组件标识符字段单独或组合工作,以标识特定web服务器计算机组件。风险字段399确定了与所标识的组件相关的风险等级。
图3C显示了至少在一些实施例中包括在漏洞数据存储120中的额外的示例数据结构。与图3B一样,虽然下面将示例数据结构作为关系数据库结构来讨论,但技术人员会理解,所公开的实施例不限于使用关系数据库结构,可以利用各种其他数据结构架构。例如,非结构化数据存储,或传统的存储器数据结构,诸如数组、链接。
图3C显示了JavaScript对象表421和主签名表431。JavaScript对象表421包括JavaScript对象签名id字段422、表达式字段423、组件id字段424、以及组件正则表达式字段425。对象签名id字段422唯一地标识了由JavaScript对象表的某一行定义的签名。表达式字段423定义了要注入页面的表达式(例如,以JavaScript代码形式)。当页面执行时,注入的代码操作以返回值给所公开的实施例进行评估。在一些实施例中,注入的代码确定特定的框架、库或插件是否存在于网络消息或由web服务器计算机提供的页面中。组件id字段424标识web服务器计算机的组件,如果表达式字段423评估为真值,该组件就存在。组件版本正则表达式字段425定义了可以提取所标识的组件(经由字段424标识)的版本号的正则表达式。
主签名表431包括主签名id字段432、搜索签名id字段434、父签名id字段435、组件类型字段436、组件标识符字段437、组件名称字段438和组件版本字段439。
主签名id字段432唯一地标识了主签名。搜索签名id字段434定义了一个或多个签名的列表,这些签名必须全部匹配以使主签名标识组件或组件属性。父签名id字段435确定了本签名的父签名。利用主签名表431的实施例可以经由多级签名实现数据驱动的条件逻辑。在这些实施例中,如果父签名匹配,那么父签名的子签名将被评估以确定是否匹配。如果他们的父签名没有评估为真值,则不评估子签名。组件类型字段436定义了一个组件类型,如果主签名匹配,则标识该组件类型。在一些实施例中,一个或多个父签名不经由组件类型字段436标识组件。这些一个或多个父签名反而依靠子签名来唯一地标识组件。分别由组件标识符字段437、组件名称字段438和组件版本字段439中的每一个标识的组件标识符、名称和版本也是这种情况。
图4A显示了在一个或多个公开的实施例中实现的示例用户界面。示例用户界面400经由浏览器应用显示,在图4A中显示为402。图4A的浏览器应用402至少在一些实施例中等同于图2的浏览器应用202。用户界面400包括一个窗口404。该窗口列出了由浏览器应用402请求的网站的一个或多个(在此情况下,两个)安全指示符406a和406b。例如,浏览器应用402请求访问该网站,在至少一些实施例中,响应于接收定义统一资源定位器(URL)的输入,引用该网站。窗口404还包括该网站的风险得分指示408。至少在一些实施例中,风险得分指示408是基于窗口404中显示的安全指示符的数量。
图4B显示了在一个或多个公开的实施例中实现的示例用户界面。图4B的用户界面450显示了地址建议框454,当用户在地址栏456中键入时,提供对URL的建议。地址建议框454包括建议,显示为建议460A、建议460B和建议460C。与显示的一些建议相关的是风险指示符。例如,用户界面450显示风险指示符462A、风险指示符462B和风险指示符462C。每个风险指示符462A-C都对应于建议460A-C中的一个。一些实施例从web服务器风险数据存储器(例如上文关于图1和图2讨论的web服务器风险数据存储器122)获得显示在地址建议框454中的建议460A-C的风险信息。从这个获得的风险信息中,一些公开的实施例显示与特定建议相关的风险指示符,如用户界面450所展示的。例如,与相对高的风险相关的建议被标记为一个指示符,如一个停止的标志,表明不建议访问建议的网站。(有些实施例根本就不显示这样的建议)。与中度风险相关的建议可以显示与这种中度风险一致的指示符,如风险指示符462A所示的警告标志。所公开的实施例不限于图4B的示例中显示的具体风险指示符。利用web服务器风险数据存储(例如上文讨论的web服务器风险数据存储122)的实施例能够显示安全风险指示符,例如任何风险指示符462A-C,而不一定要访问网站本身(例如,连接和/或从网站下载任何数据)。这些实施例也可以在用户实际从网站上请求信息之前向用户提供建议。在一些实施例中,上文关于图2讨论过,风险指示符462A-C经由延伸部分206显示。
图5是显示网络消息的示例部分的图,例如上面讨论的任何一个或多个网络消息106a-d。示例消息部分500包括HTTP严格传输安全(HSTS)头部502、内容安全策略(CSP)头部504、跨源资源共享(CORS)头部506、设置缓存文件(cookie)头部508、X帧-选项头部510、X-XSS保护头部512、X内容类型选项头部514、服务器头部516、X-Powered-By头部518、以及X-AspNet版本头部520。HSTS头部502表示提供消息部分500的web服务器是否只支持使用HTTPS的连接。在一些实施例中,HSTS头部502包括一个或多个其他字段,指示最大连接年龄是否包括子域,以及预加载。一些实施例为最大连接年龄指示提供了6个月的最小允许时间段。至少在一些实施例中,在确定分配给HSTS头部502的中间风险得分时,要考虑这些指示中的一个或多个指示。如果web服务器不利用HTTP严格传输安全(经由http严格传输安全(HSTS)头标识),则不能阻止攻击者进行中间人攻击,因为该攻击能够拦截HTTP请求。
CSP头部504表示内容是否只能在策略中加载。如果启用内容安全策略,则防止跨网站脚本(XSS)和HTML注入攻击。CSP头部504提供了一个URL白名单的能力。一些证据表明,84%的安全漏洞是经由跨网站脚本来利用的。在一些实施例中,如果CSP头部504被设置为“default-src“self'””,这表明内容只从当前域加载。
跨源资源共享(CORS)头部506表示是否允许第三方访问给定资源。CORS头部506提供了对文档对象模型(DOM)和全局JavaScript对象中的同源策略的排除。在一些实施例中,CORS头部506中的设置限制了其他web服务器或网站访问不同页面上内容的能力。
设置缓存文件头部508定义了如何保护缓存文件。设置缓存文件头部508定义了两个属性。如果设置了“安全”属性,只允许经由HTTPS传输缓存文件。“仅HTTP”属性可以防止JavaScript对缓存文件数据的访问。具有高度安全含义的缓存文件(诸如会话缓存文件)应该同时设置“安全”和“仅HTTP”属性。
X-帧-选项头部510定义了是否允许加载iFrames。如果不允许加载iFrame,这可以防止“ClickJacking”的尝试。当恶意应用将目标应用加载到一个不可见的iFrame中时,就会发生“点击劫持”,这个iFrame通常隐藏在一个合法的控件下,如一个按钮,或其他交互表面。恶意应用捕获合法控件的选择并转发到iFrame中。这可能导致用户在受影响的网站上进行潜在的不需要的操作(例如,如非故意的关注/喜欢/或订阅)。加载隐藏的iframe也可以被恶意滥用,人为地增加网页/视频/广告的流量,或对嵌入的网站进行DDoS攻击。因此,一些实施例基于X-帧-选项头510中提供的信息确定web服务器的风险得分。
X-帧-选项头部510包括三个属性。DENY属性定义了网站是否可以被加载到任何iFrame中。同源属性定义了如果iFrame的站点域等同于页面的站点域,则页面是否可以被加载到iFrame中。ALLOW-FROM属性定义了页面是否可以从指定的站点统一资源指示符(URI)加载到iframe中。
X-XSS保护头部512定义了操作模式。头部512的值为0时,禁用跨网站脚本过滤器(例如,允许跨网站脚本)。头部512的值为1,则启用过滤器,并表示浏览器要从页面上删除JavaScript和其他运行时脚本。值为二(2)时,如果标识出跨网站脚本攻击,则阻止页面的渲染。
X-内容类型选项头部514定义了两个属性。如果设置了内容布置属性,则强制浏览器在下载文件之前进行提示。选项,如果设置了X-下载-选项属性,则强制文件在打开前被保存在本地。X内容类型选项头部提供了对Mime嗅探的一些保护。当一个网站提供给用户上传内容时,就会出现Mime嗅探漏洞。上传内容的能力可能被邪恶的用户滥用。例如,邪恶的用户可以把特定的文件类型伪装成其他类型。这就提供了一个执行跨站脚本的机会,这可能会损害网站。X-内容-类型-选项通过禁用流行的浏览器应用的MIME嗅探功能来防止这些类型的攻击。这要求浏览器使用经由源服务器发送的MIME类型。
服务器头部516提供关于托管网站的服务器(例如,web服务器计算机104)的信息。提供该信息有可能将网站暴露给黑客,因为关于服务器的信息可用于根据特定类型的服务器的已知漏洞来制作漏洞。如果服务器头部516包括托管网站的服务器的详细描述,一些公开的实施例会增加web服务器的风险评估。此外,根据服务器头部516中包括的版本信息调整风险评估。例如,如果服务器头部516表明服务器的版本包括已知的漏洞,这至少在一些实施例中增加了相对风险。指示反映没有已知漏洞的版本的最新版本信息的服务器头部提供了访问web服务器的相对风险的相对减少。
X-Powered-By头部518表示网站使用的网络框架和该框架的一个版本。包括在X-Power-By头部518中的信息向邪恶的行为方提供信息,该行为方可能使用该信息来利用所指示的框架/版本中的一个或多个已知漏洞。
X-AspNet版本头部520表示ASP.NET框架是否在为网站服务。该信息可被邪恶的行为方用于利用由X-AspNet版本头部520确定的框架/版本中的任何已知漏洞。
加密信息部分521包括运输层安全(TLS)/安全套接字层(SSL)头部522。一旦建立连接,可以从数据流中获得正在使用的加密标准。TLS/SSL头部522表示使用的是哪个版本的TLS。可能的值包括1.0、1.1、1.2或1.3,等等。每个版本都带有不同等级的密码漏洞。
证书特征信息525包括关于网站使用的证书的各种信息。在一些实施例中,客户端设备(例如客户端设备102a)向服务器计算机发出请求以检索证书。然后,在至少一些实施例中,证书特征信息525是由客户端设备基于取回的证书得出的。在一些实施例中,浏览器扩展(例如,图2的扩展206)发出证书请求并从web服务器获得证书。
证书特征信息包括有效期信息526、发布证书机构信息528、IS扩展验证证书信息530、主体组织信息532、发布方信息534和主体地域信息536。有效期信息526表示一个站点证书的到期日。已过期或即将过期的证书是网站管理和维护情况的指示符。通过一些实施例,在确定网站服务器的风险得分时考虑该信息。
发布证书的机构信息528表示发布证书的实体。一些实体相对于其他实体具有更好的声誉。一些公开的实施例至少部分地基于发布其证书的实体来确定网站的风险得分。
扩展验证证书表明控制网站的法律实体是否已被证书机构验证。这种验证增加了对控制该网站的法律实体的信任。一些实施例在确定网站的风险得分时考虑这一信息。
主体组织信息532可以与管理网站的组织的指示相比较。如果这两个组织匹配,一些实施例使用该匹配来确定网站的风险降低。如果两个组织不匹配,一些实施例产生风险得分,表明由于缺乏匹配,风险相对增加。
发布方信息534发出的表示发布该证书的证书颁发机构。一些证书颁发机构很好地审核他们的客户,而其他证书颁发机构的流程不太成熟。一些已公开的实施例基于信息发布来调整网站的风险得分。
主体所在地信息536表示证书的所在地。一些地方的欺诈活动的比例数额较大。因此,一些公开的实施例基于主体地域信息536调整网站的风险得分。
图6示出在一个或多个公开的实施例中实现的示例数据结构。虽然图6的数据结构作为关系数据库表被说明和讨论,但所公开的实施例利用本领域中已知的任何数据结构。例如,各种实施例利用非结构化数据存储、链接列表、数组或任何其他数据结构来实现这里讨论的特征。
图6显示了账户表602、组表612、策略表622、组策略表632、账户策略表642、web服务器风险表672和web服务器特征表682的示例。账户表602包括账户标识符字段604,账户名称字段606,和账户权限字段608。账户标识符字段604唯一地标识了特定的计算机账户,诸如在客户端设备上登录的账户,诸如客户端设备102a或客户端设备102b。账户名称字段606定义了账户的名称。在至少一些实施例中,由账户名称字段606定义的名称是在登录账户以在该账户下建立会话时指定的。账户权限字段608定义了提供给登录到该账户的会话的访问等级或权限。在账户表602中示出的字段只是示例,并且满足所公开的实施例的实现可以包括更多的字段,在此不作为示例提供。
组表612包括组标识符字段614和账户标识符字段616。组标识符字段614唯一地标识了组。账户标识符字段616表示被标识的账户包括在由组标识符字段614标识的组中。包括多个账户的组将在组表612中具有多个“行”,每个“行”标识包括在该组中的不同账户。
策略表622包括策略标识符字段624、命令字段626、准则字段628和动作字段630。策略标识符字段624唯一地标识了安全策略。顺序字段626确定了同一策略的策略表622的多个“行”将被评估的顺序。准则字段628确定了与策略(经由策略标识符字段624确定)相关的一个或多个准则。由准则字段628定义的一个或多个准则可以为上述关于图5的任何一个或多个标题或信息指定条件。下面关于图7讨论由准则字段628定义的一个或多个准则进一步指定由方法700确定的风险得分的条件。此外,在至少一些实施例中,由准则字段628定义的一个或多个准则还指定服务器操作系统的类型(例如。名称和/或版本)、http服务器应用的类型(例如名称和/或版本)、web应用的类型(例如名称和/或版本)、实现web应用的解释语言的类型(例如名称和/或版本)、web应用使用的插件/主题和/或扩展的类型(例如每个的名称和/或版本)、使用的客户端侧框架/库的类型(例如每个框架和/或库的名称和/或版本)的一个或多个条件。动作字段630定义了在准则字段628所定义的准则被评估为真值时要采取的动作。动作字段630可以定义诸如无条件地阻止对web服务器的访问、生成指示风险得分的提示并请求输入是否继续或停止访问web服务器、或其他动作。
组策略表632包括策略标识符字段634和组标识符字段636。策略标识符字段634唯一地标识了特定的策略,例如,经由与策略标识符字段624交叉参考。组标识符字段636确定了策略(经由策略标识符字段634确定)所适用的组。一些实施例在查阅账户策略表642之后查阅组策略表632(如果没有找到特定于账户的策略)。
账户策略表642包括策略标识符字段644和账户标识符字段646。策略标识符字段644唯一地标识了策略,例如,通过将策略标识符字段644与策略标识符字段624交叉引用。账户标识符字段646标识已标识的策略(例如,经由策略标识符字段644)所应用的账户。在一些实施例中,账户标识符字段646可以与账户标识符字段604交叉引用。
web服务器风险表672包括URL字段674、风险得分字段676和日期/时间字段678。URL字段674标识了一个URL。该URL包括标识web服务器的地址信息。例如,在各种实施例中,该URL可以经由IP地址或主机名来标识web服务器。风险得分字段676定义了先前由客户端计算机确定的风险得分。如上所述,在一些实施例中,在客户端设备确定web服务器计算机(例如,web服务器计算机104)的风险得分后,客户端设备将确定的风险得分写入web服务器风险数据存储(例如,web服务器风险数据存储122),根据需要与其他客户端计算机共享该信息。web服务器风险数据存储的一些实施例包括web服务器风险表672,或类似的数据结构。web服务器风险表672还包括数据/时间字段678,表示风险得分字段676最后更新的日期/时间。在至少一些实施例中,客户端计算机评估存储在web服务器风险表672中的任何信息的最新程度,然后决定是否依靠它来评估web服务器风险,或者在与web服务器交换一些数据之后,如上所述,自行生成新的风险得分。
web服务器特征表682包括URL字段684、特征id字段686、值字段688、以及日期/时间字段690。URL字段684定义了标识web服务器的URL,例如,经由地址信息,诸如上面讨论的IP地址或主机名。特征标识符字段686确定web服务器的特定特征,该特征与web服务器的安全和/或确定该web服务器的风险得分有关。值字段688定义了由特征标识符字段686确定的特定特征的值。日期/时间字段690定义了特征值最后更新的日期。在一些实施例中,web服务器特征表682被包括在上文讨论的web服务器风险数据存储122中。
图7是用于确定访问网站的风险的方法的流程图。该网站由web服务器计算机托管,诸如上面关于图1和图2讨论的web服务器计算机104。
在一些实施例中,下面关于图7讨论的一个或多个功能由硬件处理电路系统(例如处理器902,下面讨论)执行。在一些实施例中,存储在电子存储器(例如下文讨论的904和/或906)中的指令(例如下文讨论的指令924)配置硬件处理电路系统以执行下文讨论的一个或多个功能。在一些实施例中,下面关于图7讨论的一个或多个功能由客户端设备(例如客户端设备102a或客户端设备102b),和/或由扩展(例如下面关于图2讨论的扩展206)执行。执行方法700的设备在某些情况下在下面被称为"执行设备"。
在启动操作702之后,方法700移动到操作704,其接收网络消息。如上所述,在一些实施例中,网络消息是由web服务器计算机传输并由客户端设备(例如,客户端设备102a或客户端设备102b)接收的消息。在一些实施例中,该网络消息是http响应消息。因此,在一些实施例中,操作704包括生成和传输http请求消息,该http请求消息请求包括在网络消息中的一个或多个资源,来自web服务器计算机。备选地,该网络消息是指示所述资源不可用或其他错误条件的错误消息。
注意,在一些实施例中,操作704的性能是以web服务器计算机的现有风险评估是否已经可用为条件。例如,如上所述,一些实施例检查web服务器风险数据存储(例如,web服务器风险数据存储122)以确定是否已经为web服务器执行了风险评估。因此,在这些实施例中,在收到请求来自web服务器的数据的输入时(例如,在浏览器的地址窗口内输入URL),一些实施例查询web服务器风险数据存储以确定是否有最近的风险评估(例如,查询web服务器风险表672,并且如果经由URL字段674确定web服务器,则检查日期/时间字段678以确认风险评估足够新(例如,在预定的阈值时间内)。在确定web服务器的最近风险信息的实施例中,方法700移动到下面讨论的操作710,并避免执行操作704、706和708。
操作704的一些实施例拦截http请求。例如,在一些实施例中,通过API(例如API207)配置了扩展(例如扩展206),以拦截由浏览器应用(例如浏览器应用202)或执行网络通信的另一应用产生的http请求。基于拦截的http请求,操作704检测包括在http请求中的缓存文件信息。在一些实施例中,操作704评估该缓存文件信息是否表示安全标志、http_only标志、会话标志或相同站点标志。
在操作706中,对网络消息进行解析或以其他方式解码,以确定由网络消息指示的http服务器应用的类型、由网络消息指示的web应用的类型以及由网络消息指示的解释语言的类型中的一个或多个。http服务器应用的类型表示传输收到的网络消息的http服务器应用。在一些实施例中,该类型标识了http服务器应用的名称(例如Apache、互联网信息服务器(IIS)、Sun Java系统web服务器、nginx、googleweb服务器(GWS)等),和/或http服务器应用的版本(例如1.0、1.3等)。解释语言的类型表示用于实现web服务器的语言。例如,解释语言的类型在一些实施例中标识了解释语言是PHP、C#、Ruby、Python等。web应用的类型标识了生成网络消息的web应用。例如,web应用的类型标识了例如上面就图2讨论的web应用204。web应用的类型可以包括web应用的名称和/或web应用的版本。图8提供了操作706的一个实施例。一般来说,所公开的实施例依靠对单个http头部的解析,和/或对web服务器计算机组件提供的内容进行基于签名的匹配,以标识特定的web服务器计算机组件,例如http服务器、web应用、脚本或解释语言、框架、库和web服务器的其他属性。如上所述,一些实施例维护一个或多个签名类型,例如主签名(例如,在一些示例实施例中由主签名表431定义)URL序列签名(例如。在一些实施例中由URL签名表351定义)、DOM签名(例如,在一些示例实施例中由DOM签名表361定义)、基于内容的签名(例如,在一些示例实施例中由内容签名表391定义)或JavaScript对象签名(例如,在一些示例实施例中由JavaScript对象表421定义)。
在一些实施例中,JavaScript对象表421定义了被注入到从web服务器计算机检索的文档中的JavaScript表达(例如,由从web服务器计算机接收的一个或多个网络消息定义)。当注入的JavaScript表达式被执行时,它查询其运行时环境的一个或多个属性或参数,并将这些信息反馈给所披露的实施例。例如,在一些实施例中,注入的JavaScript确定框架或库的存在,和/或框架或库的版本(如果存在)。
如果这些一个或多个签名与经由一个或多个网络消息从web服务器计算机获得的内容相匹配,则它们确定web服务器计算机所使用的特定组件。如上文关于主签名表431的描述,一些签名通过被结构化为多层次来实现条件逻辑。在这些实施例中,多级签名首先在其根签名处进行评估(例如,在一些实施例中,根签名经由父签名字段435设置为表示根的预定义值,如零(0))来确定。如果该根签名评估为真值,则对任何子签名进行评估。任何子签名评估为真值,那么它们的子签名也被评估。这个过程重复进行,直到一个签名被评估为假值,或者一个没有子签名的签名被评估为真值。这样的签名定义了该组件,以及经由签名进一步标识的该组件的任何属性。在某些情况下,父签名确定了一个更广泛的组件类别(如一个特定的框架类型),而子签名确定了所确定的组件的一个特定版本(如特定框架类型的2.1版本)。
操作708的一些实施例对网络消息(和/或额外的网络消息)进行解码,以标识上文关于图5讨论的任何一个或多个特征。
在操作708中,基于操作706的确定生成风险得分。操作708的一些实施例将组件得分分配给在操作706中确定的每个数据。然后根据组件得分确定风险得分。在一些实施例中,每个组件得分是基于类似于上面关于图3B讨论的风险得分表396的结构来确定的。换句话说,这些实施例在特定的web服务器计算机组件和由特定组件引入的风险等级之间保持一种映射关系。各种实施例可以将组件的得分汇总,例如,经由加法或乘法来确定风险得分。在一些实施例中。一些实施例将不同的权重分配给不同的组件得分,风险得分根据其分配的权重对每个组件得分进行折扣。下面将结合图7讨论操作708的一个实施例。操作708的一些实施例基于上文讨论的由操作704检测的缓存文件信息确定或调整风险得分。
在操作710中,标识安全策略。在一些实施例中,安全策略是基于正在执行方法700的账户、组或设备中的一个或多个来标识的。例如,如关于图6所讨论的,可以为特定账户(例如,经由账户策略表642)和/或特定组(例如,经由组策略表632)定义策略。一些实施例首先检查是否为一个账户定义了策略。在一些实施例中,在一个账户下建立一个会话,该会话执行方法700。如果为账户定义了策略(例如,经由账户策略表642),则在操作710中确定该策略。如果没有为账户确定策略,一些实施例然后检查组策略(例如,经由组策略表632和/或组表612以确定账户属于哪个组或哪些组)。
所标识的安全策略指示一个或多个准则,这些准则被应用于风险得分和/或组件得分以确定如下所述的动作。
在操作712中,基于风险得分和所标识的安全策略确定动作。例如,如上文关于图6的讨论,一些实施例将动作与策略的一个或多个准则相关联(例如,经由与由策略标识符字段624定义的策略相关联的准则字段628)。如果满足一个或多个准则,则通过操作714执行确定的动作(例如,在一些实施例中,对于评估为真值的准则(由字段628定义),动作由动作字段630标识)。
动作可以包括,在各种实施例中,阻止对位于网站上的资源的访问,生成确认应尝试访问的提示或显示控制,其中提示显示与访问相关的一个或多个风险指示符,或其他动作。在一些实施例中,该动作包括显示或导致显示上述关于图4A和/或图4B的任何一个或多个用户界面。在一些实施例中,用户界面的显示是以由安全策略和风险得分定义的准则为条件的,在一些实施例中,风险得分是由准则评估的。
在一些实施例中,该动作是简单地提交或以其他方式允许客户端设备或执行方法700的任何设备进一步处理来自web服务器的数据。一些实施例仅阻止由http响应提供的页面的一部分。例如,一些实施例检测与由网络消息(例如106a-d)之一定义的特定http框架(诸如iframe)相关联的风险。一些实施例阻止包括在被标识的框架中的数据被执行设备进一步处理,但是允许页面的其他部分被进一步处理和/或显示。
在操作714完成后,方法700移动到结束操作716。
方法700的一些实施例将确定的风险得分写入web服务器风险数据存储中。如上所述,web服务器风险数据存储可经由网络(诸如在一些实施例中的互联网)访问,并提供与其他设备共享web服务器风险信息。在一些实施例中,不仅在操作708中确定的风险得分被写入web服务器风险数据存储,而且用于生成风险得分的中间信息也被写入。例如,在各种实施例中,将上文关于图5讨论的一个或多个web服务器特征写入web服务器风险数据存储。在一些实施例中,操作708的风险得分所依据的中间得分也被写到web服务器风险数据存储。例如,在一些实施例中,由上面讨论的模块308a-g计算的任何中间得分被写到web服务器风险数据存储。类似地,如下文所讨论的,下面关于图8讨论的第一得分、第二得分或第三得分中的任何一个或多个被写入web服务器风险数据存储。
图8是用于确定风险得分的示例方法的流程图。在一些实施例中,下面关于图7讨论的一个或多个功能由硬件处理电路系统(例如下文讨论的处理器902)执行。在一些实施例中,存储在电子存储器(例如下文讨论的904和/或906)中的指令(例如下文讨论的指令924)配置硬件处理电路系统以执行下文讨论的一个或多个功能。在一些实施例中,下面关于图7讨论的一个或多个功能是由客户端设备(例如客户端设备102a或客户端设备102b)和/或由扩展(例如下面关于图2讨论的扩展206)执行。上面关于图7讨论的操作708的一些实施例包括下面关于图8和方法800讨论的一个或多个功能。
在启动操作802之后,方法800移动到操作804,其中确定http服务器应用的类型的第一得分。例如,如上文关于图1、图2、图3B、图3C和/或图5,一些实施例解析或以其他方式解码从web服务器计算机接收的一个或多个网络消息,以确定与执行方法800的设备通信的http服务器应用的类型。某些类型的http服务器(例如http服务器的名称(诸如Apache或IIS)和/或http服务器的版本)比其他类型的http服务器更脆弱。
例如,如上文关于图3B和/或图3C的讨论,在一些实施例中,一个或多个URL、DOMxpath模式、JavaScript对象或基于内容的签名被至少一些公开的实施例采用以标识web服务器计算机组件,诸如http服务器应用程序的类型。例如,在一些实施例中,由内容签名表(例如,内容签名表391)定义的内容签名被用来标识web服务器应用的类型。一些实施例针对从web服务器接收的一个或多个网络消息评估一个或多个正则表达式,以确定为网页服务并在web服务器计算机上运行的web服务器的类型。
操作804的一些实施例查阅漏洞数据存储(例如,漏洞数据存储120)以确定http服务器应用的类型的相对漏洞,并且将第一得分分配给基于相对漏洞的值。
在操作806中,确定web应用的类型的第二得分。如上所述,一些实施例解析或以其他方式解码从web服务器(例如,web服务器应用208和/或web服务器计算机104)接收的网络消息,以确定产生该网络消息的web应用的类型。一些实施例利用URL签名来确定web应用的类型。如上所述,在一些实施例中,漏洞数据存储定义了URL签名,该签名定义了由特定web应用检索的URL序列。一些公开的实施例监测由web应用获取或以其他方式接收的URL序列,并将监测或观察到的序列与已知web应用类型的URL序列(例如,由URL签名表351和URL序列表371定义)相比较。在一些实施例中,URL序列足够具体,不仅可以定义web应用的类型,还可以定义web应用的特定版本或应用的版本范围。例如,特定web应用的一个或多个版本表现出特定的URL排序行为,而该特定web应用的其他一个或多个版本表现出有些不同的URL排序行为。web应用的URL检索的类型、顺序、甚至时间之间的这些差异被至少一些公开的实施例用来标识web应用的类型和/或其版本。
一些实施例维护漏洞数据存储(例如,漏洞数据存储120),该漏洞数据存储将不同类型的web应用映射为不同的安全风险相对等级(例如,在一些实施例中经由风险评分表396)。然后,一些实施例基于确定的与该类型的web应用(例如,名称和/或版本)的web应用相关的相对风险等级,将第二得分分配给与特定的http请求和/或响应相关的网络应用的类型。
在操作808中,确定由web应用(操作806的)使用的解释语言的类型的第三得分。在一些实施例中,通过解码X-Powered-By http头部字段和/或X-Aspnet版本http头部字段来确定被解释语言的类型。一些实施例通过检查由web应用检索的URL的文件扩展类型来确定被解释语言的类型。例如,如果一个或多个URL引用具有.php扩展名的文件,一些公开的实施例得出结论,解释语言的类型是php。如上所述,一些实施例查阅漏洞数据存储,以确定与所确定的解释语言类型相关的安全风险等级(例如,在一些实施例中经由参考风险评分表396)。然后在操作808中基于该安全风险等级确定第三得分。
操作812确定与上面讨论的第一、第二和第三得分中的每一个相关联的权重。在一些实施例中,该权重基于从配置数据存储中收到的信息而动态更新。
操作814基于一个或多个安全指示符来确定风险得分。例如,上面讨论的第一、第二和第三得分中的每一个都被认为是安全指示符。因此,一些实施例基于第一、第二和第三得分中的一个或多个,以及它们的相关权重来确定风险得分。一些实施例将每个得分按其相关权重进行折算,然后汇总折算后的得分。其他实施例利用汇总第一、第二和第三得分的备选方法。
在至少一些实施例中还考虑了其他安全指示符。例如,一些实施例基于上文关于图5讨论的一个或多个标题和/或特征和/或属性来确定风险得分。
一些实施例分析从web服务器计算机接收的一个或多个网络消息,以标识一个或多个DOM xpath模式。一些实施例将网络消息的DOM xpath模式与DOM xpath模式的序列相比较。如果网络消息的模式与已知的框架、库、web应用或web服务器计算机的其他特征的模式相匹配,则生成与标识的特征相关的风险得分。
一些实施例检查包括在http响应中的推荐者策略和/或特征策略指示。在这些方面,风险得分是基于引用方(referrer)策略是否被设置为不安全的url。在一些实施例中,操作814还基于http响应头部或由http响应定义并由方法800分析的页面是否指示对执行设备(例如客户端设备)的麦克风和/或摄像头的访问请求来调整风险得分。一些实施例基于包括在http响应消息中的HSTS头部是否指定使用加密连接来调整风险得分。一些实施例基于包括在http响应消息中的X-XSS保护头部是否启用XSS过滤器来调整风险得分。
一些实施例分析包括在来自web服务器的http响应中的文档对象模型(DOM)内容,并基于DOM内容调整风险得分。如上所述,一些实施例基于由web服务器提供的数字证书的特征(例如,上文就图5讨论的任何证书属性和证书特征信息525)调整风险得分。
在操作814完成后,方法800移动到结束操作816。
图9示出了示例机器900的框图,在该机器上可以执行本文讨论的任何一个或多个技术(例如,方法)。在备选实施例中,机器900可以作为独立的设备操作,或者与其他机器连接(例如,联网)。在联网的部署中,机器900可以以服务器机器、客户端机器或在服务器-客户端网络环境中两者的身份操作。在一个示例中,机器900可以作为对等(P2P)(或其他分布式)网络环境中的对等机器。机器900是个人电脑(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、移动电话、智能手机、网络设备、网络路由器、交换机或网桥、服务器电脑、数据库、会议室设备、或任何能够执行指定由该机器采取的动作的指令(顺序或其他)的机器。在各种实施例中,机器900可以执行上述关于图1-图8的一个或多个过程。此外,虽然只说明了一台机器,但术语“机器”也应被视为包括单独或联合执行一组(或多组)指令以执行本文讨论的任何一个或多个方法的任何机器的集合,例如云计算、软件即服务(SaaS)、其他计算机集群配置。
如本文所述,示例可包括或可在逻辑或若干组件、模块或机制(以下均称为“模块”)上操作。模块是能够执行指定操作的有形实体(例如,硬件),并且以特定方式配置或布置。在示例中,电路以特定的方式被布置(例如,内部或相对于外部实体(诸如其他电路))为一个模块。在示例中,一个或多个计算机系统(例如,独立的、客户机或服务器计算机系统)或一个或多个硬件处理器的全部或部分被固件或软件(例如,指令、应用部分或应用)配置为一个模块,该模块的操作是为了执行特定操作。在示例中,该软件可以驻留在非临时性计算机可读存储介质或其他机器可读介质上。在示例中,该软件当由模块的底层硬件执行时,使硬件执行指定的操作。
因此,术语“模块”被理解为包括有形的实体,无论是物理构造的实体、具体配置的实体(例如,硬接线),还是临时(例如,过渡)配置的实体(例如,编程),以便以特定方式操作或执行本文所述的任何操作的部分或全部。考虑到模块被临时配置的示例,每个模块不需要在任何一个时间点上被实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下,通用硬件处理器在不同时间被配置为各自不同的模块。软件可以相应地配置硬件处理器,例如,在一个时间实例中构成特定的模块,并在另一个时间实例中构成不同的模块。
机器(例如,计算机系统)900可以包括硬件处理器902(例如,中央处理器(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器904和静态存储器906,其中一些或全部可以经由互链接(例如,总线)908彼此通信。机器900可进一步包括显示单元910、字母数字输入设备912(例如,键盘)和用户界面(UI)导航设备914(例如,鼠标)。在示例中,显示单元910、输入设备912和UI导航设备914是触摸屏显示器。机器900可以另外包括存储设备(例如,驱动单元)916、信号产生设备918(例如,扬声器)、网络接口设备920以及一个或多个传感器921,诸如全球定位系统(GPS)传感器、罗盘、加速度计或另一个传感器。机器900可以包括输出控制器928,诸如串行(例如通用串行总线(USB)、并行或其他有线或无线(例如红外(IR)、近场通信(NFC)等)连接以通信或控制一个或多个外围设备(例如打印机、读卡器等)。
存储设备916可以包括机器可读介质922,其上存储有体现或由本文描述的任何一个或多个技术或功能利用的一组或多组数据结构或指令924(例如,软件)。指令924也可以完全或至少部分地驻留在主存储器904内、静态存储器906内,或在机器900执行其时驻留在硬件处理器902内。在示例中,硬件处理器902、主存储器904、静态存储器906或存储设备916的一个或任何组合可以构成机器可读介质。
虽然机器可读介质922被说明为单一介质,但是术语“机器可读介质”可以包括被配置为存储一个或多个指令924的单一介质或多个介质(例如,集中式或分布式数据库,和/或相关的缓存和服务器)。
术语“机器可读介质”可包括能够存储、编码或承载用于由机器900执行的指令并且使机器900执行本公开内容的任何一个或多个技术的任何介质,或者能够存储、编码或承载由此类指令使用的或与此类指令相关的数据结构的任何介质。非限制性的机器可读介质的示例可以包括固态存储器,以及光学和磁性介质。机器可读介质的具体示例可包括:非易失性存储器,诸如半导体存储器设备(例如,电子可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存设备;磁性磁盘,诸如内部硬盘和可移动磁盘;磁光磁盘;随机存取存储器(RAM);固态驱动器(SSD);以及CD-ROM和DVD-ROM磁盘。在一些示例中,机器可读介质可以包括非暂时性机器可读介质。在一些示例中,机器可读介质可以包括不是短暂传播信号的机器可读介质。
指令924还可以通过网络接口设备920使用传输介质在通信网络926上传输或接收。机器900可以利用若干传输协议(例如,帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等中的任何一种)与一个或多个其他机器通信。示例的通信网络可包括局域网(LAN)、广域网(WAN)、分组数据网络(例如互联网)、移动电话网络(例如蜂窝网络)、普通电话(POTS)网络和无线数据网络(例如电气和电子工程师协会(IEEE)802.11系列标准,称为IEEE 802.16系列标准,称为)、IEEE802.15.4系列标准、长期演进(LTE)系列标准、通用移动电信系统(UMTS)系列标准、对等(P2P)网络等。在示例中,网络接口设备920可以包括一个或多个物理插孔(例如,以太网、同轴或电话插孔)或一个或多个天线以连接到通信网络926。在一个示例中,网络接口设备920可以包括多个天线,以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一个进行无线通信。在一些实例中,网络接口设备920可以使用多用户MIMO技术进行无线通信。
如本文所述,示例可以包括或可以操作逻辑或若干组件、模块或机制。模块是能够执行指定操作的有形实体(例如,硬件),并且以某种方式配置或安排。在示例中,电路以特定的方式排列(例如,内部或相对于外部实体(诸如其他电路))为模块。在示例中,一个或多个计算机系统(例如,独立、客户端或服务器计算机系统)或一个或多个硬件处理器的全部或部分被固件或软件(例如,指令、应用部分或应用)配置为模块,该模块运行以执行特定操作。在示例中,该软件可以驻留在机器可读介质上。在一个示例中,该软件在被模块的底层硬件执行时,使硬件执行指定的操作。
示例1是由客户端设备执行的方法,包括:从web服务器接收网络消息;基于该网络消息,确定web服务器的超文本传输协议(http)服务器应用的类型、web应用的类型和解释语言的类型;基于该确定,生成web服务器的风险得分;标识安全策略;基于所标识的安全策略和风险得分,确定动作;以及执行该确定的动作。
在示例2中,示例1的主题可选地包括其中确定web应用的类型包括:标识统一资源定位器(URL)的序列,将该URL序列与已知web应用的URL签名相比较;基于该比较,确定匹配的URL签名;以及基于该匹配的URL签名,确定web应用的类型。
在示例3中,示例1-2中的任何一个或多个的主题可选地包括基于网络消息确定客户端可执行框架或库,其中风险得分的生成进一步基于确定的客户端可执行框架或库。
在示例4中,示例1-3中的任何一个或多个的主题可选地包括基于包括网络消息的一个或多个网络消息,来标识文档对象模型(DOM)xpath模式的序列;将DOM xpath模式的序列与已知的插件、主题或扩展的DOM签名相比较,基于该比较,确定匹配的DOM签名;以及基于该匹配的DOM签名,确定插件、主题。
在示例5中,示例1-4中的任何一个或多个的主题可选地包括将表达式注入由网络消息定义的文档中;使表达式被评估;以及基于评估,确定插件、主题或库的存在或版本。
在示例6中,示例1-5中的任何一个或多个的主题可选地包括解码网络消息的服务器头部;基于解码的服务器头部,第二次确定web服务器的操作系统,其中风险得分的生成进一步基于第二次确定。
在示例7中,示例1-6中的任何一个或多个的主题可选地包括其中执行确定的动作包括在客户端设备上显示用户界面,该用户界面被配置为显示从风险得分得出的信息。
在示例8中,示例7的主题可选地包括其中用户界面被配置为显示控件,该控件被配置为提交网络消息以便由客户端设备进一步处理。
在示例9中,示例8的主题可选地包括基于安全策略,将用户界面配置为显示控件。
在示例10中,示例1-9中的任何一个或多个的主题可选地包括其中执行确定的动作包括阻断由客户端设备对网络消息的进一步处理。
在示例11中,示例10的主题可选地包括阻断与网络消息相关的http帧。
在示例12中,示例1-11中的任何一个或多个的主题可选地包括确定web应用的版本;以及将web应用的版本与漏洞数据存储相比较,其中风险得分进一步基于该比较。
在示例13中,示例1-12中的任何一个或多个的主题可选地包括其中网络消息是http响应消息,并且风险得分基于http响应消息的安全指示符,所述安全指示符包括内容安全策略头部、X-帧-选项头部、X-XSS保护头部、服务器头部、http严格传输安全(HSTS)头部、X-内容-类型-选项头部、引用方策略或特征策略中的一个或多个。
在示例14中,示例13的主题可选地包括其中安全指示符指示http响应是否禁用了mime-嗅探,其中安全指示符指示引用方策略是否被设置为不安全url,http响应头是否指示访问麦克风或相机的请求,HSTS头是否指定使用加密连接,X-XSS保护头部是否启用XSS过滤器。
在示例15中,示例13-14中的任何一个或多个的主题可选地包括其中安全指示符还基于http响应消息中包括的文档对象模型(DOM)内容。
在示例16中,示例13-15中的任何一个或多个的主题可选地包括其中安全指示符还基于由http响应消息标识的数字证书。
在示例17中,示例1-16中的任何一个或多个的主题可选地包括由客户端设备拦截http请求;以及由客户端设备并基于http请求中包括的缓存文件确定第二安全指示符,其中动作基于第二安全指示符进一步被确定。
在示例18中,示例17的主题可选地包括其中第二安全指示符基于缓存文件的安全标志、http_only标志、会话标志或相同站点标志中的一个或多个被确定。
示例19是一种系统,包括:硬件处理电路系统;存储指令的一个或多个硬件存储器,该指令在执行时将硬件处理电路系统配置为执行包括以下项的操作:接收来自web服务器的网络消息;基于该网络消息,确定web服务器的超文本传输协议(http)服务器应用的类型、web应用的类型以及解释语言的类型;基于该确定,生成web服务器的风险得分;标识安全策略;基于该标识的安全策略和风险得分,确定动作;以及执行该确定动作。
在示例20中,示例19的主题可选地包括其中确定web应用的类型包括:标识统一资源定位器(URL)的序列,将URL的序列与已知web应用的URL签名相比较;基于比较,确定匹配的URL签名;以及基于匹配的URL签名,确定web应用的类型。
在示例21中,示例19-20中的任一个或多个的主题可选地包括操作还包括:基于网络消息确定客户端可执行框架或库,其中,风险得分的生成还基于确定的客户端可执行框架或库。
在示例22中,示例19-21中的任何一个或多个的主题可选地包括操作还包括:基于包括网络消息的一个或多个网络消息,确定文档对象模型(DOM)xpath模式的序列;将DOMxpath模式的序列与已知插件、主题或扩展的DOM签名相比较,基于该比较,确定匹配的DOM签名;以及基于该匹配的DOM签名,确定插件、主题。
在示例23中,示例19-22中的任何一个或多个的主题可选地包括操作还包括:将表达式注入由网络消息定义的文档中;使表达式被评估;以及基于评估,确定插件、主题或库的存在或版本。
在示例24中,示例19-23中的任何一个或多个的主题可选地包括操作还包括:解码网络消息的服务器头部;基于解码的服务器头部,第二次确定web服务器的操作系统,其中,风险得分的生成还基于第二次确定。
在示例25中,示例19-24中的任何一个或多个的主题可选地包括其中执行确定的动作包括在客户端设备上显示用户界面,该用户界面被配置为显示从风险得分得出的信息。
在示例26中,示例25的主题可选地包括其中用户界面被配置为显示控件,该控件被配置为提交网络消息以便由客户端设备进一步处理。
在示例27中,示例26的主题可选地包括其中操作还包括基于安全策略将用户界面配置为显示控件。
在示例28中,示例19-27中的任何一个或多个的主题可选地包括其中执行确定的操作包括阻止由客户端设备对网络消息的进一步处理。
在示例29中,示例28的主题可选地包括操作还包括阻断与网络消息相关的http帧。
在示例30中,示例19-29中的任何一个或多个的主题可选地包括操作还包括:确定web应用的版本;以及将web应用的版本与漏洞数据存储相比较,其中风险得分还基于该比较。
在示例31中,示例19-30中的任何一个或多个的主题可选地包括其中网络消息是http响应消息,并且风险得分基于http响应消息的安全指示符,该安全指示符包括内容安全策略头部、X-帧选项头部、X-XSS保护头部、服务器头部、http严格传输安全(HSTS)头部、X-内容类型选项头部、引用方策略或特征策略中的一个或多个。
在示例32中,示例31的主题可选地包括其中安全指示符指示http响应是否禁用mime嗅探、引用方策略是否设置为不安全url、http响应头部是否指示访问麦克风或相机的请求、HSTS头部是否指定使用加密连接、或X-XSS保护头部是否启用XSS过滤器中的一项或多项。
在示例33中,示例31-32中的任何一个或多个的主题可选地包括其中安全指示符还基于http响应消息中包括的文档对象模型(DOM)内容。
在示例34中,示例31-33中的任何一个或多个的主题可选择地包括其中安全指示符还基于由http响应消息标识的数字证书。
在示例35中,示例19-34中的任何一个或多个的主题可选地包括操作还包括:由客户端设备拦截http请求;以及基于http请求中包括的缓存文件由客户端设备确定第二安全指示符,其中动作还基于第二安全指示符被确定。
在示例36中,示例35的主题可选地包括其中第二安全指示符基于缓存文件的安全标志、http_only标志、会话标志或相同站点标志中的一个或多个被确定。
示例37是一种非临时性计算机可读存储介质,包括在被执行时配置硬件处理电路系统以执行包括以下项的操作的指令:从web服务器接收网络消息;基于网络消息确定web服务器的超文本传输协议(http)服务器应用的类型、web应用的类型和解释语言的类型;基于确定生成web服务器的风险得分;标识安全策略;基于标识的安全策略和风险得分确定动作;以及执行确定的动作。
在示例38中,示例37的主题可选地包括其中确定web应用的类型包括:标识统一资源定位器(URL)的序列,将该URL序列与已知web应用的URL签名相比较;基于该比较,确定匹配的URL签名;以及基于该匹配的URL签名,确定web应用的类型。
在示例39中,示例37-38中的任何一个或多个的主题可选地包括操作还包括:基于网络消息,确定客户端可执行框架或库,其中,风险得分的生成还基于确定的客户端可执行框架或库。
在示例40中,示例37-39中的任何一个或多个的主题可选地包括操作还包括:基于包括网络消息的一个或多个网络消息,确定文档对象模型(DOM)xpath模式的序列;将DOMxpath模式的序列与已知插件、主题或扩展的DOM签名相比较,基于该比较,确定匹配的DOM签名;以及基于该匹配的DOM签名,确定插件、主题。
在示例41中,示例37-40中的任何一个或多个的主题可选地包括操作还包括:将表达式注入由网络消息定义的文档中;使表达式被评估;以及基于评估,确定插件、主题或库的存在或版本。
在示例42中,示例37-41中的任何一个或多个的主题可选地包括操作还包括:解码网络消息的服务器头部;基于解码的服务器头部,第二次确定web服务器的操作系统,其中,风险得分的生成还基于第二次确定。
在示例43中,示例37-42中的任何一个或多个的主题可选地包括其中执行确定的动作包括在客户端设备上显示用户界面,该用户界面被配置为显示从风险分数得出的信息。
在示例44中,示例未定义的主题可选地包括其中用户界面被配置为显示控件,该控件被配置为提交网络消息以便由客户端设备进一步处理。
在示例45中,示例44的主题可选地包括操作还包括基于安全策略将用户界面配置为显示控件。
在示例46中,示例37-45中的任何一个或多个的主题可选地包括其中执行确定的操作包括阻断由客户端设备对网络消息的进一步处理。
在示例47中,示例46的主题可选地包括操作还包括阻断与网络消息相关的http帧。
在示例48中,示例37-47中的任何一个或多个的主题可选地包括操作还包括:确定web应用的版本;以及将web应用的版本与漏洞数据存储相比较,其中风险得分还基于该比较。
在示例49中,示例37-48中的任何一个或多个的主题可选地包括其中网络消息是http响应消息,并且风险得分基于http响应消息的安全指示符,该安全指示符包括内容安全策略头部、X-帧-选项头部、X-XSS保护头部、服务器头部、http严格传输安全(HSTS)头部、X-内容类型-选项头部、引用方策略或特征策略中的一个或多个。
在示例50中,示例49的主题可选地包括其中安全指示符指示http响应是否禁用了mime嗅探,其中安全指示符指示引用方策略是否被设置为不安全url,http响应头部是否指示访问麦克风或照相机的请求,HSTS头部是否指定使用加密连接,X-XSS保护头部是否启用XSS过滤器的一项或多项。
在示例51中,示例50的主题可选地包括其中安全指示符还基于http响应消息中包括的文档对象模型(DOM)内容。
在示例52中,示例50-51中的任何一个或多个的主题可选地包括其中安全指示符还基于由http响应消息标识的数字证书。
在示例53中,示例37-52中的任何一个或多个的主题可选地包括操作还包括。由客户端设备拦截http请求;以及基于包括在http请求中的缓存文件由客户端设备确定第二安全指示符,其中动作还基于第二安全指示符被确定。
在示例54中,示例53的主题可选地包括其中第二安全指示符基于缓存文件的安全标志、http_only标志、会话标志或相同站点标志中的一个或多个被确定。
因此,术语“模块”被理解为包括有形的实体,无论是物理构造的实体、具体配置的实体(例如,硬接线),还是临时(例如,过渡性)配置的实体(例如,编程),以便以指定的方式操作或执行本文所述的任何操作的部分或全部。考虑到模块被临时配置的示例,每个模块不需要在任何一个时间点上被实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下,通用硬件处理器在不同时间被配置为各自不同的模块。软件可以相应地配置硬件处理器,例如,在一个时间实例中构成特定的模块,并在另一个时间实例中构成不同的模块。
各种实施例完全或部分地以软件和/或固件实现。该软件和/或固件可以采取包含在非暂时性计算机可读存储介质中或上的指令的形式。然后,这些指令可由一个或多个处理器读取和执行,以实现本文所述操作的性能。这些指令以任何合适的形式存在,例如但不限于源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。这种计算机可读介质可以包括任何有形的非暂时性介质,用于以一种或多种计算机可读的形式存储信息,例如但不限于只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存等。
Claims (15)
1.一种由客户端设备执行的方法,包括
从web服务器接收网络消息;
基于所述网络消息,确定所述web服务器的超文本传输协议(http)服务器应用的类型、web应用的类型以及解释语言的类型;
基于所述确定,生成所述web服务器的风险得分;
标识安全策略;
基于所标识的安全策略和所述风险得分,确定动作;以及
执行所确定的动作。
2.根据权利要求1所述的方法,其中确定所述web应用的类型包括:
标识统一资源定位器(URL)的序列,将所述URL的序列与已知web应用的URL签名相比较;
基于所述比较,确定匹配的URL签名;以及
基于所述匹配的URL签名,确定所述web应用的类型。
3.根据权利要求1所述的方法,还包括:
基于包括所述网络消息的一个或多个网络消息,标识文档对象模型(DOM)xpath模式的序列;
将所述DOM xpath模式的序列与已知插件、主题或扩展的DOM签名相比较;
基于所述比较,确定匹配的DOM签名;以及
基于所述匹配的DOM签名,确定插件、主题。
4.一种计算机可读存储介质,包括指令,所述指令在被执行时配置硬件处理电路系统执行操作,所述操作包括:
从web服务器接收网络消息;
基于所述网络消息,确定所述web服务器的超文本传输协议(http)服务器应用的类型、web应用的类型以及解释语言的类型;
基于所述确定,生成所述web服务器的风险得分;
标识安全策略;
基于所标识的安全策略和所述风险得分,确定动作;以及
执行所确定的动作。
5.根据权利要求4所述的计算机可读存储介质,其中确定所述web应用的类型包括:
标识统一资源定位器(URL)的序列,将所述URL的序列与已知web应用的URL签名相比较;
基于所述比较,确定匹配的URL签名;以及
基于所述匹配的URL签名,确定所述web应用的类型。
6.一种系统,包括:
硬件处理电路系统;
一个或多个硬件存储器,存储指令,所述指令在被执行时配置硬件处理电路系统执行操作,所述操作包括:
从web服务器接收网络消息;
基于所述网络消息,确定所述web服务器的超文本传输协议(http)服务器应用的类型、web应用的类型以及解释语言的类型;
基于所述确定,生成所述web服务器的风险得分;
标识安全策略;
基于所标识的安全策略和所述风险得分,确定动作;以及
执行所确定的动作。
7.根据权利要求6所述的系统,其中确定所述web应用的类型包括:
标识统一资源定位器(URL)的序列,将所述URL的序列与已知web应用的URL签名相比较;
基于所述比较,确定匹配的URL签名;以及
基于所述匹配的URL签名,确定所述web应用的类型。
8.根据权利要求6所述的系统,所述操作还包括:
基于所述网络消息,确定客户端可执行框架或库,其中所述风险得分的所述生成还基于所确定的客户端可执行框架或库。
9.根据权利要求6所述的系统,所述操作还包括:
基于包括所述网络消息的一个或多个网络消息,标识文档对象模型(DOM)xpath模式的序列;
将所述DOM xpath模式的序列与已知插件、主题或扩展的DOM签名相比较;
基于所述比较,确定匹配的DOM签名;以及
基于所述匹配的DOM签名,确定插件、主题或库。
10.根据权利要求6所述的系统,所述操作还包括:
将表达式注入由所述网络消息定义的文档中;
使所述表达式被评估;
基于所述评估,确定插件、主题或库的存在或版本。
11.根据权利要求6所述的系统,所述操作还包括:
解码所述网络消息的服务器头部;
基于所解码的服务器头部,第二次确定所述web服务器的操作系统,其中所述风险得分的所述生成还基于所述第二次确定。
12.根据权利要求6所述的系统,其中执行所确定的动作包括:使得显示用户界面,所述用户界面被配置为显示从所述风险得分导出的信息。
13.根据权利要求6所述的系统,所述操作还包括:
确定该所述web应用的版本;以及
将所述web应用的所述版本与漏洞数据存储相比较,
其中所述风险得分还基于所述比较。
14.根据权利要求6所述的系统,其中所述网络消息是http响应消息,并且所述风险得分基于所述http响应消息的安全指示符,所述安全指示符包括以下一项或多项:内容安全策略头部、X帧选项头部、X-XSS保护头部、服务器头部、http严格传输安全(HSTS)头部、X内容类型选项头部、引用方策略或特征策略。
15.根据权利要求14所述的系统,其中所述安全指示符指示以下一项或多项:所述http响应是否被mime嗅探禁用、所述引用方策略是否被设置为不安全url、所述http响应头部是否指示访问麦克风或相机的请求、所述HSTS头部是否指定加密连接的使用、或所述X-XSS保护头部是否启用XSS过滤器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/883,641 US11411918B2 (en) | 2020-05-26 | 2020-05-26 | User interface for web server risk awareness |
US16/883,641 | 2020-05-26 | ||
PCT/US2021/030982 WO2021242496A1 (en) | 2020-05-26 | 2021-05-06 | User interface for web server risk awareness |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115917541A true CN115917541A (zh) | 2023-04-04 |
Family
ID=76270036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180037926.6A Pending CN115917541A (zh) | 2020-05-26 | 2021-05-06 | web服务器风险认识的用户界面 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11411918B2 (zh) |
EP (1) | EP4158511A1 (zh) |
CN (1) | CN115917541A (zh) |
WO (1) | WO2021242496A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11489908B1 (en) * | 2021-06-25 | 2022-11-01 | Button, Inc. | Web traffic routing |
US20230074934A1 (en) * | 2021-09-09 | 2023-03-09 | Verizon Patent And Licensing Inc. | Http/3 and quic-based device and application characterization |
US20230252133A1 (en) * | 2022-02-10 | 2023-08-10 | Cisco Technology, Inc. | Application Security Context from Traces and Snapshots |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE414943T1 (de) | 2000-03-03 | 2008-12-15 | Ibm | System zur bestimmung von schwächen von web- anwendungen |
US20030225885A1 (en) * | 2002-05-31 | 2003-12-04 | Comverse, Ltd. | Caching for limited bandwidth networks |
US20090119769A1 (en) * | 2007-11-05 | 2009-05-07 | Microsoft Corporation | Cross-site scripting filter |
US8255491B1 (en) * | 2008-01-28 | 2012-08-28 | Comscore, Inc. | Determining a particular type of wireless device to be emulated |
CN101478755B (zh) * | 2009-01-21 | 2011-05-11 | 中兴通讯股份有限公司 | 一种网络安全的http协商的方法及其相关装置 |
US8683584B1 (en) * | 2009-04-25 | 2014-03-25 | Dasient, Inc. | Risk assessment |
US9154364B1 (en) | 2009-04-25 | 2015-10-06 | Dasient, Inc. | Monitoring for problems and detecting malware |
US8856869B1 (en) | 2009-06-22 | 2014-10-07 | NexWavSec Software Inc. | Enforcement of same origin policy for sensitive data |
US8756684B2 (en) | 2010-03-01 | 2014-06-17 | Emc Corporation | System and method for network security including detection of attacks through partner websites |
US9268945B2 (en) | 2010-03-19 | 2016-02-23 | Contrast Security, Llc | Detection of vulnerabilities in computer systems |
US10241957B2 (en) * | 2012-02-06 | 2019-03-26 | Infosys Limited | Workload patterns for realistic load recreation in performance testing |
US8819772B2 (en) | 2012-06-25 | 2014-08-26 | Appthority, Inc. | In-line filtering of insecure or unwanted mobile device software components or communications |
US20150007330A1 (en) | 2013-06-26 | 2015-01-01 | Sap Ag | Scoring security risks of web browser extensions |
US9112912B1 (en) | 2014-01-23 | 2015-08-18 | Juniper Networks, Inc. | Security device for preemptively determining policies |
WO2015142697A1 (en) | 2014-03-15 | 2015-09-24 | Belva Kenneth F | Methods for determining cross-site scripting and related vulnerabilities in applications |
US9619655B2 (en) * | 2014-09-12 | 2017-04-11 | Salesforce.Com, Inc. | Cloud-based security profiling, threat analysis and intelligence |
CN104301302B (zh) * | 2014-09-12 | 2017-09-19 | 深信服网络科技(深圳)有限公司 | 越权攻击检测方法及装置 |
US9800602B2 (en) * | 2014-09-30 | 2017-10-24 | Shape Security, Inc. | Automated hardening of web page content |
US10284595B2 (en) | 2015-05-08 | 2019-05-07 | Citrix Systems, Inc. | Combining internet routing information with access logs to assess risk of user exposure |
US20160381061A1 (en) * | 2015-06-28 | 2016-12-29 | Check Point Software Technologies Ltd. | Proxy for mitigation of attacks exploiting misconfigured or compromised web servers |
US10693901B1 (en) * | 2015-10-28 | 2020-06-23 | Jpmorgan Chase Bank, N.A. | Techniques for application security |
US10891381B2 (en) | 2015-11-13 | 2021-01-12 | Micro Focus Llc | Detecting vulnerabilities in a web application |
US10769230B1 (en) * | 2015-12-07 | 2020-09-08 | Insightsquared, Inc. | Systems and methods for the creation, update and use of an event based search index in a networked computer environment using distributed agents |
BR112019002867A2 (pt) * | 2016-08-19 | 2019-05-14 | Sony Corporation | aparelho de processamento de informação, método de processamento de dados, e, aparelho cliente. |
US10503908B1 (en) * | 2017-04-04 | 2019-12-10 | Kenna Security, Inc. | Vulnerability assessment based on machine inference |
US10331535B1 (en) * | 2017-06-05 | 2019-06-25 | AppiSocial Co., Ltd. | Detecting discrepancy in mobile event tracking network |
US20190306145A1 (en) * | 2018-03-29 | 2019-10-03 | International Business Machines Corporation | Http header licensing in proxy systems |
US10846573B2 (en) * | 2018-07-31 | 2020-11-24 | Triangle Digital Ventures Ii, Llc | Detecting, redacting, and scoring confidential information in images |
US11178111B2 (en) * | 2018-11-28 | 2021-11-16 | International Business Machines Corporation | Licensing authority controlled modification of http headers in a proxy-based system |
US20200007571A1 (en) * | 2019-09-03 | 2020-01-02 | The Telecom Defense Limited Company | Web-based ss7 vulnerability scanning and notification apparatus and method thereof |
US11379577B2 (en) * | 2019-09-26 | 2022-07-05 | Microsoft Technology Licensing, Llc | Uniform resource locator security analysis using malice patterns |
US11334675B2 (en) * | 2019-10-31 | 2022-05-17 | Dell Products, L.P. | Systems and methods for supporting secure transfer of data between workspaces |
US12100280B2 (en) * | 2020-02-04 | 2024-09-24 | Tyco Fire & Security Gmbh | Systems and methods for software defined fire detection and risk assessment |
-
2020
- 2020-05-26 US US16/883,641 patent/US11411918B2/en active Active
-
2021
- 2021-05-06 WO PCT/US2021/030982 patent/WO2021242496A1/en active Application Filing
- 2021-05-06 EP EP21729990.8A patent/EP4158511A1/en active Pending
- 2021-05-06 CN CN202180037926.6A patent/CN115917541A/zh active Pending
-
2022
- 2022-06-28 US US17/851,809 patent/US11729145B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4158511A1 (en) | 2023-04-05 |
US11411918B2 (en) | 2022-08-09 |
US20210377217A1 (en) | 2021-12-02 |
US11729145B2 (en) | 2023-08-15 |
WO2021242496A1 (en) | 2021-12-02 |
US20220329567A1 (en) | 2022-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10521584B1 (en) | Computer threat analysis service | |
US10164993B2 (en) | Distributed split browser content inspection and analysis | |
US10574698B1 (en) | Configuration and deployment of decoy content over a network | |
US9667651B2 (en) | Compromised insider honey pots using reverse honey tokens | |
US9794276B2 (en) | Protecting against the introduction of alien content | |
US9294498B1 (en) | Online portal for improving cybersecurity risk scores | |
US9055093B2 (en) | Method, system and computer program product for detecting at least one of security threats and undesirable computer files | |
US8595803B2 (en) | Protection against malware on web resources utilizing scripts for content scanning | |
Unger et al. | Shpf: Enhancing http (s) session security with browser fingerprinting | |
Upathilake et al. | A classification of web browser fingerprinting techniques | |
US9681304B2 (en) | Network and data security testing with mobile devices | |
US11729145B2 (en) | User interface for web server risk awareness | |
US20090100518A1 (en) | System and method for detecting security defects in applications | |
EP3055773B1 (en) | Anomaly detection on web client | |
CN112703496B (zh) | 关于恶意浏览器插件对应用用户的基于内容策略的通知 | |
US9336396B2 (en) | Method and system for generating an enforceable security policy based on application sitemap | |
Chaudhari et al. | A survey on security and vulnerabilities of web application | |
US20220198055A1 (en) | Data owner controls in DLP | |
US10154052B1 (en) | Tracer cookies to detect web session compromise by insiders | |
Ying et al. | CSP adoption: current status and future prospects | |
Sentamilselvan et al. | Survey on cross site request forgery | |
Kuníková | Detekce síťových útoků analýzou HTTP informací | |
Policy | Same Origin Policy | |
Mitchell | Browser Security Model | |
Kunikova | Detection of network attacks using HTTP related information |
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 |