Skip to content

Intermediate · Logs, SIEM and incident response · topic 21 of 43 · 40 min

SIEM and alert triage

Explanation

A SIEM (security information and event management) system collects logs from everywhere, puts them in one searchable place, links related events together and raises alerts. Triage is the analyst's first look at an alert: is it real, how bad is it, and what happens next? A good triage is quick, written down and based on evidence.

Why a SIEM

A company of 1,000 people can produce millions of log events a day from hundreds of systems. No person can read that. A SIEM collects the logs, converts them into a common format (normalising), stores them, lets you search them, and runs detection rules that raise alerts when a pattern looks like an attack.

  • Collect: agents and connectors pull logs from Windows, Linux, firewalls, cloud and apps.
  • Normalise: map different field names to common ones (a source IP is "src_ip" whatever the device called it).
  • Correlate: link events across sources, like "many failed logons, then one success, then a new admin account".
  • Alert: create a ticket for the SOC with the evidence attached.
  • Search and dashboards: let analysts investigate and managers see trends.

Well-known SIEMs include Splunk, Microsoft Sentinel, IBM QRadar, Google Security Operations and Elastic Security. Wazuh is a popular open-source platform for home labs. Each has its own search language, but the ideas are the same.

output
index=wineventlog EventCode=4625
| stats count by src_ip, user
| where count > 10
| sort - count
Splunk SPL: count failed logons by source IP and user, and show those over 10. Field names depend on how your data is collected.
output
SecurityEvent
| where EventID == 4625
| summarize Failures = count() by IpAddress, TargetUserName
| where Failures > 10
| order by Failures desc
The same idea in KQL (Kusto Query Language) for Microsoft Sentinel.

A correlation rule: guessing then success

A single failed logon is normal: people mistype. Many failures followed by a success from the same source is much more worrying, because the guessing may have worked. Rules like this combine events to cut noise.

python
events = [
    ("198.51.100.23", "failure"), ("198.51.100.23", "failure"),
    ("198.51.100.23", "failure"), ("198.51.100.23", "success"),
    ("10.20.5.7", "failure"), ("10.20.5.7", "success"),
]
fails = {}
for ip, result in events:
    if result == "failure":
        fails[ip] = fails.get(ip, 0) + 1
    elif fails.get(ip, 0) >= 3:
        print("ALERT: success after", fails[ip], "failures from", ip)
Only the first IP triggers: three failures then a success. Shows ALERT: success after 3 failures from 198.51.100.23.

Triage: the first 15 minutes

Triage means sorting by urgency, like a hospital emergency desk. For each alert, an L1 analyst works through steps like these:

  1. Read the alert: what rule fired, on which host and user, when?
  2. Gather context: who is this user, what is this machine, is it important, is the source IP internal, a known partner, or known bad (threat intelligence)?
  3. Look around: other alerts or unusual events for this user or host in the last 24 hours.
  4. Decide: true positive, false positive, or benign true positive (real activity that is allowed, like an approved penetration test).
  5. Set severity and act: close with a note, or escalate to L2 with the evidence, following the playbook.
SeverityExampleTypical response time
CriticalRansomware running on a serverImmediately, call the on-call lead
HighAdmin account logged in from a new country after failuresWithin minutes
MediumMalware blocked by antivirus on one laptopWithin hours
LowSingle port scan from the internet, blockedReview in daily summary

Response-time targets differ between companies; the playbook and service agreement set them.

Writing it down

Every triage ends with a short note: what you checked, what you found, your verdict and why. Another analyst should be able to read it and reach the same conclusion. "Closed, FP" is not a note; "Closed as false positive: source 10.20.5.33 is the vulnerability scanner (asset tag VS-01), scan approved in change ticket CHG-1182" is.

Common mistakes

  • Closing alerts by habit because "it is always a false positive".
  • Not checking the user's other activity: one alert is often part of a bigger story.
  • Escalating with no evidence attached.
  • Never feeding back: if a rule is noisy, tell the detection engineers so it gets tuned.

Need help?

Stuck on a word or an idea? Search this course, or every course, and jump straight to the explanation or a worked question.

Try:

Watch the lesson

SIEM and alert triage · 1/7

SIEM = all logs, one place

Companies create millions of log events a day. A SIEM collects, normalises and searches them.

Prefer a video by a teacher? Find free videos on “SIEM explained alert triage SOC analyst splunk sentinel” on YouTube ↗

In real life: Impossible travel

A Sentinel rule fires: user priya@company logged in from Chennai at 09:10 and from an IP in another continent at 09:40. Triage: the second login used a consumer VPN service, the user's phone approved MFA, and Priya confirms she turned on a VPN app. Verdict: benign true positive. The analyst closes it with a note and suggests that company policy forbid personal VPN apps on work accounts. Had Priya not recognised it, the account would have been disabled and escalated at once.

Practice (0/3 done)

Task 1 · Question

An alert fires because the company's own vulnerability scanner scanned servers during an approved window. The best verdict is…

Task 2 · Code · Python

Write success_after_failures(events, threshold) where events is an ordered list of (ip, result) with result "failure" or "success". Return a sorted list of IPs that had a "success" after at least threshold failures from the same IP (failures counted before that success).

Task 3 · Practice

Write a triage note for this alert: "Admin account it-admin2 logged in (4624, logon type 10) to FILE-SRV-01 at 03:12 IST from 10.20.8.41 after 14 failed attempts (4625) in 5 minutes." Make up reasonable context and give a verdict.

Quick quiz

Question 1

1.What does "normalise" mean in a SIEM?

Question 2

2.Which search language does Microsoft Sentinel use?

Question 3

3.Why correlate "many failures then a success" rather than alert on every failure?

Question 4

4.Which is a good triage note?

Question 5

5.Ransomware is actively encrypting files on a server. Severity?

Read more (free)

Open a question to see the answer and why. The first ones are this topic's own quiz, so try the quiz above before you peek.

What does "normalise" mean in a SIEM?

Answer: Convert different log formats into common field names

Normalising lets one search cover logs from many different devices.

Which search language does Microsoft Sentinel use?

Answer: KQL

Sentinel uses KQL (Kusto Query Language); Splunk uses SPL.

Why correlate "many failures then a success" rather than alert on every failure?

Answer: It cuts noise and points to guessing that may have worked

Single failures are normal; the combination is meaningful.

Which is a good triage note?

Answer: "False positive: source is the approved scanner VS-01, change ticket CHG-1182"

Notes must give evidence so others can check the verdict.

Ransomware is actively encrypting files on a server. Severity?

Answer: Critical

Active damage to important systems is critical: act immediately.

Which Event ID is a failed logon?Related

Answer: 4625

4625: an account failed to log on.

From Logs and log sources

A log source has sent nothing for three hours. Why does this matter?Related

Answer: Attacks on those systems would be invisible

Silence can hide an attack; check source health every shift.

From A SOC analyst's day and playbooks

Which event most strongly suggests an attacker is hiding?Related

Answer: StopLogging

Turning off audit logging is a classic defence evasion step.

From Logging and monitoring in the cloud

Which is the Microsoft Azure SIEM service?Related

Answer: Microsoft Sentinel

Microsoft Sentinel is Azure's cloud SIEM; Defender for Cloud handles posture and workload protection.

From Logging, threat detection and incident response

Pass the quiz (60% or more) or mark this topic as done when you are ready.

Your progress is saved on this device only.

Next steps

  1. 2 more topics in “Logs, SIEM and incident response” before its exam: The incident response lifecycle (NIST SP 800-61), A SOC analyst's day and playbooks.
  2. Module 5 exam: Logs, SIEM and incident response · 13 questions · 25 min, without help. 4 topics of this module still to finish first.
  3. Then the next module, Malware and web security. 43 topics left in the course before the final exam.

← Previous: Logs and log sources