IP Library Granted Patent US 9,811,356
Granted Patent B2
US 9,811,356 · App. 14/611,024 · Granted Nov 7, 2017

Automated software configuration management

Inventors: Jonathan Whitney (Albany, CA); Ido Carmel (San Francisco, CA); Steffen Yount (San Francisco, CA)
Assignee: AppDynamics LLC
G06F9/44505G06F8/60G06F8/71G06F9/44521
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,811,356
App. No.
14/611,024
Granted
Nov 7, 2017
Kind
B2
Abstract

A system uses agents to monitor a distributed business transaction as well as monitor changes in software configuration. An agent may detect a file load, such a class load, obtain portions of the file such as functions, and perform a hash on the byte code functions. A hash tree may then be constructed and compared to previous states of the system. The hash tree may be generated, for example, at each file loading detected, so that system states can be compared. Differences in hash trees are detected and the changes are reported to an administrator of the system that provides the distrusted business transaction.

Claims (36)

1. A method for managing software configuration during runtime, comprising:

detecting, by an agent installed on an application server, at runtime loading of a file in an application, the application being one of a plurality of applications that provide a distributed business transaction;

responsive to the detecting, identifying, by the agent, components of the loaded file in byte code;

performing, by the agent, a hash of the components of the loaded file to generate corresponding hash values;

constructing a hash tree from the generated hash values;

determining whether a previously constructed hash tree from a previously detected load of a file is available to perform a comparison;

comparing the constructed hash tree against the previously constructed hash tree to identify a difference in bytecode, wherein the identified difference includes identification of a distrusted business transaction by tracking one or more changes to blocks of byte code inside the loaded file; and

reporting results of the comparison.

2. The method of claim 1 , wherein the components include functions and data, and wherein the hash is performed on the functions.

3. The method of claim 1 , wherein the components include portions of a configuration file.

4. The method of claim 1 , wherein constructing the hash tree includes constructing a Merkle tree from the hash values.

5. The method of claim 1 , including constructing the hash tree responsive to detection of each loading of a file.

6. A non-transitory computer-readable storage medium having embodied thereon a program, the program being executable by a processor to perform operations for managing software configuration, the operations including:

detecting, by an agent installed on an application server, at runtime loading of a file in an application, the application being one of a plurality of applications that provide a distributed business transaction;

responsive to the detecting, identifying, by the agent, components of the loaded file in byte code;

performing, by the agent, a hash of the components of the loaded file to generate corresponding hash values;

constructing a hash tree from the generated hash values;

determining whether a previously constructed hash tree from a previously detected load of a file is available to perform a comparison;

comparing the constructed hash tree against the previously constructed hash tree to identify a difference in bytecode, wherein the identified difference includes identification of a distrusted business transaction by tracking one or more changes to blocks of byte code inside the loaded file; and

reporting results of the comparison.

7. The non-transitory computer-readable storage medium of claim 6 , wherein the components include functions and data, and wherein the hash is performed on the functions.

8. The non-transitory computer-readable storage medium of claim 6 , wherein the components include portions of a configuration file.

9. The non-transitory computer-readable storage medium of claim 6 , including constructing a hash tree responsive to detection of each loading of a file.

10. A system for managing software configuration for delivering an agent on a machine, the system comprising:

a processor; memory; and

one or more modules stored in memory and executable by the processor to perform operations including:

detect at runtime loading of a file in an application, the application being one of a plurality of applications that provide a distributed business transaction;

responsive to the detecting, identifying components of the loaded file in byte code;

perform a hash of the components of the loaded file to generate corresponding hash values;

construct a hash tree from the generated hash values;

determine whether a previously constructed hash tree from a previously detected load of a file is available to perform a comparison;

compare the constructed hash tree against the previously constructed hash tree to identify a difference in bytecode, wherein the identified difference includes identification of a distrusted business transaction by tracking one or more changes to blocks of byte code inside the loaded file; and

report results of the comparison.

11. The system of claim 10 , wherein the components include functions and data, and wherein the hash is performed on the functions.

12. The system of claim 10 , wherein the components include portions of a configuration file.

13. The system of claim 10 , including constructing a hash tree responsive to detection of each loading of a file.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2017
From: APPDYNAMICS LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 044173/0050 →
CHANGE OF NAME Recorded Jun 23, 2017
From: APPDYNAMICS, INC.
To: APPDYNAMICS LLC
Reel/Frame 042964/0229 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THIRD INVENTOR'S NAME PREVIOUSLY RECORDED ON REEL 035781 FRAME 0649. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 6, 2017
From: WHITNEY, JONATHAN; CARMEL, IDO; YOUNT, STEFFEN
To: APPDYNAMICS, INC.
Reel/Frame 041895/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2015
From: WHITNEY, JONATHAN; CARMEL, IDO; YOUNT, STEFEN
To: APPDYNAMICS, INC.
Reel/Frame 035781/0649 →
Continuity (1)
Related Publication 20160224329A1 · Aug 4, 2016