Syllabus
Unit 1
Syllabus Introduction – Gauging the threat – Security concepts – SetUID Programs. Strings – Common String Manipulation errors – Improperly Bounded String Copies – Off-by-One Errors – Null Termination Errors – String Truncation – String Errors without Functions – String vulnerabilities – Buffer Overflow – Process memory organization – Stack management – Stack smashing – Mitigation techniques – String handling functions – Runtime protection strategies.
Unit 2
Dynamic Memory Management – C Memory management functions – Common C Memory Management Errors – Initialization Errors – Failing to Check Return Values – Dereferencing Null or Invalid Pointers – Referencing Freed Memory – Freeing Memory Multiple Times – Memory Leaks – Zero-Length Allocations – Mitigation Strategies. Integer Security –Introduction to integer types – Integer Data Types – Integer Conversions – Integer operations – Integer Vulnerabilities – Mitigation strategies.
Unit 3
Formatted Output – Variadic Functions – Formatted Output Functions – Vulnerabilities – Mitigation Strategies. Concurrency – Common Errors – Race Conditions – File I/O – TOCTOU – Mitigation strategies.
Objectives and Outcomes
Pre-Requisite(s): 23CCE103 Computer Programming
Course Objectives
- This course facilitates learning various techniques for systems and applications programmers to write code securely.
- to explore FOR vulnerabilities in code and mitigate.
Course Outcomes
- CO1: Understand the common security threats in software applications.
- CO2: Identify and mitigate the vulnerabilities due to string manipulation errors.
- CO3: Identify and mitigate the vulnerabilities based on dynamic memory management errors and integer operations.
- CO4: Identify and mitigate the vulnerabilities due to errors in formatted output functions and concurrency.
CO-PO Mapping
PO/PSO? |
PO1? |
PO2? |
PO3? |
PO4? |
PO5? |
PO6? |
PO7? |
PO8? |
PO9? |
PO10? |
PO11? |
PO12? |
PSO1? |
PSO2? |
CO? |
CO1? |
3? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
2 |
-? |
CO2? |
3? |
2? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
2 |
1? |
CO3? |
3? |
2? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
2 |
2? |
CO4? |
3? |
2? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
-? |
2 |
2? |
Text Books / References
Textbooks
- SEI CERT C Coding Standard: Rules for Developing Safe, Reliable, and Secure Systems, Software Engineering Institute, Carnegie Mellon University, 2016
- Robert C. Seacord, Secure Coding in C and C++, 2nd Edition, Addison-Wesley, 2013.
References
Wenliang Du, Computer Security – A hands-on Approach, Second Edition, Create space Independent Pub; 2019.