如何在执行不信任代码时确保安全?

2019-01-02 23:46:11 +08:00
 neurocomputing

就像 Leetcode 那样,用户上传代码执行,但不会对整个系统造成影响

是在环境上做工作?比如,对每次执行建立一个虚拟环境,代码执行完销毁该环境

还是在代码过滤上做工作?比如,限制 import 的包、过滤某些危险代码

2560 次点击
所在节点    程序员
7 条回复
wwqgtxx
2019-01-02 23:59:48 +08:00
seccomp 了解一下,主要还是靠白名单
wqyyy
2019-01-03 00:03:48 +08:00
扔容器里吧
eslizn
2019-01-03 00:04:25 +08:00
沙箱,不同平台有不同的实现方式。不过现在用 docker 会更方便
yanaraika
2019-01-03 00:14:54 +08:00
seccomp 限制 syscall
cgroup 限制资源占用
chroot 限制文件系统暴露面

代码过滤是最不安全的做法。光个 c 直接写 shellcode 你都拦不住
azh7138m
2019-01-03 09:32:45 +08:00
可以 ptrace+setrlimit,再加个超时 kill,基本 ok
ww2000e
2019-01-03 09:33:00 +08:00
沙盒?
huihuiHK
112 天前
@yanaraika 最近在了解这些。不过网上资料都比较散,有相关书籍推荐吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/523298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX