主页(http://www.175shouji.com):APP应用安全检测
APP应用安全检测
2022-04-07 10:50 来源: 机器人的秘密探索
原标题:APP应用安全检测
来自公众号:小道安全
背景
目前APP发包上架的流程前,免不了需要对APP应用安全检测这个重要且必不可少的步骤流程, APP应用安全检测大部分采用采购第三方的APP安全检测产品(因为这块技术基础储备),也有部分企业基于开源的移动安全框架(MobSF)进行二次开发APP安全检测产品(采购第三方产品费用太高),也有部分安全团队基于团队的技术储备进行基于逆向第三方APP安全检测产品进行开发自研的APP安全检测产品(采购第三方检测产品)。
其中移动安全分析开源的框架 (MobSF-obile-Security-Framework)它是基于python进行开发的,它是一个智能的、集成型的、开源移动App(安卓/iOS)自动检测框架,能用于静态检测和动态检测。该框架可以进行高效迅速的移动应用安全分析。
它的下载地址为
https://github.com/ajinabraham/Mobile-Security-Framework-MobSF
APP应用安全检测的风险程度一般分为:高危、中危、低危。
APP安全监管部门主要有:网信办、各地区网安、工信部、市场监督总局。
因为APP应用安全检测没做好,那么APP就会面临被通报、下架的风险,这对企业来说是个非常致命的问题,不仅影响到产品的发展、同样也给企业发展带来一定的风险。
下面就分析下APP应用安全检测(需要动态检测和静态检测相结合),具体的检测维度和检测思路。
基本信息检测
通常情况下,APP包基本信息的检测维度 : APK文件名称、应用名称、包名、文件大小、版本信息、签名信息、sdk版本、APP的MD5、是否有采用第三方加固、第三方sdk的数量等等。
APP权限检测
APP权限检测中比较突出的问题有:在APP应用中的隐私合规说明中没有向用户明示申请的全部隐私权限。
对APP权限检测主要是通过检测AndroidManifest.xml文件中申请权限,然后对应的对比APP隐私合规说明中是否都有明示申请的权限,并且明示申请权限的作用和目的。
下图简单罗列下某APP中的权限信息,合规安全做法是要保证APP隐私合规说明中有罗列出这些权限信息,并且描述获取这些信息的作用和目的。
APP自身安全检测
APP自身安全检测主要检测APP是否采用第三方加固产品进行加固或者有对APP进行做保护。
APP自身安全检测主要检测维度:
1、Java代码中通常包含APP的业务逻辑代码,甚至一些核心功能代码,通过打包后会生成dex文件, java从开发角度来说可以利用ProGuard进行做混淆保护,dex文件可以利用第三方的加固产品进行对dex整体加固保护、函数抽取保护、vmp虚拟机保护等等。
如果dex文件没做任何保护的情况下,直接可以利用apktool反编译或者jadx、androidkiller、dex2jar、GDA等工具直接查看java代码,这样就容易直接把关键的业务逻辑暴露出来,造成功能泄露以及功能被破解的风险。
如果dex文件有进行保护,那么同样可以查看java代码分析APP应用业务逻辑,但分析有保护的代码的门槛就有所提高。因此这个的源码级的风险等级是高危型的。
2、Android中一些核心的功能代码都是在so实现的,需要通过JNI方式进行C、C++的编码实现生成so文件(ELF文件)。
如果so文件保护方案可以字符串混淆加密、关键逻辑虚拟化、函数抽取等源码级保护,如果so有进行保护,那么通过静态工具IDA就无法很直观找到分析的突破点,通过利用frida和ida动态分析的门槛就相对比较高。
如果so文件没任何保护状态,那么就可以直接利用ida工具可以快速的分析出so的关键功能代码。
3、Android中的四大内部组件分别为:activity、service、content provider、broadcast receiver,检测它们是否存在组件导出的风险,如果四大组件存在导出的风险,会被第三方的APP进行任意调用,导致一些敏感信息泄露,权限绕过,拒绝服务端的风险。
检测四大组件是否有导出风险,通过读取AndroidManifest.xml配置文件四大组件名称,组件名称后面的exported的属性值,如果为true就是导出,为false就是未导出。这种风险相对来说是低危的风险。
APP数据存储安全检测
1、检测dex的java代码和so的C、C++代码,它们是否存储着加解密算法密钥的硬编码,APP中一些关键数据的安全性依靠强大加解密算法,如果加解密算法被攻破那么这个关键数据就会被盗取,这个风险是比较致命的高危风险。
2、检测APP中数字证书是否用明文方式存储,数字证书是用于校验APP客户端和服务端身份合法性的条件,通过搜索dex文件和so文件中是否存储着明文的数字证书,如果存储明文的数字证书,那么客户端和服务端校验的合法性得不到保障,容易被非法伪造、盗取,从而造成正常业务出现风险,因此这个数字证书明文的风险也是高危的风险。
3、检测APP的xml文件中存储明文数据风险,如果xml文件中存储着一些重要敏感的明文数据,那么可以直接在app安装后用adb命令方式拷贝进行查验,或利用第三方的MT管理工具查看xml文件,这种明文存储的会导致敏感的配置信息、账号信息被泄露的风险,这个风险属于中危的风险。