Who Ran That? Attributing Endpoint Activity to AI Agents
Agentic AI is already running on developer endpoints, in CI/CD pipelines and against identity infrastructure. The activity it generates lands in the same telemetry a SOC already collects, but it arrives stripped of the things analysts normally rely on to work out who did what. There is no reliable parent process, no consistent user context, and no signal in the raw event that separates a developer typing a command from an agent deciding to run one. Security operations teams are absorbing the consequences without a way to attribute activity back to an agent, which means AI forensics is largely guesswork right now. This session will walk through why OS-level evidence falls short, then set out a repeatable way to tie process execution back to the agent that caused it.
We start with the threats aimed at agents: prompt injection through untrusted content, poisoned skills and configuration files, malicious extensions and connectors, and abuse of the long-lived credentials agents hold. From there we trace what happens mechanically when an agent is asked to do something routine on a device, from tool invocation down to shell execution, and what that leaves behind in endpoint, cloud and identity telemetry.
The immediate problem for a SOC is volume. Agents drive nearly everything through the command line, so behavioural detections that used to be low noise and high fidelity (e.g. secret access, credential file reads, curl-based ingress and egress) now fire constantly. Filtering AI-initiated activity wholesale isn't an option, because a manipulated or compromised agent produces the same primitives as a legitimate one. Alerting on every agent action isn't workable either.
Most of the session is on attribution. Agents typically spawn an interactive shell and execute from inside it, so the agent binary never shows up as the parent process and conventional lineage checks miss it. We walk through using graph semantic operators in KQL to reconstruct full process ancestry and attribute arbitrary execution back to an agent, then treat that attribution as a triage dimension rather than an off switch. The last part is implementation: separating user-initiated from AI-initiated activity, layering malicious signals over the top, and correlating alerts into agent-scoped incidents.