手机APP安全问题一直是监管部门的关注重点。过去几年,包括金融、生活服务、游戏娱乐类APP涉嫌违规采集甚至交易用户个人信息的事件常有发生。

 

从2019年开始,监管部门针对信息安全加大监管力度,相应法规已推出、执行,相关环节也在逐步完善中。不过,近日在工信部官网披露的《关于侵害用户权益行为的APP通报(2021年第4批总第13批)》中,涵盖生活社区、游戏娱乐、金融及科技等多个领域的93款APP仍然上了通报榜单。工信部近期将组织第三方检测机构对手机应用软件进行检查,督促存在问题的企业进行整改。

 

移动APP安全问题为何屡禁不止?突出问题是什么?深层的原因又是什么?

 

新思科技(Synopsys)近期发布的报告有一定参考价值。这份题为《疫情中的安全隐患:移动应用程序安全现状》报告,由新思科技网络研究中心(CyRC)制作,审查了2021年第一季度在Google Play商店最受欢迎的3335个安卓移动应用程序,评估新冠疫情爆发期间移动应用的安全状态。

 

报告指出,移动应用程序的开源漏洞非常普遍。在分析的3335个应用程序中,63%包含具有至少一个已知漏洞的开源组件。具有漏洞的应用程序包含平均39个漏洞。新思总共发现了3000多个独特漏洞,并且这些漏洞出现了82000多次。

 

该研究采用了新思科技的Black Duck Binary Analysis,审查对象主要是疫情期间最受欢迎的 18 类应用程序,包括游戏、教育、银行业务以及健康/健身等。针对三个主要领域的潜在安全风险: 

 

• 开源安全漏洞:每天使用的应用程序的开源组件中是否隐藏着已知安全漏洞? 

• 潜在的信息泄漏实例:应用开发人员是否无意间将密码、电子邮件地址或AWS和Google云密钥等敏感数据暴露在编译后的应用程序中? 

• 移动权限:应用程序需要从设备中获得哪些权限?是否超出必要权限? 或者说,是否存在若使用不当将会破坏数据的权限? 

 

新思发现了什么?

 

新思科技软件质量与安全部门高级安全架构师杨国梁,介绍了如何对应用程序二进制包进行分析,以及所用到的工具和技术。

 

采用新思的Black Duck对二进制文件形式的APP进行分析,能够识别开源并将漏洞和许可证与其进行匹配,还能指出敏感信息的潜在风险,例如可能影响应用程序安全性信息泄漏和移动权限。他强调,首先,该分析都是通过工具自动完成的,效率较高,并且不会对软件包进行逆向工程;其次,该分析结合了包管理检查和签名,以及哈希配对等技术;第三,通过字符串匹配和专有启发式算法。用版本或时间戳标记组件后,NVD的安全漏洞就会与每个漏洞相关联,还可找到版本信息,从而找到被泄露的信息。 

 

新思指出,三类潜在安全风险值得关注:

 

潜在安全风险一:开源组件的安全漏洞

 

被扫描的应用程序中,98%包含开源组件。这也证实了大家一致认可的趋势:开源是当今几乎所有应用程序的基础。只要积极主动地管理和维护,开源本身不会带来风险。 

 

但是,这些被扫描的应用程序中,63%的应用程序包含存在至少一个已知安全漏洞的开源软件组件,每个易受攻击的应用程序平均有39个漏洞。在所有的 18 类应用程序中,至少有1/3的应用程序包含具有已知安全漏洞的应用程序。 

 

 

从应用类型来看,游戏类APP包含漏洞占比最高,为94%;其次是银行类APP,88%包含开源安全漏洞;第三是生产效率APP,包含安全漏洞占比58%。

 

 

尽管这项研究中发现的漏洞数量令人生畏,但是,检测到的漏洞中有94%具有公开记录的修复程序,这意味着安全补丁或更新、以及更多的开源组件安全版本可供使用。

 

除此之外,检测到的漏洞中有73%已经至少在两年前首次向公众披露,这表明,这些漏洞部分都不是新问题,而是开发者根本没有考虑过用于构建应用程序的开源组件是否安全。 

 

 

继续深入分析高风险漏洞发现:近一半(43%)的漏洞属于高风险漏洞,因为这些漏洞已经被主动利用或者与已记录的概念验证(PoC)漏洞利用程序有关。仅有不到5%的漏洞与漏洞利用或者PoC漏洞利用程序有关,并且没有可用的修复程序。1%的漏洞被归类为远程代码执行(RCE)漏洞,许多人认为这是最严重的漏洞。0.64%的漏洞被归类为RCE漏洞并且与主动漏洞利用或PoC漏洞利用程序有关。

 

潜在安全风险二:敏感信息泄露

 

APP中包含的可能不只是用户的敏感信息,还有相关厂商的信息。当开发人员无意间在应用程序的源代码或配置文件中公开敏感或个人数据时,这些信息很可能被恶意攻击者利用,发起后续的攻击。新思发现,数以万计的信息泄露实例,从私人密钥和令牌到邮件和IP地址的潜在敏感信息都被暴露出来。如果被黑客利用的话,就会构成对个人、对厂商的威胁。

 

 

潜在安全风险三:权限索取过度

 

APP通常需要访问移动设备中的某些功能或数据才能有效运行。然而,某些应用程序草率地或者暗中要求的访问权限远远超出了必要性。根据分析,移动应用程序平均需要18个设备权限,其中包括平均4.5个敏感权限或者需要对个人数据进行多次访问的权限,以及平均3个被Google归类为“不提供给第三方应用程序使用”的权限。

 

一个下载次数超过一百万的应用程序需要11个权限,这些权限被Google归类为“危险防护级”。另一个下载次数超过五百万的应用程序总共需要56个权限,其中31个被Google归类为“危险防护级”权限或是不允许第三方应用程序使用的签名权限。

 

 

进一步对权限索取进行深入分析发现,银行、支付和预算类APP在移动设备所需的平均权限数量也排在前三,远高于18个类别的平均值。游戏、教辅类工具、教育和生活方式应用程序所要求的平均权限数量最低。

 

 

如何判定APP是否过度获取权限?杨国梁介绍,通过提取APK清单文件( manifest)的信息,能够识别到APK索要了多少相应的权限,再通过安卓开发人员指南对这些权限进行分类,发现有些权限是第三方的APP完全不应该索取的,有一些可能在不同的场景下有不同的归类。


移动APP安全值得持续关注!

 

对消费者而言,该报告指出了一个令人震惊的事实:即使最受欢迎的移动应用也无法幸免于安全和隐私方面的弱点,因此不应默认为是可信的;对应用开发者而言,该报告强调了对安全软件开发实践以及更好的全面的隐私和安全保护实践的迫切需求。

 

如何看待这份报告的意义?杨国梁表示,首先,开源代码的占比越来越高,开源代码的安全漏洞值得重视起来;其次,既然开源漏洞波及范围这么广,必须要有主动的、系统的方法去规避,希望唤起软件开发机构对安全漏洞的识别和修复上的重视;第三,除了安全漏洞,敏感信息、个人信息、权限等,都需要明确的划分和标识,这需要监管机构出台相关的政策。

 

他表示,安全是一个动态的、此消彼长的过程。新思网络研究中心聚焦于开源安全问题,Black Duck有一个专门的团队进行安全漏洞的搜集和分析,同时还有各种各样的自动机器人,在全球超过1万个不同的源,可以第一时间爬取开源组件以及安全漏洞情报。

 

此外,开发人员还应知道如何武装自己和团队,以应对可以避免的安全疏忽和编码错误。Black Duck SCA和Black Duck Binary Analysis等解决方案可及时通知有关开源漏洞、潜在信息泄漏实例以及移动权限的最新信息。 

 

“移动APP的发展,从过去的追求功能,到现在比较注重安全,未来会更注重隐私。数字化浪潮下,一定要唤起市场的重视,才能让这个市场更好地发展下去”, 杨国梁表示,“希望共同提高开发和维护安全软件的标准”。