Next Article in Journal
A 48 GHz Fundamental Frequency PLL with Quadrature Clock Generation for 60 GHz Transceiver
Next Article in Special Issue
Machine Learning for DDoS Attack Detection in Industry 4.0 CPPSs
Previous Article in Journal
A Competency Framework for Teaching and Learning Innovation Centers for the 21st Century: Anticipating the Post-COVID-19 Age
Previous Article in Special Issue
LC-IDS: Loci-Constellation-Based Intrusion Detection for Reconfigurable Wireless Networks
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Detection of DGA-Generated Domain Names with TF-IDF

1
Department of Computer Science, Open Universiteit, P.O. Box 2960, 6401 DL Heerlen, The Netherlands
2
Institute for Computing and Information Sciences, Radboud University, P.O. Box 9010, 6500 GL Nijmegen, The Netherlands
*
Author to whom correspondence should be addressed.
Electronics 2022, 11(3), 414; https://doi.org/10.3390/electronics11030414
Submission received: 1 December 2021 / Revised: 19 January 2022 / Accepted: 24 January 2022 / Published: 29 January 2022
(This article belongs to the Special Issue Design of Intelligent Intrusion Detection Systems)

Abstract

:
Botnets often apply domain name generation algorithms (DGAs) to evade detection by generating large numbers of pseudo-random domain names of which only few are registered by cybercriminals. In this paper, we address how DGA-generated domain names can be detected by means of machine learning and deep learning. We first present an extensive literature review on recent prior work in which machine learning and deep learning have been applied for detecting DGA-generated domain names. We observe that a common methodology is still missing, and the use of different datasets causes that experimental results can hardly be compared. We next propose the use of TF-IDF to measure frequencies of the most relevant n-grams in domain names, and use these as features in learning algorithms. We perform experiments with various machine-learning and deep-learning models using TF-IDF features, of which a deep MLP model yields the best results. For comparison, we also apply an LSTM model with embedding layer to convert domain names from a sequence of characters into a vector representation. The performance of our LSTM and MLP models is rather similar, achieving 0.994 and 0.995 AUC, and average F1-scores of 0.907 and 0.891 respectively.

1. Introduction

Botnets pose a severe threat to the security of systems connected to the Internet and their users. A botnet is composed of a collection of compromised systems (‘bots’) that receive and respond to commands from a Command and Control (C&C) server. A C&C server acts as rendezvous point between the bots and the botmaster, who controls the botnet. By updating the malware running on the bots, the botmaster can configure the botnet to perform different types of attacks, such as launching DDoS attacks, sending spam, or stealing credentials. This versatility causes that botnets are considered as the Swiss army knife of cybercriminals.
C&C servers and the communication channels between botmaster and bots are critical components of a botnet. By taking down the C&C servers, or by blocking the communication channels, the link between bots and botmaster is broken, which renders the botnet useless. Numerous techniques have been applied to provide stealthy botnet operation and to increase resilience against take-down attempts [1]. An eminent technique to evade detection is the application of domain name generation algorithms (DGAs) in bot malware that generate large numbers of pseudo-random domain names for contacting the C&C server, of which only few are actually registered shortly by the botmaster. Due to the dynamic DGA operation and short-lived domain names, the communication between C&C servers and bots is protected against take-down attempts.
The presence of botnets that use DGAs can be revealed by analysing network traffic. For instance, most of the domain names that are generated by DGAs are not registered and hence DNS lookups for resolving such domain names into IP addresses will result in NXDomain responses from name servers. Hence, by monitoring and analysing NXDomain responses, the presence of DGA-based botnets can be revealed. In addition, the domain names generated by DGAs typically differ from regular domain names. Regular domain names are usually meant to be interpretable by humans and hence they often are rather short and meaningful, while domain names generated by DGAs typically consist of random strings of letters and digits that humans cannot pronounce or interpret as meaningful. Hence, by analysing the syntax or semantics of domain names, the presence of DGA-based botnets can be revealed.
In recent years, numerous methods applying machine learning, and more recently also deep learning, have been explored for detecting DGA-based botnets. Machine-learning algorithms typically have been used to train models using sample data of network traffic in order to make predictions on whether the traffic contains traces originating from botnets. The key principle is that the models are not programmed explicitly up front to detect botnets, but the models evolve during training by discovering patterns in the sample data. The sample data typically consist of features that are derived from captured network traffic, such as relevant fields in packet headers or payload data. In prior work on detection of DGA-generated domain names with machine learning, a large variety of structural, linguistic, and statistical features have been explored that are derived from domain names in DNS traffic. In deep learning, as an advanced form of machine learning, more complex models are trained that can discover higher-level patterns in the sample data. While machine learning requires to provide sample data by means of selected features during training, deep learning is able to implicitly derive features at multiple levels from the sample data.
Furthermore, in this paper, we apply machine learning and deep learning for detecting DGA-based botnets, and use TF-IDF (term frequency–inverse document frequency) as statistical method to derive features from domain names. TF-IDF originates from information retrieval and automated text analysis, where it is used as a weighting factor to evaluate how relevant a word is to a document in a collection of documents [2]. Key words that appear more often but in a smaller number of documents, have higher TF-IDF. We observed that the distributions of characters and n-grams vary considerably for regular domain names and domain names that are generated by different types of DGAs (as we will show in Section 4.1). Our hypothesis therefore is that TF-IDF of n-grams can be used as features for classifying domain names in learning algorithms.
Our contributions are as follows:
  • We provide an extensive literature review on recent prior work in which machine learning and deep learning have been applied for detecting DGA-based botnets.
  • We explore the usage of TF-IDF for feature selection. Although TF-IDF has been studied and applied extensively for decades in information retrieval, we are the first—to the best of our knowledge—to apply TF-IDF for detecting DGA-based botnets.
  • We provide experimental results using TF-IDF as features with the most popular algorithms for machine learning (Decision Tree, Gradient Boosting, K-Neighbours, Logistic Regression, Multinomial Naive Bayes, Random Forest, and Support Vector Machine) and deep learning (Multi-Layer Perceptron).
  • We compare the results obtained by machine learning, in which TF-IDF scores of n-grams in domain names are used as features, with featureless deep learning (using a long short-term memory (LSTM) classifier) in which domain names are embedded as sequences of input characters.
In the remainder of this paper, we first provide more details about botnets and fluxing methods, DGAs, and TF-IDF in Section 2. In Section 3, we present an extensive literature review on recent prior work in which machine learning and deep learning have been applied for detecting DGA-based botnets. In Section 4, we present our research method, including a description of the datasets we applied in our experiments, the setup of our experiments, and the experimental results with discussion. We conclude the paper in Section 5.

2. Background

This section provides more details on fluxing methods as applied by botnets to evade detection in Section 2.1, on DGAs in Section 2.2, and on TF-IDF in Section 2.3.

2.1. Botnets and Fluxing

The bots in a botnet regularly contact their C&C server. This is the case during the rallying process, when a bot tries to contact its C&C server for the first time to announce its presence, and later on when the bot contacts the C&C server to upload data (such as stolen credentials) or to download malware updates. In order to do so, the bot should know either the IP address or the domain name of the C&C server.
The IP address can be hardcoded in the bot malware. This offers stealthy botnet operation since no DNS lookup is required. However, the IP address can easily be revealed by reverse engineering of the malware. Network administrators can subsequently blacklist the IP address in ACLs at gateways, or apply BGP route announcements to route the IP address to a blackhole where the traffic is dropped.
Alternatively, the domain name can be hardcoded in the bot malware. This is less stealthy since it requires a DNS lookup to resolve the domain name into an IP address. To evade detection, botnets can apply IP/fast flux by using dynamic DNS to provide that the domain name can be resolved into an IP address that changes frequently. These IP addresses refer to proxy bots that relay communication between bots and the C&C server. Bringing down the botnet now requires blacklisting or blackholing the IP addresses of all proxy bots. To further evade detection, botnets can apply double flux, where the concept of flux is also applied to the name server that is responsible for resolving the domain name. The name server, which is under control of the botmaster, will refer to frequently changing authoritative name servers, which in turn will resolve the domain name into frequently changing IP addresses of proxy bots. However, the domain name can be blacklisted, or, by applying DNS sinkholing, the domain name can be resolved into an IP address that is not under control of the botnet. DNS sinkholing allows for instance law enforcement agencies to take over the botnet.
Many botnets therefore do not rely on a single domain name, but apply domain flux by generating a large number of domain names of which only few actually are registered by the botmaster for a short time period. Domain flux renders botnet detection by static domain name blacklists or sinkholing ineffective.

2.2. DGA

Domain flux is implemented in bot malware by a DGA that dynamically generates a large number of pseudo-random domain names from a seed. The seed, which acts as a shared secret between botmaster and bots, can be either static or dynamic [3].
A static seed was for instance applied in early versions of the Kraken botnet, and therefore the same set of domain names is generated at each execution [4]. Early versions of the Torpig botnet applied a deterministic seed that is derived from the current date. Since the domain names derived from such deterministic seeds can be precomputed easily, and botmasters do not register all future domain names in advance, a botnet can be taken over. For instance, a research team was able to preregister some domain names and take over the Torpig botnet for 10 days in 2009 [5]. The Conficker botnet also applied a time-dependent seed based on GMT that is derived from the response of querying a public website [6]. The Conficker.C botnet applied domain flux by generating 50,000 domain names of which bots daily tried up to 500 for contacting the C&C server to receive updates. If the botmaster registered one of these 50,000 domain names, bots have 1% probability per day to contact the C&C server, and hence bots would contact the C&C server once every 100 days on average. While the botmaster had to register only one or a few domain names, law enforcement would have to preregister 50,000 domain names to block the C&C communication.
Domain names derived from dynamic seeds rely on non-deterministic sources. For instance, the Bedep DGA applied a seed that relates to foreign exchange reference rates published daily by the European Central Bank, while the seed in later versions of the Torpig DGA related to trending topics in Twitter [7]. Since domain names from non-deterministic seeds cannot be precomputed in advance, blacklisting and sinkholing or preregistering large numbers of short-lived domain names by law enforcement agencies is a challenging, time-critical task that requires continuous effort. However, also botmasters only have a small time window and should switch continuously to new domain names.
Next to classifying DGAs based on their seeding characteristics, Plohmann et al. classified DGAs into 4 types based on how domain names are constructed [7]. Arithmetic-based DGAs (type DGA-A) are most common. They construct domain names by generating sequences of values that have either an ASCII representation directly or index hardcoded arrays that constitute the DGA alphabet. Hash-based DGAs (type DGA-H) construct domain names from hashing algorithms such as MD5 and SHA256. Wordlist-based DGAs (type DGA-W) construct domain names by concatenating sequences of words from dictionaries that are embedded in the malware or obtained from a publicly accessible source. Permutation-based DGAs (type DGA-P) construct domain names through permutation of an initial domain name.
Domain names generated by DGAs of type DGA-A typically consist of random sequences of characters (letters and digits). Domain names generated by DGAs of type DGA-H represent a hexadecimal number and consist of digits and the letters A–F. Domain names generated by DGAs of type DGA-W are less random and pronounceable, which makes them harder to distinguish from regular domain names. In addition, domain names generated by DGAs of type DGA-P, that are derived by permutation of regular domain names, look similar to regular domain names.
RFC 1035 initially specified the preferred syntax of domain names as a sequence of labels separated by dots [8]. The right-most label conveys the top-level domain. Each label is a sequence of at most 63 characters containing letters (A–Z, a–z), digits (0–9), or the hyphen symbol (-), with the restriction that a label starts with a letter and ends with a letter or digit. Although uppercase and lowercase letters are allowed, no significance is attached to the case. The length of a domain name is at most 255 characters. In later specifications, this has been relaxed to labels that contain the underscore symbol (_), leading or trailing hyphens, other ASCII characters (such as the symbols # and $), and even Unicode characters in internationalized domain names [9].

2.3. TF-IDF

TF-IDF originates from information retrieval and automated text analysis, where it is used as a weighting factor to evaluate how relevant a term is to a document in a collection of documents [2]. For instance, TF-IDF is the most popular weighting scheme in recommender systems for research papers that apply content-based filtering [10].
TF-IDF is composed of multiplying term frequency (TF) [11] and inverse document frequency (IDF) [12], where TF indicates how often a term appears in a document, and IDF indicates the number of documents in a corpus that contain the term.
The simplest way to compute TF is the raw count of appearances of term t i in document d j , where t i is in the set of terms T = { t 1 , , t K } in the corpus of documents D = { d 1 , , d N } . This can be normalized by considering for instance the length of the document or the most frequent term in the document. IDF adjusts for the general appearance of terms across documents and is usually defined as log ( N / n i ) , where N is the number of documents in the corpus and n i is the number of documents in which term t i occurs. IDF is close to 0 when the term appears in many documents, and increases when the term appears in fewer documents. Hence, TF-IDF discriminates key terms that appear more often but in a smaller number of documents.

3. Literature Review

We conducted an extensive literature review on recent prior work in which machine learning (ML) and deep learning (DL) have been applied for detecting DGA-based botnets. Zago et al. [13] previously published a literature review on DGA-based botnet detection that covered literature up to May 2018. We extend their literature review by covering 38 additional scientific papers that were published afterwards from May 2018 to February 2021.
Zago et al. built a taxonomy of approaches for botnet detection considering the applied learning approach (supervised, unsupervised, or semi-supervised) and the type of features adopted (context-aware, context-free, or featureless). Context-aware features are dependent on a specific malware sample execution, such as features extracted from DNS responses that consider timing, origin, or any other environment configuration. Context-free features are related only to domain names, considering structural, statistical or linguistic properties of a domain name. Featureless models, as typically applied in DL, do not require features and use encoded domain names as inputs.
We adopt a slightly different taxonomy by considering the learning method, which is either feature-based ML (see Table 1), featureless DL (see Table 2), or other (see Table 3). Nearly all studies included in our review applied supervised learning algorithms, using either classical ML models such as Decision Tree (DT), Random Forest (RF), k-Nearest Neighbour (kNN), Logistic Regression (LR), Naïve Bayes (NB), Support Vector Machine (SVM), Gradient Boost (GB), and Multi-Layer Perceptron (MLP), or novel DL models such as Recurrent Neural Network (RNN) and Convolutional Neural Network (CNN).
The following subsections provide more details on the ML models in Section 3.1, on the DL models in Section 3.2, on other methods in Section 3.3, and on the datasets used in the reviewed studies in Section 3.4.

3.1. ML-Based Methods

3.1.1. Models

The studies in our literature review apply a range of ML methods, as shown in Table 1. RF and SVM are applied most often. For each study, the best performing model is shown in bold. It can be observed that there is no single best performing method overall, but RF and MLP (with a single hidden layer) give best results in most cases. Due to differences in the applied hyperparameters, features, datasets of benign and malicious domain names, and evaluation metrics, it is rather unfeasible to compare the experimental results obtained in these studies.

3.1.2. Context-Free Features

Zago et al. [13] focused in their literature review on context-free features. They identified 74 features of 32 types, although we found that their overview is somewhat inaccurate. Most of the studies cited by Zago et al. use string metrics as features in which a domain name is considered as a string of characters or words. Most frequently used are string length (in 69% of the cited works) and entropy (46%). Some features relate to linguistics, such as the pronounceability score (13%) and normality score (13%), while other features capture more complex structural aspects of domain names, such as the Jaccard Index measure (17%) and the Kullback–Leiber divergence (8%). Zago et al. identified features related to length, ratio and sequence of digits, and frequencies and pronounceability of n-grams as most relevant. They observed that arbitrary combinations of features are used in most studies, often with different names or definitions, and hence a common ground for features is still missing.
As a follow-up of the literature review by Zago et al., our literature review covered 22 more recent studies that applied ML-based methods (see Table 1). Nearly all studies (19 out of 22) use context-free features that relate to domain names.
As shown in Table 4, we identified 97 context-free feature types that we categorised as being related to the domain name, subdomains, character-level information, linguistics, and n-grams. Compared to the 32 feature types that were identified by Zago et al. [13] up to early 2018, during the next two years researchers explored 65 additional feature types. We observe however that arbitrary combinations of features have been used. Domain name length, number of subdomains, alphabet cardinality, entropy, and the ratios of digits and vowels are used most frequently.
A limited number of studies also used features derived from statistics of n-grams. Next to n-grams, Selvi et al. [21] also used masked n-grams in which every character is substituted by a symbol representing the character type (consonant, vowel, digit, other). Alaeiyan et al. [24] also consider the distribution of n-skip-grams, in which n centre characters are removed in a sequence of adjacent characters (for n = 1 , 2 ).
Yang et al. [22] and Patsakis et al. [35] both focus on wordlist-based DGAs and use a large number of features that try to distinguish wordlist-based malicious and benign domain names (excluded from Table 4). Yang et al. use 24 features based on word frequency, part-of-speech frequency, inter-word correlation, and inter-domain correlation. Patsakis et al. use 32 features that consider alphanumeric sequences, statistical and lexical characteristics, and entropy.
Hwang et al. [27] used 10 context-free features and in addition they extracted 100 features using a TextCNN. The TextCNN takes as input a 70 × 100 matrix for each domain name, constructed by taking 100 characters from the domain name (using truncation for longer domain names and padding for shorter domain names) and one-hot encoding with a dictionary of 70 characters. The TextCNN is composed of two convolutional and max pooling layers with ReLU activation function, three dense layers with ReLU activation function, and dropout.

3.1.3. Context-Aware Features

Of the 22 ML-based studies in our literature review, five studies used a combination of context-free and context-aware features [18,19,28,30,31], and two studies used context-aware features only [14,20], as indicated in Table 1.
Chiba et al. [14] used 55 context-aware features: 20 features reflect how and when a domain name is included in evolving lists of popular and malicious domain names in a certain time window; 18 features consider information from BGP prefixes, ASN, and IP address registration corresponding to the related IP addresses of a domain name; eight features consider relations between domain names of which IP addresses are in the same ASN (so called rDomains). They also use nine features that relate to domain names in rDomains. He et al. [18] used 153 context-aware features: 25 features derived from five feature types that consider DNS information; 128 features obtained from graph embedding to estimate the likelihood of a specific sequence of connected nodes, using a domain relationship graph in which domain names are connected if they are mapped to the same IP addresses using the Jaccard coefficient as weight. They also use 41 context-free features, which are the same as used by Schüppen et al. [15]. Li et al. [19] focused on the Rustock botnet that applies fast-flux and DGA. They used 31 context-aware features of eight feature types that relate to DNS, and one context-free feature (the ratio of the number of characters in the longest successive string of letters or digits and the total length of the domain name). Liang et al. [28] used five context-aware features that relate to DNS and BGP, and five context-free features. Palaniappan et al. [30] used 13 context-aware features: six DNS-based features and seven web-based features that relate to the web site for which the domain name provides the URL. They also used four context-free features. Sivaguru et al. [31] used nine DNS-based features.
There are two studies, by Schüppen et al. [15] and Liu et al. [20], that focus completely on monitoring of non-existent domain (NXDomain) responses in DNS traffic. Schüppen et al. [15] apply ML for classifying NXDomain responses as originating from benign or malicious sources. Benign NXDomains can originate from either typing errors due to users that misspell existing domain names, misconfigurations due to systems that erroneously try to resolve domain names that do not exist (anymore), and misuse due to non-intended DNS usage such as probing to detect DNS hijacking attempts or anti-virus software performing signature checks. They apply 21 context-free feature types related to domain names. Liu et al. [20] apply filtering to remove benign NXDomain responses using a whitelist, and clustering to group malicious domain names from the same DGA considering the DNS behaviour of hosts. Next, they apply statistical analysis on the clusters considering the distributions of the DNS querying time, count, and domains, from which 18 context-aware featured are derived.

3.2. DL-Based Methods

3.2.1. CNN Models

Xu et al. [41] apply a CNN-based method called n-CBDC (n-gram Character-Based Domain Classification). A sliding window is applied to obtain a sequence with length l of n-grams from a domain name. The sequence of n-grams is represented in a n × l matrix with one-hot encoding. A CNN layer is used for feature extraction by stacking multiple convolution kernels of different sizes using an inception-like structure. The CNN output is fed into a fully-connected classification network consisting of three layers with dropout. The output is derived from a sigmoid function.

3.2.2. RNN Models

RNN models for detecting DGAs have been applied in several studies. RNN models in general are composed of an embedding layer to transform a domain name into a vector representation, an LSTM layer for implicit feature extraction, and a dense output layer. Dropout is usually applied to prevent overfitting.
Woodbridge et al. [36] and Akarsh et al. [43] apply the Keras embedding layer that learns a 128-dimensional vector representation for each character in the set of valid domain characters. The output of the embedding layer is fed into an LSTM layer with 128 LSTM units for implicit feature extraction. A dropout layer is added to prevent overfitting during training. The final dense layer applies logistic regression and the output is derived from a sigmoid (for binary classification) or softmax (for multi-class classification) activation function.
Lison and Mavroeidis [37] apply one-hot input representation, a layer with 512 GRU or LSTM units, a dense output layer that takes a linear combination, and a sigmoid activation function to generate the output.
Koh and Rhodes [38] apply the pretrained ELMo (Embeddings from Language Models) word embedding layer, a fully-connected layer with 128 rectified linear units (ReLUs), and a logistic regression output layer.
Qiao et al. [44] apply an input layer where a domain name (using a fixed length of 54 characters with padding or truncation) is converted into a matrix of dimension 54 × 128 using Word2Vec’s CBOW model. An LSTM layer with an attention mechanism is used that gives different attention to different parts of the input domain name, followed by a fully connected layer, dropout, and a softmax classification function.
Vij et al. [47] use an embedding layer where each character is mapped onto a vector with 128 dimensions using a lookup. An LSTM layer with 128 units is added and dropout is used for preventing overfitting.
Yilmaz et al. [50] use an embedding layer where characters are encoded by their ASCII representation. An LSTM layer with two hidden layers is used with dropout to avoid overfitting.
Tran et al. [39] use an embedding layer that projects a padded sequence of input characters of length l to a sequence of vectors with dimension 128 × l . LSTM.MI is used, where the original LSTM is adapted to be cost-sensitive for dealing with multi-class imbalance. Sivaguru et al. [31] use a hybrid model where the output of the LSTM.MI model by Tran et al. is used, together with context-free and context-aware features, as input for a B-RF classifier that consists of 100 trees, where each tree is trained using a subset of the feature space.

3.2.3. Hybrid CNN-RNN Models

Several studies have applied hybrid models in which CNN and RNN models are combined.
Vinayakumar et al. [40] use a hybrid CNN-LSTM model. When compared to RNN, LSTM, GRU, I-RNN, and CNN models, best results are obtained with the LSTM and hybrid CNN-LSTM model, achieving over 0.99 accuracy. The accuracy with ML methods (Adaboost, DT, LR, ME, NB, RF) and hand-crafted features is below 0.96.
Yu et al. [42] compared LSTM, BiLSTM, stacked CNN, parallel CNN, and hybrid CNN-LSTM models. All these models performed equally well and obtained over 0.98 accuracy. For comparison, the accuracy of ML methods (RF and MLP) with lexical features is below 0.92.
Liu et al. [45] use a hybrid RCNN-SPP model that combines a bi-directional LSTM network, a CNN, and spatial pyramid pooling.
Highnam et al. [48] use a hybrid CNN-LSTM-ANN model. The output of the embedding layer is passed to separate LSTM and CNN models in parallel. The features extracted by the LSTM and CNN models are sent to a single layer ANN, which is then flattened to produce the output.
Ren et al. [46] compare CNN, LSTM, CNN-BiLSTM, ATT-CNN-BiLSTM, and ML (SVM) models. Best results are obtained with the ATT-CNN-BiLSTM model that is composed of an embedding layer, a CNN layer to extract local parallel features, a BiLSTM layer to extract features that depend on neighbouring characters or on characters that are wider apart, an attention layer, dropout, and an output layer.
Namgung et al. [49] compare CNN, LSTM, BiLSTM, and hybrid CNN-BiLSTM models. In the hybrid model, the output of the embedding layer is sent to a CNN and a BiLSTM with attention in parallel, which subsequently feed into a fully-connected output layer using ReLU and dropout.
Cucchiarelli et al. [34] compare LSTM.MI from Tran et al. [39], BiLSTM from Mac et al. [56], hybrid ATT-CNN-BiLSTM from Ren et al. [46], and ML (MLP, RF, SVM) models. The best accuracy is obtained by a MLP with one single hidden layer composed by 128 units. Although previous studies [40,46] showed that DL methods outperform basic ML methods, Cucchiarelli et al. [34] show that ML methods with careful feature selection and classifier tuning can still outperform DL methods.

3.3. Other Methods

Of the other methods, that are not based on ML or DL, Wang et al. [51] and Yin et al. [55] focused on NXDomain responses. Wang et al. first filter ’normal’ NXDomain responses, next cluster hosts that seem compromised by the same DGA-based malware, and finally identify compromised hosts using a supervised statistical algorithm based on query time and query count distributions. Yin et al. implemented client-side detection by using Threshold Random Walk for sequential hypothesis testing that relies solely on benign domains.
Satoh et al. [52] filter benign domain names using whitelists, select the longest subdomain and split it into words using dictionaries, and estimate the randomness of character strings. To compensate for deficiencies of the dictionaries, they also estimate the randomness of a subdomain by referring to web search results.
Sun et al. [53] applied a graph convolutional network method considering the character distribution of domain names, resources aggregation of attackers, and the query behaviour of clients. The DNS context is modelled as a Heterogeneous Information Network (HIN) of clients, domains, IP addresses, and different types of relations among them. Meta-paths are elaborately extracted to help uncover higher-level semantics hiding in the HIN. A graph convolutional network (GCN) is used that applies an attention mechanism to adaptively learn the meta-paths.
Yan et al. [54] applied graph analysis in a semi-supervised learning scheme. They first extract three types of feature vectors: vectors that represent visiting patterns of domain names in traffic during a fixed time frame are extracted using a CNN-based auto-encoder; vectors that represent the visiting order of domain names are extracted using an embedding scheme where a series of domain names is considered as a series of words in NLP; vectors that represent lexical features of domain names are extracted using an LSTM. These three vectors are combined into a comprehensive feature vector for each domain name. Graph analysis algorithms are used next to group domain names from the same DGA family. By considering thresholds for the number of domain names visited, the most visited domain name, the dispersion of the length of visited domain names, and the dispersion of time intervals in which domain names are visited, it is determined whether a host is infected.

3.4. Datasets

The 42 studies in our literature review as listed in Table 1, Table 2 and Table 3 used various datasets with benign and malicious domain names to obtain experimental results.
The Alexa dataset https://www.alexa.com/topsites has been used most frequently (in 74% of the reviewed studies) as a source of benign domain names. The Alexa dataset contains the domain names of the most popular web sites in the world. The Alexa dataset with the top 1 million sites was freely available until 2016; afterwards only the top 500 web sites has been freely available. Occasionally other datasets have been used, such as the Majestic dataset https://majestic.com/reports/majestic-million, OpenDNS https://www.opendns.com/, and Cisco Umbrella https://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip.
Several sources have been used for DGA-generated domain names. The dataset from Bambenek http://osint.bambenekconsulting.com/feeds/, DGArchive https://dgarchive.caad.fkie.fraunhofer.de, and Netlab https://data.netlab.360.com/feeds/dga/dga.txt have been used most frequently (in 26%, 21%, and 17% of the reviewed studies). The Bambenek dataset is an OSINT DGA domain feed from Bambenek Consulting. DGArchive, as introduced by Plohmann et al. in 2016 [7], originally contained lists of domain names generated by 43 DGA families, and has been extended later on.

4. Research Method

We applied the method as outlined in Figure 1. We trained and tested different multi-class classification models, using both ML and DL, for which we applied TF-IDF features. We also trained and tested an LSTM model without TF-IDF that contains an embedding layer to convert domain names. We consider such LSTM model as state-of-the-art, and hence, by comparing the results obtained with the LSTM model and the TF-IDF based models, we can evaluate the effectiveness of TF-IDF based models.
In the following subsections we provide details on the datasets in Section 4.1, on the usage of TF-IDF in Section 4.2, on the ML and DL models in Section 4.3, on the evaluation metrics in Section 4.4, on the experimental results in Section 4.5, and a discussion on the experimental results in Section 4.6.

4.1. Datasets

We obtained datasets with benign domain names and malicious domain names as generated by DGAs from public sources.
We derived our dataset with benign domain names from the TRANCO list of the top one million most popular domains on the web https://tranco-list.eu. The TRANCO list is based on available rankings from Alexa, Cisco Umbrella, Majestic, and Quantcast, but improves upon each of these rankings by addressing agreement on the set of popular domains, stability over time by averaging the rankings over the past 30 days, popularity and availability of the listed websites, and lack of malicious domains [57]. We performed the following operations:
  • We downloaded 10 separate TRANCO lists during 2019 on 8 January, 5 February, 7 May, 4 June, 2 July, 8 August, 3 September, 1 October, 5 November, and 3 December, and took the intersection of these 10 lists.
  • We removed domain names that were also in the list of malicious domain names.
Our final dataset contains 583,954 benign domain names. The length of these domain names varies from 4 to 67 characters.
We derived our dataset with malicious domain names from DGArchive, a free service offered by Fraunhofer FKIE [7]. We downloaded the DGArchive dataset at the end of 2018, which contained 110,497,746 malicious domain names from 87 DGA families. We performed the following operations on this dataset:
  • We removed duplicate malicious domain names per DGA family and across DGA families.
  • We removed domain names that are also in the list of benign domain names.
  • We removed the DGA families for which less than 1000 domain names are available.
  • We selected all domain names for the DGA families for which between 1000 and 10,000 domain names are available.
  • We randomly selected 10,000 domain names from each DGA family for which more than 10,000 domain names are available.
Our final dataset contains 492,800 malicious domain names from 57 DGA families.
Table 5 shows details of the malicious domain names per DGA family. The column ’DGA type’ indicates whether the DGA is arithmetic-based (A), hash-based (H), or wordlist-based (W), see Section 2.2. The column ’Count’ indicates the number of domain names; the column ’Length’ indicates the length (min, max) of the domain names. The last two columns show examples of domain names.
In total, our dataset contains 1,076,754 domain names. For our experiments, we divided the dataset into two disjoint subsets: 70% is included in the training dataset for training the models (containing 753,727 domain names), and 30% is included in the test dataset for evaluating the trained models (containing 323,027 domain names).
The distribution of the average frequency of unigram occurrences in malicious domain names per DGA family as well as in benign domain names from the topsites, is shown in Figure 2. We derived these distributions from the domain names in the training dataset as follows: Since domain names are case insensitive, we first lowercased all domain names. The resulting domain names contain characters from a dictionary of 39 characters { a , , z , 0 , , 9 , , . , _ } (i.e., letters, digits, hyphen, dot, and underscore). Next, we computed the relative frequency of each character, which is the number of occurrences of the character divided by the length of the domain name. Finally, we computed the average frequency of each character for each category of domain names (which is either a DGA family or topsites).
The figure shows that different types of DGA families have different distributions. Of the DGA-A families (banjori to xxhex), some have a rather uniform distribution (e.g., chinad and gameover), but in most distributions no digits are present. Since the second-level domain names of DGA-H families (bamital to wd) are hexadecimal numbers, the distributions mainly contain characters { a , , f , 0 , , 9 } ; other characters are rare and occur in the top-level domain name. Since the domain names of DGA-W families (gozi to suppobox) contain words, the distributions are similar to the distribution of the domain names of topsites. However, this also holds for some of the distributions of DGA-A families (e.g., banjori and pykspa2).
The differences in distributions show that these can be used as a basis for multi-class or binary classification of domain names. Hence, classifiers in which features are applied that rely on n-gram distributions (such as TF-IDF as we propose in this paper), look promising.

4.2. TF-IDF

We use TF-IDF (as explained in Section 2.3) as the single feature type in various classifiers. In general, TF-IDF yields a weighting factor for each term which indicates how relevant the term is to a document in a collection of documents. We apply TF-IDF to obtain weighting factors to evaluate how relevant n-grams are to a domain name in a set of domain names.
We applied the code as shown in Listing 1 to derive the TF-IDF for the top 5000 n-grams in the training dataset, using the class TfidfVectorizer from scikit-learn. We first determine the top 5000 of n-grams (for n { 1 , 2 , 3 } ) that occur most often in the training dataset, and learn the IDF for each of these n-grams (i.e., the inverse frequency of each n-gram in the domain names in the training dataset). The training dataset is transformed from a set of domain names into a set of vectors with dimension 5000 representing the TF-IDF of the top 5000 n-grams. Next, the TF-IDF is determined for these 5000 n-grams in the test dataset. Hence, also the test dataset is transformed from a set of domain names into a set of vectors with dimension 5000 representing the TF-IDF of the top 5000 n-grams, using the vocabulary and IDF of n-grams derived from the training dataset. TF-IDF for n-gram x in domain name y is computed by Equation (1), where TF x , y denotes the frequency of x in y, DF x the number of domain names containing x, and N the total number of domain names.
TF - IDF x , y = ( 1 + l o g ( TF x , y ) ) × l o g ( N DF x )
Listing 1. Deriving TF-IDF.
Listing 1. Deriving TF-IDF.
tfidf = TfidfVectorizer(sublinear_tf=True, lowercase=True, analyzer=’char’, ngram_range=(1,3), dtype=np.float32,
max_features=5000)
X_train_tfidf = tfidf.fit_transform(X_train)
X_test_tfidf = tfidf.transform(X_test)

4.3. ML and DL Models

As indicated in our literature review in Section 3.1 (see in Table 1), different ML models have been applied in prior studies for DGA-based botnet detection, including Decision Trees, K-Nearest Neighbours, Logistic Regression, Naive Bayes, Neural Networks, Support Vector Machine, and ensemble approaches constituted by boosting (such as AdaBoost, BT, C5.0, GB, GBM, GBT, XGBoost) or bagging (such as CART, ET, RF). RF and SVM are applied most often. In line with these prior studies, we considered 7 ML models, all with TF-IDF feature vectors: Decision Tree (DT), Gradient Boosting (GB), K-Neighbours (KN), Logistic Regression (LR), Multinomial Naive Bayes (MNB), Random Forest (RF), and Support Vector Machine (SVM). All models are multi-class classifiers with 58 outputs (corresponding to the 57 DGA families and topsites).
We applied TensorFlow with Keras and Scikit-learn in our experiments. We tuned the hyperparameters for each ML model using RandomizedSearchCV on the training set with 2-fold cross-validation and 20 iterations. The hyperparameters involved are shown in Table 6. In each iteration, a different hyperparameter setting was tried. The hyperparameter settings that yielded the best classification results (by means of the mean F1-score) are shown in bold.
We also considered two DL models: Multi-Layer Perceptron (MLP) with TF-IDF feature vectors, and Long Short-Term Memory (LSTM) with embedding (without TF-IDF). For training the DL models, we used ’Adam’ as optimizer, ’categorical_crossentropy’ as loss function, and ’accuracy’ as metric. The ’validation_split’ is set to 0.3, which means that 70% of the training set is used for training and 30% for validation. We trained the DL models for 20 epochs with a batch size of 512. We used an early stopping mechanism, configured by EarlyStopping(monitor = ’val_categorical_crossentropy’, patience = 5) which means that training is stopped after five epochs without improvement.
We tried MLP models using two to five dense layers, with and without dropout. All models are multi-class with 58 outputs (corresponding to the 57 DGA families and topsites). Best results (by means of mean F1-score) were obtained using the model as shown in Table 7.
For comparison, we also applied an LSTM model without TF-IDF. We used an embedding layer to convert a domain name into a vector representation. We derived a dictionary of 39 characters and assigned a unique id to each character. We lowercased and tokenized each domain name into a sequence of characters, which we next transformed into a numeric vector by assigning the character id’s from the dictionary. We used vectors with a fixed length of 67. For domain names containing less than 67 characters, we padded the corresponding vector with 0 values. For domain names that contained more than 67 characters, we discarded the extra characters. In addition, our LSTM model is multi-class with 58 outputs (corresponding to the 57 DGA families and topsites). Details of the model are shown in Table 8.

4.4. Metrics

We evaluated the accuracy of our models by considering how well the models are able to correctly classify domain names. Consider for instance the actual positive class of domain names that are generated by the banjori DGA, and the actual negative class of all other domain names (including benign domain names and domain names generated by other DGAs). We can express the classification results, i.e., the predictions as output by a model, by considering the positive predictions (i.e., domain names that are classified as being generated by the banjori DGA) and the negative predictions (i.e., domain names that are classified as not being generated by the banjori DGA), and whether the predicted class matches the actual class. A classification result is either a true positive (TP) in case of a correct positive prediction, a false positive (FP) in case of an incorrect positive prediction, a true negative (TN) in case of a correct negative prediction, or a false negative (FN) in case of an incorrect negative prediction. The ratio between these classifications can be expressed by different metrics. Common metrics are precision, which is the fraction of correct positive predictions among all correct and incorrect positive predictions ( TP / ( TP + FP ) ) and recall, which is the fraction of correct positive predictions among all elements in the actual positive class ( TP / ( TP + FN ) ). Precision and recall may not be particularly useful when used in isolation, since deviations in FP and FN may lead to considerable differences between recall and precision. This is addressed by the F1-score, which takes the harmonic mean of precision and recall:
F 1 - score = 2 precision 1 + recall 1 = TP TP + 1 2 ( FP + FN )
We evaluated all our DL and ML models using the held-out test set and computed the F1-score. For further analysis of the results, we also considered confusion matrix, precision-recall curve, and ROC-curve of each model as metrics. In a confusion matrix, each row represents an actual class, while each column represents a predicted class. A precision-recall curve shows the trade-off between precision and recall for different settings of the classification threshold. An ROC-curve shows the true positive rate against the false positive rate at various settings of the classification threshold.

4.5. Results

Table 9 shows the F1-score for different ML and DL models. The corresponding results for precision and recall are shown in Table A1 and Table A2 in Appendix A. The last two columns show the number of vectors in the training set and the test set for each class. The top rows show the results for each DGA family and for the benign domain names (’topsites’). The bottom rows show the aggregated results for all the 57 DGA families, for the arithmetic-based DGAs (DGA-A: banjori to xxhex), the hash-based DGAs (DGA-H: bamital to wd), and the wordlist-based DGAs (DGA-W: gozi to suppobox), and the overall results (for all malicious and benign domain names). The aggregated results are expressed as the average results (’macro average’), the weighted average results (where the weights correspond to the number of vectors in the test set; ’micro-average’), and the corresponding standard deviations.
Table 9 shows that best results overall are obtained with the LSTM model, yielding 90.69% weighted average F1-score. The MLP model performed second best (89.08%), closely followed by the SVM model (88.08%). The LR model (86.30%) performed better than the GB (81.02%), DT (80.52%), MNB (80.01%), and RF (78.54%) models, while the KN model (63.00%) performed worst.
Although the LSTM model yielded best results, there are some notable exceptions. The best results for the DGA-W families were obtained with the SVM model, with the MLP model as second best. For the topsites, best results were obtained with the MLP model, with the SVM model as second best.
The aggregated results in Table 9 also show that the best performing models in terms of the highest average F1-score also have the smallest standard deviation and hence the smallest spread in F1-scores. Nevertheless, the standard deviations of 14.68 for the LSTM model and 17.17 for the MLP model still are rather large.
The spread in F1-scores is also shown in the boxplots in Figure 3. The LSTM model clearly performs best, with the MLP model as second best, when considering all malicious and benign domain names (’Total’), all malicious domain names (’DGA-all’), and the domain names generated by arithmetic-based DGAs (’DGA-A’). All models, except the KN model, perform rather well for domain names generated by hash-based DGAs (’DGA-H’). The SVM model performs best for domain names generated by wordlist-based DGAs (’DGA-W’).
Figure 4 shows the confusion matrices of the LSTM, MLP, SVM, and LR models. All matrices show that false classifications of DGA-W domain names are classified as topsites. As observed in Section 4.1, the DGA-W domain names closely resemble benign domain names. In the LSTM and MLP models, false classifications are often classified as topsites, pykspa and vidro, while in the SVM and LR models, false classifications are often classified as topsites, dnschanger, and ramnit.
Figure 5 shows the precision-recall curves for the micro-average of all classes. This figure confirms that the LSTM model performs best overall, yielding 0.974 area under the curve, closely followed by the MLP model, yielding 0.965 area under the curve. A high area under the curve represents high precision and high recall, which indicates low false positive rates and low false negative rates.
Figure 6 shows the ROC-curves. We aggregated the outputs of our multi-class classification models into binary classification by aggregating the 57 DGA outputs into class_1 and taking the topsites as class_0. The figure shows that the MLP model performs best, yielding 0.995 area under the ROC-curve (AUC), closely followed by the LSTM model and the LR model that both yield 0.994 AUC. The partial AUC (PAUC) for the false positive rate in the range from 0 to 0.04 is 0.881 for the LSTM model, 0.878 for the MLP model, and 0.829 for the LR model.
Table 10 shows the optimum true positive and false positive rate for each model. The MLP model yields best results (96.54% TPR and 2.53% FPR) and performs slightly better than the LR model (96.11% TPR and 3.13% FPR) and the LSTM model (95.67% TPR and 2.68% FPR).

4.6. Discussion

In our experiments, the DL models clearly yielded better results than the ML models in multi-class classification, as shown by the F1-scores. This is as expected, since DL models are more advanced and allow deeper analysis of the input data either by applying several hidden layers (in the MLP model) or feedback (in the LSTM model). This is in line with previous studies [40,46], which also showed that DL methods tend to outperform basic ML methods. Cucchiarelli et al. [34] on the other hand showed that ML methods with careful feature selection and classifier tuning can still outperform DL methods. Although our experiments show that ML methods perform worse than DL methods with multi-class classification, the AUC results with binary classification for the DL models and the best performing ML models (SVM and LR) are similar, which confirms the importance of feature selection (as demonstrated by our TF-IDF feature selection) and classifier tuning.
We used TF-IDF features with the MLP model, and with all ML models. We argued that TF-IDF features are promising due to the differences in the n-gram distributions of benign domain names and malicious domain names from different DGA families. Our experiments indicate that models using TF-IDF features indeed perform well. The results obtained with TF-IDF in the MLP model are comparable with the results obtained with the LSTM model in which we applied standard embedding.
Our experiments also show that there are notable differences among domain names from different DGA types. DGA-H domain names are distinguishable since they represent hexadecimal numbers, and hence they are easier to classify. This also shows in our results, as the highest aggregated F1-scores are for DGA-H (up to 99.96% with the LSTM model). DGA-W domain names are close to regular domain names, and hence they are more difficult to classify. This also shows in our results, as the F1-scores for DGA-W are much lower than for DGA-A and DGA-H. For DGA-W, both the LSTM and MLP model do not perform very well (73.18% and 78.57% micro average F1-score) and the SVM model shows better results (83.61%).
Unfortunately it is not straightforward to compare our results to prior results as published in scientific literature. This is mainly due to differences in the datasets used in experiments. As discussed in Section 3, nearly all studies used different datasets of benign and malicious domain names. Even if the same datasets are used as sources, the datasets originate from different time periods and also different subsets are taken with different numbers and types of DGA families. As discussed above, the mix of DGA families included in the dataset has a large impact.
Comparison with prior work therefore would require to implement the models from prior work and evaluate them with our datasets. There is a vast amount of prior work, and criteria would be needed for deciding which models from prior work to consider. Furthermore, often details are missing in literature that hinder reproducing models, such as the values of all hyperparameters and default settings, and the configurations of software tools. And even when reproducing the models is feasible, training and evaluating the models takes considerable effort.

5. Conclusions

We presented the results of an extensive literature review on the application of ML and DL for detection of DGA-generated domain names. We observed that this is an active research field to which numerous groups all over the world are contributing. We also observed that there is no common methodology for performing experiments and reporting on results. Different ML and DL models are being used. Arbitrary combinations of features for ML models are being used and a common ground for features is missing. Different datasets from various sources are being used, with different subsets of DGA families. These differences cause that it is hard to compare experimental results.
We proposed the usage of TF-IDF as single feature type. We apply TF-IDF for evaluating how relevant n-grams are to a domain name in a set of domain names. We used TF-IDF of the 5000 most popular n-grams (for n = 1, 2, 3) as features for popular ML and DL models. For comparison, we also used an LSTM model with embedding layer to convert domain names from a sequence of characters into a vector representation. Our results show that the DL models outperform ML models. The LSTM and MLP model provide the highest overall F1-scores (micro-averages of 90.69% and 89.08%), the highest area under the precision-recall curve (micro-averages of 0.974 and 0.965), the highest area under the ROC-curve (0.994 and 0.995), and the highest true positive rates (95.67% and 96.54%) with the lowest false positive rates (2.68% and 2.53%). Hence, the performance of the MLP model with TF-IDF features and the LSTM model with embedding is rather similar.
A limitation of any approach that relies on a single feature type, is that an adversary can tune the DGA such that the feature values of malicious domain names match those of benign domain names. This is also the case for our TF-IDF based approach: an adversary may tune a DGA to generate domain names for which the n-gram distributions match those of benign domain names, although this might be difficult to implement due to the large number of n-grams. We also observe that results differ for different DGA types. Our LSTM and MLP models perform well for classifying arithmetic-based and hash-based DGAs, but less for wordlist-based DGAs where domain names resemble regular domain names.
In our future work we intend to look at the effectiveness of features for ML models as mentioned in scientific literature. We observed that a large variety and rather arbitrary combinations of features have been applied, and it is not clear yet which features are effective in what cases. We also plan to look into hybrid learning models, where different types of models are combined. We observed that different models perform best for classifying domain names from different types of DGAs. We also intend to explore more advanced deep-learning models to derive features and to classify DGA-generated domain names.

Author Contributions

H.V.: literature review, paper writing, project lead, funding acquisition; H.A.: TF-IDF methodology, model creation, experiments, figures. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by Open Universiteit and SIDN Labs in the Dagobert-project. The APC was funded by Open Universiteit.

Acknowledgments

We kindly thank IT and Facility Services at Open Universiteit and SURF for providing the compute servers for performing our experiments. We kindly thank Daniel Plohmann at Fraunhofer FKIE for providing access to DGArchive.

Conflicts of Interest

The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, or in the decision to publish the results.

Appendix A. Precision and Recall

Table A1. Precision (expressed as percentage).
Table A1. Precision (expressed as percentage).
ClassDTGBKNNLSTMLRMLPMNBRFSVM
banjori93.3899.5198.7699.3699.4999.8099.4110099.73
bedep36.4461.6712.1285.8055.7570.8471.2958.4069.29
chinad67.7676.2432.3599.6385.7591.8057.3784.5195.68
conficker21.7047.0110.5955.5834.0541.5526.7049.4042.16
corebot85.9397.5797.3399.7499.3499.2897.1198.4399.44
cryptolocker37.8351.1229.2768.7340.9057.1928.8657.2548.16
dnschanger43.4742.878.0974.4133.3458.6622.6442.6344.10
ebury58.4074.1394.0899.6798.3193.0898.3891.6495.84
emotet95.6789.6196.4899.3489.1995.9679.8290.8593.45
fobber22.0346.24083.859.2348.53063.9525.00
gameover90.4594.9671.4399.9089.7398.5856.4495.6798.71
locky42.4272.5453.4583.4556.7959.7353.9275.9461.41
murofet58.5764.8428.3076.9957.7365.6037.8162.1265.12
murofetweekly95.8499.3710099.8799.9799.8798.6699.90100
necurs66.9693.3829.4196.2886.0892.8976.4394.0594.74
nymaim32.1664.0018.5567.3144.1755.0231.7563.1854.09
oderoor27.7752.8377.5075.0983.8267.1994.5356.6192.08
padcrypt89.4995.9897.7799.9099.4899.6787.6099.3999.44
proslikefan36.1963.7714.3564.9451.8369.4247.8969.4362.81
pushdo82.3493.0794.0198.0296.4396.3993.1594.7396.92
pushdotid41.1357.5741.6195.3476.0878.5562.9769.3879.31
pykspa24.9632.5015.0440.5829.9536.4122.9834.4236.56
pykspa246.9253.4645.0554.0147.9351.5349.1854.6649.01
pykspa2s46.7352.7145.4952.7148.1051.7749.4654.5349.80
qadars78.0693.0790.4299.2598.6999.4397.0288.7799.28
qakbot48.9465.056.2572.1939.5563.5833.9875.1150.22
ramdo97.7793.9790.5810093.4398.9274.5596.1396.23
ramnit26.2731.0517.1946.9525.1938.8523.2450.4726.54
ranbyus67.1172.0070.0081.0964.8375.8245.6672.9171.59
rovnix78.0475.9631.8299.7673.285.6855.4074.9677.50
shifu38.0837.0710.6069.1032.5552.6831.3442.1736.50
simda76.0070.6461.8596.1794.2894.4093.7966.4795.44
sisron99.9310097.3310099.9699.9399.9310099.96
sphinx59.1949.8678.7985.1653.9260.0239.5248.1354.62
sutra95.7196.3897.8299.7097.3297.4589.4395.3198.22
symmi99.8799.5490.5310099.8499.9797.8599.7799.97
szribi93.4278.5372.8196.4193.6396.3988.1690.6796.19
tempedrevetdd5.674.403.5783.0314.9464.290051.22
tinba53.8657.8967.2773.6760.2975.9145.2357.2769.03
tofsee97.2499.8946.9798.2097.4898.9397.2096.4597.99
torpig84.4495.1678.8498.0797.4298.2097.4186.5498.04
urlzone66.5678.4025.4998.4481.7690.8364.6573.4086.00
vawtrak25.7071.9651.8375.2565.9475.3178.9797.4476.26
vidro48.8661.0182.2150.1949.9843.1072.0371.7159.39
virut47.4651.418.1377.7944.6170.3334.1268.9659.71
xxhex99.2399.6293.1899.4710099.9297.40100100
bamital99.3999.6271.3699.9799.9799.8393.4499.9799.97
dyre98.5999.7363.7310099.9799.9797.98100100
ekforward97.4999.5381.2099.8999.8999.8998.8799.6699.66
infy98.0597.6058.2199.8099.1599.5397.6398.6699.42
pandabanker98.3399.0761.1899.8798.6699.5796.9199.2899.24
tinynuke99.3799.5765.7899.9799.8799.9789.8499.9099.93
wd99.9310083.1610099.9399.9799.83100100
gozi53.5188.7293.6283.6991.8792.4994.3096.3797.46
matsnu25.1866.6770.2959.7575.7581.1792.7510091.96
nymaim252.0587.1382.3784.5189.6188.5188.8699.0695.60
suppobox60.4672.1285.9879.4787.0086.4292.5196.6793.74
topsites91.4985.6070.8995.9495.1396.2090.4981.6795.02
DGAmacroaverage65.1674.9057.9285.5774.2880.8269.2079.0079.47
stddev27.6622.7431.9416.8126.6520.0229.2222.1623.13
microaverage67.1776.5559.3085.1675.5481.2570.0080.2580.25
stddev25.9120.8130.9917.5024.8820.1527.2619.8922.38
DGA-Amacroaverage61.5670.8754.0184.1469.4077.3863.0774.2175.06
stddev26.8722.9134.0017.3627.2520.6129.3422.1123.67
microaverage64.1272.7055.4883.6770.6177.6763.5575.3075.64
stddev24.9020.9733.3218.2125.4920.9827.1319.5522.99
DGA-Hmacroaverage98.7499.3069.2399.9399.6399.8296.3699.6499.75
stddev0.800.749.030.070.480.183.250.470.29
microaverage98.8899.2867.8899.9399.6099.8196.0799.6499.75
stddev0.720.788.530.070.500.193.320.490.30
DGA-Wmacroaverage47.8078.6683.0776.8686.0687.1592.1198.0394.69
stddev13.449.488.4210.066.204.082.001.542.05
microaverage47.6478.5782.9576.7485.9887.1092.1098.0494.67
stddev13.529.508.4410.136.234.091.991.552.05
Totalmacroaverage65.6275.0958.1485.7574.6481.0869.5679.0579.74
stddev27.6422.5931.7116.7226.5619.9529.1021.9723.02
microaverage80.3581.4565.5991.0086.1589.3581.1181.0288.26
stddev21.3214.7921.7513.0019.4615.5421.0913.4816.84
Table A2. Recall (expressed as percentage).
Table A2. Recall (expressed as percentage).
ClassDTGBKNNLSTMLRMLPMNBRFSVM
banjori95.5497.2498.0299.8699.5699.8391.5998.3099.93
bedep43.8640.930.1964.3748.0054.7935.1223.7754.47
chinad71.1960.310.3798.7761.2878.8145.4656.6467.29
conficker24.2621.413.8430.5226.4935.7715.0814.9231.28
corebot86.0180.7134.7999.8499.2899.6799.6784.5399.21
cryptolocker43.7741.310.8265.8238.5856.3736.9828.7149.47
dnschanger50.4445.560.6294.0736.1584.1419.2433.4664.93
ebury51.7453.0689.2698.6886.6193.3990.5841.6591.40
emotet97.8799.2034.7799.8799.6099.8095.1799.6799.83
fobber22.5713.18022.241.985.4409.062.64
gameover90.8793.550.1797.9586.4096.6677.4195.8393.62
locky40.8938.105.7853.3949.4352.6139.1031.5746.77
murofet58.7262.340.4984.2662.8379.8567.4756.8370.31
murofetweekly95.5098.9177.4199.9399.7099.8710099.47100
necurs63.0057.840.3380.3670.3473.4165.3142.8669.74
nymaim31.6136.865.1841.6338.3543.6019.9532.9639.67
oderoor24.5824.1382.1935.7165.9842.1263.1314.8761.09
padcrypt91.7289.2950.3499.9799.9399.7799.9796.5899.97
proslikefan32.3930.943.1244.8935.7437.4018.8321.9236.57
pushdo78.8983.7159.4893.1395.8895.6890.7275.3494.94
pushdotid38.5633.316.6499.3985.8896.2692.9119.4887.89
pykspa23.3527.794.4865.7630.5353.5719.7728.1944.05
pykspa248.6539.3646.3247.3247.7555.9143.7245.6950.35
pykspa2s42.6052.5043.3459.8347.5746.3038.3449.3748.77
qadars71.8071.3166.7599.4498.7997.7499.1874.8199.25
qakbot41.7040.890.1755.7540.3949.1633.7033.7741.63
ramdo98.5097.0018.8510099.9499.8899.9498.85100
ramnit24.9212.800.7558.5530.7923.8334.325.4729.90
ranbyus64.3869.761.3892.1065.6073.9651.9565.5071.83
rovnix76.2082.660.2499.0879.5889.8172.6187.8287.28
shifu38.4542.394.2394.5121.5552.682.9614.7928.17
simda75.8376.5884.3398.9697.1097.8293.5579.1598.14
sisron99.93100100100100100100100100
sphinx60.5270.172.6198.4265.6287.0354.4963.5476.84
sutra96.6498.2987.4899.8099.8399.9099.7399.66100
symmi99.7199.8499.8010010010010099.84100
szribi93.4877.0999.8799.8799.2799.3796.0891.1699.90
tempedrevetdd3.491.000.5034.163.248.98005.24
tinba53.1636.118.7694.5962.9473.0365.3123.3267.14
tofsee98.6099.2510010099.8999.6897.0999.4699.89
torpig76.4793.4394.5799.0999.2299.2291.2788.4199.66
urlzone59.2664.221.2889.3681.6583.9563.2363.4384.08
vawtrak11.839.9012.7277.7650.5147.0421.724.8844.60
vidro40.3439.6636.2451.6943.5955.2735.9537.0244.14
virut38.5830.145.2777.9737.0368.5517.509.8342.91
xxhex98.86100100100100100100100100
bamital99.5699.6952.19100100100100100100
dyre99.1299.7616.1210010010091.53100100
ekforward97.7197.9477.5710099.7710099.7799.6699.77
infy98.7596.3193.0610098.6899.7397.8799.5999.32
pandabanker99.3099.2494.8910010010099.8399.97100
tinynuke99.1799.7741.7710099.9099.9799.67100100
wd99.9310084.11100100100100100100
gozi51.0055.2935.8470.5879.4277.4835.9847.9379.55
matsnu23.054.7120.4747.0147.2148.562.070.0356.89
nymaim244.6934.5211.6879.3774.3773.5432.546.9172.29
suppobox60.8040.7969.4385.0686.6692.5340.5944.3195.49
topsites93.2098.7599.4097.6398.0798.3195.9199.5898.94
DGAmacroaverage63.9462.4938.0982.1271.5276.8463.0958.6174.18
stddev28.6730.8738.0522.9428.9026.0134.1935.4227.54
microaverage66.0764.5837.2383.1473.3378.9764.3761.1576.28
stddev26.7129.1237.1921.3526.6023.2332.3633.7424.82
DGA-Amacroaverage60.2459.4434.2180.4167.1873.6560.7855.2770.10
stddev27.7329.4638.7923.8929.5926.9133.5333.8328.39
microaverage62.9962.2833.2081.7769.2676.2562.7758.7572.55
stddev25.4727.2237.8222.1327.2523.9631.1731.7125.60
DGA-Hmacroaverage99.0898.9665.6710099.7699.9698.3899.8999.87
stddev0.651.2627.5000.450.092.880.170.24
microaverage99.2399.0864.4010099.7799.9598.2399.9199.88
stddev0.491.2728.7100.470.103.000.160.25
DGA-Wmacroaverage44.8933.8334.3670.5171.9273.0327.8024.8076.06
stddev13.8518.4222.0214.5114.9215.8015.1221.5013.89
microaverage44.7233.5834.2170.3671.7372.8527.6124.5475.91
stddev13.9218.4922.0014.6015.0015.8815.2221.5113.93
Totalmacroaverage64.4463.1239.1482.3871.9777.2163.6559.3274.60
stddev28.6830.9638.5522.8328.8625.9434.1635.5227.49
microaverage80.7883.1070.9390.9986.7489.4581.4781.9888.57
stddev22.5726.0439.9116.1521.8218.4426.9529.8020.24

References

  1. Khattak, S.; Ramay, N.R.; Khan, K.R.; Syed, A.A.; Khayam, S.A. A Taxonomy of Botnet Behavior, Detection, and Defense. IEEE Commun. Surv. Tutor. 2014, 16, 898–924. [Google Scholar] [CrossRef]
  2. Salton, G.; Buckley, C. Term-weighting approaches in automatic text retrieval. Inf. Process. Manag. 1988, 24, 513–523. [Google Scholar] [CrossRef] [Green Version]
  3. Barabosch, T.; Wichmann, A.; Leder, F.; Gerhards-Padilla, E. Automatic extraction of domain name generation algorithms from current malware. In Proceedings of the STO Information Systems and Technology Panel (IST) Symposium: Information Assurance and Cyber Defense, Koblenz, Germany, 24–25 September 2012; NATO: Brussels, Belgium, 2012; pp. 2.1–2.13. [Google Scholar]
  4. Royal, P. Analysis of the Kraken Botnet; Technical Report; Damballa, Inc.: Atlanta, GA, USA, 2008. [Google Scholar]
  5. Stone-Gross, B.; Cova, M.; Cavallaro, L.; Gilbert, B.; Szydlowski, M.; Kemmerer, R.; Kruegel, C.; Vigna, G. Your Botnet is My Botnet: Analysis of a Botnet Takeover. In Proceedings of the 16th ACM Conference on Computer and Communications Security, Chicago, IL, USA, 9–13 November 2009; ACM: New York, NY, USA, 2009; pp. 635–647. [Google Scholar] [CrossRef]
  6. Leder, F.; Werner, T. Know Your Enemy: Containing Conficker. To Tame A Malware; 7 April 2009 (rev2). Available online: https://www.honeynet.org/papers/kye-kyt/know-your-enemy-containing-conficker (accessed on 1 July 2021).
  7. Plohmann, D.; Yakdan, K.; Klatt, M.; Bader, J.; Gerhards-Padilla, E. A Comprehensive Measurement Study of Domain Generating Malware. In Proceedings of the 25th USENIX Security Symposium (USENIX Security 16), Austin, TX, USA, 10–12 August 2016; USENIX Association: Austin, TX, USA, 2016; pp. 263–278. [Google Scholar]
  8. Mockapetris, P. RFC 1035 Domain Names Implementation and Specification; IETF Request for Comments: 1035; IETF: Fremont, CA, USA, 1987. [Google Scholar]
  9. Klensin, J. RFC 5890 Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework; IETF Request for Comments: 5890; IETF: Fremont, CA, USA, 2010. [Google Scholar]
  10. Beel, J.; Gipp, B.; Langer, S.; Breitinger, C. Research-paper recommender systems: A literature survey. Int. J. Digit. Libr. 2016, 17, 305–338. [Google Scholar] [CrossRef] [Green Version]
  11. Luhn, H. A Statistical Approach to Mechanized Encoding and Searching of Literary Information. IBM J. Res. Dev. 1957, 1, 309–317. [Google Scholar] [CrossRef]
  12. Sparck Jones, K. A statistical interpretation of term specificity and its application in retrievel. J. Doc. 1972, 28, 11–21. [Google Scholar] [CrossRef]
  13. Zago, M.; Pérez, M.G.; Pérez, G.M. Scalable detection of botnets based on DGA. Soft Comput. 2020, 24, 5517–5537. [Google Scholar] [CrossRef]
  14. Chiba, D.; Yagi, T.; Akiyama, M.; Shibahara, T.; Mori, T.; Goto, S. DomainProfiler: Toward accurate and early discovery of domain names abused in future. Int. J. Inf. Secur. 2018, 17, 661–680. [Google Scholar] [CrossRef] [Green Version]
  15. Schüppen, S.; Teubert, D.; Herrmann, P.; Meyer, U. FANCI: Feature-based Automated NXDomain Classification and Intelligence. In Proceedings of the 27th USENIX Security Symposium (USENIX Security 18), Baltimore, MD, USA, 15–17 August 2018; USENIX Association: Austin, TX, USA, 2018; pp. 1165–1181. [Google Scholar]
  16. Ashiq, M.I.; Bhowmick, P.; Hossain, M.S.; Narman, H.S. Domain Flux-based DGA Botnet Detection Using Feedforward Neural Network. In Proceedings of the MILCOM 2019—2019 IEEE Military Communications Conference (MILCOM), Norfolk, VA, USA, 12–14 November 2019; IEEE: Piscataway, NJ, USA, 2019; pp. 1–6. [Google Scholar] [CrossRef]
  17. Fu, Y.; Yu, L.; Hambolu, O.; Ozcelik, I.; Husain, B.; Sun, J.; Sapra, K.; Du, D.; Beasley, C.T.; Brooks, R.R. Stealthy Domain Generation Algorithms. IEEE Trans. Inf. Forensics Secur. 2017, 12, 1430–1443. [Google Scholar] [CrossRef]
  18. He, W.; Gou, G.; Kang, C.; Liu, C.; Li, Z.; Xiong, G. Malicious Domain Detection via Domain Relationship and Graph Models. In Proceedings of the 2019 IEEE 38th International Performance Computing and Communications Conference (IPCCC), London, UK, 29–31 October 2019; IEEE: Piscataway, NJ, USA, 2019; pp. 1–8. [Google Scholar] [CrossRef]
  19. Li, W.; Jin, J.; Lee, J. Analysis of Botnet Domain Names for IoT Cybersecurity. IEEE Access 2019, 7, 94658–94665. [Google Scholar] [CrossRef]
  20. Liu, Z.; Yun, X.; Zhang, Y.; Wang, Y. CCGA: Clustering and Capturing Group Activities for DGA-Based Botnets Detection. In Proceedings of the 2019 18th IEEE International Conference on Trust, Security and Privacy in Computing and Communications/13th IEEE International Conference On Big Data Science And Engineering (TrustCom/BigDataSE), Rotorua, New Zealand, 5–8 August 2019; IEEE: Piscataway, NJ, USA, 2019; pp. 136–143. [Google Scholar] [CrossRef]
  21. Selvi, J.; Rodríguez, R.J.; Soria-Olivas, E. Detection of algorithmically generated malicious domain names using masked N-grams. Expert Syst. Appl. 2019, 124, 156–163. [Google Scholar] [CrossRef] [Green Version]
  22. Yang, L.; Zhai, J.; Liu, W.; Ji, X.; Bai, H.; Liu, G.; Dai, Y. Detecting Word-Based Algorithmically Generated Domains Using Semantic Analysis. Symmetry 2019, 11, 176. [Google Scholar] [CrossRef] [Green Version]
  23. Akhila, G.P.; Gayathri, R.; Keerthana, S.; Gladston, A. A machine learning framework for domain generating algorithm based malware detection. Secur. Priv. 2020, 3, e127. [Google Scholar] [CrossRef]
  24. Alaeiyan, M.; Parsa, S.; Vinod, P.; Conti, M. Detection of algorithmically-generated domains: An adversarial machine learning approach. Comput. Commun. 2020, 160, 661–673. [Google Scholar] [CrossRef]
  25. Almashhadani, A.O.; Kaiiali, M.; Carlin, D.; Sezer, S. MaldomDetector: A system for detecting algorithmically generated domain names with machine learning. Comput. Secur. 2020, 93, 101787. [Google Scholar] [CrossRef]
  26. Anand, P.M.; Kumar, T.G.; Charan, P.S. An Ensemble Approach For Algorithmically Generated Domain Name Detection Using Statistical And Lexical Analysis. Procedia Comput. Sci. 2020, 171, 1129–1136. [Google Scholar] [CrossRef]
  27. Hwang, C.; Kim, H.; Lee, H.; Lee, T. Effective DGA-Domain Detection and Classification with TextCNN and Additional Features. Electronics 2020, 9, 1070. [Google Scholar] [CrossRef]
  28. Liang, Z.; Zang, T.; Zeng, Y. MalPortrait: Sketch Malicious Domain Portraits Based on Passive DNS Data. In Proceedings of the 2020 IEEE Wireless Communications and Networking Conference (WCNC), Seoul, Korea, 25–28 May 2020; IEEE: Piscataway, NJ, USA, 2020; pp. 1–8. [Google Scholar] [CrossRef]
  29. Mao, J.; Zhang, J.; Tang, Z.; Gu, Z. DNS anti-attack machine learning model for DGA domain name detection. Phys. Commun. 2020, 40, 101069. [Google Scholar] [CrossRef]
  30. Palaniappan, G.; Sangeetha, S.; Rajendran, B.; Goyal, S.; Bindhumadhava, B.S. Malicious Domain Detection Using Machine Learning On Domain Name Features, Host-Based Features and Web-Based Features. Procedia Comput. Sci. 2020, 171, 654–661. [Google Scholar] [CrossRef]
  31. Sivaguru, R.; Peck, J.; Olumofin, F.; Nascimento, A.; De Cock, M. Inline Detection of DGA Domains Using Side Information. IEEE Access 2020, 8, 141910–141922. [Google Scholar] [CrossRef]
  32. Wu, J. Artificial Neural Network Based DGA Botnet Detection. J. Phys. Conf. Ser. 2020, 1578, 012074. [Google Scholar] [CrossRef]
  33. Zhang, Y. A Ensemble Learning method for Domain Generation Algorithm Detection. Acad. J. Comput. Inf. Sci. 2020, 3, 31–40. [Google Scholar] [CrossRef]
  34. Cucchiarelli, A.; Morbidoni, C.; Spalazzi, L.; Baldi, M. Algorithmically generated malicious domain names detection based on n-grams features. Expert Syst. Appl. 2021, 170, 114551. [Google Scholar] [CrossRef]
  35. Patsakis, C.; Casino, F. Exploiting statistical and structural features for the detection of Domain Generation Algorithms. J. Inf. Secur. Appl. 2021, 58, 102725. [Google Scholar] [CrossRef]
  36. Woodbridge, J.; Anderson, H.S.; Ahuja, A.; Grant, D. Predicting Domain Generation Algorithms with Long Short-Term Memory Networks. arXiv 2016, arXiv:1611.00791. [Google Scholar]
  37. Lison, P.; Mavroeidis, V. Automatic Detection of Malware-Generated Domains with Recurrent Neural Models. arXiv 2017, arXiv:1709.07102. [Google Scholar]
  38. Koh, J.J.; Rhodes, B. Inline Detection of Domain Generation Algorithms with Context-Sensitive Word Embeddings. In Proceedings of the 2018 IEEE International Conference on Big Data, Seattle, WA, USA, 10–13 December 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 2966–2971. [Google Scholar] [CrossRef] [Green Version]
  39. Tran, D.; Mac, H.; Tong, V.; Tran, H.A.; Nguyen, L.G. A LSTM based framework for handling multiclass imbalance in DGA botnet detection. Neurocomputing 2018, 275, 2401–2413. [Google Scholar] [CrossRef]
  40. Vinayakumara, R.; Somana, K.; Poornachandranb, P.; Kumara, S.S. Evaluating Deep Learning Approaches to Characterize and Classify the DGAs at Scale. J. Intell. Fuzzy Syst. 2018, 34, 1265–1276. [Google Scholar] [CrossRef]
  41. Xu, C.; Shen, J.; Du, X. Detection method of domain names generated by DGAs based on semantic representation and deep neural network. Comput. Secur. 2019, 85, 77–88. [Google Scholar] [CrossRef]
  42. Yu, B.; Pan, J.; Hu, J.; Nascimento, A.; De Cock, M. Character Level based Detection of DGA Domain Names. In Proceedings of the International Joint Conference on Neural Networks (IJCNN), Rio de Janeiro, Brazil, 8–13 July 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 1–8. [Google Scholar] [CrossRef]
  43. Akarsh, S.; Sriram, S.; Poornachandran, P.; Menon, V.K.; Soman, K.P. Deep Learning Framework for Domain Generation Algorithms Prediction Using Long Short-term Memory. In Proceedings of the 5th International Conference on Advanced Computing Communication Systems (ICACCS), Coimbatore, India, 15–16 March 2019; IEEE: Piscataway, NJ, USA, 2019; pp. 666–671. [Google Scholar] [CrossRef]
  44. Qiao, Y.; Zhang, B.; Zhang, W.; Sangaiah, A.K.; Wu, H. DGA Domain Name Classification Method Based on Long Short-Term Memory with Attention Mechanism. Appl. Sci. 2019, 9, 4205. [Google Scholar] [CrossRef] [Green Version]
  45. Liu, Z.; Zhang, Y.; Chen, Y.; Fan, X.; Dong, C. Detection of Algorithmically Generated Domain Names Using the Recurrent Convolutional Neural Network with Spatial Pyramid Pooling. Entropy 2020, 22, 1058. [Google Scholar] [CrossRef]
  46. Ren, F.; Jiang, Z.; Wang, X.; Liu, J. A DGA domain names detection modeling method based on integrating an attention mechanism and deep neural network. Cybersecurity 2020, 3, 4. [Google Scholar] [CrossRef]
  47. Vij, P.; Nikam, S.; Bhatia, A. Detection of Algorithmically Generated Domain Names using LSTM. In Proceedings of the International Conference on COMmunication Systems and NETworkS (COMSNETS), Bengaluru, India, 7–11 January 2020; IEEE: Piscataway, NJ, USA, 2020; pp. 1–6. [Google Scholar] [CrossRef]
  48. Highnam, K.; Puzio, D.; Luo, S.; Jennings, N.R. Real-Time Detection of Dictionary DGA Network Traffic Using Deep Learning. SN Comput. Sci. 2021, 2, 110. [Google Scholar] [CrossRef]
  49. Namgung, J.; Son, S.; Moon, Y.S. Efficient Deep Learning Models for DGA Domain Detection. Secur. Commun. Netw. 2021, 2021, 8887881. [Google Scholar] [CrossRef]
  50. Yilmaz, I.; Siraj, A.; Ulybyshev, D. Improving DGA-Based Malicious Domain Classifiers for Malware Defense with Adversarial Machine Learning. In Proceedings of the IEEE 4th Conference on Information and Communication Technology (CICT), Chennai, India, 3–5 December 2020; IEEE: Piscataway, NJ, USA, 2020; pp. 1–6. [Google Scholar] [CrossRef]
  51. Wang, T.S.; Lin, H.T.; Cheng, W.T.; Chen, C.Y. DBod: Clustering and detecting DGA-based botnets using DNS traffic analysis. Comput. Secur. 2017, 64, 1–15. [Google Scholar] [CrossRef]
  52. Satoh, A.; Fukuda, Y.; Hayashi, T.; Kitagata, G. A Superficial Analysis Approach for Identifying Malicious Domain Names Generated by DGA Malware. IEEE Open J. Commun. Soc. 2020, 1, 1837–1849. [Google Scholar] [CrossRef]
  53. Sun, X.; Yang, J.; Wang, Z.; Liu, H. HGDom: Heterogeneous Graph Convolutional Networks for Malicious Domain Detection. In Proceedings of the NOMS 2020—2020 IEEE/IFIP Network Operations and Management Symposium, Budapest, Hungary, 20–24 April 2020; IEEE: Piscataway, NJ, USA, 2020; pp. 1–9. [Google Scholar] [CrossRef]
  54. Yan, F.; Liu, J.; Gu, L.; Chen, Z. A Semi-Supervised Learning Scheme to Detect Unknown DGA Domain Names Based on Graph Analysis. In Proceedings of the IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom), Guangzhou, China, 29 December 2020–1 January 2021; IEEE: Piscataway, NJ, USA, 2020; pp. 1578–1583. [Google Scholar] [CrossRef]
  55. Yin, L.; Luo, X.; Zhu, C.; Wang, L.; Xu, Z.; Lu, H. ConnSpoiler: Disrupting C&C Communication of IoT-Based Botnet Through Fast Detection of Anomalous Domain Queries. IEEE Trans. Ind. Inform. 2020, 16, 1373–1384. [Google Scholar] [CrossRef]
  56. Mac, H.; Tran, D.; Tong, V.; Nguyen, L.; Tran, H. DGA botnet detection using supervised learning methods. In Proceedings of the Eighth International Symposium on Information and Communication Technology (SoICT), Nha Trang, Vietnam, 7–8 December 2017; ACM: New York, NY, USA, 2017; pp. 211–218. [Google Scholar]
  57. Pochat, V.L.; Goethem, T.V.; Tajalizadehkhoob, S.; Maciej Korczyński, W.J. Tranco: A Research-Oriented Top Sites Ranking Hardened Against Manipulation. arXiv 2018, arXiv:1806.01156v3. [Google Scholar]
Figure 1. Method.
Figure 1. Method.
Electronics 11 00414 g001
Figure 2. Unigram distributions.
Figure 2. Unigram distributions.
Electronics 11 00414 g002
Figure 3. Boxplots of F1-score.
Figure 3. Boxplots of F1-score.
Electronics 11 00414 g003
Figure 4. Confusion matrices.
Figure 4. Confusion matrices.
Electronics 11 00414 g004
Figure 5. Precision-recall curves.
Figure 5. Precision-recall curves.
Electronics 11 00414 g005
Figure 6. ROC-curves.
Figure 6. ROC-curves.
Electronics 11 00414 g006
Table 1. DGA-based botnet detection using feature-based ML models.
Table 1. DGA-based botnet detection using feature-based ML models.
ReferenceYearModelDataset (Benign/Malicious)Number of Features
Context-FreeContext-Aware
Chiba et al. [14]2018RFAlexa/hpHosts-55
Schüppen et al. [15]2018RF, SVMPrivate/DGArchive (72 DGAs)21-
Ashiq et al. [16]2019FFNN (2-4 hidden layers)From [17]8-
He et al. [18]2019Adaboost, DT, kNN, RFAlexa/various sources21153
Li et al. [19]2019Adaboost, C4.5, kNN, NB.cn name server/Rustock DGA131
Liu et al. [20]2019SVMAlexa/DGArchive (87 DGAs)-18
Selvi et al. [21]2019RFAlexa/26 DGAs18-
Yang et al. [22]2019DT, ET, NB, SVM, ensemble (NB,ET,LR)Cisco Umbrella/Netlab, synthetic24-
Akhila et al. [23]2020DT, GBT, LR, RF, SVMAlexa/Bambenek10-
Alaeiyan et al. [24]2020RF, RNN, SVMAlexa/MasterDGA18-
Almashhadani et al. [25]2020BT, DT, kNN, NB, SVMAlexa/DGArchive (20 DGAs)16-
Anand et al. [26]2020C5.0, CART, GBM, kNN, RF, SVMAlexa/Netlab (19 DGAs)45-
Hwang et al. [27]2020LightGBMKISA/KISA (20 DGAs)110-
Liang et al. [28]2020RF, SVM, XGBoostAlexa/various blacklists55
Mao et al. [29]2020NB, LSTM, MLP, RF, SVM, XGBoostAlexa/Netlab (40 DGAs)5-
Palaniappan et al. [30]2020LRAlexa/various blacklists413
Sivaguru et al. [31]2020RFAlexa, private/DGArchive269
Wu et al. [32]2020MLP, NBAlexa/Netlab4-
Zhang et al. [33]2020DT, LR, NB, RF, SVM, XGBoost, VotingAlexa/UMUDGA (37 DGAs)18-
Zago et al. [13]2020Adaboost, DT, kNN, NN, RF, SVMMajestic/various sources (16 DGAs)40-
Cucchiarelli et al. [34]2021MLP, RF, SVMAlexa/Netlab (25 DGAs) 4 n + 5 (n DGAs)-
Patsakis et al. [35]2021RFAlexa, unipi/DGArchive, synthetic (13 DGAs)32-
Table 2. DGA-based botnet detection using featureless DL models.
Table 2. DGA-based botnet detection using featureless DL models.
ReferenceYearModelDataset (Benign/Malicious)
Woodbridge et al. [36]2016LSTMAlexa/Bambenek
Lison and Mavroeidis [37]2017RNNAlexa/DGArchive (63 DGAs), Bambenek (11 DGAs)
Koh and Rhodes [38]2018LSTMOpenDNS/Bader, Abakumov
Tran et al. [39]2018LSTM.MIAlexa/Bambenek (37 DGAs)
Vinayakumar et al. [40]2018LSTM, GRU, IRNN, RNN, CNN, hybrid (CNN-LSTM)Alexa, OpenDNS/Bambenek, Bader (17 DGAs)
Xu et al. [41]2018CNN-basedAlexa/DGArchive (16 DGAs)
Yu et al. [42]2018LSTM, BiLSTM, stacked CNN, parallel CNN, hybrid (CNN-LSTM)Alexa/Bambenek
Akarsh et al. [43]2019LSTMOpenDNS, Alexa/20 public DGAs
Qiao et al. [44]2019LSTMAlexa/Bambenek
Liu et al. [45]2020Hybrid (BiLSTM-CNN)Alexa/Netlab (50 DGAs), Bambenek (30 DGAs)
Ren et al. [46]2020CNN, LSTM, CNN-BiLSTM, ATT-CNN-BiLSTM, SVMAlexa/Bambenek, Netlab (19 DGAs)
Sivaguru et al. [31]2020hybrid (RF-LSTM.MI)Alexa, private/DGArchive
Vij et al. [47]2020LSTMAlexa/11 DGAs
Cucchiarelli et al. [34]2021BiLSTM, LSTM.MI, hybrid (CNN-BiLSTM)Alexa/Netlab (25 DGAs)
Highnam et al. [48]2021hybrid (CNN-LSTM-ANN)Alexa/DGArchive (3 DGAs)
Namgung et al. [49]2021CNN, LSTM, BiLSTM, hybrid (CNN-BiLSTM)Alexa/Bambenek
Yilmaz et al. [50]2021LSTMMajestic/DGArchive (68 DGAs)
Table 3. DGA-based botnet detection using other approaches.
Table 3. DGA-based botnet detection using other approaches.
ReferenceYearDataset (Benign/Malicious)
Wang et al. [51]2017Emulated and real-life network data
Satoh et al. [52]2020Alexa/19 DGAs
Sun et al. [53]2020Alexa/various
Yan et al. [54]2020Passive DNS data/public blacklists
Yin et al. [55]2020Alexa/Bader (19 DGAs)
Table 4. Context-free features.
Table 4. Context-free features.
Feature TypeUsage
Domain name
Domain name in Unicode format[29]
Domain name length[13,15,16,18,23,25,26,27,28,31,32,33]
Domain name contains IP address[15,18]
Domain name has www prefix[15,18]
Domain name starts with digit[31]
Domain name has valid TLD[15,18]
Characters
Shanon entropy[15,18,21,23,25,27,28,31,33,31]
Cardinality (number of different characters)[15,18,21,31,32,33]
Ratio of unique characters (Gini value)[23,26,31]
Minimum character value[24]
Maximum character value[24]
Average character value[24]
Variance of character values[24]
Median of character values[24]
Number of non-occurring character values[24]
Number of odd character values[24]
Chi-squared test of character values[24]
Reverse character values[24]
Ratio of most frequently used letters[26]
Ratio of least frequently used letters[26]
Ratio of meaningful characters[13,31]
Ratio of repeated characters[15,18,26,31]
Ratio of underscores[15,18]
Number of hyphens[31]
Number of underscores and hyphens[30]
Number of dashes[24]
Ratio of consonants[13,21,25,31,33]
Ratio of consecutive consonants[15,18,31]
Number of consonants[25,26]
Longest consecutive consonant sequence[13,25]
Ratio of length of longest consonants sequence[25]
Contains digits[15,18]
Ratio of digits[13,15,18,21,23,31,33]
Ratio of consecutive digits[15,18,31]
Number of digits[27,30,31]
Longest consecutive digit sequence[13]
Ratio of vowels[13,15,18,23,25,27,28,31,32,33]
Number of vowels[25,26,27]
Longest consecutive vowel sequence[13,25]
Ratio of length of longest vowels sequence[25]
Ratio of vowels to consonants[16,21,25]
Ratio of length of longest consonants sequence to length of longest vowels sequence[25]
Ratio of vowels and digits[29]
Contains digits and letters[27]
Transition frequency of digits and letters[28]
Ratio of longest sequence lengths of letters or digits[19,23]
Subdomains
Number of subdomains[13,15,18,24,27,28,30]
Subdomain length mean[15,18]
Contains single-character subdomain[15,18]
Ratio of subdomains that contain digits only[15,18]
Ratio of subdomains that contain hexadecimal numbers only[15,18]
Contains TLD as subdomain[15,18]
Binary encoded TLD[31,34]
TLD type[27,31]
TLD length[31]
Number of different characters in TLD[31]
Second-level domain type[27]
Second-level domain length[31]
Number of different characters in second-level domain[31]
Linguistics
Regularity score (edit distance)[16]
Levenshtein edit distance[13,23]
Jaccard index[23]
Randomness[16,25]
Number of ’word-like’ units[13]
Ratio of meaningful substrings[13,16,23]
Length of longest meaningful string[13]
Frequency score (frequency of words)[16]
Correlation score (between consecutive words)[16]
Pronounceability score[23,24]
Number of syllables[24]
Illegitimate contents (from word list)[30]
Domain squatting score[13]
Language hypothesis[13]
n-grams
n-gram frequency distribution[13,15,18,24,32]
n-gram mean[13,21,26,33]
n-gram median[13,31]
n-gram variance[13,21,26]
n-gram standard deviation[13,21,26]
n-gram distance[29]
n-skip-gram distribution[24]
Number of most frequently used n-grams[26,33]
Number of masked n-grams[26]
Ratio of 4-grams without vowel[16]
Ratio of n-grams from benign domains[33]
Ratio of n-grams from malicious domains[33]
n-gram entropy[13]
n-gram covariance[13]
n-gram pronounceability score[13]
n-gram normality score[13]
n-gram transition probability[13]
n-gram probability of appearance[13]
n-gram index probability[13]
n-gram Kullback–Leiber divergence[13,34]
n-gram Jaccard Index measure[13,34]
n-gram distance-threshold[13]
n-gram distance–avg. frequency[13]
n-gram distance–avg. count[13]
Table 5. Characteristics of DGA families.
Table 5. Characteristics of DGA families.
DGA FamilyDGA TypeCountLengthSample 1Sample 2
banjoriA10,00011–30eihspartbulkyf.comochqfordlinnetavox.com
bedepA745816–22vhljakiutpq7.comcsejdvmqgmqj.com
chinadA10,00019–213vainry4stex8arf.cnvfuupsix5ki5omg0.cn
confickerA10,0008–16qzvwnnije.bizdovcujbpg.biz
corebotA10,00015–32kr105hivgrqvo8e8ijqh1bc.wsi472uvy6qjyvgh18mhw4k85.ws
cryptolockerA10,00015–21leojfthetfvk.comthtatcpfomflk.com
dnschangerA10,00014–14xxxfuhkjzu.comviwnolcsqf.com
eburyA200017–18r2g1v3mau7h4k.infok1i5q3w5r1x4i.net
emotetA10,00019–19iqpucsfnnijdnbii.euolahnvuhbiitauve.eu
fobberA200014–21phtatognxg.comvzuopketsrtaqttgk.net
gameoverA10,00018–37iz6tx9jwre387brksimxpkcp.netd2u8ds1aif9oryzft8f1u052m5.org
lockyA10,0008–23viuoabuc.frrkwaoicjullpc.click
murofetA10,00013–21prkwwoswewwkfzuy.comudumozptkqqpo.info
murofetweeklyA10,00035–51jyi35d10gwgqlrmrhupudxdqoyc69n40d20dq.rubuiuj26gvhxk57pvmrk17d50bwfzlxa17hrls.ru
necursA10,00010–28yaatqhjjgicemhoeiu.nfinlclnelid.ug
nymaimA10,0008–16xhhtaldw.netuckvk.net
oderoorA383310–16uyftputndw.ccmdnaizofvm.cc
padcryptA10,00019–24fkaokkbfaalfbdeb.infomenccfmdkcmaemfk.de
proslikefanA10,0009–17zrimegy.invnmwww.co
pushdoA10,00011–16katcetutyx.kzlakeotux.kz
pushdotidA600013–14gxmdgfmjcx.comopgrexsbif.net
pykspaA10,00010–17rldbwwarp.netmyhmexr.net
pykspa2A10,00010–19iugzosiugkeq.netwkuglwiugkeq.biz
pykspa2sA995710–19pkpycifox.comwudmdgeoya.biz
qadarsA10,00016–16ysmoq4esi0q0.orggt6b8tirkh2r.net
qakbotA10,00012–30xvvluuabuftqilmnynimpipb.infotugfpmprjspprbwxdzi.biz
ramdoA600020–20skuqesksmewsckwg.orgiqgieiyuigamowca.org
ramnitA10,00011–25ixrghbaytyaksgug.combwqkmskfwpvljd.com
ranbyusA10,00017–21ndgpkwlmftaryloae.ccgttfhnegjtmegkhrt.cc
rovnixA10,00021–22jaitc336ybcds71ykg.cnoar7juqajea1wnyopo.cn
shifuA233110–12vhqrdfg.infoxxuissv.info
simdaA10,0008–14rynezev.infoqebol.eu
sisronA880016–17mjcwmziwmtqa.netmjmwotiwmtga.net
sphinxA10,00020–20libuybegcrlrfyof.comoixwkitoiqseltry.com
sutraA988219–29gweqifjejtoaemgw.infohpwazeehjwpfwgaj.ru
symmiA10,00017–24oqmievkeedloovm.ddns.netesitkoelmei.ddns.net
szribiA10,00012–12ddpuuddd.comgrawspwe.com
tempedrevetddA138012–14gbuxwrwx.orgcrwhchuda.org
tinbaA10,00010–23bcjwxxumttmh.netrwtopxoocwtt.cc
tofseeA314010–11drndrng.bizdrodroi.biz
torpigA10,00011–13bfcmulj.netbhksvgrpa.com
urlzoneA10,0008–19ehw5jdkwkv.comrc5iycl4suf.com
vawtrakA270010–15dmzqvyn.topmisohnatl.com
vidroA10,00011–23prjbemepgzkp.comrakrfxs.com
virutA10,00010–10yzraho.comehuquf.com
xxhexA440012–13xxa5c1b019.sgxx3603da38.sg
bamitalH10,00036–3843f3d094f08dd1a2df2869352e2a9712.cz.ccf0b79a9253cf7c58f0e1f54426f45bf4.cz.cc
dyreH10,00037–37rdf36ed41339f9abd57a5a1c9f2143f513.wsu28c43d53bb3ecafbdfd29fa34a47dae09.to
ekforwardH29198–1180a118c7.eu9356c774.eu
infyH10,00012–141e60c5f5.spacea56bc6c6.top
pandabankerH10,00016–1752efedef74d4.com0b16dca48547.com
tinynukeH10,00036–36ec893776679264b90cfff916cc5f0eaf.com84b4a55d8ac046a9816dda8b866893b7.top
wdH10,00036–38wd679ab775d15bbee733b8545f20452504.wina0e433f4c96c6b8f3ece607d791d6546.pro
goziW10,00015–29formsworkfreeall.comallowdisalloallow.me
matsnuW10,00016–28bitpersuadebutton.comstructuresurvey.com
nymaim2W10,00011–33sculpturenegative.netshuttlefatty.it
suppoboxW10,00011–30senseinto.ruthreeslept.net
Table 6. Values of hyperparameters tried in randomized search.
Table 6. Values of hyperparameters tried in randomized search.
ClassifierParameterCandidate Values
DTmin_samples_split2, 5, 10
min_samples_leaf1, 2, 4
max_featuresauto, sqrt, log2, None
max_depth10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, None
criteriongini, entropy
GBsubsample0.5, 0.7, 1.0
n_estimators10, 100, 1000
max_depth3, 7, 9
learning_rate0.001, 0.01, 0.1
KNn_neighbours1, 3, 5, 7
metriceuclidean, manhattan, minkowski
weightsuniform, distance
LRsolvernewton-cg, lbfgs, liblinear, sag, saga
penaltyl1, l2, elasticnet, none
C100, 10, 1.0, 0.1, 0.01
class_weightbalanced, None
MNBalpha1, 0.1, 0.01, 0.001, 0.0001, 1e-05, 1e-06, 1e-07, 1e-08, 1e-09, 0
fit_priorTrue, False
RFn_estimators10, 132, 255, 377, 500
min_samples_split2, 5, 10, 15, 20
min_samples_leaf1, 2, 5, 10, 15
max_featuresauto, sqrt, log2
max_depth10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, None
criteriongini, entropy
bootstrapTrue, False
SVMkernelpoly, rbf, sigmoid
gammascale, auto
C50, 10, 1.0, 0.1, 0.01
Table 7. Details of MLP model.
Table 7. Details of MLP model.
LayerTypeOutput Shape#Params
dense_10Dense (ReLU activation, L2 regularization 0.0001)3521,760,352
dropout_2Dropout (0.2)3520
dense_11Dense (ReLU activation, L2 regularization 0.0001)352124,256
dropout_3Dropout (0.2)3520
dense_12Dense (ReLU activation, L2 regularization 0.0001)352124,256
dropout_4Dropout (0.2)3520
dense_13Dense5820,474
Total params2,029,338
Trainable params2,029,338
Non-trainable params0
Table 8. Details of LSTM model.
Table 8. Details of LSTM model.
LayerTypeOutput Shape#Params
embedding_2Embedding67,1285120
lstm_2LSTM128131,584
dropout_2Dropout (0.1)1280
dense_2Dense587482
activation_2Activation (softmax)580
Total params144,186
Trainable params144,186
Non-trainable params0
Table 9. F1-score (expressed as percentage).
Table 9. F1-score (expressed as percentage).
ClassDTGBKNLSTMLRMLPMNBRFSVMTestTraining
banjori94.4498.3698.3999.6199.5299.8195.3499.1499.8329367064
bedep39.8149.200.3773.5651.5961.7947.0633.7960.9921505308
chinad69.4367.350.7399.2071.4884.8150.7367.8379.0129967004
conficker22.9129.425.6339.4129.8038.4419.2822.9235.9130506950
corebot85.9788.3451.2699.7999.3199.4798.3890.9599.3230386962
cryptolocker40.5845.691.5967.2539.7056.7732.4238.2448.8029297071
dnschanger46.7044.181.1683.0934.6969.1320.8037.5052.5330516949
ebury54.8661.8591.6099.1792.0993.2394.3257.2793.576051395
emotet96.7594.1651.1199.6094.1197.8486.8295.0696.5430007000
fobber22.2920.51035.163.269.78015.874.776071393
gameover90.6694.250.3398.9188.0497.6165.2895.7596.1030236977
locky41.6449.9610.4365.1252.8655.9545.3344.6053.1030796921
murofet58.6463.570.9680.4660.1772.0348.4659.3667.6230626938
murofetweekly95.6799.1487.2799.9099.8399.8799.3399.6810030196981
necurs64.9271.430.6587.6077.4282.0170.4458.8880.3430246976
nymaim31.8846.788.1051.4441.0548.6524.5143.3245.7729527048
oderoor26.0733.1379.7848.4073.8451.7875.7123.5573.4511232710
padcrypt90.5992.5166.4699.9399.7199.7293.3797.9799.7130456955
proslikefan34.1841.665.1253.0942.3148.6127.0333.3246.2330166984
pushdo80.5888.1472.8795.5196.1596.0391.9283.9395.9229847016
pushdotid39.8042.2111.4597.3280.6886.5175.0730.4183.3817924208
pykspa24.1229.966.9050.1930.2343.3621.2631.0039.9629947006
pykspa247.7745.3445.6750.4447.8453.6346.2949.7749.6730036997
pykspa2s44.5752.6044.3956.0547.8348.8843.2051.8249.2830026955
qadars74.8080.7576.8099.3598.7498.5898.0981.1999.2630536947
qakbot45.0350.220.3362.9139.9755.4533.8446.5945.5329767024
ramdo98.1395.4631.2010096.5799.4085.4097.4798.0817354265
ramnit25.5718.121.4352.1127.7129.5427.719.8628.1229467054
ranbyus65.7270.862.7086.2465.2174.8848.6069.0071.7130496951
rovnix77.1179.170.4899.4276.2687.6962.8580.8882.1029247076
shifu38.2639.556.0479.8325.9352.685.4121.9031.807101621
simda75.9273.4971.3697.5495.6796.0893.6772.2696.7730706930
sisron99.9310098.6510099.9899.9699.9610099.9826996101
sphinx59.8558.305.0691.3159.2071.0445.8254.7763.8529847016
sutra96.1897.3292.3699.7598.5698.6694.3097.4499.1029796903
symmi99.7999.6994.9410099.9299.9898.9299.8099.9830566944
szribi93.4577.8184.2298.1196.3797.8691.9590.9298.0130086992
tempedrevetdd4.321.630.8848.415.3315.75009.50401979
tinba53.5144.4815.5182.8361.5974.4453.4533.1468.0729557045
tofsee97.9299.5763.9199.0998.6799.3097.1597.9398.939292211
torpig80.2694.2985.9998.5898.3198.7194.2487.4698.8529677033
urlzone62.7070.602.4493.6881.7087.2563.9368.0585.0330466954
vawtrak16.2017.4020.4376.4957.2157.9134.079.3056.297781922
vidro44.1948.0750.3050.9346.5748.4347.9648.8350.6430746926
virut42.5638.006.3977.8840.4769.4323.1417.2149.9329607040
xxhex99.0599.8196.4799.7310099.9698.6810010013123088
bamital99.4799.6660.2999.9899.9899.9196.6199.9899.9829227078
dyre98.8699.7525.7310099.9899.9894.6510010029657035
ekforward97.6098.7379.3499.9499.8399.9499.3299.6699.718742045
infy98.4096.9571.6299.9098.9199.6397.7599.1299.3729527048
pandabanker98.8199.1674.4099.9399.3299.7898.3599.6299.6230166984
tinynuke99.2799.6751.1099.9899.8899.9794.5099.9599.9730096991
wd99.9310083.6310099.9799.9899.9210010029837017
gozi52.2368.1251.8476.5885.1984.3252.0864.0187.6029887012
matsnu24.078.8131.7152.6258.1760.774.040.0670.3030976903
nymaim248.0949.4520.4681.8681.2880.3447.6412.9282.3330396961
suppobox60.6352.1176.8382.1786.8389.3756.4260.7694.6130136987
topsites92.3491.7082.7696.7896.5897.2493.1289.7496.94175,078408,876
DGAmacroaverage64.4366.2639.9582.7672.5177.5963.3862.8475.73147,949344,851
stddev28.2328.2535.5020.1327.8824.1031.7132.3026.02
microaverage66.5468.3839.6283.4974.1479.4264.5165.2977.60
stddev26.3226.2835.0319.3625.6321.7229.7930.4623.45
DGA-Amacroaverage60.7763.1435.8780.9767.9074.1060.2559.6971.38117,091272,790
stddev27.3527.0636.9320.8228.5524.9331.2230.5826.82
microaverage63.4665.9535.4881.9369.6876.2461.8663.0273.42
stddev25.1924.5936.6820.0426.2822.5128.8828.1624.21
DGA-Hmacroaverage98.9199.1363.7399.9699.7099.8897.3099.7699.8118,72144,198
stddev0.700.9718.640.040.390.121.990.300.23
microaverage99.0599.1862.0199.9699.6899.8897.0799.7799.82
stddev0.581.0118.860.040.400.131.970.320.24
DGA-Wmacroaverage46.2644.6245.2173.3177.8778.7040.0534.4483.7112,13727,863
stddev13.5821.8721.4412.1511.5510.8421.0228.348.88
microaverage46.0944.3445.0573.1877.7278.5739.7934.0983.61
stddev13.6621.9721.4212.2311.6210.9021.1528.378.92
Totalmacroaverage64.9166.7040.6983.0072.9277.9363.8963.3176.10323,027753,727
stddev28.2228.2035.6320.0427.8124.0231.6832.2125.94
microaverage80.5281.0263.0090.6986.3089.0880.0178.5488.08
stddev21.9721.2432.0014.6820.6417.1724.6923.9418.57
Table 10. Optimum true positive and false positive rates.
Table 10. Optimum true positive and false positive rates.
ModelTrue Positive Rate (%)False Positive Rate (%)
DT88.885.58
GB90.814.96
KN88.227.41
LR96.113.13
LSTM95.672.68
MLP96.542.53
MNB92.617.39
RF92.204.39
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Vranken, H.; Alizadeh, H. Detection of DGA-Generated Domain Names with TF-IDF. Electronics 2022, 11, 414. https://doi.org/10.3390/electronics11030414

AMA Style

Vranken H, Alizadeh H. Detection of DGA-Generated Domain Names with TF-IDF. Electronics. 2022; 11(3):414. https://doi.org/10.3390/electronics11030414

Chicago/Turabian Style

Vranken, Harald, and Hassan Alizadeh. 2022. "Detection of DGA-Generated Domain Names with TF-IDF" Electronics 11, no. 3: 414. https://doi.org/10.3390/electronics11030414

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop