| |
|
知识库 -> 数码 -> 山衫惠子说智子没有发现希恩斯改动了思想钢印程序代码中的一个正负号,这可能吗? -> 正文阅读 |
|
[数码]山衫惠子说智子没有发现希恩斯改动了思想钢印程序代码中的一个正负号,这可能吗? |
[收藏本文] 【下载本文】 |
山衫惠子说智子没有发现希恩斯改动了思想钢印程序代码中的一个正负号,这可能吗? 关注问题?写回答 [img_log] 三体(书籍) 地球三体组织(ETO) 三体Ⅰ:地球往事(书籍) 山衫惠子说智子没有发现希恩斯改动了思想钢印程序代码中的一个正负号,这可能吗? |
一个现实的例子。 近期,一个恶意用户Jia Tan(下称JiaT),尝试在xz-utils中开后门,具体的过程可以参考知乎问题“ 知名压缩软件 xz 被发现有后门,影响有多大?如何应对? ”下的回答,这里只关注这个大瓜下的一个小“细节”。 背景知识: landlock,根据 Landlock: unprivileged access control — The Linux Kernel documentation , Because Landlock is a stackable LSM (LSM = Linux Security Modules,答主注), it makes possible to create safe security sandboxes as new security layers in addition to the existing system-wide access-controls. This kind of sandbox is expected to help mitigate the security impact of bugs or unexpected/malicious behaviors in user space applications. Landlock empowers any process, including unprivileged ones, to securely restrict themselves. 关乎着沙箱(sandbox)的安全。 而JiaT的一次恶意代码提交 git.tukaani.org - xz.git/commitdiff (需要魔法),是这样的: |
|
JiaT这次恶意提交中存在问题的一个diff。 其中红色的就是之前的代码,绿色的就是JiaT在这次提交中新增的代码。 如果你是审查这段代码的人,你能发现这段代码的问题吗? 事实上,引入个提交之后,LANDLOCK永远不会激活。它直接影响了sandbox的安全性。 现在,你已经知道了这个提交有问题,你能看出来JiaT是怎么做到的吗? 非常简单,在这段代码中,check_c_source_compiles语句里,包含了一个C代码。JiaT的提交,表面上看起来是,如果这个C代码编译通过,就让HAVE_LINUX_LANDLOCK变量为true,否则为false。之后根据HAVE_LINUX_LANDLOCK的正负控制SANDBOX LANDLOCK检查。 但是,问题就出在,这个C代码根本不可能编译通过,因为一个点。 |
|
红色标出来的,是一个点。 这个点,并不符合C语言的语法,导致这段C代码编译一定失败,进而导致HAVE_LINUX_LANDLOCK一定为false,所以SANDBOX LANDLOCK检查一定失效,进而,(可能)导致sandbox的安全问题。 我相信,即使是最优秀的reviewer,也不一定能肉眼看出这里有问题。我甚至把这个提交给ChatGPT3.5看了下,让它分析这里的问题,它看不出来,在我的引导下,虽然它说出了上面分析的逻辑,但是也不能说清楚这块代码为什么引入安全问题。如果你手头有别的生成式AI大模型工具,你可以试试,看看它们能不能看出这个问题。 现在回到题主的问题。这种极小代码导致巨大的差异不被发现,我认为是可能的。 即使现在还算“智能”的生成式AI大模型之一ChatGPT3.5,都不能看出一个“.”引起的安全问题,三体中的智子,可能也不可以。毕竟原著中,智子并没有体现超高的人工智能特性。 参考: 知名压缩软件 xz 被发现有后门,影响有多大?如何应对? |
完全可能,写一个思想钢印程序代码大概至少要用上好几个月,其间需要做无数次debug,还要(由于需求)对程序调整许多次,只要在大规模日常修改的时候顺手改一个正负号就行了。 |
首先, 西恩斯编写的是一套程序, 按照正常程序设计思路, 植入信念正负号不可能写死在代码里的(HardCode), 小说里谈到, 这套程序会在人的意识里植入一个信念, 比如水有毒, 也就是说这个命题可能是真也可能是假, 那在设计程序时, 应该用一个参数(level)表示对命题的肯定程度, 区间[-100, 100] 以下为伪代码:
测试1: 水是无毒的.
结果: 水肯定是有毒的 测试2: 褚岩是钢印族.
结果: 褚岩可能是钢印族 测试3: 人类必胜.
结果: 人类必胜 好了, 程序开发完成, 最终版本代码已经commit,可以发布到生产环境啦. 管理员希恩斯开始.
|
三体人不怕你人类视死如归来拼命,最怕你太害怕然后跑路,还是那种四面八方的跑。不比地球上,抓一百头猪要花多少多少时间,太空中找一艘飞船那是比登天还难,更别说各方向跑路的。 所以,三体人有什么理由不制止这种逃跑思想的失败主义者呢? |
我觉得三体人很可能发现思想钢印有问题,但不一定是从代码里发现的。 原作里我记得思想钢印传承了二百多年,设定上是5台机器轮流使用。但是对外宣称是给予必胜信念。这样的话吸引来的肯定多是希望能让自己觉得人类必胜的人。 结果打完钢印,咦?人类好像必败啊。 不是所有人都是章北海,能完美塑造一个相信人类必胜的信念的形象。那么他们很可能会被发现 只要有一个人被发现,三体人就会意识到,思想钢印的设备是有问题的。 |
不要问,问就是剧情需要。 所有BOSS一定是有弱点的,这个弱点一定是作者故意加上去的。 |
首先,这个程序是针对人类大脑和钢印机的,而这二者三体都没有,特别是人类大脑的结构、特点、运作方式,是无法用其他手段模拟的。因此在程序中,根据大脑扫描结果修改执行参数,起到什么效果,三体无法通过仿真或代码分析的方法获得结果。 其次,程序是思维的一种表现形式。某些程序员编的程序后人无法理解,某些历史遗留程序看似冗长低效,但一直正常运行且无法替代。这些都说明了程序的运行方式与编程者本身的思维特点有很大关系。由于三体人与地球人在思维上的巨大差异,加上希恩斯的破壁者是女性,逻辑思维和发散思维的局限性,破解程序自然会很难。——直到冬眠前才发现。 最后,则是希恩斯放的烟幕弹起到了很好的掩饰作用。希恩斯放的第一个烟幕弹是研究方向为人脑能力提升,由于威胁小,降低了三体对其关注度,甚至主要的工作都由破壁人完成了。第二个烟幕弹是思想钢印的内容为地球必胜,因为这与三体战略思想吻合,三体人知道后要么不屑一顾,要么笑得不行,给了希恩斯以充分的时间来实施。第三个烟幕弹则是希恩斯对思想钢印的态度。自始至终,希恩斯都把思想钢印当成副产品看待,骗过了三体,带着破壁人一起冬眠,从而给思想钢印赢得了生机。 |
没想明白的是,被打上人类必败的思想钢印后,绝大部分人应该是很痛苦的啊,可剧情不是。 |
有可能叭,三体人也会有疏漏的地方,比如三体二结尾处三体人没有发现罗辑的摇篮系统,罗辑大张旗鼓的建造核弹,精心布置,以太阳系的位置来威胁三体人,这可能是三体人最大的疏忽叭,我超级佩服罗辑!!! |
别说他发现不了。。。我自己写的代码都有可能出这问题。。。我也有可能是她对程序不是很熟悉。。。 |
其实小说有个点侧面说明过智子不能全方位无死角监控人类,在说到粒子加速器替代问题上时,大史提出过能不能多造几台。被反驳的理由也是,时间金钱不允许,换而言之,如果有足够的时间和金钱造出足够的对撞机,那么智子也没法封锁人类的粒子对撞。 或者反过来想,智子如果特别牛逼,那把人类大脑模型,每个细胞的结构都复制到三体星,那记忆什么的,不都透明了吗。说明大刘设定下的智子监控还是有死角的。 所以可以有一下推论: 1、既然智子是能力有限的,那就只能做有限的事情。代码的死角没监控到,漏掉了。 2、监控到代码,传递回三体世界解析,他们破译的工程师疏忽了。可以类比人类战争,就算差距很悬殊的战争,但是决策者的失误,忽略了。 另外程序bug理论上无可避免的,更不要说蓄意隐藏的bug。 希恩斯可以用一套十分复杂的算法,在调试的时候都是ok的,都能产生"人类必胜"的钢印,等到客户现场就全是bug,不过bug是他想要的。 |
其实不用发现他具体改了啥,把程序代码抄下来跑个测试不就行了? |
西恩斯顿母亲生出来了西恩斯,这可能吗? |
|
[收藏本文] 【下载本文】 |
上一篇文章 查看所有文章 |
|
|
娱乐生活:
电影票房
娱乐圈
娱乐
弱智
火研
中华城市
印度
仙家
六爻
佛门
风水
古钱币交流专用
钓鱼
双色球
航空母舰
网球
乒乓球
中国女排
足球
nba
中超
跑步
象棋
体操
戒色
上海男科
80后
足球: 曼城 利物浦队 托特纳姆热刺 皇家马德里 尤文图斯 罗马 拉齐奥 米兰 里昂 巴黎圣日尔曼 曼联 |
网站联系: qq:121756557 email:121756557@qq.com 知识库 |