Hide menu

TDDC90 Software Security

Labs


General information

Sign up for the labs at latest November 5!

Each lab group in Webreg has assigned lab hours according to the schedule below. Both labs must be finished before the end of the course. Both labs must be totally finished (and passed by the lab assistant) at December 14. You will work at your own pace and may work from home, but we reccommend that you visit the lab sessions and try to finish part 1-4 of lab1 during session 1, part 5 during session 2 and so on (see the column to the right in the table below).

Mon 5 nov 15-17 SU00, SU02, SU03 Group A+B Lab1: part 1-3. Start with part 4. Setup + manual code review
Fri 9 nov 15-17 SU15-16 Group A+B Lab1: part 4-5. Manual + automatic code review
Mon 12 nov 13-15 SU15-16 Group A+B Lab1: start with part 6. Exploits
Wed 14 nov 8-10 SU15-16 Group A+B Lab1: finish part 6. Exploits
Wed 21 nov 8-10 SU15-16 Group A+B Lab1: part 7: Mitigations, part 8: Fix Pong
Mon 26 nov 13-15 SU00-02Group A+B Lab2: Security modeling
(Try to finish at least half of the lab before the lab session.)

There is an additional lab session at December 4, 10-12 in SU02, 03 and 04. Both lab assistants will be there to help you.

PONG

Lab description: LAB1-PONG-2012.pdf

This is the largest lab in the course. You will be working with several aspects of software security using the same codebase throughout. The following sections contain resources that might be useful when doing the lab. Additional material will be posted throughout the course.

Group number: If you are in group A, use your group number from webreg as your group number in setup. If you are in group B, then add 20 to your group number from webreg, and use that in setup (e.g., if you are in group B12, then enter 32 as your group number in setup).

Copy files: To copy files from the UML without using the /host directory you can use scp. The following command does the job: scp USER@ADDR:FILE . Replace USER with the username shown when you ran setup. Replace ADDR with the IP address of the UML (which you can find using the command "/sbin/ip addr list" -- it should be 10.20.x.y). Replace FILE with the full path to the file you want to copy. The file will be copied to your current working directory.

Tool Manuals

    Splint manual

Manual code review

Here are some papers and other resources on manual code inspection. They are provided as starting points for you; you are not required to read them all. The library also has a number of useful resources.

    OWASP Code Review Guide
    Jack Ganssle: A Guide to Code Inspections
    Michael Fagan: Design and code inspections to recude errors in program development (IBM Systems Journal 1976)
    E.P. Doolan: Experience with Fagain's Inspection Method (Software Practice and Experience 1991)
    Source level security reviews in CLASP

The following links to catalogs of vulnerability types may be helpful when trying to figure out what to look for in code reviews.

    CWE - Common Weakness Enumeration
    CLASP Vulnerability view

Finally, two reports on security reviews conducted on electronic voting machine software. These reviews used a combination of methods to arrive at the results.

    J. Calandrino, A. Feldman, J. A. Halderman, D. Wagner, H. Yu, W. Zeller: Source Code Review of the Diebold Voting System
    A. Yasinsac, D. Wagner, M. Bishop, T. Baker, B. de Medeiros, G. Tyson, M. Shamos, M. Burmester: Software Review and Security Analysis of the ES&S iVotronic 8.0.1.2 Voting Machine Firmware

Miscellaneous papers

    H. Chen, D. Wagner, D. Dean: Setuid Demystified (11th Usenix Security Symposium, 2002)

MODEL

In this lab you will work with security modeling and risk analysis.

Lab description: LAB2-MODEL-2012.pdf

The following papers are used in the lab:

    Information on RMF
    D. Byers, S. Ardi, N. Shahmehri, C. Duma. Modeling software vulnerabilities with vulnerability cause graphs. In Proceedings of the IEEE International Conference on Software Maintenance (ICSM), Philadelphia, Pennsylvania, 2006.
    L. Røstad. An extended misuse case notation: Including vulnerabilities and the insider threat. In Proceedings of the 12th Working Conference on Requirements Engineering: Foundation for Software Quality (REFSQ'06), 2006.
    G. Sindre, A. Opdahl. Capturing Security Requirements through Misuse Cases
    B. Schneier. Attack trees: modeling security threats. Dr.Dobb's Journal, December 1999.

Page responsible: Nahid Shahmehri
Last updated: 2012-12-11