Ⅰ 怎么去测试一个app是否存在安全问题
说说我对安全测试的理解。全部基于工作中积累的经验,跟各位知友分享。首先,个人认为经过安全测试后的App,并不是说它就是一定是安全的;只能说减少了一些已知的安全问题,降低了它的安全风险,提高了App被调试分析以及破解的门槛。那么一般如何去进行安全测试呢?安全测试一般分为动态功能测试和静态测试。动态功能测试一般从App自身的内容出发,来进行测试内容的整理。从应用内容出发,例如App内有提供帐号登录的功能,那么,请问是否有对登录的帐号密码保存在手机本地,又问是否对与服务器端的交互封包提供了加密处理;交互封包中的帐号密码是否也有处理;再问是否对加密的密钥进行隐蔽的保存;并且误帐号或密码的登录次数是否有限制等。可以看到整个流程是,从应用本身的功能点出发,而引发的一系列测试内容。而这种类型的安全测试,也更多的像是需要测试人员对App在进行安全攻击,然后确认其安全性。可以看到在整个测试过程中,更多的是需要人工参与,无法进行自动化测试的功能。如果说以上和应用内容相关测试为动态功能测试,那么再来看看静态测试。静态测试主要测试些什么呢?再看上面的测试逻辑,请问如何知道封包是否加密呢?可以通过调试分析App进程。那么怎样的App可以或者更容易被调试分析和破解呢?这就涉及到Apk本身的很多配置。例如在Apk的AndroidManifest.xml文件内,有android:debuggable=“false”这样的标志位。并且由于Apk底层都是使用Java,其本身很容易被反编译获得源码,这样可以更进一步的分析应用的漏洞点。所以从这个方面想,是否应该需要对Java的dex文件进行保护或者混淆。综上,可以看到静态测试更多的是在Apk文件本身的层面进行,因此它具有通用性。而且更重要的是,这部分测试内容更适合于自动化测试。针对App的静态测试,自动化测试工具:WeTest腾讯质量开放平台(wetest.qq.com),可以扫描出一部分安全问题。更多的功能性问题,还是需要人工去排查发现。以上,共同进步,祝好!
Ⅱ 怎么去测试一个 app 是否存在安全问题
App的安全问题首先是『数据安全』。App本地存储的数据和网络请求数据中有没版有涉及到用户的隐私数据。本地权存储数据可以查看看应用的SharedPreferences文件和数据库文件中的数据(root后在应用安装目录内,或者查看外部存储中有没有写入敏感数据)。网络请求可以通过抓包工具,看特定操作下该应用发起的请求中有没有涉及到安全的数据(用户的隐私、服务器的敏感信息等)。还有就是『应用自身安全性』。对某个应用进行逆向,看反编译后的代码有没有敏感信息暴露。反编译后对代码修改,插入劫持代码后重新打包,如果存在这种漏洞,对用户和开发者都构成极大的威胁。