Software Security. Building Security In. Gary McGraw. A Addison-Wesley



Similar documents
Delivery. Enterprise Software. Bringing Agility and Efficiency. Global Software Supply Chain. AAddison-Wesley. Alan W. Brown.

SOA Governance. Stephen G. Bennett, Clive Gee, Robert Laird, Co-authored and edited by Thomas Erl. Governing

Winning the Hardware-Software Game

MIKE COHN. Software Development Using Scrum. VAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

AGILE GAME DEVELOPMENT WITH SCRUM

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

RFID Field Guide. Deploying Radio Frequency Identification Systems. Manish Bhuptani Shahram Moradpour. Sun Microsystems Press A Prentice Hall Title

Building. Applications. in the Cloud. Concepts, Patterns, and Projects. AAddison-Wesley. Christopher M. Mo^ar. Cape Town Sydney.

Development Processes (Lecture outline)

SOA with Java. Realizing Service-Orientation with Java Technologies UPPER SADDLE RIVER, NJ BOSTON INDIANAPOLIS SAN FRANCISCO

Managing the Unmanageable

The Data Access Handbook

Practical Intrusion Analysis

Web Development with TIBCO General Interface

Developing Secure Software, assignment 1

Risk Analysis and the Security Survey

Software Security Touchpoint: Architectural Risk Analysis

Essential Scrum. A Practical Guide to the Most Popular Agile Process. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis

BIRT: A Field Guide to Reporting

Security Metrics. A Beginner's Guide. Caroline Wong. Mc Graw Hill. Singapore Sydney Toronto. Lisbon London Madrid Mexico City Milan New Delhi San Juan

The Crossroads of Accounting & IT

Social Media Marketing

Database. Administration. The Complete. and Procedures. Guide to DBA Practices. AAddison-Wesley. Second Edition. Mullins

Maximum vsphere. Tips, How-Tos,and Best Practices for. Working with VMware vsphere 4. Eric Siebert. Simon Seagrave. Tokyo.

Agile Methods. Introduction to. AAddison-Wesley. Sondra Ashmore, Ph.D. Kristin Runyan. Capetown Sydney Tokyo Singapore Mexico City

Network Security Essentials:

Management. Oracle Fusion Middleware. 11 g Architecture and. Oracle Press ORACLE. Stephen Lee Gangadhar Konduri. Mc Grauu Hill.

Measuring Data Quality for Ongoing Improvement

CHAINED EXPLOITS Advanced Hacking Attacks from Start to Finish

Enterprise. ESXi in the. VMware ESX and. Planning Deployment of. Virtualization Servers. Edward L. Haletky

Software Configuration Management Patterns

Public Relations in Schools

Agile Development & Business Goals. The Six Week Solution. Joseph Gee. George Stragand. Tom Wheeler

BUSINESS INTELLIGENCE

SOA Principles of Service Design

Development Effort & Duration

WebLogic Server 11g Administration Handbook

QUANTITATIVE METHODS. for Decision Makers. Mik Wisniewski. Fifth Edition. FT Prentice Hall

CAREER DEVELOPMENT INTERVENTIONS IN THE 21 ST CENTURY

SERVICES MARKETING PEOPLE, TECHNOLOGY, STRATEGY. Global Edition. Christopher Lovelock. Yale University Jochen Wirtz National University of Singapore

112 BSIMM Activities at a Glance

How To Write A Web Framework In Java

Relationship marketing

Developer's Cookbook. Building Applications with. The Android. the Android SDK. A Addison-Wesley. James Steele Nelson To

ENTERPRISE SYSTEMS FOR MANAGEMENT

CONTEMPORARY DIRECT & INTERACTIVE MARKETING

Computing. Federal Cloud. Service Providers. The Definitive Guide for Cloud. Matthew Metheny ELSEVIER. Syngress is NEWYORK OXFORD PARIS SAN DIEGO

Contents. Assessing Social Media Security. Chapter! The Social Media Security Process 3

Macroeconomics. Manfred Gartner. Prentice Hall THIRD EDITION. University of St Gallen, Switzerland. An imprint of Pearson Education

Purchasing and Supply Chain Management

How To Write A Diagram

IMPROVEMENT THE PRACTITIONER'S GUIDE TO DATA QUALITY DAVID LOSHIN

Computer Security. Introduction to. Michael T. Goodrich Department of Computer Science University of California, Irvine. Roberto Tamassia PEARSON

Enterprise Integration Patterns

Programming Flaws and How to Fix Them

DEC Networks and Architectures

Network Security. Windows 2012 Server. Securing Your Windows. Infrastructure. Network Systems and. Derrick Rountree. Richard Hicks, Technical Editor

THE PSYCHOLOGY OF INVESTING

IT Manager's Handbook

Performance Management

Visual Storytelling with D3

Software Security Engineering: A Key Discipline for Project Managers

Financial Statement Analysis

BUSINESS AND PROFESSIONAL COMMUNICATION

VALUATION The Art and Science of Corporate Investment Decisions

How To Understand The Software Development Lifecycle

Securing the Cloud. Cloud Computer Security Techniques and Tactics. Vic (J.R.) Winkler. Technical Editor Bill Meine ELSEVIER

CRYPTOGRAPHY AND NETWORK SECURITY

International Investments

Advertising Research

Cutting Edge Practices for Secure Software Engineering

Surreptitious Software

for Research and Guiding Innovation for Positive R&D Outcomes Lory Mitchell Wingate

Customer Relationship. Management. Ed Peelen and Rob Beltman

Customer Relationship Management

Master Data Management

Job Hazard Analysis. A Guide for Voluntary Compliance and Beyond. From Hazard to Risk: Transforming the JHA from a Tool to a Process

Knowledge Management

Computer Organization

JAVA r VOLUME II-ADVANCED FEATURES. e^i v it;

Master Data Management and Data Governance Second Edition

Applications. Oracle WebCenter 11 g Handbook: Build Rich, Customizable Enterprise 2.0. Oracle Press ORACLE. Philipp Weckerle.

for Hundreds of Ready-to-Use Phrases to Set the Stage for Productive Conversations, Meetings, and Events Meryl Runion with Diane Windingland

Business Administration of Windchill PDMLink 10.0

Application Security Center overview

Social Work, Social Welfare, and American Society

Using Ml. David M. Kroenke PEARSON

Oracle Backup & Recovery

Transcription:

Software Security Building Security In Gary McGraw A Addison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo Singapore Mexico City

Contents Foreword Preface xix xxiii Acknowledgments About the Author xxxi xxxv Part I: Software Security Fundamentals 1 1 Defining a Discipline 3 The Security Problem 4 The Trinity of Trouble: Why the Problem Is Growing 5 Basic Science 10 Security Problems in Software 14 Bugs and Flaws and Defects, Oh My! 14 The Range of Defects 18 The Problem with Application Security 20 Software Security and Operations 23 Solving the Problem: The Three Pillars of Software Security 25 Pillar I: Applied Risk Management 26 Pillar II: Software Security Touchpoints 27 Pillar III: Knowledge 35 The Rise of Security Engineering 37 Software Security Is Everyone's Job 38 xin

xiv Contents 2 A Risk Management Framework 39 Putting Risk Management into Practice 40 How to Use This Chapter 41 The Five Stages of Activity 42 Stage 1: Understand the Business Context 43 Stage 2: Identify the Business and Technical Risks 43 Stage 3: Synthesize and Rank the Risks 44 Stage 4: Define the Risk Mitigation Strategy 45 Stage 5: Carry Out Fixes and Validate 45 Measuring and Reporting on Risk 46 The RMF Is a Multilevel Loop 46 Applying the RMF: KillerAppCo's iware 1.0 Server 48 Understanding the Business Context 49 Identifying the Business and Technical Risks 50 Synthesizing and Ranking the Risks 63 Defining the Risk Mitigation Strategy 69 Carrying Out Fixes and Validating 73 The Importance of Measurement 73 Measuring Return 74 Measurement and Metrics in the RMF 75 The Cigital Workbench 76 Risk Management Is a Framework for Software Security 79 Part II: Seven Touchpoints for Software Security 81 3 Introduction to Software Security Touchpoints 83 Flyover: Seven Terrific Touchpoints 86 1. Code Review (Tools) 86 2. Architectural Risk Analysis 86 3. Penetration Testing 87 4. Risk-Based Security Testing 87 5. Abuse Cases 88 6. Security Requirements 88 7. Security Operations 88 *. External Analysis 88 Why Only Seven? 89 Black and White: Two Threads Inextricably Intertwined 89 Moving Left 91 Touchpoints as Best Practices 94

Contents xv Who Should Do Software Security? 96 Building a Software Security Group 97 Software Security Is a Multidisciplinary Effort 100 Touchpoints to Success 103 4 Code Review with a Tool 105 Catching Implementation Bugs Early (with a Tool) 106 Aim for Good, Not Perfect 108 Ancient History 109 Approaches to Static Analysis 110 The History of Rule Coverage 112 Modern Rules 114 Tools from Researchland 114 Commercial Tool Vendors 123 Commercial Source Code Analyzers 124 Key Characteristics of a Tool 125 Three Characteristics to Avoid 127 The Fortify Source Code Analysis Suite 127 The Fortify Knowledge Base 132 Using Fortify 134 Touchpoint Process: Code Review 135 Use a Tool to Find Security Bugs 137 5 Architectural Risk Analysis 139 Common Themes among Security Risk Analysis Approaches 140 Traditional Risk Analysis Terminology 144 Knowledge Requirement 147 The Necessity of a Forest-Level View 148 A Traditional Example of a Risk Calculation 152 Limitations of Traditional Approaches 153 Modern Risk Analysis 154 Security Requirements 155 A Basic Risk Analysis Approach 156 Touchpoint Process: Architectural Risk Analysis 161 Attack Resistance Analysis 163 Ambiguity Analysis 165 Weakness Analysis 167 Getting Started with Risk Analysis 169 Architectural Risk Analysis Is a Necessity 170

xvi Contents 6 Software Penetration Testing 171 Penetration Testing Today 173 Software Penetration Testing a Better Approach 178 Make Use of Tools 179 Test More Than Once 182 Incorporating Findings Back into Development 183 Using Penetration Tests to Assess the Application Landscape 184 Proper Penetration Testing Is Good 185 7 Risk-Based Security Testing 187 What's So Different about Security? 191 Risk Management and Security Testing 192 How to Approach Security Testing 193 Who 193 How 194 Thinking about (Malicious) Input 201 Getting Over Input 203 Leapfrogging the Penetration Test 204 8 Abuse Cases 205 Security Is Not a Set of Features 209 What You Can't Do 210 Creating Useful Abuse Cases 211 But No One Would Ever Do That! 212 Touchpoint Process: Abuse Case Development 213 Creating Anti-Requirements 213 Creating an Attack Model 216 An Abuse Case Example 217 Abuse Cases Are Useful 222 9 Software Security Meets Security Operations 223 Don't Stand So Close to Me 224 Kumbaya (for Software Security) 225 Come Together (Right Now) 232 Future's So Bright, I Gotta Wear Shades 235

Contents xvii Part III: Software Security Grows Up 237 10 An Enterprise Software Security Program 239 The Business Climate 240 Building Blocks of Change 242 Building an Improvement Program 246 Establishing a Metrics Program 247 A Three-Step Enterprise Rollout 248 Continuous Improvement 250 What about COTS (and Existing Software Applications)? 251 An Enterprise Information Architecture 253 Adopting a Secure Development Lifecycle 256 11 Knowledge for Software Security 259 Experience, Expertise, and Security 261 Security Knowledge: A Unified View 262 Security Knowledge and the Touchpoints 268 The Department of Homeland Security Build Security In Portal 269 Knowledge Management Is Ongoing 274 Software Security Now 275 12 A Taxonomy of Coding Errors 277 On Simplicity: Seven Plus or Minus Two 279 Input Validation and Representation 279 API Abuse 279 Security Features 280 Time and State 280 Error Handling 281 Code Quality 281 Encapsulation 281 Environment 282 The Phyla 282 More Phyla Needed 289 A Complete Example 290 Lists, Piles, and Collections 292 Nineteen Sins Meet Seven Kingdoms 296 Seven Kingdoms and the O WASP Ten 297 Go Forth (with the Taxonomy) and Prosper 297

xviii Contents 13 Annotated Bibliography and References 299 Annotated Bibliography: An Emerging Literature 299 Required Reading: The Top Five 299 References Cited in Software Security: Building Security In 300 Government and Standards Publications Cited 312 Other Important References 313 Software Security Puzzle Pieces 318 Basic Science: Open Research Areas 319 Appendices 321 A Fortify Source Code Analysis Suite Tutorial 323 1. Introducing the Audit Workbench 324 2. Auditing Source Code Manually 326 3. Ensuring a Working Build Environment 328 4. Running the Source Code Analysis Engine 329 5. Exploring the Basic SCA Engine Command Line Arguments 332 6. Understanding Raw Analysis Results 333 7. Integrating with an Automated Build Process 335 8. Using the Audit Workbench 339 9. Auditing Open Source Applications 342 B ITS4 Rules 345 C An Exercise in Risk Analysis: Smurfware 385 SmurfWare SmurfScanner Risk Assessment Case Study 385 SmurfWare SmurfScanner Design for Security 390 D Glossary 393 Index 395