IP Library Granted Patent US 10,572,657
Granted Patent B2
US 10,572,657 · App. 15/335,953 · Granted Feb 25, 2020

Detection of object creation

Inventor: Philip Edward Hamer (Palo Alto, GA)
Assignee: Micro Focus LLC
G06F21/54G06F11/3644G06F21/554G06F8/24G06F9/4488G06F2221/031
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 10,572,657
App. No.
15/335,953
Granted
Feb 25, 2020
Kind
B2
Abstract

Examples disclosed herein relate to detecting object creation when instrumenting an application for security purposes. The examples enable determining, by an instrumenter implemented by a physical processor that implements machine readable instructions, whether to instrument a function; responsive to determining that the function should be instrumented, determining, by the instrumenter, that a base class constructor is to be called by the function; before the base class constructor is called, pushing, by the instrumenter, object related information onto a local storage registry; analyzing, by the instrumenter, the local storage registry to determine whether an object associated with the function was created based on information in the local storage registry; and responsive to determining that the object was created, applying, by the instrumenter, a security rule to the function.

Claims (69)

1. A method for detection of object creation, the method comprising:

determining, by an instrumenter implemented by a physical processor that implements machine readable instructions, whether to instrument a function, wherein determining whether to instrument the function comprises:

determining, by the instrumenter, whether the function includes a first constructor,

responsive to determining that the function includes the first constructor, determining, by the instrumenter, that a list of constructors includes the first constructor, and

determining that the function should be instrumented responsive to the list of constructors including the first constructor;

responsive to determining that the function should be instrumented, determining, by the instrumenter, that a base class constructor is to be called by the function;

before the base class constructor is called, pushing, by the instrumenter, object related information onto a local storage registry;

analyzing, by the instrumenter, the local storage registry, wherein the analyzing comprises reviewing information in the local storage registry to determine whether an object associated with the function was created; and

responsive to determining that the object was created, applying, by the instrumenter, a security rule to the function.

2. The method of claim 1 ,

wherein the list of constructors is associated with a set of security rules, and wherein the set of security rules includes the applied security rule.

3. The method of claim 2 , wherein determining whether to instrument the function further comprises:

ignoring the function responsive to determining that the list of constructors does not include the first constructor.

4. The method of claim 1 , wherein analyzing the local storage registry further comprises:

determining, by the instrumenter, that the local storage registry is empty; and

responsive to determining that the local storage registry is empty, determining, by the instrumenter, that the object was created based on the local storage registry being empty.

5. The method of claim 1 , wherein analyzing the local storage registry comprises:

determining, by the instrumenter, that an exception was thrown during construction of the object based on the object related information not matching the reviewed information in the local storage registry.

6. The method of claim 5 , wherein the object related information includes an invoking signature of the base class constructor, and wherein the method further comprises:

determining, by the instrumenter, that the exception was thrown responsive to a top item of the local storage registry not matching the invoking signature of the base class constructor.

7. The method of claim 1 , wherein analyzing the local storage registry further comprises:

determining that a new function is to be called; and

reviewing the information in the local storage registry before the new function is called.

8. The method of claim 1 , wherein the local storage registry comprises a thread-local stack.

9. A non-transitory machine-readable storage medium comprising instructions executable by a processor of a computing device for detection of object creation, the machine-readable storage medium comprising:

instructions to determine whether to instrument a function, wherein the instructions to determine whether to instrument the function comprise:

instructions to determine whether the function includes a first constructor,

instructions to, responsive to a determination that the function includes the first constructor, determine that a list of constructors includes the first constructor, and

instructions to determine that the function should be instrumented responsive to the list of constructors comprising the first constructor;

instructions to, responsive to a determination that the function should be instrumented, determine that a base class constructor is to be called;

instructions to, before the base class constructor is called, push object related information onto a local storage registry;

instructions to analyze the local storage registry, wherein the instructions to analyze the local storage registry comprise instructions to review information in the local storage registry to determine whether an object associated with the function was created; and

instructions to, responsive to a determination that the object was created, apply a security rule to the function, wherein the security rule is associated with the object associated with the function.

10. The non-transitory machine-readable storage medium of claim 9 ,

wherein the list of constructors is associated with a set of security rules, and wherein the set of security rules includes the applied security rule.

11. The non-transitory machine-readable storage medium of claim 9 ,

wherein the instructions to analyze the local storage registry comprise:

instructions to determine that the local storage registry is empty;

instructions to, responsive to a determination that the local storage registry is empty, determine that the object was created based on the local storage registry being empty,

wherein the local storage registry comprises a thread-local stack.

12. The non-transitory machine-readable storage medium of claim 9 , wherein the instructions to analyze the local storage registry comprise:

instructions to determine that an exception was thrown during construction of the object based on the object related information not matching the reviewed information in the local storage registry.

13. The non-transitory machine-readable storage medium of claim 12 , wherein the object related information includes an invoking signature of the base class constructor, and wherein the instructions further comprise:

instructions to determine that the exception was thrown responsive to a top item of the local storage registry not matching the invoking signature of the base class constructor.

14. The non-transitory machine-readable storage medium of claim 9 , wherein the instructions to analyze the local storage registry comprise:

instructions to determine a new function is to be called; and

instructions to review the information in the local storage registry before the new function is called.

15. A system for detection of object creation comprising:

a hardware processor that implements machine readable instructions to cause the system to:

determine whether to instrument a function based on a security rule, wherein the instructions to determine whether to instrument the function comprise:

instructions to determine whether the function includes a first constructor,

instructions to, responsive to a determination that the function includes the first constructor, determine that a list of constructors includes the first constructor, and

instructions to determine that the function should be instrumented responsive to the list of constructors comprising the first constructor;

responsive to a determination that the function should be instrumented, determine that a base class constructor is to be called;

before the base class constructor is called, push object related information onto a thread-local stack;

analyze the thread-local stack, wherein the instructions to analyze the thread-local stack comprise instructions to review information in the thread-local stack to determine whether an object associated with the function was created; and

responsive to a determination that the object was created, apply the security rule to the function, wherein the security rule is associated with the object associated with the function.

16. The system of claim 15 ,

wherein the list of constructors is associated with a set of security rules, and wherein the set of security rules includes the applied security rule.

17. The system of claim 15 , wherein the instructions to analyze the thread-local stack comprise instructions to:

determine that the thread-local stack is empty;

responsive to determining that the thread-local stack is empty, determine that the object was created based on the thread-local stack being empty.

18. The system of claim 15 , wherein the instructions to analyze the thread-local stack comprise instructions to:

determine that an exception was thrown during construction of the object based on the object related information not matching the reviewed information in the thread-local stack.

19. The system of claim 18 , wherein the object related information includes an invoking signature of the base class constructor, and wherein the instructions to analyze the thread-local stack comprise instructions to:

determine that the exception was thrown responsive to a top item of the thread-local stack not matching the invoking signature of the base class constructor.

20. The system of claim 15 , wherein the instructions to analyze the thread-local stack comprise instructions to:

determine a new function is to be called; and

review the information in the thread-local stack before the new function is called.

Assignments (7)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2016
From: HAMER, PHILIP EDWARD
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 040158/0865 →
Continuity (1)
Related Publication 20180121648A1 · May 3, 2018