
Information Assurance Design
CIS 476: Programming Languages
and Compilers
Overview: Suggested Time: 2 class periods
Course Length: 3 Hours Pre-Requisite : CIS 221, CIS 123
Target Audience
|
Levels |
Disciplines |
||
|
CS |
|
CIS |
|
|
Undergraduate |
x |
|
x |
|
Graduate |
|
|
|
Description: This course
introduces students to the concepts of Information Assurance as it relates
to various programming languages and compilers. It includes a very brief
overview of the topic of secure programming
methods, ethical issues in programming security, and the security issues
related to encapsulation and data abstraction. Objective(s): The primary purpose
of this course is to: Goals/Outcome: The students will be
able to understand the following concepts: ·
The importance
of program security and how to implement secure control structures such as
modularity and data hiding. ·
Encapsulation
using classes and securing code against corruption. Hiding a component’s implementation
details. ·
Data
abstraction as a design criterion
(because most data and procedure are hidden from other parts of the
software, inadvertent errors introduced during modification are less likely
to propagate to other locations within a software). Outline: ·
Secure
programs Ø
What is a
secure program? Ø
Unexpected
program behavior Ø
Types of
flaws o
validation
error (incomplete or inconsistent) o
domain
error o
serialization
and aliasing o
inadequate
identification and authentication o
boundary
condition violation o
other
exploitable logic errors ·
Ethical
Issues in Computer Security Ø
Understanding
law and ethics Ø
Protection
of programs and data ·
Encapsulation Ø
What is
encapsulation? o
The
wrapping of data and functions into a single unit (called class) ·
Data
Abstraction Ø
What is
data abstraction? Ø
How is it
used? o
ensures security
of data from unexpected viewing, changing, or manipulating. (incomplete or inconsistent) Suggested Assignments: References: ·
Cannady, James. “Security Models for Object-Oriented Databases”. ·
Hoffman,
Lance J. Modern Methods for Computer Security and Privacy. ·
Pfleeger, Charles P. and