Linux security audit, control, and behavior analysis tools based on KRSI(eBPF+LSM)
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 4 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |
safeguard: Linux security audit, control, and behavior analysis tools based on KRSI(eBPF+LSM)
针对操作系统、内核安全,safeguard是一个基于eBPF的Linux审计观测工具,可以实现安全操作的拦截及审计记录。项目采用libbpfgo库,使用go语言实现顶层控制
特性
- 审计:日志记录配置范围内的行为
- 控制:针对文件,进程,网络的安全访问控制
- 行为分析:收集信息,进行资源,热点,异常等分析
- 主机管理:从安全角度自动化构建细粒度资产信息
- 风险管理:精准发现内部风险,快速定位问题并有效解决安全风险
- 入侵检测:提供多锚点的检测能力,能够实时、准确的感知入侵事件,发现失陷主机,并提供对入侵事件的响应手段。

编译
内核配置参考 https://gitee.com/openeuler/safeguard/blob/master/INSTALL.md
$ git clone --recursive https://gitee.com/openeuler/safeguard.git && cd safeguard
# $ vagrant up && vagrant reload
# $ vagrant ssh
$ make build
$ sudo ./build/safeguard --config config/safeguard.yml
安装
$ wget https://gitee.com/openeuler/safeguard/releases/download/v2.0.1/safeguard-2.0.1-2.ule3.x86_64.rpm
$ yum install safeguard-2.0.1-2.ule3.x86_64.rpm
$ sudo safeguard --config /etc/safeguard/safeguard.yml
项目功能(部分位于开发阶段)
审计控制
文件:
- 追踪文件系统的活动,包括文件的打开、关闭、读写、删除等。
- 修改文件系统的行为,例如拦截某些文件操作,或者实现自定义的安全策略。
安全策略:
- 拦截或重定向某些文件操作,使用eBPF来拦截对敏感文件的读写操作,或者重定向对某些文件的访问到其他位置。
- 实现自定义的访问控制,使用eBPF来检查对文件的访问者的身份、权限、环境等信息,然后根据一些规则来允许或拒绝访问。
- 实现自定义的审计和监控,使用eBPF来记录对某些文件的操作的详细信息,如操作者、时间、内容等,并将这些信息输出到日志。
进程:
- 追踪进程的生命周期,例如进程的创建、终止、调度、上下文切换等。
- 修改进程的行为,例如注入或修改某些系统调用,或者实现自定义的调度策略。
网络:
- 追踪网络的活动,例如网络包的发送、接收、转发、丢弃等。
- 修改网络的行为,例如过滤或重写某些网络包,或者实现自定义的路由策略。
行为分析
-
收集并分析文件系统的性能、热点、异常等。(选择合适的eBPF程序类型和挂载点,例如,使用kprobes或tracepoints来追踪文件系统相关的内核函数或事件,如vfs_read, vfs_write, ext4_sync_file等。)
-
收集信息来分析进程的资源消耗、状态变化、依赖关系等(do_fork, do_exit, schedule等)。
-
收集信息,分析网络的流量、延迟、丢包率、拥塞等(使用tc或xdp来追踪网络包的发送、接收、转发、丢弃等事件)。
主机管理
从安全角度自动化构建细粒度资产信息,支持对业务层资产精准识别和动态感知,让保护对象清晰可见。
- 账号展示
- 端口列表
- 进程列表
风险管理
精准发现内部风险,快速定位问题并有效解决安全风险,提供详细的资产信息、风险信息以供分析和响应。
- 漏洞检测
- 安全补丁
- 弱密码
- 系统风险
- 账号风险
入侵检测
提供多锚点的检测能力,能够实时、准确的感知入侵事件,发现失陷主机,并提供对入侵事件的响应手段。
- 暴力破解
- 异常登录
- 反弹shell
- 本地提权
- 后门检测,Web后门
LICENSE
safeguard's userspace program is licensed under Apache License 2.0 License.
eBPF programs inside pkg/bpf directory are licensed under GNU General Public License version 2.