F-Droid 和 Janus 漏洞
发布于 2017-12-13,发布者为Janus 漏洞 在 Android 世界中突然出现,而我们已采取行动抵御其威胁。
首先,对 f-droid.org、guardianproject.info/fdroid 和 apt.izzysoft.de/fdroid 中可能存在的Janus 漏洞进行的扫描一无所获。f-droid.org 对恶意软件最有力的防范措施是要求所有的东西都必须从头构建,人工审查所有添加的应用,并且永久存储每一个构建的源代码包。漏洞利用者既不想泄露他们恶意软件的源代码,也不想将他们的活动永久记录在 git 中,所以这个过程把他们拒之门外。f-droid.org 运行七年来,还未曾发现过恶意软件。
F-Droid 也是一个开放的生态系统,这意味着许多人正在从其他来源获取应用。因此,我们正在努力将 Janus 检测添加到 F-Droid Android 客户端应用中。找到具有 Janus 漏洞的 apk 文件后,它将在“更新”选项卡中提示用户将其卸载。如果从允许带有 Janus 漏洞的 APK 进入的存储库中下载了它,则会阻止其安装。
还有一些随机的好消息:事实证明,我们拥有的大约 10 个 Janus 示例中没有一个可以通过 fdroid update。它们大多数都在
fdroid update 调用 aapt dump badging 时验证失败。通过这些测试的唯一一个文件是公开发布的 Janus 演示
APK。但是它在
ZIP 条目中有一个奇怪的日期,例如2042-14-03 00:62:15,这可能是汇编此 DEX+ZIP 文件所需的骗术。解析
AndroidManifest.xml 的日期时,这会在 fdroid update 中引发崩溃。Python 抱怨没有第 14 个月。崩溃导致
APK 无法添加到存储库中。我们还为试图利用 Janus 的 APK
添加了明确的阻止。
此外,apksigner 更擅长验证 APK 签名,许多 Janus 示例都失败了。如果安装了 apksigner,则 fdroid
build 将使用它。如果使用 v2 APK 签名对 APK 进行签名,则类似 Janus 漏洞之类的东西是不可能的。因此,如果你使用的 APK
不是从源代码构建的,请确保安装 apksigner。
因此,我们可以肯定地说,很难在无意中将 Janus 漏洞放入 F-Droid 存储库中。同时借助 Android 客户端应用中的新保护,存储库无法强制用户安装。
