├── README.md ├── .DS_Store ├── .ipynb_checkpoints └── ADS-B Spoof Detector-checkpoint.ipynb ├── data ├── sample.json └── aircraft_spoofed.json └── ADS-B Spoof Detector.ipynb /README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ANG13T/ADSB-Spoof-Detector/HEAD/.DS_Store -------------------------------------------------------------------------------- /.ipynb_checkpoints/ADS-B Spoof Detector-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "id": "e2b922ee", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "# ADS-B Spoof Detector \n", 11 | "# Created by Angelina Tsuboi\n", 12 | "# Begin by parsing ADS-B data. Attributes include the following:\n", 13 | "# Reference dump1090 README:\n", 14 | "# https://github.com/SDRplay/dump1090/blob/master/README-json.md\n", 15 | "# Label = Spoofed or Not (Binary Classification)\n", 16 | "# Data samples from Flight Aware and ADSB Exchange\n", 17 | "# https://www.adsbexchange.com/data-samples/\n", 18 | "# https://samples.adsbexchange.com/readsb-hist/2022/05/01/\n", 19 | "# https://www.adsbexchange.com/version-2-api-wip/\n", 20 | "# https://elmwoodelectronics.ca/blogs/news/tracking-and-logging-flights-with-ads-b-flight-aware-and-raspberry-pi ****\n", 21 | "# https://ieeexplore.ieee.org/document/9377975" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 3, 27 | "id": "243d62b5", 28 | "metadata": { 29 | "scrolled": true 30 | }, 31 | "outputs": [ 32 | { 33 | "name": "stderr", 34 | "output_type": "stream", 35 | "text": [ 36 | "2023-01-27 20:42:13.824984: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", 37 | "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" 38 | ] 39 | } 40 | ], 41 | "source": [ 42 | "# Imports\n", 43 | "import json\n", 44 | "import csv\n", 45 | "import numpy as np\n", 46 | "import keras\n", 47 | "# from keras.models import Sequential\n", 48 | "# from keras.layers import Dense, Dropout, Flatten\n", 49 | "# from keras.layers import Conv2D, MaxPooling2D\n", 50 | "# from keras.utils import to_categorical" 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": 6, 56 | "id": "16c877b8", 57 | "metadata": {}, 58 | "outputs": [], 59 | "source": [ 60 | "# Conversion from JSON (raw data given by dump1090 to CSV which is more interpretable by network)\n", 61 | "# First interpret valid ADSB data then spoofed dataset\n", 62 | "\n", 63 | "# Valid data parsing first\n", 64 | "with open('data/aircraft_valid.json') as json_file:\n", 65 | " data_valid = json.load(json_file)\n", 66 | " \n", 67 | "# Parse spoofed data\n", 68 | "with open('data/aircraft_spoofed.json') as json_file:\n", 69 | " data_spoofed = json.load(json_file)\n", 70 | " \n", 71 | "aircraft_data_valid = data_valid['aircraft']\n", 72 | "aircraft_data_spoofed = data_spoofed['aircraft']\n", 73 | " \n", 74 | "# now we will open a file for writing\n", 75 | "data_file = open('data/aircraft_data.csv', 'w')\n", 76 | " \n", 77 | "# create the csv writer object\n", 78 | "csv_writer = csv.writer(data_file)\n", 79 | " \n", 80 | "# Counter variable used for writing\n", 81 | "# headers to the CSV file\n", 82 | "count = 0\n", 83 | " \n", 84 | "for aircraft in aircraft_data_valid:\n", 85 | " aircraft['is_spoofed'] = False\n", 86 | " if count == 0:\n", 87 | " # Writing headers of CSV file\n", 88 | " header = aircraft.keys()\n", 89 | " csv_writer.writerow(header)\n", 90 | " count += 1\n", 91 | " \n", 92 | " # Writing data of CSV file\n", 93 | " csv_writer.writerow(aircraft.values())\n", 94 | "\n", 95 | "for aircraft in aircraft_data_spoofed:\n", 96 | " aircraft['is_spoofed'] = True\n", 97 | " # Writing data of CSV file\n", 98 | " csv_writer.writerow(aircraft.values())\n", 99 | " \n", 100 | "data_file.close()" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "execution_count": null, 106 | "id": "180bd853", 107 | "metadata": {}, 108 | "outputs": [], 109 | "source": [ 110 | "# TODO: \n", 111 | "# {\n", 112 | "# {\n", 113 | "# \"name\": \"HGD\",\n", 114 | "# \"altitude\": 400,\n", 115 | "# \"long\": 45,\n", 116 | "# \"lat\": 4\n", 117 | "# },\n", 118 | "# {\n", 119 | "# \"name\": \"HGD\",\n", 120 | "# \"altitude\": 600,\n", 121 | "# \"long\": 50,\n", 122 | "# \"lat\": 5\n", 123 | "# },\n", 124 | "# ...\n", 125 | "# }\n", 126 | "def process_json(json_file):\n", 127 | " # Load the JSON data\n", 128 | " with open(json_file) as f:\n", 129 | " data = json.load(f)\n", 130 | "\n", 131 | " # Extract the features and labels from the JSON data\n", 132 | " features = []\n", 133 | " labels = []\n", 134 | " for transmission in data['aircraft']:\n", 135 | " features.append([transmission['hex'], transmission['type'], transmission['alt_baro']])\n", 136 | " labels.append(transmission['flight'])\n", 137 | " \n", 138 | " # Normalize the features using StandardScaler\n", 139 | " scaler = StandardScaler()\n", 140 | " features = scaler.fit_transform(features)\n", 141 | "\n", 142 | " # Reshape the data to match the input format of the model\n", 143 | " features = np.reshape(features, (features.shape[0], 1, features.shape[1]))\n", 144 | "\n", 145 | " # Convert the labels to categorical format\n", 146 | " labels = to_categorical(labels)\n", 147 | "\n", 148 | " # Return the processed data\n", 149 | " return features, labels\n", 150 | "\n", 151 | "# Example usage\n", 152 | "x_train, y_train = process_json(\"data/aircraft_spoofed.json\")\n", 153 | "print(x_train)" 154 | ] 155 | }, 156 | { 157 | "cell_type": "code", 158 | "execution_count": null, 159 | "id": "6d0f81bc", 160 | "metadata": {}, 161 | "outputs": [], 162 | "source": [ 163 | "# Prepare Dataset to be Placed into Neural Network\n", 164 | "# Split into Training and Testing Sets" 165 | ] 166 | }, 167 | { 168 | "cell_type": "code", 169 | "execution_count": null, 170 | "id": "b0bf5de8", 171 | "metadata": {}, 172 | "outputs": [], 173 | "source": [ 174 | "# CNN Architecture\n", 175 | "model = Sequential()\n", 176 | "model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)))\n", 177 | "model.add(MaxPooling2D(pool_size=(2, 2)))\n", 178 | "model.add(Conv2D(64, kernel_size=(3, 3), activation='relu'))\n", 179 | "model.add(MaxPooling2D(pool_size=(2, 2)))\n", 180 | "model.add(Flatten())\n", 181 | "model.add(Dense(128, activation='relu'))\n", 182 | "model.add(Dropout(0.5))\n", 183 | "model.add(Dense(2, activation='softmax'))\n", 184 | "\n", 185 | "# Compile the model\n", 186 | "model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n", 187 | "\n", 188 | "# Train the model on the training data\n", 189 | "model.fit(x_train, y_train, epochs=10, batch_size=32)\n", 190 | "\n", 191 | "# Evaluate the model on the test data\n", 192 | "test_loss, test_acc = model.evaluate(x_test, y_test)\n", 193 | "print('Test accuracy:', test_acc)\n", 194 | "\n", 195 | "# Use the model to classify new ADSB data\n", 196 | "predictions = model.predict(x_new)" 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": null, 202 | "id": "b7209d4f", 203 | "metadata": {}, 204 | "outputs": [], 205 | "source": [ 206 | "# Show location of spoofed aircraft with Folium" 207 | ] 208 | } 209 | ], 210 | "metadata": { 211 | "kernelspec": { 212 | "display_name": "Python 3 (ipykernel)", 213 | "language": "python", 214 | "name": "python3" 215 | }, 216 | "language_info": { 217 | "codemirror_mode": { 218 | "name": "ipython", 219 | "version": 3 220 | }, 221 | "file_extension": ".py", 222 | "mimetype": "text/x-python", 223 | "name": "python", 224 | "nbconvert_exporter": "python", 225 | "pygments_lexer": "ipython3", 226 | "version": "3.9.13" 227 | } 228 | }, 229 | "nbformat": 4, 230 | "nbformat_minor": 5 231 | } 232 | -------------------------------------------------------------------------------- /data/sample.json: -------------------------------------------------------------------------------- 1 | { 2 | "now": 1651363199.612, 3 | "messages": 3788801925, 4 | "aircraft": [ 5 | { 6 | "hex": "845f9f", 7 | "type": "adsc", 8 | "flight": "KZ51 ", 9 | "r": "JA11KZ", 10 | "t": "B748", 11 | "alt_baro": 31996, 12 | "gs": 487.0, 13 | "track": 244.00, 14 | "baro_rate": 48, 15 | "lat": 57.328720, 16 | "lon": -177.562752, 17 | "seen_pos": 873.399, 18 | "messages": 4420465, 19 | "seen": 803.5, 20 | "rssi": -29.2, 21 | "is_spoofed": false 22 | }, 23 | { 24 | "hex": "86d624", 25 | "type": "adsc", 26 | "flight": "ZG23 ", 27 | "r": "JA825J", 28 | "t": "B788", 29 | "alt_baro": 41000, 30 | "gs": 481.0, 31 | "track": 259.00, 32 | "baro_rate": -16, 33 | "lat": 56.712799, 34 | "lon": -176.982708, 35 | "seen_pos": 276.096, 36 | "messages": 2683244, 37 | "seen": 213.6, 38 | "rssi": -20.6, 39 | "is_spoofed": false 40 | }, 41 | { 42 | "hex": "a835c5", 43 | "type": "adsc", 44 | "flight": "UP34 ", 45 | "r": "N628UP", 46 | "t": "B748", 47 | "alt_baro": 34004, 48 | "gs": 485.0, 49 | "track": 218.13, 50 | "baro_rate": 16, 51 | "lat": 2.205334, 52 | "lon": -174.191151, 53 | "seen_pos": 1163.400, 54 | "messages": 4955212, 55 | "seen": 1162.1, 56 | "rssi": -8.5, 57 | "is_spoofed": false 58 | }, 59 | { 60 | "hex": "4d0104", 61 | "type": "adsc", 62 | "flight": "CV4316 ", 63 | "r": "LX-VCD", 64 | "t": "B748", 65 | "alt_baro": 33996, 66 | "gs": 505.0, 67 | "track": 67.42, 68 | "baro_rate": 0, 69 | "lat": 57.335758, 70 | "lon": -173.682518, 71 | "seen_pos": 836.517, 72 | "messages": 6918131, 73 | "seen": 793.4, 74 | "rssi": -24.4, 75 | "is_spoofed": false 76 | }, 77 | { 78 | "hex": "86e4da", 79 | "type": "adsc", 80 | "flight": "JL11 ", 81 | "r": "JA868J", 82 | "t": "B789", 83 | "alt_baro": 38000, 84 | "gs": 494.0, 85 | "track": 258.20, 86 | "baro_rate": 0, 87 | "lat": 58.272343, 88 | "lon": -173.583469, 89 | "seen_pos": 384.799, 90 | "messages": 3366781, 91 | "seen": 333.7, 92 | "rssi": -29.6, 93 | "is_spoofed": false 94 | }, 95 | { 96 | "hex": "71c083", 97 | "type": "adsb_icao", 98 | "flight": "KAL074 ", 99 | "r": "HL8083", 100 | "t": "B789", 101 | "alt_baro": 38000, 102 | "gs": 487.9, 103 | "track": 241.07, 104 | "lat": 61.398605, 105 | "lon": -172.388142, 106 | "seen_pos": 30.917, 107 | "messages": 4267748, 108 | "seen": 19.5, 109 | "rssi": -28.7, 110 | "is_spoofed": false 111 | }, 112 | { 113 | "hex": "76cdb9", 114 | "type": "adsc", 115 | "flight": "SQ31 ", 116 | "r": "9V-SMY", 117 | "t": "A359", 118 | "alt_baro": 37000, 119 | "gs": 507.0, 120 | "track": 259.25, 121 | "baro_rate": 0, 122 | "lat": 31.667919, 123 | "lon": -172.002811, 124 | "seen_pos": 5.538, 125 | "messages": 3753858, 126 | "seen": 4.2, 127 | "rssi": -21.0, 128 | "is_spoofed": false 129 | }, 130 | { 131 | "hex": "7c1479", 132 | "type": "adsc", 133 | "flight": "QF56 ", 134 | "r": "VH-EBV", 135 | "t": "A332", 136 | "alt_baro": 36000, 137 | "gs": 477.0, 138 | "track": 232.29, 139 | "baro_rate": 0, 140 | "lat": 20.039577, 141 | "lon": -170.449963, 142 | "seen_pos": 615.477, 143 | "messages": 2780623, 144 | "seen": 615.5, 145 | "rssi": -21.5, 146 | "is_spoofed": false 147 | }, 148 | { 149 | "hex": "86ebb6", 150 | "type": "adsb_icao", 151 | "flight": "ANA135 ", 152 | "r": "JA886A", 153 | "t": "B789", 154 | "alt_baro": 35975, 155 | "gs": 508.3, 156 | "track": 268.20, 157 | "lat": 58.778811, 158 | "lon": -170.167419, 159 | "seen_pos": 5.589, 160 | "messages": 2127051, 161 | "seen": 3.1, 162 | "rssi": -29.2, 163 | "is_spoofed": false 164 | }, 165 | { 166 | "hex": "abba6c", 167 | "type": "adsc", 168 | "flight": "FX73 ", 169 | "r": "N855FD", 170 | "t": "B77L", 171 | "alt_baro": 34000, 172 | "gs": 474.0, 173 | "track": 210.95, 174 | "baro_rate": 0, 175 | "lat": 2.224903, 176 | "lon": -169.668388, 177 | "seen_pos": 199.170, 178 | "messages": 4882508, 179 | "seen": 133.5, 180 | "rssi": -6.8, 181 | "is_spoofed": false 182 | }, 183 | { 184 | "hex": "7c531d", 185 | "type": "adsc", 186 | "flight": "QF104 ", 187 | "r": "VH-QPB", 188 | "t": "A333", 189 | "alt_baro": 36000, 190 | "gs": 453.0, 191 | "track": 214.54, 192 | "baro_rate": -16, 193 | "lat": 5.316525, 194 | "lon": -169.059849, 195 | "seen_pos": 16.530, 196 | "messages": 3356655, 197 | "seen": 13.3, 198 | "rssi": -8.9, 199 | "is_spoofed": false 200 | }, 201 | { 202 | "hex": "ab271f", 203 | "type": "adsb_icao", 204 | "flight": "AAL61 ", 205 | "r": "N818AL", 206 | "t": "B788", 207 | "alt_baro": 38000, 208 | "gs": 496.9, 209 | "track": 250.36, 210 | "lat": 61.346446, 211 | "lon": -168.022359, 212 | "seen_pos": 3.382, 213 | "messages": 5507422, 214 | "seen": 3.1, 215 | "rssi": -20.0, 216 | "is_spoofed": false 217 | }, 218 | { 219 | "hex": "8694fa", 220 | "type": "adsb_icao", 221 | "flight": "ANA11 ", 222 | "r": "JA792A", 223 | "t": "B77W", 224 | "alt_baro": 32000, 225 | "gs": 508.7, 226 | "track": 250.00, 227 | "baro_rate": 0, 228 | "lat": 60.374621, 229 | "lon": -167.678244, 230 | "seen_pos": 27.223, 231 | "messages": 4186371, 232 | "seen": 27.2, 233 | "rssi": -28.7, 234 | "is_spoofed": false 235 | }, 236 | { 237 | "hex": "ADCF46", 238 | "type": "adsc", 239 | "flight": "R658", 240 | "r": "Y8MZA3", 241 | "t": "IL96", 242 | "alt_baro": 14981, 243 | "gs": 992, 244 | "track": 329, 245 | "baro_rate": 51.95615563370848, 246 | "lat": -53.140866882222575, 247 | "lon": -176.2820790187022, 248 | "seen_pos": 9, 249 | "messages": 905, 250 | "seen": 547, 251 | "rssi": -33, 252 | "is_spoofed": true 253 | }, 254 | { 255 | "hex": "B49A8B", 256 | "type": "adsc", 257 | "flight": "FEFY", 258 | "r": "39MCTP", 259 | "t": "ERJ145", 260 | "alt_baro": 28624, 261 | "gs": 857, 262 | "track": 58, 263 | "baro_rate": 1120.6695867555136, 264 | "lat": -70.63707032573711, 265 | "lon": 155.43889428300025, 266 | "seen_pos": 22, 267 | "messages": 352, 268 | "seen": 407, 269 | "rssi": -121, 270 | "is_spoofed": true 271 | }, 272 | { 273 | "hex": "B96D38", 274 | "type": "adsc", 275 | "flight": "IMGI", 276 | "r": "F4VWJ7", 277 | "t": "TBM9", 278 | "alt_baro": 18481, 279 | "gs": 777, 280 | "track": 287, 281 | "baro_rate": 529.9607587270998, 282 | "lat": 54.975601877867916, 283 | "lon": 42.73213053117237, 284 | "seen_pos": 26, 285 | "messages": 191, 286 | "seen": 105, 287 | "rssi": -79, 288 | "is_spoofed": true 289 | }, 290 | { 291 | "hex": "E63452", 292 | "type": "adsc", 293 | "flight": "QNYO", 294 | "r": "DP0YEU", 295 | "t": "A340", 296 | "alt_baro": 31991, 297 | "gs": 230, 298 | "track": 256, 299 | "baro_rate": 1158.550622550522, 300 | "lat": 9.09813828203248, 301 | "lon": -27.634067045877345, 302 | "seen_pos": 15, 303 | "messages": 175, 304 | "seen": 913, 305 | "rssi": -60, 306 | "is_spoofed": true 307 | }, 308 | { 309 | "hex": "B9FE57", 310 | "type": "adsc", 311 | "flight": "QLKJ", 312 | "r": "L0H7NV", 313 | "t": "A380", 314 | "alt_baro": 31135, 315 | "gs": 600, 316 | "track": 42, 317 | "baro_rate": -1892.060306911024, 318 | "lat": -4.236108950601334, 319 | "lon": 82.53803360858547, 320 | "seen_pos": 7, 321 | "messages": 477, 322 | "seen": 793, 323 | "rssi": -125, 324 | "is_spoofed": true 325 | }, 326 | { 327 | "hex": "8F79E5", 328 | "type": "adsc", 329 | "flight": "DWP3", 330 | "r": "0TNKZ1", 331 | "t": "A320", 332 | "alt_baro": 16748, 333 | "gs": 482, 334 | "track": 217, 335 | "baro_rate": 1437.5175835079049, 336 | "lat": -58.40100110006055, 337 | "lon": 116.2203850750737, 338 | "seen_pos": 2, 339 | "messages": 857, 340 | "seen": 67, 341 | "rssi": -59, 342 | "is_spoofed": true 343 | }, 344 | { 345 | "hex": "B0BB00", 346 | "type": "adsc", 347 | "flight": "R9E8", 348 | "r": "S8HDCK", 349 | "t": "B737", 350 | "alt_baro": 19137, 351 | "gs": 854, 352 | "track": 296, 353 | "baro_rate": -127.71259099474446, 354 | "lat": -33.70444142432079, 355 | "lon": -133.265091928988, 356 | "seen_pos": 14, 357 | "messages": 658, 358 | "seen": 693, 359 | "rssi": -40, 360 | "is_spoofed": true 361 | } 362 | ] 363 | 364 | } -------------------------------------------------------------------------------- /data/aircraft_spoofed.json: -------------------------------------------------------------------------------- 1 | { 2 | "aircraft": [ 3 | { 4 | "hex": "ADCF46", 5 | "type": "adsc", 6 | "flight": "R658", 7 | "r": "Y8MZA3", 8 | "t": "IL96", 9 | "alt_baro": 14981, 10 | "gs": 992, 11 | "track": 329, 12 | "baro_rate": 51.95615563370848, 13 | "lat": -53.140866882222575, 14 | "lon": -176.2820790187022, 15 | "nic": 0, 16 | "rc": 0, 17 | "seen_pos": 9, 18 | "mlat": [], 19 | "tisb": [], 20 | "messages": 905, 21 | "seen": 547, 22 | "rssi": -33, 23 | "is_spoofed": true 24 | }, 25 | { 26 | "hex": "B49A8B", 27 | "type": "adsc", 28 | "flight": "FEFY", 29 | "r": "39MCTP", 30 | "t": "ERJ145", 31 | "alt_baro": 28624, 32 | "gs": 857, 33 | "track": 58, 34 | "baro_rate": 1120.6695867555136, 35 | "lat": -70.63707032573711, 36 | "lon": 155.43889428300025, 37 | "nic": 0, 38 | "rc": 0, 39 | "seen_pos": 22, 40 | "mlat": [], 41 | "tisb": [], 42 | "messages": 352, 43 | "seen": 407, 44 | "rssi": -121, 45 | "is_spoofed": true 46 | }, 47 | { 48 | "hex": "B96D38", 49 | "type": "adsc", 50 | "flight": "IMGI", 51 | "r": "F4VWJ7", 52 | "t": "TBM9", 53 | "alt_baro": 18481, 54 | "gs": 777, 55 | "track": 287, 56 | "baro_rate": 529.9607587270998, 57 | "lat": 54.975601877867916, 58 | "lon": 42.73213053117237, 59 | "nic": 0, 60 | "rc": 0, 61 | "seen_pos": 26, 62 | "mlat": [], 63 | "tisb": [], 64 | "messages": 191, 65 | "seen": 105, 66 | "rssi": -79, 67 | "is_spoofed": true 68 | }, 69 | { 70 | "hex": "E63452", 71 | "type": "adsc", 72 | "flight": "QNYO", 73 | "r": "DP0YEU", 74 | "t": "A340", 75 | "alt_baro": 31991, 76 | "gs": 230, 77 | "track": 256, 78 | "baro_rate": 1158.550622550522, 79 | "lat": 9.09813828203248, 80 | "lon": -27.634067045877345, 81 | "nic": 0, 82 | "rc": 0, 83 | "seen_pos": 15, 84 | "mlat": [], 85 | "tisb": [], 86 | "messages": 175, 87 | "seen": 913, 88 | "rssi": -60, 89 | "is_spoofed": true 90 | }, 91 | { 92 | "hex": "B9FE57", 93 | "type": "adsc", 94 | "flight": "QLKJ", 95 | "r": "L0H7NV", 96 | "t": "A380", 97 | "alt_baro": 31135, 98 | "gs": 600, 99 | "track": 42, 100 | "baro_rate": -1892.060306911024, 101 | "lat": -4.236108950601334, 102 | "lon": 82.53803360858547, 103 | "nic": 0, 104 | "rc": 0, 105 | "seen_pos": 7, 106 | "mlat": [], 107 | "tisb": [], 108 | "messages": 477, 109 | "seen": 793, 110 | "rssi": -125, 111 | "is_spoofed": true 112 | }, 113 | { 114 | "hex": "8F79E5", 115 | "type": "adsc", 116 | "flight": "DWP3", 117 | "r": "0TNKZ1", 118 | "t": "A320", 119 | "alt_baro": 16748, 120 | "gs": 482, 121 | "track": 217, 122 | "baro_rate": 1437.5175835079049, 123 | "lat": -58.40100110006055, 124 | "lon": 116.2203850750737, 125 | "nic": 0, 126 | "rc": 0, 127 | "seen_pos": 2, 128 | "mlat": [], 129 | "tisb": [], 130 | "messages": 857, 131 | "seen": 67, 132 | "rssi": -59, 133 | "is_spoofed": true 134 | }, 135 | { 136 | "hex": "B0BB00", 137 | "type": "adsc", 138 | "flight": "R9E8", 139 | "r": "S8HDCK", 140 | "t": "B737", 141 | "alt_baro": 19137, 142 | "gs": 854, 143 | "track": 296, 144 | "baro_rate": -127.71259099474446, 145 | "lat": -33.70444142432079, 146 | "lon": -133.265091928988, 147 | "nic": 0, 148 | "rc": 0, 149 | "seen_pos": 14, 150 | "mlat": [], 151 | "tisb": [], 152 | "messages": 658, 153 | "seen": 693, 154 | "rssi": -40, 155 | "is_spoofed": true 156 | }, 157 | { 158 | "hex": "D25EC6", 159 | "type": "adsc", 160 | "flight": "L5TF", 161 | "r": "9BAYFM", 162 | "t": "B767", 163 | "alt_baro": 3818, 164 | "gs": 583, 165 | "track": 202, 166 | "baro_rate": -345.08084792210434, 167 | "lat": -27.02768002026744, 168 | "lon": -174.51480503802466, 169 | "nic": 0, 170 | "rc": 0, 171 | "seen_pos": 16, 172 | "mlat": [], 173 | "tisb": [], 174 | "messages": 642, 175 | "seen": 260, 176 | "rssi": -138, 177 | "is_spoofed": true 178 | }, 179 | { 180 | "hex": "44B4B4", 181 | "type": "adsc", 182 | "flight": "4Y9I", 183 | "r": "H8L2RD", 184 | "t": "F35", 185 | "alt_baro": 1678, 186 | "gs": 766, 187 | "track": 57, 188 | "baro_rate": 181.78840537667838, 189 | "lat": 84.31849691882024, 190 | "lon": -127.98286993054914, 191 | "nic": 0, 192 | "rc": 0, 193 | "seen_pos": 24, 194 | "mlat": [], 195 | "tisb": [], 196 | "messages": 493, 197 | "seen": 282, 198 | "rssi": -159, 199 | "is_spoofed": true 200 | }, 201 | { 202 | "hex": "8921E5", 203 | "type": "adsc", 204 | "flight": "7WFB", 205 | "r": "QA0PEF", 206 | "t": "G650", 207 | "alt_baro": 7325, 208 | "gs": 324, 209 | "track": 11, 210 | "baro_rate": -1405.3161215722766, 211 | "lat": -19.618244142127736, 212 | "lon": -104.36195423053918, 213 | "nic": 0, 214 | "rc": 0, 215 | "seen_pos": 14, 216 | "mlat": [], 217 | "tisb": [], 218 | "messages": 348, 219 | "seen": 159, 220 | "rssi": -243, 221 | "is_spoofed": true 222 | }, 223 | { 224 | "hex": "D2F9D3", 225 | "type": "adsc", 226 | "flight": "PQQG", 227 | "r": "JZK6RU", 228 | "t": "G650", 229 | "alt_baro": 10008, 230 | "gs": 352, 231 | "track": 329, 232 | "baro_rate": 1740.4398243376854, 233 | "lat": -79.34920470985637, 234 | "lon": 120.5477568734484, 235 | "nic": 0, 236 | "rc": 0, 237 | "seen_pos": 16, 238 | "mlat": [], 239 | "tisb": [], 240 | "messages": 15, 241 | "seen": 944, 242 | "rssi": -157, 243 | "is_spoofed": true 244 | }, 245 | { 246 | "hex": "908E48", 247 | "type": "adsc", 248 | "flight": "7FCW", 249 | "r": "51KTPJ", 250 | "t": "C172", 251 | "alt_baro": 32885, 252 | "gs": 750, 253 | "track": 105, 254 | "baro_rate": -1187.4904254666803, 255 | "lat": 37.64339471744303, 256 | "lon": -142.1751194570225, 257 | "nic": 0, 258 | "rc": 0, 259 | "seen_pos": 18, 260 | "mlat": [], 261 | "tisb": [], 262 | "messages": 939, 263 | "seen": 747, 264 | "rssi": -191, 265 | "is_spoofed": true 266 | }, 267 | { 268 | "hex": "C563F3", 269 | "type": "adsc", 270 | "flight": "NCKI", 271 | "r": "WVEL8D", 272 | "t": "ERJ145", 273 | "alt_baro": 27884, 274 | "gs": 882, 275 | "track": 103, 276 | "baro_rate": -358.42602656758595, 277 | "lat": -84.30734092966681, 278 | "lon": -145.45706370112265, 279 | "nic": 0, 280 | "rc": 0, 281 | "seen_pos": 30, 282 | "mlat": [], 283 | "tisb": [], 284 | "messages": 624, 285 | "seen": 780, 286 | "rssi": -18, 287 | "is_spoofed": true 288 | }, 289 | { 290 | "hex": "6D610E", 291 | "type": "adsc", 292 | "flight": "0HYC", 293 | "r": "RAXDSV", 294 | "t": "V50", 295 | "alt_baro": 27694, 296 | "gs": 777, 297 | "track": 314, 298 | "baro_rate": -758.8941505361731, 299 | "lat": 69.4591185015334, 300 | "lon": -58.736257977924, 301 | "nic": 0, 302 | "rc": 0, 303 | "seen_pos": 11, 304 | "mlat": [], 305 | "tisb": [], 306 | "messages": 793, 307 | "seen": 487, 308 | "rssi": -117, 309 | "is_spoofed": true 310 | }, 311 | { 312 | "hex": "C59AB2", 313 | "type": "adsc", 314 | "flight": "98JU", 315 | "r": "A396JE", 316 | "t": "UH60", 317 | "alt_baro": 13733, 318 | "gs": 531, 319 | "track": 193, 320 | "baro_rate": -96.74242581571002, 321 | "lat": -26.104607297305492, 322 | "lon": 55.22126849034464, 323 | "nic": 0, 324 | "rc": 0, 325 | "seen_pos": 5, 326 | "mlat": [], 327 | "tisb": [], 328 | "messages": 415, 329 | "seen": 272, 330 | "rssi": -90, 331 | "is_spoofed": true 332 | }, 333 | { 334 | "hex": "E51C52", 335 | "type": "adsc", 336 | "flight": "WFXH", 337 | "r": "GF92MY", 338 | "t": "Cessna Citation X", 339 | "alt_baro": 27179, 340 | "gs": 128, 341 | "track": 241, 342 | "baro_rate": -623.4248849558401, 343 | "lat": 89.72702163236468, 344 | "lon": 60.43773118503972, 345 | "nic": 0, 346 | "rc": 0, 347 | "seen_pos": 4, 348 | "mlat": [], 349 | "tisb": [], 350 | "messages": 176, 351 | "seen": 759, 352 | "rssi": -138, 353 | "is_spoofed": true 354 | }, 355 | { 356 | "hex": "337D56", 357 | "type": "adsc", 358 | "flight": "2TI8", 359 | "r": "WJVGP3", 360 | "t": "B777", 361 | "alt_baro": 16384, 362 | "gs": 635, 363 | "track": 349, 364 | "baro_rate": -1769.8393416672604, 365 | "lat": 46.41044468542532, 366 | "lon": -35.11638185309354, 367 | "nic": 0, 368 | "rc": 0, 369 | "seen_pos": 4, 370 | "mlat": [], 371 | "tisb": [], 372 | "messages": 809, 373 | "seen": 718, 374 | "rssi": -248, 375 | "is_spoofed": true 376 | }, 377 | { 378 | "hex": "431B77", 379 | "type": "adsc", 380 | "flight": "RLHG", 381 | "r": "NQU4YB", 382 | "t": "A330", 383 | "alt_baro": 680, 384 | "gs": 926, 385 | "track": 300, 386 | "baro_rate": -1532.3074175103684, 387 | "lat": 75.70139811438963, 388 | "lon": -98.31384521657387, 389 | "nic": 0, 390 | "rc": 0, 391 | "seen_pos": 6, 392 | "mlat": [], 393 | "tisb": [], 394 | "messages": 608, 395 | "seen": 234, 396 | "rssi": -169, 397 | "is_spoofed": true 398 | }, 399 | { 400 | "hex": "25E0C9", 401 | "type": "adsc", 402 | "flight": "10CC", 403 | "r": "FXZYMO", 404 | "t": "Jetstream 41", 405 | "alt_baro": 22682, 406 | "gs": 578, 407 | "track": 300, 408 | "baro_rate": -1509.2089648720805, 409 | "lat": 1.4849833049112675, 410 | "lon": 18.55896956914819, 411 | "nic": 0, 412 | "rc": 0, 413 | "seen_pos": 17, 414 | "mlat": [], 415 | "tisb": [], 416 | "messages": 195, 417 | "seen": 847, 418 | "rssi": -23, 419 | "is_spoofed": true 420 | }, 421 | { 422 | "hex": "AD1C9F", 423 | "type": "adsc", 424 | "flight": "H7V1", 425 | "r": "HFYBST", 426 | "t": "XT6", 427 | "alt_baro": 22891, 428 | "gs": 347, 429 | "track": 251, 430 | "baro_rate": -1777.4521727385127, 431 | "lat": 62.980321739913876, 432 | "lon": -16.22979811697155, 433 | "nic": 0, 434 | "rc": 0, 435 | "seen_pos": 0, 436 | "mlat": [], 437 | "tisb": [], 438 | "messages": 121, 439 | "seen": 267, 440 | "rssi": -76, 441 | "is_spoofed": true 442 | } 443 | ] 444 | } -------------------------------------------------------------------------------- /ADS-B Spoof Detector.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 4, 6 | "id": "e2b922ee", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "# ADS-B Spoof Detector \n", 11 | "# Created by Angelina Tsuboi" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 12, 17 | "id": "243d62b5", 18 | "metadata": { 19 | "scrolled": true 20 | }, 21 | "outputs": [], 22 | "source": [ 23 | "# Imports\n", 24 | "import json\n", 25 | "import csv\n", 26 | "import random\n", 27 | "import string\n", 28 | "import numpy as np\n", 29 | "import keras\n", 30 | "from keras.models import Sequential\n", 31 | "from keras.layers import Dense, Dropout, Flatten\n", 32 | "from keras.layers.convolutional import Conv2D\n", 33 | "from keras.layers import Dense\n", 34 | "from keras.layers.convolutional import MaxPooling2D\n", 35 | "from keras.layers import Flatten\n", 36 | "from sklearn.preprocessing import StandardScaler\n", 37 | "# from keras.layers import Conv2D, MaxPooling2D\n", 38 | "# from keras.utils import to_categorical" 39 | ] 40 | }, 41 | { 42 | "cell_type": "code", 43 | "execution_count": 3, 44 | "id": "c5f9f7a1", 45 | "metadata": {}, 46 | "outputs": [ 47 | { 48 | "name": "stdout", 49 | "output_type": "stream", 50 | "text": [ 51 | "Spoofed aircraft: [{'hex': 'ADCF46', 'type': 'adsc', 'flight': 'R658', 'r': 'Y8MZA3', 't': 'IL96', 'alt_baro': 14981, 'gs': 992, 'track': 329, 'baro_rate': 51.95615563370848, 'lat': -53.140866882222575, 'lon': -176.2820790187022, 'nic': 0, 'rc': 0, 'seen_pos': 9, 'mlat': [], 'tisb': [], 'messages': 905, 'seen': 547, 'rssi': -33, 'is_spoofed': True}, {'hex': 'B49A8B', 'type': 'adsc', 'flight': 'FEFY', 'r': '39MCTP', 't': 'ERJ145', 'alt_baro': 28624, 'gs': 857, 'track': 58, 'baro_rate': 1120.6695867555136, 'lat': -70.63707032573711, 'lon': 155.43889428300025, 'nic': 0, 'rc': 0, 'seen_pos': 22, 'mlat': [], 'tisb': [], 'messages': 352, 'seen': 407, 'rssi': -121, 'is_spoofed': True}, {'hex': 'B96D38', 'type': 'adsc', 'flight': 'IMGI', 'r': 'F4VWJ7', 't': 'TBM9', 'alt_baro': 18481, 'gs': 777, 'track': 287, 'baro_rate': 529.9607587270998, 'lat': 54.975601877867916, 'lon': 42.73213053117237, 'nic': 0, 'rc': 0, 'seen_pos': 26, 'mlat': [], 'tisb': [], 'messages': 191, 'seen': 105, 'rssi': -79, 'is_spoofed': True}, {'hex': 'E63452', 'type': 'adsc', 'flight': 'QNYO', 'r': 'DP0YEU', 't': 'A340', 'alt_baro': 31991, 'gs': 230, 'track': 256, 'baro_rate': 1158.550622550522, 'lat': 9.09813828203248, 'lon': -27.634067045877345, 'nic': 0, 'rc': 0, 'seen_pos': 15, 'mlat': [], 'tisb': [], 'messages': 175, 'seen': 913, 'rssi': -60, 'is_spoofed': True}, {'hex': 'B9FE57', 'type': 'adsc', 'flight': 'QLKJ', 'r': 'L0H7NV', 't': 'A380', 'alt_baro': 31135, 'gs': 600, 'track': 42, 'baro_rate': -1892.060306911024, 'lat': -4.236108950601334, 'lon': 82.53803360858547, 'nic': 0, 'rc': 0, 'seen_pos': 7, 'mlat': [], 'tisb': [], 'messages': 477, 'seen': 793, 'rssi': -125, 'is_spoofed': True}, {'hex': '8F79E5', 'type': 'adsc', 'flight': 'DWP3', 'r': '0TNKZ1', 't': 'A320', 'alt_baro': 16748, 'gs': 482, 'track': 217, 'baro_rate': 1437.5175835079049, 'lat': -58.40100110006055, 'lon': 116.2203850750737, 'nic': 0, 'rc': 0, 'seen_pos': 2, 'mlat': [], 'tisb': [], 'messages': 857, 'seen': 67, 'rssi': -59, 'is_spoofed': True}, {'hex': 'B0BB00', 'type': 'adsc', 'flight': 'R9E8', 'r': 'S8HDCK', 't': 'B737', 'alt_baro': 19137, 'gs': 854, 'track': 296, 'baro_rate': -127.71259099474446, 'lat': -33.70444142432079, 'lon': -133.265091928988, 'nic': 0, 'rc': 0, 'seen_pos': 14, 'mlat': [], 'tisb': [], 'messages': 658, 'seen': 693, 'rssi': -40, 'is_spoofed': True}, {'hex': 'D25EC6', 'type': 'adsc', 'flight': 'L5TF', 'r': '9BAYFM', 't': 'B767', 'alt_baro': 3818, 'gs': 583, 'track': 202, 'baro_rate': -345.08084792210434, 'lat': -27.02768002026744, 'lon': -174.51480503802466, 'nic': 0, 'rc': 0, 'seen_pos': 16, 'mlat': [], 'tisb': [], 'messages': 642, 'seen': 260, 'rssi': -138, 'is_spoofed': True}, {'hex': '44B4B4', 'type': 'adsc', 'flight': '4Y9I', 'r': 'H8L2RD', 't': 'F35', 'alt_baro': 1678, 'gs': 766, 'track': 57, 'baro_rate': 181.78840537667838, 'lat': 84.31849691882024, 'lon': -127.98286993054914, 'nic': 0, 'rc': 0, 'seen_pos': 24, 'mlat': [], 'tisb': [], 'messages': 493, 'seen': 282, 'rssi': -159, 'is_spoofed': True}, {'hex': '8921E5', 'type': 'adsc', 'flight': '7WFB', 'r': 'QA0PEF', 't': 'G650', 'alt_baro': 7325, 'gs': 324, 'track': 11, 'baro_rate': -1405.3161215722766, 'lat': -19.618244142127736, 'lon': -104.36195423053918, 'nic': 0, 'rc': 0, 'seen_pos': 14, 'mlat': [], 'tisb': [], 'messages': 348, 'seen': 159, 'rssi': -243, 'is_spoofed': True}, {'hex': 'D2F9D3', 'type': 'adsc', 'flight': 'PQQG', 'r': 'JZK6RU', 't': 'G650', 'alt_baro': 10008, 'gs': 352, 'track': 329, 'baro_rate': 1740.4398243376854, 'lat': -79.34920470985637, 'lon': 120.5477568734484, 'nic': 0, 'rc': 0, 'seen_pos': 16, 'mlat': [], 'tisb': [], 'messages': 15, 'seen': 944, 'rssi': -157, 'is_spoofed': True}, {'hex': '908E48', 'type': 'adsc', 'flight': '7FCW', 'r': '51KTPJ', 't': 'C172', 'alt_baro': 32885, 'gs': 750, 'track': 105, 'baro_rate': -1187.4904254666803, 'lat': 37.64339471744303, 'lon': -142.1751194570225, 'nic': 0, 'rc': 0, 'seen_pos': 18, 'mlat': [], 'tisb': [], 'messages': 939, 'seen': 747, 'rssi': -191, 'is_spoofed': True}, {'hex': 'C563F3', 'type': 'adsc', 'flight': 'NCKI', 'r': 'WVEL8D', 't': 'ERJ145', 'alt_baro': 27884, 'gs': 882, 'track': 103, 'baro_rate': -358.42602656758595, 'lat': -84.30734092966681, 'lon': -145.45706370112265, 'nic': 0, 'rc': 0, 'seen_pos': 30, 'mlat': [], 'tisb': [], 'messages': 624, 'seen': 780, 'rssi': -18, 'is_spoofed': True}, {'hex': '6D610E', 'type': 'adsc', 'flight': '0HYC', 'r': 'RAXDSV', 't': 'V50', 'alt_baro': 27694, 'gs': 777, 'track': 314, 'baro_rate': -758.8941505361731, 'lat': 69.4591185015334, 'lon': -58.736257977924, 'nic': 0, 'rc': 0, 'seen_pos': 11, 'mlat': [], 'tisb': [], 'messages': 793, 'seen': 487, 'rssi': -117, 'is_spoofed': True}, {'hex': 'C59AB2', 'type': 'adsc', 'flight': '98JU', 'r': 'A396JE', 't': 'UH60', 'alt_baro': 13733, 'gs': 531, 'track': 193, 'baro_rate': -96.74242581571002, 'lat': -26.104607297305492, 'lon': 55.22126849034464, 'nic': 0, 'rc': 0, 'seen_pos': 5, 'mlat': [], 'tisb': [], 'messages': 415, 'seen': 272, 'rssi': -90, 'is_spoofed': True}, {'hex': 'E51C52', 'type': 'adsc', 'flight': 'WFXH', 'r': 'GF92MY', 't': 'Cessna Citation X', 'alt_baro': 27179, 'gs': 128, 'track': 241, 'baro_rate': -623.4248849558401, 'lat': 89.72702163236468, 'lon': 60.43773118503972, 'nic': 0, 'rc': 0, 'seen_pos': 4, 'mlat': [], 'tisb': [], 'messages': 176, 'seen': 759, 'rssi': -138, 'is_spoofed': True}, {'hex': '337D56', 'type': 'adsc', 'flight': '2TI8', 'r': 'WJVGP3', 't': 'B777', 'alt_baro': 16384, 'gs': 635, 'track': 349, 'baro_rate': -1769.8393416672604, 'lat': 46.41044468542532, 'lon': -35.11638185309354, 'nic': 0, 'rc': 0, 'seen_pos': 4, 'mlat': [], 'tisb': [], 'messages': 809, 'seen': 718, 'rssi': -248, 'is_spoofed': True}, {'hex': '431B77', 'type': 'adsc', 'flight': 'RLHG', 'r': 'NQU4YB', 't': 'A330', 'alt_baro': 680, 'gs': 926, 'track': 300, 'baro_rate': -1532.3074175103684, 'lat': 75.70139811438963, 'lon': -98.31384521657387, 'nic': 0, 'rc': 0, 'seen_pos': 6, 'mlat': [], 'tisb': [], 'messages': 608, 'seen': 234, 'rssi': -169, 'is_spoofed': True}, {'hex': '25E0C9', 'type': 'adsc', 'flight': '10CC', 'r': 'FXZYMO', 't': 'Jetstream 41', 'alt_baro': 22682, 'gs': 578, 'track': 300, 'baro_rate': -1509.2089648720805, 'lat': 1.4849833049112675, 'lon': 18.55896956914819, 'nic': 0, 'rc': 0, 'seen_pos': 17, 'mlat': [], 'tisb': [], 'messages': 195, 'seen': 847, 'rssi': -23, 'is_spoofed': True}, {'hex': 'AD1C9F', 'type': 'adsc', 'flight': 'H7V1', 'r': 'HFYBST', 't': 'XT6', 'alt_baro': 22891, 'gs': 347, 'track': 251, 'baro_rate': -1777.4521727385127, 'lat': 62.980321739913876, 'lon': -16.22979811697155, 'nic': 0, 'rc': 0, 'seen_pos': 0, 'mlat': [], 'tisb': [], 'messages': 121, 'seen': 267, 'rssi': -76, 'is_spoofed': True}]\n", 52 | "Wrote Spoofed Data into data/aircraft_spoofed.json!\n" 53 | ] 54 | } 55 | ], 56 | "source": [ 57 | "# Script for Generating Random Spoofed Aircraft\n", 58 | "def generate_registration_id():\n", 59 | " # create a list of possible characters for the registration ID\n", 60 | " characters = list(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\")\n", 61 | " # shuffle the list of characters\n", 62 | " random.shuffle(characters)\n", 63 | " # take the first 3 characters as the prefix\n", 64 | " prefix = \"\".join(characters[:3])\n", 65 | " # take the next 3 characters as the suffix\n", 66 | " suffix = \"\".join(characters[3:6])\n", 67 | " # return the concatenated prefix and suffix as the registration ID\n", 68 | " return prefix + suffix\n", 69 | "\n", 70 | "def generate_aircraft_type():\n", 71 | " # create a list of possible aircraft types\n", 72 | " aircraft_types = [\n", 73 | " \"A320\", \"A321\", \"A330\", \"A340\", \"A350\", \"A380\",\n", 74 | " \"B737\", \"B747\", \"B757\", \"B767\", \"B777\", \"B787\",\n", 75 | " \"C172\", \"C208\", \"Cessna Citation X\",\n", 76 | " \"DHC6\", \"DHC8\",\n", 77 | " \"ERJ145\", \"ERJ170\", \"ERJ190\",\n", 78 | " \"F22\", \"F35\", \"F16\", \"F18\",\n", 79 | " \"G650\",\n", 80 | " \"HA4T\",\n", 81 | " \"IL76\", \"IL96\",\n", 82 | " \"JS41\", \"Jetstream 41\",\n", 83 | " \"MD11\", \"MD80\", \"MD90\",\n", 84 | " \"P180\", \"P2006T\",\n", 85 | " \"Q400\", \"Q400X\",\n", 86 | " \"RJ100\", \"RJ85\",\n", 87 | " \"S76\", \"S92\",\n", 88 | " \"TBM9\", \"TBM9\",\n", 89 | " \"UH1\", \"UH60\",\n", 90 | " \"V22\", \"V35\", \"V50\",\n", 91 | " \"XCub\", \"XT6\",\n", 92 | " \"Yak40\", \"Yak52\",\n", 93 | " \"Zlin\", \"Zlin242\"\n", 94 | " ]\n", 95 | " # return a random aircraft type from the list\n", 96 | " return random.choice(aircraft_types)\n", 97 | "\n", 98 | "def generate_spoofed_aircraft(n):\n", 99 | " # create a list of spoofed aircraft objects\n", 100 | " # reference: https://www.adsbexchange.com/version-2-api-wip/\n", 101 | " spoofed_aircraft = []\n", 102 | " for i in range(n):\n", 103 | " hex = ''.join(random.choices('0123456789ABCDEF', k=6))\n", 104 | " flight = ''.join(random.choices(string.ascii_uppercase + string.digits, k=4))\n", 105 | " lat = random.uniform(-90, 90)\n", 106 | " type_aircraft = generate_aircraft_type()\n", 107 | " aircraft_reg = generate_registration_id()\n", 108 | " lon = random.uniform(-180, 180)\n", 109 | " alt = random.randint(0, 40000)\n", 110 | " spd = random.randint(0, 1000)\n", 111 | " gs = random.randint(0, 1000)\n", 112 | " seen_pos = random.randint(0, 30)\n", 113 | " trk = random.randint(0, 360)\n", 114 | " baro_rate = random.uniform(-2000, 2000)\n", 115 | " vrt = random.randint(-1000, 1000)\n", 116 | " msgs = random.randint(0, 1000)\n", 117 | " seen = random.randint(0, 1000)\n", 118 | " rssi = random.randint(-255,0)\n", 119 | " spoofed_aircraft.append({\"hex\": hex, \"type\":\"adsc\", \"flight\": flight, \"r\": aircraft_reg, \"t\": type_aircraft, \"alt_baro\": alt, \"gs\": gs, \"track\": trk, \"baro_rate\": baro_rate, \"lat\": lat, \"lon\": lon, \"nic\":0, \"rc\":0, \"seen_pos\": seen_pos,\"mlat\":[],\"tisb\":[],\"messages\": msgs, \"seen\": seen, \"rssi\": rssi, \"is_spoofed\": True})\n", 120 | "\n", 121 | " # return the json array\n", 122 | " return spoofed_aircraft\n", 123 | "\n", 124 | "# Insert 20 Spoofed Aircraft\n", 125 | "with open('data/aircraft_spoofed.json', 'w') as json_file:\n", 126 | " spoofed_aircraft = generate_spoofed_aircraft(20)\n", 127 | " print(\"Spoofed aircraft: \", spoofed_aircraft)\n", 128 | " json.dump({\"aircraft\": spoofed_aircraft}, json_file)\n", 129 | " print(\"Wrote Spoofed Data into data/aircraft_spoofed.json!\")" 130 | ] 131 | }, 132 | { 133 | "cell_type": "code", 134 | "execution_count": 30, 135 | "id": "16c877b8", 136 | "metadata": {}, 137 | "outputs": [], 138 | "source": [ 139 | "# Conversion from JSON (raw data given by dump1090 to CSV which is more interpretable by network)\n", 140 | "# First interpret valid ADSB data then spoofed dataset\n", 141 | "\n", 142 | "# Valid data parsing first\n", 143 | "with open('data/aircraft_valid.json') as json_file:\n", 144 | " data_valid = json.load(json_file)\n", 145 | " \n", 146 | "# Parse spoofed data\n", 147 | "with open('data/aircraft_spoofed.json') as json_file:\n", 148 | " data_spoofed = json.load(json_file)\n", 149 | " \n", 150 | "aircraft_data_valid = data_valid['aircraft']\n", 151 | "aircraft_data_spoofed = data_spoofed['aircraft']\n", 152 | " \n", 153 | "# now we will open a file for writing\n", 154 | "data_file = open('data/aircraft_data.csv', 'w')\n", 155 | " \n", 156 | "# create the csv writer object\n", 157 | "csv_writer = csv.writer(data_file)\n", 158 | " \n", 159 | "# Counter variable used for writing\n", 160 | "# headers to the CSV file\n", 161 | "count = 0\n", 162 | " \n", 163 | "for aircraft in aircraft_data_valid:\n", 164 | " aircraft['is_spoofed'] = False\n", 165 | " if count == 0:\n", 166 | " # Writing headers of CSV file\n", 167 | " csv_writer.writerow([\"hex\",\"type\",\"flight\",\"r\",\"t\",\"alt_baro\",\"gs\",\"track\",\"baro_rate\",\"lat\",\"lon\",\"nic\",\"rc\",\"seen_pos\",\"mlat\",\"tisb\",\"messages\",\"seen\",\"rssi\",\"is_spoofed\"])\n", 168 | " count += 1\n", 169 | " \n", 170 | " # Writing data of CSV file\n", 171 | " csv_writer.writerow([aircraft.get('hex'), aircraft.get('type'), aircraft.get('flight'), aircraft.get('r'), aircraft.get('t'), aircraft.get('alt_baro'), aircraft.get('gs'), aircraft.get('track'), aircraft.get('baro_rate'), aircraft.get('lat'), aircraft.get('lon'), aircraft.get('nic'), aircraft.get('rc'), aircraft.get('seen_pos'), aircraft.get('mlat'), aircraft.get('tisb'), aircraft.get('messages'), aircraft.get('seen'), aircraft.get('rssi'), False])\n", 172 | "\n", 173 | "for aircraft in aircraft_data_spoofed:\n", 174 | " aircraft['is_spoofed'] = True\n", 175 | " # Writing data of CSV file\n", 176 | " csv_writer.writerow(aircraft.values())\n", 177 | " \n", 178 | "data_file.close()" 179 | ] 180 | }, 181 | { 182 | "cell_type": "code", 183 | "execution_count": 16, 184 | "id": "180bd853", 185 | "metadata": {}, 186 | "outputs": [ 187 | { 188 | "ename": "NameError", 189 | "evalue": "name 'to_categorical' is not defined", 190 | "output_type": "error", 191 | "traceback": [ 192 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 193 | "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", 194 | "Cell \u001b[0;32mIn[16], line 43\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m features, labels\n\u001b[1;32m 42\u001b[0m \u001b[38;5;66;03m# Example usage\u001b[39;00m\n\u001b[0;32m---> 43\u001b[0m x_train, y_train \u001b[38;5;241m=\u001b[39m \u001b[43mprocess_json\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata/aircraft_spoofed.json\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 44\u001b[0m \u001b[38;5;28mprint\u001b[39m(x_train)\n", 195 | "Cell \u001b[0;32mIn[16], line 37\u001b[0m, in \u001b[0;36mprocess_json\u001b[0;34m(json_file)\u001b[0m\n\u001b[1;32m 34\u001b[0m features \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mreshape(features, (features\u001b[38;5;241m.\u001b[39mshape[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;241m1\u001b[39m, features\u001b[38;5;241m.\u001b[39mshape[\u001b[38;5;241m1\u001b[39m]))\n\u001b[1;32m 36\u001b[0m \u001b[38;5;66;03m# Convert the labels to categorical format\u001b[39;00m\n\u001b[0;32m---> 37\u001b[0m labels \u001b[38;5;241m=\u001b[39m \u001b[43mto_categorical\u001b[49m(labels)\n\u001b[1;32m 39\u001b[0m \u001b[38;5;66;03m# Return the processed data\u001b[39;00m\n\u001b[1;32m 40\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m features, labels\n", 196 | "\u001b[0;31mNameError\u001b[0m: name 'to_categorical' is not defined" 197 | ] 198 | } 199 | ], 200 | "source": [ 201 | "# TODO: \n", 202 | "# {\n", 203 | "# {\n", 204 | "# \"name\": \"HGD\",\n", 205 | "# \"altitude\": 400,\n", 206 | "# \"long\": 45,\n", 207 | "# \"lat\": 4\n", 208 | "# },\n", 209 | "# {\n", 210 | "# \"name\": \"HGD\",\n", 211 | "# \"altitude\": 600,\n", 212 | "# \"long\": 50,\n", 213 | "# \"lat\": 5\n", 214 | "# },\n", 215 | "# ...\n", 216 | "# }\n", 217 | "def process_json(json_file):\n", 218 | " # Load the JSON data\n", 219 | " with open(json_file) as f:\n", 220 | " data = json.load(f)\n", 221 | "\n", 222 | " # Extract the features and labels from the JSON data\n", 223 | " features = []\n", 224 | " labels = []\n", 225 | " for transmission in data['aircraft']:\n", 226 | " features.append([transmission['rssi']])\n", 227 | " labels.append(transmission['flight'])\n", 228 | " \n", 229 | " # Normalize the features using StandardScaler\n", 230 | " scaler = StandardScaler()\n", 231 | " features = scaler.fit_transform(features)\n", 232 | "\n", 233 | " # Reshape the data to match the input format of the model\n", 234 | " features = np.reshape(features, (features.shape[0], 1, features.shape[1]))\n", 235 | "\n", 236 | " # Convert the labels to categorical format\n", 237 | " labels = to_categorical(labels)\n", 238 | "\n", 239 | " # Return the processed data\n", 240 | " return features, labels\n", 241 | "\n", 242 | "# Example usage\n", 243 | "x_train, y_train = process_json(\"data/aircraft_spoofed.json\")\n", 244 | "print(x_train)" 245 | ] 246 | }, 247 | { 248 | "cell_type": "code", 249 | "execution_count": 5, 250 | "id": "6d0f81bc", 251 | "metadata": {}, 252 | "outputs": [], 253 | "source": [ 254 | "# Prepare Dataset to be Placed into Neural Network\n", 255 | "# Split into Training and Testing Sets" 256 | ] 257 | }, 258 | { 259 | "cell_type": "code", 260 | "execution_count": 10, 261 | "id": "b0bf5de8", 262 | "metadata": {}, 263 | "outputs": [ 264 | { 265 | "ename": "NameError", 266 | "evalue": "name 'x_train' is not defined", 267 | "output_type": "error", 268 | "traceback": [ 269 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 270 | "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", 271 | "Cell \u001b[0;32mIn[10], line 16\u001b[0m\n\u001b[1;32m 13\u001b[0m model\u001b[38;5;241m.\u001b[39mcompile(loss\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcategorical_crossentropy\u001b[39m\u001b[38;5;124m'\u001b[39m, optimizer\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124madam\u001b[39m\u001b[38;5;124m'\u001b[39m, metrics\u001b[38;5;241m=\u001b[39m[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maccuracy\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[1;32m 15\u001b[0m \u001b[38;5;66;03m# Train the model on the training data\u001b[39;00m\n\u001b[0;32m---> 16\u001b[0m model\u001b[38;5;241m.\u001b[39mfit(\u001b[43mx_train\u001b[49m, y_train, epochs\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m10\u001b[39m, batch_size\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m32\u001b[39m)\n\u001b[1;32m 18\u001b[0m \u001b[38;5;66;03m# Evaluate the model on the test data\u001b[39;00m\n\u001b[1;32m 19\u001b[0m test_loss, test_acc \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mevaluate(x_test, y_test)\n", 272 | "\u001b[0;31mNameError\u001b[0m: name 'x_train' is not defined" 273 | ] 274 | } 275 | ], 276 | "source": [ 277 | "# CNN Architecture\n", 278 | "model = Sequential()\n", 279 | "model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)))\n", 280 | "model.add(MaxPooling2D(pool_size=(2, 2)))\n", 281 | "model.add(Conv2D(64, kernel_size=(3, 3), activation='relu'))\n", 282 | "model.add(MaxPooling2D(pool_size=(2, 2)))\n", 283 | "model.add(Flatten())\n", 284 | "model.add(Dense(128, activation='relu'))\n", 285 | "model.add(Dropout(0.5))\n", 286 | "model.add(Dense(2, activation='softmax'))\n", 287 | "\n", 288 | "# Compile the model\n", 289 | "model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n", 290 | "\n", 291 | "# Train the model on the training data\n", 292 | "model.fit(x_train, y_train, epochs=10, batch_size=32)\n", 293 | "\n", 294 | "# Evaluate the model on the test data\n", 295 | "test_loss, test_acc = model.evaluate(x_test, y_test)\n", 296 | "print('Test accuracy:', test_acc)\n", 297 | "\n", 298 | "# Use the model to classify new ADSB data\n", 299 | "predictions = model.predict(x_new)" 300 | ] 301 | }, 302 | { 303 | "cell_type": "code", 304 | "execution_count": null, 305 | "id": "b7209d4f", 306 | "metadata": {}, 307 | "outputs": [], 308 | "source": [ 309 | "# Show location of spoofed aircraft with Folium" 310 | ] 311 | }, 312 | { 313 | "cell_type": "code", 314 | "execution_count": 28, 315 | "id": "fb9e58c2", 316 | "metadata": {}, 317 | "outputs": [ 318 | { 319 | "data": { 320 | "image/png": "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\n", 321 | "text/plain": [ 322 | "
" 323 | ] 324 | }, 325 | "metadata": {}, 326 | "output_type": "display_data" 327 | } 328 | ], 329 | "source": [ 330 | "import matplotlib.pyplot as plt\n", 331 | "import numpy as np\n", 332 | "\n", 333 | "# Generate dummy data for the accuracy curve\n", 334 | "accuracy = np.linspace(0.5, 0.925, num=100)\n", 335 | "epochs = np.linspace(1, 100, num=100)\n", 336 | "\n", 337 | "# Generate dummy data for additional metrics\n", 338 | "precision = np.random.uniform(low=0.8, high=0.95, size=100)\n", 339 | "recall = np.random.uniform(low=0.7, high=0.9, size=100)\n", 340 | "f1_score = np.random.uniform(low=0.75, high=0.925, size=100)\n", 341 | "\n", 342 | "# Plot the accuracy curve\n", 343 | "plt.plot(epochs, accuracy, label=\"Accuracy\")\n", 344 | "\n", 345 | "# Plot additional metrics on the same graph\n", 346 | "plt.plot(epochs, precision, label=\"Precision\")\n", 347 | "plt.plot(epochs, recall, label=\"Recall\")\n", 348 | "plt.plot(epochs, f1_score, label=\"F1 Score\")\n", 349 | "\n", 350 | "# Add axis labels and a legend\n", 351 | "plt.xlabel(\"Epochs\")\n", 352 | "plt.ylabel(\"Score\")\n", 353 | "plt.legend()\n", 354 | "\n", 355 | "# Show the graph\n", 356 | "plt.show()\n" 357 | ] 358 | }, 359 | { 360 | "cell_type": "code", 361 | "execution_count": null, 362 | "id": "78c39cc2", 363 | "metadata": {}, 364 | "outputs": [], 365 | "source": [ 366 | "# Generate ROC Curve\n", 367 | "import numpy as np\n", 368 | "import matplotlib.pyplot as plt\n", 369 | "from sklearn.metrics import roc_curve, auc\n", 370 | "\n", 371 | "# Assume y_test contains the true labels and y_pred contains the predicted probabilities\n", 372 | "fpr, tpr, thresholds = roc_curve(y_test, y_pred)\n", 373 | "roc_auc = auc(fpr, tpr)\n", 374 | "\n", 375 | "# Plot the ROC curve\n", 376 | "plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)\n", 377 | "plt.plot([0, 1], [0, 1], 'k--') # plot the diagonal line\n", 378 | "plt.xlabel('False Positive Rate')\n", 379 | "plt.ylabel('True Positive Rate')\n", 380 | "plt.title('Receiver Operating Characteristic Curve')\n", 381 | "plt.legend(loc=\"lower right\")\n", 382 | "plt.show()" 383 | ] 384 | }, 385 | { 386 | "cell_type": "code", 387 | "execution_count": null, 388 | "id": "4050db9e", 389 | "metadata": {}, 390 | "outputs": [], 391 | "source": [ 392 | "# More Information and References\n", 393 | "# Reference dump1090 README:\n", 394 | "# https://github.com/SDRplay/dump1090/blob/master/README-json.md\n", 395 | "# Label = Spoofed or Not (Binary Classification)\n", 396 | "# Data samples from Flight Aware and ADSB Exchange\n", 397 | "# https://www.adsbexchange.com/data-samples/\n", 398 | "# https://samples.adsbexchange.com/readsb-hist/2022/05/01/\n", 399 | "# https://www.adsbexchange.com/version-2-api-wip/\n", 400 | "# https://elmwoodelectronics.ca/blogs/news/tracking-and-logging-flights-with-ads-b-flight-aware-and-raspberry-pi ****\n", 401 | "# https://ieeexplore.ieee.org/document/9377975\n", 402 | "# https://www.adsbexchange.com/version-2-api-wip/" 403 | ] 404 | } 405 | ], 406 | "metadata": { 407 | "kernelspec": { 408 | "display_name": "Python 3 (ipykernel)", 409 | "language": "python", 410 | "name": "python3" 411 | }, 412 | "language_info": { 413 | "codemirror_mode": { 414 | "name": "ipython", 415 | "version": 3 416 | }, 417 | "file_extension": ".py", 418 | "mimetype": "text/x-python", 419 | "name": "python", 420 | "nbconvert_exporter": "python", 421 | "pygments_lexer": "ipython3", 422 | "version": "3.9.13" 423 | } 424 | }, 425 | "nbformat": 4, 426 | "nbformat_minor": 5 427 | } 428 | --------------------------------------------------------------------------------