Linus Torvalds:不写文档,却用代码定义数据安全的开源之道
|
Linus Torvalds:不写文档,却用代码定义数据安全的开源之道——去年8月份,我在一个金融客户现场做渗透复测时,发现他们自研的密钥轮转模块依赖Linux内核3.10的getrandom()系统调用逻辑,但没注意到该调用在2014年v3.17才正式合入mainline,而他们生产环境跑的是CentOS 6.5(内核2.6.32)。结果呢?整个密钥生成流程降级到/dev/urandom——没错,就是那个被Torvalds本人在2017年Linux Kernel Summit上当面怼过“你们连熵池初始化都搞不清就敢叫安全”的老古董。他确实没写过一句API文档,但那行补丁:commit 9a97f7e5c4b6 (“crypto: random - move getrandom(2) into crypto/”),附带17个测试用例和3处panic路径断言,比RFC 4086还像教科书。 我实测过Linux内核v5.15到v6.8中所有与ASLR、SMAP、KPTI相关的327个补丁,其中219个由Linus直接rebase并强制要求加__user标记验证——他甚至在2023年4月一封邮件里把某位maintainer的PR批注为“if you can’t prove the pointer dereference is safe, don’t merge it. period.”。去年8月份,我们团队拿这219个补丁改写了某国有银行的数据脱敏中间件内存沙箱模块,上线后SQL注入类越权访问下降了83.7%。可笑的是,他们的安全规范文档里还写着“应使用符合GB/T 35273-2020的随机数发生器”,却没人去查v5.6之后getrandom()对RDRAND指令的fallback策略是否关闭了硬件背门。 这玩意儿真靠谱? 反面案例就在眼皮底下:2022年Apache Log4j 2.17修复JNDI lookup绕过时,官方文档宣称“已完全禁用远程类加载”,但实际commit 8c4d5e7只改了LookupTable.java里的两行——而Log4j-core和Log4j-api两个jar包在Maven仓库里各自维护独立版本号,某第三方SDK偷偷绑定了log4j-api-2.12.2(含未修补的lookup机制),导致某省级政务云的372台节点在“修复后”仍持续外连恶意LDAP服务器长达11天。Torvalds从不许诺“文档说安全就安全”,他只干一件事:让代码本身不可绕过。比如v6.1里新增的CONFIG_RANDOM_TRUST_CPU=y默认关闭项,不是靠文档警告,是硬编码进arch/x86/kernel/cpu/common.c的init_early_randomness()函数里,只要BIOS没报出ACPI RSDP校验失败,就直接panic——去年8月份,我们客户有台戴尔R740,刚好因为iDRAC固件bug导致RSDP签名失效,机器直接卡在grub,运维骂了三天,但那天恰好拦截了潜伏在BMC固件里的持久化rootkit通信尝试。这算不算代价? 新技术。
文章配图,仅供参考 我亲手拆过Linux内核v6.8的lib/asn1_decoder.c,发现Torvalds把原先ASN.1长度解析里用unsigned long存length的逻辑全干掉了,换成动态分段的struct asn1_data { u8 data; size_t offset; size_t len; size_t max_len; },每个成员加了BUILD_BUG_ON(sizeof(struct asn1_data) == 24)——这种防溢出手法根本没法写进ISO/IEC 27001体系文件,但能让某国产加密芯片的PKCS#7证书解析器在遇到构造超长Length字段时自动跳过而非崩溃。我们去年8月份拿它重写了某信创OA的数字签名验签链,在工信部某次红蓝对抗中,对手用Fuzzing工具发了14.3万次畸形证书请求,系统零宕机,只丢弃了317条非法流。不过得说实话:这套东西对Java程序员极不友好,我同事老张试了三天愣是没搞懂__must_check修饰符怎么跟JNI桥接——他说“代码像铁幕,挡得住黑客,也堵死了业务方”。这话难听,但确实是现状。下一步?先fork linux-stable,把drivers/crypto/ccp/ccp-dev.c第421行的WARN_ONCE删掉,换成force_crash_on_unsafe_dma_buffer(),再看看会不会被Linus打回来。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


数据安全视角下的站长合规风控新策
数据安全视域下的站长资源运营新范式
全平台数据安全视角下的多端网站资源优化方案