You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/usage/inject-status.md
+47-37Lines changed: 47 additions & 37 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,11 @@ Every Inject execution produces a **status** that tells you the outcome at a gla
4
4
completion. Statuses are computed automatically from the execution traces reported by
5
5
[OpenAEV Agents](openaev-agent.md).
6
6
7
+
**⚠️ IMPORTANT: Execution Status vs. Expectation Results**
8
+
> The **Execution Status** strictly reflects the *operational state* of the action (e.g., did the command run, crash, or time out); It exists **only to give the user visibility into the technical execution** of the injector.
9
+
>
10
+
> Execution Status **DOES NOT** represent your security posture. To evaluate if an attack was actually detected or prevented by your security controls, you must refer to **Expectation Results**, which gather data directly from OpenAEV Collectors.
11
+
7
12
## Why it matters
8
13
9
14
-**Diagnose at a glance**: know immediately whether an Inject worked, failed, or was blocked.
@@ -21,7 +26,7 @@ When an Inject targets [Endpoints](assets.md), each installed Agent reports its
21
26
|**Attack command**| Executes the actual Payload |
22
27
|**Cleanup**| Removes artifacts left by the attack |
23
28
24
-
!!! warning
29
+
!!! Note
25
30
26
31
If a prerequisite check succeeds, the retrieval step is skipped. The UI always marks prerequisite checks as "SUCCESS". Inspect the stderr logs to verify actual execution results.
27
32
@@ -37,67 +42,72 @@ Only tabs with at least one active target appear. Use pagination and filters to
37
42
38
43
## Trace statuses reference
39
44
40
-
Every execution step reports a **trace status**, grouped into three categories.
45
+
Every execution step reports a **trace status**. Below is the complete list of actionable execution statuses, divided into logical categories to help operators troubleshoot technical issues.
|`SUCCESS WITH CLEANUP FAIL`| Main command succeeded, but cleanup failed |The main command executed successfully, but the cleanup step failed. Check cleanup prerequisites and logs on the target.|
48
-
|`WARNING`| Command completed with stderr output | The command completed but produced stderr output. Review stderr for potential issues.|
49
-
|`ACCESS DENIED`| Command blocked due to insufficient privileges | The command was denied due to insufficient privileges. This confirms the security control is working: the agent attempted execution but was blocked.|
52
+
|`EXECUTED`| Command executed to completion without system errors |*Note: This only means the command ran, not that it bypassed defenses*|
53
+
|`EXECUTED WITH CLEANUP FAIL`| Main command succeeded, but cleanup failed |Check if the action locked the file or if permissions changed during execution|
54
+
|`WARNING`| Command completed but produced stderr output|Review stderr logs for potential non-blocking issues |
55
+
|`ACCESS DENIED`| Command denied by the OS due to insufficient privileges| Check if the agent is running with the required rights (e.g., Admin/Root)|
|`COMMAND NOT FOUND`|Command not found on the target | The command was not found on the target. Ensure the tool is installed and available in the system `PATH`.|
57
-
|`COMMAND CANNOT BE EXECUTED`| Command exists but cannot run |The command exists but cannot be executed. Check file permissions and ensure the binary has execute rights.|
58
-
|`PREREQUISITE FAILED`|Prerequisite check failed |A prerequisite check failed before the main command could run. Review prerequisite dependencies and ensure they are met on the target.|
59
-
|`INVALID USAGE`| Incorrect arguments or syntax | The command was invoked with incorrect arguments or syntax. Verify the inject parameters and command.|
60
-
|`TIMEOUT`| Execution exceeded time threshold | The agent did not complete execution within the allowed time threshold. Consider investigating target performance.|
61
-
|`INTERRUPTED`| Inject interrupted before completion |The inject was interrupted before completion. This may be caused by a system signal, user intervention, or resource constraint.|
61
+
|`ERROR`| General, unclassified execution failure | Check the agent logs for detailed stack traces|
62
+
|`COMMAND NOT FOUND`|Executable or binary missing on the target system | Ensure dependencies (e.g., `curl`, `powershell`) are installed in the `PATH`|
63
+
|`COMMAND CANNOT BE EXECUTED`| Command exists but cannot run | Check file execute permissions (`chmod +x`) or architecture compatibility|
64
+
|`PREREQUISITE FAILED`| A prerequisite check failed before the main command |Review prerequisite dependencies and ensure they are met on the target |
65
+
|`INVALID USAGE`| Incorrect arguments or syntax | The command was invoked with incorrect arguments or syntax Verify the inject parameters and command |
66
+
|`TIMEOUT`| Execution exceeded time threshold | The agent did not complete execution within the allowed time threshold. Consider investigating target performance |
67
+
|`INTERRUPTED`| Inject interrupted before completion | This may be caused by a system signal, user intervention, or resource constraint |
62
68
63
-
### Informational statuses (excluded from status computation)
69
+
### ℹ️ Informational statuses (excluded from status computation)
64
70
65
71
| Status | Description | Details |
66
72
|-------------------|-------------|---------|
67
-
|`AGENT INACTIVE`| Agent was not active during Inject execution | This agent was not active during the inject execution. Check your asset connectivity.|
68
-
|`ASSET AGENTLESS`| Asset has no Agent installed. ||
|`AGENT INACTIVE`| Agent was not active during Inject execution | This agent was not active during the inject execution. Check your asset connectivity |
74
+
|`ASSET AGENTLESS`| Asset has no Agent installed| Install an OpenAEV agent on the target asset|
`MAYBE PREVENTED`, `PARTIAL`, and `MAYBE PARTIAL PREVENTED` are deprecated.
79
+
`MAYBE PREVENTED` and `MAYBE PARTIAL PREVENTED` are deprecated.
80
+
81
+
## Status computation hierarchy
74
82
75
-
## Status computation
83
+
In OpenAEV, the execution status is not a simple average of agents. The platform computes the final status by bubbling up the results through the architectural hierarchy:
76
84
77
-
The OAEV Server aggregates trace statuses in two levels: first per **Agent**, then across Agents to produce the
78
-
**Inject status**.
85
+
1.**Agent level:** The atomic execution result on a specific endpoint (e.g., `SUCCESS` or `BLOCKED_BY_EDR`).
86
+
2.**Asset level:** Aggregates the status of all agents running on that specific asset.
87
+
3.**Asset Group level:** Aggregates the status of all assets within the targeted group.
88
+
4.**Inject level:** The final global status displayed in the UI, aggregating all targeted asset groups and direct assets.
79
89
80
-
### Agent status
90
+
### Agent status computation
81
91
82
92
The server evaluates all traces for a single Agent with the following priority rules:
| 1 | Any non-cleanup, non-prerequisite trace is an error | That specific error status (or `ERROR` if multiple distinct errors) |
87
97
| 2 | A prerequisite failed |`PREREQUISITE FAILED`|
88
-
| 3 | Execution succeeded but cleanup failed |`SUCCESS WITH CLEANUP FAIL`|
89
-
| 4 | All traces succeeded |`SUCCESS`|
98
+
| 3 | Execution succeeded but cleanup failed |`EXECUTED WITH CLEANUP FAIL`|
99
+
| 4 | All traces succeeded |`EXECUTED`|
90
100
91
-
### Inject status
101
+
### Inject status computation
92
102
93
-
The server computes the Inject-level status from per-Agent COMPLETE traces, **excluding `AGENT INACTIVE` Agents**:
103
+
The server computes the Inject-level status from per-Agent COMPLETE traces, **excluding `AGENT INACTIVE` Agents**. However, if *no* agents were active, the execution fails:
94
104
95
105
| Condition | Inject status |
96
106
|-----------|--------------|
97
-
| All active Agents succeeded | <spanstyle="color: #4caf50">**SUCCESS**</span> |
107
+
| All active Agents succeeded | <spanstyle="color: #4caf50">**EXECUTED**</span> |
98
108
| All active Agents errored | <spanstyle="color: #f44336">**ERROR**</span> |
99
109
| Mix of success and error | <spanstyle="color: #ff9800">**PARTIAL**</span> |
100
-
| No active Agents | <spanstyle="color: #f44336">**ERROR**</span> |
110
+
| No active Agents | <spanstyle="color: #f44336">**ERROR**</span> *(Execution cannot succeed without at least one active agent)*|
101
111
102
112
## In practice
103
113
@@ -109,7 +119,7 @@ You run an Inject targeting three Endpoints, each with one OpenAEV Agent:
109
119
|**Agent B**| Attack command blocked by EDR |`ACCESS DENIED`|
110
120
|**Agent C**| Agent was offline |`AGENT INACTIVE` (excluded) |
111
121
112
-
One success + one error among active Agents → Inject status: **PARTIAL**.
122
+
One success + one error among active Agents → The status are mixed, so the final Inject status is **PARTIAL**
113
123
114
124
## Alert details
115
125
@@ -131,16 +141,16 @@ detection was identified on an external platform, click the alert name to open i
131
141
132
142
When automated result retrieval is not possible (e.g., non-technical Injects), record results manually:
133
143
134
-
1. Open the Inject result page.
135
-
2. Click the **shield** icon labeled **Add a result**.
136
-
3. Fill in the result form and save.
144
+
1. Open the Inject result page
145
+
2. Click the **shield** icon labeled **Add a result**
146
+
3. Fill in the result form and save
137
147
138
148

139
149

140
150
141
151
## Go further
142
152
143
-
- Define [Expectations](expectations/overview.md) to set success criteria for your Injects.
144
-
- Explore [Findings](findings.md) to see what was detected during execution.
145
-
- Review [Inject results](inject-result.md) for a full breakdown of your security posture against a test.
153
+
- Define [Expectations](expectations/overview.md) to set success criteria for your Injects
154
+
- Explore [Findings](findings.md) to see what was detected during execution
155
+
- Review [Inject results](inject-result.md) for a full breakdown of your security posture against a test
0 commit comments