skip to main content
article

Ad hoc extensibility and access control

Published:01 July 2006Publication History
Skip Abstract Section

Abstract

General-purpose, commercial software platforms are increasingly used as system building blocks, even for dependable systems. One reason for their generality, usefulness, and popular adoption is that these software platforms can evolve through ad hoc extensions: behavior tweaks outside the scope of supported platform interfaces. Unfortunately, such use of internal platform implementation details is fundamentally incompatible with security and reliability. Even so, platforms that exclude ad hoc extensions---for instance, by enforcing full isolation and strict interfaces---will, most likely, either have their security enforcement circumvented or be relegated to a niche market. In this paper, we identify ad hoc extensions as well as the economic and technical factors surrounding their existence. Subsequently, we propose the enforcement of novel access-control policies for reconciling ad hoc extensibility with security and reliability.

References

  1. R. Anderson. Security Engineering: A Guide to Building Dependable Distributed Systems. Wiley, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Barnett, K. Leino, and W. Schulte. The Spec# programming system. In Proc. CASSIS'04, 2004.]]Google ScholarGoogle Scholar
  3. M. Barnett and W. Schulte. Runtime verification of .NET contracts. J. Syst. Softw., 65(3), 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. Bershad, S. Savage, P. Pardyak, E. Sirer, M. Fiuczynski, D. Becker, C. Chambers, and S. Eggers. Extensibility, safety and performance in the SPIN operating system. In Proc. SOSP'95, 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Chen, E. Kiciman, A. Accardi, A. Fox, and E. Brewer. Using runtime paths for macroanalysis. In Proc. HotOS'03, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Citrix Systems, Inc. Citrix Terminal Services. http://www.citrix.com/.]]Google ScholarGoogle Scholar
  7. Citrix Systems, Inc. GoToMyPC. http://gotomypc.com/.]]Google ScholarGoogle Scholar
  8. J. Cooper. Special Edition Using MS-DOS 6.22. Que, 3 edition, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. DaggerWare. HackMaster 0.9 for the original Palm Pilot. http://www.palmblvd.com/software/pc/HackMaster-1999-02-21-palm-pc.html.]]Google ScholarGoogle Scholar
  10. R. Daley and J. Dennis. Virtual memory, processes, and sharing in MULTICS. Commun. ACM, 11(5), 1968.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Efstathopoulos, M. Krohn, S. VanDeBogart, C. Frey, D. Ziegler, E. Kohler, D. Mazieres, and M. K. R. Morris. Labels and event processes in the Asbestos operating system. In Proc. SOSP'05, 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Ú. Erlingsson, T. Roeder, and T. Wobber. Virtual environments for unreliable extensions. Technical Report MSR-TR-2005-82, Microsoft Research, 2005.]]Google ScholarGoogle Scholar
  13. Ú. Erlingsson and F. Schneider. IRM enforcement of Java stack inspection. In Proc. of 2000 IEEE Symposium on Security and Privacy, May 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. Flanagan, K. Leino, M. Lillibridge, G. Nelson, J. Saxe, and R. Stata. Extended static checking for Java. In Proc. PLDI'02, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. L. Gong. Inside Java 2 Platform Security: Architecture, API Design, and Implementation. Addison-Wesley, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Google, Inc. Google Toolbar. http://toolbar.google.com/.]]Google ScholarGoogle Scholar
  17. G. Hoglund and J. Butler. Rootkits: Subverting the Windows Kernel. Addison-Wesley Professional, 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. G. Hunt and D. Brubacher. Detours: Binary interception of Win32 functions. In Proc. of the 3rd USENIX Windows NT Symposium, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. G. Hunt and J. Larus. Singularity design motivation. Technical Report MSR-TR-2004-105, Microsoft Research, Dec. 2004.]]Google ScholarGoogle Scholar
  20. M. Jones. Interposition agents: transparently interposing user code at the system interface. In Proc. SOSP'93, 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Lafferty and V. Cahill. Language-independent aspect-oriented programming. In Proc. OOPSLA '03, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. L. Lamport. Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Pearson Education, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. B. Lampson. Protection. In Proc. 5th Princeton Conf. Information Sciences and Systems, 1971. Reprinted in ACM Op. Sys. Rev. 8, 1 (Jan. 1974), pages 18--24.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. B. Lampson. Software components: Only the giants survive. In Computer Systems: Theory, Technology, and Applications: A Tribute to Roger Needham. Springer, 2004.]]Google ScholarGoogle Scholar
  25. B. Laurie and P. Laurie. Apache: The Definitive Guide. O'Reilly & Associates, 3 edition, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. B. Liblit, M. Naik, A. Zheng, A. Aiken, and M. Jordan. Public deployment of cooperative bug isolation. In Proc. RAMSS'04, 2004.]]Google ScholarGoogle ScholarCross RefCross Ref
  27. K. Loney. Oracle Database 10g: The Complete Reference. McGraw-Hill Osborne Media, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. J. P. Mello, Jr. Developer raps Linux security. LinuxInsider, January 11th, 2005.]]Google ScholarGoogle Scholar
  29. Microsoft Corp. Debugging tools and symbols. http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx.]]Google ScholarGoogle Scholar
  30. Microsoft Corp. Windows application compatibility. http://msdn.microsoft.com/compatibility/.]]Google ScholarGoogle Scholar
  31. Microsoft Corp. Frequently asked questions about Authenticode, 2000. http://msdn.microsoft.com/library/en-us/dnauth/html/signfaq.asp.]]Google ScholarGoogle Scholar
  32. T. Ming and S. Mitchell. Extension Overload. http://www.xoverload.com/extensionoverload/.]]Google ScholarGoogle Scholar
  33. G. Nebbett. Windows NT/2000 Native API Reference. New Riders Publishing, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. G. Necula. Proof-carrying code. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages, pages 106--119, January 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. W. Oney. Programming the Microsoft Windows Driver Model. Microsoft Press, 2 edition, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Open Systems Resources, Inc. Peter pontificates. The NT Insider, 11(4), Dec 2004. http://www.osronline.com/.]]Google ScholarGoogle Scholar
  37. J. Redstone, M. Swift, and B. Bershad. Using computers to diagnose computer problems. In Proc. HotOS'03, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. M. Russinovich and B. Cogswell. SysInternals. http://www.sysinternals.com/.]]Google ScholarGoogle Scholar
  39. A. Schulman. Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures. Addison-Wesley, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. M. Seltzer, Y. Endo, C. Small, and K. Smith. Dealing with disaster: Surviving misbehaved kernel extensions. In Proc. OSDI'96, Oct. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. E. Siever, A. Weber, and S. Figgins. Linux in a Nutshell. O'Reilly & Associates, 4 edition, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. J. Siracusa. Mac OS X 10.4 Tiger: Kernel updates. Ars Technica, page 4, April 28th, 2005. http://arstechnica.com/reviews/os/macosx-10.4.ars/4.]]Google ScholarGoogle Scholar
  43. D. Solomon and M. Russinovich. Windows Internals. Microsoft Press, 4 edition, 2005.]]Google ScholarGoogle Scholar
  44. A. Srivastava, A. Edwards, and H. Vo. Vulcan: Binary transformation in a distributed environment. Technical Report MSR-TR-2001-50, Microsoft Research, 2001.]]Google ScholarGoogle Scholar
  45. A. Srivastava and A. Eustace. ATOM: A system for building customized program analysis tools. Technical Report WRL Research Report 94/2, Digital Equipment Corporation, 1994.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. W. Stanek. Microsoft IIS 6.0 Administrator's Pocket Consultant. Microsoft Press, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. J. Sugerman, G. Venkitachalam, and B. Lim. Virtualizing I/O devices on VMware Workstation's hosted virtual machine monitor. In Proc. USENIX'02, June 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. M. Swift, B. Bershad, and H. Levy. Improving the reliability of commodity operating systems. ACM Trans. Computer Systems, 22(4), Nov 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Symantec Corp. Symantec Norton SystemWorks 2005. http://www.symantec.com/sabu/sysworks/basic/.]]Google ScholarGoogle Scholar
  50. Symantec Corp. Veritas Backup Exec. http://www.veritas.com/.]]Google ScholarGoogle Scholar
  51. Unsanity LLC. APE Application Enhancer. http://www.unsanity.com/haxies/ape/.]]Google ScholarGoogle Scholar
  52. H. Wang, J. Platt, Y. Chen, R. Zhang, and Y. Wang. Automatic misconfiguration troubleshooting with PeerPressure. In Proc. OSDI'04, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Y. Wang, C. Verbowski, J. Dunagan, Y. Chen, H. Wang, C. Yuan, and Z. Zhang. STRIDER: A black-box, state-based approach to change and configuration management and support. In Proc. LISA, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. I. Welch and R. Stroud. Kava - A reflective Java based on bytecode rewriting. In Proc. 1st OOPSLA Workshop on Reflection and Software Engineering, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Wily Technology, Inc. Interscope. http://www.wilytech.com/solutions/products/Introscope.html.]]Google ScholarGoogle Scholar
  56. E. Witchel, J. Rhee, and K. Asanovic. Mondrix: Memory isolation for Linux using Mondriaan memory protection. In Proc. SOSP'05, 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. F. Yuan. Windows Graphics Programming: Win32 GDI and DirectDraw. Prentice Hall, 2001.]]Google ScholarGoogle Scholar

Index Terms

  1. Ad hoc extensibility and access control

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  • Published in

                    cover image ACM SIGOPS Operating Systems Review
                    ACM SIGOPS Operating Systems Review  Volume 40, Issue 3
                    July 2006
                    107 pages
                    ISSN:0163-5980
                    DOI:10.1145/1151374
                    Issue’s Table of Contents

                    Copyright © 2006 Authors

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 1 July 2006

                    Check for updates

                    Qualifiers

                    • article

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader