Table of Contents

  • Foreword
  • Preface
  • Acknowledgments
  • About the Author
  • Part I: Software Security Fundamentals

    1. Defining a Discipline

      • The Security Problem
        • The Trinity of Trouble: Why the Problem Is Growing
        • Basic Science
      • Security Problems in Software
        • Bugs and Flaws and Defects, Oh My!
        • The Range of Defects
        • The Problem with Application Security
        • Software Security and Operations
      • Solving the Problem: The Three Pillars of Software Security
        • Pillar I: Applied Risk Management
        • Pillar II: Software Security Touchpoints
        • Pillar III: Knowledge
      • The Rise of Security Engineering
        • Software Security Is Everyone's Job
    2. A Risk Management Framework

      • Putting Risk Management into Practice
      • How to Use This Chapter
      • The Five Stages of Activity
        • Stage 1: Understand the Business Context
        • Stage 2: Identify the Business and Technical Risks
        • Stage 3: Synthesize and Rank the Risks
        • Stage 4: Define the Risk Mitigation Strategy
        • Stage 5: Carry Out Fixes and Validate
      • Measuring and Reporting on Risk
      • The RMF Is a Multilevel Loop
      • Applying the RMF: KillerAppCo's iWare 1.0 Server
        • Understanding the Business Context
        • Identifying the Business and Technical Risks
        • Synthesizing and Ranking the Risks
        • Defining the Risk Mitigation Strategy
        • Carrying Out Fixes and Validating
      • The Importance of Measurement
        • Measuring Return
        • Measurement and Metrics in the RMF
      • The Cigital Workbench
      • Risk Management Is a Framework for Software Security
  • Part II: Seven Touchpoints for Software Security

    1. Introduction to Software Security Touchpoints

      • Flyover: Seven Terrific Touchpoints
        • 1. Code Review (Tools)
        • 2. Architectural Risk Analysis
        • 3. Penetration Testing
        • 4. Risk-Based Security Testing
        • 5. Abuse Cases
        • 6. Security Requirements
        • 7. Security Operations
        • *. External Analysis
        • Why Only Seven?
      • Black and White: Two Threads Inextricably Intertwined
      • Moving Left
      • Touchpoints as Best Practices
      • Who Should Do Software Security?
        • Building a Software Security Group
      • Software Security Is a Multidisciplinary Effort
      • Touchpoints to Success
    2. Code Review with a Tool

      • Catching Implementation Bugs Early (with a Tool)
      • Aim for Good, Not Perfect
      • Ancient History
      • Approaches to Static Analysis
        • The History of Rule Coverage
        • Modern Rules
      • Tools from Researchland
      • Commercial Tool Vendors
        • Commercial Source Code Analyzers
        • Key Characteristics of a Tool
        • Three Characteristics to Avoid
        • The Fortify Source Code Analysis Suite
        • The Fortify Knowledge Base
        • Using Fortify
      • Touchpoint Process: Code Review
      • Use a Tool to Find Security Bugs
    3. Architectural Risk Analysis

      • Common Themes among Security Risk Analysis Approaches
      • Traditional Risk Analysis Terminology
      • Knowledge Requirement
      • The Necessity of a Forest-Level View
      • A Traditional Example of a Risk Calculation
      • Limitations of Traditional Approaches
      • Modern Risk Analysis
        • Security Requirements
        • A Basic Risk Analysis Approach
      • Touchpoint Process: Architectural Risk Analysis
        • Attack Resistance Analysis
        • Ambiguity Analysis
        • Weakness Analysis
      • Getting Started with Risk Analysis
    4. Software Penetration Testing

      • Penetration Testing Today
      • Software Penetration Testing—a Better Approach
        • Make Use of Tools
        • Test More Than Once
      • Incorporating Findings Back into Development
      • Using Penetration Tests to Assess the Application
      • Landscape
      • Proper Penetration Testing Is Good
    5. Risk-Based Security Testing

      • What's So Different about Security?
      • Risk Management and Security Testing
      • How to Approach Security Testing
        • Who
        • How
      • Thinking about (Malicious) Input
      • Getting Over Input
      • Leapfrogging the Penetration Test
    6. Abuse Cases

      • Security Is Not a Set of Features
      • What You Can't Do
      • Creating Useful Abuse Cases
        • But No One Would Ever Do That!
      • Touchpoint Process: Abuse Case Development
        • Creating Anti-Requirements
        • Creating an Attack Model
      • An Abuse Case Example
      • Abuse Cases Are Useful
    7. Software Security Meets Security Operations

      • Don't Stand So Close to Me
      • Kumbaya (for Software Security)
      • Come Together (Right Now)
      • Future's So Bright, I Gotta Wear Shades
  • Part III: Software Security Grows Up

    1. An Enterprise Software Security Program

      • The Business Climate
      • Building Blocks of Change
      • Building an Improvement Program
      • Establishing a Metrics Program
        • A Three-Step Enterprise Rollout
      • Continuous Improvement
      • What about COTS (and Existing Software Applications)?
        • An Enterprise Information Architecture
      • Adopting a Secure Development Lifecycle
    2. Knowledge for Software Security

      • Experience, Expertise, and Security
      • Security Knowledge: A Unified View
      • Security Knowledge and the Touchpoints
      • The Department of Homeland Security Build Security In Portal
      • Knowledge Management Is Ongoing
      • Software Security Now
    3. A Taxonomy of Coding Errors

      • On Simplicity: Seven Plus or Minus Two
        • Input Validation and Representation
        • API Abuse
        • Security Features
        • Time and State
        • Error Handling
        • Code Quality
        • Encapsulation
        • Environment
      • The Phyla
        • More Phyla Needed
      • A Complete Example
      • Lists, Piles, and Collections
        • Nineteen Sins Meet Seven Kingdoms
        • Seven Kingdoms and the OWASP Ten
      • Go Forth (with the Taxonomy) and Prosper
    4. Annotated Bibliography and References

      • Annotated Bibliography: An Emerging Literature
        • Required Reading: The Top Five
        • References Cited in Software Security: Building Security In
        • Government and Standards Publications Cited
        • Other Important References
      • Software Security Puzzle Pieces
        • Basic Science: Open Research Areas
  • Appendices

    1. Fortify Source Code Analysis Suite Tutorial

      1. Introducing the Audit Workbench
      2. Auditing Source Code Manually
      3. Ensuring a Working Build Environment
      4. Running the Source Code Analysis Engine
      5. Exploring the Basic SCA Engine Command Line Arguments
      6. Understanding Raw Analysis Results
      7. Integrating with an Automated Build Process
      8. Using the Audit Workbench
      9. Auditing Open Source Applications
    2. ITS4 Rules

    3. An Exercise in Risk Analysis: Smurfware

      • SmurfWare SmurfScanner Risk Assessment Case Study
      • SmurfWare SmurfScanner Design for Security
    4. Glossary

    5. Index

Copyright © 2006, Gary McGraw

AltStyle によって変換されたページ (->オリジナル) /