課程大綱 Syllabus |
學生學習目標 Learning Objectives |
單元學習活動 Learning Activities |
學習成效評量 Evaluation |
備註 Notes |
序 No. | 單元主題 Unit topic |
內容綱要 Content summary |
1 | Introduction to Secure Software Development |
1. What is SSDLC
2. Software vulnerability analysis |
1. Learn what is SSDLC
2. Learn why software vulnerability exist |
|
|
|
2 | Introduction to Secure Software Development |
1. Common mistake and rules for secure software |
1. Learn common programming mistakes
2. Learn how to write secure codes |
|
|
|
3 | Requirements of security and privacy, risk assessment, and lower the attack surface |
1. Requirement of security and privacy
2. Risk assessment
3. Attack surface and method to lower the risk |
1. Learn what is the security and privacy requirements of a software
2. Learn what is risk assessment and how to avoid the risk
3. Learn what is the attack surface and how to lower the risk of being attacck |
|
|
|
4 | Source code review for potential software vulnerability |
1. String and buffer overflow
2. Shell code |
1. Learn what is buffer overflow and how to correctly handle the string operation
2. Learn how to avoid the shell code vulnerability |
|
|
|
5 | Secure software development life cycle (SSDLC) |
1. Requirement and specification
2. Design |
1. Learn how to setup the software requirement
2. Learn the methodology of software design |
|
|
|
6 | Secure software development life cycle (SSDLC) |
1. Development |
1. Learn the development phase of the software system design |
|
|
|
7 | Secure software development life cycle (SSDLC) |
1. Testing
2. Deployment and maintenance |
1. Learn the testing phase of the SSDLC
2. Learn how to setup the testing and production environment |
|
|
|
8 | Principle of secure software development |
1. Security of formatted output
2. Validation check of input data |
1. Learn about the output data security
2. Learn how to validate the input data |
|
|
|
9 | Midterm examination |
Midterm examination |
Outcome assessment |
|
|
|
10 | Software vulnerability analysis |
1. Privilege elevation problem
2. Error handling process
3. Dynamic memory management |
1. Learn the problem of privilege elevation
2. Learn the correct way to handling errors
3. How to avoid memory overflow |
|
|
|
11 | OWASP Injection flaw and cross site scripting attack |
1. Web programming design examples
2. Injection attack vulnerability and testing
3. Cross site scripting and testing |
1. Learn how to design programs for web
2. Learn the injection flaw problem
3. Learn what is cross site scripting and how to reduce the risk |
|
|
|