# KSecure **Repository Path**: c43h/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**: 0 - **Forks**: 8 - **Created**: 2024-08-28 - **Last Updated**: 2024-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于eBPF系统安全防御组件KSecure介绍 # 项目介绍 KSecure安全组件是一款操作系统轻量化安全防御组件,采用eBPF技术路线,在开源云原生运行时安全软件KubeArmor基础上,设计和开发了安全功能,提升了操作系统检测和防御能力,在增强操作系统安全性和合规性的同时,解决传统内核模块方式带来的系统稳定性和性能问题。 # 技术背景 传统安全检测和防御方案采用内核模块技术,内核模块技术是通过编写内核模块来扩展操作系统的功能,内核模块可以直接访问和修改操作系统内核,可以实现高级别控制和丰富的功能,但编写不当的内核模块可能导致内核崩溃或引入安全漏洞。 eBPF提供了一种安全、可编程的方式来扩展内核功能,eBPF程序在内核中运行时会受到严格的安全限制,因此不会对系统的稳定性和安全性产生直接影响,可以实现深度的系统观测能力和自定义扩展能力。 # 主要功能 KSecure安全防御组件的主要功能如下: 1、**关键文件/进程防护**:支持文件和目录的防护,防止核心业务文件被篡改、删除等行为。支持关键进程防护,保护核心业务进程不被恶意终止、删除、信息注入; 2、**主机入侵检测**:基于“诱饵”行为监测的勒索病毒防御,及时发现和阻止勒索病毒加密行为,基于规则引擎可以对黑客的入侵行为进行检测和自动处置; 3、**安全基线检测**:基于等保和CIS标准形成知识库,提供基于模板的基线检测、修复和回退功能。帮助发现身份鉴别、访问控制、安全审计、入侵防范、剩余信息保护等方面潜在的安全风险,支持基线值自定义和灵活扩展; 4、**安全管理**:支持安全特性动态加载、对安全组件CPU资源占用限制、安全策略热加载、服务启停等管理等功能。 # 技术架构 # 关键技术 LSM(Linux Security Modules)是Linux内核中用于支持各种计算机安全模型的框架,用于在Linux内核中实现安全策略和强制访问控制。Linux Kernel 5.7引入了LSM扩展eBPF(简称BPF-LSM),而无需配置LSM模块(SELinux、AppArmor等)或加载自定义内核模块,通过在LSM层面的文件、进程、网络等hook加载eBPF程序,获取应用的异常行为,通过与内置和自定义的安全策略对比后,进行细粒度的(函数级)实时拦截,实现入侵检测和关键文件和进程防御功能。 # 应用场景 # 快速入门 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” --args=”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进行程序启动