Lesson 2 of 5·16 min read·Includes quiz

Context Is Everything

Asset value, user role, time of day

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 — Asset, User, Temporal, Geographic, Behavioral


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.

DimensionCore QuestionData Sources
AssetWhat system was involved, and how valuable is it?CMDB, asset inventory, network diagrams
UserWho triggered the event, and what's their role?HR directory, IAM, privilege mapping
TemporalWhen did it happen relative to normal patterns?Shift schedules, maintenance calendars, time zones
GeographicWhere did the connection originate?GeoIP databases, VPN logs, corporate office IPs
BehavioralDoes 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:

TierSystemsImpact if Compromised
Tier 1 — Crown JewelsDomain controllers, certificate authorities, backup servers, financial databases, EHR systemsFull domain compromise, regulatory fines, existential business risk
Tier 2 — Business CriticalEmail servers, ERP systems, CI/CD pipelines, customer-facing web appsMajor business disruption, data breach potential
Tier 3 — StandardEmployee workstations, developer laptops, print serversLocalized impact, lateral movement starting point
Tier 4 — Low ValueTest environments, staging servers, guest Wi-Fi infrastructureMinimal 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 TypeExpected BehaviorSuspicious Behavior
Domain AdminRemote logons to servers, Group Policy changes, account managementBrowsing social media, downloading executables from external URLs
DeveloperGit operations, SSH to staging, IDE usage, package installsAccessing production databases directly, modifying firewall rules
ExecutiveEmail, document access, meeting tools, occasional VPNPowerShell execution, accessing file shares they've never touched
Service AccountAutomated tasks at consistent intervals, specific target systemsInteractive logon, logon from new source, off-schedule execution
Intern / ContractorLimited scope per access agreementAccessing 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 WindowExpectationAlert Adjustment
Business hours (8 AM–6 PM local)Normal user activity, IT operationsStandard priority
Evening (6 PM–11 PM)Reduced activity, some remote workersModerate increase — verify user has history of late work
Late night (11 PM–6 AM)Minimal activity except automated jobs and on-call staffHigh increase — verify against on-call rotation and maintenance schedule
Weekends / HolidaysVery low human activitySignificant 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 ElementExample Normal PatternDeviation That Triggers Alert
Logon timesjsmith logs in between 8:30–9:15 AM Mon–FriLogon at 2:47 AM Saturday
Source systemsjsmith accesses FILE-01, MAIL-01, APP-03jsmith accesses DB-PROD-07 for the first time
Data volumejsmith downloads < 50 MB/dayjsmith downloads 4.7 GB in one hour
Application usagejsmith uses Outlook, Chrome, Exceljsmith runs PowerShell, PsExec, Mimikatz
Network destinationsjsmith's workstation contacts 15-20 internal IPsWorkstation contacts 200+ unique IPs in 10 minutes
Peer groupFinance team averages 2 server logons/weekjsmith (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)

ScenarioAssetUserTimeGeoBehaviorVerdict
ATier 3 workstationEmployee (jsmith)9:15 AM TuesdayOffice VPN IPDaily patternFP — Close
BTier 1 domain controllerEmployee (jsmith)9:15 AM TuesdayOffice VPN IPFirst time accessing DCInvestigate — why is jsmith on the DC?
CTier 1 domain controllerDomain Admin (svc-backup)2:00 AM SaturdayServer subnetScheduled backup windowExpected — Close
DTier 2 email serverEmployee (jsmith)2:47 AM SaturdayMoscow, RussiaNever logged in from RussiaCritical — Escalate
ETier 3 workstationEmployee (jsmith)2:47 AM SaturdayMoscow, RussiaHas history of late-night remote work + uses NordVPNInvestigate — 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:

  1. Asset: WIN-SERVER-01 — check your asset inventory for tier classification
  2. User: jsmith — check HR directory for role, department, privilege level
  3. Temporal: 02:47 UTC — convert to user's local time, check against their normal hours
  4. Geographic: Moscow, Russia — check GeoIP against user's expected locations and corporate IPs
  5. 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

1

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?

2

What is the primary reason that asset value is considered the most impactful context dimension during alert triage?

3

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?

4

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?

5

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?

6

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?

7

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?

8

Why do attackers frequently launch major breach campaigns on Friday evenings before holiday weekends?

9

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?

10

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