Skip to content
Snippets Groups Projects
Commit b8689318 authored by Dustin Kern's avatar Dustin Kern
Browse files

ids files

parent 5b681c3a
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@
## Run Simulation
## Install Simulation Extension
```
......@@ -43,6 +43,7 @@ wget "https://platform.elaad.io/download-data/filedownload.php?file=elaadnl_open
cp -r ./wattson-ev/wattson ./wattson/
cp -r ./wattson-ev/scenarios ./wattson/
cp ./wattson-ev/run_wattson.sh ./wattson/
......@@ -50,6 +51,33 @@ sudo python3 wattson/setup.py wattson
sudo python3 -m pip install -e ./wattson
sudo pip install ujson pyoscp websockets ocpp flask CherryPy cheroot openpyxl
```
## Run Simulation
```
#Single simulation run with e.g.:
sudo python3 -m wattson wattson/scenarios/powerowl_example --no-cli --seed 5
#Full run (incl. attack and normal runs) with:
cd wattson
sudo bash run_wattson.sh
```
## IDS Dependencies and Execution:
```
#Install IDS dependencies with:
sudo pip install scikit-learn==1.3.2
#Execute full IDS run (training and testing) with:
cd wattson/ids
bash run_ids.sh
```
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{
"configs": {
"latest": {"DIR": "../../wattson-artifacts/latest"},
"test": {"DIR": "../../wattson-artifacts/elaadnl/test_powerowl_example", "TRAIN_START_DATE": "2023-11-01", "VALIDATION_START_DATE": "2023-12-01", "ATK_START_DATE": "2023-12-31"},
"elaadnl": {"DIR": "../../wattson-artifacts/elaadnl/year_powerowl_example", "TRAIN_START_DATE": "2023-01-01", "VALIDATION_START_DATE": "2023-11-01", "ATK_START_DATE": "2023-12-01"},
"elaadnl_atk": {"DIR": "../../wattson-artifacts/elaadnl/", "BASE": "elaadnl"}
},
"NUM_THREADS": 8
}
ids/ids.py 0 → 100644
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#!/bin/bash
# nohup bash run_dso3.sh >> rlog_dso3.log 2>&1 & #wat
# tail -f rlog_dso3.log
#TRAIN:
python3 ids.py -c=load_data -v -d elaadnl
python3 ids.py -c=get_features_cpo -v -d elaadnl #only for OSCP fix
python3 ids.py -c=get_features_dso -l 96 -v -d elaadnl
#python3 ids.py -c=plot_atks -v -d elaadnl
#Regression without grid features:
#RandomForestRegressor DecisionTreeRegressor GradientBoostingRegressor LinearSVR MLPRegressor HistGradientBoostingRegressor
python3 ids.py -c=train_reg_dso -r LinearSVR -f only_pred_lag no_norm no_date1 no_grid -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r RandomForestRegressor -f only_pred_lag no_norm no_date1 no_grid -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r HistGradientBoostingRegressor -f only_pred_lag no_norm no_date1 no_grid -v -d elaadnl #
#python3 ids.py -c=train_reg_dso -r GradientBoostingRegressor -f only_pred_lag no_norm no_date1 no_grid -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r DecisionTreeRegressor -f only_pred_lag no_norm no_date1 no_grid -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r MLPRegressor -f only_pred_lag no_norm no_date1 no_grid -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r LinearSVR -f only_pred_lag only_norm no_norm1 no_date1 no_grid -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r RandomForestRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r HistGradientBoostingRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid -v -d elaadnl #
#python3 ids.py -c=train_reg_dso -r GradientBoostingRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r DecisionTreeRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r MLPRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid -v -d elaadnl #
#Regression with grid features:
python3 ids.py -c=train_reg_dso -r LinearSVR -f only_pred_lag no_norm no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r RandomForestRegressor -f only_pred_lag no_norm no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r HistGradientBoostingRegressor -f only_pred_lag no_norm no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
#python3 ids.py -c=train_reg_dso -r GradientBoostingRegressor -f only_pred_lag no_norm no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r DecisionTreeRegressor -f only_pred_lag no_norm no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r MLPRegressor -f only_pred_lag no_norm no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r LinearSVR -f only_pred_lag only_norm no_norm1 no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r RandomForestRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r HistGradientBoostingRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
#python3 ids.py -c=train_reg_dso -r GradientBoostingRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r DecisionTreeRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
python3 ids.py -c=train_reg_dso -r MLPRegressor -f only_pred_lag only_norm no_norm1 no_date1 no_grid_storage no_grid_sgen add_bus_relations -v -d elaadnl #
#exit 0
python3 ids.py -c=do_pred_dso -s 48 -R -v -d elaadnl
python3 ids.py -c=get_features_clf_dso -v -d elaadnl
#Novelty Detection without grid features:
# LocalOutlierFactor OneClassSVM EllipticEnvelope IsolationForest
python3 ids.py -c=optimize_clf_dso -C IsolationForest -F no_reg only_norm set_13 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C LocalOutlierFactor -F no_reg only_norm set_13 -v -d elaadnl -O #
#python3 ids.py -c=optimize_clf_dso -C LocalOutlierFactor -F no_reg only_norm train_conta set_13 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C OneClassSVM -F no_reg only_norm set_13 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C EllipticEnvelope -F no_reg only_norm set_13 -v -d elaadnl -O #
#Novelty Detection with basic grid features:
python3 ids.py -c=optimize_clf_dso -C IsolationForest -F no_reg only_norm set_3 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C LocalOutlierFactor -F no_reg only_norm set_3 -v -d elaadnl -O #
# python3 ids.py -c=optimize_clf_dso -C LocalOutlierFactor -F no_reg only_norm train_conta set_3 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C OneClassSVM -F no_reg only_norm set_3 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C EllipticEnvelope -F no_reg only_norm set_3 -v -d elaadnl -O #
#Novelty Detection with advanced grid features:
python3 ids.py -c=optimize_clf_dso -C IsolationForest -F no_reg only_norm add_grid_load_expo_static_100 set_35 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C LocalOutlierFactor -F no_reg only_norm add_grid_load_expo_static_100 set_35 -v -d elaadnl -O #
#python3 ids.py -c=optimize_clf_dso -C LocalOutlierFactor -F no_reg only_norm train_conta add_grid_load_expo_static_100 set_35 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C OneClassSVM -F no_reg only_norm add_grid_load_expo_static_100 set_35 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C EllipticEnvelope -F no_reg only_norm add_grid_load_expo_static_100 set_35 -v -d elaadnl -O #
python3 ids.py -c=optimize_clf_dso -C IsolationForest -F no_reg only_norm add_grid_load_expo_rnd_2 set_352 -v -d elaadnl -O
python3 ids.py -c=optimize_clf_dso -C IsolationForest -F no_reg only_norm add_grid_load_expo_rnd_4 set_352 -v -d elaadnl -O
python3 ids.py -c=optimize_clf_dso -C IsolationForest -F no_reg only_norm add_grid_load_expo_rnd_6 set_352 -v -d elaadnl -O
python3 ids.py -c=optimize_clf_dso -C IsolationForest -F no_reg only_norm add_grid_load_expo_rnd_8 set_352 -v -d elaadnl -O
python3 ids.py -c=optimize_clf_dso -C IsolationForest -F no_reg only_norm add_grid_load_expo_rnd_10 set_352 -v -d elaadnl -O
python3 ids.py -c=eval_tuning_clf -v -d elaadnl -O #1 2
#python3 ids.py -c=print_eval_tuning_clf -v -d elaadnl
#TEST
python3 ids.py -c=load_data -v -d elaadnl_atk #1 2
python3 ids.py -c=get_features_cpo -v -d elaadnl_atk #only for OSCP fix
python3 ids.py -c=get_features_dso -l 96 -v -d elaadnl_atk #1 2
python3 ids.py -c=do_pred_dso -s 48 -R -v -d elaadnl_atk
#python3 ids.py -c=do_pred_dso -s 48 -R -v -d elaadnl_atk
python3 ids.py -c=get_features_clf_dso -v -d elaadnl_atk #1
python3 ids.py -c=get_is_atk_dfs_dso -v -d elaadnl_atk #1
python3 ids.py -c=do_clf_dso -v -d elaadnl_atk -O
#Eval Figures:
# python3 ids.py -c=eval_clf_results4 -v -d elaadnl_atk #Figure 6
# python3 ids.py -c=eval_clf_results62 -v -d elaadnl_atk -e 0.40 #Figure 7 & 8
# python3 ids.py -c=eval_clf_results63 -v -d elaadnl_atk -e 0 #Figure 8
# python3 ids.py -c=eval_clf_results7 -v -d elaadnl_atk -e 0 #Figure 10
exit 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment