CN103890788B - 用于动态选择串分析算法的方法、系统和装置 - Google Patents

用于动态选择串分析算法的方法、系统和装置 Download PDF

Info

Publication number
CN103890788B
CN103890788B CN201280050002.0A CN201280050002A CN103890788B CN 103890788 B CN103890788 B CN 103890788B CN 201280050002 A CN201280050002 A CN 201280050002A CN 103890788 B CN103890788 B CN 103890788B
Authority
CN
China
Prior art keywords
string
string parsing
inquiry
parsing
selection
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
CN201280050002.0A
Other languages
English (en)
Other versions
CN103890788A (zh
Inventor
O.特里普
立石孝彰
M.皮斯托伊亚
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103890788A publication Critical patent/CN103890788A/zh
Application granted granted Critical
Publication of CN103890788B publication Critical patent/CN103890788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • 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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种用于动态选择串分析算法的方法可以以训练串分析模块的动态串分析处理机在教学环境中有效地处理从客户端应用接收的具有上下文元数据的串查询的子集开始。训练模块的有效性可以基于来自客户端应用的反馈。在训练完成时,可以合成串分析算法选择策略。串分析算法选择策略可以将子集中串查询的上下文与串分析算法的使用关连。当在操作环境中时,动态串分析处理机可以根据串分析算法选择策略动态地处理从客户端应用接收的具有上下文元数据的串查询。要用于串查询的串分析算法可以动态和独立地确定。

Description

用于动态选择串分析算法的方法、系统和装置
技术领域
本发明涉及软件分析领域。
背景技术
串分析是用来推断和分析软件应用的操作生成的串变量的内容的技术。串分析是用于检测和评估软件应用的安全脆弱性(vulnerability),如Web应用的跨站点脚本(XSS)脆弱性,或访问控制策略违反的特别有利的工具。
发明内容
本发明的一个方面可以包括一种用于动态地选择串分析算法的方法。当在教学环境中时,串分析模块的动态串分析处理机(handler)可以训练来有效地处理具有从客户端应用接收的上下文元数据的串查询的子集。动态串分析处理机可以以训练模式操作,动态串分析处理机的有效性可以基于来自客户端应用的反馈。串查询的子集可以代表预期将由操作环境中的客户端应用生成的串查询的范围(spectrum)。完成训练后,可以为客户端应用合成串分析算法选择策略。串分析算法选择策略可以基于在训练期间处理串查询的子集时,动态串分析处理机和客户端应用之间的交互。串分析算法选择策略可以将子集中串查询的上下文与串分析算法的使用相关连。当在操作环境中时,动态串分析处理机可以根据串分析算法选择策略动态地处理具有从客户端应用接收的上下文元数据的串查询。动态串分析处理机可以以生产(production)模式操作。用于串查询的串分析算法可以动态和独立地确定。
本发明的另一个方面可以包括一种用于动态地选择串分析算法的系统。这种系统可以包括客户端应用和串分析模块。客户端应用可以被配置为发出包括要求串分析的串查询和相关联的上下文元数据的查询请求。串分析模块可以被配置为客户端应用提供响应于发出的查询请求的串分析的结果。串分析模块还可以包括串分析算法和动态串分析处理机。串分析算法可以代表不同的串分析技术。动态串分析处理机可以被配置为在训练模式下时,利用试探性(heuristic)策略基于在教学环境中与客户端应用的交互合成串分析算法选择策略。交互可以包括来自客户端应用的查询请求、动态串分析处理机对查询请求的响应,以及来自客户端应用有关响应的选择反馈。交互的查询请求可以利用预期将由操作环境中的客户端应用生成的串查询的子集。当处于生产模式时,动态串分析处理机可以利用串分析算法选择策略动态地选择串分析算法,以提供对操作环境中的客户端应用发出的查询请求的响应。
然而,在本发明的另一个方面可以包括一种计算机程序产品,其包括具有嵌入的计算机可用程序代码的计算机可读存储介质。计算机可用程序代码可以被配置为在训练模式下操作时,处理在教学环境中从客户端应用接收的具有上下文元数据的串查询的子集。处理串查询的子集的有效性可以基于来自客户端应用的反馈。串查询的子集可以代表预期将由操作环境中的客户端应用生成的串查询的范围。计算机可用程序代码可以被配置为在处理串查询的子集完成后为客户端应用合成串分析算法选择策略。串分析算法选择策略可以基于在训练模式时串查询的子集的处理。串分析算法选择策略可以将子集中串查询的上下文与串分析算法的使用相关连。计算机可用程序代码可以被配置为当以生产模式操作时,根据串分析算法选择策略动态地处理具有从操作环境中的客户端应用接收的上下文元数据的串查询。用于串查询的串分析算法可以动态和独立地确定。
附图说明
图1(现有技术)是图示对用于客户端应用的串查询的串分析算法选择的当前处理的功能图。
图2是图示根据本文公开的创造性布置的实施例的、动态地选择与从客户端应用接收的串查询的复杂度相称的串分析算法的系统的高级次功能图。
图3是描述根据本文公开的创造性布置的实施例的、动态地选择串分析算法来处理串查询的串分析模块的一般操作的方法的流程图。
图4是根据本文公开的创造性布置的实施例的、在教学环境的系统以及在操作环境中的系统的示意图的集合,示意图图示对于串分析算法的基于动态策略的选择的、串分析模块的动态串分析处理机的使用。
图5是详细描述根据本文公开的创造性布置的实施例的、在教学环境中训练动态串分析处理机的方法的流程图。
图6是详细描述根据本文公开的创造性布置的实施例的、在操作环境中操作动态串分析处理机的方法的流程图。
具体实施方式
提供串分析功能时大多数的软件工具的典型做法如图1的系统100所示。在计算设备110上运行的客户端应用115会发出各种串查询120给服务器125上运行的程序分析应用130。尽管客户端应用115的串查询120的复杂度等级是可变的,但程序分析应用130的串分析模块135使用相同的串分析算法140响应所有的串查询120,该串分析算法140通常被选择为以便能够处理客户端应用115的最复杂的串查询120。
这导致这样的情况,其中程序分析应用130使用具有比有效分析从客户端应用115接收的串查询120所需的更高复杂度的串分析算法140。也就是说,对较低复杂度的串查询120执行较高复杂度的串分析算法140,这在资源方面的代价很高,并可能模糊分析结果(即,产生错误肯定/否定(falsepositive/negative))。发明人在发现本文表述的克服系统100的认知到的缺点的创造性细节的来源的期间,发现和/或识别了系统100的缺点。
本公开提供了一种用于使用试探性生成的策略来动态地选择客户端查询的串分析算法的解决方案。可以在教学背景(setting)中在客户端查询的子集上训练串分析模块的动态串分析处理机。动态串分析处理机可以利用与来自客户端应用的反馈结合的试探性策略合成用于客户端应用的串分析算法选择策略。然后,可以在操作环境中使用动态串分析处理机和串分析算法选择策略,来动态地选择和执行用于接收的客户端查询的串分析算法。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以用一种或多种程序设计语言的任意组合来编写用于执行本发明的多个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言,如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后者情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令还可以加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行,产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图方框或多个方框中规定的功能/行为的处理。
图2是图示根据本文公开的创造性布置的实施例的、动态地选择与从客户端应用215接收的串查询220的复杂度相称的串分析算法245的系统200的高级功能图。在系统200中,客户端应用215可以在计算设备210上运行,发出串查询220给在服务器225上运行的程序分析应用230。
然而,与系统100的程序分析应用130不同,系统200的程序分析应用230可以使用具有合适的复杂度等级的串分析算法245处理每一个串查询220。这可以在系统200中用计算设备210和服务器225之间不同着色的交换示出。
如本示例中所示,程序分析应用130对于对应的白色的串查询220,可以使用表示低复杂度等级的白色的串分析算法245;对于灰色的串查询220,可以使用灰色的中等复杂度的串分析算法245;对于黑色的串查询220,可以使用黑色的更复杂的串分析算法245。
应该注意的是,这只是为了说明目的的一个简单的示例,并且确定用于特定的串查询220的特定的串分析算法245可以导致对较低复杂度的串查询220使用具有较高复杂度等级的串分析算法245。这样细节可以在稍后的附图中讨论。
为了实现这样的灵活性,程序分析应用230可以利用被配置为使用专用于客户端应用215的串分析算法选择策略240动态地选择串分析算法245的串分析模块235。串分析算法选择策略240可以定义串分析模块235如何处理来自客户端应用215的串查询220。
因此,串分析模块235可以使用能够最好地处理串查询220和/或客户端应用215的需求的串分析算法245,来处理每一个接收的串查询220。
图3是描述根据本文公开的创造性布置的实施例的、动态地选择串分析算法来处理串查询的串分析模块的一般操作的方法300的流程图。
方法300可以开始于步骤305,其中在教学环境中,串分析模块可以试探性地确定如何处理来自客户端应用的、要求串分析的串查询的子集。包括在子集中的串查询可以代表预期来自客户端应用的复杂度的范围(spectrum)。
教学环境可以是其中能够监控和/或修改串分析模块的操作而不会不利地影响程序分析应用和/或客户端应用的计算环境。例如,教学环境可以是软件开发环境或辅助生产环境。
然后在步骤310中,可以根据试探性确定为客户端应用合成串分析算法选择策略。步骤305和310可以表示串分析模块的训练模式,其中串分析模块可以学习如何最好地处理客户端应用的串查询。
当完成步骤305和310时,在步骤315中,串分析模块可以置于操作环境中,其中可以从客户端应用接收串查询。在步骤315中接收的串查询可以包括在步骤305中使用的子集的串查询以及其他。
在步骤320中,可以使用串分析算法选择策略对每一个串查询动态地选择串分析算法。动态选择的串分析算法可以在步骤325中执行,并在步骤330中将结果返回到客户端应用。
应该注意的是,串分析算法选择策略可以是专用于客户端应用。也就是说,为JAVA客户端应用合成的串分析算法选择策略如果用来处理来自PHP客户端应用的串查询,不可以正常工作。同样,生产用来处理银行业客户端应用的串分析算法选择策略不可以能处理来自计算机安全客户端应用的串查询。因此,可以对不同类型的客户端应用重复步骤305和310,并且步骤320可以被扩展为解决(account for)选择合适的串分析算法选择策略,以用于特定的客户端应用。
图4是根据本文公开的创造性布置的实施例的、在教学环境的系统405以及在操作环境中的系统455的示意图的集合400,示意图图示对于串分析算法438的基于动态策略的选择的、串分析模块430的动态串分析处理机的432的使用。集合400的系统405和455可以执行方法300的步骤和/或表示功能图200的特定实施例。
系统405的组件可以在教学环境中操作。如前面所讨论的,教学环境可以是其中可以监控和/或修改串分析模块430的操作而不会不利地影响程序分析应用425和/或客户端应用412的计算环境。
在系统405中,客户端应用412可以从能够通过网络450与托管程序分析应用425的服务器420通信的计算设备410操作。计算设备410可以表示各种各样的能够支持客户端应用412的操作和网络450通信的电子设备。
客户端应用412可以表示特定的软件程序,或者可以是表示一般类型的软件程序的软件程序(即,用JAVA编写的Web应用的基线)。客户端应用412可以被配置为将串查询子集413的内容作为查询请求415发送到程序分析应用425。
客户端应用412可以被进一步配置为向查询请求415中的串查询413提供上下文元数据417。上下文元数据417可以用来提供有关发出串查询413的上下文的信息。此外,上下文元数据417也可以表示所选的串分析算法438应该满足的性能参数。
可以作为上下文元数据417提供的信息的示例可以包括但不限于测量发出复杂度(例如,圈复杂度(cyclomatic complexity))的度量、通常在串查询413上执行的串分析的类型、递归发出的指示符、串分析允许的时间量、结果要求的精确度等。
程序分析应用425可以表示正用来分析客户端应用412的软件程序。程序分析应用425可以是较大的软件应用的组件。此外,程序分析应用425可以被配置为在各种架构中,如客户端-服务器(在示例中示出)或面向服务的架构(SOA),与客户端应用412进行交互。
如系统405中所示,程序分析应用425可以在具有数据存储440的服务器420上操作。服务器420可以表示支持程序分析应用425的操作所必需的硬件和/或软件组件。程序分析应用425接收的查询请求415可以通过串分析模块430处理。
串分析模块430可以表示被配置为执行串分析的程序分析应用425的软件组件。不同于传统的实现,系统405的串分析模块430可以包括动态串分析处理机432、选择规则436和多个串分析算法438。
在教学环境中,动态串分析处理机432可以是正训练用来处理客户端应用412的串查询子集413的串分析模块430的组件。动态串分析处理机432的训练可以利用可以通过试探性选择处理器434实施的试探性策略。
试探性选择处理器434可以利用其固有的试探性策略与选择规则436一起基于接收的串查询413的上下文元数据417来确定应该使用哪个串分析算法438。选择规则436可以表示关于串分析和/或串查询413的基本规则和/或要求。
例如,对于计算机安全分析客户端应用412,选择规则436可以指示基于一元二阶逻辑的串分析算法438应该用于验证降级器(downgrader)的正确性,同时消除假跨站脚本(XSS)报告既可以使用基于作为常规表达的串的摘要的串分析算法,也可以使用利用串的无上下文语言表示的串分析算法,这取决于是否分别要求效率和精确度。
此外,一些选择规则436可以被指定为用户可配置的,以允许程序分析应用425的用户或管理员调整如何选择串分析算法438。
由于试探性学习依赖于已经做出的决定的评估,因此运行客户端应用412的计算设备410可以被配置具有选择得分计算器414,以提供选择反馈445给动态串分析处理机432。选择得分计算器414可以是为了确定动态串分析处理机432对查询请求415的响应的选择得分447的目的,可以与客户端应用412交互的软件程序。选择得分计算器414的具体实现(例如,后台服务、外接式附件(add-on)、插件程序等)可以取决于计算设备410、客户端应用412和/或程序分析应用425的配置。
选择得分447可以是试探性选择处理器434选择的串分析算法438对客户端应用412如何有效的量化。选择得分447可以根据可以利用各种可量化度量值(如,响应时间和精确度)的预定义公式来做出这样的确定。
取决于包含在选择反馈445中的选择得分447的值,动态串分析处理机432可以调整试探性选择处理器434使用的选择过程。例如,动态串分析处理机432可以调整在不同的串分析算法438应用于查询请求415的上下文时试探性选择处理器434分配给它们的加权值。
因此,动态串分析处理机432可以继续处理串查询子集413,直到达到预定的能力水平或终止条件。一旦试探性选择处理器434的训练完成,动态串分析处理机432就可以合成串分析算法选择策略442,将串分析算法选择策略442存储在指定的数据存储440中。
串分析算法选择策略442可以表示为客户端应用412选择串分析算法438的决策过程,如动态串分析处理机432在教学环境中学习到的。串分析算法选择策略442可以是可以由动态串分析处理机432可解释的格式。
在教学环境中花时间训练动态串分析处理机432目的可以是提高程序分析应用475在系统455的操作环境中的效率。操作环境可以是类似于软件生产环境的程序分析应用475利用实时(live)数据的计算环境。
如在教学环境中,操作环境可以包括在计算设备460上操作的、发送查询请求465到服务器470托管的程序分析应用475的客户端应用462,其中该服务器470具有包含串分析算法选择策略442的数据存储480。计算设备460可以是能够支持客户端应用462的操作和通过网络485与服务器470通信的电子设备。
在操作环境中,客户端应用462可以被配置为发送随着其上下文元数据467一起串查询464产生的(即“实时”数据)给程序分析应用475。此外,操作环境的“实时”性质可能使得连同客户端应用462一起的选择得分计算器414的使用无效。即,可以意味着客户端应用462用于实际工作,而不是用于执行额外的任务以支持试探性选择处理器434的训练。
如在教学环境中,程序分析应用475可以继续传递查询请求465给串分析模块430。然而,与在教学环境中不同,串分析模块430的试探性选择处理器434可以关于查询请求465的上下文元数据467和/或选择规则436,将其串分析算法438的选择基于串分析算法选择策略442。
在另一预期的实施例中,可以在操作环境中禁用试探性选择处理器434。在这样的实施例中,动态串分析处理机432可以负责根据串分析算法选择策略442选择串分析算法438。另外,如果动态串分析处理机432接收不由串分析算法选择策略442处理的、包含串查询464和/或上下文元数据467的查询请求465,动态串分析处理机432可以被配置为调用试探性选择处理器434来处理该选择并更新串分析算法选择策略442。
网络450和485可以包括传递编码在载波内的数据所必需的任何硬件/软件/和固件。数据可以包含在模拟或数字信号中,通过数据或语音信道传递。网络450和485可以包括在计算设备组件之间以及在集成设备组件和外围设备之间交换通信所必需的本地组件和数据通路。网络450和485也可以包括网络设备,如一起形成数据网络(如,因特网)的路由器、数据线、集线器和中间服务器。网络450和485还可以包括基于电路的通信组件和移动通信组件,如电话交换机、调制解调器、蜂窝通信塔等。网络450和485可以包括基于有线和/或无线的通信通路。
如在本文中使用的,提出的数据存储440和480可以是被配置为存储数字信息的物理或虚拟存储空间。数据存储440和480可以物理实现在任何类型的硬件中,包括但不限于磁盘、光盘、半导体存储器、数字编码塑料存储器、全息存储器或任何其他的记录介质。数据存储440和480可以是单独的存储单元,以及由多个物理设备形成的存储单元。此外,信息可以以各种方式存储在数据存储440和480中。例如,信息可以存储在数据库结构中,或可以存储在文件存储系统的一个或多个文件中,其中为了信息搜索的目的可以每个文件编或不编索引。此外,数据存储440和/或480可以利用一个或多个加密机制来保护存储的信息,防止未授权访问。
图5是详细描述根据本文公开的创造性布置的实施例的、在教学环境中训练动态串分析处理机的方法500的流程图。方法500可以在系统400的上下文中和/或与方法300结合执行。
方法500可以在步骤505开始,其中动态串分析处理机可以从客户端应用接收串查询子集的串查询。在步骤510,对接收的串查询的上下文元数据进行分析。
在步骤515,可以使用利用(account for)上下文元数据、选择规则以及可用的串分析算法的试探性策略识别能够最好地处理串查询的串分析算法。步骤515可以通过动态串分析处理机的试探性选择处理器来执行。
在步骤520,可以在串查询上执行识别的串分析算法。在步骤525,可以将执行的串分析算法的结果传送到客户端应用。
在步骤530,可以从客户端应用接收包含对于执行的串分析算法的结果的选择得分的反馈。在步骤535,可以确定选择得分是否指示串分析算法不满意地处理串查询。例如,选择得分可以与预定义的选择得分阈值比较,以使得小于阈值的选择得分被视为不满意的。
当选择得分被确定为不满意时,可以执行步骤540,其中可以修改针对串查询的上下文的选择处理。步骤540可以包括对试探性选择处理器采用的选择规则和/或固有的决策过程(例如,决策树)的修改。
当选择被确定为是满意的或在完成步骤540的修改时,可以在步骤545确定用于动态串分析处理机的训练期(training session)是否完成。当训练期还未完成时,流程可以返回到步骤505,其中动态串分析处理机可以重复方法500的步骤,直到完成训练期。当训练期完成时,可以执行步骤550,其中可以对客户端应用合成串分析算法选择策略。
图6是详细描述根据本文公开的创造性布置的实施例的、在操作环境中动态串分析处理机的操作的方法600的流程图。方法600可以在系统400的上下文中和/或与方法300和/或500结合执行。
方法600可以在步骤605开始,其中动态串分析处理机可以从客户端应用接收串查询。在步骤610,可以对接收的串查询的上下文元数据进行评价。
在步骤615,上下文元数据可以与串分析算法选择策略的内容关连。在步骤620,至少一个串分析算法可以被动态地识别为可应用于串查询。
当识别了一个以上的串查询时,可以执行步骤625,其中可以确定最好地处理串查询的的识别串分析算法。当执行步骤625时,动态串分析处理机可以利用选择规则。
在完成步骤625时,或者当只有一个串分析算法被识别为可适用时,在步骤630,可以对串查询执行识别/确定的串分析算法。在步骤635,将执行的串分析算法的结果传递给客户端应用。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (21)

1.一种用于动态选择串分析算法的方法,包括:
当在教学环境中时,训练串分析模块的动态串分析处理机,以有效地处理多个具有从客户端应用接收的多个上下文元数据的多个串查询的子集,其中动态串分析处理机操作在训练模式下,其中动态串分析处理机的有效性基于来自客户端应用的反馈,并且,其中串查询的子集代表预期要由操作环境中的客户端应用生成的串查询的范围;
在完成训练后,为客户端应用合成串分析算法选择策略,其中所述串分析算法选择策略基于在训练期间处理串查询的子集时的动态串分析处理机和客户端应用之间的交互,其中串分析算法选择策略将子集中串查询的上下文与串分析算法的使用关连;以及
当在操作环境中时,通过动态串分析处理机根据串分析算法选择策略动态地处理具有从客户端应用接收的多个上下文元数据的多个串查询,其中动态串分析处理机操作在生产模式下,其中要用于串查询的串分析算法动态和独立地确定。
2.根据权利要求1所述的方法,其中在教学环境中动态串分析处理机的训练还包括:
接收来自客户端应用的查询请求,其中所述查询请求包括子集的串查询和与子集的串查询相关联的多个上下文元数据;
从可用于供串分析模块使用的多个串分析算法选择最好地处理接收的查询请求的串分析算法,其中所述选择使用试探性策略;
在子集的串查询上执行所选择的串分析算法;
将所选择的串分析算法的执行结果传递给客户端应用;
对于执行的串分析算法的结果从客户端应用接收具有选择得分的选择反馈,其中所述选择得分定量地表达所选择的串分析算法的有效性;以及
当接收的选择反馈指示串分析算法的不满意选择时,关于子集的串查询、与子集的串查询相关联的多个上下文元数据以及影响试探性策略的多个选择规则中的至少一个自动地修改试探性策略。
3.根据权利要求2所述的方法,其中串分析算法的选择还包括:
分析与子集的串查询相关联的多个上下文元数据;
从可应用于多个上下文元数据和子集的串查询的分析中的至少一个的多个串分析算法识别至少一个串分析算法;
当识别出多个串分析算法时,根据试探性策略确定的、按照处理接收的查询请求的有效性排序多个串分析算法,其中,排序为具有最高的有效性的串分析算法被视为最好地处理子集的串查询。
4.根据权利要求3所述的方法,其中多个串分析算法的排序还包括:
关于所分析的多个上下文元数据应用加权值到多个串分析算法,其中加权值表示对对应的串分析算法的有效性的调整。
5.根据权利要求4所述的方法,其中加权值表示在不同上下文中对多个串分析算法的使用的用户配置偏好。
6.根据权利要求2所述的方法,其中使用表达用来评估所选择的串分析算法的有效性的多个度量的顶点的预定义等式来计算选择得分。
7.根据权利要求1所述的方法,其中在操作环境中多个串查询的动态处理还包括:
接收来自客户端应用的查询请求,其中所述查询请求包括来自多个串查询的串查询和与串查询相关联的多个上下文元数据;
评价串查询的多个上下文元数据;
使用串分析算法选择策略,动态地选择最好地处理串查询的串分析算法;
对串查询执行动态选择的串分析算法;以及
将动态选择的串分析算法的执行结果传递给客户端应用。
8.根据权利要求7所述的方法,其中,当未通过串分析算法选择策略处理接收的串查询时,所述串分析算法的动态选择还包括:
分析与未通过串分析算法选择策略处理的串查询相关联的多个上下文元数据;
从可应用于多个上下文元数据和串查询的分析中的至少一个的多个串分析算法中识别至少一个串分析算法;
使用试探性策略从识别的至少一个串分析算法确定最好地处理串查询的串分析算法;以及
更新串分析算法选择策略以包含串查询和确定的串分析算法的数据。
9.一种用于动态选择串分析算法的系统,包括:
客户端应用,被配置为发出包括串查询和有关串查询的多个上下文元数据的查询请求,其中所述串查询要求串分析;
串分析模块,被配置为向客户端应用提供响应于发出的查询请求的串分析的结果,所述串分析模块还包括:
代表不同的串分析技术的多个串分析算法;以及
动态串分析处理机,被配置为在训练模式下时,利用试探性策略基于在教学环境中与客户端应用的交互合成串分析算法选择策略,其中交互至少包括来自客户端应用的查询请求、通过动态串分析处理机对查询请求的响应以及来自客户端应用有关响应的选择反馈,其中交互的查询请求利用预期将由操作环境中的客户端应用生成的串查询的子集,并且,当在生产模式下时,利用串分析算法选择策略从多个串分析算法中动态地选择串分析算法,以提供对操作环境中的客户端应用发出的查询请求的响应。
10.根据权利要求9所述的系统,其中,当在教学环境中时,所述客户端应用还包括:
选择得分计算器,被配置为确定对动态串分析处理机的选择反馈的选择得分,其中所述选择得分数量地表达对于交互选择的串分析算法的有效性,其中使用表达通过客户端应用可测量的多个度量的顶点的预定义的等式来计算选择得分。
11.根据权利要求9所述的系统,其中动态串分析处理机还包括:
多个选择规则,定义通过动态串分析处理机对串分析算法的动态选择的调整;
试探性选择处理器,被配置为采用动态串分析处理机的试探性策略来选择串分析算法,其中通过试探性选择处理器的串分析算法的选择利用与串查询相关联的多个上下文元数据和多个选择规则。
12.根据权利要求11所述的系统,其中,当在教学环境中时,所述系统还包括:
选择反馈阈值,定义串分析算法的可接受选择的最小值,其中无法满足反馈阈值导致对试探性选择处理器、多个选择规则以及串分析算法选择策略中至少一个的至少一个修改。
13.根据权利要求11所述的系统,其中多个选择规则中的至少一个是用户可配置的,其中所述用户配置表示在不同的上下文中使用多个串分析算法的偏好。
14.根据权利要求9所述的系统,其中客户端应用表示多个软件应用,其中串分析算法选择策略能够被用于多个软件应用。
15.根据权利要求9所述的系统,其中多个上下文元数据至少包括描述发起串查询的软件代码的复杂度等级、通常用于串查询的串分析的类型以及发起串查询的软件代码的性能类型的参数。
16.一种用于动态选择串分析算法的装置,所述装置包括:
被配置成当在训练模式下操作时处理在教学环境中从客户端应用接收的具有多个上下文元数据的多个串查询的子集的模块,其中处理多个串查询的子集的有效性基于来自客户端应用的反馈,并且,其中串查询的子集代表预期要由操作环境中的客户端应用生成的串查询的范围;
被配置成在完成多个串查询的子集的处理时为客户端应用合成串分析算法选择策略的模块,其中所述串分析算法选择策略基于在训练模式下时串查询的子集的处理,其中串分析算法选择策略将子集中串查询的上下文与串分析算法的使用关连;以及
被配置为在生产模式下操作时根据串分析算法选择策略动态地处理在操作环境中从客户端应用接收的具有多个上下文元数据的多个串查询的模块,其中要用于串查询的串分析算法动态和独立地确定。
17.根据权利要求16所述的装置,其中在训练模式下操作时多个串查询的子集的处理还包括:
被配置为从客户端应用接收查询请求的模块,其中所述查询请求包括子集的串查询和与子集的串查询相关联的多个上下文元数据;
被配置为从可用于供串分析模块使用的多个串分析算法选择最好地处理接收的查询请求的串分析算法的模块,其中所述选择利用试探性策略;
被配置为在子集的串查询上执行所选择的串分析算法的模块;
被配置为将所选择的串分析算法的执行结果传递给客户端应用的模块;
被配置为对于执行的串分析算法的结果从客户端应用接收具有选择得分的选择反馈的模块,其中所述选择得分数量地表达所选择的串分析算法的有效性;以及
被配置为当接收的选择反馈指示串分析算法的不满意选择时关于子集的串查询、与子集的串查询相关联的多个上下文元数据以及影响试探性策略多个选择规则的中至少一个自动地修改试探性策略的模块。
18.根据权利要求17所述的装置,其中串分析算法的选择还包括:
被配置为分析与子集的串查询相关联的多个上下文元数据的模块;
被配置为从可应用于多个上下文元数据和子集的串查询的分析中的至少一个的多个串分析算法中识别至少一个串分析算法的模块;
被配置为当识别多个串分析算法时,根据试探性策略确定的、按照处理接收的查询请求的有效性排序多个串分析算法的模块,其中排序为具有最高的有效性的串分析算法被视为最好地处理子集的串查询。
19.根据权利要求16所述的装置,其中在操作环境中多个串查询的动态处理还包括:
被配置为接收来自客户端应用的查询请求的模块,其中所述查询请求包括来自多个串查询的串查询和与串查询相关联的多个上下文元数据;
被配置为评价串查询的多个上下文元数据的模块;
被配置为基于串分析算法选择策略动态地选择能够最好地处理串查询的串分析算法的模块;
被配置为对于串查询执行动态选择的串分析算法的模块;以及
被配置为将动态选择的串分析算法的执行结果传递给客户端应用的模块。
20.根据权利要求19所述的装置,其中当接收的串查询未通过串分析算法选择策略处理时,所述串分析算法的动态选择还包括:
被配置为分析与未通过串分析算法选择策略处理的串查询相关联的多个上下文元数据的模块;
被配置为从可应用于多个上下文元数据和串查询的分析中的至少一个的多个串分析算法中识别至少一个串分析算法的模块;
被配置为使用试探性策略从识别的至少一个串分析算法确定最好地处理串查询的串分析算法的模块;以及
被配置为更新串分析算法选择策略以包含串查询和所确定的串分析算法的数据的模块。
21.一种计算机系统,包括:
一个或多个处理器、一个或多个计算机可读存储器和一个或多个计算机可读的、有形的存储设备;
程序指令,存储在一个或多个存储设备中的至少一个上,当由一个或多个处理器中的至少一个通过一个或多个存储器中的至少一个执行时,所述程序指令配置一个或多个处理器执行如权利要求1至8中任何一项所述的方法。
CN201280050002.0A 2011-10-11 2012-07-12 用于动态选择串分析算法的方法、系统和装置 Active CN103890788B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/270,732 2011-10-11
US13/270,732 US8751422B2 (en) 2011-10-11 2011-10-11 Using a heuristically-generated policy to dynamically select string analysis algorithms for client queries
PCT/IB2012/053563 WO2013054209A1 (en) 2011-10-11 2012-07-12 Using a heuristically-generated policy to dynamically select string analysis algorithms for client queries

Publications (2)

Publication Number Publication Date
CN103890788A CN103890788A (zh) 2014-06-25
CN103890788B true CN103890788B (zh) 2016-10-26

Family

ID=48042741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280050002.0A Active CN103890788B (zh) 2011-10-11 2012-07-12 用于动态选择串分析算法的方法、系统和装置

Country Status (6)

Country Link
US (2) US8751422B2 (zh)
JP (1) JP5878637B2 (zh)
CN (1) CN103890788B (zh)
DE (1) DE112012003812B4 (zh)
GB (1) GB2509451A (zh)
WO (1) WO2013054209A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5857124B2 (ja) * 2012-05-24 2016-02-10 株式会社日立製作所 画像解析装置、画像解析システム、画像解析方法
EP4303743A3 (en) * 2019-05-24 2024-03-27 Huawei Technologies Co., Ltd. Learning-based query plan cache for capturing low-cost query plan

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356866B1 (en) * 1998-10-07 2002-03-12 Microsoft Corporation Method for converting a phonetic character string into the text of an Asian language
US7530107B1 (en) * 2007-12-19 2009-05-05 International Business Machines Corporation Systems, methods and computer program products for string analysis with security labels for vulnerability detection
CN101707532A (zh) * 2009-10-30 2010-05-12 中山大学 一种未知应用层协议自动分析方法
CN102195827A (zh) * 2010-03-15 2011-09-21 张志凯 基于重叠子字符串分类器的深度分组检测方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1300776A1 (de) * 2001-10-04 2003-04-09 exorbyte GmbH Kontextsensitives Verfahren zur Ermittlung von Daten aus Datenbanken
US20050222987A1 (en) * 2004-04-02 2005-10-06 Vadon Eric R Automated detection of associations between search criteria and item categories based on collective analysis of user activity data
US7822699B2 (en) 2005-11-30 2010-10-26 Microsoft Corporation Adaptive semantic reasoning engine
WO2008021244A2 (en) 2006-08-10 2008-02-21 Trustees Of Tufts College Systems and methods for identifying unwanted or harmful electronic text
US20080147642A1 (en) * 2006-12-14 2008-06-19 Dean Leffingwell System for discovering data artifacts in an on-line data object
US8275803B2 (en) 2008-05-14 2012-09-25 International Business Machines Corporation System and method for providing answers to questions
US20090327172A1 (en) 2008-06-27 2009-12-31 Motorola, Inc. Adaptive knowledge-based reasoning in autonomic computing systems
US8572674B2 (en) 2008-08-13 2013-10-29 International Business Machines Corporation System, method, and apparatus for modular, string-sensitive, access rights analysis with demand-driven precision
US20140041792A1 (en) 2011-12-24 2014-02-13 Hayden Poudrier Pressure Sensitive Adhesive Waxed Cloth Tape

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356866B1 (en) * 1998-10-07 2002-03-12 Microsoft Corporation Method for converting a phonetic character string into the text of an Asian language
US7530107B1 (en) * 2007-12-19 2009-05-05 International Business Machines Corporation Systems, methods and computer program products for string analysis with security labels for vulnerability detection
CN101707532A (zh) * 2009-10-30 2010-05-12 中山大学 一种未知应用层协议自动分析方法
CN102195827A (zh) * 2010-03-15 2011-09-21 张志凯 基于重叠子字符串分类器的深度分组检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
维吾尔语孤立词和连续数字语音识别系统的设计与实现;诺明花;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20061231;第I136-210页 *

Also Published As

Publication number Publication date
DE112012003812T5 (de) 2014-07-24
CN103890788A (zh) 2014-06-25
US20130091079A1 (en) 2013-04-11
US8751422B2 (en) 2014-06-10
JP2014528618A (ja) 2014-10-27
US20130091082A1 (en) 2013-04-11
JP5878637B2 (ja) 2016-03-08
US9092723B2 (en) 2015-07-28
DE112012003812B4 (de) 2021-02-11
GB201406638D0 (en) 2014-05-28
WO2013054209A1 (en) 2013-04-18
GB2509451A (en) 2014-07-02

Similar Documents

Publication Publication Date Title
CN110597991B (zh) 文本分类方法、装置、计算机设备及存储介质
US20200065334A1 (en) Artificial intelligence communications agent
US11176508B2 (en) Minimizing compliance risk using machine learning techniques
CN109074751A (zh) 用双推荐引擎实现内容提供的系统和方法
US11741371B2 (en) Automatically generating diverse text
CN108320045A (zh) 学生成绩预测方法和装置
US11275994B2 (en) Unstructured key definitions for optimal performance
CN111583017A (zh) 基于客群定位的风险策略生成方法、装置及电子设备
US20230206029A1 (en) Graph Neural Network Ensemble Learning
CN109154939A (zh) 用于自动内容聚合生成的系统和方法
CN115204886A (zh) 账户识别的方法、装置、电子设备和存储介质
CN103890788B (zh) 用于动态选择串分析算法的方法、系统和装置
Dugyala et al. [Retracted] Analysis of Malware Detection and Signature Generation Using a Novel Hybrid Approach
CN107870862A (zh) 新控件预测模型的构建方法、遍历测试方法和计算设备
US20230289559A1 (en) Human-understandable insights for neural network predictions
Kinneer et al. Building reusable repertoires for stochastic self-* planners
CN116958608A (zh) 对象识别模型的更新方法、装置、设备、介质及程序产品
Mohtasham-Zadeh et al. Audio Steganalysis based on collaboration of fractal dimensions and convolutional neural networks
WO2022148087A1 (zh) 编程语言翻译模型的训练方法、装置、设备及存储介质
US20190028370A1 (en) Adaptive selection of message data properties for improving communication throughput and reliability
Li et al. A cooperative harmony search algorithm for function optimization
US11651270B2 (en) Search, question answering, and classifier construction
CN117033620A (zh) 密钥识别模型训练方法、密钥识别方法及装置
US20240105183A1 (en) System and method for authentication of processed audio files
CN117745420A (zh) 基于大模型的企业数据处理方法、装置、设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant