Software Security: Building Security In (Paperback)

Gary McGraw

  • 出版商: Addison Wesley
  • 出版日期: 2006-01-23
  • 售價: $2,630
  • 貴賓價: 9.5$2,499
  • 語言: 英文
  • 頁數: 448
  • 裝訂: Paperback
  • ISBN: 0321356705
  • ISBN-13: 9780321356703
  • 相關分類: 資訊安全
  • 立即出貨 (庫存=1)




"When it comes to software security, the devil is in the details. This book tackles the details."
--Bruce Schneier, CTO and founder, Counterpane, and author of Beyond Fear and Secrets and Lies

"McGraw's book shows you how to make the 'culture of security' part of your development lifecycle."
--Howard A. Schmidt, Former White House Cyber Security Advisor

"McGraw is leading the charge in software security. His advice is as straightforward as it is actionable. If your business relies on software (and whose doesn't), buy this book and post it up on the lunchroom wall."
--Avi Rubin, Director of the NSF ACCURATE Center; Professor, Johns Hopkins University; and coauthor of Firewalls and Internet Security

Beginning where the best-selling book Building Secure Software left off, Software Security teaches you how to put software security into practice.The software security best practices, or touchpoints, described in this book have their basis in good software engineering and involve explicitly pondering security throughout the software development lifecycle. This means knowing and understanding common risks (including implementation bugsand architectural flaws), designing for security, and subjecting all software artifacts to thorough, objective risk analyses and testing.

Software Security is about putting the touchpoints to work for you. Because you can apply these touchpoints to the software artifacts you already produce as you develop software, you can adopt this book's methods without radically changing the way you work. Inside you'll find detailed explanations of

  • Risk management frameworks and processes
  • Code review using static analysis tools
  • Architectural risk analysis
  • Penetration testing
  • Security testing
  • Abuse case development

In addition to the touchpoints, Software Security covers knowledge management, training and awareness, and enterprise-level software security programs.

Now that the world agrees that software security is central to computer security, it is time to put philosophy into practice. Create your own secure development lifecycle by enhancing your existing software development lifecycle with the touchpoints described in this book. Let this expert author show you how to build more secure software by building security in.


Table of Contents:

Foreword xix
Preface xxiii
Acknowledgments xxxi
About the Author xxxv
Part I: Software Security Fundamentals 1
Chapter 1: Defining a Discipline 3
The Security Problem 4
Security Problems in Software 14
Solving the Problem: The Three Pillars of Software Security 25
The Rise of Security Engineering 37

Chapter 2: A Risk Management Framework 39
Putting Risk Management into Practice 40
How to Use This Chapter 41
The Five Stages of Activity 42
The RMF Is a Multilevel Loop 46
Applying the RMF: KillerAppCo's iWare 1.0 Server 48
The Importance of Measurement 73
The Cigital Workbench 76
Risk Management Is a Framework for Software Security 79

Part II: Seven Touchpoints for Software Security 81
Chapter 3: Introduction to Software Security Touchpoints 83
Flyover: Seven Terrific Touchpoints 86
Black and White: Two Threads Inextricably Intertwined 89
Moving Left 91
Touchpoints as Best Practices 94
Who Should Do Software Security? 96
Software Security Is a Multidisciplinary Effort 100
Touchpoints to Success 103

Chapter 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
Tools from Researchland 114
Commercial Tool Vendors 123
Touchpoint Process: Code Review 135
Use a Tool to Find Security Bugs 137

Chapter 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
Touchpoint Process: Architectural Risk Analysis 161
Getting Started with Risk Analysis 169
Architectural Risk Analysis Is a Necessity 170

Chapter 6: Software Penetration Testing 171
Penetration Testing Today 173
Software Penetration Testing--a Better Approach 178
Incorporating Findings Back into Development 183
Using Penetration Tests to Assess the Application Landscape 184
Proper Penetration Testing Is Good 185

Chapter 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
Thinking about (Malicious) Input 201
Getting Over Input 203
Leapfrogging the Penetration Test 204

Chapter 8: Abuse Cases 205
Security Is Not a Set of Features 209
What You Can't Do 210
Creating Useful Abuse Cases 211
Touchpoint Process: Abuse Case Development 213
An Abuse Case Example 217
Abuse Cases Are Useful 222

Chapter 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

Part III: Software Security Grows Up 237
Chapter 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
Continuous Improvement 250
What about COTS (and Existing Software Applications)? 251
Adopting a Secure Development Lifecycle 256

Chapter 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

Chapter 12: A Taxonomy of Coding Errors 277
On Simplicity: Seven Plus or Minus Two 279
The Phyla 282
A Complete Example 290
Lists, Piles, and Collections 292
Go Forth (with the Taxonomy) and Prosper 297

Chapter 13: Annotated Bibliography and References 299
Annotated Bibliography: An Emerging Literature 299
Software Security Puzzle Pieces 318

Appendices 321
Appendix 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

Appendix B: ITS4 Rules 345
Appendix C: An Exercise in Risk Analysis: Smurfware 385
SmurfWare SmurfScanner Risk Assessment Case Study 385
SmurfWare SmurfScanner Design for Security 390

Appendix D: Glossary 393
Index 395


這本書解決了軟體安全的細節問題。Bruce Schneier(Counterpane的CTO和創始人,以及《Beyond Fear》和《Secrets and Lies》的作者)表示:“軟體安全的魔鬼就在於細節。”Howard A. Schmidt(前白宮網絡安全顧問)表示:“McGraw的書向您展示了如何將'安全文化'融入您的開發生命周期。”Avi Rubin(NSF ACCURATE中心主任,約翰霍普金斯大學教授,以及《Firewalls and Internet Security》的合著者)表示:“McGraw在軟體安全方面領先一步。他的建議既直接又可行。如果您的業務依賴軟體(誰不依賴呢),請購買這本書並將其貼在午餐室的牆上。”
《軟體安全》從暢銷書《Building Secure Software》的延續開始,教導您如何將軟體安全付諸實踐。本書描述的軟體安全最佳實踐或觸點基於良好的軟體工程,並要求在軟體開發生命周期中明確考慮安全性。這意味著了解和理解常見的風險(包括實現錯誤和架構缺陷),為安全性進行設計,並對所有軟體產物進行徹底、客觀的風險分析和測試。
- 風險管理框架和流程
- 使用靜態分析工具進行代碼審查
- 架構風險分析
- 渗透測試
- 安全測試
- 濫用案例開發