Code Analysis
Code Analysis

This course covers section three of CSSLP Domain Four: Secure Coding Operations. You'll learn about code analysis, code reviews, secure build environments, anti-tampering techniques, and version management.

Learning Objectives

  • Learn how to analyze code and review it
  • Understand how to ensure that build environments are secure
  • Understand the importance of anti-tampering techniques and version control when building software

Intended Audience

This course is intended for anyone looking to develop secure software as well as those studying for the CSSLP certification.


Any experience relating to information security would be advantageous, but not essential. All topics discussed are thoroughly explained and presented in a way allowing the information to be absorbed by everyone, regardless of experience within the security field.


So in the whole area of code analysis, this seeks to discover syntactic errors, logical flaws, and other weaknesses and vulnerabilities that may be embedded in the code itself. So overall, code analysis should be done at every level: unit, stream, subsystem, full system, et cetera, since the interactions become more complex and variable and can produce different kinds of results with changes.

Now, the process will, of course, involve various techniques, some of which will be automated, some manual, some will be static while others will be processed as dynamic. Now, automated code review software checks source code for compliance with a predefined set of rules or best practices. Manual code reviews are processed on small portions of code by programmers, not the builders, it should be pointed out, to visually examine the code and its flow.

Static methods are combinations of the above, looking at the code in different ways but without actual execution. Whereas dynamic methods execute the code or portions of it in differing context to observe actual performance. And this would include thread management, process isolation, error handling, and so forth. Now, one of the things we need to examine first before going further is that there are weaknesses of source code analysis tools. It can be that many security vulnerabilities are difficult to find automatically, simply because they may not be something that the program tool were using its program to find exactly what we're looking for.

Every automated tool suffers from the plague of potential false positives and negatives. And this environment would be no different. We frequently cannot recognize configuration issues through automated source code analysis. It can be difficult to prove that a thing that we believe is a vulnerability in the absolute sense is not in fact a vulnerability in the context being examined. And the difficulty of analyzing code that cannot be compiled leads to other linguistic and syntactic problems.

About the Author
Learning Paths

Mr. Leo has been in Information System for 38 years, and an Information Security professional for over 36 years.  He has worked internationally as a Systems Analyst/Engineer, and as a Security and Privacy Consultant.  His past employers include IBM, St. Luke’s Episcopal Hospital, Computer Sciences Corporation, and Rockwell International.  A NASA contractor for 22 years, from 1998 to 2002 he was Director of Security Engineering and Chief Security Architect for Mission Control at the Johnson Space Center.  From 2002 to 2006 Mr. Leo was the Director of Information Systems, and Chief Information Security Officer for the Managed Care Division of the University of Texas Medical Branch in Galveston, Texas.


Upon attaining his CISSP license in 1997, Mr. Leo joined ISC2 (a professional role) as Chairman of the Curriculum Development Committee, and served in this role until 2004.   During this time, he formulated and directed the effort that produced what became and remains the standard curriculum used to train CISSP candidates worldwide.  He has maintained his professional standards as a professional educator and has since trained and certified nearly 8500 CISSP candidates since 1998, and nearly 2500 in HIPAA compliance certification since 2004.  Mr. leo is an ISC2 Certified Instructor.