V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
neurocomputing
V2EX  ›  程序员

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

  •  
  •   neurocomputing · 2019-01-02 23:46:11 +08:00 · 2567 次点击
    这是一个创建于 2152 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    代码过滤是最不安全的做法。光个 c 直接写 shellcode 你都拦不住
    azh7138m
        5
    azh7138m  
       2019-01-03 09:32:45 +08:00 via Android
    可以 ptrace+setrlimit,再加个超时 kill,基本 ok
    ww2000e
        6
    ww2000e  
       2019-01-03 09:33:00 +08:00
    沙盒?
    huihuiHK
        7
    huihuiHK  
       113 天前
    @yanaraika 最近在了解这些。不过网上资料都比较散,有相关书籍推荐吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2443 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.