V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skies457
V2EX  ›  信息安全

大家来找茬: xz 维护者如何悄悄关闭 landlock 保护机制

  •  
  •   skies457 · 248 天前 · 5810 次点击
    这是一个创建于 248 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://git.tukaani.org/?p=xz.git;a=blobdiff;f=CMakeLists.txt;h=d2b1af7ab0ab759b6805ced3dff2555e2a4b3f8e;hp=76700591059711e3a4da5b45cf58474dac4e12a7;hb=328c52da8a2bbb81307644efdb58db2c422d9ba7;hpb=eb8ad59e9bab32a8d655796afd39597ea6dcc64d

    --- a/CMakeLists.txt
    +++ b/CMakeLists.txt
    @@ -901,10 +901,29 @@ endif()
     
     # Sandboxing: Landlock
     if(NOT SANDBOX_FOUND AND ENABLE_SANDBOX MATCHES "^ON$|^landlock$")
    -    check_include_file(linux/landlock.h HAVE_LINUX_LANDLOCK_H)
    +    # A compile check is done here because some systems have
    +    # linux/landlock.h, but do not have the syscalls defined
    +    # in order to actually use Linux Landlock.
    +    check_c_source_compiles("
    +        #include <linux/landlock.h>
    +        #include <sys/syscall.h>
    +        #include <sys/prctl.h>
    +.
    +        void my_sandbox(void)
    +        {
    +            (void)prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0);
    +            (void)SYS_landlock_create_ruleset;
    +            (void)SYS_landlock_restrict_self;
    +            (void)LANDLOCK_CREATE_RULESET_VERSION;
    +            return;
    +        }
    +
    +        int main(void) { return 0; }
    +        "
    +    HAVE_LINUX_LANDLOCK)
     
    -    if(HAVE_LINUX_LANDLOCK_H)
    -        set(SANDBOX_COMPILE_DEFINITION "HAVE_LINUX_LANDLOCK_H")
    +    if(HAVE_LINUX_LANDLOCK)
    +        set(SANDBOX_COMPILE_DEFINITION "HAVE_LINUX_LANDLOCK")
             set(SANDBOX_FOUND ON)
     
             # Of our three sandbox methods, only Landlock is incompatible
    
    31 条回复    2024-04-02 14:06:26 +08:00
    Sainnhepark
        1
    Sainnhepark  
       248 天前 via iPhone   ❤️ 2
    加了一个点
    hello2090
        2
    hello2090  
       248 天前
    @Sainnhepark 请教,没看出来那个点啊,上面加了那么一大段,后面 HAVE_LINUX_LANDLOCK_H 改成了 HAVE_LINUX_LANDLOCK
    solangm
        3
    solangm  
       248 天前
    @hello2090
    + #include <sys/prctl.h>
    +.
    + void my_sandbox(void)
    hello2090
        4
    hello2090  
       248 天前
    @solangm 我日,真的假的,这么厉害。
    EyebrowsWhite
        5
    EyebrowsWhite  
       248 天前   ❤️ 5
    我觉得如果 AI 能辅助 code review 还挺好的

    https://chat.openai.com/share/fe0cc11b-a207-4d8e-8c26-430aa0893a73
    kidlj
        6
    kidlj  
       248 天前
    @EyebrowsWhite 今后 AI 将让系统 bug 和后门不复存在。
    kkk9
        7
    kkk9  
       248 天前   ❤️ 11
    @kidlj #6 天大的笑话
    Kumo31
        8
    Kumo31  
       248 天前   ❤️ 1
    这个 . 会导致编译失败,即使系统支持 sandbox ,也不会开启
    Kumo31
        9
    Kumo31  
       248 天前
    @Kumo31 landlock...
    skiy
        10
    skiy  
       248 天前
    如何确定维护者是不是恶意的?加了个 . 之后,还能编译成功吗?
    kidlj
        11
    kidlj  
       248 天前
    @kkk9 你可以看下 5 楼贴出来的 chatgpt 的回答,仅仅通过这一段 diff ,就给出了这么多见解(包括认识到了这多出的一个点的影响),试问有几个人能够在短时间内达到这样的见解呢?而 AI 工具一直在进步,所以我有这样的推测。你认为是笑话就当笑话看吧。
    moudy
        12
    moudy  
       248 天前
    @skiy 就是因为编译永不成功,所以成问题了
    yolee599
        13
    yolee599  
       248 天前 via Android
    @skiy #10 这个是编译前的选项检查阶段,如果编译通过了就会开启 HAVE_LINUX_LANDLOCK ,维护就是要让它永远都编译失败,这样 HAVE_LINUX_LANDLOCK 就永远不会开启了
    Greenm
        14
    Greenm  
       248 天前 via iPhone   ❤️ 1
    @kidlj 任何认为后门和 bug 将在某一天不复存在的想法都是一厢情愿和不切实际的,只要有人存在就不可能彻底解决这类问题。世界本来就是混沌的,你只能努力减少 bug ,永远也做不到杜绝。
    cnt2ex
        15
    cnt2ex  
       248 天前   ❤️ 1
    @kidlj 让系统 bug 和后门不复存在不可能。能大量减少也许还有可能。
    写一个程序,来判断另外一个程序有没有 bug ,这类问题最终是个停机问题,是不可解的。

    AI 能做到的无非是和现在杀软的工作类似,能有多少的准确率预测出是否有 bug 。
    而且对于一个 AI 算法来说,存在对抗样本,肯定会有人发明出能欺骗 AI 的后门代码的。
    dyv9
        16
    dyv9  
       248 天前 via Android   ❤️ 1
    @kidlj 不对,对手也先利用 AI 检测一次,找到更隐秘的方案,只是难度一点,同时也让这个事变得门槛更高,实力不够的人看不出来。
    kera0a
        17
    kera0a  
       248 天前 via iPhone
    @cnt2ex 我朋友在快手,boss 让他做一个提前发现未知 bug 的方案😄
    kkk9
        18
    kkk9  
       248 天前
    @kidlj #11 如果 bug 实际存在,但是 AI 不认定存在 bug ,请问这个 bug 还是 bug 吗?你的不复存在论很矛盾啊,薛定谔的猫?

    你换个说法,什么优化论、减少论,我都还能理解,不复存在论真是太天真了。
    kkk9
        19
    kkk9  
       247 天前   ❤️ 2
    @kidlj #11 再说说你的其他的天真想法

    > 仅仅通过这一段 diff ,就给出了这么多见解

    这些见解是哪里来的,数据样本不是吗?那 AI 没见过的东西能解释吗?只要看不到 bug 就不存在 bug 咯?

    > 试问有几个人能够在短时间内达到这样的见解呢?

    如果你的脑子可以无损存储全部数据样本并且自由的根据需求去索引,我想人脑的算力应该是人类科技 AI 不能超越的。

    > AI 工具一直在进步,

    你用了工具一词,那么我相信你说的 AI 工具是人类创造的,而不是人工智能的自我创造,那么 AI 必然低于或等于人类的最高科技水平。人造的就一定存在 bug ,总有考虑不到的情况。那你说的 AI 怎么进步也没法超越数据样本去凭空推断吧?

    > 你认为是笑话就当笑话看吧。

    真话当笑话,笑话当假话,假话当真话,人真不像话。
    kkk9
        20
    kkk9  
       247 天前
    @kidlj #11 这个帖子发在<信息安全>分类下面,我觉得分类简介已经给出了很好的结论。

    我们都希望自己管理的计算机系统在运转过程中不要遇到任何安全事件。只是,这个不完美的世界的现实告诉我们:学无止境。
    kenilalexandra
        21
    kenilalexandra  
       247 天前
    看来这个作者也是用心良苦啊,为了植入后门应该想了不少吧
    skiy
        22
    skiy  
       247 天前 via iPhone
    @yolee599 编译不成功,怎么还能打 tar ?没有单元测试的啊?这标准化流程做得不行啊。

    我是想说,怎么知道它这个点是错误输入的,还是恶意的?
    Forbidden
        23
    Forbidden  
       247 天前
    @kidlj 顶级黑客最有效的社工手段,雇运维拔网线
    试问阁下如何防范放行漏洞的 AI
    yolee599
        24
    yolee599  
       247 天前
    @skiy #22 这个还没到编译阶段呢,是在 configure 阶段做的检查。在检查的时候怎么知道能不能开启 HAVE_LINUX_LANDLOCK 选项呢?就是在 configure 写一个简单的 demo 并编译它,这个 demo 就调用 LANDLOCK 的 api 函数,如果这个 demo 编译通过了,就认为可以使用 HAVE_LINUX_LANDLOCK ,反之就是不能使用。即使实际可以调用 LANDLOCK 的 api 函数,但是现在加了一个点,这个 demo 必然是编译失败的,所以 configure 就认为不支持 HAVE_LINUX_LANDLOCK 。
    y1y1
        25
    y1y1  
       247 天前
    @kidlj #11 问题的个数要远大于程序的个数,不存在能解决任意问题的程序
    amorphobia
        26
    amorphobia  
       247 天前   ❤️ 1
    这次是一个点,在 diff 里至少还能肉眼看到,如果用一个不可见字符,比如说 U+2800 (盲文的空白符),那 reviewer (几乎一定) 看不见了啊……
    my3157
        27
    my3157  
       247 天前
    @EyebrowsWhite 好像只有 GPT4 能明确检查出 "." 的问题, 其他一众模型包括 GitHub Copilot 都只会告诉你 check_c_source_compiles 可能会因为系统不支持编译失败
    skiy
        28
    skiy  
       247 天前
    @yolee599 GitHub Actions 能做到你说的这一步吧?不过看了下,官方的是自建的代码托管平台,没接入 CI 。
    genesislive
        29
    genesislive  
       247 天前
    看来这个维护者过去的提交都得重新审查
    CivAx
        30
    CivAx  
       246 天前
    @EyebrowsWhite #5 附上 5 楼的贴图:

    clemooling
        31
    clemooling  
       246 天前 via Android
    @kidlj 你不能保证你所使用的 AI 本身不包含后门
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5941 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:52 · PVG 09:52 · LAX 17:52 · JFK 20:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.