IDE 用户要小心了 Android StudioEclipse 和 IntelliJ IDEA 均爆出安全漏洞
Posted 云头条
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDE 用户要小心了 Android StudioEclipse 和 IntelliJ IDEA 均爆出安全漏洞相关的知识,希望对你有一定的参考价值。
研究人员:Eran Vaknin、Gal Elbaz、Alon Boxiner和Oded Vanunu
Check Point研究团队的最新研究工作发现了几个安全漏洞,从事各种Java/android开发的每一家企业组织都岌岌可危:攻击者会利用这些漏洞,渗透进来。
有问题的漏洞是世界上最庞大的应用社区:Android应用生态系统使用的开发者工具,包括可下载的工具和基于云的工具。这包括所有Java/Android程序员用来构建公司业务应用程序的工具以及安全分析员和逆向工程师用来完成工作的工具。
正如今年早些时候维基解密网站公布的“Vault 7”所示,CIA和NSA在全球各地利用大大小小公司的产品中的安全漏洞。今年早些时候,我们看到CIA黑入CCleaner和Notepad++等众多软件的事件,旨在将恶意软件散布到企业组织中,获取关于用户和公司本身的信息。
我们经过一番研究后发现了几个安全漏洞,这些漏洞影响几种最常见的Android集成开发环境(IDE):谷歌的Android Studio、JetBrains的IntelliJ IDEA和Eclipse,还影响面向Android应用程序的一些主要的逆向工程工具,比如APKTool和Cuckoo-Droid服务等等。
下面的研究表明了我们如何利用这些工具来访问内部文件。自开展这项研究以来,Check Point早在2017年5月就向APKTool开发人员及其他IDE公司报告了这一发现。反过来,谷歌和JetBrains已证实并承认了这些安全问题,此后有效地部署了修复程序。
我们研究的第一个阶段主要侧重于APKTool(Android应用程序包工具)。
作为最流行的第三方Android应用程序逆向工程工具,APKTool用于支持自定义平台和分析应用程序等功能,包括解码和重建资源。
APKTool的两项主要特性是:
1. 反编译APK文件。
2. 构建APK文件。
我们在研究后发现,APKTool的这两项主要特性都存在薄弱环节。
APK示意图
我们查看APKTool的源代码(https://github.com/iBotPeaches/Apktool)后,发现了一个XML外部实体(XXE)漏洞,这归因于APKTool工具的已配置XML解析器在该程序里面解析XML文件时,没有禁用外部实体引用。
这个易受攻击的函数名为loadDocument,APKTool的两项核心功能:“构建”和“反编译”都使用了它。
该漏洞暴露了APKTool用户的整个操作系统文件系统,因而攻击者有可能获取受害者PC上的任何文件,只需使用利用XXE漏洞的恶意“AndroidManifest.xml”文件,随后该文件有可能被发送到远程攻击者服务器。而这种攻击场景只是可能会带来严重危害的许多潜在的XXE攻击手法之一。
我们认识到这个漏洞给Android开发人员和研究人员带来的严重性后,将研究范围扩大到了“DocumentBuilderFactory”这个易受攻击的XML解析器,APKTool项目使用了该解析器。
开发者工具中的漏洞
这促使我们在其他项目中发现了XML解析器多个易受攻击的实现版本。此外我们发现,用于构建Android应用程序的几种最流行的IDE统统受到影响,包括Intellij、Eclipse和Android Studio。
只要将恶意的“AndroidManifest.xml”文件作为任何Android项目的一部分来加载,IDE就会开始泄露攻击者配置的任何文件。
为了演示这个漏洞,我们将一个恶意项目库上传到了GitHub,并将其克隆到一个Android Studio项目。
带XXE有效载荷的一个Github恶意项目示例:
克隆到Android Studio:
结果:攻击已成功实施,受保护的文件已被窃取,并发送到攻击者的服务器,用户浑然不知――详见下图:
此外,我们还发现了另一种攻击场景:只要将含有XXE有效栽荷的恶意AAR(Android 归档库)注入到代码库中,就可以用来攻击大量的Android开发人员。
比如说,可以将被感染的AAR上传到公共代码库(比如中央Maven代码库),但为了用于演示,我们将被感染的AAR上传到本地代码库。受害者从代码库克隆被感染的AAR,这将让攻击者得以从操作系统文件系统窃取敏感文件,比如配置文件、源代码、公司数字专利及更多信息。
将恶意AAR上传到本地代码库:
将AAR添加到Android Studio项目:
结果:攻击已成功实施,受保护的文件已被窃取,并发送到攻击者的服务器,用户浑然不知:
后来,对APKTool所作的进一步研究让我们发现了另一个漏洞,这个漏洞让我们得以在受害者的PC上执行操作系统命令。
针对APKTool的高级使用,有一个名为“APKTOOL.YML”的配置文件。
该文件含有一个名为“unknownFiles”的部分,它让用户得以包括在APK的重建过程中正确植入的非标准文件位置。所选文件保存在“Unknown”文件夹内的文件系统中。
合法的“APKTOOL.YML”文件结构如下所示:
通过改变“APKTOOL.YML”文件中“unknownFiles”部分的路径,就可以将任意文件注入到文件系统上的任何地方(路径遍历)。这是由于APKTool并不验证从打包的APK中提取未知文件的所在路径。
的确,将任意文件注入到文件系统上的任何地方导致了远程代码执行(RCE)――这意味着试图对精心制作的恶意APK进行解码的任何APKTool用户/服务都很容易受到RCE的攻击。
为了进行演示,我们开发了一个类似官方在线APK解码器的Web应用(https://apk.tools)。
相关阅读:
以上是关于IDE 用户要小心了 Android StudioEclipse 和 IntelliJ IDEA 均爆出安全漏洞的主要内容,如果未能解决你的问题,请参考以下文章
不小心把android studio的预览从右边侧边栏删去了,怎么重新显示出来
我不小心从 android studio 中的 import from gradle 选项导入了项目。现在我的项目不工作