Preface Goals Philosophy Organization Roadmap Dependencies Background Undergraduate Level Graduate Level Practitioners Special Acknowledgment Acknowledgments PART 1:INTRODUCTION Chapter 1 An Overview of Computer Security 1.1 The Basic Components 1.1.1 Confidentiality 1.1.2 Integrity 1.1.3 Availability 1.2 Threats 1.3 Policy and Mechanism 1.3.1 Goals of Security 1.4 Assumptions and Trust 1.5 Assurance 1.5.1 Specification 1.5.2 Design 1.5.3 Implementation 1.6 Operational Issues 1.6.1 Cost-Benefit Analysis 1.6.2 Risk Analysis 1.6.3 Laws and Customs 1.7 Human Issues 1.7.1 Organizational Problems 1.7.2 People Problems 1.8 Tying It All Together 1.9 Summary 1.10 Research Issues 1.11 Further Reading 1.12 Exercises PART 2:FOUNDATIONS Chapter 2 Access Control Matrix 2.1 Protection State 2.2 Access Control Matrix Model 2.2.1 Access Control by Boolean Expression Evaluation 2.2.2 Access Controlled by History 2.3 Protection State Transitions 2.3.1 Conditional Commands 2.4 Copying,Owning,and the Attenuation of Privilege 2.4.1 Copy Right 2.4.2 Own Right 2.4.3 Principle of Attenuation of Privilege 2.5 Summary 2.6 Research Issues 2.7 Further Reading 2.8 Exercises Chapter 3 Foundational Results 3.1 The General Question 3.2 Basic Results 3.3 The Take-Grant Protection Model 3.3.1 Sharing of Rights 3.3.2 Interpretation of the Model 3.3.3 Theft in the Take-Grant Protection Model 3.3.4 Conspiracy 3.3.5 Summary 3.4 Closing the Gap 3.4.1 Schematic Protection Model 3.4.1.1 Link Predicate 3.4.1.2 Filter Function 3.4.1.3 Putting It All Together 3.4.1.4 Demand and Create Operations 3.4.1.5 Safety Analysis 3.5 Expressive Power and the Models 3.5.1 Brief Comparison of HRU and SPM 3.5.2 Extending SPM 3.5.3 Simulation and Expressiveness 3.5.4 Typed Access Matrix Model 3.6 Summary 3.7 Research Issues 3.8 Further Reading 3.9 Exercises PART 3:POLICY Chapter 4 Security Policies 4.1 Security Policies 4.2 Types of Security Policies 4.3 The Role of Trust 4.4 Types of Access Control 4.5 Policy Languages 4.5.1 High-Level Policy Languages 4.5.2 Low-Level Policy Languages 4.6 Example:Academic Computer Security Policy 4.6.1 general University Policy 4.6.2 Electronic Mail Policy 4.6.2.1 The Electronic Mail Policy Summary 4.6.2.2 The Full Policy 4.6.2.3 Implementation at UC Davis 4.7 Security and Precision 4.8 Summary 4.9 Research Issues 4.10 Further Reading 4.11 Exercises Chapter 5 Confidentiality Policies 5.1 Goals of Confidentiality Policies 5.2 The Bell-LaPadula Model 5.2.1 Informal Description 5.2.2 Example:The Data General B2 UNIX System 5.2.2.1 Assigning MAC Labels 5.2.2.2 Using MAC Labels 5.2.3 Formal Model 5.2.3.1 Basic Security Theorem 5.2.3.2 Rules of Transformation 5.2.4 Example Model Instantiation:Multics 5.2.4.1 The get-read Rule 5.2.4.2 The give-read Rule 5.3 Tranquility 5.4 The Controversy over the Bell-LaPadula Model 5.4.1 McLean's +-Property and the Basic Security Theorem 5.4.2 McLean's System Z and More Questions 5.4.3 Summary 5.5 Summary 5.6 Research Issues 5.7 Further Reading 5.8 Exercises Chapter 6 Integrity Policies 6.1 Goals 6.2 Biba Integrity Model 6.2.1 Low-Water-Mark Policy 6.2.2 Ring Policy 6.2.3 Biba's Model(Strict Integrity Policy) 6.3 Lipner's Integrity Matrix Model 6.3.1 Lipner's Use of the Bell-LaPadula Model 6.3.2 Lipner's Full Model 6.3.3 Comparison with Biba 6.4 Clark-Wilson Integrity Model 6.4.1 The Model 6.4.1.1 A UNIX Approximation to Clark-Wilson 6.4.2 Comparison with the Requirements 6.4.3 Comparison with Other Models 6.5 Summary 6.6 Research Issues 6.7 Further Reading 6.8 Exercises Chapter 7 Hybrid Policies 7.1 Chinese Wall Model 7.1.1 Informal Description 7.1.2 Formal Model 7.1.3 Bell-LaPadula and Chinese Wall Models 7.1.4 Clark-Wilson and Chinese Wall Models 7.2 Clinical Information Systems Security Policy 7.2.1 Bell-LaPadula and Clark-Wilson Models 7.3 Originator Controlled Access Control 7.4 Role-Based Access Control 7.5 Summary 7.6 Research Issues 7.7 Further Reading 7.8 Exercises Chapter 8 Noninterference and Policy Composition 8.1 The Problem 8.1.1 Composition of Bell-LaPadula Models 8.2 Deterministic Noninterference 8.2.1 Unwinding Theorem 8.2.2 Access Control Matrix Interpretation 8.2.3 Security Policies That Change over Time 8.2.4 Composition of Deterministic Noninterference-Secure Systems 8.3 Nondeducibility 8.3.1 Composition of Deducibly Secure Systems 8.4 Generalized Noninterference 8.4.1 Composition of Generalized Noninterference Systems 8.5 Restrictiveness 8.5.1 State Machine Model 8.5.2 Composition of Restrictive Systems 8.6 Summary 8.7 Research Issues 8.8 Further Reading 8.9 Exercises PART 4:IMPLEMENTATION I:CRYPTOGRAPHY Chapter 9 Basic Cryptography 9.1 What Is Cryptography? 9.2 Classical Cryptosystems 9.2.1 Transposition Ciphers 9.2.2 Substitution Ciphers 9.2.2.1 Vigenere Cipher 9.2.2.2 One-Time Pad 9.2.3 Data Encryption Standard 9.2.4 Other Classical Ciphers 9.3 Public Key Cryptography 9.3.1 Diffie-Hellman 9.3.2 RSA 9.4 Cryptographic Checksums 9.4.1 HMAC 9.5 Summary 9.6 Research Issues 9.7 Further Reading 9.8 Exercises Chapter 10 Key Management 10.1 Session and Interchange Keys 10.2 Key Exchange 10.2.1 Classical Cryptographic Key Exchange and Authentication 10.2.2 Kerberos 10.2.3 Public Key Cryptographic Key Exchange and Authentication 10.3 Key Generation 10.4 Cryptographic Key Infrastructures 10.4.1 Merkle's Tree authentication Scheme 10.4.2 Certificate Signature Chains 10.4.2.1 X.509:Certification Signature Chains 10.4.2.2 PGP Certificate Signature Chains 10.4.3 Summary 10.5 Storing and Revoking Keys 10.5.1 Key Storage 10.5.1.1 Key Escrow 10.5.1.2 Key Escrow System and the Clipper Chip 10.5.1.3 The yaksha Security System 10.5.1.4 Other Approaches 10.5.2 Key Revocation 10.6 Digital Signatures 10.6.1 Classical Signatures 10.6.2 Public Key Signatures 10.6.2.1 RSA Digital Signatures 10.6.2.2 El Gamal Digital Signature 10.7 Summary 10.8 Research Issues 10.9 Further Reading 10.10 Exercises Chapter 11 Cipher Techniques 11.1 Problems 11.1.1 Precomputing the Possible Messages 11.1.2 Misordered Blocks 11.1.3 Statistical Regularities 11.1.4 Summary 11.2 Stream and Block Ciphers 11.2.1 Stream Ciphers 11.2.1.1 Synchronous Stream Ciphers 11.2.1.2 Self-Synchronous Stream Ciphers 11.2.2 Block Ciphers 11.2.2.1 Multiple Encryption 11.3 Networks and Cryptography 11.4 Example Protocols 11.4.1 Secure Electronic Mail:PEM 11.4.1.1 Design Principles 11.4.1.2 Basic Design 11.4.1.3 Other Considerations 11.4.1.4 Conclusion 11.4.2 Security at the Transport Layer:SSL 11.4.2.1 Supporting Cryptographic Mechanisms 11.4.2.2 Lower Layper:SSL Record Protocol 11.4.2.3 Upper Layer:SSL Handshake Protocol 11.4.2.4 Upper Layer:SSL Change Cipher Spec Protocol 11.4.2.5 Upper Layer:SSL Alert Protocol 11.4.2.6 Upper Layer:Application Data Protocol 11.4.2.7 Summary 11.4.3 Security at the Network Layer:IPsec 11.4.3.1 IPsec Architecture 11.4.3.2 Authentication Header Protocol 11.4.3.3 Encapsulating Security Payload Protocol 11.4.4 Conclusion 11.5 Summary 11.6 Research Issues 11.7 Further Reading 11.8 Exercises Chapter 12 Authentication 12.1 Authentication Basics 12.2 Passwords 12.2.1 Attacking a Password System 12.2.2 Countering Password Guessing 12.2.2.1 Random Selection of Passwords 12.2.2.2 Pronounceable and Other Computer-Generated Passwords 12.2.2.3 User Selection of Passwords 12.2.2.4 Reusable Passwords and Dictionary Attacks 12.2.2.5 Guessing Through Authentication Functions 12.2.3 Password Aging 12.3 Challenge-Response 12.3.1 Pass Algorithms 12.3.2 One-Time Passwords 12.3.3 Hardware-Supported Challenge-Response Procedures 12.3.4 Challenge-Response and Dictionary Attacks 12.4 Biometrics 12.4.1 Fingerprints 12.4.2 Voices 12.4.3 Eyes 12.4.4 Faces 12.4.5 Keystrokes 12.4.6 Combinations 12.4.7 Caution 12.5 Location 12.6 Multiple Methods 12.7 Summary 12.8 Research Issues 12.9 Further Reading 12.10 Exercises PART 5:IMPLEMENTATION II:SYSTEMS Chapter 13 Design Principles 13.1 Overview 13.2 Design Principles 13.2.1 Principle of Least Privilege 13.2.2 Principle of Fail-Safe Defaults 13.2.3 Principle of Economy of Mechanism 13.2.4 Principle of Complete Mediation 13.2.5 Principle of Open Design 13.2.6 Principle of Separation of Privilege 13.2.7 Principle of Least Common Mechanism 13.2.8 Principle of Psychological Acceptability 13.3 Summary 13.4 Research Issues 13.5 Further Reading 13.6 Exercises Chapter 14 Representing Identity 14.1 What Is Identity? 14.2 Files and Objects 14.3 Users 14.4 Groups and Roles 14.5 Naming and Certificates 14.5.1 Conflicts 14.5.2 The Meaning of the Identity 14.5.3 Trust 14.6 Identity on the Web 14.6.1 Host Identity 14.6.1.1 Static and Dynamic Identifiers 14.6.1.2 Security Issues with the Domain Name Service 14.6.2 State and Cookies 14.6.3 Anonymity on the Web 14.6.3.1 Anonymity for Better or Worse 14.7 Summary 14.8 Research Issues 14.9 Further Reading 14.10 Exercises Chapter 15 Access Control Mechanisms 15.1 Access Control Lists 15.1.1 Abbreviations of Access Control Lists 15.1.2 Creation and Maintenance of Access Control Lists 15.1.2.1 Which Subjects Can Modify an Object's ACL? 15.1.2.2 Do the ACLs Apply to a Privileged User? 15.1.2.3 Does the ACL Support Groups and Wildcards? 15.1.2.4 Conflicts 15.1.2.5 ACLs and Default Permissions 15.1.3 Revocation of Rights 15.1.4 Example:Windows NT Access Control Lists 15.2 Capabilities 15.2.1 Implementation of Capabilities 15.2.2 Copying and Amplifying Capabilities 15.2.3 Revocation of Rights 15.2.4 Limits of Capabilities 15.2.5 Comparison with Access Control Lists 15.3 Locks and Keys 15.3.1 Type Checking 15.3.2 Sharing Secrets 15.4 Ring-Based Access Control 15.5 Propagated Access Control Lists 15.6 Summary 15.7 Research Issues 15.8 Further Reading 15.9 Exercises Chapter 16 Information Flow 16.1 Basics and Background 16.1.1 Entropy-Based Analysis 16.1.2 Information Flow Models and Mechanisms 16.2 Nonlattice Information Flow Policies 16.2.1 Confinement Flow Model 16.2.2 Transitive Nonlattice Information Flow Policies 16.2.3 Nontransitive Information Flow Policies 16.3 Compiler-Based Mechanisms 16.3.1 Declarations 16.3.2 Program Statements 16.3.2.1 Assignment Statements 16.3.2.2 Compound Statements 16.3.2.3 Conditional Statements 16.3.2.4 Iterative Statements 16.3.2.5 Goto Statements 16.3.2.6 Procedure Calls 16.3.3 Exceptions and Infinite Loops 16.3.4 Concurrency 16.3.5 Soundness 16.4 Execuition-Based Mechanisms 16.4.1 Fenton's Data Mark Machine 16.4.2 Variable Classes 16.5 Example Information Flow Controls 16.5.1 Security Pipeline Interface 16.5.2 Secure Network Server Mail Guard 16.6 Summary 16.7 Research Issues 16.8 Further Reading 16.9 Exercises Chapter 17 Confinement Problem 17.1 The Confinement Problem 17.2 Isolation 17.2.1 Virtual Machines 17.2.2 Sandboxes 17.3 Covert Channels 17.3.1 Detection of Covert Channels 17.3.1.1 Noninterference 17.3.1.2 The Shared Resource Matrix Methodology 17.3.1.3 Information Flow Analysis 17.3.1.4 Covert Flow Trees 17.3.2 Analysis of Covert Channels 17.3.2.1 Covert Channel Capacity and Noninterference 17.3.2.2 Measuring Covert Channel Capacity 17.3.2.3 Analyzing a Noisy Covert Channel's Capacity 17.3.3 Mitigation of Covert Channels 17.4 Summary 17.5 Research Issues 17.6 Further Reading 17.7 Exercises PART 6:ASSURANCE Contributed by Elisabeth Sullivan Chapter 18 Introduction to Assurance 18.1 Assurance and Trust 18.1.1 The Need for Assurance 18.1.2 The Role of Requirements in Assurance 18.1.3 Assurance Throughout the Life Cycle 18.2 Building Secure and Trusted Systems 18.2.1 Life Cycle 18.2.1.1 Conception 18.2.1.2 Manufacture 18.2.1.3 Deployment 18.2.1.4 Fielded Product Life 18.2.2 The Waterfall Life Cycle Model 18.2.2.1 Requirements Definition and Analysis 18.2.2.2 System and Software Design 18.2.2.3 Implementation and Unit Testing 18.2.2.4 Integration and System Testing 18.2.2.5 Operation and Maintenance 18.2.2.6 Discussion 18.2.3 Other Mdoels of Software Development 18.2.3.1 Exploratory Programming 18.2.3.2 Prototyping 18.2.3.3 Formal Transformation 18.2.3.4 System Assembly from Reusable Components 18.2.3.5 Extreme Programming 18.3 Summary 18.4 Research Issues 18.5 Further Reading 18.6 Exercises Chapter 19 Building Systems with Assurance 19.1 Assurance in Requirements Definition and Analysis 19.1.1 Threats and Security Objectives 19.1.2 Architectural Considerations 19.1.2.1 Security Mechanisms and Layered Architecture 19.1.2.2 Building Security in or Adding Security Later 19.1.3 Policy Definition and Requirements Specification 19.1.4 Justifying Requirements 19.2 Assurance During System and Software Design 19.2.1 Design Techniques That Support Assurance 19.2.2 Design Document Contents 19.2.2.1 Security Functions Summary Specification 19.2.2.2 External Functional Specification 19.2.2.3 Internal Design Description 19.2.2.4 Internal Design Specification 19.2.3 Building Documentation and Specifications 19.2.3.1 Modification Specifications 19.2.3.2 Security Specifications 19.2.3.3 Formal Specifications 19.2.4 Justifying That Design Meets Requirements 19.2.4.1 Requirements Tracing and Informal Correspondence 19.2.4.2 Informal Arguments 19.2.4.3 Formal Methods:Proof Techniques 19.2.4.4 Review 19.3 Assurance in Implementation and Integration 19.3.1 Implementation Considerations That Support Assurance 19.3.2 Assurance Through Implementation Management 19.3.3 Justifying That the Implementation Meets the Design 19.3.3.1 Security Testing 19.3.3.2 Security Testing Using PGWG 19.3.3.2 Test Matrices 19.3.3.3 Formal Methods:Proving That Programs Are Correct 19.4 Assurance During Operation and Maintenance 19.5 Summary 19.6 Research Issues 19.7 Further Reading 19.8 Exercises Chapter 20 Formal Methods 20.1 Formal Verification Techniques 20.2 Formal Specification 20.3 Early Formal Verification Techniques 20.3.1 The Hierarchical Development Methodology 20.3.1.1 Verification in HDM 20.3.1.2 The Boyer-Moore Theorem Prover 20.3.2 Enhanced HDM 20.3.3 The Gypsy Verification Environment 20.3.3.1 The Gypsy Language 20.3.3.2 The Bledsoe Theorem Prover 20.4 Current Verification Systems 20.4.1 The Prototype Verification System 20.4.1.1 The PVS Specification Language 20.4.1.2 The PVS Proof Checker 20.4.1.3 Experience with PVS 20.4.2 The Symbolic Model Verifier 20.4.2.1 The SMV Language 20.4.2.2 The XMV ProofTheory 20.4.2.3 SMV Experience 20.4.3 The Naval Research Laboratory Protocol Analyzer 20.4.3.1 NPA Languages 20.4.3.2 NPA Experience 20.5 Summary 20.6 Research Issues 20.7 Further Reading 20.8 Exercises Chapter 21 Evaluating Systems 21.1 Goals of Formal Evaluation 21.1.1 Deciding to Evaluate 21.1.2 Historical Perspective of Evaluation Methodologies 21.2 TCSEC:1983-1999 21.2.1 TCSEC Requirements 21.2.1.1 TCSEC Functional Requirements 21.2.1.2 TCSEC Assurance Requirements 21.2.2 The TCSEC Evaluatoin Classes 21.2.3 The TCSEC Evaluatoin Process 21.2.4 Impacts 21.2.4.1 Scope Limitations 21.2.4.2 Process Limitations 24.2.4.3 Contributions 21.3 International Efforts and the ITSEC:1991-2001 21.3.1 ITSEC Assurance Requirements 21.3.1.1 Requirements in the TCSEC Not Found in the ITSEC 21.3.1.2 Requirements in the ITSEC Not Found in the TCSEC 21.3.2 The ITSEC Evaluation Levels 21.3.3 The ITSEC Evaluation Process 21.3.4 Impacts 21.3.4.1 Vendor-Provided Security Targets 21.3.4.2 Process Limitations 21.4 Commercial International Security Requirements:1991 21.4.1 CISR Requirements 21.4.2 Impacts 21.5 Other Commercial Efforts:Early 1990s 21.6 The Federal Criteria:1992 21.6.1 FC Requirements 21.6.2 Impacts 21.7 FIPS 140:1994-Present 21.7.1 FIPS 140 Requirements 21.7.2 FIPS 140-2 Security Levels 21.7.3 Impact 21.8 The Common Criteria:1998-Present 21.8.1 Overview of the Methodology 21.8.2 CC Requirements 21.8.3 CC Security Functional Requirements 21.8.4 Assurance Requirements 21.8.5 Evaluation Assurance Levels 21.8.6 Evaluation Process 21.8.7 Impacts 21.8.8 Future of the Common Criteria 21.8.8.1 Interpretations 21.8.8.2 Assurance Class AMA and Family ALC_FLR 21.8.8.3 Products Versus Systems 21.8.8.4 Protection Profiles and Security Targets 21.8.8.5 Assurance Class AVA 21.8.8.6 EAL5 21.9 SSE-CMM:1997-Present 21.9.1 The SSE-CMM Model 21.9.2 Using the SSE-CMM 21.10 Summary 21.11 Research Issues 21.12 Further Reading 21.13 Exercises PART 7:SPECIAL TOPICS Chapter 22 Malicious Logic 22.1 Introduction 22.2 Trojan Horses 22.3 Computer Viruses 22.3.1 Boot Sector Infectors 22.3.2 Executable Infectors 22.3.3 Multipartite Viruses 22.3.4 TSR Viruses 22.3.5 Stealth Viruses 22.3.6 Encrypted Viruses 22.3.7 Polymorphic Viruses 22.3.8 Macro Viruses 22.4 Computer Worms 22.5 Other Forms of Malicious Logic 22.5.1 Rabbits and Bacteria 22.5.2 Logic Bombs 22.6 Theory of Malicious Logic 22.6.1 Theory of Computer Viruses 22.7 Defenses 22.7.1 Malicious Logic Acting as Both Data and Instructions 22.7.2 Malicious Logic Assuming the Identity of a User 22.7.2.1 Information Flow Metrics 22.7.2.2 Reducing the Rights 22.7.2.3 Sandboxing 22.7.3 Malicious Logic Crossing Protection Domain Boundaries by Sharing 22.7.4 Malicious Logic Altering Files 22.7.5 Malicious Logic Performing Actions Beyond Specification 22.7.5.1 Proof-Carrying Code 22.7.6 Malicious Logic Altering Statistical Characteristics 22.7.7 The Notion of Trust 22.8 Summary 22.9 Research Issues 22.10 Further Reading 22.11 Exercises Chapter 23 Vulnerability Analysis 23.1 Introduction 23.2 Penetration Studies 23.2.1 Goals 23.2.2 Layering of Tests 23.2.3 Methodology at Each Layer 23.2.4 Flaw Hypothesis Methodology 23.2.4.1 Information Gathering and Flaw Hypothesis 23.2.4.2 Flaw Testing 23.2.4.3 Flaw Generalization 23.2.4.4 Flaw Elimination 23.2.5 Example:Penetration of the Michigan Terminal System 23.2.6 Example:Compromise of a Burroughs System 23.2.7 Example:Penetration of a Corporate Computer System 23.2.8 Example:Penetrating a UNIX System 23.2.9 Example:Penetrating a Windows NT System 23.2.10 Debate 23.2.11 Conclusion 23.3 Vulnerability Classification 23.3.1 Two Security Flaws 23.4 Frameworks 23.4.1 The RISOS Study 23.4.1.1 The Flaw Classes 23.4.1.2 Legacy 23.4.2 Protection Analysis Model 23.4.2.1 The Flaw Classes 23.4.2.2 Analysis Procedure 23.4.2.3 Legacy 23.4.3 The NRL Taxonomy 23.4.3.1 The Flaw Classes 23.4.3.2 Legacy 23.4.4 Aslam's Model 23.4.4.1 The Flaw Classes 23.4.4.2 Legacy 23.4.5 Comparison and Analysis 23.4.5.1 The xterm Log File Flaw 23.4.5.2 The fingerd Buffer Overflow Flaw 23.4.5.3 Summary 23.5 Gupta Gligor's Theory of Penetration Analysis 23.5.1 The Flow-Based Model of Penetration Analysis 23.5.2 The Automated Penetration Analysis Tool 23.5.3 Discussion 23.6 Summary 23.7 Research Issues 23.8 Further Reading 23.9 Exercises Chapter 24 Auditing 24.1 Definitions 24.2 Anatomy of an Auditing System 24.2.1 Logger 24.2.2 Analyzer 24.2.3 Notifier 24.3 Designing an Auditing System 24.3.1 Implementation Considerations 24.3.2 Syntactic Issues 24.3.3 Log Sanitization 24.3.4 Application and System Logging 24.4 A Posteriori Design 24.4.1 Auditing to Detect Violations of a Known Policy 24.4.1.1 State-Based Auditing 24.4.1.2 Transition-Based Auditing 24.4.2 Auditing to Detect Known Violations of a Policy 24.5 Auditing Mechanisms 24.5.1 Secure Systems 24.5.2 Nonsecure Systems 24.6 Examples:Auditing File Systems 24.6.1 Audit Analysis of the NFS Version 2 Protocol 24.6.2 The Logging and Auditing File System(LAFS) 24.6.3 Comparison 24.7 Audit Browsing 24.8 Summary 24.9 Research Issues 24.10 Further Reading 24.11 Exercises Chapter 25 Intrusion Detection 25.1 Principles 25.2 Basic Intrusion Detection 25.3 Models 25.3.1 Anomaly Modeling 25.3.1.1 Derivation of Statistics 25.3.2 Misuse Modeling 25.3.3 Specification Modeling 25.3.4 Summary 25.4 Architecture 25.4.1 Agent 25.4.1.1 Host-Based Information Gathering 25.4.1.2 Network-Baseed Information Gathering 25.4.1.3 Combining Sources 25.4.2 Director 25.4.3 Notifier 25.5 Organization of Intrusion Detection Systems 25.5.1 Monitoring Network Traffic for Intrusions:NSM 25.5.2 Combining Host and Network Monitoring:DIDS 25.5.3 Autonomous Agents:AAFID 25.6 Intrusion Response 25.6.1 Incident Prevention 25.6.2 Intrusion Handling 25.6.2.1 Containment Phase 25.6.2.2 Eradication Phase 25.6.2.3 Follow-Up Phase 25.7 Summary 25.8 Research Issues 25.9 Further Reading 25.10 Exercises PART 8:PRACTICUM Chapter 26 Network Security 26.1 Introduction 26.2 Policy Development 26.2.1 Data Classes 26.2.2 User Classes 26.2.3 Availability 26.2.4 Consistency Check 26.3 Network Organization 26.3.1 Firewalls and Proxies 26.3.2 Analysis of the Network Infrastructure 26.3.2.1 Outer Firewall Configuration 26.3.2.2 Inner Firewall Configuration 26.3.3 In the DMZ 26.3.3.1 DMZ Mail Server 26.3.3.2 DMZ WWW Server 26.3.3.3 DMZ DNS Server 26.3.3.4 DMZ Log Server 26.3.3.5 Summary 26.3.4 In the Internal Network 26.3.5 General Comment on Assurance 26.4 Availability and Network Flooding 26.4.1 Intermediate Hosts 26.4.2 TCP State and Memory Allocations 26.5 Anticipating Attacks 26.6 Summary 26.7 Research Issues 26.8 Further Reading 26.9 Exercises Chapter 27 System Security 27.1 Introduction 27.2 Policy 27.2.1 The Web Server System in the DMZ 27.2.2 The Development System 27.2.3 Comparison 27.2.4 Conclusion 27.3 Networks 27.3.1 The Web Server System in the DMZ 27.3.2 The Development System 27.3.3 Comparison 27.4 Users 27.4.1 The Web Server System in the DMZ 27.4.2 The Development System 27.4.3 Comparison 27.5 Authentication 27.5.1 The Web Server System in the DMZ 27.5.2 Development Network System 27.5.3 Comparison 27.6 Processes 27.6.1 The Web Server System in the DMZ 27.6.2 The Development System 27.6.3 Comparison 27.7 Files 27.7.1 The Web Server System in the DMZ 27.7.2 The Development System 27.7.3 Comparison 27.8 Retrospective 27.8.1 The Web Server System in the DMZ 27.8.2 The Development System 27.9 Summary 27.10 Research Issues 27.11 Further Reading 27.12 Exercises Chapter 28 User Security 28.1 Policy 28.2 Access 28.2.1 Passwords 28.2.2 The Login Procedure 28.2.2.1 Trusted Hosts 28.2.3 Leaving the System 28.3 Files and Devices 28.3.1 Files 28.3.1.1 File Permissions on Creation 28.3.1.2 Group Access 28.3.1.3 File Deletion 28.3.2 Devices 28.3.2.1 Writable Devices 28.3.2.2 Smart Terminals 28.3.2.3 Monitors and Window Systems 28.4 Processes 28.4.1 Copying and Moving Files 28.4.2 Accidentally Overwriting Files 28.4.3 Encryption,Cryptographic Keys,and Passwords 28.4.4 Start-up Settings 28.4.5 Limiting Privileges 28.4.6 Malicious Logic 28.5 Electronic Communications 28.5.1 Automated Electronic Mail Processing 28.5.2 Failure to Check Certificates 28.5.3 Sending Unexpected Conteht 28.6 Summary 28.7 Research Issues 28.8 Further Reading 28.9 Exercises Chapter 29 Program Security 29.1 Introduction 29.2 Requirements and Policy 29.2.1 Requirements 29.2.2 Threats 29.2.2.1 Group 1:Unauthorized Users Accessing Role Accounts 29.2.2.2 Group 2:Authorized Users Accessing Role Accounts 29.2.2.3 Summary 29.3 Design 29.3.1 Framework 29.3.1.1 User Interface 29.3.1.2 High-Level Design 29.3.2 Access to Roles and Commands 29.3.2.1 Interface 29.3.2.2 Internals 29.3.2.3 Storage of the Access Control Data 29.4 Refinement and Implementation 29.4.1 First-Level Refinement 29.4.2 Second-Level Refinement 29.4.3 Functions 29.4.3.1 Obtaining Location 29.4.3.2 The Access Control Record 29.4.3.3 Error Handling in the Reading and Matching Routines 29.4.4 Summary 29.5 Common Security-Related Programming Problems 29.5.1 Improper Choice of Initial Protection Domain 29.5.1.1 Process Privileges 29.5.1.2 Access Control File Permissions 29.5.1.3 Memory Protection 29.5.1.4 Trust in the System 29.5.2 Improper Isolation of Implementation Detail 29.5.2.1 Resource Exhaustion and User Identifiers 29.5.2.2 Validating the Access Control Entries 29.5.2.3 Restricting the Protection Domain of the Role Process 29.5.3 Improper Change 29.5.3.1 Memory 29.5.3.2 Changes in File Contents 29.5.3.3 Race Conditions in File Accesses 29.5.4 Improper Naming 29.5.5 Improper Deallocation or Deletion 29.5.6 Improper Validation 29.5.6.1 Bounds Checking 29.5.6.2 Type Checking 29.5.6.3 Error Checking 29.5.6.4 Checking for Valid,not Invalid,Data 29.5.6.5 Checking Input 29.5.6.6 Designing for Validation 29.5.7 Improper Indivisibility 29.5.8 Improper Sequencing 29.5.9 Improper Choice of Operand or Operation 29.5.10 Summary 29.6 Testing,Maintenance,and Operation 29.6.1 Testing 29.6.1.1 Testing the Modules 29.6.2 Testing Composed Modules 29.6.3 Testing the Program 29.7 Distribution 29.8 Conclusion 29.9 Summary 29.10 Research Issues 29.11 Further Reading 29.12 Exercises PART 9:END MATTER Chapter 30 Lattices 30.1 Basics 30.2 Lattices 30.3 Exercises Chapter 31 The Extended Euclidean Algorithm 31.1 The Euclidean Algorithm 31.2 The Extended Euclidean Algorithm 31.3 Solving ax mod n=1 31.4 Solving ax mod n=b 31.5 Exercises Chapter 32 Entropy and Uncertainty 32.1 Conditional and Joint Probability 32.2 Entropy and Uncertainty 32.3 Joint and Conditional Entropy 32.3.1 Joint Entropy 32.3.2 Conditional Entropy 32.3.3 Perfect Secrecy 32.4 Exercises Chapter 33 Virtual Machines 33.1 Virtual Machine Structure 33.2 Virtual Machine Monitor 33.2.1 Privilege and Virtual Machines 33.2.2 Physical Resources and Virtual Machines 33.2.3 Paging and Virtual Machines 33.3 Exercises Chapter 34 Symbolic Logic 34.1 Propositional Logic 34.1.1 Natural Deduction in Propositional Logic 34.1.1.1 Rules 34.1.1.2 Derived Rules 34.1.2 Well-Formed Formulas 34.1.3 Truth Tables 34.1.4 Mathematical Induction 34.2 Predicate Logic 34.2.1 Natural Deduction in Predicate Logic 34.3 Temporal Logic Systems 34.3.1 Syntax of CTL 34.3.2 Semantics of CTL 34.4 Exercises Chapter 35 Example Academic Security Policy 35.1 University of Califormia E-mail Policy 35.1.1 Summary:E-mail Policy Highlights 35.1.1.1 Cautions 35.1.1.2 Do 35.1.1.3 Do Not 35.1.1.4 Does This Policy Apply to You? 35.1.2 University of California Electronic Mail Policy 35.1.2.1 Introduction 35.1.2.2 Purpose 35.1.2.3 Definitions 35.1.2.4 Scope 35.1.2.5 General Provisions 35.1.2.6 Specific Provisions 35.1.2.7 Policy Violations 35.1.2.8 Responsibility for Policy 35.1.2.9 Campus Responsibilities and Discretion 35.1.2.10 Appendix A-Definitions 35.1.2.11 Appendix B-References 35.1.2.12 Appendix C-Policies Relating to Nonconsensual Access 35.1.3 UC Davis Implementation of the Electronic Mail Policy 35.1.3.1 Purpose and Scope 35.1.3.2 Definitions 35.1.3.3 Policy 35.1.4 References and Related Policy 35.2 The Acceptable Use Policy for the University of California,Davis 35.2.1 Part I 35.2.1.1 Introduction 35.2.1.2 Rights and Responsibilities 35.2.1.3 Existing Legal Context 35.2.1.4 Enforcement 35.2.2 Part II Bibliography Index