开源!在 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 如何在几十行脚本内完成对内核提权漏洞的热缓解。欢迎持续关注龙蜥不迷路。

—— 完 ——

相关文章
|
8天前
|
人工智能 JSON 运维
2026 生产级 AI Agent 自动化:零重型框架,彻底解决多步任务不稳定难题
本文提出“文件即状态”轻量架构,用5个文件实现AI Agent多步任务的稳定执行,无需LangGraph等重型框架。支持断点续跑、幂等重试、跨Agent协同,个人开发者7天即可落地生产级自动化。(239字)
|
2月前
|
人工智能 弹性计算 运维
|
8天前
|
缓存 安全 小程序
Lua-LSM 系列二:从 CopyFail 到 Dirty Frag,看 732 字节的漏洞,用 79 字节关上
最近发生的真实安全漏洞场景,展示 Lua-LSM 如何在 79 字节内完成对内核提权漏洞的热缓解。
|
8天前
|
缓存 安全 网络协议
Anolis OS 不受 Fragnesia(CVE-2026-46300) 漏洞影响
经龙蜥社区安全团队评估,Anolis OS 各版本均不受 CVE-2026-46300 影响。
|
1月前
|
SQL 关系型数据库 MySQL
【超级详细】MySQL下载 | MySQL安装教程 | MySQL数据库安装使用全攻略
MySQL是开源、高性能的关系型数据库,支持SQL标准,广泛用于网站后台、应用开发与数据分析。它免费稳定、跨平台(Windows/Linux/macOS),社区资源丰富。当前主流版本为MySQL 8.0(新特性强),5.7为长期支持版。
|
1月前
|
人工智能 数据可视化 开发工具
给 AI 智能体装了个“黑匣子”,3 秒定位谁该背锅
Agent Blame-Finder 是专治多智能体系统“甩锅难题”的开源黑匣子工具。基于IETF草案JEP/JAC,3秒精准定位故障责任方,支持加密签名、因果链追溯与零侵入集成,堪称AI世界的`git blame`。
150 11
|
1月前
|
人工智能 机器人 API
阿里云无影云电脑+轻量服务器部署OpenClaw|集成Slack机器人+千问Qwen3.6-Plus配置保姆级教程+避坑大全
2026年,OpenClaw结合阿里云无影云电脑、轻量服务器与Slack,已实现“零基础、零代码、全场景”的AI自动化落地。本文完整覆盖**阿里云轻量服务器部署OpenClaw(Clawdbot)简单步骤及阿里云千问Qwen3.6-Plus配置教程和避坑指南**,从无影云电脑一键部署、轻量服务器手动搭建,到Slack全集成、千问大模型配置,全程提供可直接复制的代码与可视化指引,确保新手一次成功、稳定运行。
197 10
|
8天前
|
BI
Quick BI使用案例20:交叉表中使用嵌套计算功能统计各个区域月累计订单金额及排名
本文介绍如何用Quick BI“月累计-按列排名”功能,在月底前7天精准识别安全区、冲刺区、止损区,动态调配资源,提升月度KPI达标率。(239字)
|
8天前
|
人工智能 Anolis 开发者
CXL 接口库开源!龙蜥智算联盟 MeetUp 圆满举办,聚焦 AI Infra全栈创新落地
围绕 AI Infra 全栈技术趋势与创新实践,与现场开发者进行了深入的技术交流,共同勾勒下一代 AI Infra 的技术蓝图。
|
1月前
|
人工智能 Java 定位技术
【SpringAIAlibaba新手村系列】(14)MCP 本地服务与工具集成
本章从 MCP Server 视角出发,说明如何将本地天气查询能力整理并暴露为标准化工具服务。内容涵盖 @Tool、ToolCallbackProvider、MethodToolCallbackProvider 的作用,以及 Streamable-HTTP 协议下服务端的能力注册与对外提供逻辑。
478 13

热门文章

最新文章