pjbgf/go-apparmor

GitHub: pjbgf/go-apparmor

Stars: 3 | Forks: 1

# go-apparmor Is an initial draft of how apparmor profiles could be managed in golang with a reduced attack surface. It leverages `libapparmor` to effectively load profiles into the kernel, as well as deleting them too. `libapparmor` currently does not provide the parsing of plain-text profiles, but rather requires them to be in binary format. The `apparmor_parser` (from `apparmor-utils`) is leveraged to make that conversion, and this operation takes place at lower privilege mode. ## Security Context When running inside a container, the library will automatically attempt to "privilege escalate" into the host's mount namespace just for load/delete operations, and then revert back. However, it would require `HostPID` and run as `privileged` from the get go. Permissions required: - Host's PID namespace - Host's Mount namespace - run as root - `CAP_SYS_ADMIN` - privileged (for containers) Running directly on the host machine as `root` is enough. ## Next steps - [] Implement Enforceable() and a func to check whether a profile is already loaded. - [] Split hostop package from this repo. - [x] Refactor apparmor package. - [x] Add some tests.
标签:EVTX分析