Foreword
Preface to the Third Edition
Chapter 1 Is There a Security Problem in Computing?
1.1 What Does "Secure" Mean?
Protecting Valuables
Characteristics of Computer Intrusion
1.2 Attacks
Threats, Vulnerabilities, and Controls
Method, Opportunity, and Motive
1.3 The Meaning of Computer Security
Security Goals
Vulnerabilities
1.4 Computer Criminals
Amateurs
Crackers
Career Criminals
1.5 Methods of Defense
Controls
Effectiveness of Controls
1.6 What's Next
Encryption Overview
Hardware and Software Security
Human Controls in Security
Encryption In-Depth
1.7 Summary
1.8 Terms and Concepts
1.9 Where the Field Is Headed
1.10 To Learn More
1.11 Exercises
Chapter 2 Elementary Cryptography
2.1 Terminology and Background
Terminology
Representing Characters
2.2 Substitution Ciphers
The Caesar Cipher
Other Substitutions
One-Time Pads
Summary of Substitutions
2.3 Transpositions (Permutations)
Columnar Transpositions
Combinations of Approaches
2.4 Making "Good" Encryption Algorithms
What Makes a "Secure" Encryption Algorithm?
Symmetric and Asymmetric Encryption Systems
Stream and Block Ciphers
Confusion and Diffusion
Cryptanalysis--Breaking Encryption Schemes
2.5 The Data Encryption Standard (DES)
Background and History
Overview of the DES Algorithm
Double and Triple DES
Security of the DES
2.6 The AES Encryption Algorithm
The AES Contest
Overview of Rijndael
Strength of the Algorithm
Comparison of DES and AES
2.7 Public Key Encryption
Motivation
Characteristics
Rivest-Shamir-Adelman (RSA) Encryption
2.8 The Uses of Encryption
Cryptographic Hash Functions
Key Exchange
Digital Signatures
Certificates
2.9 Summary of Encryption
2.10 Terms and Concepts
2.11 Where the Field Is Headed
2.12 To Learn More
2.13 Exercises
Chapter 3 Program Security
3.1 Secure Programs
Fixing Faults
Unexpected Behavior
Types of Flaws
3.2 Nonmalicious Program Errors
Buffer Overflows
Incomplete Mediation
Time-of-Check to Time-of-Use Errors
Combinations of Nonmalicious Program Flaws
3.3 Viruses and Other Malicious Code
Why Worry About Malicious Code?
Kinds of Malicious Code
How Viruses Attach
Document Viruses
How Viruses Gain Control
Homes for Viruses
Virus Signatures
The Source of Viruses
Prevention of Virus Infection
Truths and Misconceptions About Viruses
First Example of Malicious Code: The Brain Virus
Another Example: The Internet Worm
More Malicious Code: Code Red
Malicious Code on the Web: Web Bugs
3.4 Targeted Malicious Code
Trapdoors
Salami Attacks
Covert Channels: Programs That Leak Information
3.5 Controls Against Program Threats
Developmental Controls
Operating System Controls on Use of Programs
Administrative Controls
Program Controls in General
3.6 Summary of Program Threats and Controls
3.7 Terms and Concepts
3.8 Where the Field Is Headed
3.9 To Learn More
3.10 Exercises
Chapter 4 Protection in General-Purpose Operating Systems
4.1 Protected Objects and Methods of Protection
A Bit of History
Protected Objects
Security Methods of Operating Systems
4.2 Memory and Address Protection
Fence
Relocation
Base/Bounds Registers
Tagged Architecture
Segmentation
Paging
Combined Paging with Segmentation
4.3 Control of Access to General Objects
Directory
Access Control List
Access Control Matrix
Capability
Procedure-Oriented Access Control
4.4 File Protection Mechanisms
Basic Forms of Protection
Single Permissions
Per-Object and Per-User Protection
4.5 User Authentication
Use of Passwords
Attacks on Passwords
Password Selection Criteria
The Authentication Process
Authentication Other Than Passwords
4.6 Summary of Security for Users
4.7 Terms and Concepts
4.8 Where the Field Is Headed
4.9 To Learn More
4.10 Exercises
Chapters Designing Trusted Operating Systems
5.1 What Is a Trusted System?
5.2 Security Policies
Military Security Policy
Commercial Security Policies
5.3 Models of Security
Multilevel Security
Models Proving Theoretical Limitations
of Security Systems
Summary of Models of Protection Systems
5.4 Trusted Operating System Design
Trusted System Design Elements
Security Features of Ordinary Operating Systems
Security Features of Trusted Operating Systems
Kernelized Design
Separation/Isolation
Virtualization
Layered Design
5.5 Assurance in Trusted Operating Systems
Typical Operating System Flaws
Assurance Methods
Open Source
Evaluation
5.6 Implementation Examples
General-Purpose Operating Systems
Operating Systems Designed for Security
5.7 Summary of Security in Operating Systems
5.8 Terms and Concepts
5.9 Where the Field Is Headed
5.10 To Learn More
5.11 Exercises
Chapter 6 Database Security
6.1 Introduction to Databases
Concept of a Database
Components of Databases
Advantages of Using Databases
6.2 Security Requirements
Integrity of the Database
Element Integrity
Auditability
Access Control
User Authentication
Availability
Integrity/ConfidentialitylAvailability
6.3 Reliability and Integrity
Protection Features from the Operating System
Two-Phase Update
Redundancy/Internal Consistency
Recovery
Concurrency/Consistency
Monitors
Summary of Data Reliability
6.4 Sensitive Data
Access Decisions
Types of Disclosures
Security versus Precision
6.5 Inference
Direct Attack
Indirect Attack
Aggregation
6.6 Multilevel Databases
The Case for Differentiated Security
Granularity
Security Issues
6.7 Proposals for Multilevel Security
Separation
Designs of Multilevel Secure Databases
Concluding Remarks
6.8 Summary of Database Security
6.9 Terms and Concepts
6.10 Where the Field Is Headed
6.11 To Learn More
6.12 Exercises
Chapter 7 Security in Networks
7.1 Network Concepts
The Network
Media
Protocols
Types of Networks
Topologies
Distributed Systems
APIs
Advantages of Computing Networks
7.2 Threats in Networks
What Makes a Network Vulnerable?
Who Attacks Networks?
Threat Precursors
Threats in Transit: Eavesdropping and Wiretapping
Protocol Flaws
Impersonation
Spoofing
Message Confidentiality Threats
Message Integrity Threats
Web Site Defacement
Denial of Service
Distributed Denial of Service
Threats to Active or Mobile Code
Complex Attacks
Summary of Network Vulnerabilities
7.3 Network Security Controls
Security Threat Analysis
Design and Implementation
Architecture
Encryption
Content Integrity
Strong Authentication
Access Controls
Alarms and Alerts
Honeypots
Traffic Flow Security
Controls Review
7.4 Firewalls
What Is a Firewall?
Design of Firewalls
Types of Firewalls
Personal Firewalls
Comparison of Firewall Types
Example Firewall Configurations
What Firewalls Can--and Cannot--Block
7.5 Intrusion Detection Systems
Types of IDSs
Goals for Intrusion Detection Systems
IDS Strengths and Limitations
7.6 Secure E-Mail
Security for E-Mail
Designs
Example Secure E-Mail Systems
7.7 Summary of Network Security
7.8 Terms and Concepts
7.9 Where the Field Is Headed
7.10 To Learn More
7.11 Exercises
Chapter 8 Administering Security
8.1 Security Planning
Contents of a Security Plan
Security Planning Team Members
Assuring Commitment to a Security Plan
Business Continuity Plans
Incident Response Plans
8.2 Risk Analysis
The Nature of Risk
Steps of a Risk Analysis
Arguments For and Against Risk Analysis
8.3 Organizational Security Policies
Purpose
Audience
Contents
Characteristics of a Good Security Policy
Examples
Policy Issue Example: Government E-Mail
8.4 Physical Security
Natural Disasters
Power Loss
Human Vandals
Interception of Sensitive Information
Contingency Planning
Physical Security Recap
8.5 Summary
8.6 Terms and Concepts
8.7 To Learn More
8.8 Exercises
Chapter 9 Legal, Privacy, and Ethical Issues in Computer Security
9.1 Protecting Programs and Data
Copyrights
Patents
Trade Secrets
Protection for Computer Objects
9.2 Information and the Law
Information as an Object
Legal Issues Relating to Information
Protecting Information
Summary of Protection for Computer Artifacts
9.3 Rights of Employees and Employers
Ownership of Products
9.4 Software Failures
Selling Correct Software
Reporting Software Flaws
9.5 Computer Crime
Why a Separate Category for Computer Crime Is Needed
Why Computer Crime Is Hard to Define
Why Computer Crime Is Hard to Prosecute
Examples of Statutes
International Dimensions
Why Computer Criminals Are Hard to Catch
What Computer Crime Does Not Address
Cryptography and the Law
Summary of Legal Issues in Computer Security
9.6 Privacy
Threats to Privacy
Controls Protecting Privacy
9.7 Ethical Issues in Computer Security
Differences Between the Law and Ethics
Studying Ethics
Ethical Reasoning
9.8 Case Studies of Ethics
Case I: Use of Computer Services
Case II: Privacy Rights
Case III: Denial of Service
Case IV: Ownership of Programs
Case V: Proprietary Resources
Case VI: Fraud
Case VII: Accuracy of Information
Case VIII: Ethics of Hacking or Cracking
Codes of Ethics
Conclusion of Computer Ethics
9.9 Terms and Concepts
9.10 To Learn More
9.11 Exercises
Chapter 10 Cryptography Explained
10.1 Mathematics for Cryptography
Complexity
Properties of Arithmetic
10.2 Symmetric Encryption
Fundamental Concepts
Data Encryption Standard (DES)
Advanced Encryption Standard (AES)
10.3 Public Key Encryption Systems
Characteristics
Merkle-Hellman Knapsacks
Rivest-Shamir-Adelman (RSA) Encryption
El Gamal and Digital Signature Algorithms
10.4 Quantum Cryptography
Quantum Physics
Photon Reception
Cryptography with Photons
Implementation
10.5 Summary of Encryption
10.6 Terms and Concepts
10.7 Where the Field Is Headed
10.8 To Learn More
10.9 Exercises
Bibliography
Index