作者:赵一凡 曹晨业 刘斌 黄力冶
来源:《信息化建设》2021年第05期
針对移动应用出现的个人信息非法泄露和使用等问题,提出一种结合人工渗透测试和漏洞分析的检测方法,通过静态和动态检测相结合,针对移动应用App进行多维度安全检测。
随着信息基础建设的发展和移动应用的普及,用户个人信息在使用过程中被应用开发者大量收集,出现了对个人信息的非法泄露和使用问题,严重威胁到了个人信息安全。据东部某省2020年App个人信息违法违规收集专项行动的数据显示,85%的App未明示收集使用个人信息的目的、方式和范围,56%的App未经用户同意收集使用个人信息,37%的App未按法律规定提供删除或更正个人信息功能或未公布投诉、举报方式等信息。
为此,笔者针对移动应用出现的个人信息非法泄露和使用等问题,提出一种结合人工渗透测试和漏洞分析的检测方法。通过静态和动态检测相结合,针对移动应用App进行列的分析,包含基本信息、漏洞信息、收集和使用个人信息行为、通讯传输行为、软件和技术供应链情况、技术脆弱性、隐私政策规范性以及App中第三方插件或SDK等进行多维度安全检测。
静态检测
个人敏感信息
静态检测由信息获取、重打包检测、权限检测和特征检测4个模块组成,对应用程序的源代码和文件信息进行扫描分析,解读应用程序的行为,具体流程如图1所示:
信息获取功能。该功能可获取应用程序的文件信息、权限的信息和组件信息。APK格式文件也可看作一个ZIP压缩文件,通过查看ZIP文件信息就可以获取文件相关信息;使用开源工具将Android应用程序中l文件转换成XML文件,然后使用Python中的XML文件处理功能,来读取该XML文件中的uses-permission权限属性;Activity列表可获得应用的界面的类,服务是指后的运算类,可以通过service列表得到应用程序的后台运算类。
权限检测。权限检测技术可以提取到申请权限的Permission信息,根据Permission信息列表即可得出其敏感权限。应用程序的权限是安装时由用户确定的,如果一个应用程序在安装时未获得相应的权限,就无法正常运行。敏感权限是指App获取个人信息和个人敏感信息所需要的手机系统权限。如果安装时应用向系统申请了敏感权限,则应该做进一步检测。
特征检测功能。特征检测能识别出应用中的恶意代码,但因为特征库的更新不及时,这种检测方法有一定的滞后性。由于恶意行为必须通过系统API序列调用才能完成,在检测时舍弃二进制特征而采用API特征,对API序列进行分析,可以降低传统特征检测技术的滞后性。
APK的特征参数包括被检测APK包含的所有的类以及函数名、参数签名和包名,以此来提高检测的全面性和准确性。
重打包检测功能。将APK文件进行反编译,嵌入恶意代码,再重新打包放在网络上供用户下载,是目前恶意代码传播的一种途径。公钥信息是由签名文件生成的,两个签名文件一定会生成不一致的公钥信息。重打包检测的原理是对比APK文件中和数据库中的Package Name和公钥信息,若两者一致,就判定为安全,如果不一致,则说明APK文件存在被重打包的风险。
动态检测
动态检测技术的核心是通过沙箱监测App动态运行行为,获取App代码中申请和使用的权限集合。采用的沙箱系统,如沙箱手机和云手机,可监测App在运行过程中的高达100+种行为,包括读取文件、写入文件、获取应用进程、读取系统配置等行为。同时行为函数调用栈对行为主体进行分析,过滤App或SDK行为,针对性排查违规行为主体,定位行为触发的代码位置。
沙箱系统结合DPI技术,对应用通讯传输数据进行抓取,分析传输数据内容,访问服务器地址、地理位置、网络传输类型等信息。定位信息接收对象,分析数据内容是否包含个人信息。建立本地websocket服务,浏览器连接上后,启动动态/法规检测,会给IDB发启动命令,IDB启动手机websocket服务,通过ssh通知手机连接IDB手机websocket服务,IDB下载ipa之后,将ipa移动到手机指定路径,调用命令安装,然后启动。手机检测过程中产生行为数据,经由IDB转发到浏览器端。
漏洞分析
通过静态和动态的检测方式对上述软件系统权限进行检测,能够发现常见的一些权限错配方面的问题,但还需根据代码测试进行漏洞的分析,以发现相关漏洞带来的个人信息安全威胁,具体检测漏洞类型见表1。
检测分析
检测样本选取。本次App个人信息安全检测对象为从在东部某省注册的7249个App中随机选择50个,分别从华为应用市场、应用宝、安智市场、百度手机助手、魅族市场、360市
场等多个应用商城渠道下载获取,涵盖公众服务、卫生健康、新闻传媒、出行、互联网金融、儿童教育、网络游戏等领域,同时兼顾下载次数较高、领域内代表性强、社会热度较高的移动应用作为本次检测的对象。
检测结果分析。本次对东部某省App个人信息安全检测的结果显示,移动App在隐私政策、用户账号、个人信息收集等方面存在较多问题,具体情况如下:
未在隐私政策中说明个人信息存储和超期处理方式:存在未明确个人信息存放地域(国内、国外)、存储期限(法律规定范围内最短期限或明确的期限)、超期处理方式的问题。检测情况:经检测有27款应用不符合此项要求,占比为54%。
未在隐私政策中明示各项业务功能所收集的个人信息类型:存在未详细列举收集个人信息的业务功能及其收集的个人信息类型、收集/使用目的、收集具体方式的问题。检测情况:经检测有20款应用不符合此项要求,占比为40%。
隐私政策等文件存在免责等不合理条款:存在App运营者在用户协议、服务协议、隐私政策等文件中出现免除自身责任、加重用户责任、排除用户主要权利条款的问题。检测情况:经检测有17款应用不符合此项要求,占比为34%。
未在隐私政策中明示收集个人信息的业务功能:存在未逐项列举收集个人信息的业务功能及其收集的个人信息类型、收集/使用目的、收集具体方式的问题。检测情况:经检测有17款应用不符合此项要求,占比为34%。
不支持用户注销账号或是否支持用户查询、更正或删除个人信息:存在未提供App注销账号的途径,App未提供查询、更正、删除个人信息的途径,或因共享、转让、批露涉及第三方的,未通知第三方及时删除的问题。检测情况:经检测有16款应用不符合此项要求,占比为32%。
未在隐私政策中明示对外共享、转让、公开披漏个人信息规则:存在个人信息对外共享、转让、公开批露等情况,但在软件测试过程中查看隐私政策条款,未明确对外共享转让公开批露个人信息的目的、涉及的个人信息的类型、接受方类型或身份及承担的法律责任等信息的问题。检测情况:经检测有14款应用不符合此项要求,占比为28%。
随着5G技术的普及,移动App与生活联系将越发紧密,移动App个人信息安全评估将会成为信息安全的重要工作。本文中静态检测和动态检测相结合的方法,可以兼顾测试结果的全面性和准确性。在大数据时代,只有做好个人信息合规建设,才能让信息更好为人们服务,
移动应用行业才能健康发展。
(作者单位:浙江省电子信息产品检验研究院)
发布评论