CISPA Machine Learning in Cybersecurity tutorialsο
π Course Informationο
β
βοΈ How to Run the Notebooksο
The website hosts HTML-exported versions of the notebooks for convenient reading on any device. However, we encourage you to run them yourself to gain hands-on experience. You can do this in three main ways:
π₯οΈ Run Locally (CPU)ο
All notebooks are available in this GitHub repository. You can also find them here: π GitHub repository
Designed to run on standard laptops (no GPU required).
βοΈ Google Colabο
Prefer to use a hosted environment or want GPU support? Use [Google Colab](https://colab.research.google.com/notebooks/intro.ipynb#recent=true).
Each notebook includes a βRun in Colabβ badge on the documentation website.
Enable GPU support via: Runtime β Change runtime type β GPU.
β
π§ Tutorial Lessonsο
The Exercise Schedule (below) lists the practical/tutorial sessions associated with the course tutorials. The sessions will take place in CISPA Lecture Hall, Stuhlsatzenhaus 5.
Change of Location for the Second Tutorial β Now in CISPA Lecture Hall, Stuhlsatzenhaus 5
Date |
Time |
Topic |
|---|---|---|
29.10.2025 |
16:15-17:45 |
Tutorial: ML Basics / Setup |
05.11.2025 |
16:15-17:45 |
Q&A: ML Basics |
12.11.2025 |
16:15-17:45 |
Introduction Ex1: Train ML IDS |
03.12.2025 |
16:15-17:45 |
Ex1 Review: Train ML IDS |
10.12.2025 |
16:15-17:45 |
Introduction Ex2: Evade ML IDS |
07.01.2026 |
16:15-17:45 |
Ex2 Review: Evade ML IDS |
14.01.2026 |
16:15-17:45 |
Introduction Ex3: AI for CTF |
04.02.2026 |
16:15-17:45 |
Ex3 Review: AI for CTF |
π¬ Submit your questions [here](https://forms.gle/enzD3i6yjbAFJaya6) β review sessions will be organized based on your questions and feedback.
β
π¬ Feedback, Questions, or Contributionsο
This is the first edition of the Machine Learning in Cybersecurity tutorials. We appreciate all feedback β whether itβs a typo, a bug, or a suggestion for improvement.
If you discover a mistake or issue in a notebook, please [open a GitHub issue](../../issues) so we can track and resolve it publicly.
You can also reach out directly via email (christoph dot landolt at cispa dot de), or speak to us during a exercise session.
If you find the tutorials helpful, please cite this course as:
@misc{landolt2025_mlcysec,
title = {CISPA Machine Learning in Cybersecurity},
author = {Christoph R. Landolt and Mario Fritz},
year = {2025},
howpublished = {\url{https://christophlandolt.com/mlcysec_notebooks/}},
}
Tutorial 1: Getting started:
- Getting started 1: Working with Jupyter and Python
- Getting Started 2: How to Load and Visualize Data for Cyber Threat Intelligence Analysis
- Getting Started 3: Classic Machine Learning for Cybersecurity
- Tutorial Objectives
- Data Preprocessing
- Unsupervised Learning with the KDDCUP99 Dataset
- Supervised Learning with the KDDCUP99 Dataset
- Exercises
- Solution - Exercise 1: Train Decision Tree Classifier
- Solution - Exercise 2: Visualize the Decision Tree
- Solution - Exercise 3: Feature Importance
- Solution - Exercise 4: Parameter Optimization for SVM
- Conclusion
- Getting Started 4: Deep Learning for Cybersecurity
Tutorial 2: Intrusion Detection:
- Tutorial 2.1: Intrusion Detection System
- Tutorial Objectives
- What is an Intrusion Detection System?
- Anomaly Detection: Handling Rare and Diverse Attacks
- ML-Based Anomaly Detection
- Isolation Forest
- Robust Covariance
- One-Class SVM
- Exercises β Anomaly Detection with KDDCUP99
- Solution - Exercise 1: Compare Decision Boundaries Between Anomaly Detection Algorithms
- Solution - Exercise 2: Runtime Complexity
- Solution - Exercise 3: Implement Local Outlier Factor (LOF)
- Conclusion
- Tutorial 2.2: Deep Learning based IDS
- Tutorial 2.3: Analyzing Application-Layer Protocols
- Tutorial Objectives
- Dataset Composition and Anomalies
- Data Structure and Features
- Structure of an HTTP Request
- Data Loading and Integration
- Classic ML Pipeline: Data Preparation, Feature Engineering and Isolation Forest
- Deep Learning Pipeline: Natural Language Processing (NLP) Feature Engineering with BERT
- Exercises
- Solution - Exercise 1: Enhancing Classic ML with NLP Features (TF-IDF)
- Conclusion
Tutorial 3: Evading ML-IDS: