Tutorial on Adding Information Assurance to the Curriculum

Richard Weiss* and Isaac Overcast

The Evergreen State College

Topics to explore

Labs that I have prepared:

Symmetric Ciphers in Perl

Lab1

Lab 2

The following examples were taken from "Stack Smashing for Fun and Profit" However, the second one doesn't seem to work. You need to experiment with core dumps to see what is going on, or use print statements for the memory addresses.

Demo

Metasploit allows you to write perl scripts to automate exploits. An example of a perl script that comes with the Metasploit download is an exploit for awstats, shown below.

Secure OS

The problem

The main problem seems to be that in traditional OS's, some programs need to run with root or administrator privileges in order to perform their tasks, e.g. reading and writing e-mail files. What you want is finer granularity to give programs power to access hardware, create other processes, and access specific files and directories, without giving them omnipotence.

Mandatory Access Control and SELinux

With MAC, the only thing the superuser account is used for is maintaining the global security policy. This makes it much more difficult to compromise the system and usually requires physical access.

SELinux implements three different types of MAC:

  1. Type enforcement (TE): every system object has a security type.
  2. Role-based access controls (RBACs): users are assigned roles, which define the actions and contexts in which that user can participate
  3. Multi-level security (MLS): defines access controls against objects based on data classification (sensitivity).
Major system applications must be SELinux-aware wherever possible, and it also requires extensive setup by a knowledgeable system administrator (that is, one who has carefully researched SELinux). On the one hand, SELinux is truly comprehensive. On the other hand, configuring it is a fairly major undertaking.

AppArmor

"Novell AppArmor has a more modest objective: to restrict the behavior of selected applications in a very granular but targeted way. In focusing on applications (at the expense of roles and data classification), AppArmor is built on the assumption that the single biggest attack vector on most systems is application vulnerabilities. If the application's behavior is restricted, the behavior of any attacker who succeeds in exploiting some vulnerability in that application also will be restricted."

Bibliography

Acknowledgements
Richard Weiss was supported by NSF grant 0416630