pjbgf/go-apparmor

GitHub: pjbgf/go-apparmor

go-apparmor 提供 Go 原生 API 来管理 Linux AppArmor 配置文件的加载与删除,解决了在 Go 应用中程序化操作安全策略的需求。

Stars: 3 | Forks: 1

# go-apparmor 这是一个初步的草案,展示了如何在 golang 中以较小的攻击面管理 apparmor 配置文件。 它利用 `libapparmor` 有效地将配置文件加载到内核中,同时也支持删除它们。 `libapparmor` 目前不支持解析纯文本配置文件,而是要求它们 为二进制格式。我们利用 `apparmor_parser`(来自 `apparmor-utils`)来进行 转换,并且该操作在较低权限模式下进行。 ## 安全上下文 在容器中运行时,该库会自动尝试“权限提升”进入 宿主机的 mount namespace 以执行加载/删除操作,然后再恢复回去。但是,它需要从一开始就启用 `HostPID` 并以 `privileged` 模式运行。 所需权限: - 宿主机的 PID namespace - 宿主机的 Mount namespace - 以 root 身份运行 - `CAP_SYS_ADMIN` - privileged(对于容器而言) 直接在宿主机上以 `root` 身份运行就足够了。 ## 后续步骤 - [] 实现 Enforceable() 以及一个用于检查配置文件是否已加载的函数。 - [] 从此仓库中拆分 hostop 包。 - [x] 重构 apparmor 包。 - [x] 添加一些测试。
标签:AppArmor, EVTX分析, Go, Ruby工具, Streamlit, Web截图, 子域名枚举, 容器安全, 日志审计, 系统安全, 访问控制, 运维工具