Protecting sensitive information in time travel trace debugging

US10481998B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10481998-B2
Application numberUS-201815921883-A
CountryUS
Kind codeB2
Filing dateMar 15, 2018
Priority dateMar 15, 2018
Publication dateNov 19, 2019
Grant dateNov 19, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Protecting sensitive information in connection with tracing an original execution of an entity. Embodiments include identifying that original information—which was accessed based on an original execution of one or more original executable instructions of the entity—comprises sensitive information. Based on the original information comprising the sensitive information, embodiments include performing one or both of (i) storing first trace data comprising alternative information—rather than the original information—into the trace, while ensuring that an execution path that was taken by the entity based on the original information is also taken during replay of the original execution of the entity using the trace; or (ii) storing second trace data into the trace that causes zero or more alternative executable instructions—rather than the one or more original executable instructions of the entity—to be executed during the replay of the original execution of the entity.

First claim

Opening claim text (preview).

What is claimed: 1. A method, implemented at a computer system that includes one or more processors, for protecting sensitive information in connection with tracing an original execution of an entity, the method comprising: recording a replayable a trace of execution of an entity, including recording trace data that represents execution of a plurality of executable instructions of the entity; identifying that original information, which was accessed based on execution of one or more first executable instructions of the entity, comprises sensitive information; identifying derived information of the original information, the identifying being based on identifying execution of one or more second executable instructions of the entity that operate on the original information to create the derived information; based on the derived information being derived from the original information, determining that the derived information also comprises sensitive information; and based on the derived information comprising the sensitive information, performing one or more of: storing, into the trace, first trace data comprising alternative information, rather than the derived information, into a first trace data stream, while ensuring that an execution path that was taken by the entity based on the derived information will also be taken during replay of the entity using the first trace data stream; or storing, into the trace, second trace data into a second trace data stream that causes one or more alternative executable instructions, rather than the one or more second executable instructions of the entity, to be executed during the replay of the entity using the second trace data stream. 2. The method as recited in claim 1 , wherein the method is performed during execution of the entity. 3. The method as recited in claim 1 , wherein the method is performed during a post-processing the trace after execution of the entity. 4. The method as recited in claim 1 , further comprising: identifying that a copy of the original information in the trace comprises sensitive information, the copy of the original information existing at an execution time prior to a first existence of the original information in the trace, and wherein identifying that the original information comprises sensitive information is based on the identifying that the copy of the original information in the trace comprises sensitive information. 5. The method as recited in claim 1 , further comprising: identifying that a copy of the original information in the trace comprises sensitive information, the copy of the original information existing at an execution time later than a first existence of the original information in the trace, and wherein identifying that the original information comprises sensitive information is based on the identifying that the copy of the original information in the trace comprises sensitive information. 6. The method as recited in claim 1 , further comprising: identifying that a copy of the original information in the trace comprises sensitive information, and wherein the copy of the original information and the original information are not related by a code continuity. 7. The method as recited in claim 1 , wherein identifying that the original information comprises sensitive information is based on a determination that the original information is of a type selected from a list consisting of a specific data structure, a specific variable, a specific class, a specific field, a specific function, a specific source file, a specific component, a specific module, or an executable instruction. 8. The method as recited in claim 1 , wherein the original information is identified as sensitive until a type-specific condition of a type associated with the original information has been met. 9. The method as recited in claim 1 , wherein the method stores the first trace data comprising alternative information, rather than the derived information, into the first trace data stream, while ensuring that an execution path that was taken by the entity based on the derived information will also be taken during replay of the entity using the first trace data stream, and wherein ensuring that the execution path that was taken by the entity based on the derived information will also be taken during replay of the original execution of the entity using the trace comprises one or more of: recording side-effects of one or more instructions, recording one or more alternative instructions, or ensuring that the alternative information will result in a same result of a conditional evaluation as the derived information. 10. The method as recited in claim 1 , wherein the method stores the second trace data into the trace that causes one or more alternative executable instructions to be executed during the replay of the original execution of the entity using the trace, and wherein storing the second trace data into the trace that causes one or more alternative executable instructions to be executed during the replay of the original execution of the entity using the trace comprises one or more of replacing a section of instructions with one or more instructions that bypass the section, replacing a section of instructions with one or more instructions that replicate side-effects of having executed the section of instructions, or storing at least one memory snapshot in connection with the section of instructions. 11. The method as recited in claim 1 , wherein the method comprises storing both the first trace data and the second trace data, and wherein the first trace data stream and the second trace data stream are a same trace data stream. 12. A computer system, comprising: one or more processors; and one or more computer-readable media having stored thereon computer-executable instructions that, when executed by the one or more processors, cause the computer system to perform at least the following: process a replayable a trace of execution of an entity, including processing trace data that represents execution of a plurality of executable instructions of the entity; based on processing the replayable trace, identify that original information, which was accessed based on execution of one or more first executable instructions of the entity, comprises sensitive information; identify derived information of the original information, the identifying being based on identifying execution of one or more second executable instructions of the entity that operate on the original information to create the derived information; based on the derived information being derived from the original information, determine that the derived information also comprises sensitive information; and based on the original information comprising the sensitive information, perform one or more of: storing, into the trace, first trace data comprising alternative information, rather than the derived information, into a first trace data stream, while ensuring that an execution path that was taken by the entity based on the derived information will also be taken during replay of the execution of the entity using the first trace data stream; or storing, into the trace, second trace data into a second trace data stream that causes one or more alternative executable instructions, rather than the one or more second executable instructions of the entity, to be executed during the replay of the execution of the entity using the second trace data stream. 13. The computer system as recited in claim 12 , the computer-executable instructions also causing the computer system to identify that a copy of the original information in the trace comprises

Assignees

Inventors

Classifications

  • Protecting executable software · CPC title

  • where the computing system component is a software system · CPC title

  • to a system of files or objects, e.g. local or distributed file system or database · CPC title

  • Protecting personal data, e.g. for financial or medical purposes · CPC title

  • by tracing the execution of the program · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10481998B2 cover?
Protecting sensitive information in connection with tracing an original execution of an entity. Embodiments include identifying that original information—which was accessed based on an original execution of one or more original executable instructions of the entity—comprises sensitive information. Based on the original information comprising the sensitive information, embodiments include perfor…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/3636. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 19 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).