Over the past few years, Web developers and administrators have become increasingly cognizant of the importance of Web application isolation. In response to this emphasis, the companies that produce operating systems and Web server software have enhanced the isolation capabilities of their platforms.
Essentially, the concept of application isolation states that two (or more) processes running on the same system should be separated from each other such that the failure of one process does not violate the security of any other process.
For example, assume that a particular Web server is running two different applications: HiSec, which processes credit card information, and LoSec, which processes requests for information. Developers may have invested a large amount of time in ensuring the reliability of HiSec, but they may have dedicated significantly less energy to safeguarding LoSec. If the applications are not isolated, they may share a common resource, such as memory, as shown in the figure below. A malicious individual may then be able to compromise LoSec and use it to manipulate the resources used by HiSec.
Obviously, this is an undesirable situation! In fact, the concept of isolation extends beyond Web code and covers individual user and administrator interaction with the server. You certainly wouldn't want one user exposed to another user's confidential information!
So, what's a security professional to do? Most major platforms, to
- Microsoft Internet Information Services 5.0 users have the ability to perform limited application isolation.
- With the introduction of IIS 6.0, Microsoft introduced the concept of worker process isolation. The Knowledge Base article Configuring application isolation on Windows Server 2003 and Internet Information Services 6.0 provides a very good introduction to implementing physical, virtual and configured isolation for your Web applications.
- Apache users shouldn't despair. It's also possible to configure isolation for Apache when using virtual hosts.
Web application isolation is truly a critical concept, especially if you operate within an environment with multiple security levels. If you're a developer, speak to your administrator about implementing the appropriate level of isolation for your applications. If you're an administrator, it's time to chat with your developers to make sure that they're aware of this issue and the isolation capabilities of your server and operating system.
About the author
Mike Chapple, CISSP, currently serves as Chief Information Officer of the Brand Institute, a Miami-based marketing consultancy. He previously worked as an information security researcher for the U.S. National Security Agency. His publishing credits include the TICSA Training Guide from Que Publishing, the CISSP Study Guide from Sybex and the upcoming SANS GSEC Prep Guide from John Wiley. He's also the About.com Guide to Databases.
For more information on this topic, visit these resources:
- Top Web application security problems identified
- Protecting Web applications a paradox for security professionals
- Applications are the new network
This was first published in January 2004