跳转到主要内容
Chinese, Simplified

无论你在哪里,人们都在智能手机上。这些设备已成为我们生活中的永久固定装置。我们在智能手机上花费的时间比在桌面上花费的时间多,这使得移动设备成为网络攻击的更大目标。更糟糕的是,我们存储在手机上的大量个人数据以及数据的敏感性使得成功黑客的奖励非常有价值。

智能手机被黑客攻击的最常见方式之一是通过移动应用程序。用户可以从不受信任的来源下载结果是虚假应用的内容。一旦打开手机,应用程序就可以在您意识到其非法性之前访问您的个人信息和数据。判断力差是导致数据被盗的常见原因。

其他时候,代码漏洞和恶意软件应该受到指责。谷歌和苹果都在努力提供安全的移动操作系统。例如,谷歌的Play Protect会扫描用户手机上的可疑应用程序。但移动应用程序不能仅仅依靠谷歌和苹果来保障安全。联邦贸易委员会(FTC)最近的一份报告发现,移动设备只是没有足够频繁地获得他们需要的安全更新和补丁。

移动应用程序中安全漏洞的增加使移动应用程序的安全性成为不容忽视或被抛到一边的东西。现在比以往任何时候都更需要关注。

让我们仔细看看顶级移动应用程序漏洞,以及帮助您提高移动应用程序安全性的十个提示,以便在设计,开发和支持移动应用程序时采取必要的预防措施。

热门移动应用程序漏洞


Open Web Application Security Project(OWASP)发布了十大移动风险列表。该权威列表的最新版本于2016年更新。它可以用作您应该了解的最重要的移动应用程序漏洞的清单。

2016年清单包括:

  1. 平台使用不当 - 未能使用可用的平台安全措施或滥用平台功能。可以通过服务器端的安全编码和配置来防止它。
  2. 不安全的数据存储 - 如果设备丢失或被盗,或者攻击者进入设备,敏感数据很容易访问,这就成了一个问题。可以通过适当的移动应用程序安全测试(通常是威胁建模)来识别应用程序访问的信息,以及API如何处理这些信息。
  3. 不安全的通信 - 移动应用程序传输或交换的数据必须是安全的。您可以采取各种步骤来增强数据交换的安全性,例如加密敏感数据和使用SSL证书。
  4. 不安全的身份验证 - 无需强大的凭据即可轻松访问应用程序(及其数据)。弱密码是不安全身份验证的一个示例。应实施强大的流程,例如多因素身份验证。
  5. 密码学不足 - 更容易检索弱加密的敏感数据。如果绝对必要,您应该只存储敏感数据,并且在加密数据时遵循严格的标准。
  6. 不安全授权 - 授权处理授予用户或由用户授予的权限。某些应用程序未执行足够的检查以确保用户是合法的。不安全的授权使攻击者能够访问应用程序,执行管理功能并造成严重破坏。应根据系统后端的信息而不是设备本身来验证角色和权限,以防止这种情况发生。
  7. 客户端代码质量 - 当移动应用程序代码包含使其受威胁开放的漏洞时,这是一个问题。适当的移动应用安全测试和补救程序可降低代码质量差的风险。
  8. 代码篡改 - 攻击者经常创建一个未经授权的应用程序版本,然后由用户下载并安装在他们的设备上。您的应用必须能够检测到已发生的更改,并将其识别为可能需要解决的违规行为。
  9. 逆向工程 - 攻击者有时可以下载您的应用并研究代码。然后,他们可以窃取专有信息或针对您的应用发起攻击。您可以使用混淆工具来防止此类威胁,这会使您的代码更加模糊,攻击者难以理解。
  10. 无关功能 - 攻击者可能会下载您的应用并查找可能被开发人员遗忘的功能和代码。然后,攻击者可以使用这些未使用的函数获取访问权限,并确定后端系统的工作方式,甚至可以在应用程序中执行未经授权的操作。预防在于彻底的代码审查。

有关这些漏洞的更深入了解以及有关如何防范这些漏洞的更多提示,请直接咨询OWASP资源。

其他需要注意的移动应用程序漏洞有:

  1. 会话到期不足 - 用户退出应用程序后,会话标识符应无效。如果它没有过期,攻击者可以利用此功能访问应用程序并以用户身份登录。预防在于确保您的应用程序具有注销按钮,并且在注销时所有会话都已正确无效。
  2. 弱的服务器端控件 - 您的移动应用程序将访问服务器,无论是您自己的服务器还是第三方系统。这些服务器需要采取适当的安全措施,以防止未经授权的用户访问应用程序及其数据。


提高移动应用安全性的十大提示


您可以采取许多步骤来改善移动应用安全性。这里有十个提示让您朝着正确的方向前进。

1.在开发过程中构建移动应用程序安全性测试。


移动应用程序安全性从第一天开始就需要成为流程的一部分,并且在应用程序的设计,开发和维护过程中始终是优先事项。您应该使用各种应用程序安全测试工具来确保应用程序的全面覆盖。有关不同类型的应用程序漏洞测试软件的更深入了解,请查看我们最近的文章。

应用程序漏洞和关联管理工具可以帮助您了解这些测试工具的结果。使用AVC工具,会自动删除重复项,并且交叉引用结果以确定哪些威胁是最高优先级,应首先解决。

寻找与移动应用程序安全测试工具集成的关联工具,例如专为移动应用程序设计的NowSecure。

2.警惕第三方代码。


使用第三方代码可以节省您的时间和金钱,但您不能认为它始终是安全的。在某些情况下,第三方代码是一个不错的选择,但必须彻底检查漏洞,就像查看开发人员编写的代码一样。你不能也不应该认为它已经得到了适当的审查。

3.采用攻击者的心态。


鼓励您的开发人员和程序员在为您的移动应用程序编写代码时像攻击者一样思考。它容易被剥削吗?

4.创建API安全策略。


API是数据从您的应用程序交换和传输的方式。他们需要安全。以与测试代码相同的方式测试API的漏洞。

5.使用OWASP移动安全项目和移动应用程序安全验证标准。


OWASP移动安全项目是开发人员和安全团队的资源,可帮助开发安全的移动应用程序。在设计,构建和维护移动应用程序时,请定期检查更新和新信息。

移动应用程序安全验证标准为移动应用程序安全性提供了基准。这是一个很好的资源,应该用作指导,帮助您确定您的移动应用程序是否安全。

6.将权限保持在最低限度。


保持应用程序安全的最佳方法之一是只让它访问它真正需要的内容。电话上的联系人,图像和其他数据的每个权限都是攻击者可以利用的另一个进入应用程序的点。

如果您的应用不需要访问给定项目,请不要允许它这样做。您不必要地引发安全问题。

7.戴着白手套处理个人和敏感数据。


不要在您的应用中存储个人或敏感数据。应将其删除或移至安全位置。如果要求存储敏感数据,请遵循正确的加密协议。

8.遵循安全的数据传输程序。


应用程序交换数据,必须安全地完成。可以对数据进行加密以提供安全传输,也可以使用VPN(虚拟专用网络),SSL(安全套接字层)或TLS(传输层安全性)。

9.遵循适当的用户身份验证,授权和用户管理过程。


需要强密码并在需要增加安全性时对其进行加密。会话应在不活动期后注销。在存储敏感数据时,使用更强的身份验证,例如指纹或语音验证。

10.遵守规定的要求。


您的应用可能受某些法规的约束,例如HIPAA。请注意适用于您的规定,并从一开始就解决这些规定。

移动应用程序安全性变得越来越重要,因为人们继续在这些设备上花费更多时间,更具体地说,在移动应用程序中。您需要尽一切力量确保采取所有必要的预防措施并创建安全的移动应用程序。

用户希望内置安全性。未能将此作为优先事项 - 并且随后遭受攻击 - 将导致您的应用程序失败,并且您公司的名称受到损害。使用专家提供的资源和工具来确保您的安全范围是全面的。

原文:https://codedx.com/tips-to-improve-mobile-application-security-code-dx-blog/

本文:

讨论:请加入知识星球或者小红圈【首席架构师圈】

Article
知识星球
 
微信公众号
 
视频号