当前位置: 首页 > 专利查询>SAP欧洲公司专利>正文

附加到字符串的污染信息的管理制造技术

技术编号:27233216 阅读:25 留言:0更新日期:2021-02-04 12:00
本文公开了用于传播使用元数据的字符串的污染信息的系统、方法和计算机程序产品实施例。使用污染范围对字符串的污染信息进行编码。当对字符串进行操作时,将该操作和与该操作相对应的任何附加污染信息编码到元数据的增量层中。在对字符串进行操作时,不是立即获得结果字符串的污染信息,而是增量层存储该操作以及任何后续操作的污染信息,直到需要污染信息为止。一旦需要污染信息,则将增量层折叠到基础层污染信息,以便解析结果字符串的污染信息。信息。信息。

【技术实现步骤摘要】
附加到字符串的污染信息的管理

技术介绍

[0001]当程序从外部源接收到数据时,不一定必须信任数据的完整性。对于基于网络的接口的情况尤其如此,该基于网络的接口从不受信任的客户端获取数据并将其用于后端程序中。可以操纵这样的数据以进行跨站点脚本(XSS)或SQL注入,这可能会对后端程序本身或后端程序可访问的数据源或系统的操作产生不利影响。
[0002]因此,需要一种方法来清理从不受信任的源接收到的数据以防止攻击。
附图说明
[0003]附图并入本文并形成说明书的一部分。
[0004]图1A和1B图示了根据实施例的对具有字符级污染标志的字符阵列的操作。
[0005]图2A和图2B图示了根据实施例的具有污染范围基础层和增量层的字符串元数据。
[0006]图3是图示根据实施例的步骤的流程图,通过该步骤对具有包括增量层的元数据的结果字符串进行编码。
[0007]图4A和图4B图示了根据实施例的示出用于维护污染信息的存储器消耗成本的图形。
[0008]图5是可用于实现各种实施例的示例计算机系统。
[0009]在附图中,相似的附图标记通常指示相同或相似的元件。另外,通常,附图标记的最左边的(一个或多个)数字标识该附图标记首次出现的附图。
具体实施方式
[0010]本文提供的是用于管理附加到字符串的污染信息的系统、装置、设备、方法和/或计算机程序产品实施例和/或其组合和子组合。
[0011]污染跟踪是针对各种注入攻击的有效对策,例如跨站点脚本(XSS)或结构化查询语言(SQL)注入。这些攻击依赖于将恶意信息——诸如恶意代码——注入到原本干净的字符串中。
[0012]处理注入攻击的常用方法包括清理和过滤输入。但是,这些方法通常在开发时就已固定,并且不一定能在运行时动态解决意外攻击。
[0013]一种用于防止将来遭受注入攻击的方法是跟踪被污染的用户输入。如果此用户输入包括在由“汇聚结点(sink)”(使用该字符串作为输入的任何代码段)消耗的字符串中,则可能会引起关注。具体而言,每当汇聚结点消耗了潜在被污染的字符串时,该字符串便构成了攻击向量。字符串的任何清理(以及将该字符串相应标记为未被污染)应该发生在由汇聚节点消耗之前。
[0014]当被污染的字符串到达汇聚结点时,可以采取多种方法来减轻任何可能的伤害,诸如提出例外、忽略字符串输入和/或记录关于被污染的字符串的信息。相关领域的技术人员将理解,在本公开的范围内可以考虑任何处理字符串的污染数据的方法。
[0015]提供污染数据以允许跟踪被污染的字符串是繁琐的过程。在一些方法中,单个标
志用于整个字符串以指示该字符串是否被用户输入数据污染。如果字符串中包括不受信任的用户输入,则将整个字符串标记为被污染。在这种方法中,每个字符串的污染信息都可以由单个布尔值标志进行管理,但会造成粒度损失。即使汇聚结点最终不使用字符串的被污染部分,也必须将整个字符串视为被污染(并且因此是潜在的攻击向量)。
[0016]在另一种方法中,污染标记用于字符串中的每个字符。在这种情况下,字符串被理解为字符阵列。相关领域的技术人员将理解,可以以与本文讨论的字符阵列相似的方式对其他数据阵列标志污染信息,但是使用由字符阵列组成的字符串作为非限制性示例。
[0017]图1A和1B图示了根据实施例的对具有字符级污染标志的字符阵列的操作。如图1A所示,字符串“HELLO”102在位置1、2和4处具有被污染字符,由污染阵列104{0,1,1,0,1}示出。类似地,字符串“WORLD”106被完全污染,如由污染阵列108{1,1,1,1,1}所示。在这些示例中,“1”指示对应的字符被污染,而“0”指示对应的字符未被污染。
[0018]可以对字符串进行多种操作。当对字符串进行这些操作时,必须计算污染信息并跟随所得到的字符串。例如,如图1A所示,操作110“HELLO”.insert(4,“WORLD”)将字符串“WORLD”106插入到字符串“HELLO”102的第四位置(假定为0-编号的字符阵列),从而得到字符串112“HELLWORLDO”。
[0019]使用污染阵列104和108,可以为所得到的字符串112确定污染阵列。新的污染阵列114为{0,1,1,0,1,1,1,1,1,1},并通过对污染阵列进行类似的插入操作以将污染阵列108放入污染阵列104来确定。
[0020]图1B示出了对字符串112进行的附加操作-操作116“HELLWORLDO”.replace(“E”,“I”)。此操作将导致具有污染阵列120{0,0,1,0,1,1,1,1,1,1}的字符串118“HILLWORLDO”。作为非限制性示例,使用受信任的字符——该字符标记为未被污染——替换被污染的字符(在字符串112位置[1]处的“E”)。本领域技术人员将认识到,可以将不同的操作视为污染字符或不污染字符,或者甚至可以视为传播该字符的先前污染标志,并且该具体的替换操作是作为示例而非限制来提供的。
[0021]虽然使用如污染阵列104、108、114和120这样的污染阵列可以轻松地逐个字符地识别污染并快速查找污染,但是维护这些污染阵列需要大量的存储和计算空间。
[0022]图4A和图4B图示了根据实施例的示出用于维护污染信息的存储器消耗成本的图形400A和400B。图形400A和400B示出了根据实施例的各种存储器消耗情况。每组条形图形示出的“n”值是字符串的长度(例如,字符串“HELLO”的n=5)。作为非限制性示例,字符串的Java虚拟机实现每个字符使用两个字节的数据,并且因此,字符串以字节为单位的存储器消耗(对于每组条形图形由r_string给定)是以字符为单位的字符串的大小的两倍(例如,如果n=5,则r_string=10字节;如果n=1000,则r_string=2000字节;等等)。
[0023]字符级污染阵列的大小将与每个对应的字符串成比例。如果每个污染阵列元素消耗一个字节(作为非限制性示例,Java虚拟机实现将布尔值映射到字节数据类型),则字符串“HELLO”仅需要存储污染数据就需要附加的五个字节的数据。此结果示出为每组条形图形中的r_naive成本(例如,如果n=5,则r_naive=5字节;如果n=1000,则r_naive=1000字节;等等)。
[0024]如在图表400B的后面的条形图形中所示,r_naive的成本与针对污染数据跟踪的字符串的大小成比例。如果n=20000,则r_naive=20000字节。因此,随着程序中跟踪更多
字符串,传递更大的污染数据集并将其用于操作变得越来越昂贵。在这种特定情况下,成本超过字符串本身50%的开销。
[0025]对映射到字符串的一对一污染元素的替代方法是使用污染范围。污染范围保留了字符级污染保护的粒度,但减少了存储器使用。
[0026]例如,在以上示例中,字符串“HELLO”102在位置1、2和4处具有被污染的字符,由污染阵列10本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机实现的方法,包括:由一个或多个计算设备将第一字符串存储在具有元数据的数据结构中;由所述一个或多个计算设备将与所述第一字符串相对应的污染数据编码到所述元数据的基础层中;由所述一个或多个计算设备对所述第一字符串进行操作以创建结果字符串,其中,所述结果字符串代替所述第一字符串存储在所述数据结构中;以及由所述一个或多个计算设备将所述操作和与所述操作相对应的污染数据编码到所述元数据的增量层中。2.根据权利要求1所述的计算机实现的方法,其中,与所述第一字符串相对应的污染数据包括指示所述第一字符串的被污染的字符的范围。3.根据权利要求1所述的计算机实现的方法,还包括:由所述一个或多个计算设备确定在安全敏感操作中需要所述结果字符串;以及响应于在所述安全敏感操作中需要所述结果字符串的所述确定,由所述一个或多个计算设备将与所述第一字符串相对应的污染数据和与所述操作相对应的污染数据解析到与所述结果字符串相对应的污染数据中。4.根据权利要求3所述的计算机实现的方法,其中,推迟解析与所述结果字符串相对应的污染数据,直到在所述安全敏感操作中需要所述结果字符串为止。5.根据权利要求1所述的计算机实现的方法,还包括:由所述一个或多个计算设备基于与所述第一字符串相对应的污染数据和与所述操作相对应的污染数据来检测所述结果字符串中的恶意数据。6.根据权利要求1所述的计算机实现的方法,其中,与所述第一字符串相对应的污染数据包括所述第一字符串的被污染的字符的源。7.根据权利要求1所述的计算机实现的方法,其中,对所述第一字符串进行所述操作以创建所述结果字符串包括:将第二字符串插入所述第一字符串以创建所述结果字符串,并且其中,将所述操作和与所述操作相对应的污染数据编码到所述元数据的增量层中包括:将对与所述第二字符串相对应的污染数据的参考编码到所述元数据的增量层中,作为与所述操作相对应的污染数据。8.一种系统,包括:存储器,被配置为存储操作;和一个或多个处理器,被配置为进行所述操作,所述操作包括:将第一字符串存储在具有元数据的数据结构中;将与所述第一字符串相对应的污染数据编码到所述元数据的基础层中,对所述第一字符串进行操作以创建结果字符串,其中,所述结果字符串代替所述第一字符串存储在所述数据结构中,以及将所述操作和与所述操作相对应的污染数据编码到所述元数据的增量层中。9.根据权利要求8所述的系统,其中,与所述第一字符串相对应的污染数据包括指示所述第一字符串的被污染的字符的范围。10.根据权利要求8所述的系统,所述操作进一步包括:
确定在安全敏感操作中需要所述结果字符串;以及响应于在所述安全敏感操作中需要所述结果字符串的所述确定,将与所述第一字符串...

【专利技术属性】
技术研发人员:F洛赫
申请(专利权)人:SAP欧洲公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1