Start course

This course covers section one of CSSLP Domain Four: Common Software Vulnerabilities and Countermeasures. You'll learn the elements, ideas, concepts, and principles about what issues must be considered before embarking on a building program of secure software.

Learning Objectives

  • Understand programming fundamentals
  • Become familiar with different development methodologies
  • Learn about common software attacks and the means of exploitation

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.


Now virtualization is another new concern, but virtualization itself is not a new invention. It is, however, proving to be virtually universal in deployment and computing. Now, first, it started with only memory expansion. A cheap inexpensive way of using software to create the illusion of having more memory than you actually have. This way, we didn't have to add physical chip space, starting in 1967, until 1986 when the virtualization of other components began to take shape in an operational fashion.

Now, of course, nearly every hardware device we've got, from cell phone to mainframe, is now able to do that. and virtually every device you can describe is virtualizable. These are, of course, logical equivalents to the metal machine, essentially, function without form. Programmatically, they should be functionally transparent to a program, however, that doesn't always prove to be the case. To put it another way, you can't take something built to run on a system inside your own data center and fork lifted into the cloud unmodified.

The applications therefore, must be designed to interface with the virtual environment in the proper way. Otherwise, they won't work at all. And systems must be adapted to affect the portability from machine to cloud, the common environment that they are attempted to be fork lifted into. This brings on new dimensions of computation, new programming architecture, and tools.

Now, the same design, construction and implementation mandates still apply. In other words, again, "trust no one." The greatly expanded threat base, being that you're now exposed to the world across the internet, gives a much greater attack surface due to the greater complexity of these components and, in particular, to a much broader exposure.

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.

Covered Topics