CDE466: Computer Systems Security

 

Course Description:

The basic computer infrastructure, ranging from consumer desktops to business servers are under continual attack from a variety of miscreants (or “hackers”) for both fun and monetary gain. The design of computer systems have allowed many vulnerabilities to exist and the attacks exploit these vulnerabilities for stealing private information, perform unauthorized operations, destroy data and such.

 

Computer Systems Security covers the art of countermeasures to attacks to general purpose systems, operating systems, applications and the end-user. The topics provide the student a keen insight into the methods employed by the miscreants, the loopholes that exist and how they come about and the methodology to prevent and defend against such attacks. As a part of the course, and for completeness, we also cover basic topics from Cryptography and Network Security.

 

Syllabus:


1.      Risks and Trust

-          Risks of Computer Systems

-          Vulnerabilities and System Design

-          How to steal information

-          Basics of Attacks

-          The Shared Secret Problem

 

2.      Threat Models

-          Internet Threat Model

-          Ken Thompson and Software Trust

-          Viral Threat Model

 

3.      Attacks

-          Attack Mechanisms

-          System attacks and Network Attacks

-          Virus, Trojan, Worms, Spyware, Adware, Browser attacks

-          Buffer Overflows

-          The “RootKit” Attack

-          Malicious processes and computational power

-          Network based attacks (man in the middle, denial of service, pharming)

 

4.      Basic Cryptography

-          Random numbers, Cryptographic Hashes

-          Symmetric Encryption

-          Asymmetric Encryption

-          Digital Signatures

-          Digital Certificates

-          Certificate Authorities and Certificate Chains

-          Secure Sockets Layer (SSL) and IPSec

 

5.      Safe Programming Techniques

-          Coding practices and safety

-          Code bloat and safety

-          Feature Creep

-          Versatility and Vulnerabilities

-          Overall Design of Complex Systems

 

6.      Operating System Mechanisms

-          Identity and Authentication

-          Protection in Operating Systems

-          Interrupt handlers and System calls

-          Redirecting services

-          Reliable bootstrap, Address space protection

7.      Virtual Machine Systems

-          Types of Virtual Machines

-          How they work

-          Host Operating Systems and VMM interactions

-          Trust and Virtual Machines

-          Using Virtual Machines for Integrity Enforcement

 

8.      Hardware Security Enforcers

-          Trust and Hardware Modules

-          The TCG approach

-          The CoPilot approach

-          Secure wallets

-          Secure co-processors

 

9.      Application Security

-          Firewalls

-          Virus Detection

-          Fallibility of Virus detection

-          Signatures and Software

-          Integrity checking of software

-          Combining schemes to harden the software environment

 

10.  Personal Security

-          How safe is your information?

-          What is valuable to others?

-          Protecting privacy

-          Protecting finances

-          Repudiation, spoofing and identity theft

-          Devices for personal safety and identity

 

11.  Smart Card Systems

-          Types of Smartcards

-          Personal Security and Smartcards

-          Risks and Vulnerabilities of Smart Cards

-          Financial Transactions

-          Mobile Authentication

-          System verification

-          Trust models

 

12.  Past, Present and Future

-          Bell LaPadula Report

-          Orange Book

-          Government and Industry Reports and Response Teams

-          National Security Policies and Risks

-          Distributed and Mobile Computing and Security

-          Sensor Network security and privacy


 

Projects:

Projects will consists of writing prototype software to explore techniques for attacking vulnerabilities as well as defending against attacks. These will be small but designed to give some hands-on experience with software vulnerabilities. Projects will be written in C/C++.

 

Grading:

Course grade will compose of performance in mid-term exam, final exam, homeworks and projects.