Software Development

Secure Programming Best Practices

Overview

The primary objective of this course is to teach professional computer programmers about the common methods used by hackers to exploit vulnerabilities in computer programs, and how to program defensively to avoid introducing such vulnerabilities into their own programs.

CLASS FORMAT AND SCHEDULE

This is a self-paced, instructor-mentored course. Students access the course lessons through UMBC Training Centers’ Web-based Blackboard Learning Management System (LMS). A textbook will be mailed to the student shortly after successful class registration. Students complete lessons independently, working at their own pace. Students may email questions to the instructor and submit programming exercises to the instructor for review and feedback.

To complete the course, the student must complete and submit the required programming assignments within the Blackboard LMS. Students will have 90 days from the date of course registration to complete the course. It is recommended that students complete at least one Blackboard module (lesson) per week. Nothing prevents the student from working at a faster pace and completing in the course in a shorter amount of time.

Duration

2 Days

Who Should Take This Course

System Requirements

A complete list of system requirements can be found here.

Audience

Software Developers, Web Developers, Systems Testers, Systems Architects, Security Analysts

Prerequisites

Students should have at least one year of computer programming experience in a structured programming language such as Java, JavaScript, Python, C#, or C/C++.  Familiarity with Web and Internet technologies is recommended.  A good understanding of the concepts of modern computer operating systems, computer architecture, and computer networks is recommended.

Why You Should Take This Course

Upon completion of this course, the student will be able to:

  • describe common families of vulnerabilities in computer programs
  • explain how software vulnerabilities are exploited by hackers
  • identify common vulnerabilities within existing source code
  • describe the effects that common exploits have on computer programs, their host systems, and computer networks
  • illustrate techniques to avoid introducing common vulnerabilities in software development
  • apply secure programming principles throughout the software development lifecycle

Course Outline

Secure Programming Best Practices

  • Secure Programming and Information Security Concepts
  • Common Security Vulnerabilities
  • Programming Best Practices
  • CVE/SANS Top 25 Most Dangerous Software Errors
  • Network Programming
  • Shell Code, Exploits and Hacking Tools
  • Web & E-Commerce Applications
  • Software Activation, Piracy Blocking, and Automatic Updates
  • Secure Application Testing
  • Writing Secure Documentation and Error Messages
Search UMBC Training Centers