IP Library Granted Patent US 8,707,434
Granted Patent B2
US 8,707,434 · App. 13/211,999 · Granted Apr 22, 2014

System and method for indirect interface monitoring and plumb-lining

Inventor: Gregory W. Dalcher (Washington County, OR)
Assignee: McAfee, Inc.
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 8,707,434
App. No.
13/211,999
Granted
Apr 22, 2014
Kind
B2
Abstract

A method is provided in one example embodiment that includes monitoring a first interface, monitoring a second interface, and taking a policy action if the second interface is not executed before the first interface. In more particular embodiments, monitoring the second interface may include walking a call stack associated with the first interface. Moreover, a program context for calling code associated with the second interface may be identified and acted upon.

Claims (42)

1. A method, comprising:

monitoring, by a processor, a first interface by directly monitoring the first interface, wherein the first interface is associated with a call stack of call frames pushed onto the call stack;

monitoring, by the processor, a second interface by:

identifying, based on a callback, a calling code associated with the second interface by unwinding one of the call frames of the call stack associated with the first interface, wherein the call frame includes a pointer to the calling code and one or more parameters passed to the calling code and wherein the calling code caused the call frame to be pushed to the stack; and

identifying a program context associated with the calling code; and

taking a policy action if the second interface is not executed before the first interface.

2. The method of claim 1 , wherein monitoring the second interface comprises indirectly monitoring the second interface.

3. The method of claim 1 , wherein monitoring the second interface comprises walking a call stack associated with the first interface.

4. The method of claim 1 , further comprising: determining if the calling code is legitimate; and

taking the policy action if the calling code is not legitimate.

5. The method of claim 1 , wherein monitoring the first interface comprises:

storing data associating an execution element with the first interface.

6. The method of claim 1 , wherein:

the first interface is a kernel-mode interface; and

monitoring the second interface comprises walking a call stack associated with the kernel-mode interface.

7. The method of claim 1 , wherein:

monitoring the first interface comprises receiving a callback on execution of the first interface and storing data associating an execution element with the execution of the first interface.

8. The method of claim 1 , further comprising tracking an execution element associated with the first interface and wherein the policy action is taken if the second interface is not executed by the execution element.

9. The method of claim 8 , wherein the tracking includes storing an identifier of the execution element and a time of execution associated with the execution element.

10. The method of claim 8 , wherein the execution element is at least one of:

a thread; and

a fiber.

11. The method of claim 1 , wherein the call frame further includes one or more local variables for the calling code.

12. One or more non-transitory tangible media encoding logic that include instructions for execution that, when executed by a processor, is operable to perform operations comprising:

monitoring, by a processor, a first interface by directly monitoring the first interface, wherein the first interface is associated with a call stack of call frames pushed onto the call stack;

monitoring, by the processor, a second interface by:

identifying, based on a callback, a calling code associated with the second interface from one of the call frames of the call stack associated with the first interface, wherein the call frame includes a pointer to the calling code and one or more parameters passed to the calling code and wherein the calling code caused the call frame to be pushed onto the stack;

identifying a function within the calling code to determine security of the function; and

taking a policy action if the second interface is not executed before the first interface.

13. The media of claim 12 , wherein the operations further comprise:

tracking an execution element associated with the first interface and wherein the policy action is taken if the second interface is not executed by the execution element.

14. The media of claim 13 , wherein the tracking includes storing an identifier of the execution element and a time of execution associated with the execution element.

15. The media of claim 12 , wherein identifying the calling code includes:

unwinding the call frame to access each entry of the call frame;

determining whether an entry points to valid memory within a process address space; and

if the entry points to valid memory, determining whether the entry is the pointer that points to the calling code and not data within the memory.

16. The media of claim 12 , wherein the operations further comprise:

determining a type of memory pointed to by the pointer.

17. The media of claim 16 , wherein the type of memory is at least one of:

memory backed by a loaded executable application file;

memory not backed by a loaded executable application file; and

memory containing interpreted code.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2011
From: DALCHER, GREGORY W.
To: MCAFEE, INC.
Reel/Frame 026767/0441 →
Continuity (1)
Related Publication 20130047255A1 · Feb 21, 2013