⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

使用 Landlock LSM 编写零依赖沙箱应用

通过 Landlock 安全模块,在用户空间为任意二进制执行进程创建文件系统白名单与网络访问限制。 · 难度:入门 · +10XP

使用 Landlock LSM 编写零依赖沙箱应用

Landlock 是 Linux 5.13+ 内置的 LSM,允许非特权进程自限制文件系统与网络访问。本教程将编写一个 sandbox 程序,在 fork 并 exec 目标应用前调用 landlock_create_rulesetlandlock_add_rule,使子进程只能读取 /usr 和写入 /tmp,同时阻止所有 socket 创建。无需 Docker 或 Seccomp。

struct landlock_ruleset_attr attr = {
    .handled_access_fs = LANDLOCK_ACCESS_FS_EXECUTE |
                          LANDLOCK_ACCESS_FS_WRITE_FILE |
                          LANDLOCK_ACCESS_FS_READ_FILE,
};
int ruleset_fd = syscall(__NR_landlock_create_ruleset, &attr, sizeof(attr), 0);

// 然后添加路径规则,最后 landlock_restrict_self(ruleset_fd); execvp(argv[1], &argv[1]);

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 115 篇
0 完成
🔥 0