IP Library › Granted Patent US 9,734,335
Granted Patent B2
US 9,734,335 · App. 14/512,724 · Granted Aug 15, 2017

Data tracking in user space

Inventors: Prateek Goel (Bangalore, IN); Brahadambal Srinivasan (Bangalore, IN)
Assignee: International Business Machines Corporation
G06F21/566G06F21/12G06F21/16G06F21/52G06F21/54G06F21/55G06F21/554H04L63/1425H04L63/1441G06F12/14G06F2221/033
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,734,335
App. No.
14/512,724
Granted
Aug 15, 2017
Kind
B2
Abstract

A way to track data from an untrusted source as it moves through memory in original or modified form. A probe is placed on a data reception call of a program. When the probe is triggered by execution of the data reception call for a piece of data, a location where the piece of data is to be stored is marked. When a program instruction requests access to the marked location, instrumentation code is injected subsequent to the program instruction to track the flow of the piece of data. When the instrumentation code is executed, the next location where the piece of data will be stored is determined and marked as well. A threat analyzer is invoked to analyze the marked locations for threats.

Claims (34)

1. A method comprising:

configuring, by a set of processors, a probe to monitor a set of data requests from a program, wherein:

the program is encrypted, and

the probe does not include a decryption key for the program;

determining, by the set of processors, the probe is triggered by a first section of code in the program;

determining, by the set of processors, a first location where the first section of code will store a set of data requested in the set of data requests;

marking, by the set of processors, the first location;

determining, by the set of processors, a second section of code in the program attempts to access the first location;

injecting, by the set of processors, responsive to determining the program attempts to access the first location, a set of instrumentation code into the program, wherein the set of instrumentation code:

is a dynamic binary instrumentation,

is injected subsequent to the second section of code in an instruction execution stream,

is injected at a runtime, and

does not modify the program;

determining, by the set of processors, the instrumentation code executes;

examining, by the set of processors, the first section of code and a set of subsequent instructions in the program, wherein the set of subsequent instructions references the first location;

scanning, by the set of processors, the first location for a set of threats;

determining, by the set of processors, the set of threats exist; and

taking, by the set of processors, a defensive measure.

2. The method of claim 1 , further comprising:

determining, by the set of processors, the instrumentation code is triggered by a second section of code in the program;

determining, by the set of processors, a second location where the first section of code will store a set of data requested in the set of data requests; and

marking, by the set of processors, the second location;

wherein:

the set of subsequent instructions reference the second location, and

scanning the first location for the set of threats further includes:

scanning, by the set of processors, the second location for the set of threats.

3. The method of claim 1 , further comprising:

tracking, by the set of processors, responsive to marking the first location, the first location.

4. The method of claim 1 , wherein the set of instrumentation code is injected according to a dynamic tracing framework.

5. The method of claim 1 , wherein scanning the first location for the set of threats employs signature analysis.

6. The method of claim 1 , further comprising:

tracking, by the set of computer processors, a flow of the set of data.

7. The method of claim 6 , wherein tracking the flow of the set of data further includes:

maintaining, by the set of processors, a set of indicators in a page table entry associated with the first location.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2014
From: GOEL, PRATEEK; SRINIVASAN, BRAHADAMBAL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033937/0680 →
Continuity (2)
Continuation 14482233 · Sep 10, 2014
Related Publication 20160072830A1 · Mar 10, 2016