Code Monkey home page Code Monkey logo

ai-ids-iot's Introduction

Overview

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.

Paper

Dataset (IoTID20)

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

Method

Normalization

-MinMax Normalization

-Standard Normalization

Sampling

-SMOTE

Feature Selection

-Variance Method

Classifiers

-Artificial Neural Network (ANN)

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.

-Binary Neural Network (BNN)

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].

Ekran_Alıhjkjlkşkllşkşntısı-removebg-preview (1)

For more information about the BNN: [1]: https://docs.larq.dev/larq/

Source [2]: https://arxiv.org/abs/1602.02830

The Process

Hardwares on HPC

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

Experiment Results

Requirement

  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

Explanation of Files

  • 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.

Contact for Questions and Suggestions

ai-ids-iot's People

Contributors

havvanurbozomeroglu avatar emincankurt avatar istecenter avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.