Notes for December 1, 1999
- Greetings and Felicitations!
- Puzzle of the Day
- Malicious logic
- Quickly review Trojan horses, viruses, bacteria; include animal and
Thompson's compiler trick
- Logic Bombs, Worms (Schoch and Hupp)
- Ideal: program to detect malicious logic
- Can be shown: not possible to be precise in most general case
- Can detect all such programs if willing to accept false positives
- Can constrain case enough to locate specific malicious logic
-
Can use: writing, structural detection (patterns in code), common code
analyzers, coding style analyzers, instruction analysis (duplicating
OS), dynamic analysis (run it in controlled environment and watch)
- Best approach: data, instruction typing
- On creation, it's type "data"
- Trusted certifier must move it to type "executable"
- Duff's idea: executable bit is "certified as executable" and
must be set by trusted user
- Practise: Trust
- Untrusted software: what is it, example (USENET)
- Check source, programs (what to look for); C examples
- Limit who has access to what; least privilege
- Your environment (how do you know what you're executing); UNIX examples
- Practise: detecting writing
- Integrity check files a la binaudit, tripwire; go through signature
block
- LOCUS approach: encipher program, decipher as you execute.
- Co-processors: checksum each sequence of instructions, compute checksum
as you go; on difference, complain
Send email to
cs153@csif.cs.ucdavis.edu.
Department of Computer Science
University of California at Davis
Davis, CA 95616-8562
Page last modified on 12/3/99