IP Library Granted Patent US 12671621
Granted Patent B2
US 12671621 · App. 18/438,810 · Granted Jun 30, 2026

System, method, and computer program product for detecting an anomaly in network activity

Inventors: Tyler Suehr (Greensburg, PA); Mycal Pedder (Manor, PA); Thomas Pedder (Jeannette, PA)
Assignee: CYBXSECURITY LLC
H04L41/0631H04L41/024H04L41/0627H04L41/0654H04L61/4511
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 12671621
App. No.
18/438,810
Granted
Jun 30, 2026
Kind
B2
Abstract

Provided are systems for detecting an anomaly in network activity using Domain Name System (DNS) query data that include a processor to receive data associated with a plurality of DNS queries from a plurality of data sources, parse the data associated with the plurality of DNS queries to provide DNS query data and network domain data, route the DNS query data to a first queue using a queries exchange, route the network domain data to a second queue using a domains exchange, poll the first queue and the second queue with a microservice application to receive the DNS query data and the network domain data with the microservice application for processing, and detect a characteristic of the one or more DNS queries of the plurality of DNS queries based on the DNS query data and the network domain data. Methods and computer program products are also disclosed.

Claims (72)

1 . A method for detecting anomalies in network data, comprising:

receiving, with at least one processor, data associated with a plurality of Domain Name System (DNS) queries from a plurality of data sources;

parsing, with the at least one processor, the data associated with the plurality of DNS queries to provide DNS query data and network domain data;

routing, with the at least one processor, the DNS query data to a first queue using a queries exchange;

routing, with the at least one processor, the network domain data to a second queue using a domains exchange;

polling, with the at least one processor, the first queue and the second queue with a microservice application to receive the DNS query data and the network domain data with the microservice application for processing; and

detecting, with the at least one processor, a characteristic of one or more DNS queries of the plurality of DNS queries based on the DNS query data and the network domain data, wherein detecting the characteristic of the one or more DNS queries of the plurality of DNS queries comprises:

storing the DNS query data and the network domain data in a time-series database;

determining a geolocation of a server associated with a domain and a category of the domain based on the DNS query data and the network domain data;

storing the DNS query data, the network domain data, the geolocation of the server, and the category of the domain in a database; and

determining the characteristic of the one or more DNS queries of the plurality of DNS queries based on the DNS query data, the network domain data, the geolocation of the server, and the category of the domain.

2 . The method of claim 1 , further comprising:

parsing, with the at least one processor, the data associated with the plurality of DNS queries to provide client device data; and

routing, with the at least one processor, the client device data to a third queue using a clients exchange.

3 . The method of claim 1 , further comprising:

determining whether each data source of the plurality of data sources is authorized for transmitting the data associated with the plurality of DNS queries, wherein determining whether each data source is authorized for transmitting the data associated with the plurality of DNS queries comprises:

checking network permissions of the data source based on an authorization token included in the data associated with the plurality of DNS queries corresponding to a token stored in a token management system.

4 . The method of claim 1 , wherein parsing the data associated with the plurality of DNS queries comprises:

decoding the data associated with the plurality of DNS queries to provide decoded data associated with the plurality of DNS queries;

parsing the decoded data associated with the plurality of DNS queries into the DNS query data and the network domain data; and

publishing the DNS query data to the queries exchange and the network domain data to the domains exchange.

5 . The method of claim 1 , further comprising transmitting a confirmation message to at least one data source of the plurality of data sources based on routing the DNS query data and the network domain data, wherein the confirmation message comprises a message indicating success or a message indicating failure, wherein the message indicating success causes the at least one data source of the plurality of data sources to delete the data associated with the plurality of DNS queries from memory of the at least one data source, and the message indicating failure causes the at least one data source of the plurality of data sources to retain the data associated with the plurality of DNS queries in the memory of the at least one data source to be received at a next recurring period.

6 . The method of claim 1 , wherein polling the first queue and the second queue comprises:

subscribing, with the microservice application, to the first queue and the second queue by transmitting a subscription message from the microservice application to the queries exchange and the domains exchange; and

repeatedly transmitting a poll message to the first queue and the second queue, wherein the poll message checks for new data associated with the plurality of DNS queries available in the first queue and the second queue.

7 . A system for detecting anomalies in network data, comprising at least one processor programmed or configured to:

receive data associated with a plurality of Domain Name System (DNS) queries from a plurality of data sources;

parse the data associated with the plurality of DNS queries to provide DNS query data and network domain data;

route the DNS query data to a first queue using a queries exchange;

route the network domain data to a second queue using a domains exchange;

poll the first queue and the second queue with a microservice application to receive the DNS query data and the network domain data with the microservice application for processing; and

detect a characteristic of one or more DNS queries of the plurality of DNS queries based on the DNS query data and the network domain data, and wherein, when detecting the characteristic of the one or more DNS queries of the plurality of DNS queries, the at least one processor is programmed or configured to:

store the DNS query data and the network domain data in a time-series database;

determine a geolocation of a server associated with a domain and a category of the domain based on the DNS query data and the network domain data;

store the DNS query data, the network domain data, the geolocation of the server, and the category of the domain in a database; and

determine the characteristic of the one or more DNS queries of the plurality of DNS queries based on the DNS query data, the network domain data, the geolocation of the server, and the category of the domain.

8 . The system of claim 7 , wherein the at least one processor is further programmed or configured to:

parse the data associated with the plurality of DNS queries to provide client device data; and

route the client device data to a third queue using a clients exchange.

9 . The system of claim 7 , wherein the at least one processor is further programmed or configured to:

determine whether each data source of the plurality of data sources is authorized for transmitting the data associated with the plurality of DNS queries, wherein, when determining whether each data source is authorized for transmitting the data associated with the plurality of DNS queries, the at least one processor is programmed or configured to:

check network permissions of the data source based on an authorization token included in the data associated with the plurality of DNS queries corresponding to a token stored in a token management system.

10 . The system of claim 7 , wherein, when parsing the data associated with the plurality of DNS queries, the at least one processor is programmed or configured to:

decode the data associated with the plurality of DNS queries to provide decoded data associated with the plurality of DNS queries;

parse the decoded data associated with the plurality of DNS queries into the DNS query data and the network domain data; and

publish the DNS query data to the queries exchange and the network domain data to the domains exchange.

11 . The system of claim 7 , wherein the at least one processor is further programmed or configured to transmit a confirmation message to at least one data source of the plurality of data sources based on routing the DNS query data and the network domain data, wherein the confirmation message comprises a message indicating success or a message indicating failure, wherein the message indicating success causes the at least one data source of the plurality of data sources to delete the data associated with the plurality of DNS queries from memory of the at least one data source, and the message indicating failure causes the at least one data source of the plurality of data sources to retain the data associated with the plurality of DNS queries in the memory of the at least one data source to be received at a next recurring period.

12 . The system of claim 7 , wherein, when polling the first queue and the second queue, the at least one processor is programmed or configured to:

subscribe, with the microservice application, to the first queue and the second queue by transmitting a subscription message from the microservice application to the queries exchange and the domains exchange; and

repeatedly transmit a poll message to the first queue and the second queue, wherein the poll message checks for new data associated with the plurality of DNS queries available in the first queue and the second queue.

13 . A computer program product for detecting anomalies in network data, the computer program product comprising at least one non-transitory computer-readable medium including one or more instructions that, when executed by at least one processor, cause the at least one processor to:

receive data associated with a plurality of Domain Name System (DNS) queries from a plurality of data sources;

parse the data associated with the plurality of DNS queries to provide DNS query data and network domain data;

route the DNS query data to a first queue using a queries exchange;

route the network domain data to a second queue using a domains exchange;

poll the first queue and the second queue with a microservice application to receive the DNS query data and the network domain data with the microservice application for processing; and

detect a characteristic of one or more DNS queries of the plurality of DNS queries based on the DNS query data and the network domain data, and wherein the one or more instructions that cause the at least one processor to detect the characteristic of the one or more DNS queries of the plurality of DNS queries, cause the at least one processor to:

store the DNS query data and the network domain data in a time-series database;

determine a geolocation of a server associated with a domain and a category of the domain based on the DNS query data and the network domain data;

store the DNS query data, the network domain data, the geolocation of the server, and the category of the domain in a database; and

determine the characteristic of the one or more DNS queries of the plurality of DNS queries based on the DNS query data, the network domain data, the geolocation of the server, and the category of the domain.

14 . The computer program product of claim 13 , wherein the one or more instructions further cause the at least one processor to:

parse the data associated with the plurality of DNS queries to provide client device data; and

route the client device data to a third queue using a clients exchange.

15 . The computer program product of claim 13 , wherein the one or more instructions further cause the at least one processor to:

determine whether each data source of the plurality of data sources is authorized for transmitting the data associated with the plurality of DNS queries, wherein the one or more instructions that cause the at least one processor to determine whether each data source is authorized for transmitting the data associated with the plurality of DNS queries, cause the at least one processor to:

check network permissions of the data source based on an authorization token included in the data associated with the plurality of DNS queries corresponding to a token stored in a token management system.

16 . The computer program product of claim 13 , wherein the one or more instructions that cause the at least one processor to parse the data associated with the plurality of DNS queries, cause the at least one processor to:

decode the data associated with the plurality of DNS queries to provide decoded data associated with the plurality of DNS queries;

parse the decoded data associated with the plurality of DNS queries into the DNS query data and the network domain data; and

publish the DNS query data to the queries exchange and the network domain data to the domains exchange.

17 . The computer program product of claim 13 , wherein the one or more instructions further cause the at least one processor to transmit a confirmation message to at least one data source of the plurality of data sources based on routing the DNS query data and the network domain data, wherein the confirmation message comprises a message indicating success or a message indicating failure, wherein the message indicating success causes the at least one data source of the plurality of data sources to delete the data associated with the plurality of DNS queries from memory of the at least one data source, and the message indicating failure causes the at least one data source of the plurality of data sources to retain the data associated with the plurality of DNS queries in the memory of the at least one data source to be received at a next recurring period.