Closed asteriscos closed 2 months ago
A plugin with ID wazuhEngine
was created in the plugins/wazuh-engine
.
This plugin defines and exposes the UI components to manage the Engine.
The plugin does not register any application as we would want, because this would need some services that are defined on the
main
plugin, so the render of the view of Engine application is rendered by themain
plugin to simplify the POC. But this should be done as desirable in the final implementation.
So, a new app is registered on the side menu called Engine
:
Accessing to the Engine
app displays a layout based on the side menu and body. The side menu has access to the different entities of the engine: decoders, rules, filters, outputs, integrations, policies and KVDBs.
Clicking on the menu items changing the view to manage that entity of the engine with the CRUD actions: TODO
Reserved
I was exploring the idea to represent the rule relationships through a Vega visualization.
I don't know what is the final document schema of a rule definition, but I defined a simple schema to test the representation of rule relationship storing in the rules data:
Reviewing the chart types, I decided to test with the Tree layout.
:information_source: From my tests, the Tree layout
chart needs only one root of the data to build the tree. It could not get to work with multiple tree roots. So this could mean one restriction depending on the use case.
With the data rule on the Wazuh indexer, I created a visualization of Vega
type.
Notes:
id
or parent
document to get.query
and use the hits
. It is possible to use aggregations, but it could not make sense for the use case.Tree Layout
example. We could remove them.Then, I got the visualization definition and used the same mechanism to render a dashboard used on the main plugin, and I got the visualization:
Mocked API response and flyout added
https://github.com/wazuh/wazuh-dashboard/assets/124377319/f1d1352d-5df2-4d30-a9cc-a483c98ae471
https://github.com/wazuh/wazuh-dashboard/assets/124377319/dcc9786b-9743-4d12-8c5a-165224198637
This section has the following capabilities:
List rules
Bulk actions
Rule details:
Cotain information about the rules (table and JSON), its relation with other rules and related events.
It allows the creation of a rule using a visual editor or (through a form) or a file editor. All views allow importing from file.
ToDo
POC - Outputs
List
Bulk actions
Details
Table
JSON
File
Relationship TODO
Events
Create Form: TBD File:
Description
We have to create a new proof of concept plugin that allows the user to manage the new engine.
The engine has the following object types:
Related to the security policy management the engine defines:
These concepts are defined in the engine user manual
Based on this, we need to propose a UI to manage these concepts.
We need to provide an intuitive interface for the engine configuration changes, allowing users to easily adjust settings. It should list the engine configuration and provide a form to edit each setting, ideally using different controls for different configuration data types, validanting the user input.
Also, we need to provide a way to manage KVDBs which is the replacement of the current CDBs. The main difference is that KVDBs are dynamic and can be updated while the policy is running. KVDBs will not be stored in the indexer, so these operations should assume it will be accessed using the API.
References
Plan