Cloud has become a popular platform due to its characteristics of on-demand services, infinite resources, ubiquitous availability and pay-as-you go business model [1]. Infrastructure as a Service (IaaS) is the most widely offered service model where the resources of a large data center can be purchased by clients to perform computing tasks. Since user clients can utilize any number of virtual machines, ranging from a couple to thousands, automatic monitoring of these virtual machines is necessary to ensure the security of the cloud provider and its clients. While there are several risks associated with IaaS, one of the greatest risks is the possibility of a virtual machine becoming infected with malware and spreading the malware to other virtual machines in the data center. This would put cloud providers and their customers in danger as well as end users whose data is stored or transferred on these infected virtual machines. As cloud providers increase their client base, the potential for loss also increases and so does the responsibility of cloud providers to invest in security mechanisms for their customers. The scale of an attack is multiplied due to similar configuration and automatic provisioning of the virtual machines (VMs) hosted by a cloud service provider. Identical configurations for these virtual machines make attacks repeatable and allow them to more likely spread within the data center once a single machine is infected.
Static malware analysis technique is widely used, in which the files are scanned before they can be executed on the systems. In such case, file is disassembled by a disasssemblers to obtain the source code which can then be examined using different tools. Although the method is fast and efficient, but it can be easily dodged by malware writers who can trick the disassemblers into generating incorrect code. This is done by inserting errors which lead to the actual code execution path being hidden or obfuscated. The binary file can also be worked on directly. An example of this is extracting n-grams of the binary file as features and then using machine learning techniques to locate known malicious patterns. Static analysis generally fails in the case of cloud malware as malware is injected into an application that was already scanned and deemed safe. Such an attack in cloud IaaS is referred to as a cloud malware injection [2]. In this case, if the application is not re-scanned at a later time, the newly inject malware will not be detected. Therefore, the need to constantly monitor these applications running in cloud environments is essential.
While there are several works in the domain of malware detection, few research papers [3–9] deal with online malware detection specifically and in particular provide solutions using machine learning based approach. This process consists of a typical machine learning approach i.e. building a machine learning model, training the model with relevant dataset captured, and using the trained model to determine if a malware exists in the system or not. In the case of building the model, features must first be selected to determine what data will be used as input. This is no different for cloud based detection methods except that the features to be chosen are limited to the information that can be gained through the hypervisor. Through careful selection of features, machine learning can be used to provide dynamic malware analysis and detect in case machines have been infected by adversaries in the data centers. This kind of dynamic analysis fulfills the need for constant surveillance in cloud IaaS for malware detection.
The most unique characteristics of cloud computing include resource pooling, on-demand self-service, and rapid elasticity which can be fulfilled by an auto-scaling architecture. In this paper, we focus on auto-scaling wherein the machines are spawned based on the demand and usually these VMs are of similar type, resulting in similar behaviour. It is likely that that an injected malware will result in behaviour deviation on a VM at some point. In this work, we seek to detect such malicious behaviour and compare state-of-the-art deep learning models on several parameters. We are focused on detecting only one VMs which have been compromised ignoring that the fact that all similar VMs can be infected by an adversary in a more sophisticated attack. We plan to work on this as a next step to this problem.
This work is an extension to our earlier work where only one kind of CNN model was used, with the prime goal that such techniques can be effectively used malware analysis. In this work, we compare and contrast several CNN models using the same data as [3–5] and six other deep learning models to determine possible use cases within a cloud IaaS scenario. For all models, the dataset consists of process-level metrics collected from the virtual machine hypervisor. Since these models are CNNs, the data is formatted as two dimensional matrices with the dimensions being . Since many of our models require the input to be 3 dimensional shape, the 2d matrix is copied to fulfill the third dimension requirement.
The paper is organized as follows. Section 2 discusses related work in cloud online malware detection. Section 3 provide an overview of the key intuition and methodology for the experiments. Section 4 covers evaluation metrics and experimental results whereas Section 5 presents comparative analysis among different CNN models used. Section 6 covers certain limitations of our approach along with discussion on future work. Finally, section 7 summarizes this paper.
Several works have been done in malware detection which focus on different aspects of several approaches. The first step in developing a machine learning based model for online malware detection is to determine which features are most relevant and are to be extracted. Research papers [10–12] focus on API calls whereas [7,13,14] primarily utilize system calls. Other features such as performance counters [15] or memory features [16,17] have also been used. Although several existing resilience frameworks exist [9, 18–20], it is likely that novel attacks and new techniques will defeat existing detection methods.
Most of the algorithms for detecting malware, such as support vector machines (SVM) [9], all-nearest-neighbor (ANN) classifier [21], and na¨ıve bayes [10, 22], work for examining a single VM in the cloud. While a running single vm is not the expected use case of cloud environments, there is virtually no difference between a single VM and a standalone host when it comes to detecting malware on them. Generally, most works [7, 10–17] focus on features that can be extracted through the hypervisor. Dawson et al [7] collect system calls for features and are primarily concerned with rootkits. A non linear phase-space algorithm is used in their analysis of system calls to detect anomalies. The results are evaluated on the phase-space graph dissimilarities.
Entropy based Anomaly Testing (EbAT) was introduced in [8]. EbAT analyzed multiple metrics such as CPU and memory utilization for the purposes of anomaly detection. The paper analyzed these metrics based upon distribution instead of a flat threshold. This approach yielded accurate results for detection and the ability to scale to keep up with metric processing. However, the evaluation did not demonstrate usefulness in practical and realistic cloud environment scenarios. Azmandian et al. [23] utilize performance metrics such as disk and network input-output gathered from the hypervisor to form a new anomaly detection approach. K-NN and Local Outlier Factor are unsupervised machine learning techniques used in this work.
Work by Abdelsalam et al [4] showed that a black box approach can be used to detect malware. This paper used VM-level performance and resource utilization metrics. This approach worked well in detecting highly active malware which showed up in the resource utilization metrics, but was not as effective in detecting malware that hid itself with low utilization. Similarly, in [3] the authors introduce a detection method which uses a CNN model with the goal of identifying low profile malware. This method achieved 90% accuracy using resource metrics and was able to identify multiple low-profile malware. While these results are good, it is limited in that it targeted only a single virtual machine like many other related works without features like auto-scaling.
In this section, we discuss the key intuition behind our approach and describe our methodology in detail.
3.1 Key Intuition
So as to detect online malware using process-level information, we train a model on a dataset that contains benign and malicious samples. Each sample consists of information about a process or collection of processes, and the task is to classify the input sample as benign or malicious. To build up our dataset of benign samples, we run a Virtual Machine (VM) normally without the presence of malicious software. Malicious data samples are collected after the VM has been infected with malware.
Different malware are used for different runs of the experiment to create the dataset. We then partition our dataset into into training, validation, and testing datasets. In other words, the model is trained on samples from different experiments which contained different malware. This way, the model generalizes itself to detect different malware through the various ways they reveal themselves in process metrics. A model’s ability to generalize and predict new samples is dependent on its internal architecture. More complex models may achieve higher accuracy by adding more hidden layers or by connecting those hidden layers in a novel manner.
3.2 Methodology
Convolutional Neural Networks (CNN) have been commonly used in various visual imagery tasks. A basic flowchart of a neural network is shown in Figure 1. CNNs generally take two dimensional data as an input, in our case, the process level data is represented as a two dimensional array. A sample consists of rows
Fig. 1: Neural Network Flow
Fig. 2: Sample at Time t Consisting of Process Level Information
of processes with columns of process features. Assuming is a process, is a process metric, vm is a virtual machine ID, then is a sample at time t as shown in Figure 2.
Each sample represents a single virtual machine at a given time interval so the models learn what an infected machine “looks like” over time. During the course of time in an operating system, processes get created and destroyed and as these IDs can be assigned/re-assigned to different processes, they provide no useful information for the task at hand. For this reason, we focus on unique process defined as a tuple that contains a process ID, the command used to run the process, and a hash of the binary executable. This unique process will be referred to as a process in this work. Once the training dataset has been used to train the model, it is used for generating predictions on an unseen test data set that the model did not use during the training process.
We used Openstack, a popular cloud computing platform to replicate a standard 3-tier web architecture consisting of a web server, application server, and a database. Auto-scaling was enabled on the web server and the application servers were configured with a policy based on the average CPU utilization of the VMs. As per the policy, if the average CPU utilization is above 70%, the architecture scales out and it scales in if the utilization is below 30%. We spawned between 2 and 10 servers in each tier depending on the traffic load. An ON/OFF Pareto distribution with the default NS2tool parameters was used to generate the traffic load.
Figure 3, shows the data collection process. Each experiment was 1 hour long, consisting of a 30 minute clean phase and a 30 minute infected phase. During the clean phase, the virtual machines were untouched. During the infected phase, malware was injected into a virtual machine at some time after the infected phase started. We introduced 113 different malwares to collect our dataset. These malwares were obtained from VirusTotal. The VMs were configured with full internet access and all firewalls were disabled. This was done so that the malware could operate without any interference. After every 10 seconds, a sample was
Fig. 3: Data Collection Overview
Fig. 4: LeNet-5 Model
collected from the infected virtual machine in the experiment resulting in 360 samples over the course of each experiment.
3.3 Convolutional Neural Network Models
LeNet-5 [24]: It is an example of a shallow CNN. It has few layers so the gradients can be computed quickly. Figure 4, shows the model architecture. Note that the architecture is simple and straightforward where the output of each layer serves as the input to the next layer.
The input to the model, would be a 2 dimensional matrix of 120x45 representing a sample with a maximum of 120 processes and 45 features of these processes. Each process that was not active at the time the sample was taken, but would become active during the course of the experiment was padded with zeroes. The first layer of LeNet-5 consists of a convolutional layer with 32 kernels, each with a size of 5x5. The output of this layer is 32 feature maps with the same input shape of 120x45. The max pooling layer of size 2x2 downsizes these feature maps to become 60x23. The second convolutional layer has 64 kernels with the shape of the output from the previous max pooling layer, 60x23. This convolutional layer is followed by another max pooling layer of size 2x2 which results in 64 feature maps of size 30x12. The final layers of LeNet-5 are fully connected with sizes 1024, 512, and 2 respectively. The final layer has an output of size 2 since it represents a binary prediction of malicious or benign sample.
All of the activation functions used Rectified Linear Units (ReLU) [25] which were placed after every convolution and fully connected layer excluding the final layer. We used the Adam Optimizer [26], which is a stochastic gradient descent algorithm with automatic learning rate adaptation. This optimizer trains
Fig. 5: Residual Block Diagram
Fig. 6: Data Input Shape with Window Size 3
Fig. 7: Dense Networks
the weights of the model after every min-batch. The learning rate controls how drastically the weights of the model are changed in response to the backpropagation. A higher learning rate leads to faster training but can result in unstable gradient descent and can inhibit convergence. A learning rate that is too slow can cause the model not to achieve higher accuracy results.
Residual Networks: One problem with models with a large number of layers is degradation [27]. This is observation that adding more layers to the network can lead to optimization problems and therefore lower accuracy. This degradation is caused by the backpropagation not being able to reach the initial layers of the model. Residual networks (ResNets) solve this issue by adding skip-connections or residual connections. By adding these shortcut paths between layers, the gradient is allowed to flow better through the model and deeper models are able to be trained without degradation.
Residual blocks as shown in Figure 5, are used in ResNets [27]. The identity is the shortcut connection and it is what allows the back propagation to affect the initial layers and allow them to learn as quickly as the final layers in the model. Three ResNets were used in our work: ResNet-50, ResNet-101, and ResNet-121. Each ResNet required the window size of the data to be three, but the samples were all 2d matrices. All samples had their data replicated twice more to form 3 dimensional data. A representation of this data is shown in Figure 6. At the end of each model, global average pooling was added.
Dense Networks: Where ResNets seek to resolve the gradient degradation problem, DenseNets [28] attempt to alleviate the vanishing gradient problem [29]. A generic DenseNet model is shown in Figure 7. DenseNets are different from ResNets because instead of having an identity mapping from one layer to the next, DenseNets pass the outputs of each layer to all subsequent layers. This way, each layer has collective knowledge from all the preceding layers. This causes the feature maps to be ‘reused’ by latter layers. Due to this reuse of feature maps, less feature maps are required as input due to the compounding nature of DenseNets.
Each dense block makes use of these identity mappings and feature reuse. Between each dense block, there are transition layers that are comprised of a convolution and pooling layer. These are meant to reduce the feature map size between dense blocks. Similar to the ResNets, all DenseNets models received the same input shape as the ResNet models, 120 45 3. The batch size used was 64 for all models to maintain consistency.
4.1 Evaluation
For our comparative analysis, we have used four evaluation metrics:
True Positives (TP) is the number of correctly identified malicious samples. True Negatives (TN) is the number of correctly identified benign samples. False Positives (FP) is the number of samples that were benign but identified as malicious. False Negatives (FN) are the samples that were malicious but not identified correctly by the model. Accuracy is a measure of correct classification. Precision is a measure of accurate positive predictions over the total amount of positive predictions. Precision is important because if the precision is low, then the model is predicting many benign samples to be infected. In the case of cloud data centers, this can hurt the availability of many services if their samples are being incorrectly classified as malign. Recall is a measure of true positive over total actual positive. This metric is important because it reveals how often infected samples get through the model without detection. Recall is useful when the cost of a false negative is high, such is the case with identifying malware. The F1 score is used whenever there needs to be a balance between Precision and Recall and there is a large imbalance in the dataset.
Table 1: Results for Different Evaluation Metrics
4.2 Experiment Results
Table 1 shows the results of each the CNN models considered in this research. While each model was tested over the course of 100 epochs, these numbers were taken from the model when it scored the highest on the validation data set. This means that these are the best case scenario for each model. If these models were deployed in a cloud environment, they would be trained up to the point at which they generate the best results. This point could be different for every model so it is important to pick out the best performing models and not compare models based on something arbitrary such as after n epochs.
The dataset used consisted of 113 data collection experiments which were split up into the following: training dataset (60%), validation data (20%), and testing data (20%). The training dataset was shuffled but the validation and testing dataset were not. DenseNets reached the highest accuracy at almost 93% and precision at 100%. DenseNets also had the highest F1 scores at 91.5%. ResNet-101 had the best recall score at 89.7%.
As stated in section 4.1, the comparative analysis is performed using four metrics. We discuss each of the metrics along with the ROC curves. Additionally, we discuss the detection time of the models. Finally, we provide an overall analysis discussion and take away which sheds the light on the importance of finding the balance in choosing right models based on the use case and intention. Results for all performance metrics are show in Figure 8.
5.1 Performance Analysis
Accuracy. The base model LeNet-5 reaches an accuracy of 89%. This is expected as it is a shallow model, thus it lacks the ability to capture enough features. The DenseNet-121 model has the highest accuracy of 93%, with a very negligible difference compared to DenseNet-169 and DenseNet-201. This
Fig. 8: Metrics Comparison for used CNN Models
indicates that the adding more layers did not increase the accuracy. One reason might lie in the fact that our dataset is limited (i.e., 40k samples) and deeper networks need more data.
ResNet-152 has a slightly better accuracy than LeNet-5. Considering the substantially longer training time for ResNet-152, such slight accuracy increase from LeNet-5 might not be worthwhile in some cases. Note that ResNet might perform better considering other metrics and, in turn, might work in different scenarios. ResNet-50 and ResNet-101 have the lowest accuracy.
The DenseNets performed better than the other models likely due to the feature reuse property of the dense blocks. Also, DenseNet models are more feature efficient than the other models.
Precision. The DenseNet models highly outperformed the other models in precision. DenseNet-121 achieved a precision of 100%, meaning that every sample classified as infected was indeed infected. DenseNet-169 also achieved a high precision of 99.7% followed by DenseNet-201 with a precision of 99.5%.
The ResNet models have noticeable lower precision than all the other models, indicating that they are incorrectly classifying benign samples as malicious. LeNet-5 achieved a high precision score so it would be more appealing than the ResNet models when some false positives can be tolerated. The high precision achieved by all the DenseNet models indicates that they correctly identified the benign samples more often and were less likely to classify samples as malicious unless they had a high confidence.
Fig. 9: ROC Curves
Recall. Recall is the only metric where ResNets performed better than the other models. All three ResNet models were close but ResNet-101 was the best. The DenseNet models performed worse than the ResNet models but LeNet-5 performed the worst by far. Since recall is a measure of many infected samples where missed by the models, ResNets seem to be effective at identifying most infected samples. LeNet-5’s low recall score suggests that the model is weak at identifying less obvious malicious samples. This would be a large problem in datacenters where the samples taken should represent an unbalanced dataset. There should be an overwhelming amount of benign samples before machines are infected and malicious samples begin to show up and a low recall scoring model would be less reliable in predicting the malware as soon as it appears. The higher recall scores demonstrated by the ResNet models are caused by the model being more sensitive and classifying more samples as malicious. This means that the model predicted a sample was malicious more often and was better at identifying those malware who were not as ”obvious” in the performance metrics.
F1 Score. F1 Score is about the balance of precision and recall. In that regard, the DenseNet models scored the highest, which indicates that they have the best balance between identifying only malicious samples and identifying most of infected samples overall.
ROC Curves. The receiver operating characteristic (ROC) analysis [30] is used for comparing models at different thresholds. Our ROC curves are shown in Figure 9. The ROC characteristic measures a models ability to distinguish between classes so in our experiments, it measures the models’ abilities to detect malware. If the ROC curve for a model is close to representing a f(x) = x line, then the model has little ability to differentiate between classes. A common way to analyze the ROC curve is to measure the area-under-curve (AUC) value. When the AUC is higher, then the model is accurately predicting benign samples
Fig. 10: Highest Validation Accuracies Achieved
as benign and malicious samples as malicious. The best performing models were the DenseNet models due to their high precision scores which involve both TP and FP values.
5.2 Cost Analysis
Training Time. Table 2 shows the training time needed to reach the respective accuracies for the models. LeNet-5 trained ten times faster than the next fastest model making it viable as a model to quickly process large volumes of data. DenseNet-201 and DenseNet-169 took much longer to train than DenseNet-121 while reaching similar accuracy making them less desirable.
Detection Time. Detection time is used to show how long in milliseconds each model took to produce a prediction for any given sample. The results are unsurprising, more layers in a model cause it to take longer to feed the input through the model. This is important to include, however, because samples in a data center may be getting collected faster than a given model process a prediction. The detection time differences may also indicate that some models may not be suited for lower specification hardware. Since the detection time is dependent on how quickly the model can process the input, increasing the input size or the volume of inputs could prevent some models from scaling with large data center operations. In these cases, the models with lower detection times may be preferable.
Table 2: Time to Reach Highest Accuracy
5.3 Overall Analysis
Overall, the DenseNet models were the most accurate models with the best balance between precision and recall. The low scores in recall though might be an issue for our use case where allowing malicious samples to slip through could be disastrous. It is also worth noting that while most of the models had validation accuracies that converged to a value, ResNet-101 and ResNet-152 had large fluctuations and never seemed to settle in to a value. This can be seen in Figure 11. If ResNet-101 and ResNet-152 converged to some values, then they may have had better scores. With the inclusion of detection time, assuming the volume of input does not overwhelm the model predicting capabilities, then the DenseNet models would be preferable due to their high accuracy and near perfect precision.
Figure 10 and Table 2 show the points in the training where the models reached their highest validation accuracy. The time elapsed column shows the total time needed to reach the epoch where those highest accuracy numbers were achieved. For examples, DenseNet-121 reached its highest accuracy after 32 training epochs and it took 1683 seconds. This shows that DenseNet-121 could be trained for less time than DenseNet-169 or DenseNet-201 and attain better accuracy.
Although, our results provide good understanding of which CNN model works best in what kind of scenario, there are some limitations we would like to highlight based on our experience. The most important limitation of using CNN on the type of data we used is that it fails to capture a time correlation in the data set. When detecting malware in an already running virtual machine, it is important for a model to have some knowledge about existing samples and the behavior of the machine over time. One such scenario is when a machine begins to experience more traffic and due to some constraint on scaling, the samples
Fig. 11: Training and Validation Loss for used CNN Models
generated from that machine begin to resemble some malicious samples. In this case, if the model does not learn that process metrics can be scaled according to valid demands on the machine, the false positive rate might increase. Another scenario is when the model detects an infected sample, but the malware immediately becomes dormant as to hide itself. If the model does not take into account the previous sample when the malware was detected, it may increase false negatives where the model doesn’t detect a malware even if it is hidden.
These limitations can be mitigated by using Recurrent Neural Networks (RNN). RNN’s are comprised of cells which have a memory mechanism and can learn relationships among data with respect to time. These RNN models are used to process sequences of data such as audio or text. Our brief introduction to RNN models suggest that they can be used to solve some of the issues discussed above by lowering false positives and false negatives in certain scenarios.
Another limitation of this paper is the number of malware samples used. We used roughly 120 malware samples, however, we believe with more samples CNN models could have performed better. The deeper networks such as DenseNet-201 and ResNet-152 may perform better on malware that affect the system very little, and the complexity of those networks may be trained on those samples better than a shallower model. By increasing the amount of malware available, the models also gain a broader data set that could be used to better generalize their predictive power. Also once malware is injected, there are no guarantees that the malware is exhibiting malicious behavior at any given time without knowing what code was being executed at that same moment the sample was recorded. This can lead to a problem where samples are mislabeled as malicious or benign. This problem was addressed in [3], but without writing custom malware that will beacon when malicious activity begins and ends, it is unlikely that all samples will be labeled properly.
In this paper, we analyzed seven different convolutional neural network models to determine which one is better suited for malware detection in cloud IaaS. Our analysis shows that LeNet-5 model is quick but sacrifices accuracy. The model is still useful as it attains a 90% accuracy and can be used in situations where a quick prediction is needed but incorrectness is not too costly. It can also be used when early predictions can be made with LeNet-5 which can be rechecked with more complex models. Also, our analysis suggest that while the residual networks performed well averaging 86 accuracy, the DenseNet models performed the best at 93% accuracy. The ResNet models have higher recall scores indicating that they are more suited for cases where not identifying the malware posing a great security risk. DenseNet models have higher accuracy and precision which indicates they are less likely to generate false positives which are useful in IaaS environments where service availability is extremely important. For future work, we plan to examine more malware samples including Windows malware as well as examine other architectures such as Hadoop and containers. We also plan to analyze and propose new deep learning techniques by infecting multiple VMs to replicate more sophisticated attack scenarios.
1. Peter Mell, Tim Grance, et al. The NIST definition of cloud computing. 2011.
2. Nils Gruschka et al. Attack surfaces: A taxonomy for attacks on cloud services. In Proc. of IEEE international conference on cloud computing, pages 276–279, 2010.
3. Mahmoud Abdelsalam et al. Malware detection in cloud infrastructures using convolutional neural networks. In Proc. of IEEE International Conference on Cloud Computing (CLOUD), pages 162–169, 2018.
4. Mahmoud Abdelsalam, Ram Krishnan, and Ravi Sandhu. Clustering-based iaas cloud monitoring. In Proc. of IEEE International Conference on Cloud Computing (CLOUD), pages 672–679, 2017.
5. Mahmoud Abdelsalam et al. Online malware detection in cloud auto-scaling sys- tems using shallow convolutional neural networks. In Proc. of IFIP Annual Conference on Data and Applications Security and Privacy. Springer, 2019.
6. Husanbir S Pannu, Jianguo Liu, and Song Fu. Aad: Adaptive anomaly detection system for cloud computing infrastructures. In Proc. of IEEE Symposium on Reliable Distributed Systems, pages 396–397, 2012.
7. Joel A Dawson et al. Phase space detection of virtual machine cyber events through hypervisor-level system call analysis. In Proc. of IEEE International Conference on Data Intelligence and Security (ICDIS), pages 159–167, 2018.
8. Chengwei Wang. Ebat: online methods for detecting utility cloud anomalies. In Proc. of the Middleware Doctoral Symposium, pages 1–6, 2009.
9. Michael R Watson et al. Malware detection in cloud computing infrastructures. IEEE Transactions on Dependable and Secure Computing, 13(2):192–205, 2015.
10. Mamoun Alazab et al. Zero-day malware detection based on supervised learning algorithms of api call signatures. In Proc. of the Australasian Data Mining Conference, page 171182, AUS, 2011. Australian Computer Society, Inc.
11. Radu S Pirscoveanu et al. Analysis of malware behavior: Type classification using machine learning. In Proc. of IEEE International conference on cyber situational awareness, data analytics and assessment, pages 1–7, 2015.
12. Shun Tobiyama et al. Malware detection with deep neural network using process behavior. In Proc. of IEEE Annual Computer Software and Applications Conference, volume 2, pages 577–582, 2016.
13. P. Luckett et al. Neural network analysis of system call timing for rootkit detection. In Proc. of Cybersecurity Symposium (CYBERSEC), pages 1–6, April 2016.
14. Gianluca Dini et al. Madam: A multi-level anomaly detector for android malware. In Igor Kotenko and Victor Skormin, editors, Computer Network Security, pages 240–253, Berlin, Heidelberg, 2012. Springer Berlin Heidelberg.
15. John Demme et al. On the feasibility of online malware detection with performance counters. ACM SIGARCH Computer Architecture News, 41(3):559–570, 2013.
16. Khaled N Khasawneh et al. Ensemble learning for low-level hardware-supported malware detection. In Proc. of International Symposium on Recent Advances in Intrusion Detection, pages 3–25. Springer, 2015.
17. Zhixing Xu et al. Malware detection using machine learning based analysis of virtual memory access patterns. In Proc. of IEEE Design, Automation & Test in Europe Conference & Exhibition, 2017, pages 169–174, 2017.
18. James PG Sterbenz et al. Resilience and survivability in communication networks: Strategies, principles, and survey of disciplines. Computer Networks, 54(8):1245– 1265, 2010.
19. Michael R Watson et al. Towards a distributed, self-organising approach to malware detection in cloud computing. In Proc. of International Workshop on SelfOrganizing Systems, pages 182–185. Springer, 2013.
20. Angelos K Marnerides et al. A multi-level resilience framework for unified net- worked environments. In Proc. of IFIP/IEEE International Symposium on Integrated Network Management (IM), pages 1369–1372, 2015.
21. Yujie Fan, Yanfang Ye, and Lifei Chen. Malicious sequential pattern mining for automatic malware detection. Expert Systems with Applications, 52:16–25, 2016.
22. Ivan Firdausi et al. Analysis of machine learning techniques used in behaviorbased malware detection. In Proc. of IEEE International conference on advances in computing, control, and telecommunication technologies, pages 201–203, 2010.
23. Fatemeh Azmandian et al. Virtual machine monitor-based lightweight intrusion detection. ACM SIGOPS Operating Systems Review, 45(2):38–53, 2011.
24. Yann LeCun et al. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11):2278–2324, 1998.
25. Abien Fred Agarap. Deep learning using rectified linear units (relu). arXiv preprint arXiv:1803.08375, 2018.
26. Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014.
27. Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385, 2015.
28. Gao Huang, Zhuang Liu, and Kilian Q. Weinberger. Densely connected convolu- tional networks. CoRR, abs/1608.06993, 2016.
29. Razvan Pascanu, Tomas Mikolov, and Yoshua Bengio. Understanding the explod- ing gradient problem. CoRR, abs/1211.5063, 2012.
30. Charles E Metz. Receiver operating characteristic analysis: a tool for the quan- titative evaluation of observer performance and imaging systems. Journal of the American College of Radiology, 3(6):413–422, 2006.