# KSecure **Repository Path**: anolis/ksecure ## Basic Information - **Project Name**: KSecure - **Description**: KSecure安全组件是一款操作系统轻量化安全防御组件,采用eBPF技术路线,在开源云原生运行时安全软件KubeArmor基础上,设计和开发了安全功能,提升了操作系统检测和防御能力,在增强操作系统安全性和合规性的同时,解决传统内核模块方式带来的系统稳定性和性能问题。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 16 - **Forks**: 8 - **Created**: 2024-02-26 - **Last Updated**: 2025-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于eBPF系统安全防御组件KSecure介绍 # 项目介绍 KSecure安全组件是一款操作系统轻量化安全防御组件,采用eBPF技术路线,在开源云原生运行时安全软件KubeArmor基础上,设计和开发了安全功能,提升了操作系统检测和防御能力,在增强操作系统安全性和合规性的同时,解决传统内核模块方式带来的系统稳定性和性能问题。 # 技术背景 传统安全检测和防御方案采用内核模块技术,内核模块技术是通过编写内核模块来扩展操作系统的功能,内核模块可以直接访问和修改操作系统内核,可以实现高级别控制和丰富的功能,但编写不当的内核模块可能导致内核崩溃或引入安全漏洞。 eBPF提供了一种安全、可编程的方式来扩展内核功能,eBPF程序在内核中运行时会受到严格的安全限制,因此不会对系统的稳定性和安全性产生直接影响,可以实现深度的系统观测能力和自定义扩展能力。 # 主要功能 KSecure安全防御组件的主要功能如下: 1、**关键文件/进程防护**:支持文件和目录的防护,防止核心业务文件被篡改、删除等行为。支持关键进程防护,保护核心业务进程不被恶意终止、删除、信息注入; 2、**主机入侵检测**:基于“诱饵”行为监测的勒索病毒防御,及时发现和阻止勒索病毒加密行为,基于规则引擎可以对黑客的入侵行为进行检测和自动处置; 3、**安全基线检测**:基于等保和CIS标准形成知识库,提供基于模板的基线检测、修复和回退功能。帮助发现身份鉴别、访问控制、安全审计、入侵防范、剩余信息保护等方面潜在的安全风险,支持基线值自定义和灵活扩展; 4、**安全管理**:支持安全特性动态加载、对安全组件CPU资源占用限制、安全策略热加载、服务启停等管理等功能。 # 技术架构 基于 eBPF 的系统内多层次 hook 技术,将 eBPF 程序 hook 到操作系统内核的多个层级(LSM、syscall、network、kprobe 内核函数),其中 LSM、syscall、network 的 hook 点具有监控和拦截能力,kprobe 内核函数 hook 点只具有监控能力。通过在各个 hook 点加载安全策略实现对系统和应用程序行为的监控和拦截。 ![输入图片说明](KSecMain/resources/%E7%BB%84%E4%BB%B6%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84%E5%9B%BE.png) # 关键技术 LSM(Linux Security Modules)是Linux内核中用于支持各种计算机安全模型的框架,用于在Linux内核中实现安全策略和强制访问控制。Linux Kernel 5.7引入了LSM扩展eBPF(简称BPF-LSM),而无需配置LSM模块(SELinux、AppArmor等)或加载自定义内核模块,通过在LSM层面的文件、进程、网络等hook加载eBPF程序,获取应用的异常行为,通过与内置和自定义的安全策略对比后,进行细粒度的(函数级)实时拦截,实现入侵检测和关键文件和进程防御功能。 # 应用场景 - 应用场景 1:安全合规 基于标准和最佳实践对操作系统配置进行检测和自动修复,发现身份鉴别、访问控制、安全审计、入侵防范、剩余信息保护等方面潜在的安全风险,提升操作系统的合规性和安全性。支持用户结合实际的安全需求选择实施加固和扩展,以便更好地满足对不同用户不同场景的配置安全基准要求。 - 应用场景 2:防黑客入侵 检测主机黑客入侵或受到恶意攻击,可以帮助发现异常行为、恶意软件等威胁。为主机关键业务提供保护,防止关键文件被篡改和内部违规操作。 # 快速入门 1. 开源源码路径 https://gitee.com/anolis/ksecure 2. 编译 2.1 环境准备 安全组件基于eBPF LSM进行开发,需要操作系统内核支持并启用LSM特性,AnolisOS 23版本内核已支持LSM,需修改grub参数进行启用,运行如下命令后重启生效: grubby --update-kernel="/boot/vmlinuz-5.10.134-14.1.an23.x86_64" --arg="lsm=integrity,selinux,smack,tomoyo,apparmor,bpf" 安全组件使用go、c/c++、shell等语言写成,编译时可能涉及到的第三方工具或包有: gcc、clang、llvm、golang、 libbpf-devel等 2.2 编译 项目提供makeFile文件,在KSecMain路径下直接执行make,在当前目录下生成KSecMain二进制文件 2.3 使用 安全组件内置策略配置文件,例如:勒索病毒防护策略路径为KSecMain/yaml/ransom.yaml 在KSecMain目录下运行命令 ./KSecMain -yamlPath= yaml/ransom.yaml进行程序启动