美文网首页精读
浅谈APP端开发安全漏洞和防护策略

浅谈APP端开发安全漏洞和防护策略

作者: wnido | 来源:发表于2017-03-18 14:06 被阅读48次

    引言

    时代变化,随着信息技术的不断发展,信息安全问题也日渐突出。而在当前,手机 APP 更是处于这个信息安全的中心点,而且可以预见手机 APP 会越来越成为人们生活的重要一部分,同时也是信息泄漏的重要来源点;所以,对APP端的安全漏洞的防护必将越来越受重视。

    下面主要对几个漏洞,一一说明,可能不全,但是我当前能想到的所有,而且都是真实存在。

    分点说明

    1、 APP 中使用不安全的第三方 sdk 或者代码,以及不安全的开发工具

    由于这个原因造成安全泄漏的事情,不要太多。

    防护策略:

    程序员选择开发工具应当在官网下载,而不是其他的转载网站,鬼知道              里面是不是加了料。而其他的第三方 sdk 最好用 github 上已经有很多人用过的 SDK ,而不要随便选一个只要实现功能就行的 SDK 。这里其实个人觉得,如果官方已经有 API 实现某个功能,就用官方的,至于原因,这里就不细说。

    APP完成后,用抓包软件,进行监测,看看是否存在不可知的网络传输,如果存在,就要小心了;当然别人加进去,肯定也是有策略的,不是那么容易一下就能发现,所以最好,还是不要用不明来源的东西。

    2、用户自己 ROOT 或者 越狱,造成存储信息暴露

    很多胆大的用户喜欢Root 或者 越狱 ,为了某些无关紧要的功能,不敢苟同,也不做评论。用一个比较粗糙的比喻,本来是一个高贵的公主,不是谁都能触碰,非得自己变成妓女,随便来个人都能摸俩把,O(∩_∩)O哈!

    但作为一个“有痣”的程序员本身来说,还要考虑到这种情况下的信息安全,尽可能不泄漏重要信息。

    防护策略:

    存储在本地的重要信息,尽量不要用明文存储


    3、 APP被反编译

    a、android APK 非常容易被反编译成可读文件,稍加修改就能重新打包成新的 APK,进而实现软件破解,内购破解,软件逻辑修改,插入恶意代码,替换广告商 ID 等。

    防护策略:

    加固或者代码混淆、重要逻辑用NDK实现

    b、iOS 这边相对来说要安全很多,但也是可以被反编译的,虽然不能像 android 那样可以被重新打包,但会暴露 APP 内的代码实现,利用这个,就给 APP 开 了一个口子,有时可以利用上进行密码破解等。这里可以举个栗子:

    当年支付宝手势密码,就是这样子被人破解的,然后还被刷脸了,哈哈哈。。。当然这个漏洞很早就被修复了。

    防护策略:

    代码混淆、库封装


    4、 网络明文传输

    相信大多数程序员都用过抓包软件,在网络传输过程中,网络中的所有数据都是可以被抓包的,如果你用的是明文传输,那全部呈现在抓包软件中。这些明文信息,当你接入不安全的网络环境时,就会暴露用户信息

    防护策略:

    网络交互时,重要信息,不要用明文传输


    5、 动态加载网络代码

    像 webView 加载的是 js 代码或者网页,或者热更新代码等,如果服务器已经被劫持,这样就非常不安全,而且可能造成信息泄露、APP被改写等重大问题。

    因为所有的网络交互,都涉及到一点---服务器劫持,如何保证劫持后不对 APP 端造成影响,是网络交互设计中的重要前提。

    防护策略:

    在关键点,进行网络安全防护策略,这里是需要服务器配合的,就不细说

    补充说明: HTTPS 并不安全

    iOS 之前一直要求APP内部所有 HTTP 都换成 HTTPS ,但到现在又像是没有了下文。Https 并不是完全安全的,只能说比 HTTP 安全,芬兰 DNS 大量劫持事件中,就可以看到 HTTPS 的对黑客来说和 HTTP 没啥两样,形同虚设。

    总述:

    以上所说肯定是不全的,没有永远攻不破的盾也没有永远的什么都破的了的矛,新的漏洞肯定还会出现,八仙过海各显神通,矛盾,才是人们生活的前进的动力。

    相较于本地单方面信息存储的单一,与服务器交互,如何实现交互安全将是更重要的一块,这其中就涉及到各种加密算法和网络交互安全策略,这又将是一大课题。

    相关文章

      网友评论

        本文标题:浅谈APP端开发安全漏洞和防护策略

        本文链接:https://www.haomeiwen.com/subject/rtbunttx.html