In one sentence
Red team attacks (or simulates attacking), blue team defends and detects, purple team is the deliberate practice of doing both together so the detection gap gets closed instead of just documented.
Why it matters
A red-team report that lands on a shelf changes nothing. Purple teaming exists because the useful output of an attack simulation is not "we got in" — it is "here is exactly which of your detections fired, and which did not". That only works if the two sides compare notes technique by technique instead of red team writing a report and walking away.
The terms come from military exercises. In practice: a red team emulates a real adversary against production, usually with objectives (reach the payment system) rather than a scope list, over weeks, with the blue team not warned — which is what separates it from a penetration test. The blue team is the SOC, detection engineering and incident response. Purple is not a third team; it is a mode of working where the two sit together.
How a purple-team session works
A session is structured around a shared technique list: pick a MITRE ATT&CK technique, red team executes it (or a safe emulation of it), blue team checks whether it fired an alert, and if it did not, blue team writes the missing detection on the spot — then red team re-runs it to confirm the fix actually works. The loop is technique-by-technique, not one big engagement report at the end. The output is a coverage table: for each technique, logged? detected? alerted? responded?, before and after.
Two things keep it honest. Emulate the procedure an actual actor uses (see TTP), not a textbook version — a detection that fires on the Atomic Red Team test but not on the real tooling is a false sense of coverage. And keep the exercise scoped and logged so the SOC can tell the exercise from an incident afterwards.
Try it yourself hands-on
Running a small purple-team loop against PowerShell-based execution:
- Pick the technique in the MITRE ATT&CK Search — T1059.001 PowerShell. Note the detection guidance it lists: script-block logging (Event ID 4104), encoded commands (
-enc), unusual module loads. - Simulate the behaviour safely — an encoded, benign PowerShell command in a test environment, e.g.
powershell -encofWrite-Host 'purple-test'— and check whether anything fired. - If it did not, build the missing detection in the Sigma Rule Builder using the same data source the technique page pointed at (
ps_script/ Event 4104,ScriptBlockText|contains: '-enc'or the decoded marker), tag itattack.t1059.001, export to your SIEM, and re-run the simulation to confirm it now fires. - Log the before/after in the Incident Timeline Builder: time of each emulation run, what fired, what was changed. That record — not a narrative report — is the deliverable of a purple-team exercise, and next quarter's baseline.
- Want the discussion-only version first? The Tabletop Generator turns the same technique chain into a walk-through the incident team can rehearse without touching a system.
Common misreadings
- Pentest ≠ red team. A pentest enumerates vulnerabilities in a scope; a red team pursues an objective by any technique, with stealth. Buying one when you need the other is the most common procurement mistake.
- Purple is not "red team with the answers". If red only runs what blue already detects, the exercise validates nothing. The technique list should come from a threat profile, not from the rule catalogue.
- "We passed" is not an outcome. The outcome is the delta in the coverage table and the tickets that closed it.