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

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

  •  1
     
  •   desGalaxy · 2024-07-20 07:45:11 +08:00 · 8601 次点击
    这是一个创建于 412 天前的主题,其中的信息可能已经有所发展或是发生改变。
    41 条回复    2024-07-22 09:56:21 +08:00
    levelworm
        1
    levelworm  
       2024-07-20 08:12:47 +08:00 via Android   ❤️ 1
    学好 C/C++果然有用啊
    canyue7897
        2
    canyue7897  
       2024-07-20 08:31:14 +08:00 via Android   ❤️ 2
    为什么不换?
    这不就让 C ++背锅了嘛
    还能让全世界认识我
    busier
        3
    busier  
       2024-07-20 09:06:03 +08:00 via iPhone
    写出 bug 问题不大,问题是都不测试就分发么
    mioktiar56
        4
    mioktiar56  
       2024-07-20 09:33:13 +08:00   ❤️ 7
    以前刚写 C++的时候还经常犯使用空指针的错误,写了几年后,这种 bug 基本不会出现了;

    换成 Rust 虽然没有这种 bug ,还是会有其他 bug 的,和语言没关系,和人关系比较大,估计是降本增效导致的
    zhng920823
        5
    zhng920823  
       2024-07-20 09:36:12 +08:00
    那个 9c 是结构体或类成员的偏移嘛
    liuguangxuan
        6
    liuguangxuan  
       2024-07-20 09:45:06 +08:00
    @zhng920823 9c 应该是无效的地址,不应该访问,所以挂了。
    desGalaxy
        7
    desGalaxy  
    OP
       2024-07-20 09:54:27 +08:00
    @zhng920823 是的
    Rehtt
        8
    Rehtt  
       2024-07-20 11:43:20 +08:00 via Android   ❤️ 1
    话说推送前没测试吗,这次导致大面积错误的事故应该是可以测试出来的啊
    PrinceofInj
        9
    PrinceofInj  
       2024-07-20 12:01:18 +08:00
    我比较好奇的是如何收场。赔款?还是直接破产?
    Kumo31
        10
    Kumo31  
       2024-07-20 12:08:34 +08:00
    Rust 又赢了
    lrxiao
        11
    lrxiao  
       2024-07-20 12:26:01 +08:00
    按照写这个程序的人的做法, 写 Rust 也只会 unwrap 然后照样 panic (
    crackidz
        12
    crackidz  
       2024-07-20 13:13:36 +08:00
    Rust 党又来了...
    minami
        13
    minami  
       2024-07-20 13:57:16 +08:00 via Android
    在 servo 完工前任何对 rust 的吹嘘都是扯蛋
    o0DoO0o
        14
    o0DoO0o  
       2024-07-20 14:12:16 +08:00
    换位思考一下,写出这段程序的人现在应该在想怎么安全辞职了
    iamtom
        15
    iamtom  
       2024-07-20 14:37:43 +08:00   ❤️ 1
    @Rehtt 估计没有实际测试,疏忽了。世界本来就是草台班子。我觉得一点不奇怪。
    还有地铁系统出 bug 的,导致路线出错。
    e3c78a97e0f8
        16
    e3c78a97e0f8  
       2024-07-20 14:41:48 +08:00   ❤️ 1
    @Rehtt 没测试只是一方面,另一方面是推送的时候不是 incremental ,而是直接推给全球所有用户。只能说这个公司的技能点都点在政企关系上,技术实力差得很。
    kenvix
        17
    kenvix  
       2024-07-20 14:42:38 +08:00
    这简直超级草台班子,但凡开发自己跑一下都不至于这样
    y1y1
        18
    y1y1  
       2024-07-20 14:47:28 +08:00
    这个我也看见了,读到最后推荐 rust 猝不及防没绷住
    gulugu
        19
    gulugu  
       2024-07-20 14:54:57 +08:00
    这真是毁掉世界只需一行代码啊!只要掌握资源,凡人比黑客还牛
    xjzshttps
        20
    xjzshttps  
       2024-07-20 15:06:40 +08:00
    这个事情真的很离谱
    看全面爆发,这个 bug 触发条件看起来很简单
    那么从写出 bug 到全部客户都更新上,中间有多少步骤?
    开发自测,专业测试,测试版本上限,正式版小范围推送,中间哪一步都应该能够拦截吧?
    或者说这个是时间之类的相关的 bug ?测试时由于一些条件不会触发?
    yyyyt
        21
    yyyyt  
       2024-07-20 15:31:40 +08:00 via Android
    只能说测试都不做就推给了全世界用户
    真牛
    moudy
        22
    moudy  
       2024-07-20 15:38:08 +08:00 via iPhone
    @busier 似乎是 azura 异常引起的分发失败,推特有人截图说那个文件里都是垃圾内容
    w568w
        23
    w568w  
       2024-07-20 16:23:52 +08:00
    1. 首先明确的是,Rust 在内存安全上无懈可击(不要说什么「都是编码习惯」「我习惯好写 C++ 从来不出错」,Rust 从原理上避开习惯带来的内存问题,把这变成一个根本无需讨论的伪命题了,还不高兴了?)所以说这个问题是不用 Rust 导致的,无可厚非;

    2. 但是,重点是 crowdstrike 这个开发测试流程和程序员的态度,就像楼上说的,换成 Rust 多半也只会 unwrap() everywhere ,最后全 panic 掉。换语言能解决个人粗心大意的问题,但这个问题不在其中。还是那句话,出现一只蟑螂的时候,说明……
    786375312123
        24
    786375312123  
       2024-07-20 16:53:00 +08:00
    不是,不说 rust ,不说测试,不说开发能力。
    练静态分析都没上?现成的工具一大堆啊?
    https://clang.llvm.org/docs/analyzer/checkers.html#core-nulldereference
    polobug
        25
    polobug  
       2024-07-20 16:55:43 +08:00
    100 元一台的每年服务费一点都不便宜啊。。
    tairan2006
        26
    tairan2006  
       2024-07-20 16:55:57 +08:00 via Android
    草台班子是这样的
    desGalaxy
        27
    desGalaxy  
    OP
       2024-07-20 21:59:27 +08:00 via Android
    @w568w Rust 也有 unsafe 代码可能会有内存 bug 。但 rust 的确让 unsafe 代码明确,且尽量少
    winson030
        28
    winson030  
       2024-07-20 22:47:56 +08:00
    这大公司连 sdlc 都没贯彻落实,实在不能理解。他这情况连 sit 都不可能过的,更何况 uat 和 production 。
    her999
        29
    her999  
       2024-07-20 23:59:07 +08:00
    @moudy 昨天上午,我打算下载一个 vscode 的扩张,发现 https://marketplace.visualstudio.com/ 服务中断了。当时的确部分 azura 主机出现异常,而 crowdstrike 也的确通过 azura 更新。但是,如果 azura 出现故障,Crowdstrike 就把下载到的错误的内核文件(*.sys),不经过校验,就直接安装在用户的生产环境中,导致系统蓝屏,那么更证明 crowdstrike 是十足的草台班子。
    12101111
        30
    12101111  
       2024-07-21 03:45:51 +08:00
    @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
        31
    mongoose  
       2024-07-21 12:57:20 +08:00
    不是吧?
    我记得他们官方出的解释文章中说不是因为空指针问题。
    kk2syc
        32
    kk2syc  
       2024-07-21 18:30:49 +08:00
    @moudy @her999 指正 Azure …
    moudy
        33
    moudy  
       2024-07-21 18:39:32 +08:00 via iPhone
    @kk2syc 我在前一天晚上玩 xbox 发现商店异常,打折页面没响应。但是就觉得 xbox 服务抽风。没想到是微软云抽风,更没想到把 crowdstreik 给点着了
    kk2syc
        34
    kk2syc  
       2024-07-21 19:53:35 +08:00
    @moudy 嗯嗯,我只是回复你们打错字了
    wangshuo6
        35
    wangshuo6  
       2024-07-21 20:10:37 +08:00
    rust 启动!
    VYSE
        36
    VYSE  
       2024-07-21 21:38:17 +08:00 via Android
    可是安全软件的内核模块往往是对 io ,network 的 hook ,不 crash 但模块会不工作,此时也会 bsod...
    Keuin
        37
    Keuin  
       2024-07-21 23:30:47 +08:00
    Rust 也不能保证不会出 bug ,解决 bug 的应该是流程和规范,而非语言
    leimao
        38
    leimao  
       2024-07-22 07:28:40 +08:00 via iPhone
    太长了,推文哪里提到 Rust 了?
    leimao
        39
    leimao  
       2024-07-22 07:31:29 +08:00 via iPhone
    看到了。Rust 就没有空指针吗?空指针这个问题,只能靠检查来解决吧?
    Nugine0
        40
    Nugine0  
       2024-07-22 08:41:48 +08:00
    讲道理,你们测试会测到 azure 宕机返回垃圾内容的情况吗?多半会认为底层已经有校验了吧。
    当天上午我的确先看到了 Azure 大规模宕机的消息,下午就是 CrowdStrike 的大新闻。
    yongdaimi
        41
    yongdaimi  
       2024-07-22 09:56:21 +08:00
    任何不经过测试的 code 直接推送或入库都是灾难。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1121 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:07 · PVG 02:07 · LAX 11:07 · JFK 14:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.