IP Library Granted Patent US 10,984,111
Granted Patent B2
US 10,984,111 · App. 16/426,338 · Granted Apr 20, 2021

Data driven parser selection for parsing event logs to detect security threats in an enterprise system

Inventors: Ahtesham Akhtar Patel (Bangalore, IN); Ratheesh Nair (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F21/577G06F16/1734G06F16/322G06F16/335G06F16/3335G06F16/353G06F40/211G06Q10/0635
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,984,111
App. No.
16/426,338
Granted
Apr 20, 2021
Kind
B2
Abstract

A method includes obtaining an incoming event log, splitting the incoming event log into a set of tokens, and identifying a subset of the tokens as anchor tokens. The method also includes utilizing an ordered list of the anchor tokens to traverse through a set of anchor token trees and, responsive to identifying a path from (i) a root node of a given one of the anchor token trees to (ii) a given leaf node of the given anchor token tree corresponding to the ordered list of the anchor tokens, selecting a given parser associated with the given leaf node. The method further includes extracting data from the incoming event log utilizing the given parser, detecting one or more security threats affecting at least one asset in an enterprise system based on the extracted data, and applying at least one remediation action to mitigate the detected security threats.

Claims (84)

1. A method comprising:

obtaining an incoming event log associated with one or more of a plurality of assets in an enterprise system;

splitting the incoming event log into a set of tokens;

identifying a subset of the set of tokens of the incoming event log as anchor tokens;

utilizing an ordered list of the anchor tokens of the incoming event log to traverse through a set of anchor token trees;

responsive to identifying a path from (i) a root node of a given one of the anchor token trees to (ii) a given leaf node of the given anchor token tree corresponding to the ordered list of the anchor tokens of the incoming event log, selecting a given parser associated with the given leaf node of the given anchor token tree;

extracting data from the incoming event log utilizing the given parser;

detecting one or more security threats affecting at least one of the plurality of assets in the enterprise system based at least in part on the extracted data; and

applying at least one remediation action to one or more of the plurality of assets in the enterprise system to mitigate at least one of the detected security threats;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The method of claim 1 wherein splitting the incoming event log into the set of tokens comprises:

separating text of the incoming event log based on one or more pre-defined delimiters;

removing one or more textual strings corresponding to a designated set of stop words; and

classifying each of the remaining textual strings as one of a string literal token and a variable token.

3. The method of claim 2 wherein identifying a subset of the set of tokens as anchor tokens comprises selecting textual strings classified as string literal tokens that match textual strings in a list of potential anchor tokens as the anchor tokens for the incoming event log.

4. The method of claim 3 further comprising:

tokenizing a collection of event logs to identify a plurality of tokens;

removing ones of the plurality of tokens corresponding to pre-defined stop words;

creating a frequency distribution of the plurality of tokens; and

generating the list of potential anchor tokens by extracting a subset of the plurality of tokens based at least in part on frequencies of occurrence of the plurality of tokens in the frequency distribution.

5. The method of claim 2 further comprising labeling a given one of the variable tokens with a given meta value by passing the textual string of the given variable token through a pattern matching filter for a set of pre-defined token types.

6. The method of claim 5 wherein the set of pre-defined token types comprise at least one of an Internet Protocol (IP) address, a username, an email address, a date, an event category, a media access control (MAC) address, a uniform resource identifier (URI) path and a file system path.

7. The method of claim 1 further comprising analyzing a collection of event logs to generate the set of anchor token trees, wherein generating the set of anchor token trees comprises:

extracting, in order of occurrence, anchor tokens in a given one of the event logs of the collection;

selecting an anchor token tree, wherein selecting the anchor token tree comprises:

if an anchor token tree is available with a root node corresponding to a first anchor token in the given event log, selecting that anchor token tree and moving to a next level of that anchor token tree; and

if an anchor token tree is not available with a root node corresponding to the first anchor token in the given event log, creating a new anchor token tree with a root node having a value of the first anchor token in the given event log and moving to a next level of the new anchor token tree;

for subsequent anchor tokens in the given event log:

searching a current level of the selected anchor token tree;

if a node in the current level of the selected anchor token tree is present with a same value as the subsequent anchor token, moving to a next level of the selected anchor token tree or, if the subsequent anchor token is a last anchor token in the given event log, setting the node in the current level of the selected anchor token tree as a leaf node corresponding to a parser for the given event log; and

if a node in the current level of the selected anchor token tree is not present with the same value as the subsequent anchor token, creating a new node with the same value as the subsequent anchor token and moving to a next level of the selected anchor token tree or, if the subsequent anchor token is a last anchor token in the given event log, setting the node in the current level of the selected anchor token tree as a leaf node corresponding to a parser for the given event log.

8. The method of claim 1 wherein utilizing the ordered list of the anchor tokens of the incoming event log to traverse through the set of anchor token trees comprises:

matching a first anchor token in the ordered list of anchor tokens of the incoming event log to the given root node of the given anchor token tree; and

matching, in order, subsequent tokens in the ordered list of anchor tokens of the incoming event log along a branch of the given anchor token tree until a last anchor token in the ordered list of anchor tokens matches the given leaf node of the given anchor token tree.

9. The method of claim 1 wherein utilizing the ordered list of the anchor tokens of the incoming event log to traverse through the set of anchor token trees comprises failing to identify a root node of any of the set of anchor token trees matching a first anchor token in the ordered list of anchor tokens of the incoming event log.

10. The method of claim 9 further comprising:

selecting the given parser by comparing the incoming event log against a plurality of available parsers not represented by a path from a root node to a leaf node of one of the set of available anchor token trees until a match is found between the set of tokens of the incoming event log and a pattern of one of the plurality of parsers; and

creating a new anchor token tree comprising a new root node and a path from the new root node to a new leaf node corresponding to the given parser.

11. The method of claim 1 wherein utilizing the ordered list of the anchor tokens of the incoming event log to traverse through the set of anchor token trees comprises identifying the given root node matching a first anchor token in the ordered list of anchor tokens of the incoming event log but failing to identify a leaf node of the given anchor token tree corresponding to a last anchor token in the ordered list of anchor tokens of incoming event log.

12. The method of claim 11 further comprising:

selecting the given parser by comparing the incoming event log against a plurality of available parsers not represented by a path from a root node to a leaf node of one of the set of available anchor token trees until a match is found between the set of tokens of the incoming event log and a pattern of one of the plurality of parsers; and

creating a new branch of the given anchor token tree comprising a path from the given root node to a new leaf node corresponding to the given parser.

13. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device:

to obtain an incoming event log associated with one or more of a plurality of assets in an enterprise system;

to split the incoming event log into a set of tokens;

to identify a subset of the set of tokens of the incoming event log as anchor tokens;

to utilize an ordered list of the anchor tokens of the incoming event log to traverse through a set of anchor token trees;

responsive to identifying a path from (i) a root node of a given one of the anchor token trees to (ii) a given leaf node of the given anchor token tree corresponding to the ordered list of the anchor tokens of the incoming event log, to select a given parser associated with the given leaf node of the given anchor token tree;

to extract data from the incoming event log utilizing the given parser;

to detect one or more security threats affecting at least one of the plurality of assets in the enterprise system based at least in part on the extracted data; and

to apply at least one remediation action to one or more of the plurality of assets in the enterprise system to mitigate at least one of the detected security threats.

14. The computer program product of claim 13 wherein utilizing the ordered list of the anchor tokens of the incoming event log to traverse through the set of anchor token trees comprises:

matching a first anchor token in the ordered list of anchor tokens of the incoming event log to the given root node of the given anchor token tree; and

matching, in order, subsequent tokens in the ordered list of anchor tokens of the incoming event log along a branch of the given anchor token tree until a last anchor token in the ordered list of anchor tokens matches the given leaf node of the given anchor token tree.

15. The computer program product of claim 13 wherein utilizing the ordered list of the anchor tokens of the incoming event log to traverse through the set of anchor token trees comprises:

failing to identify a root node of any of the set of anchor token trees matching a first anchor token in the ordered list of anchor tokens of the incoming event log;

selecting the given parser by comparing the incoming event log against a plurality of available parsers not represented by a path from a root node to a leaf node of one of the set of available anchor token trees until a match is found between the set of tokens of the incoming event log and a pattern of one of the plurality of parsers; and

creating a new anchor token tree comprising a new root node and a path from the new root node to a new leaf node corresponding to the given parser.

16. The computer program product of claim 13 wherein utilizing the ordered list of the anchor tokens of the incoming event log to traverse through the set of anchor token trees comprises:

identifying the given root node matching a first anchor token in the ordered list of anchor tokens of the incoming event log but failing to identify a leaf node of the given anchor token tree corresponding to a last anchor token in the ordered list of anchor tokens of incoming event log;

selecting the given parser by comparing the incoming event log against a plurality of available parsers not represented by a path from a root node to a leaf node of one of the set of available anchor token trees until a match is found between the set of tokens of the incoming event log and a pattern of one of the plurality of parsers; and

creating a new branch of the given anchor token tree comprising a path from the given root node to a new leaf node corresponding to the given parser.

17. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to obtain an incoming event log associated with one or more of a plurality of assets in an enterprise system;

to split the incoming event log into a set of tokens;

to identify a subset of the set of tokens of the incoming event log as anchor tokens;

to utilize an ordered list of the anchor tokens of the incoming event log to traverse through a set of anchor token trees;

responsive to identifying a path from (i) a root node of a given one of the anchor token trees to (ii) a given leaf node of the given anchor token tree corresponding to the ordered list of the anchor tokens of the incoming event log, to select a given parser associated with the given leaf node of the given anchor token tree;

to extract data from the incoming event log utilizing the given parser;

to detect one or more security threats affecting at least one of the plurality of assets in the enterprise system based at least in part on the extracted data; and

to apply at least one remediation action to one or more of the plurality of assets in the enterprise system to mitigate at least one of the identified security threats.

18. The apparatus of claim 17 wherein utilizing the ordered list of the anchor tokens of the incoming event log to traverse through the set of anchor token trees comprises:

matching a first anchor token in the ordered list of anchor tokens of the incoming event log to the given root node of the given anchor token tree; and

matching, in order, subsequent tokens in the ordered list of anchor tokens of the incoming event log along a branch of the given anchor token tree until a last anchor token in the ordered list of anchor tokens matches the given leaf node of the given anchor token tree.

19. The apparatus of claim 17 wherein utilizing the ordered list of the anchor tokens of the incoming event log to traverse through the set of anchor token trees comprises:

failing to identify a root node of any of the set of anchor token trees matching a first anchor token in the ordered list of anchor tokens of the incoming event log;

selecting the given parser by comparing the incoming event log against a plurality of available parsers not represented by a path from a root node to a leaf node of one of the set of available anchor token trees until a match is found between the set of tokens of the incoming event log and a pattern of one of the plurality of parsers; and

creating a new anchor token tree comprising a new root node and a path from the new root node to a new leaf node corresponding to the given parser.

20. The apparatus of claim 17 wherein utilizing the ordered list of the anchor tokens of the incoming event log to traverse through the set of anchor token trees comprises:

identifying the given root node matching a first anchor token in the ordered list of anchor tokens of the incoming event log but failing to identify a leaf node of the given anchor token tree corresponding to a last anchor token in the ordered list of anchor tokens of incoming event log;

selecting the given parser by comparing the incoming event log against a plurality of available parsers not represented by a path from a root node to a leaf node of one of the set of available anchor token trees until a match is found between the set of tokens of the incoming event log and a pattern of one of the plurality of parsers; and

creating a new branch of the given anchor token tree comprising a path from the given root node to a new leaf node corresponding to the given parser.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2019
From: PATEL, AHTESHAM AKHTAR; NAIR, RATHEESH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049319/0534 →