聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

在本月补丁星期二中,微软修复了一个已遭利用的 0day 漏洞 CVE-2020-1464。它可导致MSI 文件被转换为恶意的 Java 可执行文件,同时保留公司的合法数字签名。

代码签名是指使用基于证书的数字签名来签名可执行文件和脚本,验证作者的身份并确保该代码自作者签名起并未遭修改或损坏。

微软将该漏洞称为欺骗漏洞,是由 Windows 不正确地验证签名文件导致的,“攻击者如成功利用该漏洞,可绕过安全特征,不正确地加载已签名文件。在攻击场景中,攻击者能够绕过旨在阻止加载不正确签名文件的安全特征”。微软证实称该漏洞已遭利用。

随后,Zengo 公司的安全研究员 Tal Be’ery 和 SafeBreach 实验室的研究员 Peleg Hadar 发布博客文章指出,实际上微软早在2018年8月18日就获悉该漏洞(他们将该漏洞称为 GlueBall),当时的决定是不修复。最近,又有研究员在2020年6月发布 Security-in-bits 博客文章指出,有恶意软件滥用了该弱点。

早在2018年就已检测出

2019年1月,谷歌旗下VirusTotal 公司的研究员 Bernardo Quintero披露称2018年,恶意签名的 Java 可执行文件如何被上传到 VirusTotal Monitor 服务且被检测到(59个引擎中的28个检测到)、他分析后发现该 .jar 文件是一个 MSI 文件,且其尾部附加了一个 Java JAR 文件。尽管该 MSI 文件遭篡改并被更名为一个 JAR 文件,但问题在于,Windows 仍然认为该文件是由源自谷歌的一个合法证书签名的。

由于某些安全解决方案使用数字签名来判断未知文件是否应运行,因此威胁者可以使用这种技术创建 Java 恶意软件,绕过安全软件。发现这个缺陷后,Quintero 负责任地在2018年8月18日将其告知微软,但微软表示不会修复。

Quintero 指出,“这个攻击向量已在 Windows 10 的最新更新版本以及可用 Java 版本中得到验证(Windows 10 版本1809和 Java SE RuntimeEnvironment 8 Update 191)。微软虽然已证实问题存在,但表示将不在当前的 Windows 版本中修复该问题,并同意我们公开这个案例和研究成果。”

为了检测到这种类型的恶意 JAR 文件,VirusTotal 在分析中增加了对这些已遭篡改文件的检测,SysInternal 的签名检查工具也被上传到引擎。

发布补丁后,如果 MSI 文件已遭附加的 JAR 文件篡改,则微软不再认为MSI 文件已签名。我们查看 Windows 1909(图左)和 Windows 10 2004(图右)中使用该技术的恶意 JAR 文件属性时,就会看到微软的修复方案。BleepingComputer 测试认为该安全更新仅仅是删除了由 JAR 文件修改的 MSI 文件上的数字签名。

如果在 MSI 文件后面附加一个 .exe 可执行文件,MSI 的签名仍然是有效的,则表明签名并未被修改。2019年,Chronicle 公司曾表示由于只有 JAR 文件能利用这个问题,因此它并不算缺陷,“截至目前来看,这种技术极其少见。当你在 MSI 末尾附加任何东西时,在这个案例中,只有 JAR 将以原博客文章所述方式执行。”

至于微软为何花了两年的时间才修复这个已遭利用的问题,微软并未正面回应,只是表示应用了最新安全更新的用户免受该攻击。目前也不清楚为何微软未将Quintero 列为漏洞发现者。

MSI 文件为何会遭篡改

鉴于 MSI 文件的读取方式,我们可以在不对签名进行验证的情况下篡改 MSI 文件。

Tal Be’ery 表示,当 Windows 读取 MSI 文件时,它会从文件开头开始读取,一直到有效的 MSI 签名末尾结束并舍弃其它部分。因此在检测到合法的 MSI 文件结构后,它会忽略被附加的数据,而不管它是什么。

如2019年报道的那样,JAR 文件只不过是 ZIP 文件,并且在执行时由 Java 运行时从文件末尾开始读取,直到检测到有效 ZIP 文件结构的开头为止,然后它将丢弃文件的其余部分。

当 Windows 开始从开头读取而 JAVA 从末尾读取时,它允许 Windows 操作系统将 JAR 文件看作是合法签名的文件。

同时,JAVA 从末尾开始读取 JAR 文件并丢弃其余部分。

如此,我们就知道恶意行动者如何创建恶意 JAR 文件同时欺骗公司的合法数字证书。

相关博客文章请见:

https://www.securityinbits.com/malware-analysis/interesting-tactic-by-ratty-adwind-distribution-of-jar-appended-to-signed-msi/

https://medium.com/@TalBeerySec/glueball-the-story-of-cve-2020-1464-50091a1f98bd

推荐阅读

微软补丁星期二修复120个漏洞,含2个已遭利用的 0day

已遭利用的Windows 0day漏洞 CVE-2020-1380分析

原文链接

https://www.bleepingcomputer.com/news/security/microsoft-fixes-actively-exploited-windows-bug-reported-2-years-ago/

https://krebsonsecurity.com/2020/08/microsoft-put-off-fixing-zero-day-for-2-years/comment-page-1/

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 觉得不错,就点个 “在看” 吧~

已遭利用的微软0day CVE-2020-1464,原来是两年前的老相识相关推荐

  1. 微软补丁星期二修复已遭利用的 Defender 0day

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 微软在2021年1月补丁星期二中共修复了83个漏洞,其中10个为"严重"级别,1个已遭利用.它们影响Windows ...

  2. 谷歌修复4个已遭利用的安卓 0day

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 本周三,谷歌更新2021年五月安卓安全通告称,Arm 和高通在本月早些时候修复的4个漏洞可能已在 0day 漏洞状况下遭利用. 安全通告指 ...

  3. 谷歌紧急修复已遭利用的新 0day

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 上周五,谷歌紧急修复已遭利用的 Chrome 0day (CVE-2022-1096),和 V8 JavaScript 引擎中的类型混淆漏洞有关 ...

  4. 谷歌修复已遭利用的 Chrome 0day

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 谷歌修复了 Chrome 88.0.4324.150版本中一个已遭利用的 0day 漏洞,影响 Windows.Mac 和 Linux ...

  5. 苹果修复三个已遭利用的 iOS 0day

     聚焦源代码安全,网罗国内外最新资讯! 今日,苹果发布安全更新,修复了24个影响 iOS 14.2和 iPadOS 14.2的漏洞,其中包含已修复三个遭在野利用的0day (CVE-2020-2793 ...

  6. 已遭利用的Windows 0day漏洞 CVE-2020-1380分析

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 卡巴斯基发布博客文章,简要分析了微软在8月补丁星期二修复的一个已遭利用 0day CVE-2020-1380.如下内容编译自该文章. ...

  7. 已遭利用的Windows 0day漏洞 CVE-2020-1380 分析

    卡巴斯基发布博客文章,简要分析了微软在8月补丁星期二修复的一个已遭利用 0day CVE-2020-1380.如下内容编译自该文章. 文章指出,2020年5月,卡巴斯基阻止了利用 IE 恶意脚本攻击某 ...

  8. 速升级!SonicWall 3个已遭利用的严重0day 影响企业邮件安全设备

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 SonicWall 公司解决了托管和现场邮件安全 (ES) 产品中的三个严重漏洞,它们已遭在野利用. 其中,CVE-2021-20021和 ...

  9. Sophos 紧急修复已遭利用的防火墙 0day

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本周六,网络安全公司 Sophos 发布紧急安全更新,修复在其 XG 企业防火墙产品中已遭在野利用的一个0day. Sophos 表示 ...

最新文章

  1. Crypto++库在VS 2005中的使用——RSA加解密
  2. 用pytorch加载训练模型
  3. 转:PHP非阻塞模式
  4. javascript array添加图片_史上最全的web前端面试题汇总及答案JavaScript之二(二)...
  5. Linux中Shell的转义用法笔记
  6. 空间计量模型_截面数据空间计量模型空间误差模型及Stata操作和应用
  7. https理论与实践
  8. SqlServer发布订阅错误收集
  9. 沃尔玛实验室 —— 为什么我们要启动开源计划
  10. ViT (Vision Transformer) ---- Text Generation(文本生成器)
  11. mysql数据恢复某一时间点_mysql时间点数据恢复
  12. 鸢尾花数据集的数据可视化
  13. 工商数据抓取全部方法
  14. python之excel编程
  15. 灰度图片及彩色图片像素点统计及显示
  16. 为什么用了 DDD 以后,代码更难懂了?
  17. 【单例】JAVA中的单例
  18. STM32-APDS9960手势识别
  19. 山西省高中计算机考试要点,(山西省普通高中信息技术学业水平考试标准.doc
  20. 为什么很多量化策略,回测很丰满,实盘却很骨感

热门文章

  1. mysql : 常用管理命令
  2. 把页面分成左右两个,如何实现在左侧点击,链接一个页面到右边的页面
  3. iFrame只要竖滚动条,不要横滚动条
  4. PHP获取访客ip、系统、浏览器等信息[转]
  5. PHP 生成csv的遇到的分隔符问题
  6. 【MySQL】浅谈一致性读
  7. SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理...
  8. Struts2之checkboxlist 设置默认值和结果回显
  9. linux权限bcd码是6,Linux权限管理(1)基本权限
  10. 安卓java自实现mp3播放器,Android MediaPlayer实现音乐播放器实例代码