MULTICS REFERENCE MONITOR THE MULTICS SYSTEM 31

34 CHAPTER 3. MULTICS To verify complete mediation, we need to verify that ring transitions and segment accesses are mediated correctly. These operations are well-defined, so it is straightforward to determine that mediation occurs at these operations. However, the complexity of these operations still made verification difficult. The complexity of addressing resulted in some mediation errors in segment mediation, see Section 3.4.

4. Tamperproof: How does the system protect the reference monitor, including its protection

system, from modification? The Multics reference monitor is implemented by ring 0 procedures. The ring 0 procedures are protected by a combination of the protection ring isolations and system-defined ring bracket policy. The ring bracket policy prevents processes outside of ring 0 from reading or writing reference monitor code or state directly. Some ring 0 code must respond to calls from untrusted processes e.g., system calls. The only way that ring 0 can be accessed by an untrusted process is via a gate. As described above, gates check the format of the arguments to higher-privileged, supervisor code to block malicious inputs. Thus, if the gates are correct, then untrusted processes cannot compromise any ring 0 code, thus protecting the supervisor. Multics master mode code was not designed to be accessed without a ring transition to ring 0, but this restriction was later lifted, resulting in vulnerabilities see Section 3.4 below. Thus, a secure Multics system must not include the unprivileged use of master mode as Karger and Schell identify. 5. Tamperproof: Does the protection system protect all the trusted computing base programs? The Multics TCB consists of the supervisor and some system services in rings 1–3. Multics relegates standard user processing to rings 4 and higher, so trusted code would be placed no higher than ring 3. If we assume that all the code segments in rings 0–3 are part of the trusted computing base, then the TCB is large, but can be protected in the same manner as the supervisor in ring 0. The integrity of the TCB depends on its system-defined ring bracket policy. However, the ring bracket policy is a discretionary policy. It can be modified by any subject with modify access to a directory containing a TCB code segment. Should any process in the TCB be compromised, it could undo protections at its ring level, thus potentially compromising the entire ring. If more-privileged rings contain any code that depends on trust in a less-privileged ring that is compromised, then the compromise may spread further. Thus, Multics tamper-protection is “securable” as Saltzer stated, but discretionary access control makes its tamperprotection brittle. See Chapter 7 to see why the use of discretionary access control is problematic. 6. Verifiable: What is basis for the correctness of the system’s trusted computing base?

3.3. MULTICS SECURITY 35

The implementation of the Multics TCB is too large to be formally verified [ 279 ].The project’s goal was to minimize the Multics implementation as much as possible, such that most, if not all, of the TCB can be verified using manual auditing. This goal was not achieved by the completion of the Multics project, and in fact this limitation motivated the subsequent work in security kernels see Chapter 6. As we will see in the next section, this resulted in some security problems in Multics. 7. Verifiable: Does the protection system enforce the system’s security goals? Verifying that the system’s security goals are enforced correctly involves ensuring that the policy: 1 protects the secrecy and integrity of the system and user data by the protection state; 2 assigns subjects and objects to the policy labels correctly by the labeling state; and 3 ensures that all protection domain transitions protect the secrecy and integrity of the system and user data based on the transition state defined by the call bracket rules. First, the protection state ensures MLS secrecy protection is enforced, although the discre- tionary management of the ring bracket policy limits integrity protection to the system TCB at best, and only if no TCB process can be compromised. The MLS secrecy policy is a manda- tory policy of information flow secrecy goals, so the secrecy goals are enforced by the Multics system given a trusted TCB. Second, verifying the correct labeling of segments and processes is challenging since much of this labeling is specified manually. The Multics policy does not explicitly state how new processes and segments are labeled, although we would expect that the norm is to inherit the labels of the creating process. Third, the transition state permits low integrity code in a less-privileged ring to transfer control to high integrity code in a more-privileged ring through either gates or return gates based on the call bracket rules. As discussed above, the security of these transitions depends on the correctness of the gates, but most systems do not even have this level of enforcement. This informal analysis shows that Multics security is largely very good, but risks remain. In this analysis, we describe powerful mediation, expressive tamperproofing, and verifiable secrecy controls and system integrity controls. However, challenges still remain in managing the scope of the TCB, verifying the correctness of system integrity policies, ensuring integrity protection for all processes, labeling processes and segments correctly, and verifying the correctness of all gates. Saltzer identifies nine areas of security risk in Multics as well [ 264 ]. In addition to the issues above, Saltzer mentions the need for secure communication between systems, control of physical access to machines, the weakness of user-specified passwords, the complexity of gate protections for the supervisor, the possibility of leaking secrets via reuse of uncleared memory or storage, excessive privileges for administrators, and others. These issues and challenges are not unique to Multics—as we will see, every secure operating system design will fight with these challenges. For a first attempt at building a secure operating system, the Multics project did an admirable job of identifying issues 36 CHAPTER 3. MULTICS and proposing solutions, but many difficult issues must be addressed. As Saltzer states, Multics was “designed to be securable,” not a single secure configuration. Of course, building any operating system also requires that the designers consider usability, performance, and maintainability in their design. To a large extent, an operating system is supposed to be invisible to applications. While applications have to use the system’s interface to obtain service, the interface should just implement the requests, so programs can run as expected. Of course, the addition of security enforcement may cause programs to no longer work as expected. Requests may be denied for security reasons, and applications may not be prepared to handle such failures. Also, security is supposed to be effectively invisible from a performance perspective. This was a significant problem for Multics, especially given the limited computing power of that time. The small number of deployed Multics systems probably also prevented the usability model of Multics from spreading widely enough to become an accepted norm. As the UNIX community grew to numbers that dwarfed the number of Multics administrators, the computing community came to accept the open, but insecure, approach. Finally, operating systems are complex software components, so they undergo a fair amount of evolution. This was particularly true in the case of Multics, but any system maintenance must still preserve the security guarantees offered by the system. As we will see in the next section, this was not always the case.

3.4 MULTICS VULNERABILITY ANALYSIS

In 1974, a couple of Air Force researchers, Paul Karger and Roger Schell, performed a vulnerability analysis on the Multics system [ 159 ]. Unfortunately, the Multics system was too complex for them to do any kind of analysis that may prove the security enforcement of the system i.e., mediation, tamperproofing, or verifiability, but they examined the system looking for implementation flaws. That is, they were, and still are, firm believers in the Multics approach to building a secure operat- ing system, but they found a number of vulnerabilities in the Multics implementation that raised questions about how to build and maintain secure operating systems. Karger and Schell’s vulnerability analysis investigates whether specific hardware, software, and “procedural” i.e., configuration vulnerabilities are present in the Multics system. They found vulnerabilities in each area. First, a hardware vulnerability was found that would permit an execute instruction to bypass access checking using the SDW. That is, complete mediation could be circumvented due to this vulnerability. The details of the vulnerability require a deeper knowledge of Multics addressing than we provide, but the basic problem is that the Honeywell 645 hardware 6 did not check the SDW access if the segment was reached by a specific format of indirect addressing. Thus, access to the segment containing the indirection was checked for access, but not the segment containing the actual address to be executed. It was found that this error was introduced in a field modification made at MIT and later applied to all processors. While this is was simply an erroneous update, the pressures of balancing performance and security, makes such updates likely. Further, the Multics 6 This analysis was done after Honeywell had purchased GE’s computer division in 1970.

Dokumen yang terkait

Pengaruh Hutang, Operating Ratio, Earning Power of Total Invesment, Rate of Return for Owners , Working Capital, Quick Ratio terhadap Dividen Tunai pada Perusahaan Perkebunan yang Terdaftar di BEI Periode 2009-2013

3 49 100

Pengaruh Liquidity Ratio (Quick Ratio), Profitability Ratio (ROA dan ROE) Terhadap Dividend Payout Ratio pada Perusahaan Perbankan yang Terdaftar Di Bursa Efek Indonesia

4 64 101

Sikap Dan Perilaku Room Attendant Dalam Melaksanakan Standard Operating Procedure Bagian Kamar Di J.W.Marriott Hotel Medan

21 300 74

Pengaruh Likuiditas, Laba, Kebijakan Hutang, dan Operating Leverage Terhadap Price To Book Value pada Perusahaan Real Estate dan Property yang Terdaftar di Bursa Efek Indonesia (BEI)

1 43 77

Pengaruh Cash Dividend Coverage, Operating Cashflow Per Share, Return On Equity, Return On Assets, Total Assets Turnover, dan Earning Per Share terhadap Harga Saham pada Perusahaan Manufaktur yang Terdaftar di BEI

1 39 84

Analisis pengaruh Gross Profit Margin (GPM), Operating Profit Margin (OPM), Net Profit Margin (NPM), dan Return On Asset (ROA) terhadap harga saham: studi empiris pada perusahaan manufaktur sektor industri barang konsumsi Tahun 2008 -2012.

3 51 124

Analisis Dan Perancangan Site-To-Site Virtual Private Network (VPN) Berbasis IP Security Menggunakan Mikrotik Router Operating System

4 22 144

Pengaruh Operating Leverage, Financial Leverage, dan Compound Leverage Terhadap Risiko Sistematik

0 8 113

PENGARUH OPERATING ASSETS TURNOVER DAN OPERATING PROFIT MARGIN TERHADAP EARNING POWER.

2 6 48

Operating a forklift

0 0 1