IP Library Granted Patent US 9,807,110
Granted Patent B2
US 9,807,110 · App. 14/644,194 · Granted Oct 31, 2017

Method and system for detecting algorithm-generated domains

Inventors: James Patrick Harlacher (San Jose, CA); Aditya Sood (Jersey City, NJ); Oskar Ibatullin (San Jose, CA)
Assignee: Vectra Networks, Inc.
H04L63/1441H04L63/1408
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,807,110
App. No.
14/644,194
Granted
Oct 31, 2017
Kind
B2
Abstract

A method and system for detecting algorithm-generated domains (AGDs) is disclosed wherein domain names requested by an internal host are categorized or classified using curated data sets, active services (e.g. Internet services), and certainty scores to match domain names to domain names or IP addresses used by command and control servers.

Claims (68)

1. A computer-implemented method for detecting algorithm-generated domains (AGDs), the method comprising:

monitoring traffic within an organization's internal network, the internal network communicating with an external network through a border device, a flow preprocessor engine analyzing one or more requested domain names to identify algorithm generated domains corresponding to communications sent by an internal network client within the internal network, wherein the flow preprocessor engine is located inside the internal network;

identifying whether the one or more requested domain names correspond to potential algorithm generated domains;

determining whether the one or more requested domain names that correspond to potential algorithm generated domains exists;

categorizing the one or more requested domain names that exists using one or more curated datasets to generate domain name categorization data;

assigning the one or more requested domain names that exists to one or more bucket data structures;

assigning analysis point data values that correspond to the one or more requested domain names that exists to the one or more bucket data structures based at least in part on domain name categorization data; and

generating reporting data that the one or more requested domain names that exists indicates AGD if the analysis point data values assigned to the one or more bucket data structures exceed a threshold value.

2. The method of claim 1 , further comprising:

categorizing the one or more requested domain names using one or more active services to generate domain name categorization data.

3. The method of claim 1 , further comprising:

determining whether the one or more requested domain names is a potential algorithm generated domain; and

ignoring the one or more requested domain names that is not a potential algorithm generated domain.

4. The method of claim 3 , further comprising:

storing the reporting data for one or more domains requested by the internal network client in a database.

5. The method of claim 1 , further comprising:

specifying the analysis point value for a curated dataset, wherein the specified analysis point value is dynamically modified by a machine-learning scheme; and

analyzing the generated reporting data by the machine-learning scheme to determine whether to adjust the specified analysis point value for the curated dataset based at least on the generated reporting data.

6. The method of claim 5 , further comprising:

generating a certainty score for the one or more domains requested by the internal network client based at least in part on certainty parameters.

7. The method of claim 6 , wherein the certainty parameters are based at least in part on one or more of the following group: necessary conditions, sufficient conditions, time related conditions, or behavior conditions.

8. The method of claim 1 , wherein the one or more curated datasets comprise at least one dataset that corresponds to at least one of the following: evil twin domains, sinkholed domains, sleeper cells, ghost domains, parked domains, or bulk-registered domains.

9. The method of claim 2 , wherein the one or more active services corresponds to at least one of the following: an IP information service, a domain registration service, or a domain popularity service.

10. A system for detecting algorithm-generated domains, comprising:

a computer processor to execute a set of program code instructions;

a memory to hold the program code instructions, in which the program code instructions comprises program code to perform:

monitoring traffic within an organization's internal network, the internal network communicating with an external network through a border device, a flow preprocessor engine analyzing one or more requested domain names to identify algorithm generated domains corresponding to communications sent by an internal network client within the internal network, wherein the flow preprocessor engine is located inside the internal network;

identifying whether the one or more requested domain names correspond to potential algorithm generated domains;

determining whether the one or more requested domain names that correspond to potential algorithm generated domains exists;

categorizing-one or more requested domain names that exists using one or more curated datasets to generate domain name categorization data;

assigning the one or more requested domain names that exists to one or more bucket data structures;

assigning analysis point data values that correspond to the one or more requested domain names that exists to the one or more bucket data structures based at least in part on domain name categorization data; and

generating reporting data that the one or more requested domain names that exists indicates AGD if the analysis point data values assigned to the one or more bucket data structures exceeds a threshold value.

11. The system of claim 10 , in which the program code instructions further comprises program code to categorize the one or more requested domain names using one or more active services to generate domain name categorization data.

12. The system of claim 10 , further comprising:

determining whether the one or more requested domain names is a potential algorithm generated domain; and

ignoring the one or more requested domain names that is not a potential algorithm generated domain.

13. The system of claim 12 , in which the program code instructions further comprises program code to store the reporting data for one or more domains requested by the internal network client in a database.

14. The system of claim 10 , in which the program code instructions further comprises program code to:

specifying the analysis point value for a curated dataset, wherein the specified analysis point value is dynamically modified by a machine-learning scheme; and

analyzing the generated reporting data by the machine-learning scheme to determine whether to adjust the specified analysis point value for the curated dataset based at least on the generated reporting data.

15. The system of claim 14 , in which the program code instructions further comprises program code to generate a certainty score for the one or more domains requested by the internal network client based at least in part on certainty parameters.

16. The system of claim 15 , wherein the certainty parameters are based at least in part on one or more of the following group: necessary conditions, sufficient conditions, time related conditions, or behavior conditions.

17. The system of claim 10 , wherein the one or more curated datasets comprise at least one dataset that corresponds to the following: evil twin domains, sinkholed domains, sleeper cells, ghost domains, parked domains, or bulk-registered domains.

18. The system of claim 11 , wherein one or more the active services corresponds to at least one of the following: an IP information service, a domain registration service, or a domain popularity service.

19. A computer program product embodied on a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a method for detecting algorithm-generated domains (AGDs), the method comprising:

monitoring traffic within an organization's internal network, the internal network communicating with an external network through a border device, a flow preprocessor engine analyzing one or more requested domain names to identify algorithm generated domains corresponding to communications sent by an internal network client within the internal network, wherein the flow preprocessor engine is located inside the internal network;

identifying whether the one or more requested domain names correspond to potential algorithm generated domains;

determining whether the one or more requested domain names that correspond to potential algorithm generated domains exists;

categorizing one or more requested domain names that exists using one or more curated datasets to generate domain name categorization data;

assigning the one or more requested domain names that exists to one or more bucket data structures;

assigning analysis point data values that correspond to the one or more requested domain names that exists to the one or more bucket data structures based at least in part on domain name categorization data; and

generating reporting data that the one or more requested domain names that exists indicates AGD if the analysis point data values assigned to the one or more bucket data structures exceeds a threshold value.

20. The computer program product of claim 19 , wherein the non-transitory computer readable medium further comprises instructions which, when executed by the processor, causes the processor to execute the method further comprising:

categorizing the one or more requested domain names passively using one or more active services to generate domain name categorization data.

21. The computer program product of claim 19 , further comprising:

determining whether the one or more requested domain names is a potential algorithm generated domain; and

ignoring the one or more requested domain names that is not a potential algorithm generated domain.

22. The computer program product of claim 21 , wherein the non-transitory computer readable medium further comprises instructions which, when executed by the processor, causes the processor to execute the method further comprising:

storing the reporting data for one or more domains requested by the internal network client in a database.

23. The computer program product of claim 19 , wherein the non-transitory computer readable medium further comprises instructions which, when executed by the processor, causes the processor to execute the method further comprising:

specifying the analysis point value for a curated dataset, wherein the specified analysis point value is dynamically modified by a machine-learning scheme; and

analyzing the generated reporting data by the machine-learning scheme to determine whether to adjust the specified analysis point value for the curated dataset based at least on the generated reporting data.

24. The computer program product of claim 19 , wherein the non-transitory computer readable medium further comprises instructions which, when executed by the processor, causes the processor to execute the method further comprising:

generating a certainty score for the one or more domains requested by an internal network client based at least in part on certainty parameters.

25. The computer program product of claim 24 , wherein the certainty parameters are based at least in part on one or more of the following group: necessary conditions, sufficient conditions, time related conditions, or behavior conditions.

26. The computer program product of claim 19 , wherein the one or more curated datasets comprise at least one dataset that corresponds to the following: evil twin domains, sinkholed domains, sleeper cells, ghost domains, parked domains, or bulk-registered domains.

27. The computer program product of claim 20 , wherein the one or more active services corresponds to at least one of the following: an IP information service, a domain registration service, or a domain popularity service.

Assignments (6)
SECURITY INTEREST Recorded Oct 29, 2024
From: VECTRA AI, INC.
To: AB PRIVATE CREDIT INVESTORS LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 069061/0588 →
CHANGE OF NAME Recorded Sep 20, 2024
From: VECTRA NETWORKS, INC.
To: VECTRA AI, INC.
Reel/Frame 069012/0711 →
RELEASE OF SECURITY INTEREST Recorded Mar 19, 2021
From: SILVER LAKE WATERMAN FUND, L.P., AS AGENT
To: VECTRA AI, INC.
Reel/Frame 055656/0351 →
CHANGE OF NAME Recorded Nov 4, 2019
From: VECTRA NETWORKS, INC.
To: VECTRA AI, INC.
Reel/Frame 050925/0991 →
SECURITY INTEREST Recorded Mar 13, 2019
From: VECTRA AI, INC.
To: SILVER LAKE WATERMAN FUND, L.P., AS AGENT
Reel/Frame 048591/0071 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2016
From: HARLACHER, JAMES PATRICK; SOOD, ADITYA; IBATULLIN, OSKAR
To: VECTRA NETWORKS, INC.
Reel/Frame 038879/0906 →
Continuity (2)
Provisional Application 61951483 · Mar 11, 2014
Related Publication 20150264070A1 · Sep 17, 2015