Nested Java processes: OS structure for mobile code

Patrick Tullmann, Jay Lepreau
{"title":"Nested Java processes: OS structure for mobile code","authors":"Patrick Tullmann, Jay Lepreau","doi":"10.1145/319195.319212","DOIUrl":null,"url":null,"abstract":"The majority of work on protection in single-language mobile code environments focuses on information security issues and depends on the language environment for solutions to the problems of resource management and process isolation. We believe that what is needed in these environments are not ad-hoc or incremental changes but a coherent approach to security, failure isolation, and resource management. Protection, separation, and control of the resources used by mutually untrusting components, applets, applications, or agents are exactly the same problems faced by multi-user operating systems. We believe that real solutions will come only if an OS model is uniformly applied to these environments. We present Alta, our prototype Java-based system patterned on Fluke, a highly structured, hardware-based OS, and report on its features appropriate to mobile code. 1 Operating System Model Required In the last European SIGOPS Workshop, our paper [17] argued that the local operating system is an essential foundation for global applications. We described the many demands that a reasonably well functioning distributed system places on the local OS, and particularly emphasized end-system security in the widespread presence of mobile code. The focus of that paper was on making the case for the importance of the local OS, and outlining an appropriate OS for that environment: the Fluke [10] operating system, an OS based on a recursive virtual machine model, analogous to the Cambridge CAP Computer [30], but implemented by a microkernel instead of special hardware. In this paper we assume that the importance of the local This research was supported in part by the Defense Advanced Research Projects Agency, monitored by the Department of the Army under contract number DABT63–94–C–0058, and the Air Force Research Laboratory, Rome Research Site, USAF, under agreement number F30602–96–2–0269. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation hereon. OS to distributed applications is evident. From that base, we endeavor to make four points concerning platforms for mixed trust components and mobile code: (i) A coherent, structured approach is required, driven by a full-blown OS model; language-level patches are not enough. (ii) Existing security-oriented approaches fall short in resource management. (iii) Applying an OS model is feasible, based upon our initial experiences with Alta. (iv) Alta provides features useful for mobile code, including hierarchical resource management and flexible object sharing. 1.1 Application Scenario In 1997 MCI developed and distributed its Denial of Service Tracker (DoSTracker) [19], after getting their router vendor to add the required interfaces and code to the routers. DoSTracker works as follows. Many denial of service attacks involve generating packets that spoof the IP address of the victim’s host. For example, fabricating broadcast packets will generate a storm of replies to the “sender.” When a customer reports an attack on a particular host, their ISP runs DoSTracker on a machine connected to the victim’s router, giving it the victim’s IP address. DoSTracker hops from router to router, following spoofed broadcast packets “upstream” to the actual source. Problems arise when the path leads into another Internet carrier’s hosts—a different administrative and technical domain—whose routers may well not support the required interfaces. Similar hard to predict problems arise constantly in network management, and solutions are difficult to deploy quickly, and almost impossible to standardize. A first step to providing network administrators with a solution to these problems might let them run mobile programs on the routers. This, of course, is one example of an active network [28]. One need not commit to the aggressive vision of active networks—code in any packet—to appreciate the value of supporting mobile code in routers. Network management is an application domain that could greatly profit from mobile code and dynamic composition of mobile components. However, along with the solutions proffered by mobile code there must be strong security guarantees and flexible, hierarchical resource management. Consider the following realistic Internet-wide scenario of hierarchical trust and proportional share resource management. MCI reserves 80% of the resources in each of its routers for “real work” (i.e., forwarding packets). The other 20% is available on demand for management functions (such as DoSTracker), mobile code, or agents. 50% of that (i.e., 10% of the total) is reserved for MCI’s own management routines, with the rest available to its customers. However, all customers are not equal, so MCI allocates 50% of that 10% to the 20-odd long-haul Internet carriers, such as Digex1 or AT&T, and the other 50% to other customers (e.g., ISPs). The 5% allocated to the long-haul Internet carriers could again be split up equally among the carriers—effectively each internet carrier owns a modest 0:25% of every other carrier’s available bandwidth. Digex manages its portion (on any carrier), allocating half to trusted (to Digex) requests from its own network management, and the other half to Digex customers. See Figure 1. Clearly, a hierarchical, extensible resource management model would provide the ability to recursively refine system allocation. Additionally, a stringent security infrastructure to authenticate and manage the mobile agents in such a system is required. Relative Processor Allocation Forwarding Managment","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"21 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"52","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/319195.319212","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 52

Abstract

The majority of work on protection in single-language mobile code environments focuses on information security issues and depends on the language environment for solutions to the problems of resource management and process isolation. We believe that what is needed in these environments are not ad-hoc or incremental changes but a coherent approach to security, failure isolation, and resource management. Protection, separation, and control of the resources used by mutually untrusting components, applets, applications, or agents are exactly the same problems faced by multi-user operating systems. We believe that real solutions will come only if an OS model is uniformly applied to these environments. We present Alta, our prototype Java-based system patterned on Fluke, a highly structured, hardware-based OS, and report on its features appropriate to mobile code. 1 Operating System Model Required In the last European SIGOPS Workshop, our paper [17] argued that the local operating system is an essential foundation for global applications. We described the many demands that a reasonably well functioning distributed system places on the local OS, and particularly emphasized end-system security in the widespread presence of mobile code. The focus of that paper was on making the case for the importance of the local OS, and outlining an appropriate OS for that environment: the Fluke [10] operating system, an OS based on a recursive virtual machine model, analogous to the Cambridge CAP Computer [30], but implemented by a microkernel instead of special hardware. In this paper we assume that the importance of the local This research was supported in part by the Defense Advanced Research Projects Agency, monitored by the Department of the Army under contract number DABT63–94–C–0058, and the Air Force Research Laboratory, Rome Research Site, USAF, under agreement number F30602–96–2–0269. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation hereon. OS to distributed applications is evident. From that base, we endeavor to make four points concerning platforms for mixed trust components and mobile code: (i) A coherent, structured approach is required, driven by a full-blown OS model; language-level patches are not enough. (ii) Existing security-oriented approaches fall short in resource management. (iii) Applying an OS model is feasible, based upon our initial experiences with Alta. (iv) Alta provides features useful for mobile code, including hierarchical resource management and flexible object sharing. 1.1 Application Scenario In 1997 MCI developed and distributed its Denial of Service Tracker (DoSTracker) [19], after getting their router vendor to add the required interfaces and code to the routers. DoSTracker works as follows. Many denial of service attacks involve generating packets that spoof the IP address of the victim’s host. For example, fabricating broadcast packets will generate a storm of replies to the “sender.” When a customer reports an attack on a particular host, their ISP runs DoSTracker on a machine connected to the victim’s router, giving it the victim’s IP address. DoSTracker hops from router to router, following spoofed broadcast packets “upstream” to the actual source. Problems arise when the path leads into another Internet carrier’s hosts—a different administrative and technical domain—whose routers may well not support the required interfaces. Similar hard to predict problems arise constantly in network management, and solutions are difficult to deploy quickly, and almost impossible to standardize. A first step to providing network administrators with a solution to these problems might let them run mobile programs on the routers. This, of course, is one example of an active network [28]. One need not commit to the aggressive vision of active networks—code in any packet—to appreciate the value of supporting mobile code in routers. Network management is an application domain that could greatly profit from mobile code and dynamic composition of mobile components. However, along with the solutions proffered by mobile code there must be strong security guarantees and flexible, hierarchical resource management. Consider the following realistic Internet-wide scenario of hierarchical trust and proportional share resource management. MCI reserves 80% of the resources in each of its routers for “real work” (i.e., forwarding packets). The other 20% is available on demand for management functions (such as DoSTracker), mobile code, or agents. 50% of that (i.e., 10% of the total) is reserved for MCI’s own management routines, with the rest available to its customers. However, all customers are not equal, so MCI allocates 50% of that 10% to the 20-odd long-haul Internet carriers, such as Digex1 or AT&T, and the other 50% to other customers (e.g., ISPs). The 5% allocated to the long-haul Internet carriers could again be split up equally among the carriers—effectively each internet carrier owns a modest 0:25% of every other carrier’s available bandwidth. Digex manages its portion (on any carrier), allocating half to trusted (to Digex) requests from its own network management, and the other half to Digex customers. See Figure 1. Clearly, a hierarchical, extensible resource management model would provide the ability to recursively refine system allocation. Additionally, a stringent security infrastructure to authenticate and manage the mobile agents in such a system is required. Relative Processor Allocation Forwarding Managment
嵌套Java进程:移动代码的操作系统结构
在单语言移动代码环境中进行保护的大部分工作侧重于信息安全问题,并依赖于语言环境来解决资源管理和进程隔离问题。我们认为,在这些环境中需要的不是临时的或增量的更改,而是安全、故障隔离和资源管理的一致方法。相互不信任的组件、小程序、应用程序或代理所使用的资源的保护、分离和控制与多用户操作系统所面临的问题完全相同。我们相信,只有将操作系统模型统一应用于这些环境,才会出现真正的解决方案。我们展示了Alta,这是基于Fluke(一个高度结构化、基于硬件的操作系统)的基于java的原型系统,并报告了它适合移动代码的特性。在上一届欧洲SIGOPS研讨会上,我们的论文[17]认为本地操作系统是全球应用的必要基础。我们描述了一个运行良好的分布式系统对本地操作系统的许多要求,并特别强调了移动代码广泛存在的终端系统安全性。那篇论文的重点是说明本地操作系统的重要性,并概述了适合该环境的操作系统:Fluke[10]操作系统,基于递归虚拟机模型的操作系统,类似于剑桥CAP计算机[30],但由微内核而不是特殊硬件实现。该研究得到了美国国防部高级研究计划局的部分支持,由美国陆军监督,合同编号为DABT63-94-C-0058,美国空军罗马研究基地空军研究实验室,协议编号为F30602-96-2-0269。美国政府有权为政府目的复制和分发重印本,尽管此处有任何版权注释。操作系统对分布式应用程序的影响是显而易见的。在此基础上,我们努力提出关于混合信任组件和移动代码平台的四点:(i)需要一种连贯的、结构化的方法,由成熟的操作系统模型驱动;语言级别的补丁是不够的。现有面向安全的办法在资源管理方面不足。(iii)根据我们对Alta的初步经验,应用OS模型是可行的。(iv) Alta提供了对移动代码有用的功能,包括分层资源管理和灵活的对象共享。1.1应用场景1997年,MCI在获得路由器供应商的支持后,开发并发布了拒绝服务跟踪器(DoSTracker)[19]。DoSTracker的工作原理如下。许多拒绝服务攻击涉及生成欺骗受害者主机IP地址的数据包。例如,制作广播数据包将生成对“发送者”的大量回复。当客户报告对特定主机的攻击时,他们的ISP会在连接到受害者路由器的机器上运行DoSTracker,并将受害者的IP地址提供给它。DoSTracker从一个路由器跳到另一个路由器,跟随被欺骗的广播数据包“上游”到实际的源。当这条路径通向另一家互联网运营商的主机——一个不同的管理和技术领域——其路由器很可能不支持所需的接口时,问题就出现了。类似的难以预测的问题在网络管理中不断出现,解决方案很难快速部署,而且几乎不可能标准化。为网络管理员提供这些问题的解决方案的第一步可能是让他们在路由器上运行移动程序。当然,这是主动网络的一个例子[28]。人们不需要对活动网络(任何数据包中的代码)抱有激进的看法,就能理解在路由器中支持移动代码的价值。网络管理是一个应用领域,可以从移动代码和移动组件的动态组合中获得巨大收益。然而,除了移动代码提供的解决方案外,还必须有强大的安全性保证和灵活的分层资源管理。考虑以下现实的internet范围的分层信任和比例共享资源管理场景。MCI在每个路由器中保留80%的资源用于“实际工作”(即转发数据包)。剩下的20%则可根据需要用于管理功能(如DoSTracker)、移动代码或座席。其中的50%(即总额的10%)留给MCI自己的管理程序,其余的提供给其客户。然而,并非所有客户都是平等的,因此MCI将这10%的50%分配给20多个长途互联网运营商,如Digex1或AT&T,另外50%分配给其他客户(如isp)。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信