Internally, Velociraptor uses client id to uniquely identify the client. You can either do the join on the splunk side as you indicated or you can also resolve the hostname on the velociraptor side and just push denormalized data to the splunk side - depending what is easiest for you.
To resolve the client id -> hostname say you can use the client_info() function
for example in that artifact you can add the following
```vql
LET events = SELECT * FROM foreach(
row=artifacts_to_watch,
async=TRUE, // Required for event queries in foreach()
query={
SELECT *, "Artifact_" + Artifact as _index,
Artifact,
timestamp(epoch=now()) AS timestamp,
client_info(client_id=client_id).os_info.hostname AS Hostname
FROM watch_monitoring(artifact=Artifact)
})
```
To enrich the output with the hostname as well.
Thanks
Mike
| Mike Cohen Digital Paleontologist, Velocidex Enterprises |
| | | | |
|
|