-
Notifications
You must be signed in to change notification settings - Fork 4
Description
As mentioned in issue #30, we need a way for the AP to say things like "delete this file on this endpoint".
In this example the ER AP uses the Action "delete" paired with the Target "file", leaving us without a way to refer to the target endpoint that the actuator is to execute the Command on.
The problem stems primarily from the fact that the endpoint itself is not an actuator. However in order for e.g., a file to be deleted from a machine, there has to be something on the endpoint which performs the deletion. This varies from vendor to vendor, and it's difficult to find technical write-ups or good source describing the actual mechanics, but boils down to some sort of process or service running with elevated privileges that receives and executes a command from the EDR server.
I have also yet seen an EDR API which even mentions this program/service. All of them use some sort of unique ID tied to the endpoint itself to specify the target endpoint.
With all that in mind, here are two suggestions on how we can implement this in the AP:
Suggestion 1: Refer to the endpoint in the actuator specifiers map
ID | Name | Type | # | Description |
---|---|---|---|---|
1 | hostname | Hostname | 1 | The hostname of a machine with ER Actuator capabilities. MUST be formatted as an internet host name as specified in [RFC1123] |
2 | endpoint_id | string | 0..1 | Unique identifier for a particular device against which the Actuator is to execute a Command. |
Sample command
{
"action": "delete",
"target":{
"file": {
"hashes":"..."
}
},
"actuator": {
"edr": {
"hostname":"edr.organization.tld",
"endpoint_id":"Host123ABC"
}
}
}
Suggestion 2: Refer to the endpoint using a Command Argument.
Type: Actuator-target (Map{1..*})
ID | Name | Type | # | Description |
---|---|---|---|---|
1 | endpoint_id | string | 0..1 | Unique identifier for a particular device on which the Actuator is to execute a Command |
An added benefit here would be that we can denote which Commands this argument can be paired with in the Command Arguments matrix.
Table 2.3-2. Command Arguments Matrix
response_requested | [...] | Actuator-target | |
---|---|---|---|
contain device | valid | [...] | |
contain file | valid | [...] | valid |
restart process | valid | [...] | valid |
[...]
Sample command
{
"action": "delete",
"target":{
"file": {
"hashes":"..."
}
},
"args": {
"edr": {
"actuator_target":{
"endpoint_id":"Host123ABC"
}
}
},
"actuator": {
"edr": {
"hostname":"edr.organization.tld",
}
}
}