0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用程序屏蔽和应用程序内保护哪个更安全?

如意 来源:嘶吼网 作者:xiaohui 2020-08-26 16:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

众所周知,攻击者往往会使用用户移动设备上运行的应用程序来攻击后端的系统,比如攻击者利用移动操作系统和你的应用程序中的漏洞来监视你,获取私人数据甚至窃取资金。为了应对这种情况,许多移动应用程序开发人员正在使用应用程序屏蔽,有时称为“应用程序强化(app hardening)”来缓解攻击者对应用程序发起的各种攻击。

应用程序强化或应用程序屏蔽对于防止逆向工程很重要,但该方法不会在你的应用程序运行在一个危险的移动设备的环境中检测到实时的网络攻击。移动应用程序需要额外的应用程序内保护,以保护你的应用程序免受攻击和欺诈。

研究者在2019年7月发布了一份 “应用程序内保护市场指南”,所谓应用程序内保护是指在应用程序(而不是网络或操作系统)中实施的安全解决方案,这样应用程序更能抵御恶意数据泄露、入侵、篡改和逆向工程等攻击。企业使用应用程序内保护来保护其基于软件的资产,并保护其组织和客户免受欺诈性攻击。

包含个人身份信息和知识产权的金融、医疗保健和公民服务应用程序应同时实现应用程序屏蔽和应用程序内保护。在本文,我将描述每种情况,并提供示例应用程序来实现应用程序内保护以及它们所保护的数据。

什么是应用程序屏蔽?

应用程序屏蔽是一组用于修改和混淆应用程序的二进制代码的技术。应用程序防护使应用程序更具防篡改性,可以防止通过逆向工程和未经授权的访问来窃取机密。它创建了一个更具弹性的应用程序,通过混淆和加密二进制代码使逆向工程更加困难。

应用程序屏蔽功能包括:

代码混淆,混淆是修改人类难以理解的源代码或设备代码的蓄意行为。使代码难以理解会阻止攻击者试图从你的代码中挖掘潜在的缺陷、漏洞或对IP进行逆向工程。

调试检测,应用程序阻止和检测调试,并响应当前的调试器,必须涵盖所有可用的调试协议。

模拟器检测,模拟器检测使应用程序能够检测它在模拟器中的操作。模拟器用于对应用程序进行逆向工程,并识别其与其他服务的通信

根或越狱检测,越狱或根检测会检测用户是否删除了苹果或谷歌在设备上设置的限制。越狱检测很重要,但不能检测到设备受到攻击。

应用篡改,尽管混淆有助于防止对静态(非运行)代码进行逆向工程,但攻击者仍然可以通过在运行时“钩住”应用来尝试逆向应用。应用程序篡改包括检测攻击者是否尝试对应用程序进行逆向工程。

什么是应用程序内保护?

应用程序内保护与应用程序屏蔽不同,它可以从应用程序内部检测实时恶意软件,网络和操作系统攻击。移动威胁防御技术被置于移动应用程序内部,以检测和补救对应用程序和设备的威胁。

应用程序内保护可保护后端系统免受可能携带的移动恶意软件或易受攻击的移动设备的攻击。虽然我们无法控制移动设备上应用的安全状况,但是如果在移动设备上检测到恶意软件,危险的配置或网络攻击,则可以限制设备与受攻击的程序进行通信。

除了越狱和仿真器检测之外,一些数据应用程序内保护还提供:

恶意软件检测,应用程序内保护可检测设备上的多种恶意软件,并建议用户进行补救。随着用户继续迁移到移动设备,恶意软件也会迁移。 Bankbot,Monokle,Anubis和Cerebus等恶意软件样本和远程访问工具RAT已出现在移动设备上,随着越来越多的公司将更多服务推向移动设备,这种趋势还将继续。其中许多RAT会监控剪贴板、密码,以收集有关用户和凭据数据。

零日检测,应用程序内保护可检测通过文件系统和操作系统行为利用的漏洞。通过动态监控危害指标与查看已知漏洞的云库,或仅检测设备上安装的OS版本/补丁程序级别的指标,就可以检测到零日攻击。

网络或Wi-Fi缓解,应用程序内保护检测网络连接操作和中间人(MiTM)攻击。你的应用程序应该能够识别“中间人”(MiTM)、SSL剥离,并尝试代理或解密你的用户的应用程序流量,以纠正攻击和产生有关威胁事件的威胁取证。

设备配置风险,这个风险主要来自用户自己。用户选择是否更新操作系统以修补已知漏洞,使用PIN码或越狱设备。应用程序内部的应用程序内保护可让你查看应用的安全状况,并最终了解移动应用程序的风险状况。

应用程序屏蔽和应用程序内保护有什么区别?

应用程序屏蔽和应用程序内保护是互补的,在许多情况下,为了全面降低风险,用户应该在移动应用程序中同时使用这两种技术来增强预防能力并阻止攻击者获取更多隐私数据。至于你决定使用哪一种方法来保护,则取决于你的应用程序的运行方式,以及它定期存储和处理的信息类型。

为了达到最优的安全水平,移动开发团队投入大量时间来设计和构建直观的移动应用程序。这样的程序会自动执行标准的安全检查,并尝试遵循良好的编码习惯。但是,在运行时保护应用程序的安全也至关重要。因为移动应用程序是依赖操作系统来提供安全运行的基础,所以如果设备受到威胁,那么移动应用程序的整个安全基础也会受到威胁。

一个自我保护的应用程序可以不依赖设备本身的安全性能来安全的运行和操作,具有运行时安全技术或应用程序内保护的移动应用程序能够独立于本机安全功能检测恶意活动。这种独立检测可及时识别野外的威胁,并最终避免不可接受的风险暴露,并最终保护应用程序和服务器端的交易和数据。

设备本身的操作系统有多脆弱?

移动应用程序开发人员依靠底层操作系统来确保安全性,但是,尽管移动操作系统本身已经加强了防御攻击的能力,但它们并非万无一失。众所周知,研究人员每年都会发现成千上万的新漏洞。事实也是,研究人员和恶意攻击者都在不断测试AndroidiOS,以通过漏洞赏金计划、内部研究或将零日价格卖给出价最高的人来寻找漏洞。目前,一个在iOS上远程传输的持续性漏洞可以卖到200万美元。

2019年,移动操作系统供应商为1161个安全漏洞创建了补丁。而苹果则修复了306个CVE (即常见的漏洞和暴露),其中64%被认为是“严重”安全威胁。

Google在2019年修补了855个CVE,其中大多数(54%)被认为是“严重”或“高”安全威胁。严重CVE是一类允许远程执行代码或远程绕过安全功能的漏洞,如果严重CVE成功执行,则攻击者就可以远程访问数据或绕过操作系统安全保护,进而发起各种功能。

即使所有漏洞的补丁都在规定的时间内交付,用户也必须升级他们的设备以提高安全性。但如果依靠用户来打补丁,则是一场安全赌博。因为许多设备太旧了,无法再升级。

为什么需要实施OWASP?

开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。

如果你正在遵循OWASP Mobile Top 10,那么你很可能已经实现了应用程序屏蔽以及强化过程和工具。OWASP建议你实现用于身份验证、数据存储、加密和逆向工程的控件。然而,在移动安全和应用强化方面,还存在很大的改进空间。

Zimperium(Zimperium成立于 2010 年,由著名黑客 Zuk Avraham 创立,旨在为手机提供解决方案,以防受网络攻击。)此前曾对来自银行、旅游和零售行业的应用程序进行过安全、隐私和监管方面的OWASP Mobile Top 10进行了审查。他们发现大多数应用程序没有通过逆向工程检查。逆向工程应用程序可以使攻击者发现漏洞和通信方法。未能正确实施安全强化并通过移动应用程序暴露漏洞的最著名例子之一是乐购银行( Tesco Bank )。2016年英国零售业龙头特易购旗下的银行事业Tesco Bank传出遭骇客攻击,有超过4万个帐户遭锁定、2万个帐户被成功骇入,用户存款遭到盗领。这起英国有史以来最严重的网路窃盗事件,导致Tesco Bank共13.6万个帐户中的4万个遭到骇客锁定攻击,2万个被成功盗走存款。经查,是Tesco Bank的移动应用程序存在漏洞,这为网络攻击者强行进入银行盗取存款打开了大门。然而,许多受影响的账户并不是移动银行客户,而是从一个安全性很差的移动应用程序发起的攻击。

另外,移动应用的开发人员可能还需要实施应用程序内保护,以符合特定的法规和政策。 PSD2要求移动应用程序开发人员能够检测第三方操作并实现独立的身份验证环境,另外,GDPR和《加州消费者隐私法案》还强制程序要执行数据隐私和删除私人数据的功能。 另外,PCI DSS和HIPAA等其他规定的颁布,也旨在减少支付和医疗保健行业的攻击行为。全称Payment Card Industry (PCI) Data Security Standard,第三方支付行业(支付卡行业PCI DSS)数据安全标准,是由PCI安全标准委员会的创始成员(visa、mastercard、American Express、Discover Financial Services、JCB等)制定,立在使国际上采用一致的数据安全措施,简称PCI DSS。HIPAA全称为:Health Insurance Portability and Accountability Act/1996,Public Law 104-191,尚没有确切的正式中文名称,国内文献一般直接称为HIPAA法案,有的称为健康保险携带和责任法案,也有取其意为医疗电子交换法案;台湾有文献翻译为义务型可携带式健康保险法案。

在移动应用程序中安装应用程序内保护的具体案例

近日,一家全球银行承认,它拥有数百万个客户和数十万名员工,通过五十种不同的企业和用户移动应用程序连接到其后端系统。该银行的IT员工意识到无法确定与银行系统交互的客户或员工设备的安全运行状况,该银行发现有必要了解与移动设备与其系统交互相关的风险。

然后,这家美国银行进行了详尽的搜索,并测试了所有可用的移动安全解决方案。团队一致选择应用程序内保护方案来保护其员工设备、消费者银行业务和内部员工移动应用程序的安全。

该银行计划将移动安全防御系统嵌入其消费者移动银行应用程序中。通过将威胁防御部署到其移动银行应用程序,该银行现在可以识别在受损或有风险的设备上进行的可疑交易。

在部署之前,银行缺乏来自客户设备的安全数据。在部署后,这些安全数据就会很容易获得。

应用程序更新后,用户立即开始使用受网络保护的应用程序进行移动银行交易。安全人员发现,用户的移动设备及其连接的网络的安全状况令人震惊。

在头30天里,该银行记录了近100万起针对客户移动设备的威胁,只有在银行应用程序打开时才会记录威胁数据。如果该应用程序被关闭,银行不会收到来自用户的威胁数据,因为其他应用程序中的会话不会对银行构成欺诈风险。

在最初的30天内,数百万移动银行用户更新了应用程序,并开始对移动攻击的行为进行数据取证:

276000次不安全的Wi-Fi检测;

1433个恶意接入点检测;

495000台设备没有PIN码;

启用了166000个第三方应用商店访问权限;

16000个根或越狱的设备;

1000个记录了系统或文件篡改的事件;

用户的智能手机上有1500个根应用和另外500个包含恶意软件、特洛伊木马和间谍软件的应用。

目前,该银行已掌握了如何通过移动渠道防范欺诈的可操作数据,涉及金额超过11亿美元。所有这些都是通过使用移动威胁防御SDK更新现有的应用程序来实现的,该SDK的配置时间不到10分钟。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络安全
    +关注

    关注

    11

    文章

    3540

    浏览量

    63640
  • 应用程序
    +关注

    关注

    38

    文章

    3347

    浏览量

    60513
  • 网络攻击
    +关注

    关注

    0

    文章

    332

    浏览量

    24716
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用基于模型的设计开发和测试车载操作系统的SOA应用程序

    随着车辆从传统机械系统演变为软件定义汽车 (SDVs),汽车行业正在经历一场深刻的变革。这种转变需要新的软件开发方法,而面向服务的架构 (SOA) 正成为设计灵活、可扩展的汽车应用程序的首选范式。在
    的头像 发表于 05-22 11:17 1619次阅读
    使用基于模型的设计开发和测试车载操作系统的SOA<b class='flag-5'>应用程序</b>

    TMS320F28xxx DSP:从内部闪存运行应用程序的全面指南

    TMS320F28xxx DSP:从内部闪存运行应用程序的全面指南 在嵌入式系统设计中,让应用程序在TMS320F28xxx DSP的内部闪存上运行是一个常见需求。本文将深入探讨从内部闪存运行
    的头像 发表于 04-23 13:40 238次阅读

    S32K系列引导加载程序应用程序跨不同定制电路板设计的跳转问题求解

    应用程序和固件升级 - 板 2:相同的引导加载程序项目失败 - 无法跳转到用户应用程序 **董事会之间的主要区别:** - UART 通信引脚分配 - I2C 通信引脚分配 - 其他外围引脚配置 - 相同
    发表于 04-22 07:02

    S32K3跳转到应用程序后,PTD5上没有活动,为什么?

    我正在编写一个在微S32K324上加载的引导加载程序。 为了解决这个问题,我编写了一个非常简单的引导加载程序应用程序。 引导加载程序缓慢切换 PDT5 引脚,然后跳转到地址0x005
    发表于 04-16 08:59

    运行测试程序以读取通过受信任应用程序 (TA) 存储的安全 blob 时,内存不足怎么解决?

    当我运行测试程序以读取通过受信任应用程序 (TA) 存储的安全 blob 时,我遇到了内存不足 (OOM) 问题。 我仔细观察了代码,但没有发现任何内存漏洞。 测试程序读取对称密钥,并
    发表于 04-10 10:52

    如何在 i.MX RT1050 上实现两个镜像(引导加载程序应用程序)的双 HAB 身份验证?

    ,请验证应用映像的真实性。 但是,我想知道: 可以使用吗恩智浦生成的证书(来自安全配置工具)或HAB 机制本身对引导加载程序应用程序映像进行身份验证? 如果是这样,推荐的方法是什么安全
    发表于 04-07 06:14

    RDMA设计56:如何设计基于RDMA的应用程序

    本博文主要交流设计思路,在本博客已给出相关博文约140篇,希望对初学者有用。 注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP 设计。 应用程序的工作流程如图 1所示,大致分为 READ 包
    发表于 04-05 09:54

    如何构建蓝牙应用程序

    应用程序使用蓝牙(blueZ)。 我已经安装了 gcc-riscv64-linux-gnu。 但是,没有安装 blueZ 标头和库。 如何构建我的蓝牙应用程序
    发表于 04-01 07:31

    PYQT 应用程序框架及开发工具

    大家好,本团队此次分享的内容为开发过程中使用到的PYQT 应用程序框架及开发工具。 pYqt 是一个多平台的 python 图形用户界面应用程序框架,由于其面向对象、 易扩展(可实现组件编程等
    发表于 10-29 07:15

    如何在应用程序调试期间分析栈和堆使用情况

    随着 AMD Vitis 统一软件平台 2021.2 的发布,Vitis 引入了一个 Tcl 脚本,用于在应用程序运行的特定时间点协助查找栈和堆的内存使用情况。该脚本已延续到后续的 Vitis 版本
    的头像 发表于 10-24 16:54 1135次阅读
    如何在<b class='flag-5'>应用程序</b>调试期间分析栈和堆使用情况

    请问rt smart 的用户应用程序能自动加载吗?

    请问rt smart 的用户应用程序能自动加载吗?只需要将内核和用户程序隔离开,开机自动加载
    发表于 10-13 06:17

    学生适合使用的SOLIDWORKS 云应用程序

    随着科技的不断发展,计算机辅助设计(CAD)技术已经成为现代工程教育的重要组成部分。SOLIDWORKS作为一款CAD软件,其教育版云应用程序为学生提供了强大而灵活的设计平台。本文将探讨
    的头像 发表于 09-15 10:39 1029次阅读
    学生适合使用的SOLIDWORKS 云<b class='flag-5'>应用程序</b>

    FX3 UVC 无法与 Ubuntu 24.04 Cheese 或 Snapshot 相机应用程序配合使用,怎么处理?

    当我尝试使用 Cheese 或 Snapshot 应用程序将未压缩的 1080p30 从我的 FX3 UVC+UAC 设备流式传输到 Ubuntu 24.04 机器时遇到问题。我的 FX3 在
    发表于 07-16 06:37

    使用 USB CDC 下载应用程序固件,用时过长是为什么?

    我已经在PSoC™ 6 WIFI-BT Pioneer Kit 上尝试了 DFU 示例代码,发现了一件奇怪的事情。 如果我使用 UART-over-USB 下载应用程序固件,则只需 20 秒。但是
    发表于 07-14 07:10

    CYBT-343026-01能否使用 HFP 和 AVRCP 制作应用程序

    我们计划使用 CYBT-343026-01 制作使用 HFP 和 AVRCP 的应用程序。 可以使用 CYBT-343026-01 制作使用 HFP 和 AVRCP 的应用程序吗? 根据 QDID
    发表于 07-01 08:29