Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010297421 | QA76.76.T48 M47 2012 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Secure and Resilient Software: Requirements, Test Cases, and Testing Methods provides a comprehensive set of requirements for secure and resilient software development and operation. It supplies documented test cases for those requirements as well as best practices for testing nonfunctional requirements for improved information assurance. This resource-rich book includes:
Pre-developed nonfunctional requirements that can be reused for any software development project Documented test cases that go along with the requirements and can be used to develop a Test Plan for the software Testing methods that can be applied to the test cases provided A CD with all security requirements and test cases as well as MS Word versions of the checklists, requirements, and test cases covered in the bookOffering ground-level, already-developed software nonfunctional requirements and corresponding test cases and methods, this book will help to ensure that your software meets its nonfunctional requirements for security and resilience. The accompanying CD filled with helpful checklists and reusable documentation provides you with the tools needed to integrate security into the requirements analysis, design, and testing phases of your software development lifecycle.
Some Praise for the Book:
This book pulls together the state of the art in thinking about this important issue in a holistic way with several examples. It takes you through the entire lifecycle from conception to implementation ... .
--Doug Cavit, Chief Security Strategist, Microsoft Corporation
...provides the reader with the tools necessary to jump-start and mature security within the software development lifecycle (SDLC).
--Jeff Weekes, Sr. Security Architect at Terra Verde Services
... full of useful insights and practical advice from two au
Author Notes
Mark S. Merkow, CISSP, CISM, CSSLP works at PayPal Inc. (an eBay company) in Scottsdale, Arizona, as Manager of Information Security Policies, Standards, Training, and Awareness in the Information Risk Management area. Mark has more than 35 years of experience in information technology in a variety of roles, including applications development, systems analysis and design, security engineering, and security management. Mark holds a masters degree in decision and info systems from Arizona State University (ASU), a masters of education in distance learning from ASU, and an undergraduate degree in computer info systems from ASU. In addition to his day job, Mark engages in a number of other extracurricular activities, including consulting, course development, online course delivery, and writing columns and books on information technology and information security.
Mark has authored or coauthored ten books on IT and is a contributing editor on four others. Mark remains very active within the information security community, working in a variety of roles for the Financial Services Information Sharing and Analysis Center (FS-ISAC), the Financial Services Technology Consortium (FSTC), and the Financial Services Sector Coordinating Council (FSCCC) on Homeland Security and Critical Infrastructure Protection.
He is the chairman of the Education Committee for the FS-ISAC and is a founding member of the Research and Development Committee of the FSSCC.
Lakshmikanth Raghavan, CISM, CRISC (Laksh) works at PayPal Inc. (an eBay company) as Staff Information Security Engineer in the Information Risk Management area, specializing in application security. Laksh has more than ten years of experience in the areas of information security and information risk management, and has provided consulting services to Fortune 500 companies and financial services companies around the world. Laksh holds a bachelor's degree in electronics and t
Table of Contents
Preface | p. xi |
How This Book Is Organized | p. xii |
What's On the CD? | p. xv |
About the Authors | p. xvii |
Acknowledgements | p. xix |
From Mark Merkow | p. xvii |
From Laksh Raghavan | p. xviii |
Chapter 1 Introduction | p. 1 |
1.1 Secure and Resilient | p. 1 |
1.2 Bad Design Choices Led to the Vulnerable Internet We Know Today | p. 2 |
1.3 HTTP Has Its Problems, Too | p. 4 |
1.4 Design Errors Continue Haunting Us Today | p. 6 |
1.5 Requirements & Design: The Keys to a Successful Software Project | p. 7 |
1.6 How Design Flaws Play Out | p. 10 |
1.6.1 DNS Vulnerability | p. 10 |
1.6.2 The London Stock Exchange | p. 10 |
1.6.3 Medical Equipment | p. 11 |
1.6.4 Airbus A380 | p. 12 |
1.7 Solutions Are In Sight! | p. 12 |
1.8 Notes | p. 13 |
Chapter 2 Nonfunctional Requirements (NFRs) in Context | p. 15 |
2.1 System Quality Requirements Engineering (SQUARE) | p. 15 |
2.1.1 Agree on Definitions | p. 16 |
2.1.2 Identify Assets and Security/Quality Goals | p. 17 |
2.1.3 Perform Risk Assessments | p. 17 |
2.1.4 Elicit Security Requirements | p. 18 |
2.1.5 Prioritize Requirements | p. 20 |
2.2 Characteristics of Good Requirements | p. 21 |
2.3 Summary | p. 22 |
2.4 Notes | p. 23 |
Chapter 3 Resilience and Quality Considerations for Application Software and the Application Runtime Environment | p. 25 |
3.1 Relationships among Nonfunctional Requirements | p. 26 |
3.2 Considerations for Developing NFRs for your Applications and Runtime Environment | p. 26 |
3.3 Checking Your Work | p. 51 |
3.4 Summary | p. 52 |
3.5 Notes | p. 52 |
Chapter 4 Security Requirements for Application Software | p. 55 |
4.1 Security Control Types | p. 55 |
4.2 Think Like an Attacker | p. 56 |
4.3 Detailed Security Requirements | p. 57 |
4.4 Identification Requirements | p. 57 |
4.5 Authentication Requirements | p. 61 |
4.6 Authorization Requirements | p. 71 |
4.7 Security Auditing Requirements | p. 79 |
4.8 Confidentiality Requirements | p. 85 |
4.9 Integrity Requirements | p. 91 |
4.10 Availability Requirements | p. 96 |
4.11 Nonrepudiation Requirements | p. 97 |
4.12 Immunity Requirements | p. 99 |
4.13 Survivability Requirements | p. 102 |
4.14 Systems Maintenance Security Requirements | p. 104 |
4.15 Privacy Requirements | p. 110 |
4.16 Summary | p. 134 |
4.17 References | p. 135 |
Chapter 5 Security Services for the Application Operating Environment | p. 137 |
5.1 The Open Group Architecture Framework (TOGAF) | p. 138 |
5.2 Standardizing Tools for an Enterprise Architecture | p. 139 |
5.3 Security Technical Reference Model (TRM) | p. 140 |
5.3.1 Identification and Authentication | p. 141 |
5.3.2 System Entry Control | p. 141 |
5.3.3 Audit | p. 142 |
5.3.4 Access Control | p. 143 |
5.3.5 Nonrepudiation | p. 143 |
5.3.6 Security Management | p. 144 |
5.3.7 Trusted Recovery | p. 144 |
5.3.8 Encryption | p. 144 |
5.3.9 Trusted Communications | p. 145 |
5.4 Summary | p. 146 |
5.5 References | p. 146 |
Chapter 6 Software Design Considerations for Security and Resilience | p. 147 |
6.1 Design Issues | p. 147 |
6.2 Architecture and Design Considerations | p. 150 |
6.3 Special Security Design Considerations for Payment Applications on Mobile Communications Devices | p. 154 |
6.4 Designing for Integrity | p. 155 |
6.5 Architecture and Design Review Checklist | p. 156 |
6.6 Summary | p. 165 |
6.7 References | p. 165 |
Chapter 7 Best Practices for Converting Requirements to Secure Software Designs | p. 167 |
7.1 Secure Design Approach | p. 167 |
7.2 Reusable Security APIs/Libraries | p. 168 |
7.3 Security Frameworks | p. 168 |
7.4 Establishing and Following Best Practices for Design | p. 169 |
7.5 Security Requirements | p. 169 |
7.6 Security Recommendations | p. 170 |
7.7 What's an Attack Surface? | p. 171 |
7.8 What Is Managed Code? | p. 173 |
7.9 Understanding Business Requirements for Security Design | p. 175 |
7.10 Summary | p. 176 |
7.11 References | p. 176 |
Chapter 8 Security Test Cases | p. 177 |
8.1 Standardized Testing Policy | p. 177 |
8.2 Security Test Cases | p. 178 |
8.2.1 Test Cases for Identification Requirements | p. 179 |
8.2.2 Test Cases for Authentication Requirements | p. 181 |
8.3 Test Cases for Authorization Requirements | p. 189 |
8.3.1 Test Cases for Security Auditing Requirements | p. 195 |
8.3.2 Test Cases for Confidentiality Requirements | p. 199 |
8.3.3 Test Cases for Integrity Requirements | p. 203 |
8.3.4 Test Cases for Availability Requirements | p. 206 |
8.3.5 Test Cases for Nonrepudiation Requirements | p. 207 |
8.3.6 Test Cases for Immunity Requirements | p. 209 |
8.3.7 Test Cases for Survivability Requirements | p. 210 |
8.3.8 Test Cases for Systems Maintenance Security Requirements | p. 212 |
8.4 Summary | p. 215 |
Chapter 9 Testing Methods and Best Practices | p. 217 |
9.1 Secure Testing Approach | p. 217 |
9.2 OWASP's Application Security Verification Standard (ASVS) | p. 217 |
9.2.1 Application Security Verification Levels | p. 219 |
9.2.2 Level 1-Automated Verification | p. 220 |
9.2.3 Level 2-Manual Verification | p. 220 |
9.2.4 Level 3-Design Verification | p. 221 |
9.2.5 Level 4-Internal Verification | p. 222 |
9.2.6 Security Testing Methods | p. 224 |
9.3 Manual Source Code Review | p. 224 |
9.4 Automated Source Code Analysis | p. 225 |
9.4.1 Automated Reviews Compared with Manual Reviews | p. 226 |
9.4.2 Automated Source Code Analysis Tools-Deployment Strategy | p. 226 |
9.4.3 IDE Integration for Developers | p. 227 |
9.4.4 Build Integration for Governance | p. 227 |
9.4.5 Automated Dynamic Analysis | p. 228 |
9.4.6 Limitations of Automated Dynamic Analysis Tools | p. 229 |
9.4.7 Automated Dynamic Analysis Tools-Deployment Strategy | p. 229 |
9.4.8 Developer Testing | p. 230 |
9.4.9 Centralized Quality Assurance Testing | p. 230 |
9.5 Penetration (Pen) Testing | p. 231 |
9.5.1 Gray Box Testing | p. 232 |
9.6 Summary | p. 232 |
9.7 References | p. 232 |
Chapter 10 Connecting the Moving Parts | p. 235 |
10.1 OpenSAMM | p. 236 |
10.2 Security Requirements | p. 238 |
10.2.1 Security Requirements: Level 1 | p. 239 |
10.2.2 Security Requirements: Level 2 | p. 241 |
10.2.3 Security Requirements: Level 3 | p. 242 |
10.3 Security Testing | p. 243 |
10.3.1 Security Testing: Level 1 | p. 245 |
10.3.2 Security Testing: Level 2 | p. 246 |
10.3.3 Security Testing: Level 3 | p. 247 |
10.4 Wrap-Up | p. 249 |
10.5 References | p. 249 |
Index | p. 251 |