Internet usage is increasing rapidly nowadays. This rapid increase has many benefits that make our lives easier, but it has many problems as well as benefits. The most dangerous and important of these problems may be cyber threats. These threats can cause all kinds of harm to many institutions, states, communities or individuals. Intrusion detection systems can be the most useful of the measures that can be taken against these damages. Today, machine learning algorithms are the basis of most intrusion detection systems. The aim of this study is to test the binary neural network (BNN) algorithm, which is generally tried on image data, against the attacks on IoT devices, on the IoTID20 dataset, which is one of the most up-to-date datasets, and to compare the results of this test with the test results of the artificial neural network (ANN) algorithm in this dataset.
We can briefly define IoT as the internet of things. IoT represents smart devices that can connect to the internet, as it is briefly mentioned in the internet and in many articles. IDS is referred to as an intrusion detection system. In short, it is called systems that detect intrusions in network traffic. We can call it IoT-IDS for short in systems formed to detect attacks on IoT devices.
The exponential growth of the Internet of Things (IoT) devices provides a large attack surface for intruders to launch more destructive cyber-attacks. The intruder aimed to exhaust the target IoT network resources with malicious activity. New techniques and detection algorithms required a well-designed dataset for IoT networks. We proposed a new dataset, namely IoTID20, generated dataset from [1]. The new IoT botnet dataset has a more comprehensive network and flow-based features. The flow-based feature can be used to analyze and evaluate a flow-based intrusion detection system. Our proposed IoT botnet dataset will provide a reference point to identify anomalous activity across the IoT networks. The IoT Botnet dataset can be accessed from [2]. The new IoTID20 dataset will provide a foundation for the development of new intrusion detection techniques in IoT networks.
For more information about the dataset: [1] https://ieee-dataport.org/open-access/iot-network-intrusion-dataset
Source: [2] https://sites.google.com/view/iot-network-intrusion-dataset/home
Downloaded from - https://drive.google.com/drive/folders/1SmLczDUiCfcFb0HzdYM1wUuMoZobsUhp
-MinMax Normalization
-Standard Normalization
-SMOTE
-Variance Method
Artificial neural networks (ANN) are a system inspired by the working principle of the human brain. This system is a structure established in the form of layers. These are a machine learning model consisting of 3 layers: the input layer, the intermediate (hidden) layer, and the output layer . Each layer has its own neurons. And with various mathematical operations that occur in these neurons, it is decided whether this neuron is working. This is the general principle of operation.
Any layer has two types of inputs: the layer parameters, such as a weight matrix and biases, and incoming activations. We can reduce the memory footprint of the model by binarizing parameters. To get the efficiency of binary computations, the incoming activations need to be binary as well. This can be done by setting a input_quantizer. Note that the output of a binarized layer is not binary. Instead the output is an integer, due to the summation that appears in most neural network layers. When viewing binarization as an activation function just like ReLU, one may be inclined to binarize the outgoing activations rather than the incoming activations. However, if the network contains batch normalization layers or residual connections, this may result in unintentional non-binary operations. Therefore we have opted for an input_quantizer rather than an activation_quantizer[1]. When training a BNN, we constrain both the weights and the activations to either +1 or r 1. Those two values are very advantageous from a hardware perspective[2].
For more information about the BNN: [1]: https://docs.larq.dev/larq/
Source [2]: https://arxiv.org/abs/1602.02830
HPE 868703-B21 DL380 Gen10 85FF CTO Serv
HPE 733660-B21#0D1 2U SFF Easy Install R
HPE 815100-B21#0D1 32GB 2Rx4 PC4-1666V-R
HPE 826690-B21#0D1 DL38X Gen10 Premium B
HPE 804331-B21#0D1 Smart Array P408İ-a S
HPE 865414-B21#0D1 800W FS Plat Ht Plg L
HPE 826694-B21#0D1 DL38X Gen10 x16 x16 R
HPE 826882-L21 DL380 Gen10 6148 Xeon-G F
HPE 826882-B21#0D1 DL380 Gen10 6148 Xeon
HPE P01366-B21# 0D1 96W Smart Storage Ba
HPE 867810-B21#0D1 DL38X Gen10 High Perf
HPE 871674-B21 DL38X Gen10 x16 x16 Riser
HPE P04474-B21#0D1 480GB SATA RI SFF SC
1- jupyterlab
2- tensorflow
3- scikit-learn
4- pandas
5- numpy
6- keras
7- larq
8- matplotlib
9- itertools
10- imblearn
11- collections
12- csv
- 1- Data_Cleaning-Mapping.ipynb --> Cleaning and mapping the raw data files.
- 2- Graphic.ipynb --> Visualization of data.
- 3- Over_Sampling_Smote.ipynb -->
- 4- ANN.ipynb --> Build model with ANN.
- 5- ANN with feature selection.ipynb --> Build model with ANN and Variance method.
- 6- BNN.ipynb --> Build model with BNN.
- 7- BNN with feature selection.ipynb --> Build model with BNN and Variance method.