IP Library Granted Patent US 10,728,277
Granted Patent B2
US 10,728,277 · App. 16/148,241 · Granted Jul 28, 2020

Malicious software detection in a computing system

Inventors: Drew Dennison (Palo Alto, CA); Geoff Stowe (San Francisco, CA); Adam Anderson (San Francisco, CA)
Assignee: Palantir Technologies Inc.
H04L63/145G06F21/552G06F21/566H04L63/1408G06F2221/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 10,728,277
App. No.
16/148,241
Granted
Jul 28, 2020
Kind
B2
Abstract

A computer system identifies malicious Uniform Resource Locator (URL) data items from a plurality of unscreened data items that have not been previously identified as associated with malicious URLs. The system can execute a number of pre-filters to identify a subset of URLs in the plurality of data items that are likely to be malicious. A scoring processor can score the subset of URLs based on a plurality of input vectors using a suitable machine learning model. Optionally, the system can execute one or more post-filters on the score data to identify data items of interest. Such data items can be fed back into the system to improve machine learning or can be used to provide a notification that a particular resource within a local network is infected with malicious software.

Claims (86)

1. A computer system for detecting malicious software, the computer system comprising:

one or more computer-readable storage devices including computer executable instructions; and

one or more processors configured to execute the computer executable instructions in order to:

access connection records that include respective locational references to computerized resources external to a local network which computerized devices within the local network have accessed or attempted to access;

perform one or more filtering operations on the connection records, wherein the one or more filtering operations include:

identifying, within the connection records, a first subset of the connection records associated with a first locational reference;

determining first n-gram distribution data indicating a frequency of each n-length character combination that occurs as an n-length window moves across at least parts of one or more filepaths associated with the first subset of the connection records, the n-lengths being two or more characters;

accessing second n-gram distribution data representing an expected n-gram distribution associated with likely non-malicious locational references;

comparing the first n-gram distribution data with the second n-gram distribution data to determine a variance; and

at least in part in response to the variance exceeding a threshold, transmitting an indicator for display, the indicator indicating the first locational reference is likely to compromise security;

score at least some of the first subset of the connection records using a machine learning model incorporating a factor relating to the first locational reference; and

perform one or more additional filtering operations on the scored first subset of the connection records to identify a second subset of the scored first subset of the connection records,

wherein the one or more additional filtering operations identify, within the scored first subset of the connection records, the second subset of the scored first subset of the connection records, and the second subset of the scored first subset of the connection records are more likely to be malicious than locational references associated with connection records in the scored first subset of the connection records that are not included in the second subset of the scored first subset of the connection records.

2. The computer system of claim 1 , wherein the machine learning model incorporates a plurality of factors based on at least one of the one or more filtering operations.

3. The computer system of claim 1 , wherein the machine learning model comprises at least one of: a Support Vector Machine model, a Neural Network model, a Decision Tree model, a Naïve Bayes model, or a Logistic Regression model.

4. The computer system of claim 1 , wherein the one or more filtering operations includes a filtering operation comprising:

parsing the respective locational references associated with a certain connection record in the connection records for a domain name; and

based on a determination that the domain name does not satisfy a threshold position in a list of domain names satisfying a ranking condition based on Internet traffic data, identifying the certain connection record to be in the first subset of the connection records.

5. The computer system of claim 1 , wherein the one or more filtering operations includes a filtering operation comprising:

parsing the respective locational references associated with a certain connection record in the connection records for a domain name; and

based on a determination that the domain name is not included in a set of domain names associated with a set of locational references in a set of communications involving the local network from a period of time, identifying the certain connection record to be in the first subset of the connection records.

6. The computer system of claim 1 , wherein the one or more filtering operations includes a filtering operation comprising:

parsing the respective locational references associated with a certain connection record in the connection records for a domain name; and

based on a determination that the domain name is not included in a plurality of dictionary words, identifying the certain connection record to be in the first subset of the connection records.

7. The computer system of claim 1 , wherein the one or more filtering operations includes a filtering operation comprising:

parsing the respective locational references associated with a certain connection record in the connection records for a filepath; and

based on a determination that the filepath is in a plurality of filepaths associated with a set of locational references in a set of communications involving the local network from a period of time, identifying the certain connection record to be in the first subset of the connection records.

8. The computer system of claim 1 , wherein determining the first n-gram distribution data includes:

parsing the first subset of the connection records to identify the one or more filepaths;

determining the frequency of each n-length character combination identified in one or more filepaths; and

generating the first n-gram distribution data based on how frequently each n-gram of the plurality of n-grams occurs in the one or more filepaths.

9. The computer system of claim 1 , wherein the one or more filtering operations includes a filtering operation comprising:

parsing the respective locational references associated with a certain connection record in the connection records for a domain name;

accessing a list of words associated with malicious locational references;

transmitting, to an Internet search engine providing an autocomplete function that automatically displays words to complete a query entered into the Internet search engine, a first query comprising the domain name;

receiving, from the Internet search engine, the words displayed in response to the first query; and

based on a determination that at least one of the words is in a list of words associated with malicious locational references, identifying the certain connection record to be in the first subset of the connection records.

10. The computer system of claim 1 , wherein the one or more filtering operations includes a filtering operation comprising:

parsing the respective locational references associated with a certain connection record in the connection records for a domain name; and

based on a registration date of the domain name, identifying the certain connection record to be in the first subset of the connection records.

11. A filtering system for filtering connection records, the filtering system including:

a computer-readable storage device storing computer executable instructions and one or more hardware computer processors configured to execute the computer executable instructions in order to:

access connection records that include respective locational references to computerized resources external to a local network which computer devices within the local network have accessed or attempted to access;

perform one or more filtering operations on the connection records, wherein the one or more filtering operations include:

identifying, within the connection records, a first subset of the connection records associated with a first locational reference;

determining first n-gram distribution data indicating a frequency of each n-length character combination that occurs as an n-length window moves across at least parts of one or more filepaths associated with the first subset of the connection records, the n-length being two or more characters;

accessing second n-gram distribution data indicating frequencies of n-grams in other filepaths associated with non-malicious locational references;

comparing the first n-gram distribution data with the second n-gram distribution data to determine a variance; and

at least in part in response to the variance exceeding a threshold, transmitting an indicator for display, the indicator indicating that the first locational reference is likely to compromise security;

score at least some of the first subset of the connection records using a machine learning model incorporating a factor relating to the first locational reference; and

perform one or more additional filtering operations on the scored first subset of the connection records to identify a second subset of the scored first subset of the connection records,

wherein the one or more additional filtering operations identify, within the scored first subset of the connection records, the second subset of the scored first subset of the connection records, and the second subset of the scored first subset of the connection records are more likely to be malicious than locational references associated with connection records in the scored first subset of the connection records that are not included in the second subset of the scored first subset of the connection records.

12. The filtering system of claim 11 , wherein the computer executable instructions further cause the one or more hardware computer processors to:

assign a score to at least some of the first subset of the connection records based on a plurality of factors relating to locational references associated with the first subset of the connection records; and

perform one or more different filtering operations on the scored first subset of the connection records to identify a second subset of the scored first subset of the connection records, wherein the second subset of the scored first subset of the connection records is more likely to be associated with malicious locational references than connection records that are included in the scored first subset of the connection records but are not included in the second subset of the scored first subset of the connection records.

13. The filtering system of claim 11 , wherein the computer executable instructions further cause the one or more hardware computer processors to:

parse the respective locational references associated with a certain connection record for a domain name; and

determine whether the domain name satisfies a threshold position in a list of domain names satisfying a ranking condition based on Internet traffic data.

14. The filtering system of claim 11 , wherein the computer executable instructions further cause the one or more hardware computer processors to:

parse the respective locational references associated with a certain connection record in the connection records for a domain name; and

determine that the domain name is not included in a set of domain names associated with a set of locational references in a set of communications involving the local network from a period of time.

15. The filtering system of claim 11 , wherein the computer executable instructions further cause the one or more hardware computer processors to:

parse the respective locational references associated with a certain connection record in the connection records for a filepath; and

determine that the filepath is in a plurality of filepaths associated with a set of locational references in a set of communications involving the local network from a period of time.

16. The filtering system of claim 11 , wherein determining the first n-gram distribution data includes:

parsing the first subset of the connection records to identify the one or more filepaths;

determining the frequency of each n-length character combination identified in one or more filepaths; and

generating the first n-gram distribution data based on how frequently each n-gram of the plurality of n-grams occurs in the one or more filepaths.

17. The filtering system of claim 11 , wherein the computer executable instructions further cause the one or more hardware computer processors to:

parse the respective locational references associated with a certain connection record in the connection records for a domain name;

access a list of words associated with malicious locational references;

transmit, to an Internet search engine providing an autocomplete function that automatically displays words to complete a query entered into the Internet search engine, a first query comprising the domain name;

receive, from the Internet search engine, the words displayed in response to the first query; and

determine that at least one of the words is in a list of words associated with malicious locational references.

18. The computer system of claim 8 , wherein the respective locational references comprise domain names, and wherein the one or more filepaths comprises URL information following the domain names.

19. A filtering system for filtering connection records, the filtering system including:

a computer-readable storage device storing computer executable instructions and one or more hardware computer processors configured to execute the computer executable instructions in order to:

access connection records that include respective locational references to computerized resources external to a local network which computer devices within the local network have accessed or attempted to access;

parse the respective locational references associated with a certain connection record in the connection records for a domain name;

determine that the domain name is not included in a plurality of dictionary words; and

perform one or more filtering operations on the connection records, wherein the one or more filtering operations include:

identifying, within the connection records, a first subset of the connection records associated with a first locational reference;

determining first n-gram distribution data indicating a frequency of each n-length character combination that occurs as an n-length window moves across at least parts of one or more filepaths associated with the first subset of the connection records, the n-length being two or more characters;

accessing second n-gram distribution data indicating frequencies of n-grams in other filepaths associated with non-malicious locational references;

comparing the first n-gram distribution data with the second n-gram distribution data to determine a variance; and

at least in part in response to the variance exceeding a threshold, transmitting an indicator for display, the indicator indicating that the first locational reference is likely to compromise security.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2018
From: DENNISON, DREW; STOWE, GEOFF; ANDERSON, ADAM
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 047020/0565 →