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

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

在本月补丁星期二中,微软修复了一个已遭利用的 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. 【机器视觉】 HDevelop语言基础(三)-容器和保留字
  2. 《Python快速入门》基础知识扫盲课
  3. 2014522920145316《信息安全系统设计基础》实验一 开发环境的熟悉
  4. mysql索引为什么使用B+tree,InnoDB与MyISAM 的区别
  5. vs2010变的特别卡解决办法
  6. layey图片内容不居中
  7. 视觉SLAM笔记(62) 单目稠密重建
  8. 存储容量(空间)换算公式
  9. Rust搜索服务器、rust快速找服教程
  10. 3dfier:GIS数据转3D城市模型
  11. 【力扣17】电话号码的字母组合
  12. mcldownload文件夹_我的世界存档在哪个文件夹及导入存档的方法介绍
  13. 海滨学院计算机基础考试题库含答案,北京交通大学海滨学院计算机基础考试卷-网络应用基础.doc...
  14. 用ENSP华为模拟器做图书馆得网络配置和设计
  15. 记录一下tomcat的./startup.sh完成之后没有tomcat进程问题
  16. 2019前端工程师修炼手册.pdf
  17. 【锐捷交换】交换机聚合接口配置
  18. ctp新浪股票接口需要注意的几个细节
  19. vue开源项目(各大插件,gitup源码)
  20. 微信小程序与低功耗蓝牙通信-往硬件端发送数据(三)

热门文章

  1. 基于webview的选择滑动控件(PC和wap版)
  2. maven 学习笔记(三)创建一个较复杂的 eclipse+android+maven 工程
  3. 完成端口与高性能服务器程序开发
  4. springboot统一校验validator实现
  5. 《数据库系统概念》20-恢复系统
  6. java遍历hashMap、hashSet、Hashtable
  7. [河南省ACM省赛-第四届] 表达式求值(nyoj 305)
  8. IBM X3650 M4 服务器
  9. ORA-01747: user.table.column, table.column 或列说明无效
  10. 如何将access数据库导入到sql2005数据库中