Skip to content
API Documentation
BastionGuard™
rootguard_shared.h
Go to the documentation of this file.
1#ifndef BASTIONGUARD_ROOTGUARD_SHARED_H
2#define BASTIONGUARD_ROOTGUARD_SHARED_H
3
4#ifndef __VMLINUX_H__
5#include <linux/types.h>
6#endif
7
8#define RG_COMM_LEN 16
9#define RG_FILENAME_LEN 256
10#define RG_XATTR_NAME_LEN 32
11#define RG_POLICY_ABI_VERSION 7U
12
31
40
45
50
76 /* High-confidence global signal: a root-owned object gained group/other write access. */
78 /* Aggregated signal: many chmod/chown operations from one cgroup in a short window. */
80};
81
82
91
93 RG_PROTECT_MODE = 1U << 0,
98 RG_PROTECT_ACL = 1U << 5,
102 /* Never enforce this identity; it remains audit-only (normally user home). */
104};
105
106#define RG_PROTECT_DEFAULT \
107 (RG_PROTECT_MODE | RG_PROTECT_OWNER | RG_PROTECT_CAPABILITY_XATTR | \
108 RG_PROTECT_INTEGRITY_XATTR | RG_PROTECT_SECURITY_LABEL | \
109 RG_PROTECT_ACL | RG_PROTECT_UNLINK | RG_PROTECT_RENAME | \
110 RG_PROTECT_HARDLINK)
111
113 __u64 device;
114 __u64 inode;
115};
116
118 __u32 rule_id;
119 __u32 flags;
120};
121
130
147
180
181/* One-shot authorization token for a future PAM/polkit/sudo bridge. */
186};
187
188#endif
rg_action
@ RG_ACTION_BLOCK
@ RG_ACTION_AUDIT
rg_reason_flags
@ RG_REASON_PROTECTED_OWNER
@ RG_REASON_PROTECTED_UNLINK
@ RG_REASON_BASELINE_FILE_REPLACED
@ RG_REASON_SECURITY_LABEL
@ RG_REASON_TRUSTED_EXEC
@ RG_REASON_GLOBAL_SURVEILLANCE
@ RG_REASON_PROTECTED_ACL
@ RG_REASON_PROTECTED_MISSING
@ RG_REASON_AUTH_TOKEN
@ RG_REASON_SECURITY_CAPABILITY
@ RG_REASON_ROOT_OWNED_WRITE_EXPOSURE
@ RG_REASON_BASELINE_OWNER_MISMATCH
@ RG_REASON_FILE_ID_UNAVAILABLE
@ RG_REASON_DIRECT_CRED_ANOMALY
@ RG_REASON_METADATA_BURST
@ RG_REASON_INTEGRITY_XATTR
@ RG_REASON_NONE
@ RG_REASON_DENIED_EXEC
@ RG_REASON_OWNER_TO_ROOT
@ RG_REASON_UNKNOWN_EXEC
@ RG_REASON_PROTECTED_HARDLINK
@ RG_REASON_GLOBAL_METADATA
@ RG_REASON_SETID_ADDED
@ RG_REASON_PROTECTED_MODE
@ RG_REASON_PROTECTED_RENAME
@ RG_REASON_BASELINE_MODE_MISMATCH
#define RG_XATTR_NAME_LEN
rg_kernel_mode
@ RG_MODE_AUDIT
@ RG_MODE_ENFORCE
rg_event_type
@ RG_EVENT_PROTECTED_RENAME
@ RG_EVENT_FILE_QUARANTINED
@ RG_EVENT_EXEC_PRIV
@ RG_EVENT_OWNER_CHANGE
@ RG_EVENT_ACL_CHANGE
@ RG_EVENT_PROTECTED_UNLINK
@ RG_EVENT_SETUID
@ RG_EVENT_SERVICE_BLOCKED
@ RG_EVENT_INTEGRITY_RESTORED
@ RG_EVENT_INTEGRITY_DRIFT
@ RG_EVENT_PROTECTED_HARDLINK
@ RG_EVENT_CREDENTIAL_ANOMALY
@ RG_EVENT_PROTECTION_MODE_CHANGED
@ RG_EVENT_XATTR_CHANGE
@ RG_EVENT_PERMISSION_CHANGE
@ RG_EVENT_FILE_RESTORED
rg_path_resolution
@ RG_PATH_LSM_EXACT
@ RG_PATH_PROCESS_CWD
@ RG_PATH_BASENAME
@ RG_PATH_PROC_FD
@ RG_PATH_PROTECTED_BASELINE
@ RG_PATH_KERNEL_EXACT
#define RG_FILENAME_LEN
rg_protection_flags
@ RG_PROTECT_HARDLINK
@ RG_PROTECT_UNLINK
@ RG_PROTECT_MODE
@ RG_PROTECT_INTEGRITY_XATTR
@ RG_PROTECT_AUDIT_ONLY
@ RG_PROTECT_ACL
@ RG_PROTECT_CAPABILITY_XATTR
@ RG_PROTECT_SECURITY_LABEL
@ RG_PROTECT_OWNER
@ RG_PROTECT_RENAME
#define RG_COMM_LEN
rg_verdict
@ RG_VERDICT_TRUSTED
@ RG_VERDICT_ALERT
@ RG_VERDICT_AUDIT
@ RG_VERDICT_RESTORED
@ RG_VERDICT_AUTHORIZED
@ RG_VERDICT_BLOCKED
struct rg_file_key actor_file
char filename[RG_FILENAME_LEN]
char xattr_name[RG_XATTR_NAME_LEN]
__u32 reserved_event
struct rg_file_key parent_file
struct rg_file_key file
char parent_executable[RG_FILENAME_LEN]
char comm[RG_COMM_LEN]
char actor_executable[RG_FILENAME_LEN]
__u64 actor_start_boottime_ns
char parent_comm[RG_COMM_LEN]
__u32 path_resolution
__u32 monitor_global_privilege_metadata
__u32 detect_global_metadata_bursts