V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ZCPgyer
V2EX  ›  蒲公英

可能比炸机还恐怖, Android 系统 APP 的那些安全隐患你了解吗

  •  
  •   ZCPgyer · 2016-09-20 17:37:48 +08:00 · 8720 次点击
    这是一个创建于 3020 天前的主题,其中的信息可能已经有所发展或是发生改变。

    近些天有关三星 NOTE 7 炸机事件的讨论层出不穷,大家在挑选一款手机时已经要考虑到人身安全的因素了,简直不要太恐怖。在保证人身安全的情况下,多数用户挑选的手机依然是物美价廉的 Android 手机,但 Android 系统因为其开源的特性,使用过程中的不确定性和系统漏洞导致用户在使用 Android 手机时可能会产生隐私泄露、经济损失、敏感信息泄露等安全问题,新闻报道中的那些手机安全事件也大多是因为如此。

    那么, Android 系统为什么就那么不安全呢?

    由于 Android 系统是开源的,任何人都可以下载源码。这也就代表着,任何人都可以研究代码,也更容易发现系统漏洞,其开放的系统使得任何厂商均可以生产制造 Android 设备,而各种硬件厂商和第三方 ROM 开发者水平参差不齐,导致系统容易出现漏洞。

    在安装 Android 应用时,应用会请求各种各样的权限,这也是普通使用者最容易忽略的一点,许多应用在安装时会请求和该应用使用时完全用不到的权限,这也为日后可能出现的问题埋下隐患。

    Android 系统的应用可以申请读取短信、发送短信、接收短信、拨打电话、读取通讯录、修改通讯录等重要权限,无需 Root 即可替换短信、通讯录、相机、输入法等系统应用功能,可以更灵活的去开发第三方应用,但是也给了病毒和恶意软件可乘之机,易造成隐私泄露、短信被拦截(可导致账号被盗、网络支付安全问题)、被恶意扣费、自动给通讯录其他人发送病毒链接等问题。

    手机厂商对安全补丁的更新缓慢同样也是一个大问题。系统漏洞被发现后, Google 会及时更新系统补丁,而等到各个厂商给用户提供更新时可能已经过了半年以上。甚至有些厂商手机发布后,不再提供更新,导致用户始终处于已知系统漏洞的风险之中。

    目前国内第三方 ROM 市场缺乏监管,安全难以保障:现在很多手机厂商为了自身利益内置各类应用,但很多用户并不喜欢原生系统或内置应用,经常会 Root ,并刷第三方 ROM ,也造就了第三方 ROM 的繁荣市场。但第三方 ROM 的技术人员水平参差不齐,行业也缺乏监管,系统安全性难以保障,而且手机一旦进行了 Root ,被病毒、恶意软件利用申请到最高权限,可以执行很多操作,会造成更大的危害。

    除了普通用户, Android 应用的开发者也同样要关注 Android 系统的安全问题,前面已经介绍了, Android 系统有各种原因导致会有各种安全问题出现,且用户在手机 Root 后、中病毒等情况下,都会导致普通 APP 完全没有“隐私”可言,各种私有数据充分暴露。所以,开发者需要考虑在手机被 Root 后私有数据被暴露的情况下,仍然能保证数据安全,不会泄露用户重要数据及隐私信息。由于手机厂商修复系统漏洞很慢,一旦出现漏洞,开发者不能依赖系统更新,更多时候需要自己想办法避免漏洞对用户造成损失。而且 Android 碎片化严重,各种版本的系统占有率不相上下,这种情况下,低版本手机安全风险更大,虽然谷歌在每次新系统上都会加强安全措施,但是很多情况下低版本系统仍然暴露在已知漏洞的威胁之下。

    Android 应用漏洞分布现状

    在第三方应用市场分别下载了 18 个行业的 Top10 应用共计 180 个,进行漏洞分析, 97%的应用都有漏洞,总漏洞量 15159 个,平均每个应用有 87 个漏洞,且 23%的 Top10 应用都有高风险漏洞。(数据来自阿里)

    游戏类 Top10 Android 应用有 788 个漏洞,平均每个应用含 79 个漏洞。其中 29%是 Webview 远程代码执行高危漏洞。 约 19%是高危漏洞,游戏类应用更新迭代频率高,资金,用户下载量大,存在的漏洞风险不容忽视。

    金融类 Top10 , Android 应用有 669 个漏洞,平均每个含 67 个漏洞,其中 22%是 Webview 远程代码执行高危漏洞。 约 34%是高危漏洞,在 18 个行业中高危漏洞占比最高。

    电商类 Top10 应用共有 851 个漏洞,平均每个应用含 85 个漏洞,其中约 27%是 Webview 远程代码执行高危漏洞,可导致恶意应用被植入、通讯录和短信被窃取、手机被远程控制等严重后果。 约 27%是高危漏洞。

    这些漏洞到底是什么,有多危险呢?

    敏感信息泄露漏洞

    敏感信息可分为产品敏感信息和用户敏感信息和两个方面。

    产品敏感信息为:信息泄露后直接对企业安全造成重大损失或有助于帮助攻击者获取企业内部信息,并可能帮助攻击者尝试更多的攻击路径。比如登录密码、后台登录及数据库地址、服务器部署的绝对路径、内部 IP 、地址分配规则、网络拓扑、页面注释信息包括(开发者姓名或工号、程序源代码)等。

    用户敏感信息包括:用户隐私保护主要考虑直接通过该数据或者结合该数据与其它的信息,可以识别出自然人的信息。一旦发生数据泄露事件,可以被恶意人员利用获取不当利润。

    由此标准参考,如下字段在数据库的存储以及传输过程中,我们建议加密处理:密码、手机号、快捷支付手机号、 Email 、身份证、银行卡、 CVV 码、有效期。

    敏感信息可能泄露的方式有:代码、数据库、配置文件中明文存储敏感数据、日志中打印敏感信息、通信过程中明文传输敏感信息。

    一旦产品敏感信息泄露,会导致服务器处于危险境地,可能被入侵攻击,个人敏感信息泄露也会导致账号被盗、网银盗刷等,给普通用户造成经济损失。

    相关案例: 国王控卫电脑被黑遭勒索 私人敏感信息或泄露

    WebView 远程代码执行漏洞

    WebView 组件中的 addJavascriptInterface 方法用于实现本地 Java 和 JavaScript 的交互,但是该函数并没有对方法调用进行限制,导致攻击者可以调用任何 JAVA 类,最终导致 JavaScript 代码对设备进行任意攻击。该漏洞可被用来实现网页挂马,导致手机中毒等。

    相关案例: 关于安卓 webview 安全漏洞远程命令执行

    任意调试漏洞

    AndroidManifest.xml 文件中 debuggable 属性值被设置为 true 时(默认为 false ),该程序可被任调试 。该漏洞可被动态调试,增加了 apk 被破解、分析的风险。

    HTTPS 中间人劫持漏洞

    中间人攻击是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。

    攻击者可通过中间人攻击,盗取账户密码明文、聊天内容、通讯地址、电话号码以及信用卡支付信息等敏感信息,甚至通过中间人劫持将原有信息替换成恶意链接或恶意代码程序,以达到远程控制、恶意扣费等攻击意图。

    相关案例: 在各大漏洞平台上,有大量存在 HTTPS 证书不校验漏洞,例如国内绝大部分 Android APP 存在信任所有证书漏洞、亚马逊最新官方 Android 版存在一处信任所有证书漏洞、 Yahoo 雅虎在国内访问遭遇 SSL 中间人攻击、携程旅游网最新 Android 客户端 https 未校验证书导致 https 通信内容完全被捕获。

    加密算法漏洞

    使用 AES/DES/DESede 加密算法时,如果使用 ECB 模式,容易受到攻击风险,造成信息泄露。 代码中生成秘钥时使用明文硬编码,易被轻易破解。 使用不安全的 Hash 算法(MD5/SHA-1)加密信息,易被破解。 生成的随机数具有确定性,存在被破解的风险。

    加密信息被破解会导致信息的泄露。 如果加密的是账号、密码、银行卡、身份证等信息,破解后可被不法分子用于诈骗、盗号、盗刷等。

    除了以上客户端可能出现的这些漏洞,服务端可能出现的安全漏洞同样不能忽视。目前大量业务从传统的 PC 端扩展到移动端,在服务器上运行业务逻辑也是较为安全和低成本的实现方式。但正因为业务逻辑是在服务端处理,如果不对作为入口的客户端进行强有效的安全校验,客户端很容易被黑客作为突破口,用于挖掘服务端的业务风险漏洞。理论上, web 服务器所有安全问题也会出现在 App 的服务端。而 Web 安全已经发展了很长时间,研究人员、黑客也很多,技术成熟,更容易被黑客发现漏洞。

    SQL 注入漏洞

    SQL 注入攻击是黑客对数据库进行攻击的常用手段之一。原因是没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。该漏洞可导致用户信息泄露,被不法分子用于诈骗、出售信息等。

    相关案例: 贷齐乐系统多处 SQL 注入漏洞可影响大量 P2P 网贷站点

    越权访问漏洞

    一个正常的用户 A 通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,在进行增删改查的时候,没有判断所需要操作的信息是否属于对应的用户,可以导致用户 A 可以操作其他人的信息。该漏洞可导致黑客查看、修改他人用户信息、信息泄露等。

    相关案例:

    黑客可通过漏洞访问 Uber 优步司机和乘客信息

    接口未限制导致撞库漏洞

    撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户。很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过获取用户在 A 网站的账户从而尝试登录 B 网址,这就可以理解为撞库攻击。同样容易引起账号被盗、信息泄露等严重问题。

    相关案例:

    12306 数据泄露原因曝光:手机 APP 漏洞导致“撞库”

    XSS 漏洞

    跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS 。恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页之时,嵌入其中 Web 里面的 Script 代码会被执行,使得用户信息谢咯,从而达到恶意攻击用户的目的。

    相关案例: APP 安全之上车一处无效 xss 可间接影响 18 万土豪车主(包括认证的特斯拉 /劳斯莱斯 /法拉利车主等)

    业务逻辑漏洞

    业务逻辑漏洞是指由于程序逻辑不严密或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误。常见漏洞包括:任意密码修改(没有旧密码验证)、密码找回漏洞、业务数据篡改等。该漏洞易造成账号被盗、免费购物、刷钱、刷游戏币等严重问题。

    相关案例: 有利网某业务逻辑漏洞导致可无限刷红包(红包可用于投资)

    如何最大限度的避免这些漏洞的出现

    在目前大多数应用的测试团队中,大都缺乏安全测试的意识和能力,且安全测试专业性强、涉及面广、人才稀缺,组建安全团队成本太高,想做安全测试也有心无力。

    蒲公英专家测试同样也注意到了以上的问题,本着更好的为开发者服务的初心,新产品安全性测试也正在最后的打磨阶段,即将在不久后推出,详情可访问蒲公英专家测试咨询客服,我们也会根据您的需求在最后阶段完善我们的产品。

    9 条回复    2016-09-21 16:11:39 +08:00
    gdtv
        1
    gdtv  
       2016-09-20 17:43:17 +08:00
    那么问题来了,如果实在没钱买 iphone ,如何最大限度的避免安卓上的安全问题和隐私问题呢?
    nigelvon
        2
    nigelvon  
       2016-09-20 17:45:25 +08:00   ❤️ 1
    最后最重要的广告链接没加 protocol -_-
    Mirage09
        3
    Mirage09  
       2016-09-20 17:45:54 +08:00 via iPhone
    @gdtv 换 wp
    gdtv
        4
    gdtv  
       2016-09-20 17:47:05 +08:00
    @nigelvon 赶紧改,还在 10 分钟内还能改,哈哈
    ZCPgyer
        5
    ZCPgyer  
    OP
       2016-09-20 17:54:40 +08:00
    @nigelvon
    @gdtv
    啊 是不是要扣工资了!! Σ(  ̄д ̄;) 这里补上 http://zc.pgyer.com
    40huo
        6
    40huo  
       2016-09-20 18:37:07 +08:00
    别扯了, iOS 没漏洞怎么越的狱。
    echo111222
        7
    echo111222  
       2016-09-20 18:43:43 +08:00 via Android
    只要是人开发的,就有漏洞
    Balthild
        8
    Balthild  
       2016-09-21 14:41:27 +08:00 via Android
    你说的到底是系统的漏洞还是应用的漏洞
    ZCPgyer
        9
    ZCPgyer  
    OP
       2016-09-21 16:11:39 +08:00
    @Balthild 系统的漏洞导致了开发出来的应用可能也会出现漏洞
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3367 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:42 · PVG 18:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.