Profiles related to the server’s datastore.
Reports current replication connections between master and minion.
Reports current replication connections between master and minion.
Velociraptor contains many service modules that help the process perform certain tasks. These usually contain specific profiles to show how they are performing.
The Velociraptor GUI allows exporting collections from Flows or Hunts into a Zip file. If the collection is very large this can take some time. While the GUI shows some progress information:
The Velociraptor GUI allows exporting collections from Flows or Hunts into a Zip file. If the collection is very large this can take some time. While the GUI shows some progress information:
The profile shows a lot more information:
As indicated by the profile, Velociraptor uses multiple threads to compress many files into the zip file at the same time. These files are typically written in temporary files then merged into the final Zip files (this is the way to utilize multiple cores when preparing a Zip file).
An important criteria for Velociraptor is to ensure the impact on endpoint performance is limited. This helps in cases when we need to perform intensive tasks on the endpoint. We want to make sure the end system is still usable and reduce our impact on the end user.
Velociraptor achieves this by implementing a Throttler. This
mechanism is able to pause query execution when the process’s average
CPU utilization exceeds some limit.
Reporting information about current users registered on the system.
Similarly to tempfiles, it is important to know what files we have opened that
should be closed. This is tracked by the Open Close Tracker. The tracker does
not only track operating system files but other abstract objects within
Velociraptor that need to be closed.
We typically want to see all files being suitably closed unless they are used currently. Some files are held open for a short time after use, to avoid needing to re-open them if accessed soon after.
Velociraptor uses temporary files for a variety is purposes. It is important to ensure that whenever we create a temporary file, we suitably remove it.
The Tempfile tracker keeps track of temporary files we used.
The profile indicates:
In the above example, we see two temporary files created from the VQL
tempfile() function and one created by the VQL engine during a
materialize operation (e.g. expanding a LET ). All files were
suitably closed as determined by the non zero destroyed time.
Notebooks are very useful feature of the server allowing for complex post-processing of collected data. Sometimes these queries are very large and take a long time to run. To limit the amount of resources the queries can take on the server, Velociraptor only creates a limited number of notebook workers (by default 5).
See currently and recently running VQL queries.
This view shows the queries currently running in this process. For example queries will run as part of notebook evaluation, currently installed event queries, or currently collecting artifacts (in the case of the offline collector).
The above example shows a number of queries watching a variety of
event logs on the endpoint. This is because this endpoint is running
the Windows.Hayabusa.Monitoring artifact, which evaluate many Sigma
rules, many referring to different log sources. Each log source relies
on parsing the event logs.
See currently and recently running VQL queries.
This view shows the queries currently running in this process. For example queries will run as part of notebook evaluation, currently installed event queries, or currently collecting artifacts (in the case of the offline collector).
The above example shows a number of queries watching a variety of
event logs on the endpoint. This is because this endpoint is running
the Windows.Hayabusa.Monitoring artifact, which evaluate many Sigma
rules, many referring to different log sources. Each log source relies
on parsing the event logs.
Much of Velociraptor functionality is implemented using VQL plugins. Some plugins are very sophisticated and require their own profile tracking.