| Literature DB >> 35634069 |
Deepti Rani1, Nasib Singh Gill1, Preeti Gulia1, Jyotir Moy Chatterjee2.
Abstract
Internet of Things (IoT) is the fastest growing technology that has applications in various domains such as healthcare, transportation. It interconnects trillions of smart devices through the Internet. A secure network is the basic necessity of the Internet of Things. Due to the increasing rate of interconnected and remotely accessible smart devices, more and more cybersecurity issues are being witnessed among cyber-physical systems. A perfect intrusion detection system (IDS) can probably identify various cybersecurity issues and their sources. In this article, using various telemetry datasets of different Internet of Things scenarios, we exhibit that external users can access the IoT devices and infer the victim user's activity by sniffing the network traffic. Further, the article presents the performance of various bagging and boosting ensemble decision tree techniques of machine learning in the design of an efficient IDS. Most of the previous IDSs just focused on good accuracy and ignored the execution speed that must be improved to optimize the performance of an ID model. Most of the earlier pieces of research focused on binary classification. This study attempts to evaluate the performance of various ensemble machine learning multiclass classification algorithms by deploying on openly available "TON-IoT" datasets of IoT and Industrial IoT (IIoT) sensors.Entities:
Mesh:
Year: 2022 PMID: 35634069 PMCID: PMC9142322 DOI: 10.1155/2022/1668676
Source DB: PubMed Journal: Comput Intell Neurosci
Figure 1Ensemble-based learning model.
Figure 2Boosting ensemble-based learning model
Details of classifiers.
| Algorithm | Classifier | Tuned hyper parameters |
|---|---|---|
| Random forest | RandomForestClassifier(….) | Random_state, n_jobs, max_depth; n_estimators, criterion = “entropy” |
| Extreme gradient boosting | XGBClassifier(….) | random_state, n_estimators, max_depth, learning_rate, eval_metric = “mlogloss” |
| Light gradient boosting | LGBMClassifier(….) | Random_state, n_estimators, num_leaves, max_depth |
| CatBoost | CatBoostClassifier(…..) | learning_rate, iterations, max_depth, loss_function = “Multiclass” |
Summarized differences between Bagging and Boosting.
| Bagging | Boosting |
|---|---|
| Weak models often learn independently in parallel | Weak models often learn sequentially in an adaptive way |
| Bagging focuses on obtaining an ensemble model with less variance | Boosting focus on producing a strong model with less bias but variance can also be reduced |
| Different weak learners can be fitted independently and train concurrently | Different weak learners cannot be fitted independently but models are fitted iteratively and training of each model depends on the model fitted previously |
| The idea behind boosting is to construct a set predicting model by aggregating the results of base models. | The idea behind boosting is to construct a set of models which are aggregated to get a strong learner. |
Specification of TON_IoT datasets [13].
| Datasets | Features | No. ofinstances | Input features | Output feature = “type” (classes) |
|---|---|---|---|---|
| TON_IoT (IoT_Fridge) | 6 | 587077 | “Date”, “time”, “fridge_temperature”, “temp_condition”, “label” | “Normal”, “backdoor”, “ddos”, “injection”, “password”, “ransomware”, “xss” |
| TON_IoT (IoT_Garage_Door) | 6 | 591447 | “Date”, “time”, “door_state”, “sphone_signal”, “label” | “Normal”, “backdoor”, “ddos”, “password”, “injection”, “scanning”, “ransomware”, “xss” |
| TON_IoT (IoT_GPS_Tracker) | 6 | 595687 | “Date”, “time”, “latitude”, “longitude”, “label” | “Normal”, “backdoor”, “ddos”, “injection”, “password”, “ransomware”, “scanning”, “xss” |
| TON_IoT (IoT_Motion_Light) | 6 | 452263 | “Date”, “time”, “motion_status”, “light_status”, “label” | “Backdoor”, “ddos”, “injection”, “normal”, “password”, “ransomware”, “scanning”, “xss” |
| TON_IoT (IoT_Thermostat) | 6 | 442229 | “Date”, “time”, “current_temperature”, “thermostat_status”, “label” | “Backdoor”, “injection”, “normal”, “password”, “ransomware”, “scanning”, “xss” |
| TON_IoT (IoT_Weather) | 7 | 650243 | “Date”, “time”, “temperature”, “pressure”, “humidity”, “label” | “Normal”, “backdoor”, “ddos”, “injection”, “password”, “ransomware”, “scanning”, “xss” |
Accuracy score.
| Dataset name | Random forest | XGBoost | LGBM | CatBoost | ||||
|---|---|---|---|---|---|---|---|---|
| Train | Test | Train | Test | Train | Test | Train | Test | |
| TON_IoT (IoT_Fridge) | 91.36 | 91.36 | 91.37 | 91.36 | 91.36 | 91.35 | 91.38 | 91.37 |
| TON_IoT (IoT_Garage_Door) | 93.16 | 93.14 | 93.16 | 93.14 | 93.16 | 93.14 | 93.16 | 93.14 |
| TON_IoT (IoT_GPS_Tracker) | 92.94 | 92.91 | 97.26 | 97.28 | 94.89 | 94.74 | 94.18 | 94.07 |
| TON_IoT (IoT_Motion_Light) | 92.08 | 92.16 | 92.09 | 92.11 | 92.09 | 92.11 | 92.09 | 92.11 |
| TON_IoT (IoT_Thermostat) | 95.31 | 95.32 | 95.33 | 95.32 | 95.31 | 95.32 | 95.32 | 95.32 |
| TON_IoT (IoT_Weather) | 96.69 | 96.69 | 96.49 | 96.26 | 96.91 | 96.80 | 95.84 | 95.84 |
Classification report.
| Dataset | Models | Precision | Recall | F1-score |
|---|---|---|---|---|
| TON_IoT (IoT_Fridge) | Random forest | 0.89 | 0.91 | 0.89 |
| XGB | 0.89 | 0.91 | 0.89 | |
| LGBM | 0.89 | 0.91 | 0.89 | |
| CB | 0.90 | 0.91 | 0.89 | |
|
| ||||
| TON_IoT (IoT_Garage_Door) | Random forest | 0.90 | 0.93 | 0.91 |
| XGB | 0.90 | 0.93 | 0.91 | |
| LGBM | 0.90 | 0.93 | 0.91 | |
| CB | 0.90 | 0.93 | 0.91 | |
|
| ||||
| TON_IoT (IoT_GPS_Tracker) | Random forest | 0.92 | 0.93 | 0.92 |
| XGB | 0.97 | 0.97 | 0.97 | |
| LGBM | 0.95 | 0.95 | 0.95 | |
| CB | 0.94 | 0.94 | 0.94 | |
|
| ||||
| TON_IoT (IoT_Motion_Light) | Random forest | 0.89 | 0.92 | 0.90 |
| XGB | 0.89 | 0.92 | 0.90 | |
| LGBM | 0.89 | 0.92 | 0.90 | |
| CB | 0.89 | 0.92 | 0.90 | |
|
| ||||
| TON_IoT (IoT_Thermostat) | Random forest | 0.92 | 0.95 | 0.94 |
| XGB | 0.93 | 0.95 | 0.94 | |
| LGBM | 0.92 | 0.95 | 0.94 | |
| CB | 0.92 | 0.95 | 0.94 | |
|
| ||||
| TON_IoT (IoT_Weather) | Random forest | 0.97 | 0.97 | 0.96 |
| XGB | 0.96 | 0.96 | 0.96 | |
| LGBM | 0.97 | 0.97 | 0.97 | |
| CB | 0.96 | 0.96 | 0.96 | |
Mean accuracy (cross validation).
| Dataset name | Mean accuracy (Cross_Validation) | |||||
|---|---|---|---|---|---|---|
| Random forest | Gradient boosting | HistGradient boosting | XGB classifier | LGBM classifier | CB classifier | |
| TON_IoT (IoT_Fridge) | 94.3 | 92.0 | 93.8 | 94.3 | 93.9 | 94.5 |
| TON_IoT (IoT_Garage_Door) | 93.9 | 91.1 | 93.6 | 93.9 | 93.6 | 94.4 |
| TON_IoT (IoT_GPS_Tracker) | 94.3 | 92.0 | 93.9 | 94.0 | 93.9 | 94.5 |
| TON_IoT (IoT_Motion_Light) | 95.2 | 92.6 | 94.8 | 95.2 | 94.8 | 95.4 |
| TON_IoT (IoT_Thermostat) | 93.7 | 91.8 | 93.3 | 93.3 | 93.4 | 93.8 |
| TON_IoT (IoT_Weather) | 95.4 | 93.1 | 95.4 | 95.4 | 95.4 | 95.7 |
Runtime (in seconds) performance.
| Dataset name | Runtime (in seconds) | |||||
|---|---|---|---|---|---|---|
| Random forest | Gradient boosting | HistGradient boosting | XGB classifier | LGB classifier | CB classifier | |
| TON_IoT (IoT_Fridge) | 39.935 | 41.937 | 8.119 | 43.124 | 6.495 | 113.525 |
| TON_IoT (IoT_Garage_Door) | 43.233 | 54.916 | 9.368 | 50.577 | 5.997 | 124.883 |
| TON_IoT (IoT_GPS_Tracker) | 40.104 | 46.075 | 8.329 | 43.663 | 5.966 | 114.045 |
| TON_IoT (IoT_Motion_Light) | 45.709 | 52.981 | 12.657 | 51.432 | 5.019 | 132.642 |
| TON_IoT (IoT_Thermostat) | 49.82 | 36.902 | 6.753 | 36.856 | 5.447 | 95.517 |
| TON_IoT (IoT_Weather) | 51.05 | 61.381 | 8.928 | 53.552 | 6.729 | 134.768 |
Figure 3ROC_AUC curves of classification models of datasets: (a) Fridge using random forest, (b) Fridge using XGBoost, (c) Fridge using LGBM, (d) Fridge using CatBoost, (e) Garage_Door using random forest, (f) Garage_Door using XGBoost, (g) Garage_Door using LGBoost, (h) Garage_Door using CatBoost, (i) GPS_Tracker using random forest, (j) GPS_Tracker using XGBoost, (k) GPS_Tracker using LGBoost, (l) GPS_Tracker using CatBoost, (m) Motion_Light using random forest, (n) Motion_Light using XGBoost, (o) Motion_Light using LGBoost, (p) Motion_Light using CatBoost, (q) Thermostat using random forest, (r) Thermostat using XGBoost, (s) Thermostat using LGBoost, (t) Thermostat using CatBoost, (u) Weather using random forest, (v) Weather using XGBoost, (w) Weather using LGBoost, and (x) Weather using CatBoost.
ROC_AUC_Score.
| Dataset name | ROC_AUC score | |||
|---|---|---|---|---|
| Random forest | XGB classifier | LGB classifier | CB classifier | |
| TON_IoT (IoT_Fridge) | 98.57 | 98.70 | 98.65 | 98.74 |
| TON_IoT (IoT_Garage_Door) | 98.57 | 98.74 | 98.95 | 98.99 |
| TON_IoT (IoT_GPS_Tracker) | 98.23 | 98.26 | 98.69 | 98.39 |
| TON_IoT (IoT_Motion_Light) | 98.80 | 98.91 | 98.99 | 98.86 |
| TON_IoT (IoT_Thermostat) | 98.57 | 98.63 | 99.33 | 98.75 |
| TON_IoT (IoT_Weather) | 98.78 | 98.73 | 99.23 | 99.03 |