Security Engineering / Tools / SentinelOne
Tool 02 · EDR/XDR

SentinelOne An autonomous agent that models everything happening on an endpoint as a linked story, decides locally whether that story is malicious, and can undo it. Learn Storyline and the query syntax and you can answer almost any endpoint question in minutes.

needs → Windows, macOS, Linux 5 tiers · 15 modules console · queries · response
Tier 0 · Groundarchitecture

How the agent thinks

Module 0.1

Agent architecture and the on-device engines

Why it still works offline

Unlike products that ship telemetry to a cloud brain for a verdict, SentinelOne runs its detection engines on the endpoint. Consequence: detection and response continue with no network connectivity — relevant for laptops on hostile networks and for ransomware that severs connectivity first.

Static AIPre-execution model over file characteristics — replaces signature AV.
Behavioural AIWatches execution as it unfolds; the engine that catches fileless and novel attacks.
StorylineContinuously links every process, file, registry, network and thread event into a single traced context.
Remediation / RollbackReverses file-system changes attributable to the malicious story (Windows, via VSS).
Deep VisibilityThe queryable event stream — every process, DNS lookup, connection and file write, whether or not anything was detected.

Platform notes: on macOS the agent uses Apple's Endpoint Security framework and therefore requires MDM-delivered system-extension approval and Full Disk Access. On Linux it typically runs in user space with eBPF, which matters for kernel-version compatibility on servers.

Module 0.2

Storyline — the core concept

One ID that ties an entire attack together

Every execution chain gets a Storyline ID. Related events inherit it, so a single identifier retrieves the whole incident rather than a pile of disconnected alerts.

Storyline ID: A1B2C3D4E5F6 outlook.exe └─ WINWORD.EXE (opens Invoice.docm) └─ powershell.exe -enc SQBFAF... ├─ NETWORK cdn-metrics.io:443 ├─ FILE %TEMP%\update.dll (written) └─ rundll32.exe %TEMP%\update.dll,Start └─ REGISTRY HKCU\...\Run\Updater (created)

Practical consequences worth internalising:

  • Triage means examining one story, not correlating twenty alerts by hand.
  • Rollback can be precise because the agent knows exactly which changes belonged to that story.
  • Hunting by Storyline ID (src.process.storyline.id) is the fastest pivot in the product — find one bad event, retrieve everything connected to it.
Module 0.3

Policy: Detect vs Protect, and the response modes

The setting that determines what happens at 3am
ModeBehaviourUse when
DetectAlerts only; nothing is stoppedInitial rollout, sensitive servers under observation
ProtectActs automaticallySteady state everywhere
Protect → KillTerminates the malicious processesSensible default
Protect → QuarantineKill plus isolate the files involvedStandard for workstations
RemediateUndo changes made by the storyPost-incident cleanup
RollbackRestore encrypted/modified files from VSS (Windows)Ransomware — requires VSS enabled and sufficient space

Policy is set per Site and Group and inherits down from the Account level, so structure your groups to match how you want to differ: servers, workstations, developer machines (noisier by nature), executives.

Rollback is not a backup. It depends on Volume Shadow Copy being enabled with adequate storage, only covers Windows, and only reverses what the agent attributed to the story. Ransomware that deletes shadow copies first — a standard step — defeats it. Test it before you rely on it in a resilience scenario, and never present it to a regulator as your recovery control.
Tier 1 · Operatethe console

Console navigation and triage

Module 1.1

Console map and hierarchy

Account → Site → Group → Endpoint
AreaContainsGo there to…
DashboardThreat counts, agent health, coverageDaily health check
Incidents / ThreatsDetections with verdict and statusTriage and resolve
Visibility (Deep Visibility)Full event searchHunt and investigate
Endpoints / SentinelsAgent inventory, versions, statusCoverage and health
PolicyMode, engines, exclusions per groupChange enforcement
ExclusionsPath, hash, certificate, browserTune — carefully
Rules (STAR)Custom detection rules from saved queriesBuild your own detections
Activity logAdmin actionsWho changed what
Singularity MarketplaceIntegrationsSIEM/SOAR connections

Agent health is a security control. Track: agents not reporting for N days, out-of-date agent versions, agents in Detect mode that should be in Protect, and — on macOS — agents lacking Full Disk Access. A console that says "healthy" while an agent lacks permissions is the failure mode to design against.

Module 1.2

Triaging a detection

A repeatable order of operations
1Read the story, not the alert title. What was the root process, and what was the initiating user?
2Establish origin — a download, an email attachment, a USB, an install, a script?
3Check the indicators tab: injection, persistence, credential access, discovery, mapped to ATT&CK.
4Assess scope — hunt the hash, the domain, the command line and the Storyline pattern across the whole estate.
5Decide — mark as threat/suspicious/false positive, kill/quarantine/remediate/rollback, or network-isolate the host.
6Follow through — if credentials or browser data were touched, this is now an identity incident too.

Network isolation (Disconnect from Network) keeps the agent's own connection to the console alive so you can still investigate and run remote commands. Isolate early and apologise later; it is far cheaper than lateral movement.

Module 1.3

Exclusions, honestly

The most dangerous screen in the console
TypePrecisionComment
HashHighestExact file; safest, but breaks on every update
Certificate (signer)High-ishGood for a trusted vendor; a stolen cert defeats it
PathLowAnything dropped there becomes invisible
BrowserNarrowSpecific browser-related suppressions

Rules to hold to: never exclude a whole drive, a user profile, or %TEMP%; scope exclusions to the smallest group that needs them; record requester, reason and review date; and re-review quarterly. Attackers who know your exclusions will use them, and exclusion lists outlive the people who created them.

Tier 2 · Engineerquery language

Deep Visibility and PowerQuery

Module 2.1

The event model and field names

What you can search for
Event typeKey fields
Processsrc.process.name, src.process.cmdline, src.process.parent.name, src.process.user, src.process.image.path, src.process.publisher, src.process.storyline.id
Filetgt.file.path, tgt.file.sha256, tgt.file.extension, tgt.file.isSigned
Networkdst.ip.address, dst.port.number, url.address, event.network.connectionStatus
DNSevent.dns.request, event.dns.response
Registryregistry.keyPath, registry.value
Loginevent.login.userName, event.login.type, event.login.loginIsSuccessful
Cross-processtgt.process.name, event.type = "Duplicate Process Handle" / injection events
Endpointendpoint.name, endpoint.os, agent.version, site.name

The src. / tgt. convention is the thing to internalise: src is the actor (the process doing something), tgt is the object acted upon (the file written, the process injected into).

Module 2.2

Query syntax, with worked examples

From simple filters to aggregations

Operators

=  !=            exact match / negation
in ( ... )       set membership
contains / containscis    substring (cis = case-insensitive)
matches          regular expression
AND OR NOT ( )   boolean composition

Everyday queries

// Office spawning a shell — the classic
src.process.parent.name in ("WINWORD.EXE","EXCEL.EXE","OUTLOOK.EXE","POWERPNT.EXE")
AND src.process.name in ("cmd.exe","powershell.exe","wscript.exe","mshta.exe")

// encoded PowerShell
src.process.name = "powershell.exe"
AND (src.process.cmdline containscis "-enc"
     OR src.process.cmdline containscis "frombase64string"
     OR src.process.cmdline containscis "downloadstring")

// execution from a user-writable staging directory
src.process.image.path containscis "\\appdata\\local\\temp\\"
AND src.process.publisher = ""

// LSASS access (credential dumping)
tgt.process.name = "lsass.exe" AND src.process.name != "MsMpEng.exe"

// macOS fake password prompt
src.process.name = "osascript" AND src.process.cmdline containscis "display dialog"

// suspicious DNS: long, high-entropy labels
event.dns.request matches "[a-z0-9]{25,}\\."

// pull the whole incident once you have one event
src.process.storyline.id = "A1B2C3D4E5F6"

PowerQuery: aggregation and pipelines

PowerQuery adds a piped, aggregate-capable syntax on the same data — this is where hunting gets genuinely powerful, because prevalence analysis is what separates "weird" from "rare and therefore interesting".

// rarest signed-less binaries in the estate
src.process.publisher = ""
| group count = count() by src.process.name
| sort -count
| limit 100

// which hosts ran a given hash
tgt.file.sha256 = "<hash>"
| group hosts = estimate_distinct(endpoint.name) by tgt.file.path

// beaconing candidates: repeated connections, few distinct destinations
event.type = "IP Connect"
| group conns = count(), dsts = estimate_distinct(dst.ip.address)
    by endpoint.name, src.process.name
| filter conns > 500 AND dsts < 3
| sort -conns

// PowerShell command-line prevalence — outliers rise to the bottom
src.process.name = "powershell.exe"
| group runs = count() by src.process.cmdline
| sort runs
| limit 50
Hunting heuristic: sort ascending. In a healthy estate, malicious things are rare and benign things are common. "Show me the least common command lines" surfaces more real findings than any list of known-bad strings.
Module 2.3

STAR rules — turning queries into detections

Custom detection with response attached

STAR (Storyline Active Response) converts a saved Deep Visibility query into a rule that evaluates continuously and can act automatically.

1Write and validate the query against historical data — check the false-positive volume before it becomes a rule.
2Save as a STAR rule with severity, description and ATT&CK mapping.
3Choose scope (site/group) and response: alert only, kill, quarantine, or network-isolate.
4Start in alert-only, review for a fortnight, then enable automated response for the high-confidence subset.

Good STAR candidates are things that are unambiguous in your environment: execution from a specific staging path, a tool nobody legitimately runs, persistence created by a non-IT process, or the fake-password-prompt pattern on macOS. Poor candidates are broad behaviours with legitimate variants — those belong in the SIEM where they can be correlated with other signals rather than actioned alone.

Drill 1

You need to find every host where an unsigned binary executed from a user Temp directory in the last week, ranked by rarity. Which approach?

Query, group, sort ascending. Deep Visibility contains all process events regardless of whether anything was detected — that is the point of it. Grouping by name and sorting ascending surfaces the rare items, which is where findings live. Searching the threat list only shows what already triggered, which by definition excludes what you are hunting for.
Tier 3 · Respondactions

Response capability

Module 3.1

Remote actions and forensics

What you can do without touching the machine
  • Network isolation — cut the host off while retaining agent connectivity.
  • Remote Shell — a full interactive session on the endpoint. Access to this should be tightly restricted, MFA-protected and logged: it is the most powerful capability in the platform and, in an attacker's hands, a management-console-to-RCE path across the fleet.
  • Fetch files — retrieve artefacts for analysis.
  • Fetch logs — agent diagnostics for support cases.
  • Kill / quarantine / remediate / rollback — the response ladder from Tier 0.
  • Scripts (Remote Ops) — run vetted collection or remediation scripts at scale.
Treat the EDR console as tier-0 infrastructure. It can execute code as SYSTEM on every endpoint you own. Enforce SSO with phishing-resistant MFA, scoped admin roles, no shared accounts, alerting on privileged console actions, and export of the activity log to the SIEM. Compromise of this console is worse than compromise of a domain controller.
Module 3.2

Integration with the rest of the stack

Where the endpoint signal should flow
  • To the SIEM — threats and, where volume allows, Deep Visibility events. Endpoint context is what turns a network alert into an incident, so at minimum send detections, agent health and console activity logs.
  • To SOAR — isolate-on-alert playbooks, enrichment lookups, ticket creation.
  • To the SSE/IdP — device health as a posture signal for conditional access and Netskope policy.
  • API — the management API supports everything the console does: pulling threats, agent inventory, running queries and issuing response actions. Good uses include automated agent-coverage reconciliation against your asset inventory, which is exactly the evidence an auditor asks for.
Tier 4 · Adversarialsenior

Limits and evasion

Module 4.1

Where EDR does not save you

Say it before an attacker demonstrates it
  • Unmanaged devices — contractors, personal machines, forgotten servers. Coverage reconciliation against asset inventory is the control, not the agent itself.
  • Identity-only attacks — AiTM phishing, OAuth consent grants and session-cookie replay never touch an endpoint you monitor.
  • BYOVD — bringing a vulnerable signed driver to attack the agent from the kernel.
  • Tamper and uninstall — enforce tamper protection with a passphrase, and alert on agent uninstall, disable, or extended non-reporting.
  • Living off the land at low volume — a single legitimate admin tool used once looks exactly like administration. Prevalence and context are the only defence.
  • Exclusion abuse — see Tier 1; your own exclusion list is documented evasion guidance.
  • macOS/Linux depth — telemetry is genuinely richer on Windows. Do not assume parity across platforms; test it.

The senior framing for a board or a client: EDR is a very strong control for endpoint execution and a weak one for identity abuse. That is not a criticism of the product — it is why the stack also contains an IdP, an SSE and a SIEM, and why the three must be correlated rather than run in parallel.

Drill 2

SentinelOne reports clean across the estate, yet finance has been defrauded via a supplier invoice change. Was EDR at fault?

Outside the control's scope. BEC involves no malware and no code execution, so there is nothing for an endpoint agent to observe. The relevant controls are behavioural email security, DMARC and lookalike-domain monitoring, and — decisively — an out-of-band callback procedure for bank-detail changes. Knowing which control owns which failure is exactly what stops post-incident reviews from blaming the wrong tool.
Referencesearchable

Glossary