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截图, 子域名枚举, 容器安全, 日志审计, 系统安全, 访问控制, 运维工具