IP Library Granted Patent US 11,354,409
Granted Patent B1
US 11,354,409 · App. 16/787,204 · Granted Jun 7, 2022

Malware detection using locality sensitive hashing of API call sequences

Inventor: Ian Kenefick (Cork, IE)
Assignee: TREND MICRO INC.
G06F21/554G06F9/547G06F21/564G06F21/566
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 11,354,409
App. No.
16/787,204
Granted
Jun 7, 2022
Kind
B1
Abstract

An agent on an endpoint computer computes a locality-sensitive hash value for an API call sequence of an executing process. This value is sent to a cloud computer which includes an API call sequence blacklist database of locality-sensitive hash values. A search is performed using a balanced tree structure of the database using the received hash value and a match is determined based upon whether or not a metric distance is under or above a distance threshold. The received value may also be compared to a white list of locality-sensitive hash values. Attribute values of the executing process are also received from the endpoint computer and may be used to inform whether or not the executing process is deemed to be malicious. An indication of malicious or not is returned to the endpoint computer and if malicious, the process may be terminated and its subject file deleted.

Claims (52)

1. A method of detecting malicious software on an endpoint computer, said method comprising:

monitoring API calls of a process executing on said endpoint computer, each API call having a unique name;

generating a string of a plurality of said names of said API calls in order of occurrence;

calculating a locality-sensitive hash value of said string;

sending a query including said locality-sensitive hash value over a network from said endpoint computer to a blacklist database of a remote server computer, said blacklist database including a plurality of blacklist locality-sensitive hash values, each of said blacklist locality-sensitive hash values in said blacklist database representing a string of API calls, wherein said blacklist locality-sensitive hash values are stored in a balanced tree; and

in response to said query, performing a search of said blacklist locality-sensitive hash values stored in nodes of said balanced tree of said blacklist database using said locality-sensitive hash value using a metric distance or an approximate metric distance and determining that said locality-sensitive hash value is similar to one of said blacklist locality-sensitive hash values in said balanced tree, wherein each node stores one of said blacklist locality-sensitive hash values, and wherein for each of said nodes other than leaf nodes numbers of said blacklist locality-sensitive hash values stored on left and right branches are approximately balanced; and

receiving, in real time, from said remote server computer an indication that said process is malicious based upon said determining.

2. A method as recited in claim 1 wherein said process is an executing version of a portable executable (PE) file.

3. A method as recited in claim 1 wherein said query includes attributes of said executing process.

4. A method as recited in claim 1 wherein said remote server computer is a cloud service.

5. A method as recited in claim 1 wherein said locality-sensitive hash values are calculated using the TLSH algorithm.

6. A method as recited in claim 1 further comprising:

terminating the collection of said names of said API calls after a length of time, after a number of API calls have been made, or when a particular API call is made.

7. A method as recited in claim 1 further comprising:

terminating said process on said endpoint computer in response to receiving said indication that said process is malicious.

8. A method of detecting malicious software on an endpoint computer, said method comprising:

receiving, at a server computer, a query over a network from a remote endpoint computer, said query including a subject locality-sensitive hash value that represents a string of ordered API calls made by an executing process on said remote endpoint computer in order of occurrence, in response to monitoring of said API calls;

accessing a blacklist database associated with said server computer, said blacklist database including a plurality of blacklist locality-sensitive hash values, each of said blacklist locality-sensitive hash values in said blacklist database representing a string of ordered API calls, wherein said blacklist locality-sensitive hash values are stored in a balanced tree;

in response to said query, performing a search of said blacklist locality-sensitive hash values stored in nodes of said balanced tree of said blacklist database using said received subject locality-sensitive hash value using a metric distance or an approximate metric distance and determining that said subject locality-sensitive hash value is similar to one of said blacklist locality-sensitive hash values, wherein each node stores one of said blacklist locality-sensitive hash values, and wherein for each of said nodes other than leaf nodes numbers of said blacklist locality-sensitive hash values stored on left and right branches are approximately balanced; and

sending, in real time, a response from said server computer to said remote endpoint computer indicating that said executing process is malicious based upon said determining.

9. A method as recited in claim 8 further comprising:

determining that said subject locality-sensitive hash value is similar to said one blacklist locality-sensitive hash value using a score that is not restricted to a range of values.

10. A method as recited in claim 8 further comprising:

determining that said subject locality-sensitive hash value is similar to said one blacklist locality-sensitive hash value when a score of said metric distance or said approximate metric distance is lower than a predetermined distance threshold.

11. A method as recited in claim 10 further comprising:

increasing said predetermined distance threshold in order to eliminate false positive results.

12. A method as recited in claim 8 wherein said locality-sensitive hash values are calculated using the TLSH algorithm.

13. A method as recited in claim 8 further comprising:

determining that at least one attribute included with said query indicates that said executing process is malicious.

14. A method of detecting malicious software on an endpoint computer, said method comprising:

generating a string of a plurality of names of API calls made by a process executing on said endpoint computer in order of occurrence in response to monitoring of said API calls;

calculating a subject locality-sensitive hash value of said string;

sending a query including said subject locality-sensitive hash value over a network from said endpoint computer to a remote server computer that includes said subject locality-sensitive hash value;

accessing, by said remote server computer, a blacklist database that includes a plurality of blacklist locality-sensitive hash values, each of said blacklist locality-sensitive hash values representing a string of API calls, wherein said blacklist locality-sensitive hash values are stored in a balanced tree;

in response to said query, performing a search of said blacklist locality-sensitive hash values stored in nodes of said balanced tree of said blacklist database using said received subject locality-sensitive hash value using a metric distance or an approximate metric distance and determining whether or not said subject locality-sensitive hash value is similar to one of said blacklist locality-sensitive hash values, wherein each node stores one of said blacklist locality-sensitive hash values, and wherein for each of said nodes other than leaf nodes numbers of said blacklist locality-sensitive hash values stored on left and right branches are approximately balanced; and

sending, in real time, a response from said remote server computer to said endpoint computer indicating whether or not said executing process is malicious based upon said determining.

15. A method as recited in claim 14 further comprising:

determining that said subject locality-sensitive hash value is similar to one of said blacklist locality-sensitive hash values;

determining that at least one attribute of said executing process included in said query indicates that said executing process is not malicious; and

sending said response to said endpoint computer indicating that said executing process is not malicious.

16. A method as recited in claim 14 further comprising:

determining that said subject locality-sensitive hash value is not similar to any of said blacklist locality-sensitive hash values;

determining that at least one attribute of said executing process included in said query indicates that said executing process is malicious; and

sending said response to said endpoint computer indicating that said executing process is malicious.

17. A method as recited in claim 15 further comprising:

determining that said subject locality sensitive hash value is similar to one of said blacklist locality-sensitive hash values because a value of said metric distance or said approximate metric distance is below a predetermined distance threshold.

18. A method as recited in claim 16 further comprising:

determining that said subject locality-sensitive hash value is not similar to one of said blacklist locality-sensitive hash values because a value of said metric distance or said approximate metric distance is above a predetermined distance threshold.

19. The method as recited in claim 14 further comprising:

determining whether or not said subject locality-sensitive hash value is similar to one of said blacklist locality-sensitive hash values by comparing a value of said metric distance or said approximate metric distance to a predetermined distance threshold.

20. The method as recited in claim 1 wherein for each of said nodes other than leaf nodes approximately 50% of said blacklist locality-sensitive hash values that are on child nodes of said each node are stored on a left branch and approximately 50% of said blacklist locality-sensitive hash values that are on child nodes of said each node are stored on a right branch.

21. The method as recited in claim 20 wherein said performing a search of said blacklist locality-sensitive hash values in said balanced tree is performed by recursively comparing said locality-sensitive hash value with one of said blacklist locality-sensitive hash values found on a node of said balanced tree, and branching down said balanced tree on said left branch or said right branch depending on a result of said comparison.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2020
From: KENEFICK, IAN
To: TREND MICRO INC.
Reel/Frame 051781/0753 →
Cited By (10)
US 12,242,598 US 12,511,389 US 12,536,281 US 12,572,648 US 12,591,675 US 12,610,314 US 12,613,962 US 12,713,339 US 12,717,641 US 12,717,915