当今,移动应用业务占据了应用经济效益的重头。仅在 2020 年的美国,安卓的 Play Store 和 苹果的 App Store 就产生了 501 亿美元的收入。开发人员的任务是编写这些应用,和提供消费者所需的功能。

在激烈的竞争环境中,开发团队的重点目标为提升用户体验、满足用户日常生活所需以及发掘应用新功能。通常,安全性位于这些主要目标之后。

恶意人员了解开发人员可能会轻视安全性,于是他们针对安全漏洞,试图窃取数据、接管移动设备,甚至通过后端服务器秘密入侵网络,造成各种危害和恶果。移动应用安全,应成为现代网络领域的核心优先事项之一。本文介绍了一些基本的最佳实践,供开发人员加强移动应用安全性和处理常见的网络攻击。

移动应用安全最佳实践

关于如何更好地保护移动应用的信息很多,从验证用户身份到 API,再到服务器漏洞等等,这些内容足够写成一本书了。然而在本文,让我们仅关注一些基本的最佳实践,它们有助于开发人员显著提高移动应用的安全性。

实施更强的用户认证

仅使用密码来认证用户是一种相对落后的方法,而且这会导致应用和用户帐号容易受到攻击。在加强验证身份方面,许多开发人员仅采取强制用户创建强密码这一措施。

现在,在暗网上有超过 150 亿个被盗或被泄露的凭据,可供暗网的恶意人员使用。因此,仅依靠密码来认证用户是有风险的,因为恶意人员可能使用通过不法途径获取的凭证来登录和使用应用,以实现不良企图。

移动应用的更强的访问控制,需要使用其他类别的证据来验证用户身份。根据应用数据的敏感性和提供应用的品牌的需求,客户可能寻找一种认证服务器解决方案,它支持多种认证机制,可实现双因素认证和保护密码。对于密码,除了SSL外,最好也实施端到端加密,以保护传输中的和静态存储的密码。对于双因素认证,与其要求一次性密码(可能为了提升用户体验),不如考虑实施移动令牌(支持基于手机与生物识别的请求登录推送)。在寻找认证服务器时,建议寻找不要求使用特定供应商或认证机制技术的服务器。

保护软件供应链

移动应用依赖于专有代码和第三方组件的组合。开发人员通过使用这些第三方组件(包括框架和库),采用现成的应用功能和行为(例如处理网络请求或加载图像),可节省时间。

用于构建移动应用的第三方组件,成为了需要保护的软件供应链。开发人员需要严格评选其移动应用要使用的库和框架,并寻找信誉良好的开源项目。

此外,请确保定期更新移动应用所依赖的库或框架。因为,即使信誉良好的第三方组件也可能出现严重漏洞,例如 2022 年 Apache Log4j 事件。

加密数据

当用户与移动应用交互时,他们会频繁创建数据,这些数据会存储在本地设备上或通过 Internet 传输到后端系统。此外,重要开发数据(例如 API、证书和认证令牌)也存储在移动设备上。加密是现代应用安全的支柱,因为它将数据转换为人类不可读的格式,恶意人员若没有掌握解密方式,将无法读取这些受保护数据。

恶意人员几乎不可能通过暴力破解强大的加密标准,例如 AES-256。开发人员需要重点保护移动应用中的两种状态的数据:

  • 静态数据,它存储在移动设备上、用于隔离不同应用的沙箱中
  • 传输数据,它在用户设备和后端服务器之间通过网络传输

对于静态数据,请使用适当的解决方案来加密移动应用中生成的文件、二进制文件、字符串、密码和运行时信息。对于传输数据,请使用 TLS/SSL、公钥等来进行加密,以实现信任。

安全地处理会话

现在,用户的注意力持续时间已缩短,因此用户经常在短时间内在多个移动应用之间跳转。为了避免不良用户体验(即会话时间短导致需要重新登录),开发人员允许用户会话持续较长时间。这些会话是通过令牌维护的,当它们的有效时间太长或无意共享时会带来风险。

在对安全要求高的应用(例如网上银行)中,会话管理不当可能会对安全性造成严重破坏。为了更好地处理会话,请将低安全性应用的会话超时设置为一小时,将高风险应用的会话超时设置为 15 分钟。此外,使用支持行业标准方法的标准 Web 访问管理(即 Web SSO)产品,来创建令牌并确保在更改认证期间有效地销毁会话。

遵循最小特权原则

最小特权原则(PoLP)在信息安全中有着广泛的用途。若要遵循这一原则,将会严格限制用户、账号和进程的访问权限在必要的范围内。对于移动应用开发人员,遵循 PoLP 有助于限制用户设备上运行应用所需的权限。

当应用请求的权限超出其运行所需的权限时,恶意人员的攻击面就会扩大,敏感的用户数据会面临额外的风险。若通过遵循 PoLP原则来限制用户权限,开发人员可以从更安全的角度来处理权限,会验证所请求的权限是否恰当,然后才进行开发。

改变测试方法

DevSecOps(开发、安全和运营) 希望让应用安全成为开发生命周期早期的优先事项。然而,这种变革并不容易实现。一个好的开始方法是,把测试方法从定期测试改为连续测试。使用威胁建模和自动化测试不断寻找新的漏洞(它们可能会在不知不觉中使您的应用及其用户面临的网络攻击风险),然后及时修复。

采用加固应用解决方案

加固应用解决方案可有效保护移动应用免受实时攻击。安全性较好的应用,如果在不安全的环境(例如已越狱设备或较旧的操作系统)中运行,也很容易受到损害。加固应用解决方案可以隔离应用与运行环境,并防止各种攻击和威胁。此类解决方案也称为运行时应用自我保护(RASP) 解决方案。它们相对容易实现,并可以节省开发人员的工作时间,即把安全方面的问题改为让安全产品处理;此外,它们也是基于某些行业(如政府应用和银行应用)的需求而产生的,故此类产品非常受欢迎。

结语

开发人员应重视应用安全,将其提升到与其他开发重点(例如创新和用户体验)同等位置。若开始应用上述最佳实践,将会显著提升移动应用的安全性。

安讯奔的各种解决方案,可以帮助开发人员加强移动应用的安全性、实施强认证和会话管理。AccessMatrix IAM 套件和 YESsafe AppProtect+ ,为客户提供优秀的IAM解决方案和应用防护,有效提升认证用户和应用的安全性。

请联系我们以获取更多信息。