In-line detection of algorithmically generated domains
Detection of algorithmically generated domains is disclosed. A DNS query is received. Markov Chain analysis is performed on a domain included in the received query. A determination of whether the received query implicates an algorithmically generated domain is made based at least in part on a result of the Markov Chain analysis.
1. A system, comprising:
a processor configured to:
receive a DNS query in response to a client device making a DNS resolution request;
determine whether the DNS query received in response to the client device making the DNS resolution request implicates an algorithmically generated domain (AGD) based at least in part by performing Markov Chain analysis on a domain included in the received query;
use resolution information to confirm that a result of performing the Markov Chain analysis is not a false positive AGD verdict;
in response to determining that the DNS query received from the client device implicates an AGD, cause a remedial action to be taken against the client device; and
determine whether the domain is associated with a family of algorithmically generated domains, including by using a random forest trained using features extracted from algorithmically generated domain families; and
a memory coupled to the processor and configured to provide the processor with instructions.
2. The system of claim 1 , wherein the resolution information comprises historical resolution information.
3. The system of claim 2 , wherein the historical resolution information comprises a count of resolutions.
4. The system of claim 2 , wherein the historical resolution information comprises an interval between a first resolution and a last resolution.
5. The system of claim 1 , wherein a Markov Chain model used in the Markov Chain analysis is trained at least in part using a set of known algorithmically generated domains.
6. The system of claim 1 , wherein a Markov Chain model used in the Markov Chain analysis is trained at least in part using a set of known benign domains.
7. The system of claim 1 , wherein at least one feature comprises a domain suffix.
8. The system of claim 1 , wherein at least one feature comprises a count of hyphens.
9. The system of claim 1 , wherein at least one feature comprises a domain length.
10. The system of claim 1 , wherein at least one feature comprises a distinct number of characters.
11. The system of claim 1 , wherein at least one feature comprises a ratio of digits to other characters.
12. The system of claim 1 , wherein at least one feature comprises whether a first character of a root domain is a digit.
13. A method, comprising:
receiving a DNS query in response to a client device making a DNS resolution request;
determining whether the DNS query received in response to the client device making the DNS resolution request implicates an algorithmically generated domain (AGD) based at least in part by performing Markov Chain analysis on a domain included in the received query;
using resolution information to confirm that a result of performing the Markov Chain analysis is not a false positive AGD verdict;
in response to determining that the DNS query received from the client device implicates an AGD, causing a remedial action to be taken against the client device; and
determining whether the domain is associated with a family of algorithmically generated domains, including by using a random forest trained using features extracted from algorithmically generated domain families.
14. The method of claim 13 , wherein the resolution information comprises historical resolution information.
15. The method of claim 14 , wherein the historical resolution information comprises a count of resolutions.
16. The method of claim 14 , wherein the historical resolution information comprises an interval between a first resolution and a last resolution.
17. The method of claim 13 , wherein a Markov Chain model used in the Markov Chain analysis is trained at least in part using a set of known algorithmically generated domains.
18. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
receiving a DNS query in response to a client device making a DNS resolution request;
determining whether the DNS query received in response to the client device making the DNS resolution request implicates an algorithmically generated domain (AGD) based at least in part by performing Markov Chain analysis on a domain included in the received query;
using resolution information to confirm that a result of performing the Markov Chain analysis is not a false positive AGD verdict;
in response to determining that the DNS query received from the client device implicates an AGD, causing a remedial action to be taken against the client device; and
determining whether the domain is associated with a family of algorithmically generated domains, including by using a random forest trained using features extracted from algorithmically generated domain families.
19. The method of claim 13 , wherein a Markov Chain model used in the Markov Chain analysis is trained at least in part using a set of known benign domains.
20. The method of claim 13 , wherein at least one feature comprises a domain suffix.
21. The method of claim 13 , wherein at least one feature comprises a count of hyphens.
22. The method of claim 13 , wherein at least one feature comprises a domain length.
23. The method of claim 13 , wherein at least one feature comprises a distinct number of characters.
24. The method of claim 13 , wherein at least one feature comprises a ratio of digits to other characters.
25. The method of claim 13 , wherein at least one feature comprises whether a first character of a root domain is a digit.