You are previewing Computer Security: Art and Science.
O'Reilly logo
Computer Security: Art and Science

Book Description

"This is an excellent text that should be read by every computer security professional and student."

—Dick Kemmerer, University of California, Santa Barbara.

"This is the most complete book on information security theory, technology, and practice that I have encountered anywhere!"

—Marvin Schaefer, Former Chief Scientist, National Computer Security Center, NSA

This highly anticipated book fully introduces the theory and practice of computer security. It is both a comprehensive text, explaining the most fundamental and pervasive aspects of the field, and a detailed reference filled with valuable information for even the most seasoned practitioner. In this one extraordinary volume the author incorporates concepts from computer systems, networks, human factors, and cryptography. In doing so, he effectively demonstrates that computer security is an art as well as a science.

Computer Security: Art and Science includes detailed discussions on:

  • The nature and challenges of computer security

  • The relationship between policy and security

  • The role and application of cryptography

  • The mechanisms used to implement policies

  • Methodologies and technologies for assurance

  • Vulnerability analysis and intrusion detection

Computer Security discusses different policy models, and presents mechanisms that can be used to enforce these policies. It concludes with examples that show how to apply the principles discussed in earlier sections, beginning with networks and moving on to systems, users, and programs.

This important work is essential for anyone who needs to understand, implement, or maintain a secure network or computer system.



0201440997B10252002

Table of Contents

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