怎么去测试一个app是否存在安全问题?

2022-09-30 11:01 点击:121 编辑:邮轮网

说说我对安全测试的理解。全部基于工作中积累的经验,跟各位知友分享。

首先,个人认为经过安全测试后的App,并不是说它就是一定是安全的;只能说减少了一些已知的安全问题,降低了它的安全风险,提高了App被调试分析以及的门槛。那么一般如何去进行安全测试呢?
安全测试一般分为动态功能测试和静态测试。
动态功能测试一般从App自身的内容出发,来进行测试内容的整理。
从应用内容出发,例如App内有提供帐号登录的功能,那么,
请问是否有对登录的帐号密码保存在手机本地,
又问是否对与服务器端的交互封包提供了加密处理;
交互封包中的帐号密码是否也有处理;
再问是否对加密的密钥进行隐蔽的保存;
并且误帐号或密码的登录次数是否有限制等。
可以看到整个流程是,从应用本身的功能点出发,而引发的一系列测试内容。而这种类型的安全测试,也更多的像是需要测试人员对App在进行安全攻击,然后确认其安全性。
可以看到在整个测试过程中,更多的是需要人工参与,无法进行自动化测试的功能。

如果说以上和应用内容相关测试为动态功能测试,那么再来看看静态测试。
静态测试主要测试些什么呢?
再看上面的测试逻辑,请问如何知道封包是否加密呢?可以通过调试分析App进程。
那么怎样的App可以或者更容易被调试分析和呢?这就涉及到Apk本身的很多配置。例如在Apk的AndroidManifest.xml文件内,有android:debuggable=“false”这样的标志位。并且由于Apk底层都是使用Java,其本身很容易被反编译获得源码,这样可以更进一步的分析应用的漏洞点。所以从这个方面想,是否应该需要对Java的dex文件进行保护或者混淆。
综上,可以看到静态测试更多的是在Apk文件本身的层面进行,因此它具有通用性。而且更重要的是,这部分测试内容更适合于自动化测试。

针对App的静态测试,自动化测试工具:WeTest腾讯质量开放平台(wetest.qq.com),可以扫描出一部分安全问题。更多的功能性问题,还是需要人工去排查发现。
以上,共同进步,祝好!

顶一下
(0)
0%
踩一下
(0)
0%
下一篇:国务院进一步加强企业安全生产工作的通知的2
上一篇:...代表大会常务委员会关于修改《浙江省渔业管