所有提交的EM系统将被重定向到网上投稿系统.作者被要求将文章直接提交给网上投稿系统各自的日志。

移动代理免受恶意主机攻击的技术综述

Somnath戴伊1以及Devadatta Sinha教授2
  1. 助理教授,计算机科学与工程系,Sabita Devi教育信托-机构的Brainware集团,加尔各答,印度
  2. 印度加尔各答大学计算机科学与工程系教授
有关文章载于Pubmed谷歌学者

更多相关文章请访问国际计算机与通信工程创新研究杂志

摘要

移动代理技术已经成为分布式计算的一种新范式,可以取代传统的客户机-服务器模型。尽管它有许多实际的好处,但它会导致来自恶意代理和恶意主机的重大新安全威胁。许多针对前者的技术已经被开发出来。第二个问题似乎要难得多。我们将重点讨论第二个问题。我们发现,没有一个单一的、全面的解决方案可以为代理提供完全的保护,使其免受恶意主机的攻击。现有的解决方案要么只能检测对代理的攻击,要么在一定程度上防止对代理的攻击。本文对移动代理范式所涉及的主要安全问题进行了比较研究。这些问题包括安全威胁、安全需求和保护移动代理免受恶意主机攻击的技术。

关键字

安全;移动代理;MaliciousHost问题;伪装;拒绝服务;窃听;变更

介绍

在过去的几年中,我们已经看到了分布式和客户机-服务器计算环境的一些根本性变化。这是由于移动代理的出现。移动代理技术作为一种有效地访问计算机网络上远程资源的手段而日益流行。移动代理是在网络中自主地从一个节点迁移到另一个节点以实现用户请求的进程。移动代理由代码、数据和状态组成。代理会带着代码、数据和状态从一个主机迁移到另一个主机。状态信息允许代理从离开前一个主机[1]之前的位置继续执行。
然而,移动代理被广泛接受的主要技术障碍之一是安全性。Sander和Tschudin[2]提出了两种需要解决的安全问题。首先是针对恶意代理的主机保护。二是针对恶意主机的代理保护。针对第一类问题开发了许多技术,如访问控制、密码保护、沙盒等。但第二个问题似乎很难解决。事实上,计算机完全控制所有正在执行的程序。因此,很难保护移动代理免受恶意主机的攻击。
本文的其余部分组织如下:第2节处理恶意主机问题,第3节概述了保持移动代理免受恶意主机攻击的主要解决方案,第4节对不同的解决方案进行了比较分析,最后第5节给出了一些结论。

恶意主机问题

在移动代理系统中,恶意主机被定义为执行代理并试图以某种方式攻击代理的主机。当代理在主机上执行时,它必须使用该主机上的可用资源。主机可以监视代理的内存使用情况以及代理发送给主机的每条指令。然后,恶意主机可能试图以多种方式攻击代理。
恶意主机对移动代理的攻击主要有四种形式:
•一个主机伪装成另一个主机。
•主机拒绝向代理提供服务。
•窃听特工的活动。
•主机更改代理。
答:(伪装
伪装主机可能会试图欺骗代理,使其相信它是另一个主机,并使代理向主机提供敏感信息。一旦伪装主机能够获得代理的信任,如果没有适当的机制来保护这种类型的攻击,它就可以读取或修改代理的任何代码、数据和状态。防止这类攻击的主要解决方案是使用强身份验证协议对主机进行代理身份验证。
B.拒绝服务:
主机可以拒绝代理提供其提供的特定服务。主机有可能有意或无意地拒绝代理提供服务。主机可以拒绝代理服务,使代理无法完成其任务。另一种可能的攻击是主机可以完全终止代理。此外,主机可能会拒绝代理对时间敏感任务的请求,从而使代理无法在分配的时间内完成任务。
c .窃听:
主机对代理的下一个攻击就是窃听。在客户端/服务器环境中,典型的窃听攻击来自对通信通道的监视。在移动代理系统的情况下,恶意主机可能试图确定代理持有的代码、数据或流控制。这种形式的攻击很难预防和发现。
即使对主机隐藏了所有信息,主机仍然可以从代理中推断出一些信息。主要的问题是代理必须在主机上执行,这样主机才能记录代理给它的每条指令。
d .变更:
主机对代理的最后一种攻击形式是更改代理。主机可以通过改变数据、代码和控制流来改变代理。恶意主机可能会试图更改代理的代码,使代理执行创建者意想不到的其他任务。主机也可以尝试更改代理中包含的数据。

移动代理保护技术

保护移动代理的方法可以大致分为两种:
(i)检测机制,以检测未经授权的代码、状态等修改。
防止无法访问或修改代码、状态或数据的机制。
A.可信硬件:
一种解决方案是让受信任的第三方以防篡改设备的形式提供受信任的硬件,这些硬件放置在主机的站点上,可以与代理平台[3]交互。防篡改设备可以是智能卡的形式。这样的可信硬件可以保护代理的完整执行环境,也可以执行某些安全任务。
可信硬件的主要缺点是这种解决方案的成本高。
B.相互行程记录:
相互行程记录是一种在相互支持的安排中允许一个代理人的行程被另一个合作代理人记录和跟踪的通用方案,反之亦然。在代理平台之间移动时,代理通过经过身份验证的通道将上一个平台、当前平台和下一个平台信息传递给合作的对等体。对等端维护行程记录,并在检测到不一致时采取适当的行动。通过注意,代理可以避免同伴已经访问过的平台。该方案背后的基本原理是基于这样一个假设:只有少数代理平台是恶意的,并且即使代理遇到了一个恶意平台,该平台也不太可能与peer正在访问的另一个恶意平台协作。因此,通过在两个代理之间划分应用程序的操作,可以检测到代理平台的某些恶意行为。该方案可以推广到两个以上的合作代理。对于某些应用程序,还可以让其中一个代理在主平台上保持静态。由于路径记录是在代理级别上维护的,因此可以将该技术合并到任何适当的应用程序中。
这种技术的缺点包括设置经过身份验证的通道的成本,以及如果代理被杀死,对等端无法确定两个平台中哪一个应该负责。
C.行程记录复制投票:
有故障的代理平台的行为可能与恶意代理平台类似。因此,在此环境中应用容错功能应该有助于对抗恶意平台的影响。其中一种确保移动代理安全到达目的地的技术是通过使用复制和投票[5]。其思想是,使用代理的多个副本来执行计算,而不是使用代理的单个副本。尽管恶意平台可能破坏代理的一些副本,但足够多的副本避免了这种遭遇以成功完成计算。
这种方法适用于可以毫无问题地复制代理并且主要考虑可生存性的情况。缺点是复制的代理会消耗额外的资源,消息的复杂性也会增加。
D.加密函数计算:
使用加密函数计算[2]的目标是确定一种方法,使移动代码可以安全地计算加密原语,例如数字签名,即使代码是在不受信任的计算环境中执行的,并且在不与主平台交互的情况下自主运行。该方法是让代理平台执行包含加密函数的程序,而不能够识别原始函数;这种方法需要区分函数和实现函数的程序。从本质上讲,作者要解决的问题是:
Agent的程序计算某个函数f,主机愿意为Agent计算f(x),但Agent不希望主机了解任何关于f的实质性内容。提出的协议以如下方式工作,其中E是某个加密函数:
•代理的所有者加密f。
•所有者创建一个程序P(E(f)),该程序实现E(f)并将其放入代理中。
•代理前往远程主机,在那里计算P(E(f))(x),然后返回家园。
•所有者解密P(E(f))(x),得到f(x)。
这种技术的安全强度与加密功能的强度成正比。它最适用于对安全性要求较高的应用领域。
缺点是这种技术不能防止拒绝服务、重放、实验提取和其他形式的针对代理的攻击。
E.部分结果封装:
部分结果封装(PRE)是一种检测技术,旨在发现代理在不同平台上执行时存在的任何可能的安全漏洞。PRE用于将代理在每个访问的平台上执行的结果封装在其运行路径中。稍后将使用封装的信息来验证代理是否受到恶意平台的攻击。验证过程可以在代理返回其母平台时完成,也可以在其行程中的某些中间点完成。
PRE技术有不同的实现。在某些场景中,代理本身执行封装,而在其他场景中由平台执行封装。为了满足代理的完整性、可问责性和隐私性等基本安全需求,PRE使用了不同的加密原语,如加密、数字签名、身份验证码和哈希函数。
为了确保结果的机密性,代理使用其发起者的公钥对结果进行加密,生成小段密文,然后在代理的主平台上使用相应的私钥解密这些密文。这是PRE的一个场景,代理本身执行封装过程。代理使用由Young和Yung[6]建议的一种称为滑动加密的特殊加密实现。滑动加密在较大的块中加密少量数据,从而获得小段密文。特别适用于存储空间要求较高的应用,如智能卡[7]。
Yee[8]建议使用“部分结果验证代码”(PRAC),代理同样对结果进行封装。但是,代理的发起者在启动代理之前也通过向代理提供密钥列表来参与该场景。对于代理人行程中的每个访问平台,都有一个相关的密钥。当代理在其行程中的某个平台上完成执行时,它将其执行结果总结为发送给主平台的消息,该消息可以立即发送,也可以稍后发送。为了生成PRAC,代理使用当前平台的相关秘密密钥来计算消息验证码(MAC), MAC与消息一起封装以生成PRAC。需要注意的是,代理在迁移到下一个平台之前会删除当前访问的平台上使用的密钥。销毁密钥可以确保封装结果的“向前完整性”。向前完整性[8]保证将来访问的任何平台都不能修改以前访问的平台的任何结果,因为没有秘密密钥来计算这些结果的PRAC。只有代理的发起者拥有所有使用的密钥的副本,因此可以验证封装的结果。结果验证使发起者能够检测对代理结果的任何修改(篡改)。 Yee [8] suggested that the results could also be encrypted using the originator’s public key, in order to guarantee both privacy and integrity.
Karjoth等[9]提出了一种“强向前完整性”,它还要求被访问的平台以后不能修改自己的结果。Karjoth等人的方法依赖于被访问的平台来完成封装过程,而不是由代理来完成。访问的平台使用发起者的公钥对代理的结果进行加密,以确保结果的保密性。然后被访问的平台使用其私钥与哈希链一起对加密结果进行数字签名。散列链将来自前一个平台的结果与要访问的下一个平台的标识链接起来。这可以防止平台更改其结果,从而确保强大的向前完整性[9]。
PRAC技术有一些局限性。其中最严重的情况发生在恶意平台保留代理的原始密钥或密钥生成函数的副本时。如果智能体重新访问该平台或访问与之密谋的另一个平台,则可以在不被检测到的情况下修改之前的部分结果条目或一系列条目。由于PRAC面向的是完整性而不是保密性,因此任何访问的平台都可以查看累积的部分结果集,尽管这可以通过应用滑动密钥或其他形式的加密轻松解决。
F.环境密钥生成:
环境密钥生成[10]描述了当某些环境条件为真时允许代理执行预定义操作的方案。该方法的核心是构造代理,在遇到环境条件时(例如搜索中的字符串匹配)生成一个密钥,用于以加密方式解锁一些可执行代码。环境条件通过环境触发器的单向哈希或公钥加密来隐藏。该技术确保代理的平台或观察者不能通过直接读取代理的代码来发现触发消息或响应操作。这个过程有点类似于现代操作系统中维护密码的方式,并用于确定登录尝试是否有效。
这种方法的一个缺点是,完全控制代理的平台可以简单地修改代理,以便在收到触发器时打印出可执行代码,而不是执行它。另一个缺点是代理平台通常限制代理执行动态创建的代码的能力,因为它被认为是一种不安全的操作。代理的作者可以将该技术与其他保护机制一起应用于适当平台上的特定应用程序。
执行跟踪[11]是一种通过在每个代理平台上执行代理期间忠实地记录代理的行为来检测对代理的未经授权的修改的技术。该技术要求所涉及的每个平台创建并保留代理驻留时执行的操作的不可否认的日志或跟踪,并在得出结论时提交跟踪的加密散列作为跟踪摘要或指纹。跟踪由语句标识符和平台签名信息序列组成。只有那些依赖于平台维护的计算环境的交互的指令才需要平台的签名。对于仅依赖于内部变量值的指令,不需要签名,因此省略。该技术还定义了一个安全协议,用于在涉及的各方之间传递代理和相关的安全相关信息,其中可能包括一个可信任的第三方,以保留代理整个行程的跟踪摘要序列。如果出现任何可疑的结果,则可以获得和验证适当的跟踪和跟踪摘要,并识别出恶意主机。
这种技术有许多缺点,最明显的是要保留的日志的大小和数量,以及偶尔根据可疑的结果或其他因素触发检测过程。发现的其他问题包括缺乏适应多线程代理和动态优化技术。虽然该技术的目标是保护代理,但该技术确实为代理平台提供了一些保护,即平台还可以从相关各方获得相关的跟踪摘要和跟踪。
H.模糊代码(限时黑匣子):
混淆是一种技术,移动代码生产者在将代码发送到不同平台上运行之前,通过对代码应用行为保留转换来强制执行安全策略,这些平台在不同程度上是受信任的[12][13]。混淆的目的是保护代码不被宿主分析和理解。因此,主机不应该能够修改移动代码的行为或暴露隐藏在代码中的敏感信息,如密钥、信用卡号码等。通常,用于生成模糊代码的转换过程旨在使模糊代码难以被恶意方理解或分析。有不同的有用的模糊变换[14]-[17]。布局混淆试图删除或修改代码中的某些信息,例如注释和调试信息,而不影响代码的可执行部分。数据混淆集中于混淆代码中的数据和数据结构,而不修改代码本身。
Hohl[18]建议使用混淆技术来获得一个有时间限制的黑盒代理,可以在恶意平台上安全执行一段时间,但不是永远。D 'Anna等[12]指出,通过逆向工程,混淆可以延迟但不能阻止对代理的攻击。他们还认为,攻击者拥有足够的计算资源,比如足够的时间,总是可以消除代码的混淆。Barak等人[19]研究了混淆技术的理论极限,并表明在一般情况下实现完全安全的混淆是不可能的。除了保护移动代理,混淆还可以用于其他应用,如保护数字水印、执行软件许可和保护协议免受欺骗[12][14]。就性能而言,一些混淆技术减少了代码的大小,从而加快了其执行速度,而其他技术则实现了相反的效果(控件混淆)[15]。混淆被认为可以抵抗模拟和拒绝服务攻击[14]。
这种技术灵活而且便宜。根据安全性的需要,可以对应用程序进行相应的混淆。在这种技术中,有可能为一个软件应用程序创建不同的实例来对抗全局攻击。由于转换过程的自动化和与系统的兼容性,它具有低维护成本。该技术与平台无关。这种技术有许多缺点,例如每次转换都会引入额外的内存成本和执行模糊化程序所需的计算时间。模糊处理不能提供防水安全性。大多数代码转换都不是一种方式,很难决定在哪里使用哪种转换。

比较分析

现有的保护移动代理免受恶意主机攻击的方法使用了不同的机制,无论是针对不同目标的预防还是检测。这里的目标是网络安全需求。所有的解决方案都有一定的局限性,因为没有一个解决方案能实现所有的目标。下表总结了保护移动代理的方法的比较分析。

结论

传统的网络管理方法基于客户-服务器模式,存在网络延迟、可扩展性差、信息瓶颈、管理器处理负载过大、网络带宽占用过大等问题。移动代理技术在网络带宽利用率、网络负载显著降低等方面得到了改善。
本文概述了针对恶意主机攻击的移动代理安全技术。其中一些技术还停留在理论层面,尚未广泛应用于实践。现有的技术都不能为所有场景提供最佳解决方案。然而,各种技术的组合可能产生强大的解决方案。
针对恶意主机的移动代码保护仍然是一个开放的研究课题。可以观察到,非加密技术通常不足以强有力地保护移动代码。但另一方面,密码技术速度慢,计算成本高。因此,我们需要选择一种均衡的方法来实现安全、高速的终端应用。

表格一览

表的图标
表1

参考文献




















全球科技峰会