IP Library › Granted Patent US 9,817,971
Granted Patent B2
US 9,817,971 · App. 14/926,216 · Granted Nov 14, 2017

Using call stack snapshots to detect anomalous computer behavior

Inventors: Ron Peleg (Tel-Aviv, IL); Amir Ronen (Haifa, IL); Tamer Salman (Haifa, IL); Shmuel Regev (Tel-Aviv, IL); Ehud Aharoni (Kfar Saba, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F21/554G06N7/005G06F2221/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,817,971
App. No.
14/926,216
Filed
Oct 29, 2015
Granted
Nov 14, 2017
Kind
B2
Art Unit
2494
USPC
726/23
Abstract

Detecting computer anomalies by determining probabilities of encountering call stack configurations at various depths, the call stacks being associated with software application instances on computers having the same operating system, where snapshots of the call stacks are recorded on the computers responsive to detecting predefined software application events, determining entropies of call stack configurations at various call stack depths using their associated probabilities, determining stack frame rarity scores of call stack configurations at various depths based on their associated stack frame entropies in accordance with a predefined rarity function, determining a call stack rarity score of any given call stack configuration as the maximum stack frame rarity score of the given configuration, and detecting an anomaly associated with any given one of the computers where any of the snapshots recorded on the given computer is of a call stack whose call stack rarity score meets a predefined anomaly condition.

Claims (35)

1. A computer anomaly detection and software execution management system comprising:

a monitoring agent configured to monitor, on each of a plurality of computers running the same operating system, the execution of a software application on each of the computers, wherein the software application is executed in at least one instance on each of the computers;

a scoring module configured to

determine stack frame probabilities of encountering various configurations of multiple call stacks at various call stack depths,

wherein the call stacks are associated with the instances of the software application on the computers, and

wherein multiple snapshots of the call stacks are recorded on the computers responsive to detecting a predefined event in connection with the software application,

determine stack frame entropies of various configurations of the call stacks at various call stack depths based on their associated stack frame probabilities,

determine stack frame rarity scores of various configurations of the call stacks at various call stack depths based on their associated stack frame entropies in accordance with a predefined rarity function, and

determine a call stack rarity score of any given configuration of the call stacks as the maximum stack frame rarity score of the given configuration; and

an anomaly detector configured to detect an anomaly associated with any given one of the computers wherein any of the snapshots recorded on the given computer is of a call stack whose call stack rarity score meets a predefined anomaly condition,

wherein the monitoring agent is configured to terminate any of the execution instances of the software application on any of the computers with which the anomaly is associated.

2. The system of claim 1 wherein the monitoring agent is configured to

record the snapshots on the computers.

3. The system of claim 1 wherein the anomaly detector is configured to rank the computers according to their associated call stack rarity scores of their associated snapshots for the predefined event detected for the software application.

4. The system of claim 1 wherein the predefined anomaly condition is that a representative stack prefix based on the fewest stack frames associated with the call stack rarity score was not previously found in the snapshots.

5. The system of claim 1 wherein the anomaly detector is configured to apply a machine learning algorithm to the call stack rarity scores to determine that any call stack configuration of any of the snapshots is anomalous.

6. The system of claim 1 wherein the anomaly detector is configured to apply a machine learning algorithm to representative stack prefixes based on the fewest stack frames associated with any of the call stack rarity scores to determine that any call stack configuration of any of the snapshots is anomalous.

7. A computer program product for computer anomaly detection and software execution management, the computer program product comprising:

a non-transitory, computer-readable storage medium; and

computer-readable program code embodied in the storage medium, wherein the computer-readable program code is configured to

monitor, on each of a plurality of computers running the same operating system, the execution of a software application on each of the computers, wherein the software application is executed in at least one instance on each of the computers,

determine stack frame probabilities of encountering various configurations of multiple call stacks at various call stack depths,

wherein the call stacks are associated with the instances of the software application on the computers, and

wherein multiple snapshots of the call stacks are recorded on the computers responsive to detecting a predefined event in connection with the software application,

determine stack frame entropies of various configurations of the call stacks at various call stack depths based on their associated stack frame probabilities,

determine stack frame rarity scores of various configurations of the call stacks at various call stack depths based on their associated stack frame entropies in accordance with a predefined rarity function,

determine a call stack rarity score of any given configuration of the call stacks as the maximum stack frame rarity score of the given configuration,

detect an anomaly associated with any given one of the computers wherein any of the snapshots recorded on the given computer is of a call stack whose call stack rarity score meets a predefined anomaly condition, and

terminate any of the execution instances of the software application on any of the computers with which the anomaly is associated.

8. The computer program product of claim 7 wherein the computer-readable program code is configured to

record the snapshots on the computers.

9. The computer program product of claim 7 wherein the computer-readable program code is configured to rank the computers according to their associated call stack rarity scores of their associated snapshots for the predefined event detected for the software application.

10. The computer program product of claim 7 wherein the predefined anomaly condition is that a representative stack prefix based on the fewest stack frames associated with the call stack rarity score was not previously found in the snapshots.

11. The computer program product of claim 7 wherein the computer-readable program code is configured to apply a machine learning algorithm to the call stack rarity scores to determine that any call stack configuration of any of the snapshots is anomalous.

12. The computer program product of claim 7 wherein the computer-readable program code is configured to apply a machine learning algorithm to representative stack prefixes based on the fewest stack frames associated with any of the call stack rarity scores to determine that any call stack configuration of any of the snapshots is anomalous.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2015
From: PELEG, RON; RONEN, AMIR; SALMAN, TAMER; REGEV, SHMUEL; AHARONI, EHUD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036911/0569 →
Continuity (1)
Related Publication 20170124324A1 · May 4, 2017