为什么 Android 用户应该关心动态代码加载

当人们使用 Android 应用程序时,他们通常不会想到后台发生的任何事情。不幸的是,称为动态代码加载的编程选项可能会带来安全风险。以下是您需要了解的内容。

什么是动态代码加载?

在应用程序开发中,构建应用程序时使用的整个源代码构成了代码库。动态代码加载允许应用从其代码库之外提取内容并在操作或运行时执行。

此选项可以缩小应用程序的大小,因为通常的做法是远程存储代码,而不是将其嵌入Android 软件包工具包 (APK) 中

APK 是 Android 在分发和安装应用程序时使用的文件格式。它包含应用程序在兼容设备上运行的所有组件。从开发的角度来看,动态代码加载带来了一些优势,包括提高应用可用性的一些优势。

例如,一个应用程序可能会向一个人显示不同的内容,这取决于他们是使用免费版还是付费版。动态代码加载可以在不增加 APK 大小的情况下,根据用户的层级显示正确的内容。

此外,动态代码加载允许开发人员发布包含细微更改的新应用程序版本。用户无需下载任何内容即可获得最新版本。

尽管有这些优势,动态代码加载可能会增加与 Android 应用安全相关的风险。

恶意应用程序通常具有动态代码加载功能

2019 年一篇研究论文的作者检查了恶意 Android 应用程序,以找出它们的共性。他们引用了其他各方之前完成的研究,这些研究表明动态代码加载是危险应用程序的首要功能。

一项调查中的 86,798 个应用程序中近 20,000 具有动态代码加载功能。

进一步澄清表明,人们将危险应用程序的核心功能放入独立库中,然后使用动态代码加载来运行它。这种方法可以屏蔽应用程序的恶意行为,使其不易被检测到。

谷歌关于它检测到的恶意软件类型的文档甚至澄清了动态代码滥用可能被标记为后门变种。该公司将后门恶意软件定义为在设备上执行可能有害的远程控制操作。然后给出了一个动态代码加载示例,允许应用程序提取文本消息。

然而,谷歌表示它会查看代码执行是否明确执行恶意行为。否则,该公司会将任意代码执行视为开发人员修补的漏洞。

在危险应用程序的实例中,任意代码执行允许黑客在目标设备上远程执行命令。

研究人员发现动态代码加载问题

Google 经常采取果断措施来提高用户的安全性。例如,第三方 cookie 会跟踪用户、保存他们的信息,然后使用这些信息向他们展示有针对性的广告。但是,该公司将2022 年之前阻止 Chrome 浏览器上的第三方 cookie。它没有给出更改的具体日期。

但是,专注于安全性并不能使公司免于问题。网络安全研究人员在Google 应用程序中发现持续的任意代码执行并将其报告给公司。该问题已于 2021 年 5 月修复,但它让更多人关注与动态代码加载相关的潜在问题。

研究人员证实,该漏洞可以让攻击者在窃取一个人的谷歌数据之前只启动一次应用程序。黑客可以利用 Google 应用程序的缺陷从个人设备上的危险应用程序中提取代码库。

从那里,网络犯罪分子几乎可以访问一个人的所有谷歌数据,包括他们的电子邮件。他们甚至可以激活用户的麦克风、摄像头和实时位置信息。

注意有关危险应用程序漏洞的警告

由于动态代码加载发生在开发端,普通应用用户无法验证某个产品是否可能对其在后台的运行方式带来隐患。但是,留意任何登上科技头条的Android 应用安全新闻是明智之举。

网络安全研究人员不断寻找可能使数十万应用程序用户面临风险的问题,然后报告这些问题。随时了解潜在的应用程序危险将帮助用户决定是否以及何时更新或删除可能有问题的应用程序。