--- license: cc-by-nc-nd-4.0 language: - en - de tags: - automotive - IDS - CAN - CANIDS - AutomotiveSecurity - Cybersecurity --- # CANDefender – Fuzzy Attack Detection Model **Model Summary** This model detects **Fuzzy attacks** on the CAN bus. It was trained on **4.73 million** real CAN frames, including normal data and Fuzzy-labeled data. The model uses an LSTM architecture that processes the CAN ID and 8-byte payload to classify each frame as either “Fuzzy” or “Normal.” --- ## Performance **Test Accuracy**: ~94.09% **Confusion Matrix** (Fuzzy vs. Normal): | True \ Pred | Fuzzy (pred) | Normal (pred) | |:-----------:|:-------------:|:-------------:| | **Fuzzy** | 3,737,645 | 13,379 | | **Normal** | 266,808 | 722,063 | - **Recall (Fuzzy)**: ~99.6% (very few Fuzzy frames missed) - **Recall (Normal)**: ~73% (about 27% false positives on Normal) --- ## Intended Use - **Goal**: Real-time detection of **Fuzzy attacks** on the CAN bus. - **Limitations**: - Focused on Fuzzy vs. Normal classification only (other attacks handled in separate models). - Tends to misclassify ~27% of normal frames as Fuzzy (relatively high false alarms). --- ## How to Use ```python import torch import numpy as np from can_defender_fuzzy import CANLSTM # Adjust import name # Example frame => [CAN_ID, b0..b7] frame = [0x315, 0x12, 0x4F, 0xA2, 0x00, 0x00, 0x78, 0x1C, 0xAA] x_np = np.array(frame, dtype=np.float32).reshape(1,1,9) model = CANLSTM(input_dim=9, hidden_dim=64, num_classes=2) model.load_state_dict(torch.load("can_lstm_model_final.pt")) model.eval() with torch.no_grad(): logits = model(torch.from_numpy(x_np)) pred = torch.argmax(logits, dim=1).item() print("Prediction:", "Fuzzy" if pred == 0 else "Normal") ``` ## Training Configuration - Architecture: LSTM (64 hidden units), final linear layer → 2 classes (Fuzzy vs. Normal) - Optimizer: Adam (lr=1e-3) - Epochs: ~30 (stopped once performance stabilized) - Dataset: 4.73 million CAN frames ## Limitations & Next Steps - False Positives: ~27% of normal frames get labeled as Fuzzy. Acceptable for high-sensitivity scenarios, but can be improved (weighted loss, time-window approach, etc.). - Scope: Only focuses on Fuzzy detection. Other attacks (DoS, Gear, RPM) are separate. # Potential Enhancements: - Weighted training or additional features (delta-time, frequency) - Window-based LSTM or transformers for sequence data ## License & Contact - License: cc-by-nc-nd-4.0 - Author: Keyvan Hardani - Contact: https://www.linkedin.com/in/keyvanhardani/