Security analytics on the data already in your Databricks lakehouse.

Built to make defenders faster.

Search that reaches every table at once. Anomalies surfaced before you ask. One-screen triage, a full investigation workflow, and an AI partner that hunts on your terms and shows its work. All built on top of Databricks.

Every compromise leaves common traces.

Attackers can avoid signatures and combine familiar tactics in new ways. Sati's thesis starts with the identities behind that activity and the context your team knows best: your own environment.

Every successful compromise eventually acts through an account.

A compromise can act through a human account, a service identity, a machine account or SYSTEM on a particular host. Even when an attacker never logs in, an exploited service or malicious process runs in an identity's context. That makes account and host history a valuable starting point for investigation, wherever the available telemetry makes that activity visible.

Every attack composes into recognizable categories.

Persistence, privilege escalation, discovery, lateral movement, collection, exfiltration. Novel techniques recompose these primitives. They do not escape them.

Attackers often turn familiar tools to unfamiliar purposes.

PowerShell, ping, file-transfer commands and the admin's own remote-management tools all have legitimate uses. In an intrusion, who uses them, where they run and what happens around them can tell a different story. Familiar tools become useful signals when their use departs from the context your team expects.

Every outside attacker is learning your environment.

When an intruder probes access, explores unfamiliar systems or tests a route to valuable data, that learning can leave useful signals. Sati looks at those patterns alongside account and host history to help distinguish expected work from activity worth investigating.

So Sati is built to recognize what is not normal here, and to put that judgment within reach of the whole team.

Illustrative service-account activityThirty columns show days 1 through 30; twenty-four rows show hours 00:00 through 23:00. Three recurring daily service windows appear in teal. An unusual burst appears in amber at 19:00 on day 20.
Illustrative activity for svc-reporting over 30 days, one cell per hour. Three service windows repeat each day. The amber cell marks an unusual evening burst: twenty hosts in eight minutes.

See how analysts use Sati, from alert to report.

Explore seven parts of the analyst's workflow through example investigations: assess a signal, examine the entities involved, ask questions, hunt for related activity and build a case from the evidence.

1
Findings & Alerts

A queue that already knows the story behind each item.

This is where an incident starts. Hunts, scheduled hunts, EBA and alert triage all feed one incident-management surface, and each item arrives with the reasoning that produced it, not just a title.

Assign to an analyst, add notes, link an investigation, or spin a follow-up hunt straight from an item. A timeline across the three lanes is marked by severity and source, and the rail badge shows the new count each viewer can actually see.

Items move through a clear lifecycle: new, acknowledged, assigned, investigating, resolved. A recurrence refreshes an open item instead of burying you in duplicates.

  • Visibility follows the source hunt's sharing; EBA alerts are visible to all
  • Open the hunt, ask Sati about the item, or create a new hunt from it
  • The default view is everything not yet resolved
Findings & Alerts7 new · last 7 dSources: hunts · scheduled · EBA
CriticalAD database exfiltration + Veeam backup-credential enumeration: domain-wide compromiseHunt39 d
CriticalInitial access = password spray, then lateral movement via a spoofed account nameHunt39 d
CriticalCoordinated RMM mass-deployment to 5 hosts, incl. a DC and a backup serverHunt39 d
HighAttacker staging host identified; account takeover confirmed by origin mismatchHunt39 d
HighHands-on-keyboard AD/privilege discovery, 18-day dwellHunt39 d
Sati's Findings & Alerts mode: a timeline across hunts, scheduled hunts and EBA, a prioritized queue of seven new items, and the detail panel for a Critical finding with its facts and actions.
Findings & Alerts: one queue fed by hunts, scheduled hunts and EBA.
2
Triage

One screen. A verdict that shows its reasoning.

The item names a host or an account. Point Triage at it and a window: Sati pulls every source that knows the subject, scores each risk dimension against a baseline built from its own recent history, and gives you two verdicts.

The first verdict comes from repeatable scoring rules, with the signals behind each dimension available to inspect. The second is Sati's assessment of that evidence, with its estimated confidence and the likelihood of a benign explanation. These are AI assessments for this case, not measured accuracy or false-positive rates.

Recommended actions arrive as a checklist. What's worth validating is listed separately, so a less experienced analyst gets a structured first call rather than a raw event dump. Hunt related activity is one click.

  • Account or host, identified however you have it: UPN, SID, hostname, device id, address
  • Sources and coverage are shown for every run; a dimension without data says so
  • Deep analysis adds a kill chain and ATT&CK techniques, each citing its events
TriageAccount103 auth events · 9 of 12 sources returned records · 14.27 s
50High
Riley RoeContract Analyst · External · rroe@corp.exampleAug 20 11:18 – Aug 21 23:18, baseline 7 d before
DeterministicInvestigate
→
SatiEscalate
AI confidence 85%
AI benign estimate 10%
  • Force sign-out, password reset and MFA re-registration for rroe pending investigation
  • Pull full sign-in logs for both impossible-travel pairs to confirm source IPs, device IDs and session tokens
  • Check for token replay given successful concurrent sessions with zero failures
Auth pattern100
Location100
Timing39
Cloud activity30
Account integrity10
Alerts0
Device0
Probe then succeed0
Access scope0
Velocity0
Baseline deviation0
Sati's Triage mode for the account rroe: composite risk 50 High, a deterministic Investigate verdict beside Sati's Escalate at 85% confidence, the analysis, a checklist of recommended actions and the scored risk dimensions.
Account triage for one contractor, the day after an impossible-travel pair.

Coverage describes the scoring dimensions included in this assessment. A source can return no matching events and still provide a useful observation. Review source and dimension gaps alongside the score; 100% does not mean complete visibility into the environment.

3
Ask Sati

Ask in plain language. Get an answer with receipts.

Before committing to a hunt, ask what you need to know: which hosts the account signed in to this week, whether LOLBins ran on the box, what a term means. Sati answers directly, and shows the query behind it.

Ask Sati reads what you can see: the mapped tables, the environment's knowledge, your hunts and your findings. For a simple question it runs a query and answers. For a complex one it pushes back, recommends a hunt type with real knowledge of each, and helps you shape the premise.

And it can retrieve events straight into an investigation for you to review: every network event from one PC to one domain, say, carried in with the correlated fields already attached, through the same path a hunt uses.

  • Every answer from the lake carries a receipt and an Open in Search link
  • Result tables are capped on screen with the rest available to download, so a list answer is never silently cut short
  • Times are shown in your own zone; it understands Search's query language
Ask Sati6 of 15 steps
What hosts was the svc-reporting account active on last week?

search devicelogonevents(logon), identitylogonevents(logon) svc-reporting Aug 04 00:00 – Aug 11 00:00 EDT
SELECT DeviceName, LogonType, Protocol, COUNT(*) AS events, MIN(Timestamp) first_seen, MAX(Timestamp) last_seen FROM <devicelogonevents> WHERE user = 'svc-reporting' AND Timestamp >= '2026-08-04' GROUP BY DeviceName, LogonType, Protocol
Sati's Ask Sati mode: a question about the svc-reporting account answered with search and run_sql receipts, a results table of hosts and logon types, and Sati's reasoning about a credential-sweep pattern.
Ask Sati spots a fan-out pattern and offers to shape it into a hunt.
4
Agentic hunting

Sati runs the hunt. You keep the controls.

Hand Sati the premise and keep working. It plans an approach, waits for your approval, queries the data, reasons over what it finds, and scopes the attack in the background: the attacker's path reconstructed, mapped to ATT&CK and backed by raw events.

You see the plan, the explanation and every query as it's issued, and you can redirect or stop the hunt. A second pass attaches supporting events to findings, helping you assess the evidence and identify gaps or unresolved questions.

Six hunt types ship, each shaping the agent for a different question: intrusion, insider, hygiene, IOC, general, and EBA discovery. Sati uses your environment knowledge to assess whether activity fits the tools, systems and behavior your team expects.

  • Every hunt runs against a token budget, tracked live; extending it is your decision
  • It characterizes the data in aggregate first, then pulls raw detail only where a signal warrants
  • Intrusion and insider hunts emit an interactive attack timeline for the report
HuntDefender flagged a suspicious service installation on demo-srv-4IntrusionBudget 0%
Plan · 0 of 8 approved steps
  1. Anchor the incident: the Aug 8 service-install alert on demo-srv-4
  2. Triage demo-srv-4 and characterize the beachhead
  3. Establish initial access: how the attacker reached demo-srv-4
  4. Beachhead actions: process tree, file drops, persistence
  5. Account propagation and credential access
  6. Network and lateral propagation, campaign fan-out
  7. Exfiltration, C2 and ransomware-precursor checks
  8. Synthesize scope and emit curated findings
Reconstructed path
Aug 5
Password spray from staging host cracks a service accountT1110.003
Aug 6
Privilege escalation via a spoofed account name on a DCT1134
Aug 8
NTDS.dit theft on the domain controller, then outbound SMB exfilT1003.003
Aug 9
Veeam backup credential stores enumerated; RMM mass-deployed to 5 hostsT1219
Aug 11
Defender real-time protection disabled via SYSTEM PowerShellT1562.001
Curated findings
Critical
AD database exfiltration + Veeam backup-credential enumeration: domain-wide credential compromise
Critical
Initial access = password spray, then lateral movement and priv-esc via a spoofed account name
High
Attacker staging host identified; account takeover confirmed by origin mismatch

Result Completed · 10 findings

A completed intrusion hunt in Sati: an interactive attack timeline, Sati's 8-step plan marked complete, the reconstructed attacker path mapped to MITRE ATT&CK, and the curated findings panel.
A completed intrusion hunt, with the attack timeline and curated findings.
6
Anomaly detection

What a senior analyst checks first, already checked.

Seven detectors run over every result set: the checks an experienced analyst makes by hand when a search comes back with a sea of events.

Each flagged event carries a score and the signals behind it, so you can see why it was flagged and read it in place, between the events that came before and after. Pips on the timeline show when the anomalies fell.

The threshold is calibrated automatically and yours to move. The same detection runs over a fresh search and over the curated events inside an investigation.

  • Scores explain themselves: rare action, 2 of 95, 2.1%
  • Detectors can be switched off one at a time
  • Geo and network-owner enrichment feeds the location and proxy signals
Anomalies on52%3 of 143 flagged

Seven detectors. Hover or tap one to see what it looks for.

  1. 76.8
    Rare action: anonymouslinkcreated (2/95, 2.1%)
    Aug 20 22:44 · cloudappevents · 5 signals · rarity, timing, sequence
  2. 59.1
    Rare action: mailitemsaccessed (4/95, 4.2%)
    Aug 20 15:27 · cloudappevents · 4 signals
  3. 48.4
    Rare action: sharingset (1/95, 1.1%)
    Aug 20 22:44 · officeactivity · 3 signals
  4. 37.2
    Sign-in from an address with anonymizing-proxy history
    Aug 20 15:18 · signinlogs · 2 signals · proxy, rarity
  5. 31.5
    Off-hours interactive sign-in for this account
    Aug 20 23:10 · aadnoninteractive · 2 signals
  6. 24.9
    First-seen user agent for this account
    Aug 21 13:17 · signinlogs · 1 signal
  7. 18.3
    Uncommon application for this account: Microsoft 365 Portal
    Aug 21 15:22 · cloudappevents · 1 signal
7
Investigations

From a pile of events to a story you can defend.

An investigation is the case file: every relevant event from searches and hunts, the trail that found them, and Sati's reading of the evidence. When the case is built, the curated evidence becomes the deliverables.

External threat treats the case as a possible intrusion. Insider threat reads the same events for misuse of legitimate access. Local anomaly frames it as a departure from this environment's own normal. Each produces a completeness rating, the key unknowns, an attack story, an assessment of the entities involved, where to scope next, and a threat-actor profile.

Follow cited events back to the evidence and assess the explanation yourself. Sati checks that event references exist; the analyst evaluates whether they support the conclusion. Completeness is an AI assessment of the case, with remaining questions identified.

From the curated evidence the investigation produces an incident report, a timeline and an executive briefing. Sati annotates the key events inline, explains any single event on request, and answers questions over the case in its own thread.

  • Sati doesn't see raw dumps: a sweep or spray is faithfully aggregated first, and the full rows stay in the case as the evidence pack
  • Star, tag and annotate events; notes carry their author
  • Report, timeline and briefing from the case; export as PDF, or the whole case as JSON or CSV
InvestigationDemo-host-2204 events · 13 steps · AI-assessed completeness Medium
External threatInsider threatLocal anomalyAsk Sati
  1. regression-user-2 downloads pdf-tools-setup.exe via chrome.exe on demo-host-2: a trojanized PDF-utility installer used for initial access.

    demo-host-2regression-user-2T1204.002Evidence · Aug 28 11:42:00
  2. A service named ScreenConnect Client is installed via sc.exe pointing at C:\ProgramData\client.exe, giving the implant SYSTEM-level persistence. EDR raises a suspicious service installation alert.

    client.exeSYSTEMT1543.003Evidence · Aug 28 11:47:20
  3. rundll32.exe writes out.dmp to C:\ProgramData, an LSASS memory dump, triggering a Critical credential-theft alert.

    rundll32.exeout.dmpT1003.001Evidence · Aug 28 12:44:30
  4. Harvested credentials are used in NTLM network logon attempts from demo-host-2 to demo-host-3. The attempts fail, but EDR raises a High suspicious remote logon alert.

    demo-host-3T1021.002Evidence · Aug 28 12:51:58, +3 similar
Key unknowns
  • Whether the lateral-movement attempts against demo-host-3 ever succeeded
  • Which credentials were in the LSASS dump, and whether they were reused in Entra or Okta
  • Fleet scope of the dropper beyond demo-host-2 and demo-host-3
Sati's Investigations mode: the Demo-host-2 case with 204 events, the External threat analysis showing a completeness rating, key unknowns and an attack story whose entries cite their evidence.
The external-threat analysis of a browser-delivered RMM intrusion.

Environment knowledge

A growing picture of your environment.

Sati builds context through discovery and hunts: the software and tools you use, important systems and servers, and accounts or files that matter to your business. That knowledge informs future hunts and the questions Sati proposes.

See how that context shapes proposed hunts
  • Learn from the work.

    Discovery and investigations surface useful facts about how your environment works, so future hunts can build on what is already known.

  • See where knowledge came from.

    Review the evidence and history behind recorded facts, from familiar administration tools to important systems and relationships.

  • Keep your team in control.

    Inspect, correct, approve or retire facts as your environment changes. The context Sati uses stays reviewable and editable.

Proposed hunts

Current threats. Hunts shaped for your environment.

On a configurable daily schedule, Sati researches current threat reporting and proposes hunts informed by your organization, known software and the security data available in your lakehouse.

  • Understand why it matters.

    Each proposal explains its relevance and includes the reporting behind it.

  • Start with a focused question.

    Review what the hunt would investigate and which security data could help answer it.

  • Choose what to pursue.

    Turn a proposal into a hunt, review it and start when ready. You keep control of the plan and approvals.

A Sati hunt proposal for remote-management tool abuse, with a tailored premise, why it matters now, suggested data sources, references and a Create a hunt from this action.
A proposal in Sati: the rationale, relevant data sources and references are available for review before creating a hunt.

Always on, between the hunts.

Most of what Sati does runs on a schedule, not on a click. Alerts from your other tools are read as they land, the environment's own rules are checked on a cadence, and the hunts that caught something keep looking. All of it arrives in Findings & Alerts with the reasoning attached.

Alert triage

Your EDR, identity provider, email and cloud tools already raise alerts into the lake. Sati learns where they live during discovery, then polls them on a tick you set, from one to fifteen minutes, and works them like a tier-1 analyst: each new alert is read in the context of the recent activity around the same host, account or process, so a pattern across several quiet alerts is seen as one loud one. Only what needs a person is escalated, as a finding with the reasoning attached. Built to stay token-efficient at dozens of alerts a day.

Environment Behavior Analytics

A model of what is normal for this environment rather than for a person. Service accounts have low behavioural variance; a plant subnet has a fixed set of peers. Analysts write rules, such as nothing reaches the ERP from outside the plant subnets, or let an EBA discovery hunt propose them. Sati checks the active rules continuously, records every violation as an observation tied to its rule, and raises the serious ones as alerts.

Scheduled hunts

Any hunt premise can run on a schedule. The RMM-install sweep that found the Atera deployment once keeps running every week, and its findings land in the same queue with the same evidence attached.

Always onevery item lands in Findings & Alerts
alert triage
Tick every 5 min · 14 alerts read this hour13 closed as consistent with their context. 1 escalated: a Defender credential-theft alert on demo-host-2, read together with the ScreenConnect service install 57 minutes earlier.Escalated · Critical
EBA
27 active rules · checked this cycle1 violation of plant-subnet-egress: demo-host-7 reached the ERP from outside the plant subnets.Alert · High
scheduled hunt
RMM-install sweep · weeklyLast run clean across 212 hosts. Next run Sunday 02:00.Clean
The Sati owl: a stylized owl rendered in brushed steel and deep navy, circuitry and a star-map woven through its form.

Sati is a second analyst, on your side of the line.

Sati hunts alongside your team, with layered controls for access to your security data. Four layers work together to keep queries constrained and broader scope subject to approval.

Read-only database access

Setup requires read-only Databricks permissions for Sati's deployment identity, restricting its access at the database level.

Queries checked before execution

AI-generated SQL is parsed with SQLGlot, checked against read-only statement rules and regenerated before it runs.

Approval for broader scope

Requests beyond configured time or table-count thresholds require analyst approval, with the query and its rationale available to review.

Rejected queries stay blocked

Approval to expand a hunt's scope cannot override a SQL safety rejection.

AI usage controls

Set the limits. Track AI usage.

Configurable AI limits and hunt budgets help your team manage model usage as investigations progress.

Token controls govern model usage. Databricks compute and other service charges remain separate.

Configure limits for the work.

Set AI usage limits across key workflows and token budgets for individual hunts.

Track usage as the hunt progresses.

See token consumption alongside the plan, queries and findings.

Decide when to extend a budget.

Sati requests analyst approval to extend a hunt's budget when further work is needed.

What stays yours.

Built on Databricks, with your environment and data under your control.

Bring your existing data lake.

If you already use Databricks for security events, Sati runs against the data in that environment.

Get help setting one up.

If you don't have a Databricks security data lake yet, we can guide you through setting it up and ingesting your log data.

Keep your Databricks instance.

Whether you bring an existing instance or set up a new one with our guidance, that instance remains yours.

Keep your security data.

You retain the data in your Databricks environment, regardless of whether you continue using Sati.

Use your own model endpoint.

Keep control of where AI requests are processed, using the endpoint and privacy settings your organization approves. Sati supports Microsoft Foundry, Databricks Foundation Model APIs, and Anthropic's API directly.

You sign in as yourself.

In OAuth mode, supported search and triage workflows use your own Databricks identity and permissions. Agent SQL uses the separately configured read-only deployment identity.

Two ways to point AI at a SOC.

The category is filling with tools that promise to automate the analyst away. Sati makes a different bet.

Replace the analyst

An autopilot that closes tickets. You trust the verdict and hope the reasoning held.

  • Answers you take on faith
  • A black box between the alert and the call
  • Judgment that leaves when the vendor changes the model
  • The analyst's skill atrophies

Enable the analyst

A force multiplier that makes a good analyst faster and a newer one better, with the human keeping the call.

  • Search that reaches the whole environment at once
  • The first-pass checks a senior analyst makes, bundled and always run
  • A hunting partner that shows every query and waits at every gate
  • Queries and cited evidence you can review; judgment recorded where the team can reach it

Where it's headed.

Sati is in alpha, with a hosted demo for invited testers. It's built for mid-sized businesses and enterprise SOCs, with a hunt control plane that keeps the analyst in command.

  • Runs on Azure Databricks today, with a lighter Delta/Parquet edition in design for teams without a lakehouse
  1. Detection-engineering loop

    Turning confirmed findings into reusable detections for similar activity, so insights from a hunt can inform ongoing monitoring.

    On the roadmap
  2. Fleet term index

    A Sati-owned index over your lake for instant cross-table term routing and preview counts, and cross-client indicator sweeps for managed-service deployments.

    On the roadmap
  3. Simplified ingestion

    A repeatable way to land Microsoft cloud logs, API-pull sources, local host logs and syslog into the lake, so standing Sati up is a short project, not a long one.

    On the roadmap

See Sati on an environment like yours.