IP Library Granted Patent US 9,935,969
Granted Patent B2
US 9,935,969 · App. 14/938,610 · Granted Apr 3, 2018

Domain classification based on client request behavior

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,935,969
App. No.
14/938,610
Granted
Apr 3, 2018
Kind
B2
Abstract

Systems and methods for domain classification using the network request behavior of clients are provided. The network requests of a plurality of clients are analyzed to determine a domain corresponding to each request. This information can be used to associate a set of domains with each individual client. Because of the reciprocal nature of a network request, the information is also used to associate a set of clients with each individual domain. Within the plurality of domains associated with the plurality of clients, there may exist known domains having a classification and unknown domains having no classification. Based on the correlation of clients and domains from their respective associations, the system generates domain classification information for at least one of the unknown domains.

Claims (62)

1. A method, comprising:

accessing network request data to determine for each of a plurality of clients one or more domains associated with requests from the client and for each of a plurality of domains one or more clients associated with requests for the domain;

iteratively generating a security ranking for each of the plurality of clients based on the one or more domains associated with requests from the client and predetermined classifications associated with the one or more domains associated with requests from the client;

iteratively generating a security ranking for each of the plurality of domains based on security rankings of the one or more clients associated with requests for the domain;

generating a domain classification for each of the plurality of domains based on the security ranking of each domain; and

processing network traffic by at least one server using the domain classification for each domain of the plurality of domains.

2. The method of claim 1 , wherein:

the security ranking for each client of the plurality of clients is based on a reciprocal determination from the security ranking of the one or more domains associated with requests from the client; and

the security ranking for each domain of the plurality of domains is based on a reciprocal determination from the security ranking of the one or more clients associated with requests for the domain.

3. The method of claim 1 , wherein:

iteratively generating the security ranking for each of the plurality of clients comprises aggregating the security ranking of the one more domains associated with requests from the client.

4. The method of claim 1 , wherein the network traffic is second network traffic, the method further comprising:

processing first network traffic to generate the network request data, the network request data including client request log data.

5. The method of claim 4 , wherein processing the second network traffic comprises:

receiving a plurality of domain name system (DNS) requests at a nameserver; and

generating a plurality of DNS replies at the nameserver for the plurality of DNS requests based on the domain classification for each of the plurality of domains.

6. The method of claim 5 , wherein:

the plurality of DNS requests includes a first DNS request for domain name information associated with the first domain; and

generating the plurality of DNS replies includes generating a first DNS reply including domain name information associated with an alternate domain in response to the first DNS request for domain name information associated with the first domain.

7. The method of claim 1 , wherein generating the domain classification for each of the plurality of domains comprises:

determining whether the security ranking for each domain indicates an association with malware; and

updating the predetermined classifications for a first domain having a security ranking that indicates an association with malware.

8. The method of claim 1 , further comprising:

testing for convergence of the security ranking for each of the plurality of clients while iteratively generating the security ranking for each of the plurality of clients; and

testing for convergence of the security ranking for each of the plurality of domains while iteratively generating the security ranking for each of the plurality of domains.

9. A computer readable storage medium having computer readable instructions for programming a processor to perform a method comprising:

accessing network request data to determine for each of a plurality of clients one or more domains associated with requests from the client and for each of a plurality of domains one or more clients associated with requests for the domain, the plurality of domains including a first set of domains having predetermined classifications;

iteratively generating a security ranking for each of the plurality of clients based on the one or more domains associated with requests from the client and the predetermined classifications of the first set of domains;

iteratively generating a security ranking for each of the plurality of domains based on security rankings of the one or more clients associated with requests for the domain;

generating domain classifications for a second set of the plurality of domains, wherein the domain classification for each domain of the second set is based on the security ranking generated for each of the plurality of domains; and

processing network traffic by at least one server using the domain classifications for the second set of the plurality of domains.

10. The computer readable storage medium of claim 9 , wherein iteratively generating the security ranking for each of the plurality of domains includes:

modifying the security rankings of the one or more clients associated with requests for the domain based on a number of domains associated with each of the one or more clients; and

aggregating the modified security rankings to generate the security ranking for each of the plurality of domains.

11. The computer readable storage medium of claim 9 , wherein the network traffic is second network traffic, the method further comprises:

processing first network traffic to generate the network request data, the network request data including resource-level request data.

12. The computer readable storage medium of claim 11 , wherein processing the second network traffic comprises:

receiving, at a web server, a first resource-level request associated with a first domain of the second subset of domains; and

generating by the web server a first resource-level reply including a resource from an alternate domain based on the security ranking of the first domain.

13. The computer readable storage medium of claim 12 , wherein:

the first resource-level request includes a first domain name system (DNS) request for domain name information associated with the first domain; and

generating the first resource-level reply includes generating a first DNS reply including domain name information associated with an alternate domain in response to the first DNS request for domain name information associated with the first domain.

14. The computer readable storage medium of claim 9 , wherein generating domain classifications for the second set of the plurality of domains comprises:

determining whether the security ranking for each of the plurality of domains indicates an association with malware; and

updating the predetermined classifications for a first domain having a security ranking that indicates an association with malware.

15. A system, comprising:

at least one storage device including information related to network requests associated with a plurality of clients and a plurality of domains, the information including, for each client of the plurality of clients, one or more domains associated with the client and including, for each domain of the plurality of domains, one or more clients associated with the domain; and

a processor in communication with the at least one storage device, the processor configured to initialize a security ranking for at least one domain of the plurality of domains based on a predetermined classification associated with the at least one domain, iteratively generate a security ranking for each of the plurality of clients based on a security ranking of the one or more domains associated with the client, iteratively generate a security ranking for each of the plurality of domains based on a security ranking of the one or more clients associated with the domain, and generate a domain classification for each of the plurality of domains based on the security ranking of each domain.

16. The system of claim 15 , wherein:

the processor is configured to aggregate the security ranking for each of the one or more domains associated with each client; and

the processor is configured to aggregate the security ranking for each of the one or more clients associated with each domain.

17. The system of claim 16 , wherein:

the processor is configured to test for convergence of the security ranking for each client as part of iteratively generating the security ranking for each client; and

the processor is configured to test for convergence of the security ranking for each domain as part of iteratively generating the security ranking for each domain.

18. The system of claim 17 , wherein:

the processor is configured to determine whether a change in the security ranking for each client is within a threshold between iterations as part of testing for convergence of the security ranking for each client; and

the processor is configured to determine whether a change in the security ranking for each domain is within a threshold between iterations as part of testing for convergence of the security ranking for each domain.

19. The system of claim 15 , wherein:

the processor is configured to process first network traffic to generate the information related to network requests associated with the plurality of clients and the plurality of domains, the information including client request log data generated from a first plurality of domain name system (DNS) requests; and

the processor is configured to process second network traffic including resource-level traffic using the domain classifications generated for the plurality of domains based on the information from the first network traffic.

20. The system of claim 19 , wherein:

the processor is configured to process third network traffic including a second plurality of DNS requests using the domain classifications generated for the plurality of domains based on the information from the first network traffic.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: CISCO OPENDNS LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 038165/0343 →
CHANGE OF NAME Recorded Mar 31, 2016
From: OPENDNS, INC.
To: CISCO OPENDNS LLC
Reel/Frame 038324/0447 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: YAN, PING
To: OPENDNS, INC.
Reel/Frame 037021/0992 →