Detecting homographs of domain names
Various techniques for detecting homographs of domain names are disclosed. In some embodiments, a system, process, and/or computer program product for detecting homographs of domain names includes receiving a DNS data stream, wherein the DNS data stream includes a DNS query and a DNS response for resolution of the DNS query; applying a homograph detector for each domain in the DNS data stream; and detecting a homograph of a domain name in the DNS data stream using the homograph detector.
1. A system, comprising:
a processor configured to:
generate training and test data sets for images of characters for domain names;
train a homograph classifier using the training and test data sets to recognize Unicode characters that are visually similar to one or more ASCII characters, wherein a convolutional neural network (CNN) architecture is used to train the homograph classifier, wherein the CNN architecture learns a filter to detect a pattern for a prediction, and wherein a presence of the pattern or a lack of the pattern is used by the CNN architecture to make the prediction; and
execute the homograph classifier over a set of Unicode characters to generate an ASCII to Unicode map; and
a memory coupled to the processor and configured to provide the processor with instructions.
2. The system recited in claim 1 , wherein the processor is further configured to update the homograph classifier to obtain an updated ASCII to Unicode map.
3. The system recited in claim 1 , wherein the processor is further configured to update the homograph classifier to obtain an updated ASCII to Unicode map, and wherein the updated ASCII to Unicode map includes a new Unicode character.
4. The system recited in claim 1 , wherein the processor is further configured to deploy the homograph classifier to provide an inline homograph detection model for automatically detecting homographs of domain names on a DNS data stream.
5. The system recited in claim 1 , wherein the homograph classifier is executed over the set of Unicode characters to map an ASCII character to each Unicode character in the set of Unicode characters based on visual similarity to obtain the ASCII to Unicode map.
6. A method, comprising:
generating, using a processor, training and test data sets for images of characters for domain names;
training, using the processor, a homograph classifier using the training and test data sets to recognize Unicode characters that are visually similar to one or more ASCII characters, wherein a convolutional neural network (CNN) architecture is used to train the homograph classifier, wherein the CNN architecture learns a filter to detect a pattern for a prediction, and wherein a presence of the pattern or a lack of the pattern is used by the CNN architecture to make the prediction; and
executing, using the processor, the homograph classifier over a set of Unicode characters to generate an ASCII to Unicode map.
7. The method of claim 6 , further comprising:
updating the homograph classifier to obtain an updated ASCII to Unicode map.
8. The method of claim 6 , further comprising:
updating the homograph classifier to obtain an updated ASCII to Unicode map, wherein the updated ASCII to Unicode map includes a new Unicode character.
9. The method of claim 6 , further comprising:
deploying the homograph classifier to provide an inline homograph detection model for automatically detecting homographs of domain names on a DNS data stream.
10. The method of claim 6 , wherein the homograph classifier is executed over the set of Unicode characters to map an ASCII character to each Unicode character in the set of Unicode characters based on visual similarity to obtain the ASCII to Unicode map.
11. A computer program product, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:
generating training and test data sets for images of characters for domain names;
training a homograph classifier using the training and test data sets to recognize Unicode characters that are visually similar to one or more ASCII characters, wherein a convolutional neural network (CNN) architecture is used to train the homograph classifier, wherein the CNN architecture learns a filter to detect a pattern for a prediction, and wherein a presence of the pattern or a lack of the pattern is used by the CNN architecture to make the prediction; and
executing the homograph classifier over a set of Unicode characters to generate an ASCII to Unicode map.
12. The computer program product recited in claim 11 , further comprising computer instructions for:
updating the homograph classifier to obtain an updated ASCII to Unicode map.
13. The computer program product recited in claim 11 , further comprising computer instructions for:
updating the homograph classifier to obtain an updated ASCII to Unicode map, wherein the updated ASCII to Unicode map includes a new Unicode character.
14. The computer program product recited in claim 11 , further comprising computer instructions for:
deploying the homograph classifier to provide an inline homograph detection model for automatically detecting homographs of domain names on a DNS data stream.
15. The computer program product recited in claim 11 , wherein the homograph classifier is executed over the set of Unicode characters to map an ASCII character to each Unicode character in the set of Unicode characters based on visual similarity to obtain the ASCII to Unicode map.