What You'll Learn
- Identify the five context dimensions that transform raw alerts into actionable intelligence
- Explain how asset value changes the severity calculation for identical alerts
- Use user role, privilege level, and behavioral baselines to distinguish legitimate activity from compromise
- Detect geographic anomalies such as impossible travel and unexpected source countries
- Apply temporal context (business hours, maintenance windows, holidays) to reduce false positives
- Combine multiple context dimensions to make confident triage decisions on ambiguous alerts
The Alert That Means Nothing — Until It Does
A Windows Event ID 4624 (successful logon) fires thousands of times per day in any enterprise environment. By itself, it's noise — users logging in is expected behavior. But add context and that same alert transforms:
- 4624 on a domain controller from an account that has never touched that server → Critical
- 4624 at 3:17 AM from an employee who has never worked outside business hours → High
- 4624 from Moscow for a user whose last logon was New York, 18 minutes ago → Critical — Impossible Travel
- 4624 from the VPN during a scheduled maintenance window by an IT admin → Expected — Close
The alert didn't change. The raw data is identical in structure. What changed is context — the information surrounding the event that tells you whether this is routine or the start of a breach.
In Lesson 4.1, you learned to classify alerts as true positives or false positives. That classification depends almost entirely on context. This lesson gives you the framework — five dimensions of context that every senior analyst evaluates, often unconsciously, on every alert they touch.
The Five Context Dimensions
Every alert exists at the intersection of five context dimensions. Experienced analysts evaluate all five in seconds. You'll build this instinct through practice, but first you need the explicit framework.
| Dimension | Core Question | Data Sources |
|---|---|---|
| Asset | What system was involved, and how valuable is it? | CMDB, asset inventory, network diagrams |
| User | Who triggered the event, and what's their role? | HR directory, IAM, privilege mapping |
| Temporal | When did it happen relative to normal patterns? | Shift schedules, maintenance calendars, time zones |
| Geographic | Where did the connection originate? | GeoIP databases, VPN logs, corporate office IPs |
| Behavioral | Does this deviate from the entity's established baseline? | UEBA, historical logs, peer group analysis |
Missing even one dimension leads to misclassification. Let's examine each in depth.
Asset Context — Not All Systems Are Equal
The single most impactful context dimension is asset value. A brute-force attempt against a test VM and a brute-force attempt against a production database server produce identical alert signatures — but they demand completely different response urgencies.
The Crown Jewels Model
Every organization has systems that, if compromised, cause catastrophic damage. These are your crown jewels:
| Tier | Systems | Impact if Compromised |
|---|---|---|
| Tier 1 — Crown Jewels | Domain controllers, certificate authorities, backup servers, financial databases, EHR systems | Full domain compromise, regulatory fines, existential business risk |
| Tier 2 — Business Critical | Email servers, ERP systems, CI/CD pipelines, customer-facing web apps | Major business disruption, data breach potential |
| Tier 3 — Standard | Employee workstations, developer laptops, print servers | Localized impact, lateral movement starting point |
| Tier 4 — Low Value | Test environments, staging servers, guest Wi-Fi infrastructure | Minimal direct impact (but don't ignore — attackers pivot) |
Never dismiss Tier 3/4 alerts entirely. Attackers rarely start at the crown jewels. The typical attack path is: compromise a developer laptop (Tier 3) → steal credentials → move laterally to a Tier 2 server → escalate to Tier 1. The alert on the developer laptop was the earliest detection opportunity. Dismissing low-tier alerts is how breaches go undetected for months.
CMDB Integration in Practice
In a mature SOC, your SIEM enriches every alert with asset metadata from the Configuration Management Database (CMDB). When an alert fires on IP 10.0.5.22, the enrichment automatically tells you:
{
"alert": "Multiple failed logons (Rule 5710)",
"src_ip": "10.0.5.22",
"asset_enrichment": {
"hostname": "DC-PROD-01",
"asset_tier": 1,
"function": "Primary Domain Controller",
"owner": "Infrastructure Team",
"os": "Windows Server 2022",
"last_patched": "2026-02-15",
"criticality_score": 9.8
}
}
Without CMDB enrichment, 10.0.5.22 is just a number. With it, you immediately know this is your production domain controller — and multiple failed logons against it demand instant attention.
If your organization doesn't have a CMDB, build a simple one. Even a spreadsheet mapping IP ranges to asset tiers is better than nothing. In Wazuh, you can use agent labels and custom decoders to tag events by asset tier. The agent.name and agent.ip fields are your starting points for enrichment.
User Context — Who Did This, and Should They?
The second dimension answers: who is the entity behind the action, and does this action make sense for their role?
Role-Based Expectations
Different users have different "normal" behaviors. What's expected for a sysadmin is suspicious for an accountant:
| User Type | Expected Behavior | Suspicious Behavior |
|---|---|---|
| Domain Admin | Remote logons to servers, Group Policy changes, account management | Browsing social media, downloading executables from external URLs |
| Developer | Git operations, SSH to staging, IDE usage, package installs | Accessing production databases directly, modifying firewall rules |
| Executive | Email, document access, meeting tools, occasional VPN | PowerShell execution, accessing file shares they've never touched |
| Service Account | Automated tasks at consistent intervals, specific target systems | Interactive logon, logon from new source, off-schedule execution |
| Intern / Contractor | Limited scope per access agreement | Accessing systems outside their project, lateral movement |
Service accounts deserve the most scrutiny. When a service account does something unexpected — like an interactive logon, or connecting from a new IP — it's almost always malicious. Service accounts don't decide to try new things. An attacker who steals a service account password gets a powerful identity that security teams often overlook because "it's just automation." In Wazuh, filter for win.eventdata.logonType: 10 (RemoteInteractive) combined with known service account names. That combination should trigger an immediate investigation.
Privilege Amplifies Risk
The same suspicious action carries different weight depending on the user's privilege level:
Low-privilege user downloads a suspicious file:
→ Investigate, but likely contained to their workstation
Domain Admin downloads a suspicious file:
→ Escalate IMMEDIATELY — if this account is compromised,
the attacker has keys to the entire kingdom
This is why privileged accounts should have separate, dedicated monitoring rules in your SIEM. In Wazuh, you can create rules that fire only when specific high-value accounts trigger certain events — turning routine events into high-priority alerts when the actor is a domain admin.
Temporal Context — Timing Changes Everything
When an event occurs relative to normal patterns is a powerful indicator. The same action at 10:00 AM on a Tuesday and at 2:37 AM on a Sunday carry very different risk profiles.
Business Hours vs. Off-Hours
Most legitimate business activity happens during business hours. Off-hours activity isn't automatically malicious, but it raises the bar for scrutiny:
| Time Window | Expectation | Alert Adjustment |
|---|---|---|
| Business hours (8 AM–6 PM local) | Normal user activity, IT operations | Standard priority |
| Evening (6 PM–11 PM) | Reduced activity, some remote workers | Moderate increase — verify user has history of late work |
| Late night (11 PM–6 AM) | Minimal activity except automated jobs and on-call staff | High increase — verify against on-call rotation and maintenance schedule |
| Weekends / Holidays | Very low human activity | Significant increase — most users don't work holidays |
Global organizations complicate temporal analysis. If your company has offices in New York, London, and Tokyo, "off-hours" is always business hours somewhere. The key is to evaluate activity against the user's local time zone, not the SOC's time zone. A logon at 3 AM UTC from a Tokyo-based employee is actually 12 PM JST — perfectly normal. Always convert to the user's local time before applying temporal context.
Maintenance Windows
Scheduled maintenance windows are critical context that many junior analysts miss. A burst of privileged account logons across multiple servers at 2 AM on a Saturday looks terrifying — unless the change management calendar shows a planned infrastructure upgrade from 1 AM to 5 AM.
Always check the change calendar before escalating off-hours privileged activity. In a mature SOC, the SIEM ingests the maintenance schedule and automatically suppresses or de-prioritizes alerts during known windows.
Holiday and Seasonal Patterns
Attackers know that SOC staffing is thinnest during holidays. Major breach campaigns often launch on Friday evenings before holiday weekends, giving attackers 72+ hours of reduced monitoring. Be extra vigilant during:
- Major national holidays (Christmas, Thanksgiving, New Year)
- Company-specific shutdown periods
- Friday afternoons before long weekends
- End of financial quarters (when finance teams are distracted)
Geographic Context — Where in the World?
GeoIP analysis maps source IP addresses to physical locations. This is one of the most immediately actionable context dimensions because geographic anomalies are hard for attackers to explain away.
Impossible Travel
The signature geographic detection is impossible travel: a user authenticates from one location, then authenticates from a geographically distant location within a timeframe that makes physical travel impossible.
Event 1: 4624 — User jsmith — Source IP 72.45.12.88 (New York, NY)
Timestamp: 2026-02-23 09:15:00 UTC
Event 2: 4624 — User jsmith — Source IP 185.220.101.3 (Moscow, Russia)
Timestamp: 2026-02-23 09:33:00 UTC
Time Delta: 18 minutes
Distance: ~7,500 km / ~4,660 miles
Verdict: IMPOSSIBLE TRAVEL — Unless jsmith can fly at Mach 15,
one of these logons is from a compromised credential.
VPN and proxy usage creates false positives for impossible travel. Before escalating, check: Does the user use a corporate VPN that exits in a different city? Are they using a cloud-based proxy or privacy service? Does the "foreign" IP belong to a known CDN or cloud provider? Many impossible-travel alerts resolve to a user on VPN in the office while their phone authenticates via cellular from a different GeoIP location.
Known Corporate Exit IPs
Maintain a list of your organization's known egress IPs — office locations, VPN concentrators, cloud NAT gateways. Authentications from these IPs are expected. Authentications from outside this set deserve additional scrutiny, especially from:
- Countries where you have no operations — if you have no employees in Eastern Europe and you see a logon from Romania, investigate
- Known hosting / anonymization providers — Tor exit nodes, bulletproof hosting, residential proxy networks
- High-risk geographies — countries frequently associated with state-sponsored or cybercriminal activity (use threat intelligence feeds for current data, not assumptions)
Geographic Context in Wazuh
Wazuh's GeoIP enrichment adds GeoIP.country_name, GeoIP.city_name, and GeoIP.coordinates to events with public IP addresses. You can build rules that fire when a logon originates from a country not in your allow-list:
<rule id="100510" level="12">
<if_sid>60106</if_sid>
<field name="win.eventdata.logonType">^10$</field>
<geoip_not>US,GB,DE,JP</geoip_not>
<description>Remote logon from non-corporate country</description>
</rule>
This rule fires on Windows remote interactive logons (type 10) from any country not in the allow-list. It doesn't mean the logon is malicious — but it means it needs a human to decide.
Behavioral Context — Deviation from the Baseline
The most sophisticated context dimension compares current activity against the entity's historical baseline. The question isn't "is this action bad?" but "is this action normal for this specific entity?"
What a Baseline Looks Like
A mature UEBA (User and Entity Behavior Analytics) system builds a profile for each user and device:
| Baseline Element | Example Normal Pattern | Deviation That Triggers Alert |
|---|---|---|
| Logon times | jsmith logs in between 8:30–9:15 AM Mon–Fri | Logon at 2:47 AM Saturday |
| Source systems | jsmith accesses FILE-01, MAIL-01, APP-03 | jsmith accesses DB-PROD-07 for the first time |
| Data volume | jsmith downloads < 50 MB/day | jsmith downloads 4.7 GB in one hour |
| Application usage | jsmith uses Outlook, Chrome, Excel | jsmith runs PowerShell, PsExec, Mimikatz |
| Network destinations | jsmith's workstation contacts 15-20 internal IPs | Workstation contacts 200+ unique IPs in 10 minutes |
| Peer group | Finance team averages 2 server logons/week | jsmith (Finance) has 47 server logons this week |
First-Time Events
Some of the most valuable behavioral alerts are first-time events — actions that an entity has literally never performed before:
- First time this user accessed this server
- First time this workstation ran PowerShell
- First time this service account logged in interactively
- First time this user downloaded a file over 1 GB
- First time this endpoint contacted this external IP
You don't need a UEBA product to do basic behavioral analysis. Wazuh's built-in frequency and timeframe rule options, combined with custom CDB lists, can detect many first-time and anomalous behaviors. For example, maintain a CDB list of servers each user normally accesses. When a user accesses a server NOT on their list, fire a custom rule. It's manual and doesn't scale like a commercial UEBA, but it catches lateral movement.
Peer Group Analysis
Behavioral context becomes even more powerful when you compare against peer groups. If one developer on the team downloads 200 MB of source code from the repo, that's normal. If every developer downloads ~200 MB but one downloads 15 GB, that outlier deserves attention — even though "downloading from the repo" is normal for the role.
Putting It All Together — Multi-Dimensional Triage
Real triage combines all five dimensions simultaneously. Here's how the same alert escalates or de-escalates across different context combinations:
Alert: Windows 4624 (Successful Logon) — Remote Interactive (Type 10)
| Scenario | Asset | User | Time | Geo | Behavior | Verdict |
|---|---|---|---|---|---|---|
| A | Tier 3 workstation | Employee (jsmith) | 9:15 AM Tuesday | Office VPN IP | Daily pattern | FP — Close |
| B | Tier 1 domain controller | Employee (jsmith) | 9:15 AM Tuesday | Office VPN IP | First time accessing DC | Investigate — why is jsmith on the DC? |
| C | Tier 1 domain controller | Domain Admin (svc-backup) | 2:00 AM Saturday | Server subnet | Scheduled backup window | Expected — Close |
| D | Tier 2 email server | Employee (jsmith) | 2:47 AM Saturday | Moscow, Russia | Never logged in from Russia | Critical — Escalate |
| E | Tier 3 workstation | Employee (jsmith) | 2:47 AM Saturday | Moscow, Russia | Has history of late-night remote work + uses NordVPN | Investigate — likely VPN exit node, verify |
Scenario E is the one that separates good analysts from great ones. A junior analyst sees "Moscow at 3 AM" and escalates immediately. A senior analyst checks the behavioral baseline, sees the user regularly works remotely at odd hours, checks whether the "Moscow" IP belongs to a known VPN provider, and makes a calibrated decision. Both approaches are defensible — but the senior analyst saves the incident response team from a false escalation while still documenting the finding.
Context Enrichment in Wazuh
In the Wazuh dashboard, every alert carries raw event data. Your job is to extract context from the fields available:
{
"agent": {
"name": "WIN-SERVER-01",
"ip": "10.0.5.22"
},
"data": {
"win": {
"eventdata": {
"targetUserName": "jsmith",
"logonType": "10",
"ipAddress": "185.220.101.3",
"workstationName": "UNKNOWN"
},
"system": {
"eventID": "4624",
"computer": "WIN-SERVER-01.corp.local"
}
}
},
"GeoIP": {
"country_name": "Russia",
"city_name": "Moscow"
},
"timestamp": "2026-02-23T02:47:15.000Z"
}
From this single event, extract your five dimensions:
- Asset:
WIN-SERVER-01— check your asset inventory for tier classification - User:
jsmith— check HR directory for role, department, privilege level - Temporal:
02:47 UTC— convert to user's local time, check against their normal hours - Geographic:
Moscow, Russia— check GeoIP against user's expected locations and corporate IPs - Behavioral: Query historical logs — has jsmith ever logged into WIN-SERVER-01 before? Has this IP appeared in prior events?
In Lab 4.2, you'll do exactly this. You'll receive a geo-anomaly alert on a Wazuh dashboard pre-loaded with contextual data across agents linux-web-01, WIN-SERVER-01, dns-server-01, and fw-edge-01. Your task: pivot through the data, apply all five context dimensions, and deliver a verdict.
Key Takeaways
- Context transforms alerts into intelligence — the same Event ID 4624 ranges from routine noise to critical incident depending on the five dimensions
- Asset value is the priority multiplier — identical alerts on Tier 1 crown jewels vs Tier 4 test systems demand fundamentally different response speeds
- User role sets expectations — a domain admin running PowerShell is normal; an accountant running PowerShell is a red flag
- Temporal patterns reveal anomalies — off-hours activity from a 9-to-5 employee warrants investigation; always convert to the user's local time zone
- Geographic anomalies are high-confidence signals — impossible travel is one of the strongest indicators of credential compromise, but check for VPN/proxy false positives
- Behavioral baselines catch what rules miss — "first time this user accessed this server" catches lateral movement that no static rule would flag
- Great analysts combine all five dimensions — a single dimension rarely gives a definitive answer, but three or more pointing the same direction gives you confidence to act
What's Next
You now have the mental framework for evaluating context. In Lesson 4.3: Investigation Workflow, you'll learn the systematic pivot process — how to efficiently move from a single alert to a complete picture by pivoting on host, user, IP, and timeframe. Context tells you what to look for; the investigation workflow tells you how to find it.
But first, put your context skills to the test. In Lab 4.2 — Investigate a Suspicious Logon, you'll receive a geo-anomaly alert in a live Wazuh environment. The dashboard is pre-loaded with surrounding events from multiple agents. Your mission: apply all five context dimensions, pivot through the data, and deliver a verdict — is this a compromised account or an explainable anomaly?
Knowledge Check: Context Is Everything
10 questions · 70% to pass
A Wazuh alert shows Event ID 4624 (successful logon) on a production domain controller at 9:15 AM on a Tuesday from the office VPN. However, the user account has NEVER accessed this domain controller before. What is the most appropriate triage action?
What is the primary reason that asset value is considered the most impactful context dimension during alert triage?
An alert fires for a service account (svc-backup) performing an interactive logon (Type 10) to a file server at 3:00 PM on a Wednesday. The service account normally runs automated backup jobs via scheduled tasks (non-interactive logon Type 3) at 2:00 AM daily. Which context dimensions are MOST violated?
In Lab 4.2, you receive a Wazuh alert showing a successful logon to WIN-SERVER-01 from an IP address geolocated to a country where your organization has no operations. Before escalating as a confirmed compromise, what should you check FIRST?
Your organization has offices in New York (UTC-5) and Tokyo (UTC+9). A SOC analyst in New York sees a logon alert at 03:00 UTC for a Tokyo-based employee. Should this trigger temporal concern?
An analyst observes the following two events for user jsmith: Logon from New York at 09:15 UTC, then logon from Moscow at 09:33 UTC. The time delta is 18 minutes and the distance is approximately 7,500 km. What is this detection pattern called, and why is it significant?
In Lab 4.2, the Wazuh dashboard shows events from agents linux-web-01, WIN-SERVER-01, dns-server-01, and fw-edge-01. You're investigating a suspicious logon on WIN-SERVER-01. Which agent's logs would you check FIRST to determine whether the source IP communicated with other internal systems before the suspicious logon?
Why do attackers frequently launch major breach campaigns on Friday evenings before holiday weekends?
A user in the Finance department has never run PowerShell in the 14 months of their employment. Today, their workstation executes a PowerShell command that downloads a file from an external URL. No other Finance team members have run PowerShell this month. Which context dimension is the PRIMARY indicator that this activity is suspicious?
In Lab 4.2, after investigating the suspicious logon alert on WIN-SERVER-01, you determine the source IP belongs to a commercial VPN service, the user has a documented history of remote work at unusual hours, and no other suspicious activity followed the logon. What is the correct triage outcome?
0/10 answered