Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Secure programming with static analysisJune 2007
Publisher:
  • Addison-Wesley Professional
ISBN:978-0-321-42477-8
Published:29 June 2007
Pages:
624
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
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.”ï 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.”ï 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.”ï 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 Analysisï ï ï ï ï ï ï 1 1ï ï ï ï ï ï ï ï ï The Software Security Problemï ï ï ï ï ï ï ï ï 3 2ï ï ï ï ï ï ï ï ï¾ Introduction to Static Analysis 21 3ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Static Analysis as Part of the Code Review Processï¾ ï¾ ï¾ 47 4ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Static Analysis Internalsï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ 71Part II: Pervasive Problemsï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ 115 5ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Handling Input 117 6ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Buffer Overflowï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ 175 7ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Bride of Buffer Overflowï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ 235 8ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Errors and Exceptionsï¾ 265Part III: Features and Flavorsï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ 295 9ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Web Applicationsï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ 297 10ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ XML and Web Servicesï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ 349 11ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Privacy and Secretsï¾ ï¾ ï¾ ï¾ 379 12ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Privileged Programsï¾ ï¾ ï¾ 421Part IV: Static Analysis in Practiceï¾ 457 13ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Source Code Analysis Exercises for Javaï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ 459 14ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ Source Code Analysis Exercises for C 503 Epilogueï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ ï¾ 541Referencesï¾ ï¾ ï¾ ï¾ ï¾ 545Indexï¾ ï¾ 559

Cited By

  1. ter Beek M, Damiani F, Lienhardt M, Mazzanti F and Paolini L (2021). Efficient static analysis and verification of featured transition systems, Empirical Software Engineering, 27:1, Online publication date: 1-Jan-2022.
  2. Panigrahi P, Paul A and Karfa C (2022). Quantifying Information Leakage for Security Verification of Compiler Optimizations, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 41:11, (4385-4396), Online publication date: 1-Nov-2022.
  3. Abidi M, Grichi M and Khomh F Behind the scenes Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering, (72-81)
  4. ACM
    Beek M, Damiani F, Lienhardt M, Mazzanti F and Paolini L Static Analysis of Featured Transition Systems Proceedings of the 23rd International Systems and Software Product Line Conference - Volume A, (39-51)
  5. Bandi A, Fellah A and Bondalapati H (2019). Embedding security concepts in introductory programming courses, Journal of Computing Sciences in Colleges, 34:4, (78-89), Online publication date: 1-Apr-2019.
  6. ACM
    Cho J, Xu S, Hurley P, Mackay M, Benjamin T and Beaumont M (2019). STRAM, ACM Computing Surveys, 51:6, (1-47), Online publication date: 30-Nov-2019.
  7. ACM
    Mahoney W, Franco J, Hoff G and McDonald J Leave It to Weaver Proceedings of the 8th Software Security, Protection, and Reverse Engineering Workshop, (1-9)
  8. ACM
    Pfretzschner B and ben Othmane L Identification of Dependency-based Attacks on Node.js Proceedings of the 12th International Conference on Availability, Reliability and Security, (1-6)
  9. Teixeira F, Nogueira J and Oliveira L Securing networked embedded systems code through distributed systems analysis 2017 IFIP/IEEE Symposium on Integrated Network and Service Management (IM), (847-851)
  10. Berger B, Sohr K and Koschke R Automatically Extracting Threats from Extended Data Flow Diagrams Proceedings of the 8th International Symposium on Engineering Secure Software and Systems - Volume 9639, (56-71)
  11. Piessens F and Verbauwhede I Software security Proceedings of the 2016 Conference on Design, Automation & Test in Europe, (990-999)
  12. ACM
    Kang Y, Ray B and Jana S APEx: automated inference of error specifications for C APIs Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (472-482)
  13. ACM
    Christakis M and Bird C What developers want and need from program analysis: an empirical study Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (332-343)
  14. Qadir J and Hasan O (2015). Applying Formal Methods to Networking: Theory, Techniques, and Applications, IEEE Communications Surveys & Tutorials, 17:1, (256-291), Online publication date: 1-Jan-2015.
  15. Erbatur S and Hofmann M GuideForce Revised Selected Papers of the SEFM 2015 Collocated Workshops on Software Engineering and Formal Methods - Volume 9509, (75-89)
  16. Cui B, Hou T, Long B and Xu L Bidirectional Analysis Method of Static XSS Defect Detection Technique Based On Database Query Language Transactions on Computational Collective Intelligence XIX - Volume 9380, (32-44)
  17. ACM
    Zhu J, Chu B, Lipford H and Thomas T Mitigating Access Control Vulnerabilities through Interactive Static Analysis Proceedings of the 20th ACM Symposium on Access Control Models and Technologies, (199-209)
  18. ACM
    Teixeira F, Machado G, Pereira F, Wong H, Nogueira J and Oliveira L SIoT Proceedings of the 14th International Conference on Information Processing in Sensor Networks, (310-321)
  19. Keivanloo I and Rilling J (2014). Software trustworthiness 2.0-A semantic web enabled global source code analysis approach, Journal of Systems and Software, 89:C, (33-50), Online publication date: 1-Mar-2014.
  20. Stroggylos K, Mitropoulos D, Tzermias Z, Papadopoulos P, Rafailidis F, Spinellis D, Ioannidis S and Katsaros P TRACER Proceedings of the 7th International Conference on Trust and Trustworthy Computing - Volume 8564, (218-219)
  21. Wang S and Zheng B Static application security testing for crypto-currency ecosystems Proceedings of 24th Annual International Conference on Computer Science and Software Engineering, (339-342)
  22. ACM
    Smith M and Dehlinger J Enabling static security vulnerability analysis in PHP applications for novice developers with SSVChecker Proceedings of the 2014 Conference on Research in Adaptive and Convergent Systems, (278-283)
  23. ACM
    Stroggylos K, Mitropoulos D, Tzermias Z, Papadopoulos P, Rafailidis F, Spinellis D, Ioannidis S and Katsaros P Securing Legacy Code with the TRACER Platform Proceedings of the 18th Panhellenic Conference on Informatics, (1-6)
  24. Johnson B, Song Y, Murphy-Hill E and Bowdidge R Why don't software developers use static analysis tools to find bugs? Proceedings of the 2013 International Conference on Software Engineering, (672-681)
  25. ACM
    Chi H, Jones E and Brown J Teaching Secure Coding Practices to STEM Students Proceedings of the 2013 on InfoSecCD '13: Information Security Curriculum Development Conference, (42-48)
  26. Johnson B A study on improving static analysis tools: why are we not using them? Proceedings of the 34th International Conference on Software Engineering, (1607-1609)
  27. ACM
    Edwards N and Chen L An historical examination of open source releases and their vulnerabilities Proceedings of the 2012 ACM conference on Computer and communications security, (183-194)
  28. ACM
    Xie J, Lipford H and Chu B Evaluating interactive support for secure programming Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, (2707-2716)
  29. Heckman S and Williams L (2011). A systematic literature review of actionable alert identification techniques for automated static code analysis, Information and Software Technology, 53:4, (363-387), Online publication date: 1-Apr-2011.
  30. ACM
    Xie J, Chu B, Lipford H and Melton J ASIDE Proceedings of the 27th Annual Computer Security Applications Conference, (267-276)
  31. ACM
    Fehnker A, Huuck R and Rödiger W Model checking dataflow for malicious input Proceedings of the Workshop on Embedded Systems Security, (1-10)
  32. ACM
    Sohr K, Mustafa T and Nowak A Software security aspects of Java-based mobile phones Proceedings of the 2011 ACM Symposium on Applied Computing, (1494-1501)
  33. ACM
    Avancini A and Ceccato M Towards security testing with taint analysis and genetic algorithms Proceedings of the 2010 ICSE Workshop on Software Engineering for Secure Systems, (65-71)
  34. ACM
    Liang G, Wu L, Wu Q, Wang Q, Xie T and Mei H Automatic construction of an effective training set for prioritizing static analysis warnings Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, (93-102)
  35. Zeng F, Mao L, Chen Z and Cao Q Mutation-based testing of integer overflow vulnerabilities Proceedings of the 5th International Conference on Wireless communications, networking and mobile computing, (4416-4419)
  36. Hart T, Chechik M and Lie D Security benchmarking using partial verification Proceedings of the 3rd conference on Hot topics in security, (1-6)
  37. ACM
    Ware M and Fox C Securing Java code Proceedings of the 2008 workshop on Static analysis, (12-21)
  38. Sherriff M, Heckman S, Lake M and Williams L Identifying fault-prone files using static analysis alerts through singular value decomposition Proceedings of the 2007 conference of the center for advanced studies on Collaborative research, (276-279)
  39. Ezenwoye O Integrating Security into Computer Science Curriculum 2019 IEEE Frontiers in Education Conference (FIE), (1-8)
Contributors
  • Hewlett-Packard Inc.

Recommendations