Get desktop application:
View/edit binary Protocol Buffers messages
client configuration sent on Subscribe()
daemon configuration as json string
notification reply sent to the server (GUI)
Notification message is sent to the clients (daemons) from the GUI (server) for several purposes: - Start tasks. - Change configurations (rules, firewall, configuration) - Start / Stop interception or firewall. - Sent back the status of each task (errors, ok) Notifications are sent via an always open streaming channel. It's also used indirectly to maintain the connection status with the GUI (server).
CHANGE_CONFIG: 2, data: {"default_timeout": 1, ...}
* - Send error messages (kernel not compatible, etc) - Send warnings (eBPF modules failed loading, etc) - Send kernel events: new execs, bytes recv/sent, ... - Alert of events defined by the user: alert when a rule matches
TODO: group of actions: SHOW_ALERT | SAVE_TO_DB
https://developers.google.com/protocol-buffers/docs/reference/go-generated#oneof
errors, messages, etc
proc events: send/recv bytes, etc
conn events: bind, listen, etc
Action is the list of actions sent or received via the Notifications channel.
Used in:
Notifications of type TASK_START or TASK_STOP expect a JSON in the Notification.data field. It's parsed to a struct with format TaskNotification { Name string, Data interface{} } where Data is translated to a map of values (map[string]string), with the configuration for each task: PidMonitor: {"interval": "5s", "pid": "1234"} SocketsMonitor: {"interval": "5s", "states": "1,10"}
Used in:
Used in:
Used in:
What caused the alert
Used in:
bind, exec, etc
Used as request type in: UI.AskRule
Used as field type in:
,Used in:
Used in:
Used in:
Used in:
DEPRECATED: backward compatibility with iptables
Used in:
, ,DEPRECATED: for backward compatibility with iptables
Used in:
Used in:
Used in:
Used as response type in: UI.AskRule
Used as field type in:
, , ,Used in:
Used in:
Used in:
Used in:
,Used in:
,