|
Course Name: Certified Secure Code Engineer
Duration: 4 days
Language: English
Format: • Instructor-led classroom • Computer Based Training • Live Virtual Training
Prerequisites: • Experience in at least 2 modules of the outline is beneficial but not required
Student Materials: • Student Workbook • Student CD • Key Security Concepts & Definitions Book • Quick Tips section, Summary section • Questions and answers for each module
|

This 4-day course delivers a strong and in-depth view into fundamentals of software security and secure coding. Through a mixture of instructor-led lectures and hands on exercises, students will have learn how to identify security flaws early in the development process and how design and code to eliminate these flaws. All examples and lessons are presented in a variety of high level and scripting languages
For 2012, the C)SCE is included only in the C)SWAE (Certified Secure Web Application Engineer) and is not sold separately at this time.
Course Overview:
Software security is big concern for organizations today. More and more attacks are being directed towards software applications and understanding these attacks and how to design software to protect against these attacks is becoming more of a necessity. This course seeks to provide a foundation for those professionals who are responsible for designing, architecting, coding and testing software solutions through a series of lectures and hands on labs.
Upon Completion:
Students will have a sound understanding of common vulnerabilities found in today's software and how to defend against them. Students will gain knowledge in creating secure designs and code and how to apply this knowledge to their daily tasks. This kind of qualification is especially expected in the financial industry where bank and home insurance databases can contain millions of customer and financial records.
Certified Secure Code Engineer Module Topics:
Module 1 -Software Security Explained Module 2 -Setting the Stage (The Attack) Module 3 -Risk Management (Developer to Developer) Module 4 -Threat Modelling Module 5 -The Secure Software Development Life Cycle Module 6 -Secure Architecture Design Module 7 -Secure Coding Module 8 -Cryptography Module 9 -Attacking Databases Module 10 –Attacking Web Technologies
Module 1: Software Security Explained
In order for students to understand how to write secure software, they must understand what software security is. In module 1, students will gain a deep understanding of key security concepts and issues in with securing software.
1. Definition of Software Security 2. Understanding Software Security 3. Foundation of Security 4. Challenges With Security 5. The Rise of Insecure Software 6. Software Security Methodology 7. The Teams ‘s Roles and Responsibilities 8. Developer’s Role and Responsibilities 9. Common Vulnerabilities 10. Staying Informed
Module 2: Setting the Stage (The Attack)
Protecting your system means knowing your attacker. This module covers the process that attackers follow when targeting and attacking systems. Students get an introduction to the penetration testing process, how to use these techniques to test their software and a variety of tools used during the process.
1. Learning Attack Methods 2. Developer's Point of View 3. Know the Attacker 4. Methodology of Penetration Testing 5. Reconnaissance 6. Methods of Obtaining Information 7. Passive vs. Active Reconnaissance 8. Footprinting Defined 9. Footprinting Countermeasures 10. Enumeration 11. Introduction to Port Scanning 12. Case Study and Lab
Module 3: Risk Management
If you know what the risks are, how do you track them? Risk management is a key concept needed to identify and track risks throughout the development process to ensure that risks are captured and mitigated appropriately.
1. Important Terms 2. The Importance of Risk Management 3. When Should it Start 4. The Risk Management Process
a. Know The Business b. Identify Risk c. Classy Risk d. Develop Mitigation Plan e. Implement f. Validate
5. Risk Analysis 6. Report Your findings 7. Case Study and Lab
Module 4: Threat Modeling
How do you identify weak points in your software? This module covers a framework that can be used to identify various attack vectors in software designs and how to use this information to secure your system.
1. Threat Modeling Defined 2. The Threat Modeling Process
a. Identify Security Objectives b. Application Review c. Application Decomposition d. Identify Threats e. Identify Vulnerabilities f. Determine Countermeasures
3. Threat Methodologies
a. Stride b. Dread
4. How to Respond to Threats 5. Mitigating Threats 6. Case Study and Lab
Module 5: Secure SDLC
To consistently write secure software, the process of building software must incorporate security. This module covers the process of designing and building secure software and the problems with traditional methods.
1. Secure SDLC Overview 2. A Secure Process 3. Manager's Point of view 4. Developer's Point of View 5. Why Change? 6. Consumer Expectations 7. Business Responsibility 8. Phases of The Development Lifecycle
a. Project Initiation/Concept b. Gathering Requirements c. Analysis and Architecture Design d. Development e. Unit Testing f. Quality Assurance g. Implementation
9. Case Study and Lab
Module 6: Secure Architecture and Design
Secure code starts with a secure design. Module 6 focuses on the process of designing software with security built in and the benefits of this method versus the traditional method of adding security during or after the code has been written.
1. Design It Secure 2. Design Considerations 3. The SD3 Framework
a. Secure By Design b. Secure By Default c. Secure in Deployment
4. Understanding the Environment 5. Technical Issue 6. Security in Layers 7. Attacks
a. Man-in-the Middle b. Session Hijacking
8. Buy vs. Build 9. Filters 10. Case Study and Lab
Module 7: Writing Secure Code
This covers the key concepts students need to write secure code. Students will learn how to build validation and logging frameworks to prevent the most common attacks, log potential intrusion attempts and audit user and system activity. Students will also learn how to perform code reviews.
1. Data Validation 2. Defending the Attack 3. Error and Exception Handling 4. Logging and Auditing 5. Authentication 6. Web Authentication Methods
a. Basic and Digest Authentication b. Form Based Authentication c. Certificate Based Authentication d. Strong Authentication
7. Authorization 8. Security Code Reviews
a. Know the Vulnerabilities b. Know The Business Risks c. When to Conduct the Review d. Who Should Be Involved e. What to Look For f. Fixing the Issues g. Automated Tools
9. Case Study and Lab
Module 8: Cryptography
Developers must understand the different encryption options available and when to choose one method over another. This module will provide students with a thorough understanding of encryptions methods, what criteria should be used when deciding to use an encryption method and the pros and cons of each.
1. Cryptography Introduction 2. Encryption 3. Implementation. 4. Symmetric Encryption 5. Symmetric Algorithms 6. Asymmetric Encryption 7. Key Exchange 8. Hashing 9. Hash Collisions 10. Common Hash Algorithms 11. Hybrid Encryption 12. Digital Signatures 13. SSL Hybrid Encryption 14. IPSEC 15. Transport Layer Security – SSH 16. PKI ~ Public Key Infrastructure Models 17. PKI-Enabled Applications 18. Quantum Cryptography 19. Attack Vectors 20. Case Study & Lab
Module 9: Attacking the Database
The reason why most software applications exist is to gather, process and store some type of data. Module 10 gives the student insight into how databases are attacked. Students get a low level view of specific database attacks and the tools and methods during these attacks.
1. Overview of Database Servers 2. Types of Databases 3. Tables, Records, Attributes, Domains 4. Data Normalization, SQL , Object-Oriented Database Management 5. Relational Database Systems 6. Vulnerabilities and Common Attacks
a. SQL Injection b. Why SQL Injection c. SQL Connection Properties d. SQL Injection: Enumeration
7. Extended Stored Procedures 8. Shutting Down SQL Server 9. Direct Attacks 10. Attacking Database Servers 11. Obtaining Sensitive Information 12. Hardening Databases
Module 10: Attacking the Web
With so many software applications moving to the Internet, web applications have become one of the most attacked surfaces in the software space. Module 9 gives students the opportunity learn about the different attacks used against web technologies and how to protect their systems.
1. Common Security Threats 2. Sans Seven Management Errors 3. Progression of The Professional Hacker 4. Anatomy of A web application attack 5. Web Attack Techniques 6. Components of a generic web application system 7. URL mappings to the web application system 8. Pen Testing tools and methodologies for Web Servers assessment 9. Understanding Web Application Security 10. Common Web Application Security Vulnerabilities 11. Authentication And Session Management 12. Password Guessing/Cracking Tools 13. Case Study and Lab
Module 11: Hands On
Hands On: Students will have the opportunity to work through a set of software requirements and use several of the techniques learned throughout the class to identify weaknesses in the requirements, threat model a design, document the risks and produce a low level design of their own detailing a secure solution.
|
|
|

|