SlideShare a Scribd company logo
Best Practices of Static Analysis in the
SDLC




                    Part 1
                November 2010
Agenda



                 1. House Keeping - Certification Overview
                 2. Very Brief Parasoft Introduction
                 3. Today’s Agenda




Parasoft Proprietary and Confidential
House Keeping - Certification

                2 – 45 minute live interactive sessions focused on Static
                Analysis using best practices for development, testing, and
                management

                      Session 1: Best Practices of Static Analysis
                      Fri, Nov 12, 11:00am - 12:00pm PST / 2:00pm – 3:00pm EST
                      Session 2: Best Practices of Static Analysis
                      Fri, Nov 19, 11:00am - 12:00pm PST / 2:00pm - 3:00pm EST

                Materials published day after on-line session
                Final exam (multiple choice) on-line
                Certificate of completion from Parasoft Corporation




Parasoft Proprietary and Confidential
Important Note


                        This course is not designed to
                              Teach how to do security
                              Review (in depth) the reasons “why” we
                              should have solid software
                              Cover how-to use any specific tools


                        This course is designed to
                              Explain available SA techniques and what
                              they’re used for
                              Help avoid common pitfalls
                              Provide in-depth examples of selected best
                              practices and teach you how to optimize them
                              for the software development environment

Parasoft Proprietary and Confidential
About Parasoft

                  Founded in 1987
                  27 Patents for automated quality processes
                  Build quality into the process
                  Static Analysis tools since 1994




Parasoft Proprietary and Confidential
Parasoft Capabilities


       Technologies
              Quality Policy Management
              Task Management
              Code Analysis – Pattern Based
              Code Analysis – Flow Based
              Code Analysis - Metrics
              Code Review
              Unit Testing Framework
              Memory Error Detection
              Runtime Analysis
              Message/Protocol Testing
              Application Behavior Emulation
              Functional Testing
              Load Testing

Parasoft Proprietary and Confidential
Agenda for this session




              Define static analysis
              Define “false positives”
              Static analysis for Security
              Static analysis for defect prevention
              Static analysis for process improvement




Parasoft Proprietary and Confidential
What IS Static Analysis?



              Variety of methods
                    Peer Review / Manual Code Review / Code Inspection
                    Pattern-based code scanners
                    Flow-based code scanners
                    Metrics-based code scanners
                    Compiler / build output




Parasoft Proprietary and Confidential
What is: Peer Code Review


             What:
               A human review process provides checks and balances
               for finding and preventing human mistakes.
             Why:
               Find defects early
               Find real functional problems
               Increase breadth of understanding
               Increase productivity




Parasoft Proprietary and Confidential
Peer Code Review



          Review policies
                Coder / reviewer pairs
                QA reviewer / test review
                Frequency
                Scope
                Pre commit vs. post commit review
          Automation potential
                A system to enforce the review policy
                Track un-reviewed changes
                Facilitate non-blocking communication



Parasoft Proprietary and Confidential
Methods of Code Review



              Code Review “in a room”
                    Wastes time
                    Developers are inhibited
              Using an automated infrastructure
                    consistent




Parasoft Proprietary and Confidential
Determining Reviewers


              Who reviews whom
                    How close are they in the code?
                    Increase code understanding




Parasoft Proprietary and Confidential
What is: Pattern-Based SA


              What:
                    Identify specific patterns in the code
              Why:
                    Find bugs
                    Ensure inclusion of required items
                          Security
                          Branding
                    Prevent Problems
                    Improve Developers




Parasoft Proprietary and Confidential
Pattern-Based Static Analysis


              Quick scan to list possible problems
              Fixing violations prevents certain classes of
              errors
              Each source file is analyzed separately
              Static analysis categories include:
                    Logical Errors
                    API Misuse
                    Typographical Errors
                    Security
                    Threads and Synchronization
                    Performance and Optimization

Parasoft Proprietary and Confidential
What is: Data Flow Analysis


              What:
                    Simulate execution to find patterns
              Why:
                    Find real bugs




Parasoft Proprietary and Confidential
Data Flow Analysis


              Simulate hypothetical execution paths
              Detect possible errors along those paths
              Data flow analysis error categories include:
                    Exceptions
                    Optimization
                    Resource Leaks
                    API misuse
                    Security




Parasoft Proprietary and Confidential
What is: Code Metrics



              What:
                    Measurement of code based on various statistics
              Why:
                    Understanding code
                    Possible problems




Parasoft Proprietary and Confidential
Code Analysis Perceptions



              “Static analysis is a pain”
              False positives has varying definitions
                          I don’t like it
                          It was wrong




Parasoft Proprietary and Confidential
Pattern based false positives



              True false positives generally rule deficiency
              Context
                    Does this apply here and now?
                    In-code suppressions to document decision




Parasoft Proprietary and Confidential
Flow Analysis False Positives



              False positives are inevitable
              Finds real bugs
              Flow analysis is not comprehensive




Parasoft Proprietary and Confidential
Static Analysis for Security



              Flow analysis finds low-hanging fruit
              Flow won’t guarantee security
              SA prevents security problems
              Input validation is key




Parasoft Proprietary and Confidential
Static Analysis for Prevention



              It’s quicker to deal with false positives than bugs
              Flow analysis finds complicated problems
              Runtime analysis should match flow analysis
              Rules should be chosen based on real problems




Parasoft Proprietary and Confidential
SA for Process Improvement



              Flow analysis won’t find everything
              Flow rules have corresponding pattern-based
              rules
              Prevent the potential rather than chase paths




Parasoft Proprietary and Confidential
House Keeping - Certification

                2 – 45 minute live interactive sessions focused on Static
                Analysis using best practices for development, testing, and
                management

                      Session 1: Best Practices of Static Analysis
                      Fri, Nov 12, 11:00am - 12:00pm PST / 2:00pm – 3:00pm EST
                      Session 2: Best Practices of Static Analysis
                      Fri, Nov 19, 11:00am - 12:00pm PST / 2:00pm - 3:00pm EST
                             Process infrastructure
                             Workflows
                             Choosing the best configuration
                             And more
                Materials published day after on-line session
                Final exam (multiple choice) on-line
                Certificate of completion from Parasoft Corporation




Parasoft Proprietary and Confidential
Q&A



              Questions




Parasoft Proprietary and Confidential
Further Reading

           Automated Defect Prevention            (Huizinga & Kolawa)
           …Principles and processes to improve the software
           development process.


           Effective C++ / More Effective C++             (Meyers)
           …Definitive work on proper C++ design and programming.


           Effective Java               (Bloch)
           …Best-practice solutions for programming challenges.

           Design Patterns (Gamma, Helm, Johnson, Vlissides)
           …Timeless and elegant solutions to common problems.



Parasoft Proprietary and Confidential

More Related Content

PPTX
Static Code Analysis
PPTX
Static code analysis
PPTX
Sonar Tool - JAVA code analysis
PPTX
Java Code Quality Tools
PPTX
Server Side Template Injection by Mandeep Jadon
PPTX
Top 10 static code analysis tool
PPTX
How To Improve Quality With Static Code Analysis
PPTX
DevSecOps: Securing Applications with DevOps
Static Code Analysis
Static code analysis
Sonar Tool - JAVA code analysis
Java Code Quality Tools
Server Side Template Injection by Mandeep Jadon
Top 10 static code analysis tool
How To Improve Quality With Static Code Analysis
DevSecOps: Securing Applications with DevOps

What's hot (20)

PDF
Static code analysis
PPTX
Static Analysis Security Testing for Dummies... and You
PPT
Code Review
KEY
Security Code Review: Magic or Art?
PPTX
Java Code Quality Tools
PDF
Java Code Review Checklist
PDF
Code-Review-Principles-Process-and-Tools (1)
PDF
PDF
Code Quality Lightning Talk
PPTX
PDF
Effective code reviews
PPTX
Sonar Review
PDF
Java Source Code Analysis using SonarQube
PPTX
Building a high quality+ products with SCA
PDF
Code Review: How and When
PDF
Simplified Security Code Review Process
PPTX
Static Analysis with Sonarlint
PDF
Code Review
PPTX
Null meet Code Review
PPTX
Improving Code Quality Through Effective Review Process
Static code analysis
Static Analysis Security Testing for Dummies... and You
Code Review
Security Code Review: Magic or Art?
Java Code Quality Tools
Java Code Review Checklist
Code-Review-Principles-Process-and-Tools (1)
Code Quality Lightning Talk
Effective code reviews
Sonar Review
Java Source Code Analysis using SonarQube
Building a high quality+ products with SCA
Code Review: How and When
Simplified Security Code Review Process
Static Analysis with Sonarlint
Code Review
Null meet Code Review
Improving Code Quality Through Effective Review Process
Ad

Viewers also liked (13)

PDF
Static Code Analysis
PDF
Static Analysis and Code Optimizations in Glasgow Haskell Compiler
PPTX
Poster Analysis Source Code
PDF
Doxygen 사용법
PPT
Source Code Analysis with SAST
PDF
RIPS - static code analyzer for vulnerabilities in PHP
PPTX
Hp fortify source code analyzer(sca)
PPTX
A2 - broken authentication and session management(OWASP thailand chapter Apri...
PPTX
A8 cross site request forgery (csrf) it 6873 presentation
PDF
Static Analysis For Security and DevOps Happiness w/ Justin Collins
PDF
Secure Code Review 101
PPTX
OWASP A1 - Injection | The art of manipulation
PPTX
OWASP A7 and A8
Static Code Analysis
Static Analysis and Code Optimizations in Glasgow Haskell Compiler
Poster Analysis Source Code
Doxygen 사용법
Source Code Analysis with SAST
RIPS - static code analyzer for vulnerabilities in PHP
Hp fortify source code analyzer(sca)
A2 - broken authentication and session management(OWASP thailand chapter Apri...
A8 cross site request forgery (csrf) it 6873 presentation
Static Analysis For Security and DevOps Happiness w/ Justin Collins
Secure Code Review 101
OWASP A1 - Injection | The art of manipulation
OWASP A7 and A8
Ad

Similar to Best Practices of Static Code Analysis in the SDLC (20)

PDF
Parasoft fda software compliance part2
PDF
How to Select a Static Analysis Tool
PDF
Java Defects
PDF
Parasoft Concerto A complete ALM platform that ensures quality software can b...
PPTX
How to Avoid Continuously Delivering Faulty Software
PPTX
Jason Kent - AppSec Without Additional Tools
PDF
How penetration testing techniques can help you improve your qa skills
PPT
Agnitio: its static analysis, but not as we know it
PDF
Beyond Static Analysis: Integrating C and C++ Static Analysis with Unit Testi...
PPTX
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
PDF
Is av dead or just missing in action - avar2016
PPTX
Is Antivirus (AV) Dead or Just Missing in Action
PPTX
Cloud Security vs Security in the Cloud
PPT
Zap attack proxy
PPTX
Evaluating Web App, Mobile App, and API Security - Matt Cohen
PPT
Cost effective web application testing
PPT
Cost Effective Web Application Testing
PPT
Cost effective web application testing
PDF
Devops security-An Insight into Secure-SDLC
PPTX
Security Testing - Tools & Techniques
Parasoft fda software compliance part2
How to Select a Static Analysis Tool
Java Defects
Parasoft Concerto A complete ALM platform that ensures quality software can b...
How to Avoid Continuously Delivering Faulty Software
Jason Kent - AppSec Without Additional Tools
How penetration testing techniques can help you improve your qa skills
Agnitio: its static analysis, but not as we know it
Beyond Static Analysis: Integrating C and C++ Static Analysis with Unit Testi...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
Is av dead or just missing in action - avar2016
Is Antivirus (AV) Dead or Just Missing in Action
Cloud Security vs Security in the Cloud
Zap attack proxy
Evaluating Web App, Mobile App, and API Security - Matt Cohen
Cost effective web application testing
Cost Effective Web Application Testing
Cost effective web application testing
Devops security-An Insight into Secure-SDLC
Security Testing - Tools & Techniques

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Electronic commerce courselecture one. Pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPT
Teaching material agriculture food technology
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Cloud computing and distributed systems.
Encapsulation theory and applications.pdf
Review of recent advances in non-invasive hemoglobin estimation
Electronic commerce courselecture one. Pdf
20250228 LYD VKU AI Blended-Learning.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Unlocking AI with Model Context Protocol (MCP)
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Building Integrated photovoltaic BIPV_UPV.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Teaching material agriculture food technology
NewMind AI Weekly Chronicles - August'25 Week I
Cloud computing and distributed systems.

Best Practices of Static Code Analysis in the SDLC

  • 1. Best Practices of Static Analysis in the SDLC Part 1 November 2010
  • 2. Agenda 1. House Keeping - Certification Overview 2. Very Brief Parasoft Introduction 3. Today’s Agenda Parasoft Proprietary and Confidential
  • 3. House Keeping - Certification 2 – 45 minute live interactive sessions focused on Static Analysis using best practices for development, testing, and management Session 1: Best Practices of Static Analysis Fri, Nov 12, 11:00am - 12:00pm PST / 2:00pm – 3:00pm EST Session 2: Best Practices of Static Analysis Fri, Nov 19, 11:00am - 12:00pm PST / 2:00pm - 3:00pm EST Materials published day after on-line session Final exam (multiple choice) on-line Certificate of completion from Parasoft Corporation Parasoft Proprietary and Confidential
  • 4. Important Note This course is not designed to Teach how to do security Review (in depth) the reasons “why” we should have solid software Cover how-to use any specific tools This course is designed to Explain available SA techniques and what they’re used for Help avoid common pitfalls Provide in-depth examples of selected best practices and teach you how to optimize them for the software development environment Parasoft Proprietary and Confidential
  • 5. About Parasoft Founded in 1987 27 Patents for automated quality processes Build quality into the process Static Analysis tools since 1994 Parasoft Proprietary and Confidential
  • 6. Parasoft Capabilities Technologies Quality Policy Management Task Management Code Analysis – Pattern Based Code Analysis – Flow Based Code Analysis - Metrics Code Review Unit Testing Framework Memory Error Detection Runtime Analysis Message/Protocol Testing Application Behavior Emulation Functional Testing Load Testing Parasoft Proprietary and Confidential
  • 7. Agenda for this session Define static analysis Define “false positives” Static analysis for Security Static analysis for defect prevention Static analysis for process improvement Parasoft Proprietary and Confidential
  • 8. What IS Static Analysis? Variety of methods Peer Review / Manual Code Review / Code Inspection Pattern-based code scanners Flow-based code scanners Metrics-based code scanners Compiler / build output Parasoft Proprietary and Confidential
  • 9. What is: Peer Code Review What: A human review process provides checks and balances for finding and preventing human mistakes. Why: Find defects early Find real functional problems Increase breadth of understanding Increase productivity Parasoft Proprietary and Confidential
  • 10. Peer Code Review Review policies Coder / reviewer pairs QA reviewer / test review Frequency Scope Pre commit vs. post commit review Automation potential A system to enforce the review policy Track un-reviewed changes Facilitate non-blocking communication Parasoft Proprietary and Confidential
  • 11. Methods of Code Review Code Review “in a room” Wastes time Developers are inhibited Using an automated infrastructure consistent Parasoft Proprietary and Confidential
  • 12. Determining Reviewers Who reviews whom How close are they in the code? Increase code understanding Parasoft Proprietary and Confidential
  • 13. What is: Pattern-Based SA What: Identify specific patterns in the code Why: Find bugs Ensure inclusion of required items Security Branding Prevent Problems Improve Developers Parasoft Proprietary and Confidential
  • 14. Pattern-Based Static Analysis Quick scan to list possible problems Fixing violations prevents certain classes of errors Each source file is analyzed separately Static analysis categories include: Logical Errors API Misuse Typographical Errors Security Threads and Synchronization Performance and Optimization Parasoft Proprietary and Confidential
  • 15. What is: Data Flow Analysis What: Simulate execution to find patterns Why: Find real bugs Parasoft Proprietary and Confidential
  • 16. Data Flow Analysis Simulate hypothetical execution paths Detect possible errors along those paths Data flow analysis error categories include: Exceptions Optimization Resource Leaks API misuse Security Parasoft Proprietary and Confidential
  • 17. What is: Code Metrics What: Measurement of code based on various statistics Why: Understanding code Possible problems Parasoft Proprietary and Confidential
  • 18. Code Analysis Perceptions “Static analysis is a pain” False positives has varying definitions I don’t like it It was wrong Parasoft Proprietary and Confidential
  • 19. Pattern based false positives True false positives generally rule deficiency Context Does this apply here and now? In-code suppressions to document decision Parasoft Proprietary and Confidential
  • 20. Flow Analysis False Positives False positives are inevitable Finds real bugs Flow analysis is not comprehensive Parasoft Proprietary and Confidential
  • 21. Static Analysis for Security Flow analysis finds low-hanging fruit Flow won’t guarantee security SA prevents security problems Input validation is key Parasoft Proprietary and Confidential
  • 22. Static Analysis for Prevention It’s quicker to deal with false positives than bugs Flow analysis finds complicated problems Runtime analysis should match flow analysis Rules should be chosen based on real problems Parasoft Proprietary and Confidential
  • 23. SA for Process Improvement Flow analysis won’t find everything Flow rules have corresponding pattern-based rules Prevent the potential rather than chase paths Parasoft Proprietary and Confidential
  • 24. House Keeping - Certification 2 – 45 minute live interactive sessions focused on Static Analysis using best practices for development, testing, and management Session 1: Best Practices of Static Analysis Fri, Nov 12, 11:00am - 12:00pm PST / 2:00pm – 3:00pm EST Session 2: Best Practices of Static Analysis Fri, Nov 19, 11:00am - 12:00pm PST / 2:00pm - 3:00pm EST Process infrastructure Workflows Choosing the best configuration And more Materials published day after on-line session Final exam (multiple choice) on-line Certificate of completion from Parasoft Corporation Parasoft Proprietary and Confidential
  • 25. Q&A Questions Parasoft Proprietary and Confidential
  • 26. Further Reading Automated Defect Prevention (Huizinga & Kolawa) …Principles and processes to improve the software development process. Effective C++ / More Effective C++ (Meyers) …Definitive work on proper C++ design and programming. Effective Java (Bloch) …Best-practice solutions for programming challenges. Design Patterns (Gamma, Helm, Johnson, Vlissides) …Timeless and elegant solutions to common problems. Parasoft Proprietary and Confidential