android des ecb加密_300余安卓app存在加密漏洞,无一修复

20e00dd3d3068ebd498254b822ec8e9a.gif

来自哥伦比亚大学的研究人员开发了一个定制化的工具——CRYLOGGER,可以动态分析安卓应用程序,确定是否安全地运行了加密代码。研究人员用CRYLOGGER工具对33个应用商店中最流行的1780个安卓应用进行了测试,并在其中306个应用中发现了安全漏洞。

78727341cbf24caf5cea153ea9866c18.png

CRYLOGGER工具

CRYLOGGER工具包含logger和checker 2部分,其中logger扩展了加密库来追踪对加密算法的API 调用;对于每个调用,都会记录相关的参数并用于检查加密规则。Logger会保存应用选择用于消息摘要(SHA1)和对称加密(AES)的算法名。应用执行后,checker会线下检查log信息,并生成应用违反加密规则的列表。为了检查这些规则,checker 使用了一个检查的步骤,每个步骤中都包含许多的加密规则。

9e48a80c9f03c0f0704602399de7ac87.png

CRYLOGGER工具

在CRYLOGGER工具中共定义了26个基本的加密规则,如下所示:

· 规则1:不使用已被攻破的哈希函数,比如SHA1、MD2、MD5等;

· 规则2:不使用已被攻破的加密函数,比如RC2、DES、IDEA等;

· 规则3:在大于1个数据块的情况下不适用ECB模式;

· 规则4:在C/S场景下不适用CBC模式;

· 规则5:加密时不使用静态(常数、不变的)密钥;

· 规则6:加密时不使用易推导的密钥;

· 规则7:加密时不使用静态(常数、不变的)初始向量;

· 规则8:加密时不使用易推导的初始向量;

· 规则9:不重用初始向量和密钥对;

· 规则10:密钥推导时不使用静态(常数、不变的)盐;

· 规则11:密钥推导时不使用小于64位的盐;

· 规则12:不重用盐于不同目的;

· 规则13:密钥推导时循环不小于1000轮;

· 规则14:不使用弱口令;

· 规则15:不使用NIST 拉黑的口令;

· 规则16:不多次重用口令;

· 规则17:不为PRNG使用静态seed;

· 规则18:不使用不安全的PRNG,比如java.util.Random;

· 规则19:RSA 密钥不小于2048位;

· 规则20:不直接使用RSA 原始算法;

· 规则21:不使用PKCS1-V1.5;

· 规则22:不死用HTTP URL连接,使用HTTPS;

· 规则23:不存储静态密码;

· 规则24:不以复杂的方式在SSL中验证host name;

· 规则25:不以复杂的方式在SSL中验证证书;

· 规则26:不手动修改hostname 验证。

d7171a93bcbb4bbe7e5ecdb0ed4700cc.png

测试结果

研究人员利用该工具对33个应用商店中最流行的1780个安卓应用进行了测试,发现其中306个应用中存在违反以上加密规则的情况,其中部分app违反了1条规则,部分app 违反了多条。

违反最多的3条规则是:

· 规则18:有1775个app违反该规则;

· 规则1:有1764个app违反该规则;

· 规则4:有1076个app违反该规则。

cf569bd5b987c05161110be619d8962f.png

78727341cbf24caf5cea153ea9866c18.png

开发者回应

研究人员对测试发现问题的app逐一联系了开发者,但只有18位开发者回复了研究人员的邮件,只有8位开发者与研究人员进行了多次沟通。

由于这些加密漏洞是存在于应用代码中,一些常见的漏洞存在于Java库中。因此,研究人员联系了6个主流的安卓库开发者,但只收到了2位开发者的回复。

由于没有开发者修复有漏洞的app和库,因此,研究人员暂不公开相关app和库的名字。

该研究成果已被安全顶会IEEE SP 2021录用,论文下载地址:

https://www.computer.org/csdl/pds/api/csdl/proceedings/download-article/1mbmHwIxTb2/pdf

工具也已开源,参见GitHub地址:https://github.com/lucapiccolboni/crylogger

参考及来源:https://www.zdnet.com/article/academics-find-crypto-bugs-in-306-popular-android-apps-none-get-patched/

9ba73556f68b484182971dbe71913aa2.png

8f439f14c0a483f790f86d30e9233db5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值