开源!在 Linux 内核里跑 Lua-LSM 小程序,是什么样的体验?

简介: 不需要任何编译工具链,不需要安装额外软件。

Lua-LSM 是一个运行在内核态的访问控制框架,支持使用 Lua 小程序来编写安全策略并且挂载到 LSM 框架的任意关键路径上——不需要编译模块,不需要重启,热加载即刻生效。


⚡热加载    🔒沙盒运行   📝小程序    🛡️零重启

什么是 Lua-LSM?

LSM(Linux Security Module)是 Linux 内核早期版本就内置的安全框架。它在文件访问、进程权限变更、socket 创建等关键路径上预埋了钩子(hook),SELinux、AppArmor、Yama 等安全模块都跑在这个框架上。

传统的 LSM 模块开发需要编写 C 代码、和内核一起参与编译,不能作为模块动态拆卸,这里每一步都有门槛。

Lua-LSM 改变了这一点:编写一个安全策略小程序,通过 securityfs 接口写入内核,内核内置的 Lua 引擎会将其编译为字节码,经过预编译检查后挂载到 LSM 钩子上,运行在安全沙盒,避免内核 Crash。

从写脚本到策略生效, 最简单只需要一个  echo 命令,极大地降低了 LSM 访问控制的开发门槛。

典型场景

Lua-LSM 不是一个完整的安全解决方案,它是一个底层框架——让任何人可以用最低的成本在内核 LSM 关键路径上插入自定义逻辑。

  • 漏洞热缓解:内核漏洞曝光后、补丁到达前的窗口期,用几行 Lua 脚本挂载到 LSM 钩子上做拦截,无需重启系统。
  • 细粒度访问控制:对特定文件路径、特定进程属性的访问做精细化控制,比 SELinux 策略更轻量、更易维护。
  • 安全审计与日志:在 LSM 钩子上挂载审计逻辑,记录敏感操作的调用者、时间、参数,用于安全分析和溯源。
  • 多租户隔离增强:在容器宿主机上对非特权进程的敏感系统调用做额外限制,弥补 cgroup/namespace 的不足。

三分钟上手

不需要任何编译工具链,不需要安装额外软件。只要你的内核是 ANCK 6.6 且启用了 Lua-LSM,就可以开始。

示例:只允许 /etc/shadow 文件被访问三次

local kernel = require('kernel')
localfunction log(fmt, ...)
    local s = string.format('shadow_protect: ' .. fmt, ...)
    kernel.printk(s)
end
local function file_post_open(file, mask)
    local path = file:path()
    if path == "/etc/shadow"then
        local n = shared.dogs:incr('count')
        if n > 3 then
            log('%s %d Read deny, %s', current:comm(), n, path)
            return false
        end
    end
end
return {
    name = "shadow_protect",
    file_post_open = file_post_open
}

小程序加载

cat shadow_protect.lua > /sys/kernel/security/lua/register

此时对/etc/shadow 的前三次访问会被允许,从第四次开始的访问将被拒绝,返回 Operation not permitted。

小程序卸载

echo 'shadow_protect' > /sys/kernel/security/lua/unregister

小程序功能

这个示例在 file_post_open 钩子上挂载了一段逻辑:当任何用户任何进程尝试打开包含 /etc/shadow 路径的文件时,会维持一个计数,当计数大于 3 时,拒绝打开操作,即使 root 用户也受该策略控制。

架构一览

Lua-LSM 的体系架构以及在内核安全子系统中的位置如下:

借助 Lua 语言的语法和元编程能力,可以屏蔽掉 LSM 底层的复杂逻辑,lua-lsm 的目标是以最接近自然语言的方式高效开发 LSM 程序,支持需要快速响应又无需更新内核的安全威胁场景,比如系统实时防御和动态止血能力。

正式开源,欢迎参与

Lua-LSM 项目已在龙蜥社区(OpenAnolis)正式开源,代码已合入 Cloud Kernel (ANCK) 6.6 主线,路径为 security/lua 目录。

项目地址https://gitee.com/anolis/cloud-kernel

文档地址:https://github.com/openanolis/lua-lsm-kernel/wiki


Lua-LSM 是一个开源项目,我们欢迎所有形式的贡献:

  • 提交 Issue:如果你发现了 bug、有功能建议、或者觉得文档不够清晰,提一个 Issue 就是最大的帮助。
  • 提交 PR:如果你有好的想法,可以直接 Fork 仓库,修改后提交 PR。无论是修复 bug、增加 LSM 钩子支持、还是优化 Lua 引擎,我们都欢迎。
  • 小程序:哪怕你不改一行 C 代码,你也可以用 Lua 脚本编写实用的安全小程序。好用的脚本欢迎提交到社区,让更多人受益。

这是一个刚刚起步的项目,每一个关注它的人都是它早期最重要的贡献者。欢迎大家加入钉钉交流群(群号:162895003107)讨论 Lua-LSM 开源技术

📢 注意:Lua-LSM 目前仅在 Cloud Kernel (ANCK) 6.6 最新开发分支中可用,会在下个 Release 版本中发布。


本篇主要介绍了 Lua-LSM 及其架构等,在下一篇中,我们会用一个真实的安全漏洞场景,展示 Lua-LSM 如何在几十行脚本内完成对内核提权漏洞的热缓解。欢迎持续关注龙蜥不迷路。

—— 完 ——

相关文章
|
20天前
|
缓存 安全 小程序
Lua-LSM 系列二:从 CopyFail 到 Dirty Frag,看 732 字节的漏洞,用 79 字节关上
最近发生的真实安全漏洞场景,展示 Lua-LSM 如何在 79 字节内完成对内核提权漏洞的热缓解。
|
5天前
|
数据采集 人工智能 监控
医疗AI智能体:整体效能评估可视化:从原理到实践的10大核心量化指标体系.130
本文系统阐述医疗AI智能体的量化评估体系,强调其行业特殊性——关乎生命健康、强合规要求、用户多元、闭环严苛。提出覆盖技术(幻觉率、准确率、响应时间、召回率)与业务(满意度、审核通过率、问诊完成率、交互时长)的8大核心指标,配套数据采集、计算、监控、迭代闭环流程及可落地代码实现,为临床合规落地提供客观依据。
129 9
|
20天前
|
存储 人工智能 JSON
Litefuse 正式发布:Agent 可观测与效果评估, 比 Langfuse 成本低 88%
Litefuse 是一个 Agent 可观测与评估平台,兼容 Langfuse SDK 和 100 多个 AI 生态,并支持 Hermes、OpenClaw、Claude Code 等通用 Agent。存储成本比 Langfuse 降低 88%、简化部署架构、Trace 文本检索效率提升 10 倍,帮助团队以更低成本构建可靠的观测平台。
553 9
Litefuse 正式发布:Agent 可观测与效果评估, 比 Langfuse 成本低 88%
|
4天前
|
机器学习/深度学习 数据采集 人工智能
田间杂草检测数据集分享(适用于YOLO系列深度学习分类检测任务)
本数据集含4000张真实农田图像(小麦/玉米/水稻田),YOLO格式标注杂草目标,覆盖多天气、光照与视角,适用于YOLO系列等目标检测模型训练,助力智能除草与精准农业研究。(239字)
155 16
|
20天前
|
人工智能 JSON 运维
2026 生产级 AI Agent 自动化:零重型框架,彻底解决多步任务不稳定难题
本文提出“文件即状态”轻量架构,用5个文件实现AI Agent多步任务的稳定执行,无需LangGraph等重型框架。支持断点续跑、幂等重试、跨Agent协同,个人开发者7天即可落地生产级自动化。(239字)
|
20天前
|
人工智能 Anolis 开发者
CXL 接口库开源!龙蜥智算联盟 MeetUp 圆满举办,聚焦 AI Infra全栈创新落地
围绕 AI Infra 全栈技术趋势与创新实践,与现场开发者进行了深入的技术交流,共同勾勒下一代 AI Infra 的技术蓝图。
|
5天前
|
人工智能 自然语言处理 API
阿里云TokenPlan和CodingPlan有啥区别?选哪个调用ai模型更划算?
阿里云百炼两大订阅方案:Coding Plan(200元/月)面向个人开发者,按调用次数计费,仅支持文本模型,有频次限制;Token Plan团队版(198–1398元/坐席/月)面向企业团队,按Credits统一抵扣,支持文本+图像多模态模型,无频次限制、多租户隔离、数据不用于训练。开通阿里云百炼免费领取千问tokens:https://t.aliyun.com/U/fPVHqY
166 1
|
29天前
|
数据采集 运维 监控
Agent 烧钱如流水?Agentic OS (ANOLISA) 帮你逐笔看清 Token 账单
AgentSight 提供了能看清 Agent 全局状态和每笔 Token 去向的可视化面板。
|
14天前
|
人工智能 IDE 调度
Claude Code还是Codex?老金告你怎么选!
本文用“露营报名页”实例,揭示AI编程的核心不是选工具(Claude Code重现场协作,Codex重委托交付),而是厘清自身角色:许愿型需转任务描述,现场型宜边看边调,派单型要明边界验收,调度型则按任务脏/清/险动态组合。关键在学会“安排AI干活”,而非只会提需求。(239字)
|
20天前
|
缓存 安全 网络协议
Anolis OS 不受 Fragnesia(CVE-2026-46300) 漏洞影响
经龙蜥社区安全团队评估,Anolis OS 各版本均不受 CVE-2026-46300 影响。

热门文章

最新文章