检测目的 检测 iOS 应用是否存在格式化字符串漏洞。
风险等级 中
检测依据
CWE-134: Use of Externally-Controlled Format String
《JR/T 0092-2019 移动金融客户端应用软件安全管理规范》 5.2.1
逻辑安全设计
威胁描述
格式化字符串漏洞产生的原因是软件使用了格式化字符串作为参数,
且该格式化字符串来自外部输入。当程序直接将输入内容作为 printf
族、scanf 族函数的唯一参数、或者参数类型错误、或者格式化字符
串参数和传入参数个数不一致时,导致可以实现任意内存地址的读
写,造成堆栈信息泄漏。
检测结果 存在风险
结果描述 该应用存在格式化字符串漏洞
检测详情
1.使用静态检测引擎对 IPA 文件进行解压缩。
2.对解压缩后的文件进行分析,提取相关函数信息。
2.对函数数据进行分析,发现存在格式化字符串漏洞。
第 1 处:
0x1002ea3d0 -> _sscanf
第 2 处: -[UUWASDKProcessNetModule lookupPort:]+192 -> _printf
第 3 处: -[UUWASDKProcessNetModule lookupPort:]+232 -> _printf
解决方案
建议自查所有函数参数,不要使用外部输入(用户输入、剪切板等)
作为函数参数。对如下函数,可以使用带 n 的函数替代并限制 buf
大小,sprintf 改为 snprintf,vsprintf 改为 vsnprintf;其他函数可
参考 VS 开发环境的“xxx_s”,实现一个自定义函数,对输入参数进
行范围限制,如 VS 的 printf_s。
检测目的 检测应用是否使用了弱加密算法。
风险等级 中
检测依据
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
《JR/T 0092-2019 移动金融客户端应用软件安全管理规范》 5.2.1
逻辑安全设计
威胁描述
AES/DES 是 iOS 程序中常用的两种对称加密算法,其工作模式有
ECB(电子密码本模式)、CBC(密码分组链接)、CFB(密文反馈)和
OFB(输出反馈)。当其使用 ECB 或 OFB 工作模式时,相同的明文产
生相同密文,加密数据可能被选择明文攻击 CPA 破解。加密方法失
效后可能导致客户端隐私数据泄露,加密文件破解,传输数据被获取,
中间人攻击等后果,造成用户敏感信息被窃取。
检测结果 存在风险
结果描述 该应用使用了弱加密算法
检测详情
1.使用静态检测引擎对 IPA 文件进行解压缩。
2.对解压缩后的文件进行分析,提取相关加密函数。
3.对提取的加密函数进行分析,发现应用使用了弱加密算法。
第 1 处:
0x2e42b4 --> [PGNativeUI
setCurrentLogFilePath:],{3des:0,des:0,aes:1},{ecb:1,ofb:0},{rc4:0, rc2:0}
解决方案
建议开发者自查,使用安全级别高的加密算法,如 AES、SM4。
使用 AES、SM4 进行数据加密时,请勿使用不安全的 ECB 数据加密
算法模式,同时增加密钥的长度和复杂性。推荐使用 CBC 或 CFB 模
式,可带上 PKCS7Padding 填充。AES 密钥长度最少是 128 位,推
荐使用 256 位。
检测目的 检测应用是否使用了弱 HASH 算法。
风险等级 中
检测依据
《JR/T 0092-2019 移动金融客户端应用软件安全管理规范》 5.2.1
逻辑安全设计
威胁描述
弱 HASH 算法指安全级别低的 HASH 算法,包括 SHA1 和 MD5。
程序中使用弱 HASH 算法时,HASH 算法可能被黑客攻击导致 HASH
校验方法失效。HASH 校验方法失效可能造成客户端隐私数据泄露、
文件被篡改、传输数据被获取等后果,导致用户敏感信息被窃取。
检测结果 存在风险
结果描述 该应用使用了弱 HASH 算法
检测详情
1.使用静态检测引擎对 IPA 文件进行解压缩。
2.对解压缩后的文件进行分析,提取相关 HASH 函数。
3.对提取的 HASH 函数进行分析,发现应用使用了弱 HASH 算法。
第 1 处: -[WWKSendMessageResp writeToDict:]+172 -> _CC_MD5
第 2 处: -[WWKSendMessageResp initWithDict:]+172 -> _CC_SHA1
解决方案
建议开发者自查,使用安全级别高的 SHA256、SHA512 等算法。
0 个回复