Software Security
CompSci 725 S2C 06
Clark Thomborson
Handout 1: General
Information
Version 1.21 20 July 2006
Lecturer
Prof Clark
Thomborson (Supervisor). Email: <cthombor@cs.auckland.ac.nz>
Published prerequisites
(CompSci 330 Language Implementation) and (CompSci 320
Algorithmics or CompSci 340 Operating Systems)Acceptable prerequisites
Subject to an enrolment limit of 30 students, the instructor is willing to
accept postgraduate students who have attained a "B" or better grade in any two
of the following: CompSci 330 Language
Implementation, CompSci 333 Functional Programming & Language
Implementation, CompSci 320 Algorithmics, CompSci 313 Computer Organisation,
CompSci 314 Data Communications Fundamentals, CompSci 340 Operating Systems,
CompSci 335 Distributed Objects and Algorithms, CompSci 350 Mathematical
Foundations of Computer Science, CompSci 702 Topics in Software Engineering,
CompSci 720 Advanced Design and Analysis of Algorithms, CompSci 735
Object-Oriented Systems, CompSci 742 Data Communications and Networks.Scheduled Lecture Times
Second semester 2006 City campus, Monday 12-1pm, Wednesday 4-5pm, and Friday
3-4pm in Computer Science Seminar room 303.279.Tutorials
Tutorial sessions will be held during weeks 4 - 11; times and rooms will be
arranged in the second week of classes. Students are invited (but not
required) to rehearse their oral presentations during these tutorials. The
instructor will offer feedback and suggest improvements.
Required Reading
Students will read approximately 30 technical
articles during the first eight weeks of this paper, and selected
chapters from Mark Stamp, Information
Security: Principles and Practice, John Wiley & Sons, Inc.,
September 2005, ISBN: 0-471-73848-4. These readings will be the basis
of our in-class discussions. Most of these articles are available
online; I will hand out hardcopies of the other articles.
Please note that the licenses of some of our Library's online
databases do not grant permission to make additional copies,
even for classroom use -- students will have to download these
articles through
http://www.library.auckland.ac.nz/.
Description
Software security is taking on new importance as e-commerce
moves from hype to reality. Software systems are susceptible to a variety of
attacks including eavesdropping, playback, denial of service, and unauthorised
use. In this paper we will survey the field of software security, with a
particular focus on technical and legal means for protection against
unauthorised use.
Content
Denial of service, privacy violations, primary and collateral
damage. Eavesdropping, playback, binary tampering during delivery, introduction
of hostile code, malicious hosts. Unauthorised use by copying, dongle mimicry,
decompilation and recompilation, reverse engineering. Software patents,
copyrights, trade secrets. Sandbox, blackbox, and cryptographic security.
Steganography. Obfuscation, robust and fragile watermarks, fingerprints.
Assessment
60% exam, 25% project, 15% seminar.
You have two options for your project: a term paper or a project report.
If you write a term paper, it must demonstrate your
critical and appreciative understanding of at least three professional
publications, at least one of which must be a required reading for this course.
You must also cite and (at least briefly) discuss any other required class
readings that are closely related to the topic of your term paper.
If you write a project report, it must demonstrate your
competence and creativity in practical work. You must cite and (at least
briefly) discuss at least two required class readings that are relevant to your
term project.
Your seminar must be a coherent explanation of an advanced topic in
software security, showing your careful reading and understanding of one
professional publication. Lecture slides from student oral presentations
will be posted to the Assignments area of the class website.
Policy on Plagiarism, Direct Quotation, Paraphrase,
and Academic Writing
We follow departmental and University policies on academic
honesty.
The University of Auckland will not tolerate cheating, or assisting
others to cheat, and views cheating in coursework as a serious
academic offence. The work that a student submits for grading must be
the student's own work, reflecting his or her learning. Where work
from other sources is used, it must be properly acknowledged and
referenced. This requirement also applies to sources on the world-wide
web. A student's assessed work may be reviewed against electronic
source material using computerised detection mechanisms. Upon
reasonable request, students may be required to provide an electronic
version of their work for computerised review. The University
cheating policy, and some discussion of quotation and paraphrase, is
available at
http://www.auckland.ac.nz/uoa/about/teaching/plagiarism/plagiarism.cfm.
The departmental cheating policy is available at
http://www.cs.auckland.ac.nz/CheatingPolicy.php. Students in
CompSci 725 should take particular note of the following passages:
"... The Computer Science Department uses many ways to check that
the work students submit for marking is their own and was not produced
by, or copied from, someone else... Turnitin.com may be used on essays
and reports. This detects similarity to online material and submitted
works in its own database... All assignments deemed to be too similar
are automatically allocated a zero mark. All students who submitted
these assignments are entered in the duplicate assignment
register. [Students] ... may be referred to the University
Disciplinary Committee. ..."
In this class, we will discuss plagiarism, quotation, and
paraphrase, both in the theoretical context of intellectual property,
and also in the practical context of academic writing for our class
assignments. If you accurately cite the source of your direct
quotations or close paraphrases, you cannot be accused of
plagiarism. However submitting someone else's work or ideas is
not evidence of your own understanding of the material, and such
submissions will not earn you marks.
We will give some general advice on the appropriate use of direct
quotation and paraphrase. We also teach a few other "tricks
of the trade" in technical writing, because in prior years we
have found that few of our entering students are highly skilled in
academic writing.
Students may earn an "A+" in our course, even if they
turn in work with minor grammatical errors. Major grammatical
errors may cause us to misunderstand the author's intent, and we will
assign low marks when we are not sure of a student's understanding of
the material they are presenting in their paper. Students should
take special care with the spelling of technical terms, especially
acronyms, for an incorrect spelling can cause great confusion in the
mind of a reader who thinks the author is referring to some other
technical term with a similar spelling! Passing marks are given
only when a student's work clearly demonstrates their understanding of
the software security technologies, techniques, and analyses discussed
in this course.
Additional Resources
The Library
http://www.library.auckland.ac.nz/instruct/instruct.htm offers
resources and tuition on searches and citations.
Our University offers some support in the use of the English
language by non-native speakers, see
https://www.delna.auckland.ac.nz/support.php.
The Student Learning Centre
http://www.slc.auckland.ac.nz/ offers resources and workshops on
writing and oral presentations.
Aegrotat / Compassionate Consideration information is available at
http://www.auckland.ac.nz/uoa/for/currentstudents/academiclife/aegrotatinfo.cfm.
Tentative Schedule
Note: the date listed for student presentation #x is the earliest possible
date on which this presentation may occur; later dates are possible if our
schedule slips. Students will be assigned numbers by a random process during
the first week of classes.
- Week 1 (18 July - 22 July). Select class representative.
Discuss
- Handout 1,
General Information
- Handout 2, Selection of Oral
Presentations
- Handout 3, List of Suggested Articles for Oral Presentations (in
preparation)
- Handout 4, Randomly Assigned Student Numbers (in
preparation)
- Handout 5, First set of Lecture
Slides
- [R1] B. Lampson, "Computer Security in the
Real World", IEEE Computer 37:6, 37-46, June
2004.
- [R2] Computer System Statute 2000, University of Auckland.
Available http://www.auckland.ac.nz/security/images/ComputerStatute.pdf,
July 2006.
- [R3] "IT Acceptable Use Policy", Version 1.3, The University of Auckland, 2004
(available:
http://www.auckland.ac.nz/security/ITAcceptableUsePolicy.htm, July 2006).
- [R4] "Department of Computer Science Computer System
Regulations", 1999 (available:
https://www.cs.auckland.ac.nz/administration/handbook/ugrad/UG.DoCSCSR.html,
July 2006).
- Week 2 (25 July - 29 July). Select papers and dates for student oral presentations in Weeks
5-13.
- Week 3 (1 August - 5 August). Finalise the selection of papers and
dates for student oral presentations. Discuss how to prepare
an oral presentation. Discuss term project requirements.
- Week 4 (8 August - 12 August). Tutorial sessions:
Students #1 - #4 give practice oral presentations.
- Week 5 (15 August - 19 August). Student oral presentations #1 - #4:
each presentation will be 10 minutes in length, with an
8-minute discussion period. Tutorial sessions: Students
#5 - #10 give practice oral presentations. Assignment 1 due
(in class Friday 19 August): Term paper or project proposal (one
sentence).
- Week 6 (22 August - 26 August). Student oral presentations
#5, #6 (Monday), #7 - #8 (Wednesday), #9 - #10 (Friday).
Term break (29 August - 10 September)
- Week 7 (12 September - 16 September). Tutorial sessions:
Students #11 - #14 give practice oral presentations.
Assignment 2 due (in class Friday 17 September): for term
paper: first draft of title, synopsis, and references. For term
project: first draft of title, goal statement, resources required
(software & hardware), and proposed methodology.
- Week 8 (19 September - 23 September). Student oral
presentations #11 - #12 (Monday), #13 - #14 (Friday).
Tutorial sessions: Students #15 - #18 give practice oral
presentations.
- Week 9 (26 September - 2 October). Student oral presentation
#16 (Monday), #15 (Wednesday).
Tutorial sessions: Students #18 - #23 give practice oral
presentations. Friday: Sample final
exam (Handout XX: an ungraded midterm test). Assignment 3
due in class Friday 1 October: title and abstract, for
publication on class website; and a detailed outline of your term
paper or project report.
- Week 10 (3 October - 7 October).
Wednesday: student oral presentations #18 and #20. Friday:
presentations #22 - #23 (Friday). Tutorial sessions:
Students #24 - #29 give practice oral presentations.
- Week 11 (8 October - 14 October). Student oral presentations
#24 - #25 (Monday), #26 - #27 (Wednesday), #28 - #29 (Friday).
Tutorial sessions: Students #30 - #32 give practice oral
presentations.
- Week 12 (18 October - 22 October). Student oral presentations
#30 - #31 (Monday), #32 (Wednesday). Friday:
Discussion of student answers to sample final exam. Course
overview. Assignment 4 due in class Friday 22 October): final
version of your term paper. (Please refer to the last slide of Handout 15
for detailed instructions on submission.)
- (date to be announced) Final Examination. The
location will be announced on the morning of the exam, using
nDeva and hardcopy postings on campus.
Warning
We will discuss vulnerabilities in widely-deployed computer systems. This is
not an invitation for you to exploit these vulnerabilities! Instead you
are expected to behave responsibly. Don't break into computer systems that are
not your own. Don't attempt to subvert any security system in any other way, for
example by taking over someone else's "digital identity".