2007Unpublished venueRequires access

Secure Programming with Static Analysis

B. Chess, Jacob West

Open publisher page 226 citations

Abstract

The First Expert Guide to Static Analysis for Software Security!Creating secure code requires more than just good intentions. Programmers need to know that their code will be safe in an almost infinite number of scenarios and configurations. Static source code analysis gives users the ability to review their work with a fine-toothed comb and uncover the kinds of errors that lead directly to security vulnerabilities. Now, there's a complete guide to static analysis: how it works, how to integrate it into the software development processes, and how to make the most of it during security code review. Static analysis experts Brian Chess and Jacob West look at the most common types of security defects that occur today. They illustrate main points using Java and C code examples taken from real-world security incidents, showing how coding errors are exploited, how they could have been prevented, and how static analysis can rapidly uncover similar mistakes. This book is for everyone concerned with building more secure software: developers, security engineers, analysts, and testers.Coverage includes:? Why conventional bug-catching often misses security problems? How static analysis can help programmers get security right? The critical attributes and algorithms that make or break a static analysis tool? 36 techniques for making static analysis more effective on your code? More than 70 types of serious security vulnerabilities, with specific solutions? Example vulnerabilities from Firefox, OpenSSH, MySpace, eTrade, Apache httpd, and many more? Techniques for handling untrusted input? Eliminating buffer overflows: tactical and strategic approaches? Avoiding errors specific to Web applications, Web services, and Ajax? Security-aware logging, debugging, and error/exception handling? Creating, maintaining, and sharing secrets and confidential information? Detailed tutorials that walk you through the static analysis process“We designed Java so that it could be analyzed statically. This book shows you how to apply advanced static analysis techniques to create more secure, more reliable software.”i??Bill Joy, Co-founder of Sun Microsystems, co-inventor of the Java programming language“'Secure Programming with Static Analysis' is a great primer on static analysis for security-minded developers and security practitioners. Well-written, easy to read, tells you what you need to know.”i??David Wagner, Associate Professor, University of California Berkeley“Software developers are the first and best line of defense for the security of their code. This book gives them the security development knowledge and the tools they need in order to eliminate vulnerabilities before they move into the final products that can be exploited.”i??Howard A. Schmidt, Former White House Cyber Security AdvisorBRIAN CHESS is Founder and Chief Scientist of Fortify Software, where his research focuses on practical methods for creating secure systems. He holds a Ph.D. in Computer Engineering from University of California Santa Cruz, where he studied the application of static analysis to finding security-related code defects.JACOB WEST manages Fortify Software's Security Research Group, which is responsible for building security knowledge into Fortify's products. He brings expertise in numerous programming languages, frameworks, and styles together with deep knowledge about how real-world systems fail.CD contains a working demonstration version of Fortify Software's Source Code Analysis (SCA) product; extensive Java and C code samples; and the tutorial chapters from the book in PDF format.Part I: Software Security and Static Analysisi? i? i? i? i? i? i? 1 1i? i? i? i? i? i? i? i? i? The Software Security Problemi? i? i? i? i? i? i? i? i? 3 2i? i? i? i? i? i? i? i? i? Introduction to Static Analysis 21 3i? i? i? i? i? i? i? i? i? Static Analysis as Part of the Code Review Processi? i? i? 47 4i? i? i? i? i? i? i? i? i? Static Analysis Internalsi? i? i? i? i? i? i? i? i? 71Part II: Pervasive Problemsi? i? i? i? i? i? i? i? i? i? i? 115 5i? i? i? i? i? i? i? i? i? Handling Input 117 6i? i? i? i? i? i? i? i? i? Buffer Overflowi? i? i? i? i? i? i? i? i? i? 175 7i? i? i? i? i? i? i? i? i? Bride of Buffer Overflowi? i? i? i? i? i? i? i? 235 8i? i? i? i? i? i? i? i? i? Errors and Exceptionsi? 265Part III: Features and Flavorsi? i? i? i? i? i? i? i? 295 9i? i? i? i? i? i? i? i? i? Web Applicationsi? i? i? i? i? i? i? 297 10i? i? i? i? i? i? i? i? XML and Web Servicesi? i? i? i? i? i? i? i? i? i? 349 11i? i? i? i? i? i? i? i? Privacy and Secretsi? i? i? i? 379 12i? i? i? i? i? i? i? i? Privileged Programsi? i? i? 421Part IV: Static Analysis in Practicei? 457 13i? i? i? i? i? i? i? i? Source Code Analysis Exercises for Javai? i? i? i? i? i? i? 459 14i? i? i? i? i? i? i? i? Source Code Analysis Exercises for C 503 Epiloguei? i? i? i? i? i? i? i? i? 541Referencesi? i? i? i? i? 545Indexi? i? 559

About this research paper

What this paper is about

The First Expert Guide to Static Analysis for Software Security!Creating secure code requires more than just good intentions. Programmers need to know that their code will be safe in an almost infinite number of scenarios and configurations. Static source code analysis gives users the ability to review their work with a fine-toothed comb and uncover the kinds of errors that lead directly to security vulnerabilities. Now, there's a complete guide to static analysis: how it works, how to integrate it into the software development processes, and how to make the most of it during security code review. Static analysis experts Brian Chess and Jacob West look at the most common types of security defects that occur today. They illustrate main points using Java and C code examples taken from real-world security incidents, showing how coding errors are exploited, how they could have been prevented, and how static analysis can rapidly uncover similar mistakes. This book is for everyone concerned with building more secure software: developers, security engineers, analysts, and testers.Coverage includes:? Why conventional bug-catching often misses security problems? How static analysis can help programmers get security right? The critical attributes and algorithms that make or break a static analysis tool? 36 techniques for making static analysis more effective on your code? More than 70 types of serious security vulnerabilities, with specific solutions? Example vulnerabilities from Firefox, OpenSSH, MySpace, eTrade, Apache httpd, and many more? Techniques for handling untrusted input? Eliminating buffer overflows: tactical and strategic approaches? Avoiding errors specific to Web applications, Web services, and Ajax? Security-aware logging, debugging, and error/exception handling? Creating, maintaining, and sharing secrets and confidential information? Detailed tutorials that walk you through the static analysis process“We designed Java so that it could be analyzed statically. This book shows you how to apply advanced static analysis techniques to create more secure, more reliable software.”i??Bill Joy, Co-founder of Sun Microsystems, co-inventor of the Java programming language“'Secure Programming with Static Analysis' is a great primer on static analysis for security-minded developers and security practitioners. Well-written, easy to read, tells you what you need to know.”i??David Wagner, Associate Professor, University of California Berkeley“Software developers are the first and best line of defense for the security of their code. This book gives them the security development knowledge and the tools they need in order to eliminate vulnerabilities before they move into the final products that can be exploited.”i??Howard A. Schmidt, Former White House Cyber Security AdvisorBRIAN CHESS is Founder and Chief Scientist of Fortify Software, where his research focuses on practical methods for creating secure systems. He holds a Ph.D. in Computer Engineering from University of California Santa Cruz, where he studied the application of static analysis to finding security-related code defects.JACOB WEST manages Fortify Software's Security Research Group, which is responsible for building security knowledge into Fortify's products. He brings expertise in numerous programming languages, frameworks, and styles together with deep knowledge about how real-world systems fail.CD contains a working demonstration version of Fortify Software's Source Code Analysis (SCA) product; extensive Java and C code samples; and the tutorial chapters from the book in PDF format.Part I: Software Security and Static Analysisi? i? i? i? i? i? i? 1 1i? i? i? i? i? i? i? i? i? The Software Security Problemi? i? i? i? i? i? i? i? i? 3 2i? i? i? i? i? i? i? i? i? Introduction to Static Analysis 21 3i? i? i? i? i? i? i? i? i? Static Analysis as Part of the Code Review Processi? i? i? 47 4i? i? i? i? i? i? i? i? i? Static Analysis Internalsi? i? i? i? i? i? i? i? i? 71Part II: Pervasive Problemsi? i? i? i? i? i? i? i? i? i? i? 115 5i? i? i? i? i? i? i? i? i? Handling Input 117 6i? i? i? i? i? i? i? i? i? Buffer Overflowi? i? i? i? i? i? i? i? i? i? 175 7i? i? i? i? i? i? i? i? i? Bride of Buffer Overflowi? i? i? i? i? i? i? i? 235 8i? i? i? i? i? i? i? i? i? Errors and Exceptionsi? 265Part III: Features and Flavorsi? i? i? i? i? i? i? i? 295 9i? i? i? i? i? i? i? i? i? Web Applicationsi? i? i? i? i? i? i? 297 10i? i? i? i? i? i? i? i? XML and Web Servicesi? i? i? i? i? i? i? i? i? i? 349 11i? i? i? i? i? i? i? i? Privacy and Secretsi? i? i? i? 379 12i? i? i? i? i? i? i? i? Privileged Programsi? i? i? 421Part IV: Static Analysis in Practicei? 457 13i? i? i? i? i? i? i? i? Source Code Analysis Exercises for Javai? i? i? i? i? i? i? 459 14i? i? i? i? i? i? i? i? Source Code Analysis Exercises for C 503 Epiloguei? i? i? i? i? i? i? i? i? 541Referencesi? i? i? i? i? 545Indexi? i? 559

Why it matters

OpenAlex reports 226 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

The First Expert Guide to Static Analysis for Software Security!Creating secure code requires more than just good intentions. Programmers need to know that their code will be safe in an almost infinite number of scenarios and configurations. Static source code analysis gives users the ability to review their work with a fine-toothed comb and uncover the kinds of errors that lead directly to security vulnerabilities. Now, there's a complete guide to static analysis: how it works, how to integrate it into the software development processes, and how to make the most of it during security code review. Static analysis experts Brian Chess and Jacob West look at the most common types of security defects that occur today. They illustrate main points using Java and C code examples taken from real-world security incidents, showing how coding errors are exploited, how they could have been prevented, and how static analysis can rapidly uncover similar mistakes. This book is for everyone concerned with building more secure software: developers, security engineers, analysts, and testers.Coverage includes:? Why conventional bug-catching often misses security problems? How static analysis can help programmers get security right? The critical attributes and algorithms that make or break a static analysis tool? 36 techniques for making static analysis more effective on your code? More than 70 types of serious security vulnerabilities, with specific solutions? Example vulnerabilities from Firefox, OpenSSH, MySpace, eTrade, Apache httpd, and many more? Techniques for handling untrusted input? Eliminating buffer overflows: tactical and strategic approaches? Avoiding errors specific to Web applications, Web services, and Ajax? Security-aware logging, debugging, and error/exception handling? Creating, maintaining, and sharing secrets and confidential information? Detailed tutorials that walk you through the static analysis process“We designed Java so that it could be analyzed statically. This book shows you how to apply advanced static analysis techniques to create more secure, more reliable software.”i??Bill Joy, Co-founder of Sun Microsystems, co-inventor of the Java programming language“'Secure Programming with Static Analysis' is a great primer on static analysis for security-minded developers and security practitioners. Well-written, easy to read, tells you what you need to know.”i??David Wagner, Associate Professor, University of California Berkeley“Software developers are the first and best line of defense for the security of their code. This book gives them the security development knowledge and the tools they need in order to eliminate vulnerabilities before they move into the final products that can be exploited.”i??Howard A. Schmidt, Former White House Cyber Security AdvisorBRIAN CHESS is Founder and Chief Scientist of Fortify Software, where his research focuses on practical methods for creating secure systems. He holds a Ph.D. in Computer Engineering from University of California Santa Cruz, where he studied the application of static analysis to finding security-related code defects.JACOB WEST manages Fortify Software's Security Research Group, which is responsible for building security knowledge into Fortify's products. He brings expertise in numerous programming languages, frameworks, and styles together with deep knowledge about how real-world systems fail.CD contains a working demonstration version of Fortify Software's Source Code Analysis (SCA) product; extensive Java and C code samples; and the tutorial chapters from the book in PDF format.Part I: Software Security and Static Analysisi? i? i? i? i? i? i? 1 1i? i? i? i? i? i? i? i? i? The Software Security Problemi? i? i? i? i? i? i? i? i? 3 2i? i? i? i? i? i? i? i? i? Introduction to Static Analysis 21 3i? i? i? i? i? i? i? i? i? Static Analysis as Part of the Code Review Processi? i? i? 47 4i? i? i? i? i? i? i? i? i? Static Analysis Internalsi? i? i? i? i? i? i? i? i? 71Part II: Pervasive Problemsi? i? i? i? i? i? i? i? i? i? i? 115 5i? i? i? i? i? i? i? i? i? Handling Input 117 6i? i? i? i? i? i? i? i? i? Buffer Overflowi? i? i? i? i? i? i? i? i? i? 175 7i? i? i? i? i? i? i? i? i? Bride of Buffer Overflowi? i? i? i? i? i? i? i? 235 8i? i? i? i? i? i? i? i? i? Errors and Exceptionsi? 265Part III: Features and Flavorsi? i? i? i? i? i? i? i? 295 9i? i? i? i? i? i? i? i? i? Web Applicationsi? i? i? i? i? i? i? 297 10i? i? i? i? i? i? i? i? XML and Web Servicesi? i? i? i? i? i? i? i? i? i? 349 11i? i? i? i? i? i? i? i? Privacy and Secretsi? i? i? i? 379 12i? i? i? i? i? i? i? i? Privileged Programsi? i? i? 421Part IV: Static Analysis in Practicei? 457 13i? i? i? i? i? i? i? i? Source Code Analysis Exercises for Javai? i? i? i? i? i? i? 459 14i? i? i? i? i? i? i? i? Source Code Analysis Exercises for C 503 Epiloguei? i? i? i? i? i? i? i? i? 541Referencesi? i? i? i? i? 545Indexi? i? 559

Key concepts: Static analysis, Secure coding, Computer science, Static program analysis, Software security assurance, Security bug, Computer security, Application security

Related papers

Back to paper searchBrowse research topicsOriginal source
Secure Programming with Static Analysis — Research Paper | ScholarLens