Chowdhury, "DOMAIN GENERATION ALGORITHM – DGA IN MALWARE", Aug 30, 2019. "A Comprehensive Measurement Study of Domain Generating Malware" (PDF).
However, these deep learning approaches can be vulnerable to adversarial techniques. These deep learning methods typically utilize LSTM and CNN architectures, though deep word embeddings have shown great promise for detecting dictionary DGA.
Recent attempts at detecting DGA domain names with deep learning techniques have been extremely successful, with F1 scores of over 99%. Reactionary detection relies on non-supervised clustering techniques and contextual information like network NXDOMAIN responses, WHOIS information, and passive DNS to make an assessment of domain name legitimacy. Detection techniques belong in two main classes: reactionary and real-time. This simple example was in fact used by malware like CryptoLocker, before it switched to a more sophisticated variant.ĭGA domain names can be blocked using blacklists, but the coverage of these blacklists is either poor (public blacklists) or wildly inconsistent (commercial vendor blacklists).
Domains generated by dictionary DGA tend to be more difficult to detect due to their similarity to legitimate domains.ĭef generate_domain ( year : int, month : int, day : int ) -> str : """Generate a domain name for the given date.""" domain = "" for i in range ( 16 ): year = (( year ^ 8 * year ) > 11 ) ^ (( year & 0xFFFFFFF0 ) > 25 ) ^ 16 * ( month & 0xFFFFFFF8 ) day = (( day ^ ( day > 19 ) ^ (( day & 0xFFFFFFFE ) << 12 ) domain += chr ((( year ^ month ^ day ) % 25 ) + 97 ) return domain + ".com"įor example, on January 7, 2014, this method would generate the domain name, while the following day, it would return. These dictionaries can be hard-coded in malware or taken from a publicly accessible source. ĭGA can also combine words from a dictionary to generate domains. According to network security firm Damballa, the top-5 most prevalent DGA-based crimeware families are Conficker, Murofet, BankPatch, Bonnana and Bobax as of 2011. Recently, the technique has been adopted by other malware authors. From the point of view of botnet owner, they only have to register one or a few domains out of the several domains that each bot would query every day. To prevent infected computers from updating their malware, law enforcement would have needed to pre-register 50,000 new domain names every day. Starting with Conficker.C, the malware would generate 50,000 domain names every day of which it would attempt to contact 500, giving an infected machine a 1% possibility of being updated every day if the malware controllers registered only one domain per day. b which, at first generated 250 domain names per day. The technique was popularized by the family of worms Conficker.a and.
#DOMAIN NAME GENERATOR ALGORITHM UPDATE#
The use of public-key cryptography in malware code makes it unfeasible for law enforcement and other actors to mimic commands from the malware controllers as some worms will automatically reject any updates not signed by the malware controllers.įor example, an infected computer could create thousands of domain names such as: and would attempt to contact a portion of these with the purpose of receiving an update or commands.Įmbedding the DGA instead of a list of previously-generated (by the command and control servers) domains in the unobfuscated binary of the malware protects against a strings dump that could be fed into a network blacklisting appliance preemptively to attempt to restrict outbound communication from infected hosts within an enterprise. The large number of potential rendezvous points makes it difficult for law enforcement to effectively shut down botnets, since infected computers will attempt to contact some of these domain names every day to receive updates or commands. Domain generation algorithms (DGA) are algorithms seen in various families of malware that are used to periodically generate a large number of domain names that can be used as rendezvous points with their command and control servers.