这一章我们来学习“日志信息泄露”,此项在检测手段上可以采取动静结合的方式进行检测,在第三方检测平台一般采用静态检测且存在误报率。

一、漏洞原理

开发者在开发应用时,通常都会埋点(插入日志)进行调试,若没有对日志信息进行管理那么就有可能导致敏感信息泄露的风险,给攻击者提供了便利。例如:通信交互的日志,造成的网络数据安全,服务器安全;用户个人信息日志,造成账号和密码的泄露;其它关键日志信息,给攻击者提供攻击的便利。

二、检测手段

检测的方式分为两种:
a. 静态检测:安全检测平台通常用的检测手段,但是误报率高,需要检测方或开发者校验,通常扫描:Log类的方法调用,System类的日志输出方法调用
b. 动态监测:使用工具直接查看日志,但需要人工操作点击软件各个信息界面,不一定可以把每种情况照顾到。

从上面的两种方式来讲,使用静态方式加校验可以把java层的日志信息很好的去掉,但是对于native层(JNI)就显的无力,那么可以考虑使用动静结合方式进行综合的评测。

检测方法:
step1:使用安全平台静态扫描代码,收集代码内日志输出的点
step2:使用工具动态查看日志的输出信息,记录敏感日志
step3:人工复核静态扫描的日志输出点,对敏感日志、关键信息日志进行日志关闭处理。
step4:综合静态和动态结果,得出最终的结论

三、修复方法

对日志进行统一管理,当上架应用市场时,应生成一个无敏感日志信息的安装包


asjhan for Android reverse