Skip to content

πŸ€– 10-03: Intro to ML for Security


πŸ“Œ Why Bring Machine Learning Into Intrusion Detection?

In 10-01: IDS/IPS Concepts we saw the core weakness of signature-based detection: it can only catch attacks that someone has already seen, analyzed, and written a signature for. Attackers know this, and constantly create:

  • Zero-day exploits β€” attacks against vulnerabilities nobody has patched or documented yet
  • Polymorphic malware β€” malicious code that changes its own signature on every infection to dodge pattern matching
  • Slow, low-and-slow attacks β€” activity deliberately spread out to avoid tripping simple threshold rules

Hand-writing statistical rules for "what counts as anomalous" (as in classic anomaly-based detection) also has limits β€” real traffic is messy, and a human can only encode so many rules by hand.

πŸ’‘ The idea: instead of a human writing rules, let an algorithm learn the patterns of normal vs. malicious traffic directly from data. This is exactly what machine learning (ML) is good at β€” finding statistical patterns in large datasets that would be impractical for a person to hand-code.


πŸ“Œ What Is Machine Learning, Briefly?

Machine learning is a set of techniques where a computer program improves its performance on a task by learning from data, rather than following explicitly programmed rules.

For intrusion detection, the "task" is: given a network connection's characteristics, decide whether it's normal or an attack.


🎯 Supervised Learning: The Approach Used in This Module

There are several flavors of machine learning (supervised, unsupervised, reinforcement learning), but this module focuses on supervised learning, because it maps naturally onto intrusion detection.

The Core Idea

In supervised learning, you train a model using labeled data β€” examples where you already know the correct answer.

Example: Imagine a spreadsheet where each row is a network connection, with columns like duration, protocol_type, bytes_sent, and so on β€” plus one extra column called label that says either "normal" or "attack" for every single row. This is the training data.

duration protocol_type bytes_sent ... label
0.2 tcp 512 ... normal
5.8 tcp 90000 ... attack
0.1 udp 64 ... normal

The model looks at thousands (or millions) of these labeled rows and learns which combinations of feature values tend to show up in "attack" rows vs. "normal" rows. Once trained, it can be given a brand-new, unlabeled connection and predict whether it's normal or an attack.

πŸ’‘ This is called binary classification β€” the model sorts every input into one of two classes (normal or attack). It's directly analogous to anomaly-based detection, but instead of a human writing the rule for "abnormal," the model learns the boundary between the two classes from real examples.

Why Not Unsupervised Learning?

Unsupervised learning (finding structure in unlabeled data) is also used in security research, but it's harder to evaluate and tune. Because well-labeled attack datasets exist (see 10-04: Feature Engineering (NSL-KDD)), supervised learning is the more common starting point for learning IDS/ML fundamentals β€” and it's the approach this module builds toward.


πŸ—ΊοΈ The General ML Workflow

Every supervised ML project β€” not just intrusion detection β€” follows roughly the same pipeline. This is the roadmap for the rest of Module 10:

 1. Collect Data β†’ 2. Extract Features β†’ 3. Train a Model β†’ 4. Evaluate β†’ 5. Deploy
Step What Happens Where We Cover It
1. Collect data Gather a dataset of network connections, each labeled normal/attack 10-04: Feature Engineering (NSL-KDD)
2. Extract / engineer features Turn raw connection data into numeric inputs a model can use (encoding, scaling) 10-04: Feature Engineering (NSL-KDD)
3. Train a model Feed the labeled, prepared data into a learning algorithm (we'll use an SVM) 10-05: SVMs for Classification, 10-06: Building & Training the IDS Model
4. Evaluate Test the trained model on data it has never seen, measure accuracy/precision/recall 10-07: Evaluating Detection Models
5. Deploy Put the model into production so it can classify live traffic in real time (briefly discussed as a wrap-up concept)

πŸ’‘ Key gotcha: a model must always be evaluated on data it did not see during training. Otherwise you're just testing whether it memorized the training examples, not whether it generalizes to new, unseen attacks β€” this is why Step 3 always involves splitting data into separate training and testing sets.


βš–οΈ ML-Based Detection vs. Traditional Signature/Anomaly Detection

Feature Signature-Based Hand-Coded Anomaly Rules ML-Based Detection
Detects known attacks βœ… Excellent ⚠️ Sometimes βœ… Yes (if represented in training data)
Detects novel attack patterns ❌ No ⚠️ Limited βœ… Better β€” learns general patterns, not exact matches
Requires human-written rules βœ… Yes (signatures) βœ… Yes (thresholds/heuristics) ❌ No β€” rules are learned from data
Requires labeled training data ❌ No ❌ No βœ… Yes
Risk Blind to new attacks Rules may be too simple or too strict Only as good as the training data (garbage in, garbage out)

πŸ“Œ Key Takeaways

  • Signature-based detection is blind to novel attacks; ML offers a data-driven way to generalize beyond exact known patterns.
  • Supervised learning trains a model on data that is already labeled with the correct answer (here: normal vs. attack).
  • Intrusion detection framed this way is a binary classification problem.
  • The general ML workflow is: collect data β†’ extract/engineer features β†’ train a model β†’ evaluate β†’ deploy.
  • A model must be evaluated on data it never saw during training to fairly measure how well it generalizes.
  • The rest of Module 10 walks through this exact pipeline using a real public intrusion-detection dataset and a Support Vector Machine (SVM) classifier.