-
Notifications
You must be signed in to change notification settings - Fork 23.7k
Description
Problem:
OSSU:CS does not give students the proper broad introduction to information security.
Duration:
Feb 29, 2020
Background:
OSSU promises the equivalent of an undergraduate degree in Computer Science. In order to evaluate our recommended courses, we use the Curriculum Guidelines for Undergraduate Programs in Computer Science (CS2013). More information can be found here.
CS2013 specifies a number of knowledge areas a curriculum must cover, one of which is Information Assurance and Security (IAS). This is described as "...the set of controls and processes both technical and policy intended to protect and defend information and information systems by ensuring their confidentiality, integrity, and availability, and by providing for authentication and non-repudiation." There are 6 topics within this knowledge area.
- Foundational Concepts in Security
- Principles of Secure Design
- Defensive Programming
- Threats and Attacks
- Network Security
- Cryptography
It is important to note that the expectation is generally just an introduction of these areas. There need only be 1-2 hours of lecture material on each topic (this time does not count course readings, assignments, etc, which will be extra time). The learning outcomes on most topics expect only that students are familiar with the topics, not necessarily that they have used them. For example, students must be able to "Explain why input validation and data sanitization is necessary in the face of adversarial control of the input channel." Asking students to undertake data sanitization goes above and beyond the curricular requirements. (It should be noted that students may certainly choose electives that far exceed the general requirements.)
The four learning outcomes that expect students to demonstrate 'usage' are:
- Analyze the tradeoffs of balancing key security properties (Confidentiality, Integrity, and Availability).
- Classify common input validation errors, and write correct input validation code.
- Demonstrate using a high-level programming language how to prevent a race condition from occurring and
how to handle an exception. - Demonstrate the identification and graceful handling of error conditions.
Only 2 of these expect students to write code.
Proposal:
Add three courses to the curriculum:
- Information Security: Context and Introduction
- Principles of Secure Coding
- Identifying Security Vulnerabilities
And give students the option between one of these two courses:
- Identifying Security Vulnerabilities in C/C++Programming
- Exploiting and Securing Vulnerabilities in Java Applications
Alternatives:
a) Use only one course to cover all of the IAS topics:
b) Choose one of the following specializations (which go more in depth).