System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 从执行跟踪中去除有效载荷数据制造技术_技高网

从执行跟踪中去除有效载荷数据制造技术

技术编号:40072294 阅读:6 留言:0更新日期:2024-01-17 00:22
从执行跟踪中去除有效载荷数据。实施例标识执行跟踪内的有效载荷数据项,标识与有效载荷数据项交互的特定可执行代码,并确定特定可执行代码的执行已经施加在有效载荷数据项上的(多个)约束。然后,实施例利用维护(多个)约束的信息来替换执行跟踪中有效载荷数据项的值。维护(多个)约束的信息的示例包括特定可执行代码的一个或多个字节、对应于有效载荷数据项的存储器地址以及被构造用以保留代码流的数据——例如针对有效载荷数据项的替换值、针对有效载荷数据项的一个或多个有效值的集合的规约,或在特定可执行代码中遵循的代码路径的指令。

【技术实现步骤摘要】
【国外来华专利技术】

本公开涉及防止从可重放执行跟踪和其他执行日志中包括敏感有效载荷数据(诸如个人身份信息(pii)、密码密钥和口令)的系统、方法和设备。


技术介绍

1、跟踪和纠正不希望的软件行为/故障是软件开发中的核心活动。不希望的软件行为可以包括许多事情,诸如执行崩溃、运行时异常、执行性能缓慢、数据结果不正确、数据损坏等。不希望的软件行为由大量各种各样的因素触发,诸如数据输入、用户输入、竞争条件(例如,访问共享资源时)等。考虑到各种各样的触发条件,不希望的软件行为通常是罕见的,看似随机的,并且极难重现。因此,对于开发者来说,标识给定的不希望的软件行为通常是非常耗时且困难的。一旦不希望的软件行为被标识出,确定其根本原因(或原因)通常也是耗时且困难的。

2、开发者使用多种方法来标识不希望的软件行为,然后标识应用代码中导致不希望的软件行为的一个或多个位置。例如,开发者经常针对不同的输入测试应用代码的不同部分(例如,单元测试)。另一个示例是,开发者经常在调试器中推理应用代码的执行(例如,通过设置断点/观察点、通过在代码执行时逐行执行代码行等)。另一个示例是,开发者经常在分析器中观察代码执行行为(例如,计时、覆盖率)。作为另一个示例,开发者经常将诊断代码(例如,跟踪语句)插入到应用代码中。这些活动中的每一个活动都由代码执行日志辅助,诸如由主题应用中包括的诊断代码生成的事件日志。

3、虽然传统的诊断工具(例如,调试器、分析器等)已经在“实时”前向执行代码上操作,但一种新兴形式的诊断工具能够实现“历史”调试(也被称为“时间旅行”或“反向”调试),其中可执行计算机程序的执行上下文(例如,进程、线程等)的至少一部分被记录到包括一个或多个跟踪文件(即执行跟踪)的代码执行日志中。使用一些跟踪技术,执行跟踪包含“位精确”的历史执行跟踪数据,这使得跟踪的执行上下文的任何记录部分能够被虚拟地“重放”(例如,经由仿真),甚至单个指令(例如,机器代码指令、中间语言代码指令等)的颗粒度。因此,使用位精确跟踪数据,诊断工具使开发者能够推断可执行程序的记录先前执行,而不是传统的调试,后者仅限于“实时”前向执行。例如,使用可重放执行跟踪,一些历史调试器提供用户体验,支持向前和向后断点/观察点,使代码能够向前和向后单步执行等。另一方面,一些历史分析器能够从先前执行的代码中推导出代码执行行为(例如,计时、覆盖率)。

4、可重放执行跟踪显式或隐式地包含每个记录指令的每个输入和每个输出。因此,可重放执行跟踪包含由跟踪代码消费或生成的全部数据。当跟踪代码消费或生成敏感数据项时,诸如pii、密码密钥、口令等,该跟踪代码的执行跟踪也包含这些敏感数据项。即使是不太严格的代码执行日志形式,诸如由应用诊断代码生成的事件日志,也可能包括敏感数据项。


技术实现思路

1、本文描述的至少一些实施例通过使用熵分析来防止代码执行日志数据中包括有效载荷数据来提高数据安全。这些实施例解决了能够有效和可靠地确定特定数据项应被视为敏感数据项(例如,pii、密码密钥、口令等)的技术挑战。这些实施例基于专利技术人的观察发现与不太敏感的数据项(例如,环境变量、数学常数等)相比,敏感数据项倾向于具有相对较高的熵。在实施例中,数据项的熵以本征的方式被考虑(即通过查看熵的位数目与数据项总长度的比率)和/或以上下文的方式被考虑(即通过当与其他代码执行日志数据集中的数据项的值进行比较时,确定一个代码执行日志数据集中给定数据项的值的唯一性)。识别敏感数据项具有相对较高的熵,这些实施例标识高熵数据项,并在代码执行日志数据中将那些数据项排除,诸如可重放执行跟踪、事件日志等。

2、在实施例中,通过防止敏感数据项通过代码执行日志数据被无意中暴露,从代码执行日志数据中排除高熵数据项具有促进数据安全的技术效果。此外,从代码执行日志数据中排除高熵数据项通过去除数据部分来减小代码执行日志数据的大小,包括去除通常不易压缩的高熵数据,这具有节省计算资源的额外技术效果;例如,减小代码执行日志数据的大小可以在分析该日志数据时节省处理资源,并节省存储和传输代码执行日志数据所需的存储和网络资源。

3、根据前述内容,在一些实施例中,方法、系统和计算机产品涉及使用熵来防止有效载荷数据被包括在代码执行日志数据中。这些实施例确定与代码执行日志数据相关联的有效载荷数据项的熵超过定义的熵阈值。基于确定有效载荷数据项具有超过定义的熵阈值的熵,这些实施例标识与有效载荷数据项交互的特定可执行代码。然后,这些实施例采取预防性动作,该预防性动作排除有效载荷数据项,使有效载荷数据项不与特定可执行代码的执行记录一起包括。

4、本文描述的至少一些附加或备选实施例通过从执行跟踪中去除多达全部有效载荷数据来提高数据安全,而不损害不依赖于对有效载荷数据本身的分析的执行跟踪分析形式的能力(例如,代码和/或数据流分析、存储器局部性分析、存储器访问模式分析、高速缓存使用分析、竞争条件分析、缓冲区溢出分析、传统调试等)。例如,实施例处理执行跟踪来标识有效载荷数据项。针对每个标识的有效载荷数据项,实施例确定与数据项交互的代码的执行已经施加在数据项上的(多个)约束,并利用维护那些(多个)约束的信息替换执行跟踪中数据项的值。在实施例中,该信息包括可执行代码本身、数据项的存储器地址和/或被构造以保留代码流的数据(例如,数据项的替换值、针对数据项的(多个)有效值的规约、要遵循的代码路径的指令等)。

5、在实施例中,通过防止敏感数据项通过执行跟踪被无意中暴露,从执行跟踪中排除有效载荷数据具有促进数据安全的技术效果。此外,在实施例中,从执行跟踪中排除有效载荷数据可以大大增加这些执行跟踪的可压缩性。无论哪种方式,从执行跟踪中排除有效载荷数据都可以显着减小执行跟踪的大小,这具有节省计算资源的额外技术效果;例如,在分析这些执行跟踪时减小执行跟踪的大小可以节省处理资源,并节省存储和传输执行跟踪所需的存储和网络资源。

6、根据前述内容,在一些实施例中,方法、系统和计算机产品涉及从执行跟踪中去除有效载荷数据。这些实施例标识执行跟踪中的有效载荷数据项,并标识与有效载荷数据项交互的特定可执行代码。基于有效载荷数据项和特定可执行代码,这些实施例确定特定可执行代码的执行对有效载荷数据项施加的一个或多个约束,然后利用维护一个或多个约束的信息替换执行跟踪中的有效载荷数据项的值。在各种实施例中,一个或多个约束包括特定可执行代码的一个或多个字节、对应于有效载荷数据项的存储器地址或被构造以保留代码流的数据,并且维护一个或多个约束的信息包括一个或多个特定可执行代码的字节、对应于有效载荷数据项的存储器地址、或被构造以保留代码流的数据。

7、提供此
技术实现思路
是为了以简化的形式介绍一些概念,这些概念将在下文的详细说明中进一步描述。本
技术实现思路
并非旨在确定所要求保护的主题的关键特征或基本特征,也并非旨在帮助确定所要求的主题的范围。

本文档来自技高网...

【技术保护点】

1.一种在包括处理器(102)的计算机系统(101)处实现的方法(700),用于从执行跟踪(113)中去除有效载荷数据,所述方法包括:

2.根据任一项前述权利要求所述的方法,其中所述一个或多个约束包括所述特定可执行代码的一个或多个字节。

3.根据权利要求2所述的方法,其中维护所述一个或多个约束的所述信息包括所述特定可执行代码的所述一个或多个字节。

4.根据任一项前述权利要求所述的方法,其中所述一个或多个约束包括对应于所述有效载荷数据项的存储器地址。

5.根据权利要求4所述的方法,其中维护所述一个或多个约束的所述信息包括所述存储器地址。

6.根据任一项前述权利要求所述的方法,其中所述一个或多个约束包括被构造用以保留代码流的数据,并且其中维护所述一个或多个约束的所述信息包括被构造用以保留代码流的所述数据。

7.根据权利要求6所述的方法,其中所述被构造用以保留代码流的所述数据包括针对所述有效载荷数据项的替换值,所述方法进一步包括基于约束求解器至少在所述特定可执行代码上的执行来标识(305)所述替换值。

8.根据权利要求6所述的方法,其中被构造用以保留代码流的所述数据包括针对所述有效载荷数据项的替换值,所述方法进一步包括基于随机值生成标识(305)所述替换值。

9.根据权利要求6所述的方法,其中被构造用以保留代码流的所述数据包括针对所述有效载荷数据项的替换值,所述方法进一步包括基于从可用替换值集合中的查找来标识(305)所述替换值。

10.根据权利要求6所述的方法,其中被构造用以保留代码流的所述数据包括针对所述有效载荷数据项的替换值,所述方法进一步包括基于计算所述有效载荷数据项的哈希来生成(305)所述替换值。

11.根据权利要求10所述的方法,其中计算所述有效载荷数据项的所述哈希包括将盐应用于所述有效载荷数据项。

12.根据权利要求10或11所述的方法,其中利用维护所述一个或多个约束的信息来替换所述执行跟踪中的所述有效载荷数据项的所述值包括以下至少一项:

13.根据权利要求6所述的方法,其中被构造用以保留代码流的所述数据包括针对所述有效载荷数据项的一个或多个有效值的集合的规约。

14.根据权利要求6所述的方法,其中被构造用以保留代码流的所述数据包括在所述特定可执行代码中遵循的代码路径的指令。

15.根据任一项前述权利要求所述的方法,其中所述方法被传递地应用以利用维护所述一个或多个约束的信息来替换所述执行跟踪中的有效载荷数据项的附加实例或其派生物。

...

【技术特征摘要】
【国外来华专利技术】

1.一种在包括处理器(102)的计算机系统(101)处实现的方法(700),用于从执行跟踪(113)中去除有效载荷数据,所述方法包括:

2.根据任一项前述权利要求所述的方法,其中所述一个或多个约束包括所述特定可执行代码的一个或多个字节。

3.根据权利要求2所述的方法,其中维护所述一个或多个约束的所述信息包括所述特定可执行代码的所述一个或多个字节。

4.根据任一项前述权利要求所述的方法,其中所述一个或多个约束包括对应于所述有效载荷数据项的存储器地址。

5.根据权利要求4所述的方法,其中维护所述一个或多个约束的所述信息包括所述存储器地址。

6.根据任一项前述权利要求所述的方法,其中所述一个或多个约束包括被构造用以保留代码流的数据,并且其中维护所述一个或多个约束的所述信息包括被构造用以保留代码流的所述数据。

7.根据权利要求6所述的方法,其中所述被构造用以保留代码流的所述数据包括针对所述有效载荷数据项的替换值,所述方法进一步包括基于约束求解器至少在所述特定可执行代码上的执行来标识(305)所述替换值。

8.根据权利要求6所述的方法,其中被构造用以保留代码流的所述数据包括针对所述有效载荷数据项的替换值,所述方法进一步包括基于随机值...

【专利技术属性】
技术研发人员:J·莫拉
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

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

1