Apk检测报告项目介绍

发布时间:2015-06-10 17:08:14

Apk检测报告项目介绍

应用安全检测

主要进行,业务安全、组件安全、WebView 全的检测,发现软件登录、支付不合理的设计, 以及暴露的组件漏洞,输入监听、界面劫持和被 调试等风险的检测

主要包括以下几点:

Activity安全安全:导出的组件可以被第三方app任意调用,导致敏感信息泄露或者恶意攻击者精心构造攻击载荷达到攻击的目的。

Receiver安全危险:可造成信息泄露,拒绝服务攻击等

Service安全危险:Service存在的安全漏洞包括:权限提升,拒绝服务攻击。没有声明任何权限的应用即可在没有任何提示的情况下启动该服务,完成该服务所作操作,对系统安全性产生极大影响。

ContentProvider安全安全:Content Provider的不安全使用会产生sql注入、文件遍历等漏洞,导致用户数据泄露

Intent安全危险:intent scheme URLs(意图协议URL),可以通过解析特定格式的URL直接向系统发送意图,导致自身的未导出的组件可被调用,隐私信息泄露。Intent隐式调用发送的意图可能被第三方劫持,如果含有隐私信息可能导致内部隐私数据泄露

WebView安全危险:利用androidwebView组件中的addJavascriptInterface接口函数,可以实现本地javajs之间交互,但是在安卓4.2以下的系统中,这种方案却给我们的应用带来了很大的安全风险。攻击者如果在页面执行一些非法的JS(诱导用户打开一些钓鱼网站以进 入风险页面),通过远程代码执行,反弹拿到用户手机的shell权限。接下来攻击者就可以在后台默默安装木马,完全控制用户的手机。另外,android webview 组件包含3个隐藏的系统接口:“accessibility”、“accessibilityTraversal”以及“searchBoxJavaBridge_”,同样会造成远程代码执行

模拟器检测一般:模拟器具有经济成本低、高度可定制、易于开发、容易部署等优点,攻击者可以通过自己修改定制特定的模拟器来达到监控应用关键函数、获取应用敏感数据,破解应用的目的。为了增加破解阻力,应用中应该进行模拟器检测,添加反模拟器运行代码

源码安全检测

主要进行,源码是否有签名、完整性的校验,遭 反编译后泄漏、dexso文件的隐藏加固,以及 硬编码等风险检测

主要包括以下几点:

代码混淆安全:对代码进行混淆,能够提高黑客阅读和理解代码的门槛,在一定程度上增加了黑客破解的难度

Dex保护危险:DexAndroid应用的核心,保护不当容易被反编译,暴露程序重要信息,面临被植入广告、恶意代码、病毒等风险。

SO保护安全:Android so通过C/C++代码来实现,相对于Java代码来说其反编译难度要大很多,但对于经验丰富的破解者来说,仍然是很容易的事。应用的关键性功能或算法,都会在so中实现,如果so被逆向,应用的关键性代码和算法都将会暴露。

资源文件保护危险:反编译apk获得源码,通过资源文件或者关键字符串的ID定位到关键代码位置,为逆向破解应用程序提供方便

异常处理危险:在开发时偶尔会由于疏忽导致有些异常没有进行处理。如果不提示详细信息又会给用户报告异常带来麻烦,不利于开发人员及时发现并处理异常。但是如果将异常详细信息不经处理直接提示给用户则会带来安全隐患。

权限管理一般:冗余权限可导致串谋攻击,串权限攻击的核心思想是程序A有某个特定的执行权限,程序B没有这个权限。但是B可以利用A的权限来执行需要A权限才能完成的功能。

动态调试危险:动态调试可以获取函数运行时各个变量的取值,程序运行逻辑,加密的数据信息,从而为破解应用提供便利

数据安全检测

针对应用的输入输出,进行窃取和非法访问的检 测,检测协议上会话是否安全加密、证书验证以 及能否被重放攻击,输出信息是否能为渗透破解 提供有效数据等检测

主要包括以下几点:

数据访问控制危险:检测数据是否仅被授权用户或应用进程访问。如果开发者使用openFileOutput(String name,int mode)方法创建内部文件或者使用getSharedPreferences读取配置信息时,如果使用MODE_WORLD_READABLE MODE_WORLD_WRITEABLE模式,就会让这个文件变为全局可读或全局可写的。

敏感数据加密安全:本地加密时如果使用SecureRandom中的setSeed方法设置种子将会造成生成的随机数不随机,使加密数据容易被破解。在SecureRandom生成随机数时,如果我们不调用setSeed方法,SecureRandom会从系统的中找到一个默认随机源。每次生成随机数时都会从这个随机源中取seed。在linuxAndroid中这个随机源位于/dev/urandom文件。 如果我们在终端可以运行cat /dev/urandom命令,会观察到随机值会不断的打印到屏幕上。在Android 4.2以下,SecureRandom是基于老版的Bouncy Castle实现的。如果生成SecureRandom对象后马上调用setSeed方法。SecureRandom会用用户设置的seed代替默认的随机源。使得每次生成随机数时都是会使用相同的seed作为输入。从而导致生成的随机数是相同的。

证书验证安全:开发者在代码中不检查服务器证书的有效性,或选择接受所有的证书。这种做法可能导致的问题是中间人攻击。

远程数据通信加密安全:如果数据通信没有经过加密,直接使用HTTP协议登录账户或交换数据。例如,攻击者在自己设置的钓鱼网络中配置DNS服务器,将软件要连接的服务器域名解析至攻击者的另一台服务器在,这台服务器就可以获得用户登录信息,或者充当客户端与原服务器的中间人,转发双方数据。另外,程序与服务器通信的敏感数据如果使用了分组加密算法,采用ECB模式将会使相同的明文会产生相同的密文,容易受到字典攻击,安全性不够高

日志信息移除安全一般:通过logcat打印的调试信息或者错误异常信息,可以定位应用运行的流程或者关键代码,从而降低黑客破解的难度

测试数据移除安全一般:如果在AndroidManifest.xml配置文件中设置了application属性为debuggable=true”,则应用可以被任意调试,这就为攻击者调试和破解程序提供了极大方便。如果设置application属性为allowBackup=true”,则应用在系统没有root的情况下其私有数据也可以通过备份方式进行任意读取和修改,造成隐私泄露和信息被恶意篡改。

以上内容有爱内测(www.detect.cn)提供

Apk检测报告项目介绍

相关推荐