⑴ APP做隐私检测有必要吗
当然有!
ZAO一夜成名 让苹果服务器怀疑“数据造假”
8月30日,一款名为“ZAO”的AI换脸软件一夜成名。
随后各大门户网站、科技网站头条、自媒体等都在报道这款换脸应用神器ZAO。据悉用户只需上传一张正脸图片,便可以在ZAO上把视频里的明星脸替换成用户自己的脸,一夜之间无数用户满足了自己拥有一张明星脸的欲望。31日,ZAO的火爆程度让其迅速在苹果应用商店排到了免费榜下载第9位,娱乐榜下载第2位,且因短时间大量用户下载,让苹果服务器怀疑“数据造假“……
达成AI换脸的目标也很简单,用户只需通过手机号注册,提交清晰的面部照片,即可将经典影视剧片段中的男女主角替换成自己的脸。直到有人无意间将ZAO的用户协议晒出来后,一时间对ZAO的“隐私担忧”铺盖全网。
生物识别信息收集个人隐私泄露风险高悬
原来,ZAO的用户协议第6条是这样规定的:
“您的必要授权:除非另有约定,您使用“ZAO”上传及/或发布的用户内容的所有权、知识产权及其他法律权利,归您、您的许可方或者您的关联方所有,责任亦由您承担。
1、在您上传及/或发布用户内容之前,您同意或者确保实际权利人同意授予”ZAO”及其关联公司以及”ZAO”用户全球范围内完全免费、不可撤销、永久、可转授权和可再许可的权利,包括但不限于可以对用户内容进行全部或部分的修改与编辑(如将短视频中的人脸或者声音换成另一个人的人脸或者声音等)以及对修改前后的用户内容进行信息网络传播以及《着作权法》规定的由着作权人享有的全部着作财产权利及邻接权利;
2、如果您把用户内容中的人脸换成您或其他人的脸,您同意或确保肖像权利人同意授予”ZAO”及其关联公司全球范围内完全免费、不可撤销、永久、可转授权和可再许可的权利,包括但不限于:人脸照片、图片、视频资料等肖像资料中所含的您或肖像权利人的肖像权,以及利用技术对您或肖像权利人的肖像进行形式改动。”
ZAO的这一协议让用户普遍担心,是否会对自己的财产造成安全隐患。有相关业内人士表示,对于ZAO这样的“爆品“背后,其本身存在的问题跟风险是经不起深挖的,而且很多点都涉及到用户的权益,稍有不慎很有可能会给用户带来不少风险。
指纹、虹膜、人脸等生物识别信息是比身份证号码、手机号更重要的个人隐私。从人脸识别、指纹识别到虹膜识别、步态识别,在应用方面,国内生物识别技术已经在支付、门禁、手机解锁等众多领域获得了广泛应用,以当下最火热的刷脸为例,已经成为了人尽皆知、无处不在的存在。人脸、指纹作为非常敏感的用户核心信息,正因为其难为一般人所更改,所以被广泛用于身份认证、交易和支付环节,但其发展过程中的各种问题也引发了强烈争议。
其中,关于用户隐私泄露和数据滥用的问题,最是饱受社会关注和民众强调。而这个问题不仅存在于我国,如今更是全球性的共同问题。不管是2017年谷歌50万用户数据泄露事件,还是2018年Facebook的数据泄露丑闻,亦或是今年优衣库、B 站等企业的数据安全问题,都让企业、行业和用户深受其害。
数字化安全时代个人信息安全的解决之道
通付盾动态权限检测以适合当前时代背景下注重更少的人工操作,更真实的运行场景,更加全面的权限调用行为等需求出发,提供高度自动化的检测方案,以全面且高关联性的数据提供有信服力的检测结果并提供检测依据,通过简单的操作配置完成不同场景、不同需求下,对不同类型应用的检测,提供多维度不同针对性的检测结果与报告,从而提供客观全面的个人信息安全权限检测方案。
通付盾磐石——移动APP安全检查工具箱
除动态权限检测外,针对当前普遍存在的移动应用安全问题,通付盾提出全面、专业的加密保护方案,产品覆盖Android、iOS两大平台,移动APP安全检查工具箱:通付盾磐石——通过研究移动应用自身安全风险、移动应用运行环境安全风险、移动应用市场监管风险等,结合技术手段将合规性要求转化为了高可用、高性能、高安全的专业化移动安全便捷式产品,实现一站式检测加固业务。磐石适用于网络安全等级保护 2.0 中,面向信息系统运营/使用单位、监管单位、测评机构,同时支持Android 、iOS 、H5以及SDK应用安全检查与防护,能从源头处解决移动应用存在的恶意行为、安全漏洞、内容违规、仿冒等安全问题,防止移动应用“带病上线”,大大提高其安全防护水平。
接下来,通付盾会继续在移动安全监测、预警、防御、溯源以及态势感知等多个方面为网络安全建设提供全方位的技术支撑,为企业数字化转型及数字中国的建设,打造强有力的数字安全堡垒,为数字化安全的发展保驾护航。
—来自于网络
⑵ 如何去测试一个 app 是否存在安全问题
身为测试答一个,这类安全性测试,是app专项测试中必须要做的一环,简单列举下目前常做的测试类别
1. 用户隐私
检查是否在本地保存用户密码,无论加密与否
检查敏感的隐私信息,如聊天记录、关系链、银行账号等是否进行加密
检查是否将系统文件、配置文件明文保存在外部设备上
部分需要存储到外部设备的信息,需要每次使用前都判断信息是否被篡改
2. 文件权限
检查App所在的目录,其权限必须为不允许其他组成员读写
3. 网络通讯
检查敏感信息在网络传输中是否做了加密处理,重要数据要采用TLS或者SSL
4. 运行时解释保护
对于嵌有解释器的软件,检查是否存在XSS、SQL注入漏洞
使用webiew的App,检查是否存在URL欺骗漏洞
5. Android组件权限保护
禁止App内部组件被任意第三方程序调用。
若需要供外部调用的组件,应检查对调用者是否做了签名限制
6. 升级
检查是否对升级包的完整性、合法性进行了校验,避免升级包被劫持
7. 3rd库
如果使用了第三方库,需要跟进第三方库的更新
⑶ 测试那些事儿(十三)- 签名和验签、公钥和私钥、加密和解密
在做接口测试时,大家一定都遇到过需要提供签名的场景。这时,我们就会被各种名词比如 签名和验签、公钥和私钥、加密和解密 冲击。所以,了解一下它们很有必要,可以帮助我们知道为什么要这么做,而不是简单的去当一个验证执行者。甚至,在你了解了它们之后,你也可以在接口的安全性测试上更进一步。
数字签名其实就是一个别人无法仿造,能够证明申请者真实性的一段字符串。 我们在真实生活中,最常用的签名应该就是手签我们的姓名了。
所以,在接口请求时,很多接口也不是你来一个请求我就给你返回你要的数据,而是要验证你的签名,进而证明你的身份后才能做出后续动作。在此过程中,接口调用者需要进行的工作就叫做 签名 ,而被调用者需要进行的工作就叫做 验签 。
公钥 :由接口被调用方提供,RSA 密钥体系中对外公开的部分,通常用于数据加密、验证数字签名。
私钥 :由接口被调用方提供,RSA 密钥体系中非公开的部分,需由接口调用方严密保存,通常用于数据解密、数据签名。
这个就很好理解了,传递数据时为了保证数据的安全性,不进行明文传递,而是通过某种算法对敏感数据进行 加密 ,传递后再由接收方使用对应算法进行 解密 来获取明文信息。
将上面的定义总结为图,会更加的清晰:
之所以用发送方的私钥加签,是因为,即便信息被黑客拦截,黑客修改了信息,但是加签需要用发送方的私钥,黑客没有发送方的私钥,所以也无法生成正确的签名,接收方验签就不用通过。
反之如果用接收方的公钥加签,如果信息被黑客拦截,黑客修改了信息,因为接收方的公钥是公开的,黑客就可以重新生成新的签名,替换原有的签名,发送出去,接收方接收到信息,拿自己的公钥校验是通过的,所以接收方无法辨别信息是真正的发送方还是黑客发送过来的,这样的加签不能辨别信息是否被篡改过。
之所以用接收方的公钥加密,是因为,如果信息被黑客拦截,需要用接收方的私钥来解密,黑客无法获取接收方的私钥,即便拦截了信息(情报),黑客也无法看到明文,只能看天书?了。
反之,如果用发送方的私钥加密,如果信息被黑客拦截,因为发送方的公钥是公开的,黑客就可以用发送方的公钥解密密文获得明文,这样的加密所有的人都可以看到明文,不能保证信息的隐私。
了解了以上这些知识,在测试过程中就可以更加深入的了解签名的目的,进而可以更深入的了解签名的实现等。签名的实现有很多种,这个要根据每个团队选择哪种具体分析,但作为测试,基本上我们都是可以按照约定的规则来生成的,这也帮助我们扩展了接口测试覆盖的广度(如接口用例覆盖度、过期时间等隐藏功能),是非常有意义的。
https://blog.csdn.net/liyanlei5858/article/details/84664308
⑷ “软件测试”如何进行APP安全性测试
一、前言
在SDK最近的项目中上线的包被第三方杀毒软件报出有病毒的问题,后来经过查验发现是SDK悬浮窗动画的逻辑被检验出有病毒,最后进行了修改。事情虽然解决了,但是引起该问题的一个原因是在测试中没有安全测试,而安全测试的标准,方法都没有。因此今天将之前工作中参与过的安全测试以及从网上查阅到有关安全测试的资料进行整理。有不足的之处,尽情谅解。
二、软件权限
1)扣费风险:浏览网页,下载,等情况下是否会扣费,一般在游戏APP,和社交APP等需要考虑这些。
2)隐私泄露风险。例如在我们安装APP应用时通常会看到"xx要读取手机通讯录"等提示,这些提示可以提示用户拒绝接受,这些是APP测试中的测试点。
3)校验input输入。对于APP有输入框的要对输入的信息进行校验,比如密码不能显示明文。在测试中红人馆注册时需要对input进行测试。
4)限制/允许使用手机功能接人互联网,收发信息,启动应用程序,手机拍照或者录音,读写用户数据。这个在通信行业用的比较多,比如展讯,高通等芯片厂商,他们在出厂芯片时要对手机各个功能进行测试。
三、代码安全性
之所以单独拿出来说,是因为在SDK测试过程中SDK代码被第三方工具检测出游病毒代码,这样一来就会影响输入法的使用。因此在后续测试中要尝试加入安全性测试。
四、安装与卸载安全性
1)应用程序应能正确安装到设备驱动程序上
2)能够在安装设备驱动程序上找到应用程序的相应图标。在SDK测试项目中发现有些设备受权限的问题,无法下发图标创建快链。
3)是否包含数字签名信息。在SDK测试项目中基本上没有,但是在输入法打包和主线版本上存在这样的测试。
4)安装路径应能指定
5)没有用户的允许应用程序不能预先设定自动启动
6)卸载是否安全,其安装进去的文件是否全部卸载
7)卸载用户使用过程中产生的文件是否有提示
8)其修改的配置信息是否复原
9)卸载是否影响其他软件的功能
10)卸载应该移除所有的文件
11)安装包的存放。在SDK下载安装包的测试中我们经常会看到下载下来的包后面有四个随机的字符串,这个的目的是为了防止第三方工具恶意删除安装包的问题。
在SDK测试项目中有专门针对下载安装卸载的用例,对安装的路径和下载的文件夹路径等有相关的测试,测试结果页表明,某些手机(例如华为mate1)在删除了某个下载路径文件夹之后受权限应用不会自动创建。
五、数据安全性
1)当将密码或其他的敏感数据输人到应用程序时,其不会被储存在设备中,同时密码也不会被解码
2)输人的密码将不以明文形式进行显示
3)密码,信用卡明细,或其他的敏感数据将不被储存在它们预输人的位置上
4)不同的应用程序的个人身份证或密码长度必需至少在4一8个数字长度之间
5)当应用程序处理信用卡明细,或其他的敏感数据时,不以明文形式将数据写到其它单独的文件或者临时文件中。以防止应用程序异常终止而又没有删除它的临时文件,文件可能遭受人侵者的袭击,然后读取这些数据信息。
6)当将敏感数据输人到应用程序时,其不会被储存在设备中
7)备份应该加密,恢复数据应考虑恢复过程的异常通讯中断等,数据恢复后再使用前应该经过校验
8)应用程序应考虑系统或者虚拟机器产生的用户提示信息或安全警告
9)应用程序不能忽略系统或者虚拟机器产生的用户提示信息或安全警告,更不能在安全警告显示前,利用显示误导信息欺骗用户,应用程序不应该模拟进行安全警告误导用户
10)在数据删除之前,应用程序应当通知用户或者应用程序提供一个"取消"命令的操作
11)"取消"命令操作能够按照设计要求实现其功能
12)应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况
13)当进行读或写用户信息操作时, 应用程序将会向用户发送一个操作错误的提示信息
14)在没有用户明确许可的前提下不损坏删除个人信息管理应用程序中的任何内容
15)应用程序读和写数据正确。
16)应用程序应当有异常保护。
17)如果数据库中重要的数据正要被重写,应及时告知用户
18)能合理地处理出现的错误
19)意外情况下应提示用户
20)HTTP、HTTPS覆盖测试。在测试中我们经常会遇到与请求的加密解密测试,以确保产品的安全性