Crowdstrike crash 是由空指针解引用导致

130 天前
 desGalaxy
https://twitter.com/Perpetualmaniac/status/1814376668095754753

最后推文建议把 C++换成 Rust :D
6808 次点击
所在节点    Windows
41 条回复
yyyyt
130 天前
只能说测试都不做就推给了全世界用户
真牛
moudy
130 天前
@busier 似乎是 azura 异常引起的分发失败,推特有人截图说那个文件里都是垃圾内容
w568w
130 天前
1. 首先明确的是,Rust 在内存安全上无懈可击(不要说什么「都是编码习惯」「我习惯好写 C++ 从来不出错」,Rust 从原理上避开习惯带来的内存问题,把这变成一个根本无需讨论的伪命题了,还不高兴了?)所以说这个问题是不用 Rust 导致的,无可厚非;

2. 但是,重点是 crowdstrike 这个开发测试流程和程序员的态度,就像楼上说的,换成 Rust 多半也只会 unwrap() everywhere ,最后全 panic 掉。换语言能解决个人粗心大意的问题,但这个问题不在其中。还是那句话,出现一只蟑螂的时候,说明……
786375312123
130 天前
不是,不说 rust ,不说测试,不说开发能力。
练静态分析都没上?现成的工具一大堆啊?
https://clang.llvm.org/docs/analyzer/checkers.html#core-nulldereference
polobug
130 天前
100 元一台的每年服务费一点都不便宜啊。。
tairan2006
130 天前
草台班子是这样的
desGalaxy
129 天前
@w568w Rust 也有 unsafe 代码可能会有内存 bug 。但 rust 的确让 unsafe 代码明确,且尽量少
winson030
129 天前
这大公司连 sdlc 都没贯彻落实,实在不能理解。他这情况连 sit 都不可能过的,更何况 uat 和 production 。
her999
129 天前
@moudy 昨天上午,我打算下载一个 vscode 的扩张,发现 https://marketplace.visualstudio.com/ 服务中断了。当时的确部分 azura 主机出现异常,而 crowdstrike 也的确通过 azura 更新。但是,如果 azura 出现故障,Crowdstrike 就把下载到的错误的内核文件(*.sys),不经过校验,就直接安装在用户的生产环境中,导致系统蓝屏,那么更证明 crowdstrike 是十足的草台班子。
12101111
129 天前
@lrxiao 在微软的 gdi rust 内核模块中就能找到 unwrap 的 message ,可见微软也在用 unwrap 和 assert

比如 called Option::unwrap() on a None value gdi_rust\src\xform\mod.rs
Src and Dst are of different sizes gdi_rust\src\xform\xformobj_cxx.rs
assertion failed: !self.ppath.is_null() gdi_rust\src\pathobj.rs
called Option::unwrap() on a None value gdi_rust\src\umptr.rs
called Result::unwrap() on an Err value gdi_rust\src\region.rs
index out of bounds: the len is but the index is
assertion failed: index <= scan_data.len()
assertion failed: ScanInternal::is_valid_scan(&&*self.scan_data, previous_index)

用 strings win32kbase_rs.sys 就能看到(版本号 10.0.26100.1252 )
mongoose
129 天前
不是吧?
我记得他们官方出的解释文章中说不是因为空指针问题。
kk2syc
129 天前
@moudy @her999 指正 Azure …
moudy
129 天前
@kk2syc 我在前一天晚上玩 xbox 发现商店异常,打折页面没响应。但是就觉得 xbox 服务抽风。没想到是微软云抽风,更没想到把 crowdstreik 给点着了
kk2syc
129 天前
@moudy 嗯嗯,我只是回复你们打错字了
wangshuo6
129 天前
rust 启动!
VYSE
128 天前
可是安全软件的内核模块往往是对 io ,network 的 hook ,不 crash 但模块会不工作,此时也会 bsod...
Keuin
128 天前
Rust 也不能保证不会出 bug ,解决 bug 的应该是流程和规范,而非语言
leimao
128 天前
太长了,推文哪里提到 Rust 了?
leimao
128 天前
看到了。Rust 就没有空指针吗?空指针这个问题,只能靠检查来解决吧?
Nugine0
128 天前
讲道理,你们测试会测到 azure 宕机返回垃圾内容的情况吗?多半会认为底层已经有校验了吧。
当天上午我的确先看到了 Azure 大规模宕机的消息,下午就是 CrowdStrike 的大新闻。

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

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

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

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

© 2021 V2EX