随着社会发展,各种应用在当今社会各方面都发挥着重要的作用。客户或最终用户希望移动应用的功能可以尽量全面,而开发人员也尽力实现这些要求。软件公司开发各种商业软件,出售给企业和消费者。企业也内设相关部门,以研发企业所需的应用,以提高生产力或实现所需功能。
无论什么类型或者用途的应用,都无法避免以下风险:成为黑客或恶意人员的攻击对象,他们会尽力查找到目标应用的缺陷并进行利用或攻击。因此,在开发应用的过程中,除了创新、多功能外,保护应用和应用数据的安全也应受到重视。本文简要介绍了应用加固、应用加固的效益和最佳实践。
什么是应用加固?
应用强化,是一类修改应用以提升应用其抵抗黑客攻击的技术,攻击类型包括篡改和逆向工程等等。应用强化的概念来源于系统强化领域,即需要减少技术基础架构的现有受攻击面。也就是说,应用强化并非专注于开发过程中的安全编码,而是针对已完成开发的应用,减少其暴露安全漏洞的风险。
人们已经对网络威胁形势和安全编码实践的重要性的认识有所提高。然而,大多数应用在发布时都存在固有的安全漏洞。2020 年的一项研究发现,超过 75% 的应用存在安全漏洞。虽然并非所有缺陷都会带来严重的安全风险,但如果采用了应用加固,则可以最大限度地减少黑客或恶意人员利用应用安全漏洞造成不良后果。
虽然目前来说,可能只有受到严格监管的行业(如银行或医疗保健)的应用才真正需要加固以提升安全。但实际上,企业都应加固能访问重要公司或客户数据的应用,尤其是企业发布它们到供大众下载的应用商店之前。
加固应用的一些基本方法
选择混淆方法
混淆技术,顾名思义,即故意改变某些东西以使其更难理解。对于应用程序,混淆通常指修改源代码,但要保持应用功能符合预期。这样,即使黑客攻击了应用,也无法根据源代码来了解和利用应用。此外,对代码进行混淆,可能因为要被混淆的代码是想要保护的知识产权。
混淆令对应用进行逆向工程更加困难。以下是一些混淆的方法:
- 重命名变量以隐藏其真正用途
- 更改代码的布局以故布迷局(例如添加注释、操作缩进)
- 插入不影响应用底层逻辑的伪代码
- 向方法或函数添加假条件或分支语句
混淆会使调试复杂化,甚至会影响运行时性能(取决于使用的方法)。如果应用会在不受信任的环境运行或用于访问敏感数据,那么强烈建议混淆应用以提升安全。
实施反调试
调试器原本是合法的工具。但是黑客经常利用它们来实现恶意目的。黑客使用调试器来检测代码中的错误,逐步对应用进行逆向工程。调试器提供一些应用如何工作的可靠指标。
反调试技术,会注入特殊代码,以检测应用是否在调试器中运行,和在检测到调试器时更改应用行为。更改后的应用行为包括关闭应用、故意破坏某些信息或阻止黑客的其它行为。
防止篡改
篡改指黑客为了自己的目的而修改代码。例如,篡改银行应用并劫持它进行欺诈。有时候,黑客还会把篡改后的应用重新分发给毫无戒心的用户,以造成更大的危害。
防篡改,通常在执行代码时便同步启动。防篡改主要是指检查完整性,完整性检查器在应用运行时评估被隔离的可执行文件段,以查看是否有任何内容已被修改。若检测到篡改,可触发后续操作,例如关闭应用或通知用户应用已被篡改。
越狱和Root检测
iOS设备的越狱(或安卓设备的 root),是指最终用户为了能自由控制手机,或下载安装非官方应用商店的应用,而故意消除原始制造商设置的安全控制和限制。
然而,iOS设备的越狱(或安卓设备的 root)会令在此类设备上运行的任何官方应用不安全。同一设备上的恶意应用可以访问您的应用、应用数据和加密密钥。因此,加固应用通常要求进行越狱和root检测,以触发保护应用及其数据的防御措施。
应用加固的效益
防止财务损失
现在,国外处理重大数据泄露的平均处理费用为每次事件 424 万美元,用于事件后引发的罚款和诉讼。其他费用包括事件处理,例如隔离受感染的应用、查找和修复被利用的漏洞等等。应用加固,有助于减少应用受到的攻击和数据泄露的风险。
避免声誉受损
除了上述善后费外,应用安全事件还会导致企业声誉受损。即使企业保护敏感数据并未受影响,但是任何常用应用若发生安全事件,社会都会迅速广泛传播此类事件。而声誉受损后,可能会导致当前用户失去信任,或潜在潜在客户会对交易产生犹豫。
保护用户信息
任何企业,若通过应用收集和存储敏感用户信息,都有责任尽最大可能保护这些信息。应用加固技术有助于保护可售卖获利的敏感用户信息,例如信用卡号码等等。有时候,黑客或恶意行为者攻击和利用应用的目标就是它们。
满足监管要求
目前,国外一些监管要求强制要求应用加固。例如,保护存储持卡人数据的 PCI DSS 列明“mobile payment-acceptance applications should be hardened to prevent unintended logical access or tampering with the app.” (应加固接受移动支付的应用,以防止非法访问或篡改应用。)
应用加固的DIY方法是否足够?
开发人员可以利用各种开源工具和技术来实施应用加固。但更应了解,目前也存在许多其他运行时攻击,例如代码注入、原生代码钩、键盘记录等等。
安讯奔的YESsafe AppProtect+,可以从内到外保护应用,无论应用程序运行在什么设备或环境中,都能令其免受逆向工程、重新打包和源代码修改等等的危害。YESsafe AppProtect+的核心功能包括移动环境检测、源代码混淆、应用完整性保护、防篡改(欺诈)、数据保护和运行时受到攻击采取主动保护,因此它超越了普通的应用加固,通过检测和响应措施,为应用实现全面保护。