安全的移动应用的开发外文翻译资料

 2023-02-27 09:16:54

外文翻译

物联网工程1202 梁滢

目录

安全的移动应用的开发

Jeffery Payne,Coveros

移动应用程序是为寻求确保自己的商业产品和IT服务的安全的组织们的一场完美风暴。不仅在移动世界当前面临的网络安全挑战,也是传统的“胖客户机”从几十年前就忧虑的安全问题。更加糟糕的是,每个移动平台都有减少确切的安全控制的影响的意图,所以令其难以达到跨平台的应用程序安全。

移动安全挑战

移动安全挑战源于产品和服务提供移动应用程序和接口服务的相关的威胁模型的变化。威胁模型是一个系统的攻击面的描绘,对可能的威胁和可能成为目标的关键资产的注解。威胁建模是分析威胁信息,确定哪些攻击向量的威胁可能破坏系统,并建立适当的安全控制,以保护关键资产的过程。

相关的安全风险和问题依赖于移动设备应用程序的体系结构。例如,一个只提供前端到组织的网站的移动应用使用胖客户机的网上银行应用交易敏感财务数据,将有不同的安全问题和挑战。

一般情况下,移动应用程序具有与传统Web应用程序不同的威胁模型。

更改攻击简介

因为它们的广泛可获得性,Web和移动应用面临来自各种方向的攻击:恶意的移动用户,第三方应用程序和用户追求直接访问后端系统。然而,对于移动应用程序,这种攻击有成功的机会更大。

恶意用户。移动设备经常丢失或被盗,使得恶意用户更容易获得用户的私人数据和关键的应用程序凭据。不正确地管理会话或提供本地机制来记住用户ID和密码的移动应用程序很容易被泄露。例如,移动应用程序经常很长一段时间地打开会话,使移动用户可以无缝地将应用带到前台。不关闭定期打开的会话增加了恶意用户可以获取对关键数据和应用的未授权访问的可能性。

此外,仅仅依靠设备的安全性,如自动锁和密码或PIN保护的依托是不够的,因为一旦该设备在手这些机制很容易被绕过。恶意用户可以在大多数移动设备上执行“生根”或“越狱”,以规避系统级的安全机制。

恶意的第三方应用程序。移动平台都更容易受到由于下载和运行从移动应用程序商店获得的恶意应用程序。使网络安全的最佳做法是禁止下载和执行不受信任的第三方来的任何内容。不幸的是,这种模式将不会为必须驻留在移动装置上的应用程序的工作。

为了确保这些应用,移动设备平台将它们放置在一个应用程序沙箱,这限制了它们与其他应用程序或访问未经授权的资源进行交互的能力。在需要的时候每个平台有让移动应用不同的机制进行通信和共享数据。如果这些机制都不能正常使用,可能是没有设置应用程序配置或是权限正确的安全漏洞,或者是你的应用程序不保证其数据。

恶意访问到后端系统。在Web应用程序中的一个常见的攻击是规避前端,并试图获得一个后端系统的授权访问。移动应用程序很容易受到这些相同类型的攻击,但他们往往提供攻击者额外的后端系统的信息,帮助他们击破安全。

例如,一个恶意用户可能会购买你的网上银行应用程序,反编译代码,并查出行政登录页面和表单的位置和权限。这些信息对于试图直接访问管理员登录页面并绕过安全性非常有用。

流体信任边界

信任边界是一个系统的体系结构内的各种信任级别(不可信用户,普通用户,应用程序管理员,等等)之间的描绘。威胁建模过程的一部分是确定信任边界和它们之间的信息流。了解信任边界可以让开发人员妥善保护这些关键信息和验证用户在系统中的各个部分。安全发展的原则声明用户不应该被给予比他们需要行使的操作更大的信任。由于各种原因,移动应用程序通常具有比其他系统更多的流体信任边界。

信任不可信的应用程序。移动设备模糊信任边界,因为信任和不信任的应用程序生存在同一个设备上,并且经常进行互动。从安全角度来看,第三方应用必须考虑不信任性;然而,通常必须给这些应用一定程度的信任,就像为他们做广告。例如,网络游戏可能会要求获得短信服务,以便它可以在游戏过程中向您发送通知。这似乎是一个合理的要求,但如果应用程序是恶意的,它可以很容易滥用这种能力,使得短信淹没你的手机。

访问敏感数据。不同于移动Web应用程序,尽可能多将敏感数据保留在后端,移动应用程序的客户端经常需要对移动平台上的敏感数据进行操作。如果移动应用程序不精心设计,敏感信息可能被破坏,或未经授权的用户可能能够执行交易。移动平台使用不同的方法来保护本地存储的应用程序数据。不管使用哪种方法,当一个应用程序进行删除操作本地数据并不总是物理删除。移动装置通常使用用于本地的存储闪速存储器(诸如NAND存储器),因为它可以被快速地存取。由于NAND存储器块变得不可操作之前可擦除的次数有限制,移动设备不经常物理删除数据。这提供了恶意用户和应用程序访问敏感信息的机会,因此应用程序开发人员的想法是数据是不再存于设备上。

移动平台细微差别

每个移动平台都有自己的方法去做文件管理,存储管理,应用程序配置,应用安全,网络,等等。这使得它更加困难,不仅确保您的应用程序,而且保护他们跨多种平台的安全。

例如,Android使用Linux样式文件权限,每一个应用程序除非给出明确许可,无法访问其他应用程序的文件。然而,Android还支持从外部存储设备读取和写入文件。默认情况下,写入这样的设备的文件具有全局读取和写入权限,并且可以被知道去何处访问的应用程序访问。不理解这种安全的细微差别可能会导致敏感数据的未授权访问。

构建安全的移动应用

即使有显著的挑战构建安全的移动应用程序,有一些方法可以减轻这些风险。在这里,我讨论一些与安全移动开发相关的最佳实践。十大移动风险清单是由开放Web应用安全项目(OWASP)维护,其中包含开发商如何保护他们的移动应用免受攻击——https://www.owasp.org/index.php/OWASP_Mobile_ Security_Project。该信息还包括具体的针对iOS(苹果)和Android(谷歌)构建应用程序时的建议。

保留系统的后端的所有敏感信息,并安全地传输和有需要才显示。

不要存储敏感数据

数据局部虽然可能使你的整体结构复杂化,太多的风险与存储在移动设备上的敏感数据相关。保留系统的后端所有的敏感信息,并只安全地传送和显示有你所需要的。不要保存任何信息到一个文件,因为删除它并不意味着其他人不能再访问它。

此外,许多应用程序移动设备移动到背景时捕捉截图(允许更快的屏幕刷新,当应用程序被带到前面再次),所以最好尽可能少的在屏幕上显示敏感信息。删除后捕获的屏幕快照将继续存在,并可能泄露敏感信息给那些访问它们的人。处理敏感数据时要确保这些数据在内存中不存在信息缓存。如果你的应用必须在本地存储敏感信息,您的移动设备要使用强大的加密库,包括密钥推导函数与用户密码加密的主密钥(或钥匙链)。密码短语通常是短暂的,所以这种方法可能容易受到暴力攻击,除非你选择一个迭代足以消耗的CPU时间显著量的密钥导出函数。如果你的系统有一个后端,有维持的主密钥。不要使用外部存储任何敏感数据。确保权限设置使得只有您的应用程序可以访问其本地存储。

关闭空闲会话

移动应用程序的会话活动通常会长于Web应用程序做,未经授权的用户或应用程序增加恶意行为的风险。这样做是为了方便移动用户,这样他们就不必重新进行身份验证,不断使用的应用程序。一个会话处于活动状态的时间越长,就越有可能攻击者可以执行会话劫持,一种方法来窃取会话ID,成为一个合法的用户——因此会话时间应限制。一般情况下,没有空闲会话关闭之前应该允许它维持超过五分钟。

不要相信客户端

由于恶意用户和移动设备上的恶意的第三方应用程序的增强威胁,服务器端逻辑不应该假定客户端应用程序是合法的。使用普通的服务器端安全的做法在移动应用环境,就像你如果与网络上的一个未知的用户交互。一些建议包括以下内容:

bull;禁用加密较低水平(出口级),所以没有应用程序被允许使用安全性较低的传输机制的服务器进行通信,

bull;验证从客户端收到的所有投入,

bull;禁用详细错误和消息,

bull;在任何时候返回最小的服务器响应,

bull;更改信息都保存在那里所有的默认目录,并且

bull;给无效的用户名或密码请求的标准响应。

不要忘了本机代码

大多数移动平台支持的本机代码应用程序的创建,让代码易受传统的攻击,如栈缓冲区溢出,内存损坏,堆溢出和比赛条件语言编写。幸运的是,手机平台都支持地址空间布局随机化(ASLR),随机保留各种类型的信息。由于溢出和内存损坏漏洞通常需要了解系统信息的顺序来执行他们的攻击,ASLR大大降低了这些特定类型的漏洞的有效性。请确保您的应用程序都建有ASLR启用。

除了ASLR,对于给定的语言等传统漏洞可能仍然被利用。代码收入和码扫描应该被用来在识别代码级漏洞和发行之前消灭。

了解你的平台

只当你理解移动平台部署如何运作时移动应用程序是安全的。构建应用程序之前,你需要了解过去的平台已经确定的漏洞,并确保你有安装了最新版本的操作系统。

你也应该学会应用数据的存储方式,它是如何保护访问,它何时再物理设备中被删除。现在一些移动平台的应用程序在必要时提供物理删除敏感数据的功能。要知道这样做会使存储块不可用一段时间。

你还需要了解应用程序的默认配置,手机浏览器和应用程序通信的权限,这样就可以很好地保护你的应用程序。

此外,你应该学会如何以及何时信息缓存,键盘上的按键会被记录,截屏保存。一般情况下,你会想对敏感信息的操作时,禁止所有这些功能。

最后,你需要了解你的应用程序使用的库如何加载并运行。在编译时静态链接您的应用程序,以避免恶意用户或应用程序在运行时加载一个恶意的东西代替原合法库的可能性。

参考

  1. 苹果.iOS的安全性.2012年5月.http:// images.apple.com/ipad/business/ docs/iOS_Security_May12.pdf.
  2. W. Enck, M. Ongtang, and P. McDaniel.了解Android的安全性.IEEE安全与隐私,Jan./Feb. 2009, pp. 50–57.

Jeffery Payne是专门从事安全软件开发的软件公司Coveros的首席执行官。他的研究兴趣包括移动应用安全,恶意代码分析,持续集成,自动化测试,敏捷开发方法,以及安全软件的开发。通过jeff.payne@ coveros.com与他联系。

Secure Mobile Application Development

Jeffery Payne, Coveros

Mobile applications are a perfect storm for organizations seeking to ensure the security of their commercial products and IT services. Not only are current Web security challenges relevant in the mobile world, but so are the traditional “fat client” security concerns from decades ago. To make matters worse, each mobile platform has nuances that reduce the effectiveness of certain security controls and make it difficult to attain cross-platform application security.

Mobile Security Challenges

Mobile security challenges stem from change in the threat model associated with the products and services providing mobile applications and interfaces. A threat model is a depiction of a systemrsquo;s attack surface, annotated with possible threats and the ways in which critical assets might be targeted

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[146956],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。