IP Library Granted Patent US 9,003,518
Granted Patent B2
US 9,003,518 · App. 12/873,553 · Granted Apr 7, 2015

Systems and methods for detecting covert DNS tunnels

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,003,518
App. No.
12/873,553
Granted
Apr 7, 2015
Kind
B2
Abstract

Systems and methods are disclosed for detecting covert DNS tunnels using n-grams. The majority of legitimate DNS requests originate from network content itself, for example, through hyperlinks in websites. So, comparing data from incoming network communications to a hostname included in a DNS request can give an indication on whether the DNS request is a legitimate request or associated with a covert DNS tunnel. This process can be made computationally efficient by extracting n-grams from incoming network content and storing the n-grams in an efficient data structure, such as a Bloom filter. The stored n-grams are compared with n-grams extracted from outgoing DNS requests. If n-grams from an outgoing DNS request are not found in the data structure, the domain associated with the DNS request is determined to be associated with a suspected covert DNS tunnel.

Claims (49)

1. A method for detecting covert DNS tunnels, the method comprising:

scanning incoming network traffic received at a user equipment using a network scanner;

extracting a first plurality of n-grams from the scanned incoming network traffic;

extracting a second plurality of n-grams from a DNS request outgoing from the user equipment;

comparing the first plurality of n-grams to the second plurality of n-grams; and

adding at least a portion of a domain name associated with the outgoing DNS request to a table of a suspicious domain names when at least a portion of the second plurality of n-grams does not match the first plurality of n-grams.

2. The method of claim 1 , further comprising:

determining that the domain name added to the table of suspicious domains is associated with a covert DNS tunnel.

3. The method of claim 2 , further comprising:

providing an indication that the domain name was determined to be associated with a covert DNS tunnel.

4. The method of claim 2 , further comprising:

blocking DNS requests addressed to the domain name determined to be associated with a covert DNS tunnel.

5. The method of claim 1 , wherein the portion of the second plurality of n-grams that does not match the first plurality of n-grams is equal to a predetermined proportion of the second plurality of n-grams extracted from the outgoing DNS request.

6. The method of claim 1 , further comprising:

incrementing a counter associated with the portion of the domain name added to the table of suspicious domains for respective DNS requests when at least a portion of the extracted n-grams from the respective DNS requests do not match the first plurality of n-grams.

7. The method of claim 6 , further comprising:

providing an indication that the domain name added to the table of suspicious domains is associated with a covert DNS tunnel when the counter associated with the domain name reaches a threshold value.

8. The method of claim 6 , further comprising:

blocking DNS requests addressed to the domain name added to the table of suspicious domains when the counter associated with the domain name reaches a threshold value.

9. The method of claim 1 , wherein the first plurality of n-grams is associated with a string that matches a syntax of hostnames.

10. The method of claim 1 , wherein the first plurality of n-grams is associated with a higher priority when the first plurality of n-grams is associated with a string that matches a syntax of hostnames.

11. The method of claim 1 , wherein the first plurality of n-grams is stored using hash coding.

12. The method of claim 1 , wherein the first plurality of n-grams is stored using a Bloom filter.

13. The method of claim 1 , wherein the incoming network traffic is uncompressed by the network scanner prior to extracting the first plurality of n-grams.

14. A covert DNS tunnel detector comprising:

a network scanner configured to:

scan incoming network traffic received at a user equipment; and

extract a first plurality of n-grams from the scanned incoming network traffic;

a DNS request inspector configured to extract a second plurality of n-grams from a DNS request outgoing from the user equipment;

a comparator configured to compare the first plurality of n-grams to the second plurality of n-grams; and

a suspicious domain table configured to store at least a portion of a domain name associated with the outgoing DNS request when at least a portion of the second plurality of n-grams does not match the first plurality of n-grams.

15. The covert DNS tunnel detector of claim 14 , wherein the comparator is further configured to determine that the domain name stored in the suspicious domain table is associated with a covert DNS tunnel.

16. The covert DNS tunnel detector of claim 15 , wherein the comparator is further configured to provide an indication that the domain name stored in the suspicious domain table was determined to be associated with a covert DNS tunnel.

17. The covert DNS tunnel detector of claim 15 , wherein the comparator is further configured to block DNS requests addressed to the domain name determined to be associated with a covert DNS tunnel.

18. The covert DNS tunnel detector of claim 14 , wherein the portion of the second plurality of n-grams that does not match the first plurality of n-grams is equal to a predetermined proportion of the second plurality of n-grams extracted from the outgoing DNS request.

19. The covert DNS tunnel detector of claim 14 , wherein the suspicious domain table is further configured to increment a counter associated with the stored portion of the domain name for respective DNS requests when at least a portion of the extracted n-grams from the respective DNS requests do not match the first plurality of n-grams.

20. The covert DNS tunnel detector of claim 19 , wherein the comparator is further configured to provide an indication that the stored domain name is associated with a covert DNS tunnel when the counter associated with the domain name reaches a threshold value.

21. The covert DNS tunnel detector of claim 19 , wherein the comparator is further configured to block DNS requests addressed to the domain name added to the table of suspicious domains when the counter associated with the domain name reaches a threshold value.

22. The covert DNS tunnel detector of claim 14 , wherein the first plurality of n-grams is associated with a string that matches a syntax of hostnames.

23. The covert DNS tunnel detector of claim 14 , wherein the first plurality of n-grams is associated with a higher priority when the first plurality of n-grams is associated with a string that matches a syntax of hostnames.

24. The covert DNS tunnel detector of claim 14 , further comprising an n-gram table configured to store the first plurality of n-grams using hash coding.

25. The covert DNS tunnel detector of claim 14 , further comprising an n-gram table configured to store the first plurality of n-grams using Bloom filter.

26. The covert DNS tunnel detector of claim 14 , wherein the network scanner is further configured to uncompress the incoming network traffic prior to extracting the first plurality of n-grams.

27. A non-transitory computer readable medium storing computer executable instructions, which, when executed by a processor, cause the processor to carryout a method for detecting covert DNS tunnels, the computer readable medium comprising:

scanning incoming network traffic received at a user equipment using a network scanner;

extracting a first plurality of n-grams from the scanned incoming network traffic;

extracting a second plurality of n-grams from a DNS request outgoing from the user equipment;

comparing the first plurality of n-grams to the second plurality of n-grams; and

adding at least a portion of a domain name associated with the outgoing DNS request to a table of a suspicious domain names when at least a portion of the second plurality of n-grams does not match the first plurality of n-grams.

Assignments (11)
CHANGE OF NAME Recorded Mar 21, 2025
From: FORCEPOINT FEDERAL HOLDINGS LLC
To: EVERFOX HOLDINGS LLC
Reel/Frame 070585/0524 →
PARTIAL PATENT RELEASE AND REASSIGNMENT AT REEL/FRAME 055052/0302 Recorded Oct 3, 2023
From: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: FORCEPOINT FEDERAL HOLDINGS LLC (F/K/A FORCEPOINT LLC)
Reel/Frame 065103/0147 →
SECURITY INTEREST Recorded Sep 29, 2023
From: FORCEPOINT FEDERAL HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC, AS COLLATERAL AGENT
Reel/Frame 065086/0822 →
CHANGE OF NAME Recorded May 12, 2021
From: FORCEPOINT LLC
To: FORCEPOINT FEDERAL HOLDINGS LLC
Reel/Frame 056216/0309 →
PATENT SECURITY AGREEMENT Recorded Jan 20, 2021
From: REDOWL ANALYTICS, INC.; FORCEPOINT LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 055052/0302 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jan 8, 2021
From: RAYTHEON COMPANY
To: WEBSENSE, INC.; PORTAUTHORITY TECHNOLOGIES, LLC (FKA PORTAUTHORITY TECHNOLOGIES, INC.); RAYTHEON OAKLEY SYSTEMS, LLC; FORCEPOINT FEDERAL LLC (FKA RAYTHEON CYBER PRODUCTS, LLC, FKA RAYTHEON CYBER PRODUCTS, INC.)
Reel/Frame 055492/0146 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2017
From: FORCEPOINT FEDERAL LLC
To: FORCEPOINT LLC
Reel/Frame 043397/0460 →
CHANGE OF NAME Recorded Feb 16, 2016
From: RAYTHEON CYBER PRODUCTS, LLC
To: FORCEPOINT FEDERAL LLC
Reel/Frame 037821/0818 →
PATENT SECURITY AGREEMENT Recorded Jun 9, 2015
From: WEBSENSE, INC.; RAYTHEON OAKLEY SYSTEMS, LLC; RAYTHEON CYBER PRODUCTS, LLC (FORMERLY KNOWN AS RAYTHEON CYBER PRODUCTS, INC.); PORT AUTHORITY TECHNOLOGIES, INC.
To: RAYTHEON COMPANY
Reel/Frame 035859/0282 →
CHANGE OF NAME Recorded Jun 2, 2015
From: RAYTHEON CYBER PRODUCTS, INC.
To: RAYTHEON CYBER PRODUCTS, LLC
Reel/Frame 035806/0367 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2015
From: RAYTHEON BBN TECHNOLOGIES CORP.
To: RAYTHEON CYBER PRODUCTS, INC.
Reel/Frame 035794/0226 →